What about
(run ("cd >env:current"))
(set #source (getenv "current"))
Did you examine the variable @execute-dir ? Documentation says it can be used to change the current directory but perhaps it already contains something if you read it.
You must not use names beginning with @ for your own variables. These are reserved for internal names. Why don't you read the documentation ?
Why do you want to know the name of the source directory ? Your current directory is the source directory, so you can just use "" as source.
Bye,
Thomas