Files
feynman/extensions/research-tools.ts
2026-04-17 11:13:57 -07:00

35 lines
1.5 KiB
TypeScript

import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { registerAlphaTools } from "./research-tools/alpha.js";
import { registerAutoLog } from "./research-tools/autolog.js";
import { registerContextReportTool } from "./research-tools/context.js";
import { registerDiscoveryCommands } from "./research-tools/discovery.js";
import { registerFeynmanModelCommand } from "./research-tools/feynman-model.js";
import { installFeynmanHeader } from "./research-tools/header.js";
import { registerHelpCommand } from "./research-tools/help.js";
import { registerInitCommand, registerOutputsCommand } from "./research-tools/project.js";
import { registerResumePacket } from "./research-tools/resume.js";
import { registerServiceTierControls } from "./research-tools/service-tier.js";
import { registerStateManagement } from "./research-tools/state.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 installFeynmanHeader(pi, ctx, cache);
});
registerAlphaTools(pi);
registerAutoLog(pi);
registerContextReportTool(pi);
registerDiscoveryCommands(pi);
registerFeynmanModelCommand(pi);
registerHelpCommand(pi);
registerInitCommand(pi);
registerOutputsCommand(pi);
registerResumePacket(pi);
registerServiceTierControls(pi);
registerStateManagement(pi);
}