fix(coding-agent): do not inject bunfs script path into subagent prompts (#3002)
The presence of `process.argv[1]` in the current invocation does not imply that the current `pi` process is being invoked as a script. Specifically, in the case of a bun compiled binary, `process.argv[1]` will be the virtual path `/$bunfs/root/pi`, which is not a real file on the filesystem. This causes the subagent extension to inject this path into the child `pi` invocation, which is interpreted as part of the prompt, which confuses the subagent. This change uses the script only if it is not a bunfs virtual script Co-authored-by: nathyong <nathyong@noreply.github.com>
This commit is contained in:
@@ -219,7 +219,8 @@ async function writePromptToTempFile(agentName: string, prompt: string): Promise
|
|||||||
|
|
||||||
function getPiInvocation(args: string[]): { command: string; args: string[] } {
|
function getPiInvocation(args: string[]): { command: string; args: string[] } {
|
||||||
const currentScript = process.argv[1];
|
const currentScript = process.argv[1];
|
||||||
if (currentScript && fs.existsSync(currentScript)) {
|
const isBunVirtualScript = currentScript?.startsWith("/$bunfs/root/");
|
||||||
|
if (currentScript && !isBunVirtualScript && fs.existsSync(currentScript)) {
|
||||||
return { command: process.execPath, args: [currentScript, ...args] };
|
return { command: process.execPath, args: [currentScript, ...args] };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user