openclaw/extensions/boltbot/index.ts
duy 58e556a2d7 feat(boltbot): add audit dashboard — Vite + React SPA served from gateway
Adds a dark-themed receipt audit dashboard at /boltbot/dashboard:
- Vite + React + TypeScript SPA with Tailwind CSS
- Stats summary (total actions, tier breakdown, anomaly count)
- Receipt list with tier/anomaly filtering, offset pagination, 10s polling
- Slide-out receipt detail with accordion sections (hashes, EigenDA, TEE)
- Session grouping view (receipts grouped by sessionKey)
- Gateway serves static files via registerHttpRoute with path traversal
  protection (resolve+startsWith), security headers (nosniff, DENY)
- WCAG-compliant: dialog focus management, keyboard navigation,
  aria-pressed/expanded/selected, semantic table roles, contrast AA
2026-01-29 15:12:32 -08:00

26 lines
923 B
TypeScript

import type { MoltbotPluginApi } from "clawdbot/plugin-sdk";
import { emptyPluginConfigSchema } from "clawdbot/plugin-sdk";
import { eigenCloudProvider } from "./src/provider.js";
import { createActionLogger } from "./src/action-logger.js";
import { createReceiptStore } from "./src/receipt-store.js";
import { registerBoltbotApi } from "./src/api.js";
import { registerDashboardRoutes } from "./src/dashboard-serve.js";
export default {
id: "boltbot",
name: "Boltbot — Trustless Hosting",
description: "EigenCloud verification layer for Moltbot",
configSchema: emptyPluginConfigSchema(),
register(api: MoltbotPluginApi) {
api.registerProvider(eigenCloudProvider);
const store = createReceiptStore(process.env.BOLTBOT_RECEIPT_BACKEND);
const logger = createActionLogger(store);
api.on("after_tool_call", logger);
registerBoltbotApi(api, store);
registerDashboardRoutes(api);
},
};