Collapsed the Even plugin architecture into a single unified plugin by merging board card routes and replacing the transport stub with a real webhook implementation, removing the separate cards plugin from the workspace. The new unified plugin (`fusion-plugin-even-realities-glasses`) now exports con Fusion-Task-Id: FN-3970
2.3 KiB
2.3 KiB
Even Realities Plugin API
Canonical plugin id: fusion-plugin-even-realities-glasses
All plugin routes are mounted under:
/api/plugins/fusion-plugin-even-realities-glasses
All companion-facing routes require:
Authorization: Bearer <apiKey>
Endpoint Contract
Board / Task Cards
GET /board/cards→ compact deck for selected columns (columns,max)GET /board→ board summary counts and updated timestampGET /tasks/:id/cards→ single-task deck (404when missing)
Quick Capture
POST /quick-capture- Body:
{ "text": string, "column"?: TaskColumn } - Creates a task using normalization + configured
quickCaptureDefaultColumn
Agent Actions
POST /actions/start-workPOST /actions/request-reviewPOST /actions/approve-planPOST /actions/accept-reviewPOST /actions/return-to-agentPOST /actions/retry
Body: { "taskId": "FN-123" }
Notifications
GET /notifications(limit, optionaldrain=true)POST /notifications/ackwith{ "taskIds": string[] }POST /notifications/poll-now
Transport Status / Control
GET /status→connected, transport mode/config/error, last pollPOST /reconnect→ reconnect transport lifecyclePOST /transport/actions→ ingest companion actions (start-work,request-review,quick-capture)
Transport Contract
Production transport is WebhookGlassesTransport:
- pushes cards to
${companionWebhookUrl}/cards - reports degraded status when webhook URL is missing/unreachable
- records
lastPushAt,lastActionAt, andlastErrorfor/status
Test Coverage Map
src/__tests__/board-routes.test.ts— auth + board/task card route contractssrc/__tests__/cards.test.ts— card/deck projection budgets and formattingsrc/__tests__/quick-capture-routes.test.ts— quick capture auth/input/error behaviorsrc/__tests__/agent-action-routes.test.ts+agent-actions.test.ts— action route contract and state transitionssrc/__tests__/notification-routes.test.ts+notifier.test.ts— polling queue, ack, forced poll behaviorsrc/__tests__/transport.test.ts+transport-routes.test.ts— webhook push path, connection status, inbound action ingestionsrc/__tests__/index.test.ts— manifest/settings keys and plugin lifecycle initialization behavior