diff --git a/src/plugin-handlers/tool-config-handler.test.ts b/src/plugin-handlers/tool-config-handler.test.ts index b2c82049f..3eaa8afe3 100644 --- a/src/plugin-handlers/tool-config-handler.test.ts +++ b/src/plugin-handlers/tool-config-handler.test.ts @@ -23,6 +23,36 @@ function createParams(overrides: { } describe("applyToolConfig", () => { + describe("#given config permission sets webfetch and external_directory", () => { + describe("#when applying tool config", () => { + it("#then should preserve explicit deny over OmO defaults", () => { + const params = createParams({}) + params.config.permission = { + webfetch: "deny", + external_directory: "deny", + } + + applyToolConfig(params) + + const permission = params.config.permission as Record + expect(permission.webfetch).toBe("deny") + expect(permission.external_directory).toBe("deny") + expect(permission.task).toBe("deny") + }) + + it("#then should allow webfetch and external_directory by default", () => { + const params = createParams({}) + + applyToolConfig(params) + + const permission = params.config.permission as Record + expect(permission.webfetch).toBe("allow") + expect(permission.external_directory).toBe("allow") + expect(permission.task).toBe("deny") + }) + }) + }) + describe("#given task_system is enabled", () => { describe("#when applying tool config", () => { it("#then should deny todowrite and todoread globally", () => { diff --git a/src/plugin-handlers/tool-config-handler.ts b/src/plugin-handlers/tool-config-handler.ts index d9cd4ce94..4be1f2937 100644 --- a/src/plugin-handlers/tool-config-handler.ts +++ b/src/plugin-handlers/tool-config-handler.ts @@ -116,9 +116,9 @@ export function applyToolConfig(params: { } params.config.permission = { - ...(params.config.permission as Record), webfetch: "allow", external_directory: "allow", + ...(params.config.permission as Record), task: "deny", }; }