-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathregistry.js
More file actions
67 lines (61 loc) · 2.61 KB
/
Copy pathregistry.js
File metadata and controls
67 lines (61 loc) · 2.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import { renderBashUse } from './tool_use/bash.js';
import { renderReadUse } from './tool_use/read.js';
import { renderWriteUse } from './tool_use/write.js';
import { renderEditUse } from './tool_use/edit.js';
import { renderGlobUse } from './tool_use/glob.js';
import { renderGrepUse } from './tool_use/grep.js';
import { renderTaskUse } from './tool_use/task.js';
import { renderTodoWriteUse } from './tool_use/todo_write.js';
import { renderAskUserQuestionUse } from './tool_use/ask_user_question.js';
import { renderToolUseFallback } from './tool_use/fallback.js';
import { getToolSummary } from './tool_use/summary.js';
import { renderBashResult } from './tool_result/bash.js';
import { renderFileReadResult } from './tool_result/file_read.js';
import { renderFileEditResult } from './tool_result/file_edit.js';
import { renderFileWriteResult } from './tool_result/file_write.js';
import { renderGlobResult } from './tool_result/glob.js';
import { renderGrepResult } from './tool_result/grep.js';
import { renderWebSearchResult } from './tool_result/web_search.js';
import { renderWebFetchResult } from './tool_result/web_fetch.js';
import { renderTaskResult } from './tool_result/task.js';
import { renderTodoWriteResult } from './tool_result/todo_write.js';
import { renderUserInputResult } from './tool_result/user_input.js';
import { renderPlanResult } from './tool_result/plan.js';
import { renderToolResultFallback } from './tool_result/fallback.js';
import { toolResultHasBody } from './tool_result/utils.js';
export { getToolSummary, toolResultHasBody };
export const TOOL_USE_RENDERERS = {
Bash: renderBashUse,
Read: renderReadUse,
Write: renderWriteUse,
Edit: renderEditUse,
Glob: renderGlobUse,
Grep: renderGrepUse,
Task: renderTaskUse,
TodoWrite: renderTodoWriteUse,
AskUserQuestion: renderAskUserQuestionUse,
};
export const TOOL_RESULT_RENDERERS = {
bash: renderBashResult,
file_read: renderFileReadResult,
file_edit: renderFileEditResult,
file_write: renderFileWriteResult,
glob: renderGlobResult,
grep: renderGrepResult,
web_search: renderWebSearchResult,
web_fetch: renderWebFetchResult,
task: renderTaskResult,
todo_write: renderTodoWriteResult,
user_input: renderUserInputResult,
plan: renderPlanResult,
};
export function renderToolUse(tool) {
const name = tool.name || 'unknown';
const fn = TOOL_USE_RENDERERS[name] ?? renderToolUseFallback;
return fn(tool);
}
export function renderToolResult(parsed) {
const rt = parsed.result_type || 'unknown';
const fn = TOOL_RESULT_RENDERERS[rt] ?? renderToolResultFallback;
return fn(parsed);
}