diff --git a/src/permissions/mode.ts b/src/permissions/mode.ts index 2e9e5aa..f9153d6 100644 --- a/src/permissions/mode.ts +++ b/src/permissions/mode.ts @@ -300,6 +300,9 @@ class PermissionModeManager { "Grep", "NotebookRead", "TodoWrite", + // Image tools (read-only) + "ViewImage", + "view_image", // Plan mode tools (must allow exit!) "ExitPlanMode", "exit_plan_mode", diff --git a/src/tests/permissions-mode.test.ts b/src/tests/permissions-mode.test.ts index b31dbc0..3aad164 100644 --- a/src/tests/permissions-mode.test.ts +++ b/src/tests/permissions-mode.test.ts @@ -233,6 +233,26 @@ test("plan mode - allows Read", () => { expect(result.matchedRule).toBe("plan mode"); }); +test("plan mode - allows ViewImage", () => { + permissionMode.setMode("plan"); + + const permissions: PermissionRules = { + allow: [], + deny: [], + ask: [], + }; + + const result = checkPermission( + "ViewImage", + { path: "/Users/test/image.png" }, + permissions, + "/Users/test/project", + ); + + expect(result.decision).toBe("allow"); + expect(result.matchedRule).toBe("plan mode"); +}); + test("plan mode - allows TaskOutput", () => { permissionMode.setMode("plan");