mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-16 12:03:23 +00:00
feat(coding-agent): add tool override support via extensions
- Add setActiveTools() to ExtensionAPI for dynamic tool management - Extensions can now override, wrap, or disable built-in tools - Add tool-override.ts example demonstrating the pattern - Update documentation for tool override capabilities
This commit is contained in:
parent
7a2c19cdf0
commit
e3dd4f21d1
10 changed files with 211 additions and 61 deletions
|
|
@ -181,11 +181,6 @@ describe("parseArgs", () => {
|
|||
expect(result.noTools).toBe(true);
|
||||
expect(result.tools).toEqual(["read", "bash"]);
|
||||
});
|
||||
|
||||
test("parses --tools with empty string", () => {
|
||||
const result = parseArgs(["--tools", ""]);
|
||||
expect(result.tools).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("messages and file args", () => {
|
||||
|
|
|
|||
|
|
@ -3,18 +3,6 @@ import { buildSystemPrompt } from "../src/core/system-prompt.js";
|
|||
|
||||
describe("buildSystemPrompt", () => {
|
||||
describe("empty tools", () => {
|
||||
test("does not show READ-ONLY mode when no built-in tools", () => {
|
||||
const prompt = buildSystemPrompt({
|
||||
selectedTools: [],
|
||||
contextFiles: [],
|
||||
skills: [],
|
||||
});
|
||||
|
||||
// Should not mention READ-ONLY mode when there are no tools
|
||||
// (extensions may provide write capabilities)
|
||||
expect(prompt).not.toContain("READ-ONLY mode");
|
||||
});
|
||||
|
||||
test("shows (none) for empty tools list", () => {
|
||||
const prompt = buildSystemPrompt({
|
||||
selectedTools: [],
|
||||
|
|
@ -25,37 +13,24 @@ describe("buildSystemPrompt", () => {
|
|||
expect(prompt).toContain("Available tools:\n(none)");
|
||||
});
|
||||
|
||||
test("does not show file paths guideline when no tools", () => {
|
||||
test("shows file paths guideline even with no tools", () => {
|
||||
const prompt = buildSystemPrompt({
|
||||
selectedTools: [],
|
||||
contextFiles: [],
|
||||
skills: [],
|
||||
});
|
||||
|
||||
expect(prompt).not.toContain("Show file paths clearly");
|
||||
});
|
||||
});
|
||||
|
||||
describe("read-only tools", () => {
|
||||
test("shows READ-ONLY mode when only read tools available", () => {
|
||||
const prompt = buildSystemPrompt({
|
||||
selectedTools: ["read", "grep", "find", "ls"],
|
||||
contextFiles: [],
|
||||
skills: [],
|
||||
});
|
||||
|
||||
expect(prompt).toContain("READ-ONLY mode");
|
||||
expect(prompt).toContain("Show file paths clearly");
|
||||
});
|
||||
});
|
||||
|
||||
describe("default tools", () => {
|
||||
test("does not show READ-ONLY mode with default tools", () => {
|
||||
test("includes all default tools", () => {
|
||||
const prompt = buildSystemPrompt({
|
||||
contextFiles: [],
|
||||
skills: [],
|
||||
});
|
||||
|
||||
expect(prompt).not.toContain("READ-ONLY mode");
|
||||
expect(prompt).toContain("- read:");
|
||||
expect(prompt).toContain("- bash:");
|
||||
expect(prompt).toContain("- edit:");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue