"use strict"; import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { getConfig, getConfigFilePath, loadConfig } from "../src/config"; import { registerImageAnalysisTool } from "../src/tools/image-analysis"; import { registerExtractTextTool } from "../src/tools/extract-text"; import { registerDiagnoseErrorTool } from "../src/tools/diagnose-error"; import { registerUnderstandDiagramTool } from "../src/tools/understand-diagram"; import { registerAnalyzeDataVizTool } from "../src/tools/analyze-data-viz"; import { registerUiDiffCheckTool } from "../src/tools/ui-diff-check"; import { registerUiToArtifactTool } from "../src/tools/ui-to-artifact"; import { registerVideoAnalysisTool } from "../src/tools/video-analysis"; export default function (pi: ExtensionAPI) { // Register all tools registerImageAnalysisTool(pi); registerExtractTextTool(pi); registerDiagnoseErrorTool(pi); registerUnderstandDiagramTool(pi); registerAnalyzeDataVizTool(pi); registerUiDiffCheckTool(pi); registerUiToArtifactTool(pi); registerVideoAnalysisTool(pi); // Startup check — validate config and notify user pi.on("session_start", async (_event, ctx) => { let config; try { config = loadConfig(); } catch (err: any) { ctx.ui.notify( `pi-zai-vision: ${err.message}. Set Z_AI_API_KEY and optionally Z_AI_MODE to enable vision tools.`, "warning" ); return; } const source = process.env.Z_AI_API_KEY ? "env var" : `config file (${getConfigFilePath()})`; ctx.ui.notify( `pi-zai-vision: 8 vision tools ready (mode: ${config.mode}, key from ${source})`, "info" ); }); }