From ef3836efd659e451b6dbb8eee7d3213ba39f5aec Mon Sep 17 00:00:00 2001 From: BillionToken Date: Wed, 25 Mar 2026 06:16:19 +0800 Subject: [PATCH] fix: add missing 'question' tool to ToolAccessSchema (#269) The 'question' tool is a built-in OpenCode tool used to ask users to make decisions, but it was missing from the ToolAccessSchema in types.ts and the isValidOACTool() function in ToolMapper.ts. This prevented OpenCoder/OpenAgent agents from accessing the tool even when explicitly configured. Changes: - Add question: z.boolean().optional() to ToolAccessSchema - Add 'question' to validTools array in isValidOACTool() Fixes #268 Co-authored-by: BillionClaw <267901332+BillionClaw@users.noreply.github.com> --- packages/compatibility-layer/src/mappers/ToolMapper.ts | 2 +- packages/compatibility-layer/src/types.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/compatibility-layer/src/mappers/ToolMapper.ts b/packages/compatibility-layer/src/mappers/ToolMapper.ts index b910996..93567ad 100644 --- a/packages/compatibility-layer/src/mappers/ToolMapper.ts +++ b/packages/compatibility-layer/src/mappers/ToolMapper.ts @@ -264,7 +264,7 @@ export function mapToolAccessToOAC( * Check if a tool name is a valid OAC tool. */ function isValidOACTool(name: string): name is keyof ToolAccess { - const validTools = ["read", "write", "edit", "bash", "task", "grep", "glob", "patch"]; + const validTools = ["read", "write", "edit", "bash", "task", "grep", "glob", "patch", "question"]; return validTools.includes(name); } diff --git a/packages/compatibility-layer/src/types.ts b/packages/compatibility-layer/src/types.ts index 42cc718..4f67d29 100644 --- a/packages/compatibility-layer/src/types.ts +++ b/packages/compatibility-layer/src/types.ts @@ -17,6 +17,7 @@ export const ToolAccessSchema = z.object({ grep: z.boolean().optional(), glob: z.boolean().optional(), patch: z.boolean().optional(), + question: z.boolean().optional(), }); // ============================================================================