import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; import { registerAlphaTools } from "./research-tools/alpha.js"; import { installAdaHeader } from "./research-tools/header.js"; import { registerHelpCommand } from "./research-tools/help.js"; import { registerInitCommand, registerOutputsCommand } from "./research-tools/project.js"; export default function researchTools(pi: ExtensionAPI): void { const cache: { agentSummaryPromise?: Promise<{ agents: string[]; chains: string[] }> } = {}; pi.on("session_start", async (_event, ctx) => { await installAdaHeader(pi, ctx, cache); }); pi.on("session_switch", async (_event, ctx) => { await installAdaHeader(pi, ctx, cache); }); registerAlphaTools(pi); registerHelpCommand(pi); const gracefulExit = () => { // Reset terminal: show cursor, disable alt screen, reset attributes process.stdout.write("\x1b[?25h\x1b[?1049l\x1b[0m\n"); if (process.stdin.isTTY) { process.stdin.setRawMode?.(false); } process.exit(0); }; pi.registerCommand("exit", { description: "Exit ada", handler: gracefulExit, }); pi.registerCommand("quit", { description: "Exit ada", handler: gracefulExit, }); registerInitCommand(pi); registerOutputsCommand(pi); }