Commit 05038f4
committed
Make the Flow tool surface easier to evolve without changing its contract
The tool registry had become the next maintainability hotspot after the
transition split, with raw schemas, helper wrappers, session tools, and
runtime tools all concentrated in one file. This change keeps the public
`createTools()` entrypoint stable while separating schemas, shared helper
logic, and tool registration by category.
Constraint: Must preserve tool names, raw arg shapes, and runtime response semantics
Constraint: Must not add new dependencies or change the public tools facade
Rejected: Refactor session persistence first | higher IO and migration sensitivity than the tools split
Rejected: Split per tool file | would over-fragment the tool/runtime contract and add navigation overhead
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Review schemas.ts together with session-tools.ts and runtime-tools.ts when changing tool contracts
Tested: bun test tests/config.test.ts; bun test tests/runtime.test.ts; bun run typecheck; bun run check; LSP diagnostics on affected files
Not-tested: Manual interactive plugin usage outside automated coverage1 parent 261eff5 commit 05038f4
7 files changed
Lines changed: 726 additions & 646 deletions
0 commit comments