import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { registerCommands } from "./commands.ts"; import { registerGenericTools } from "./tools/generic.ts"; import { registerGetCodeSnippet } from "./tools/get-code-snippet.ts"; import { registerIndexRepository } from "./tools/index-repository.ts"; import { registerListProjects } from "./tools/list-projects.ts"; import { registerSearchCode } from "./tools/search-code.ts"; import { registerSearchGraph } from "./tools/search-graph.ts"; import { registerSearchTools } from "./tools/search-tools.ts"; /** * Native pi tools that wrap the `codebase-memory-mcp` binary's `cli` subcommand. * * This replaces the MCP-server transport (see .mcp.json) with first-class pi * tools. Same engine and graph DB - only the transport changes. * * Layout: * src/cli.ts - runCli() + resolveProject() (binary interface) * src/schemas.ts - TOOLS: tool defs + typed typebox schemas * src/tree.ts - parser for the binary's tree-text responses (0.10.x) * src/commands.ts - cbm:index-status, cbm:index-repository * src/tools/generic.ts - passthrough cbm_* tools * src/tools/index-repository.ts - cbm_index_repository with bespoke renderer * src/tools/search-graph.ts - cbm_search_graph with bespoke found/not-found renderer * src/tools/get-code-snippet.ts - cbm_get_code_snippet with bespoke retrieved/not-found renderer * src/tools/search-code.ts - cbm_search_code with bespoke found/not-found renderer * src/tools/list-projects.ts - cbm_list_projects with bespoke count renderer * src/tools/search-tools.ts - cbm_search_tools loader + lazy-tool deactivation * * Tools are prefixed `cbm_`; index_status is command-only. */ export { runCli, resolveProject, BIN } from "./cli.ts"; export default function (pi: ExtensionAPI) { registerCommands(pi); registerGenericTools(pi); registerIndexRepository(pi); registerSearchGraph(pi); registerGetCodeSnippet(pi); registerSearchCode(pi); registerListProjects(pi); registerSearchTools(pi); }