import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; import { registerAlphaTools } from "./research-tools/alpha.js"; import { registerDiscoveryCommands } from "./research-tools/discovery.js"; import { registerAbulafiaModelCommand } from "./research-tools/abulafia-model.js"; import { installAbulafiaHeader } from "./research-tools/header.js"; import { registerHelpCommand } from "./research-tools/help.js"; import { registerInitCommand, registerOutputsCommand } from "./research-tools/project.js"; import { registerServiceTierControls } from "./research-tools/service-tier.js"; import { registerLiveStatus } from "./research-tools/live-status.js"; import { registerStoryWorkflowCommands } from "./research-tools/story.js"; import { registerModelProviderOverlays } from "./research-tools/model-providers.js"; import { registerNaturalCommandRouting } from "./research-tools/natural-command-routing.js"; export default function researchTools(pi: ExtensionAPI): void { const cache: { agentSummaryPromise?: Promise<{ agents: string[]; chains: string[] }> } = {}; // Pi 0.66.x folds post-switch/resume lifecycle into session_start. pi.on("session_start", async (_event, ctx) => { await installAbulafiaHeader(pi, ctx, cache); }); registerAlphaTools(pi); registerDiscoveryCommands(pi); registerAbulafiaModelCommand(pi); registerHelpCommand(pi); registerInitCommand(pi); registerLiveStatus(pi); registerNaturalCommandRouting(pi); registerModelProviderOverlays(pi); registerOutputsCommand(pi); registerServiceTierControls(pi); registerStoryWorkflowCommands(pi); }