refactor(agent-tool-restrictions): use boolean for SDK tools parameter

OpenCode SDK's session.prompt tools parameter expects boolean values.
Changed from PermissionValue ('deny'/'allow') to boolean (false/true).
This commit is contained in:
justsisyphus 2026-01-16 18:29:39 +09:00
parent fd6a33b88f
commit eeb7eb2be2

View File

@ -1,55 +1,52 @@
import type { PermissionValue } from "./permission-compat"
/** /**
* Agent tool restrictions for session.prompt calls. * Agent tool restrictions for session.prompt calls.
* OpenCode SDK's session.prompt `tools` parameter OVERRIDES agent-level permissions. * OpenCode SDK's session.prompt `tools` parameter expects boolean values.
* This provides complete restriction sets so session.prompt calls include all necessary restrictions. * true = tool allowed, false = tool denied.
*/ */
const EXPLORATION_AGENT_DENYLIST: Record<string, PermissionValue> = { const EXPLORATION_AGENT_DENYLIST: Record<string, boolean> = {
write: "deny", write: false,
edit: "deny", edit: false,
task: "deny", task: false,
delegate_task: "deny", delegate_task: false,
call_omo_agent: "deny", call_omo_agent: false,
} }
const AGENT_RESTRICTIONS: Record<string, Record<string, PermissionValue>> = { const AGENT_RESTRICTIONS: Record<string, Record<string, boolean>> = {
explore: EXPLORATION_AGENT_DENYLIST, explore: EXPLORATION_AGENT_DENYLIST,
librarian: EXPLORATION_AGENT_DENYLIST, librarian: EXPLORATION_AGENT_DENYLIST,
oracle: { oracle: {
write: "deny", write: false,
edit: "deny", edit: false,
task: "deny", task: false,
delegate_task: "deny", delegate_task: false,
}, },
"multimodal-looker": { "multimodal-looker": {
"*": "deny", read: true,
read: "allow",
}, },
"document-writer": { "document-writer": {
task: "deny", task: false,
delegate_task: "deny", delegate_task: false,
call_omo_agent: "deny", call_omo_agent: false,
}, },
"frontend-ui-ux-engineer": { "frontend-ui-ux-engineer": {
task: "deny", task: false,
delegate_task: "deny", delegate_task: false,
call_omo_agent: "deny", call_omo_agent: false,
}, },
"Sisyphus-Junior": { "Sisyphus-Junior": {
task: "deny", task: false,
delegate_task: "deny", delegate_task: false,
}, },
} }
export function getAgentToolRestrictions(agentName: string): Record<string, PermissionValue> { export function getAgentToolRestrictions(agentName: string): Record<string, boolean> {
return AGENT_RESTRICTIONS[agentName] ?? {} return AGENT_RESTRICTIONS[agentName] ?? {}
} }