43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
export * as BuiltInTools from "./builtins"
|
|
|
|
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 locationLayer = Layer.mergeAll(
|
|
ApplyPatchTool.layer,
|
|
BashTool.layer,
|
|
EditTool.layer,
|
|
GlobTool.layer,
|
|
GrepTool.layer,
|
|
QuestionTool.layer,
|
|
ReadTool.layer,
|
|
SkillTool.layer,
|
|
TodoWriteTool.layer,
|
|
WebFetchTool.layer,
|
|
WebSearchTool.layer.pipe(Layer.provide(WebSearchTool.defaultConfigLayer)),
|
|
WriteTool.layer,
|
|
)
|