diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index cd0f8afc8..d4a342646 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -6,6 +6,10 @@ - Added `pi auth check` provider/model auth preflight with optional credential output ([#7152](https://github.com/earendil-works/pi/issues/7152)). +### Changed + +- Softened the bash tool's `PI_*` environment guideline in an attempt to reduce unnecessary inspection commands ([#7128](https://github.com/earendil-works/pi/issues/7128)). + ### Fixed - Fixed right-click not pasting clipboard text in fullscreen mode on Windows. diff --git a/packages/coding-agent/src/core/tools/bash.ts b/packages/coding-agent/src/core/tools/bash.ts index 5bdfe2c4f..d1c804874 100644 --- a/packages/coding-agent/src/core/tools/bash.ts +++ b/packages/coding-agent/src/core/tools/bash.ts @@ -44,7 +44,7 @@ const bashSchema = Type.Object({ export const bashToolSystemPromptContribution = { snippet: "Execute bash commands (ls, grep, find, etc.)", - guidelines: ["Inspect PI_* environment variables for current model and session details."], + guidelines: ["You can inspect PI_* environment variables for current model and session details."], } as const; export type BashToolInput = Static; diff --git a/packages/coding-agent/test/agent-session-dynamic-tools.test.ts b/packages/coding-agent/test/agent-session-dynamic-tools.test.ts index 719550fed..5edc1f6c0 100644 --- a/packages/coding-agent/test/agent-session-dynamic-tools.test.ts +++ b/packages/coding-agent/test/agent-session-dynamic-tools.test.ts @@ -74,7 +74,7 @@ describe("AgentSession dynamic tool registration", () => { const bashTool = session.agent.state.tools.find((tool) => tool.name === "bash")!; expect(session.systemPrompt).toContain( - "Inspect PI_* environment variables for current model and session details.", + "You can inspect PI_* environment variables for current model and session details.", ); await bashTool.execute("bash-env", { command: "printf ok" }); expect(sessionEnv).toMatchObject({ diff --git a/packages/coding-agent/test/sdk-session-manager.test.ts b/packages/coding-agent/test/sdk-session-manager.test.ts index d60ea9d2e..8ab4c431d 100644 --- a/packages/coding-agent/test/sdk-session-manager.test.ts +++ b/packages/coding-agent/test/sdk-session-manager.test.ts @@ -105,7 +105,7 @@ describe("createAgentSession session manager defaults", () => { }); expect(session.sessionFile).toBeTruthy(); expect(session.systemPrompt).toContain( - "Inspect PI_* environment variables for current model and session details.", + "You can inspect PI_* environment variables for current model and session details.", ); const bashTool = session.agent.state.tools.find((tool) => tool.name === "bash"); diff --git a/packages/coding-agent/test/server/create-harness.test.ts b/packages/coding-agent/test/server/create-harness.test.ts index 9073ef00f..c16f2d37c 100644 --- a/packages/coding-agent/test/server/create-harness.test.ts +++ b/packages/coding-agent/test/server/create-harness.test.ts @@ -52,7 +52,7 @@ function createPromptTool(name: string, promptSnippet?: string, promptGuidelines const defaultPromptTools = [ createPromptTool("read", "Read file contents", ["Use read to examine files instead of cat or sed."]), createPromptTool("bash", "Execute bash commands (ls, grep, find, etc.)", [ - "Inspect PI_* environment variables for current model and session details.", + "You can inspect PI_* environment variables for current model and session details.", ]), createPromptTool("edit", "Edit files", ["Edit carefully."]), createPromptTool("write", "Create or overwrite files", ["Use write only for new files or complete rewrites."]), @@ -96,9 +96,9 @@ describe("coding-agent Harness construction", () => { expect(prompt).toContain("- read: Read file contents"); expect(prompt).toContain("- bash: Execute bash commands (ls, grep, find, etc.)"); expect(prompt).toContain("Use read to examine files instead of cat or sed."); - expect(prompt).toContain("Inspect PI_* environment variables for current model and session details."); + expect(prompt).toContain("You can inspect PI_* environment variables for current model and session details."); expect(prompt.indexOf("Use read to examine files")).toBeLessThan( - prompt.indexOf("Inspect PI_* environment variables"), + prompt.indexOf("You can inspect PI_* environment variables"), ); }); @@ -290,7 +290,7 @@ describe("coding-agent Harness construction", () => { [ "bash", "Execute bash commands (ls, grep, find, etc.)", - "Inspect PI_* environment variables for current model and session details.", + "You can inspect PI_* environment variables for current model and session details.", ], ["read", "Read file contents", "Use read to examine files instead of cat or sed."], [ @@ -342,7 +342,7 @@ describe("coding-agent Harness construction", () => { expect(prompt).toContain("- write: Create or overwrite files"); expect(prompt).toContain("- read: Read file contents"); expect(prompt).not.toContain("- bash:"); - expect(prompt).not.toContain("Inspect PI_* environment variables"); + expect(prompt).not.toContain("You can inspect PI_* environment variables"); expect(prompt).toContain(''); expect(prompt).toContain("review"); expect(prompt.indexOf("Use write only for new files or complete rewrites.")).toBeLessThan(