|
|
@@ -406,20 +406,24 @@ export const RunCommand = cmd({
|
|
|
|
|
|
async function execute(sdk: OpencodeClient) {
|
|
|
function tool(part: ToolPart) {
|
|
|
- if (part.tool === "bash") return bash(props<typeof BashTool>(part))
|
|
|
- if (part.tool === "glob") return glob(props<typeof GlobTool>(part))
|
|
|
- if (part.tool === "grep") return grep(props<typeof GrepTool>(part))
|
|
|
- if (part.tool === "list") return list(props<typeof ListTool>(part))
|
|
|
- if (part.tool === "read") return read(props<typeof ReadTool>(part))
|
|
|
- if (part.tool === "write") return write(props<typeof WriteTool>(part))
|
|
|
- if (part.tool === "webfetch") return webfetch(props<typeof WebFetchTool>(part))
|
|
|
- if (part.tool === "edit") return edit(props<typeof EditTool>(part))
|
|
|
- if (part.tool === "codesearch") return codesearch(props<typeof CodeSearchTool>(part))
|
|
|
- if (part.tool === "websearch") return websearch(props<typeof WebSearchTool>(part))
|
|
|
- if (part.tool === "task") return task(props<typeof TaskTool>(part))
|
|
|
- if (part.tool === "todowrite") return todo(props<typeof TodoWriteTool>(part))
|
|
|
- if (part.tool === "skill") return skill(props<typeof SkillTool>(part))
|
|
|
- return fallback(part)
|
|
|
+ try {
|
|
|
+ if (part.tool === "bash") return bash(props<typeof BashTool>(part))
|
|
|
+ if (part.tool === "glob") return glob(props<typeof GlobTool>(part))
|
|
|
+ if (part.tool === "grep") return grep(props<typeof GrepTool>(part))
|
|
|
+ if (part.tool === "list") return list(props<typeof ListTool>(part))
|
|
|
+ if (part.tool === "read") return read(props<typeof ReadTool>(part))
|
|
|
+ if (part.tool === "write") return write(props<typeof WriteTool>(part))
|
|
|
+ if (part.tool === "webfetch") return webfetch(props<typeof WebFetchTool>(part))
|
|
|
+ if (part.tool === "edit") return edit(props<typeof EditTool>(part))
|
|
|
+ if (part.tool === "codesearch") return codesearch(props<typeof CodeSearchTool>(part))
|
|
|
+ if (part.tool === "websearch") return websearch(props<typeof WebSearchTool>(part))
|
|
|
+ if (part.tool === "task") return task(props<typeof TaskTool>(part))
|
|
|
+ if (part.tool === "todowrite") return todo(props<typeof TodoWriteTool>(part))
|
|
|
+ if (part.tool === "skill") return skill(props<typeof SkillTool>(part))
|
|
|
+ return fallback(part)
|
|
|
+ } catch {
|
|
|
+ return fallback(part)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function emit(type: string, data: Record<string, unknown>) {
|