fix(coding-agent): remove process-cwd tool singletons and use tool-name allowlists

- switch SDK/CLI tool selection to name-based allowlists
- apply allowlists across built-in, extension, and SDK tools
- remove ambient process.cwd defaults from core tooling and resource helpers
- update tests, examples, and TUI callers for explicit cwd plumbing
- add regression coverage for extension tool filtering

closes #3452
closes #2835
This commit is contained in:
Mario Zechner
2026-04-20 21:57:31 +02:00
parent 27c1544839
commit 5a4e22ea44
42 changed files with 254 additions and 201 deletions

View File

@@ -8,6 +8,7 @@ describe("buildSystemPrompt", () => {
selectedTools: [],
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt).toContain("Available tools:\n(none)");
@@ -18,6 +19,7 @@ describe("buildSystemPrompt", () => {
selectedTools: [],
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt).toContain("Show file paths clearly");
@@ -35,6 +37,7 @@ describe("buildSystemPrompt", () => {
},
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt).toContain("- read:");
@@ -53,6 +56,7 @@ describe("buildSystemPrompt", () => {
},
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt).toContain("- dynamic_tool: Run dynamic test behavior");
@@ -63,6 +67,7 @@ describe("buildSystemPrompt", () => {
selectedTools: ["read", "dynamic_tool"],
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt).not.toContain("dynamic_tool");
@@ -76,6 +81,7 @@ describe("buildSystemPrompt", () => {
promptGuidelines: ["Use dynamic_tool for project summaries."],
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt).toContain("- Use dynamic_tool for project summaries.");
@@ -87,6 +93,7 @@ describe("buildSystemPrompt", () => {
promptGuidelines: ["Use dynamic_tool for summaries.", " Use dynamic_tool for summaries. ", " "],
contextFiles: [],
skills: [],
cwd: process.cwd(),
});
expect(prompt.match(/- Use dynamic_tool for summaries\./g)).toHaveLength(1);