/
sbars
/
claude-code
Обзор
Документация
Войти
/
sbars
/
claude-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tools/REPLTool/primitiveTools.ts
39 строк
1 KB
kuberwastaken
init
31 мар 2026, 13:55
31 мар 2026, 13:55
ec53fcb
Код
Авторство
О чём код?
import type { Tool } from '../../Tool.js' import { AgentTool } from '../AgentTool/AgentTool.js' import { BashTool } from '../BashTool/BashTool.js' import { FileEditTool } from '../FileEditTool/FileEditTool.js' import { FileReadTool } from '../FileReadTool/FileReadTool.js' import { FileWriteTool } from '../FileWriteTool/FileWriteTool.js' import { GlobTool } from '../GlobTool/GlobTool.js' import { GrepTool } from '../GrepTool/GrepTool.js' import { NotebookEditTool } from '../NotebookEditTool/NotebookEditTool.js' let _primitiveTools: readonly Tool[] | undefined /** * Primitive tools hidden from direct model use when REPL mode is on * (REPL_ONLY_TOOLS) but still accessible inside the REPL VM context. * Exported so display-side code (collapseReadSearch, renderers) can * classify/render virtual messages for these tools even when they're * absent from the filtered execution tools list. * * Lazy getter — the import chain collapseReadSearch.ts → primitiveTools.ts * → FileReadTool.tsx → ... loops back through the tool registry, so a * top-level const hits "Cannot access before initialization". Deferring * to call time avoids the TDZ. * * Referenced directly rather than via getAllBaseTools() because that * excludes Glob/Grep when hasEmbeddedSearchTools() is true. */ export function getReplPrimitiveTools(): readonly Tool[] { return (_primitiveTools ??= [ FileReadTool, FileWriteTool, FileEditTool, GlobTool, GrepTool, BashTool, NotebookEditTool, AgentTool, ]) }