Files
gitea/pi-extension/index.ts
pi-bot-01 25e49db155 feat: consolidated Gitea API client and pi extension
- Pure fetch-based API client (src/) with zero external dependencies
- Pi extension adapter (pi-extension/) registering 17 tools
- Standalone CLI (cli.ts) replacing gitea-scripts/gitea.js
- Token auth everywhere (no HMAC secrets)
- SKILL.md for agent auto-discovery
- TOOL.md with full parameter reference

Consolidates pi-bot/extensions/pi-gitea and clawbot/gitea-scripts
into a single shared package.
2026-03-13 14:49:55 -07:00

36 lines
1.0 KiB
TypeScript

/**
* 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();
});
}