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
26 lines
923 B
TypeScript
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);
|
|
},
|
|
};
|