/** * pi-gitea Extension — entry point * * Registers Gitea tools (read + write) and optional webhook server. */ import registerReadTools from "./tools/read-tools.js"; import registerWriteTools from "./tools/write-tools.js"; import { startWebhookServer, stopWebhookServer, startPolling, stopPolling, setSendMessage } from "./webhook/server.js"; import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; export default function (pi: ExtensionAPI) { registerReadTools(pi); registerWriteTools(pi); pi.on("session_start", async (_event, ctx) => { console.log("[pi-gitea] Session started"); const sendMessageFn = ctx.sendUserMessage || ((_msg: string) => Promise.resolve()); setSendMessage(sendMessageFn); try { await startWebhookServer(pi); startPolling(pi); } catch (err) { console.error("[pi-gitea] Failed to start webhook server:", err); } }); pi.on("session_shutdown", async () => { console.log("[pi-gitea] Session shutting down"); await stopWebhookServer(); stopPolling(); }); }