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.
This commit is contained in:
35
pi-extension/index.ts
Normal file
35
pi-extension/index.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
/**
|
||||
* 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();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user