fix(tools): resolve Read/Write/Edit paths against workspace directory
Previously, Read/Write/Edit tools used the global tool instances from pi-coding-agent which had process.cwd() baked in at import time. Since the gateway starts from /root/dev/ai/clawdbot, relative paths like 'SOUL.md' would incorrectly resolve there instead of the agent's workspace (/root/clawd). This fix: - Adds workspaceDir option to createClawdbotCodingTools - Creates fresh Read/Write/Edit tools bound to workspaceDir - Adds cwd option to Bash tool defaults for consistency - Passes effectiveWorkspace from pi-embedded-runner Absolute paths and ~/... paths are unaffected. Sandboxed sessions continue to use sandbox root as before. Includes tests for Read/Write/Edit workspace path resolution.
This commit is contained in:
committed by
Peter Steinberger
parent
bf0184d0cf
commit
de5b75eff6
@@ -849,6 +849,7 @@ export async function compactEmbeddedPiSession(params: {
|
||||
agentAccountId: params.agentAccountId,
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
agentDir,
|
||||
workspaceDir: effectiveWorkspace,
|
||||
config: params.config,
|
||||
abortSignal: runAbortController.signal,
|
||||
modelProvider: model.provider,
|
||||
@@ -1232,6 +1233,7 @@ export async function runEmbeddedPiAgent(params: {
|
||||
agentAccountId: params.agentAccountId,
|
||||
sessionKey: params.sessionKey ?? params.sessionId,
|
||||
agentDir,
|
||||
workspaceDir: effectiveWorkspace,
|
||||
config: params.config,
|
||||
abortSignal: runAbortController.signal,
|
||||
modelProvider: model.provider,
|
||||
|
||||
Reference in New Issue
Block a user