fix(coding-agent): add tool promptGuidelines support fixes #1720

This commit is contained in:
Mario Zechner 2026-03-02 22:50:08 +01:00
parent bc2fa8d6d0
commit 8d4a49487a
9 changed files with 96 additions and 10 deletions

View file

@ -41,6 +41,7 @@ describe("AgentSession dynamic tool registration", () => {
label: "Dynamic Tool",
description: "Tool registered from session_start",
promptSnippet: "Run dynamic test behavior",
promptGuidelines: ["Use dynamic_tool when the user asks for dynamic behavior tests."],
parameters: Type.Object({}),
execute: async () => ({
content: [{ type: "text", text: "ok" }],
@ -69,6 +70,7 @@ describe("AgentSession dynamic tool registration", () => {
expect(session.getAllTools().map((tool) => tool.name)).toContain("dynamic_tool");
expect(session.getActiveToolNames()).toContain("dynamic_tool");
expect(session.systemPrompt).toContain("- dynamic_tool: Run dynamic test behavior");
expect(session.systemPrompt).toContain("- Use dynamic_tool when the user asks for dynamic behavior tests.");
session.dispose();
});

View file

@ -52,4 +52,28 @@ describe("buildSystemPrompt", () => {
expect(prompt).toContain("- dynamic_tool: Run dynamic test behavior");
});
});
describe("prompt guidelines", () => {
test("appends promptGuidelines to default guidelines", () => {
const prompt = buildSystemPrompt({
selectedTools: ["read", "dynamic_tool"],
promptGuidelines: ["Use dynamic_tool for project summaries."],
contextFiles: [],
skills: [],
});
expect(prompt).toContain("- Use dynamic_tool for project summaries.");
});
test("deduplicates and trims promptGuidelines", () => {
const prompt = buildSystemPrompt({
selectedTools: ["read", "dynamic_tool"],
promptGuidelines: ["Use dynamic_tool for summaries.", " Use dynamic_tool for summaries. ", " "],
contextFiles: [],
skills: [],
});
expect(prompt.match(/- Use dynamic_tool for summaries\./g)).toHaveLength(1);
});
});
});