export * as BuiltInTools from "./builtins" import { makeLocationNode } from "../effect/app-node" import { Layer } from "effect" import { BashTool } from "./bash" import { ApplyPatchTool } from "./apply-patch" import { EditTool } from "./edit" import { GlobTool } from "./glob" import { GrepTool } from "./grep" import { QuestionTool } from "./question" import { ReadTool } from "./read" import { SkillTool } from "./skill" import { TodoWriteTool } from "./todowrite" import { WebFetchTool } from "./webfetch" import { WebSearchTool } from "./websearch" import { WriteTool } from "./write" /** * Composes only the shipped Location-scoped built-in tool transforms. * Each tool retains its implementation and focused tests independently. Dynamic * MCP and plugin tools later use separate scoped canonical registrations, while * provider/model filtering belongs to a future materialization phase rather * than this static list. The caller intentionally supplies shared Location * services once to this merged set. * * TODO: Port the remaining launch-follow-up leaves deliberately: edit fuzzy * parity, task, LSP, * repo_clone, repo_overview, plan_exit, and Rune/code mode. Keep MCP and plugin * transforms separate from this static built-in list. */ export const node = makeLocationNode({ name: "built-in-tools", layer: Layer.empty, deps: [ ApplyPatchTool.node, BashTool.node, EditTool.node, GlobTool.node, GrepTool.node, QuestionTool.node, ReadTool.node, SkillTool.node, TodoWriteTool.node, WebFetchTool.node, WebSearchTool.node, WriteTool.node, ], })