@pellux/goodvibes-sdk 0.38.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/contracts/artifacts/operator-contract.json +3171 -929
- package/dist/daemon.d.ts +2 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +4 -0
- package/dist/events/surfaces.d.ts +25 -3
- package/dist/events/surfaces.d.ts.map +1 -1
- package/dist/events/surfaces.js +22 -1
- package/dist/events/workflows.d.ts +7 -6
- package/dist/events/workflows.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/platform/agents/archetypes.d.ts.map +1 -1
- package/dist/platform/agents/archetypes.js +7 -0
- package/dist/platform/agents/index.d.ts +1 -0
- package/dist/platform/agents/index.d.ts.map +1 -1
- package/dist/platform/agents/index.js +1 -0
- package/dist/platform/agents/orchestrator-runner.d.ts +13 -0
- package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator-runner.js +14 -0
- package/dist/platform/agents/orchestrator.d.ts +38 -6
- package/dist/platform/agents/orchestrator.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator.js +66 -18
- package/dist/platform/agents/planner-decomposition-runner.d.ts +38 -0
- package/dist/platform/agents/planner-decomposition-runner.d.ts.map +1 -0
- package/dist/platform/agents/planner-decomposition-runner.js +113 -0
- package/dist/platform/agents/turn-knowledge-injection.d.ts +88 -3
- package/dist/platform/agents/turn-knowledge-injection.d.ts.map +1 -1
- package/dist/platform/agents/turn-knowledge-injection.js +147 -30
- package/dist/platform/agents/worktree.d.ts +126 -8
- package/dist/platform/agents/worktree.d.ts.map +1 -1
- package/dist/platform/agents/worktree.js +240 -19
- package/dist/platform/agents/wrfc-controller.d.ts +23 -0
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +158 -32
- package/dist/platform/agents/wrfc-gate-runtime.d.ts +9 -0
- package/dist/platform/agents/wrfc-gate-runtime.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-gate-runtime.js +7 -3
- package/dist/platform/agents/wrfc-gates.d.ts +1 -1
- package/dist/platform/agents/wrfc-gates.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-gates.js +7 -1
- package/dist/platform/agents/wrfc-types.d.ts +23 -3
- package/dist/platform/agents/wrfc-types.d.ts.map +1 -1
- package/dist/platform/automation/types.d.ts +9 -1
- package/dist/platform/automation/types.d.ts.map +1 -1
- package/dist/platform/calendar/calendar-api-shared.d.ts +25 -0
- package/dist/platform/calendar/calendar-api-shared.d.ts.map +1 -0
- package/dist/platform/calendar/calendar-api-shared.js +100 -0
- package/dist/platform/calendar/calendar-connector.d.ts +79 -0
- package/dist/platform/calendar/calendar-connector.d.ts.map +1 -0
- package/dist/platform/calendar/calendar-connector.js +155 -0
- package/dist/platform/calendar/google-calendar-api.d.ts +25 -0
- package/dist/platform/calendar/google-calendar-api.d.ts.map +1 -0
- package/dist/platform/calendar/google-calendar-api.js +89 -0
- package/dist/platform/calendar/http-fetch-adapter.d.ts +25 -0
- package/dist/platform/calendar/http-fetch-adapter.d.ts.map +1 -0
- package/dist/platform/calendar/http-fetch-adapter.js +25 -0
- package/dist/platform/calendar/ics-parser.d.ts +35 -0
- package/dist/platform/calendar/ics-parser.d.ts.map +1 -0
- package/dist/platform/calendar/ics-parser.js +236 -0
- package/dist/platform/calendar/index.d.ts +41 -0
- package/dist/platform/calendar/index.d.ts.map +1 -0
- package/dist/platform/calendar/index.js +49 -0
- package/dist/platform/calendar/merged-calendar-model.d.ts +67 -0
- package/dist/platform/calendar/merged-calendar-model.d.ts.map +1 -0
- package/dist/platform/calendar/merged-calendar-model.js +181 -0
- package/dist/platform/calendar/microsoft-graph-api.d.ts +25 -0
- package/dist/platform/calendar/microsoft-graph-api.d.ts.map +1 -0
- package/dist/platform/calendar/microsoft-graph-api.js +95 -0
- package/dist/platform/calendar/oauth-flow.d.ts +62 -0
- package/dist/platform/calendar/oauth-flow.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-flow.js +305 -0
- package/dist/platform/calendar/oauth-providers.d.ts +43 -0
- package/dist/platform/calendar/oauth-providers.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-providers.js +120 -0
- package/dist/platform/calendar/oauth-token-store.d.ts +72 -0
- package/dist/platform/calendar/oauth-token-store.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-token-store.js +189 -0
- package/dist/platform/calendar/oauth-types.d.ts +274 -0
- package/dist/platform/calendar/oauth-types.d.ts.map +1 -0
- package/dist/platform/calendar/oauth-types.js +22 -0
- package/dist/platform/calendar/rrule.d.ts +39 -0
- package/dist/platform/calendar/rrule.d.ts.map +1 -0
- package/dist/platform/calendar/rrule.js +261 -0
- package/dist/platform/calendar/subscription-store.d.ts +118 -0
- package/dist/platform/calendar/subscription-store.d.ts.map +1 -0
- package/dist/platform/calendar/subscription-store.js +293 -0
- package/dist/platform/calendar/types.d.ts +170 -0
- package/dist/platform/calendar/types.d.ts.map +1 -0
- package/dist/platform/calendar/types.js +21 -0
- package/dist/platform/companion/companion-chat-attachments.d.ts +29 -0
- package/dist/platform/companion/companion-chat-attachments.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-attachments.js +121 -0
- package/dist/platform/companion/companion-chat-broker-bridge.d.ts +40 -0
- package/dist/platform/companion/companion-chat-broker-bridge.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-broker-bridge.js +14 -0
- package/dist/platform/companion/companion-chat-broker-sync.d.ts +38 -0
- package/dist/platform/companion/companion-chat-broker-sync.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-broker-sync.js +80 -0
- package/dist/platform/companion/companion-chat-gc.d.ts +63 -0
- package/dist/platform/companion/companion-chat-gc.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-gc.js +38 -0
- package/dist/platform/companion/companion-chat-manager.d.ts +67 -20
- package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-manager.js +130 -144
- package/dist/platform/companion/companion-chat-persistence.d.ts +9 -1
- package/dist/platform/companion/companion-chat-persistence.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-persistence.js +10 -2
- package/dist/platform/companion/companion-chat-routes.d.ts +2 -1
- package/dist/platform/companion/companion-chat-routes.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-routes.js +37 -4
- package/dist/platform/config/credential-status.d.ts +28 -0
- package/dist/platform/config/credential-status.d.ts.map +1 -0
- package/dist/platform/config/credential-status.js +75 -0
- package/dist/platform/config/index.d.ts +25 -0
- package/dist/platform/config/index.d.ts.map +1 -1
- package/dist/platform/config/index.js +18 -0
- package/dist/platform/config/manager.d.ts +9 -0
- package/dist/platform/config/manager.d.ts.map +1 -1
- package/dist/platform/config/manager.js +21 -2
- package/dist/platform/config/migrations.d.ts +48 -0
- package/dist/platform/config/migrations.d.ts.map +1 -0
- package/dist/platform/config/migrations.js +54 -0
- package/dist/platform/config/schema-domain-core.d.ts +10 -1
- package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
- package/dist/platform/config/schema-domain-core.js +46 -3
- package/dist/platform/config/schema-types.d.ts +13 -7
- package/dist/platform/config/schema-types.d.ts.map +1 -1
- package/dist/platform/config/schema.d.ts.map +1 -1
- package/dist/platform/config/schema.js +2 -0
- package/dist/platform/control-plane/approval-broker.d.ts +11 -0
- package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
- package/dist/platform/control-plane/approval-broker.js +17 -1
- package/dist/platform/control-plane/approval-hunk-apply.d.ts +77 -0
- package/dist/platform/control-plane/approval-hunk-apply.d.ts.map +1 -0
- package/dist/platform/control-plane/approval-hunk-apply.js +80 -0
- package/dist/platform/control-plane/gateway-disabled-response.d.ts +20 -0
- package/dist/platform/control-plane/gateway-disabled-response.d.ts.map +1 -0
- package/dist/platform/control-plane/gateway-disabled-response.js +24 -0
- package/dist/platform/control-plane/gateway-scope-enforcement.d.ts +68 -0
- package/dist/platform/control-plane/gateway-scope-enforcement.d.ts.map +1 -0
- package/dist/platform/control-plane/gateway-scope-enforcement.js +91 -0
- package/dist/platform/control-plane/gateway-utils.d.ts +17 -0
- package/dist/platform/control-plane/gateway-utils.d.ts.map +1 -1
- package/dist/platform/control-plane/gateway-utils.js +30 -0
- package/dist/platform/control-plane/gateway.d.ts +12 -2
- package/dist/platform/control-plane/gateway.d.ts.map +1 -1
- package/dist/platform/control-plane/gateway.js +27 -31
- package/dist/platform/control-plane/index.d.ts +6 -1
- package/dist/platform/control-plane/index.d.ts.map +1 -1
- package/dist/platform/control-plane/index.js +4 -0
- package/dist/platform/control-plane/invoke-input-validation.d.ts +56 -0
- package/dist/platform/control-plane/invoke-input-validation.d.ts.map +1 -0
- package/dist/platform/control-plane/invoke-input-validation.js +163 -0
- package/dist/platform/control-plane/method-catalog-admin.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-admin.js +12 -1
- package/dist/platform/control-plane/method-catalog-calendar.d.ts +16 -0
- package/dist/platform/control-plane/method-catalog-calendar.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-calendar.js +21 -0
- package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-channels.js +32 -3
- package/dist/platform/control-plane/method-catalog-control-automation.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control-automation.js +19 -34
- package/dist/platform/control-plane/method-catalog-control-companion.d.ts +15 -0
- package/dist/platform/control-plane/method-catalog-control-companion.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-control-companion.js +133 -0
- package/dist/platform/control-plane/method-catalog-control-core.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control-core.js +104 -122
- package/dist/platform/control-plane/method-catalog-control.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-control.js +4 -0
- package/dist/platform/control-plane/method-catalog-email.d.ts +17 -0
- package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-email.js +21 -0
- package/dist/platform/control-plane/method-catalog-events.d.ts +28 -0
- package/dist/platform/control-plane/method-catalog-events.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-events.js +74 -1
- package/dist/platform/control-plane/method-catalog-fleet.d.ts +24 -0
- package/dist/platform/control-plane/method-catalog-fleet.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-fleet.js +65 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts +84 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-route-reconcile.js +103 -0
- package/dist/platform/control-plane/method-catalog-shared.d.ts +29 -0
- package/dist/platform/control-plane/method-catalog-shared.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog.d.ts +9 -0
- package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog.js +32 -3
- package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts +8 -0
- package/dist/platform/control-plane/operator-contract-schemas-admin.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-admin.js +22 -1
- package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts +18 -0
- package/dist/platform/control-plane/operator-contract-schemas-fleet.d.ts.map +1 -0
- package/dist/platform/control-plane/operator-contract-schemas-fleet.js +182 -0
- package/dist/platform/control-plane/operator-contract-schemas-permissions.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-permissions.js +5 -0
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts +29 -0
- package/dist/platform/control-plane/operator-contract-schemas-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas-runtime.js +57 -3
- package/dist/platform/control-plane/operator-contract-schemas.d.ts +1 -0
- package/dist/platform/control-plane/operator-contract-schemas.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract-schemas.js +1 -0
- package/dist/platform/control-plane/operator-contract.d.ts.map +1 -1
- package/dist/platform/control-plane/operator-contract.js +8 -0
- package/dist/platform/control-plane/routes/checkpoints.d.ts +39 -0
- package/dist/platform/control-plane/routes/checkpoints.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/checkpoints.js +166 -0
- package/dist/platform/control-plane/routes/fleet.d.ts +53 -0
- package/dist/platform/control-plane/routes/fleet.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/fleet.js +153 -0
- package/dist/platform/control-plane/routes/gateway-verb-error.d.ts +30 -0
- package/dist/platform/control-plane/routes/gateway-verb-error.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/gateway-verb-error.js +36 -0
- package/dist/platform/control-plane/routes/index.d.ts +0 -6
- package/dist/platform/control-plane/routes/index.d.ts.map +1 -1
- package/dist/platform/control-plane/routes/index.js +5 -5
- package/dist/platform/control-plane/routes/invocation-params.d.ts +23 -0
- package/dist/platform/control-plane/routes/invocation-params.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/invocation-params.js +9 -0
- package/dist/platform/control-plane/routes/register-w3-s2.d.ts +26 -0
- package/dist/platform/control-plane/routes/register-w3-s2.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/register-w3-s2.js +8 -0
- package/dist/platform/control-plane/routes/session-search.d.ts +37 -0
- package/dist/platform/control-plane/routes/session-search.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/session-search.js +113 -0
- package/dist/platform/control-plane/session-broker-gc.d.ts +16 -0
- package/dist/platform/control-plane/session-broker-gc.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-gc.js +23 -6
- package/dist/platform/control-plane/session-broker-helpers.d.ts +3 -3
- package/dist/platform/control-plane/session-broker-helpers.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-inputs.d.ts +18 -0
- package/dist/platform/control-plane/session-broker-inputs.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-inputs.js +34 -0
- package/dist/platform/control-plane/session-broker-sessions.d.ts +102 -3
- package/dist/platform/control-plane/session-broker-sessions.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-sessions.js +179 -5
- package/dist/platform/control-plane/session-broker-state.d.ts +20 -1
- package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker-state.js +67 -5
- package/dist/platform/control-plane/session-broker.d.ts +51 -38
- package/dist/platform/control-plane/session-broker.d.ts.map +1 -1
- package/dist/platform/control-plane/session-broker.js +183 -75
- package/dist/platform/control-plane/session-store-importer.d.ts +57 -0
- package/dist/platform/control-plane/session-store-importer.d.ts.map +1 -0
- package/dist/platform/control-plane/session-store-importer.js +227 -0
- package/dist/platform/control-plane/session-types.d.ts +142 -7
- package/dist/platform/control-plane/session-types.d.ts.map +1 -1
- package/dist/platform/core/execution-plan.d.ts +43 -1
- package/dist/platform/core/execution-plan.d.ts.map +1 -1
- package/dist/platform/core/execution-plan.js +46 -10
- package/dist/platform/core/index.d.ts +1 -0
- package/dist/platform/core/index.d.ts.map +1 -1
- package/dist/platform/core/index.js +1 -0
- package/dist/platform/core/orchestrator-runtime.d.ts +21 -1
- package/dist/platform/core/orchestrator-runtime.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-tool-runtime.d.ts +7 -0
- package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-tool-runtime.js +10 -0
- package/dist/platform/core/orchestrator-turn-loop.d.ts +8 -1
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +6 -0
- package/dist/platform/core/orchestrator.d.ts +6 -0
- package/dist/platform/core/orchestrator.d.ts.map +1 -1
- package/dist/platform/core/orchestrator.js +15 -0
- package/dist/platform/core/plan-decomposition.d.ts +196 -0
- package/dist/platform/core/plan-decomposition.d.ts.map +1 -0
- package/dist/platform/core/plan-decomposition.js +417 -0
- package/dist/platform/core/plan-proposal.d.ts +39 -0
- package/dist/platform/core/plan-proposal.d.ts.map +1 -1
- package/dist/platform/core/wrfc-routing.d.ts +1 -0
- package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
- package/dist/platform/core/wrfc-routing.js +51 -1
- package/dist/platform/daemon/boot.d.ts +63 -0
- package/dist/platform/daemon/boot.d.ts.map +1 -0
- package/dist/platform/daemon/boot.js +60 -0
- package/dist/platform/daemon/cli.js +2 -1
- package/dist/platform/daemon/control-plane.d.ts.map +1 -1
- package/dist/platform/daemon/control-plane.js +50 -1
- package/dist/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/platform/daemon/facade-composition.js +6 -0
- package/dist/platform/daemon/facade.d.ts +18 -6
- package/dist/platform/daemon/facade.d.ts.map +1 -1
- package/dist/platform/daemon/facade.js +50 -43
- package/dist/platform/daemon/http/router-route-contexts.d.ts +1 -0
- package/dist/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
- package/dist/platform/daemon/http/router-route-contexts.js +1 -0
- package/dist/platform/daemon/http/router-session-broker-adapter.d.ts +13 -0
- package/dist/platform/daemon/http/router-session-broker-adapter.d.ts.map +1 -0
- package/dist/platform/daemon/http/router-session-broker-adapter.js +27 -0
- package/dist/platform/daemon/http/router.d.ts +1 -1
- package/dist/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/platform/daemon/http/router.js +7 -22
- package/dist/platform/daemon/http/runtime-route-types.d.ts +42 -4
- package/dist/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
- package/dist/platform/daemon/index.d.ts +2 -0
- package/dist/platform/daemon/index.d.ts.map +1 -1
- package/dist/platform/daemon/index.js +1 -0
- package/dist/platform/daemon/service-manager.d.ts +16 -0
- package/dist/platform/daemon/service-manager.d.ts.map +1 -1
- package/dist/platform/daemon/service-manager.js +79 -15
- package/dist/platform/intelligence/tree-sitter/service.d.ts.map +1 -1
- package/dist/platform/intelligence/tree-sitter/service.js +16 -2
- package/dist/platform/knowledge/browser-history/readers.d.ts.map +1 -1
- package/dist/platform/knowledge/browser-history/readers.js +15 -5
- package/dist/platform/knowledge/project-planning/service.d.ts +14 -1
- package/dist/platform/knowledge/project-planning/service.d.ts.map +1 -1
- package/dist/platform/knowledge/project-planning/service.js +77 -0
- package/dist/platform/knowledge/project-planning/types.d.ts +32 -0
- package/dist/platform/knowledge/project-planning/types.d.ts.map +1 -1
- package/dist/platform/orchestration/bookkeeping.d.ts +12 -0
- package/dist/platform/orchestration/bookkeeping.d.ts.map +1 -0
- package/dist/platform/orchestration/bookkeeping.js +91 -0
- package/dist/platform/orchestration/controller-compat.d.ts +14 -0
- package/dist/platform/orchestration/controller-compat.d.ts.map +1 -1
- package/dist/platform/orchestration/controller-compat.js +18 -4
- package/dist/platform/orchestration/engine.d.ts +26 -1
- package/dist/platform/orchestration/engine.d.ts.map +1 -1
- package/dist/platform/orchestration/engine.js +226 -21
- package/dist/platform/orchestration/index.d.ts +6 -4
- package/dist/platform/orchestration/index.d.ts.map +1 -1
- package/dist/platform/orchestration/index.js +3 -2
- package/dist/platform/orchestration/persistence.d.ts.map +1 -1
- package/dist/platform/orchestration/persistence.js +4 -1
- package/dist/platform/orchestration/phase-runner.d.ts +29 -2
- package/dist/platform/orchestration/phase-runner.d.ts.map +1 -1
- package/dist/platform/orchestration/phase-runner.js +98 -25
- package/dist/platform/orchestration/proposal-workstream.d.ts +56 -0
- package/dist/platform/orchestration/proposal-workstream.d.ts.map +1 -0
- package/dist/platform/orchestration/proposal-workstream.js +76 -0
- package/dist/platform/orchestration/scheduler.d.ts +19 -0
- package/dist/platform/orchestration/scheduler.d.ts.map +1 -1
- package/dist/platform/orchestration/scheduler.js +16 -0
- package/dist/platform/orchestration/types.d.ts +286 -1
- package/dist/platform/orchestration/types.d.ts.map +1 -1
- package/dist/platform/orchestration/types.js +32 -0
- package/dist/platform/orchestration/worktree-isolation.d.ts +33 -0
- package/dist/platform/orchestration/worktree-isolation.d.ts.map +1 -0
- package/dist/platform/orchestration/worktree-isolation.js +248 -0
- package/dist/platform/presentation/glyphs.d.ts +91 -0
- package/dist/platform/presentation/glyphs.d.ts.map +1 -0
- package/dist/platform/presentation/glyphs.js +93 -0
- package/dist/platform/presentation/index.d.ts +28 -0
- package/dist/platform/presentation/index.d.ts.map +1 -0
- package/dist/platform/presentation/index.js +27 -0
- package/dist/platform/presentation/thinking-phrases.d.ts +12 -0
- package/dist/platform/presentation/thinking-phrases.d.ts.map +1 -0
- package/dist/platform/presentation/thinking-phrases.js +32 -0
- package/dist/platform/presentation/tones.d.ts +121 -0
- package/dist/platform/presentation/tones.d.ts.map +1 -0
- package/dist/platform/presentation/tones.js +145 -0
- package/dist/platform/presentation/waiting-wording.d.ts +54 -0
- package/dist/platform/presentation/waiting-wording.d.ts.map +1 -0
- package/dist/platform/presentation/waiting-wording.js +51 -0
- package/dist/platform/providers/runtime-snapshot.d.ts.map +1 -1
- package/dist/platform/providers/runtime-snapshot.js +12 -2
- package/dist/platform/runtime/bootstrap-services.d.ts +62 -2
- package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
- package/dist/platform/runtime/bootstrap-services.js +217 -50
- package/dist/platform/runtime/daemon-version-compat.d.ts +39 -0
- package/dist/platform/runtime/daemon-version-compat.d.ts.map +1 -0
- package/dist/platform/runtime/daemon-version-compat.js +75 -0
- package/dist/platform/runtime/detached-daemon-runtime.d.ts +26 -0
- package/dist/platform/runtime/detached-daemon-runtime.d.ts.map +1 -0
- package/dist/platform/runtime/detached-daemon-runtime.js +49 -0
- package/dist/platform/runtime/emitters/workflows.d.ts +1 -1
- package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
- package/dist/platform/runtime/events/index.d.ts +13 -0
- package/dist/platform/runtime/events/index.d.ts.map +1 -1
- package/dist/platform/runtime/events/index.js +13 -0
- package/dist/platform/runtime/feature-flags/flags.d.ts.map +1 -1
- package/dist/platform/runtime/feature-flags/flags.js +39 -1
- package/dist/platform/runtime/fleet/adapters/orchestration.d.ts +40 -18
- package/dist/platform/runtime/fleet/adapters/orchestration.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/orchestration.js +138 -34
- package/dist/platform/runtime/fleet/adapters/wrfc.d.ts +13 -0
- package/dist/platform/runtime/fleet/adapters/wrfc.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/wrfc.js +48 -1
- package/dist/platform/runtime/fleet/registry.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/registry.js +38 -4
- package/dist/platform/runtime/operator-client.d.ts +20 -2
- package/dist/platform/runtime/operator-client.d.ts.map +1 -1
- package/dist/platform/runtime/operator-client.js +11 -1
- package/dist/platform/runtime/provider-accounts/registry.d.ts.map +1 -1
- package/dist/platform/runtime/provider-accounts/registry.js +11 -1
- package/dist/platform/runtime/services.d.ts +9 -7
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +19 -4
- package/dist/platform/runtime/session-spine/client.d.ts +234 -0
- package/dist/platform/runtime/session-spine/client.d.ts.map +1 -0
- package/dist/platform/runtime/session-spine/client.js +449 -0
- package/dist/platform/runtime/session-spine/index.d.ts +12 -0
- package/dist/platform/runtime/session-spine/index.d.ts.map +1 -0
- package/dist/platform/runtime/session-spine/index.js +11 -0
- package/dist/platform/runtime/session-spine/union-cache.d.ts +225 -0
- package/dist/platform/runtime/session-spine/union-cache.d.ts.map +1 -0
- package/dist/platform/runtime/session-spine/union-cache.js +333 -0
- package/dist/platform/runtime/shell-command-ops.d.ts +3 -1
- package/dist/platform/runtime/shell-command-ops.d.ts.map +1 -1
- package/dist/platform/runtime/transports/daemon-http-client-validators.d.ts.map +1 -1
- package/dist/platform/runtime/transports/daemon-http-client-validators.js +22 -0
- package/dist/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
- package/dist/platform/runtime/transports/daemon-http-client.js +25 -2
- package/dist/platform/runtime/transports/http-types.d.ts +9 -2
- package/dist/platform/runtime/transports/http-types.d.ts.map +1 -1
- package/dist/platform/state/canonical-memory.d.ts +95 -0
- package/dist/platform/state/canonical-memory.d.ts.map +1 -0
- package/dist/platform/state/canonical-memory.js +155 -0
- package/dist/platform/state/code-index-reindex.d.ts +73 -0
- package/dist/platform/state/code-index-reindex.d.ts.map +1 -0
- package/dist/platform/state/code-index-reindex.js +156 -0
- package/dist/platform/state/code-index-store.d.ts.map +1 -1
- package/dist/platform/state/code-index-store.js +10 -2
- package/dist/platform/state/index.d.ts +8 -0
- package/dist/platform/state/index.d.ts.map +1 -1
- package/dist/platform/state/index.js +4 -0
- package/dist/platform/state/memory-recall-contract.d.ts +63 -0
- package/dist/platform/state/memory-recall-contract.d.ts.map +1 -0
- package/dist/platform/state/memory-recall-contract.js +94 -0
- package/dist/platform/state/memory-store.d.ts +2 -0
- package/dist/platform/state/memory-store.d.ts.map +1 -1
- package/dist/platform/state/memory-store.js +4 -0
- package/dist/platform/state/memory-vector-store.d.ts.map +1 -1
- package/dist/platform/state/memory-vector-store.js +13 -2
- package/dist/platform/state/sqlite-store.d.ts +2 -0
- package/dist/platform/state/sqlite-store.d.ts.map +1 -1
- package/dist/platform/state/sqlite-store.js +4 -0
- package/dist/platform/state/vibe-projection.d.ts +67 -0
- package/dist/platform/state/vibe-projection.d.ts.map +1 -0
- package/dist/platform/state/vibe-projection.js +115 -0
- package/dist/platform/tools/agent/index.d.ts.map +1 -1
- package/dist/platform/tools/agent/index.js +8 -0
- package/dist/platform/tools/agent/manager.d.ts +12 -0
- package/dist/platform/tools/agent/manager.d.ts.map +1 -1
- package/dist/platform/tools/agent/manager.js +6 -0
- package/dist/platform/tools/agent/schema.d.ts +26 -0
- package/dist/platform/tools/agent/schema.d.ts.map +1 -1
- package/dist/platform/tools/agent/schema.js +2 -2
- package/dist/platform/tools/agent/wrfc-batch-policy.d.ts +13 -0
- package/dist/platform/tools/agent/wrfc-batch-policy.d.ts.map +1 -1
- package/dist/platform/tools/agent/wrfc-batch-policy.js +60 -0
- package/dist/platform/tools/exec/runtime.d.ts +10 -0
- package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
- package/dist/platform/tools/exec/runtime.js +22 -5
- package/dist/platform/tools/exec/schema.d.ts +1 -1
- package/dist/platform/tools/exec/schema.d.ts.map +1 -1
- package/dist/platform/tools/exec/schema.js +2 -1
- package/dist/platform/tools/index.d.ts +2 -0
- package/dist/platform/tools/index.d.ts.map +1 -1
- package/dist/platform/tools/index.js +2 -0
- package/dist/platform/tools/state/index.d.ts +9 -0
- package/dist/platform/tools/state/index.d.ts.map +1 -1
- package/dist/platform/tools/state/index.js +60 -3
- package/dist/platform/types/foundation-contract.d.ts +1 -1
- package/dist/platform/types/foundation-contract.d.ts.map +1 -1
- package/dist/platform/types/index.d.ts +1 -1
- package/dist/platform/types/index.d.ts.map +1 -1
- package/dist/platform/version.js +1 -1
- package/package.json +21 -9
- package/dist/platform/control-plane/routes/automation.d.ts +0 -3
- package/dist/platform/control-plane/routes/automation.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/automation.js +0 -63
- package/dist/platform/control-plane/routes/context.d.ts +0 -2
- package/dist/platform/control-plane/routes/context.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/context.js +0 -1
- package/dist/platform/control-plane/routes/operator.d.ts +0 -8
- package/dist/platform/control-plane/routes/operator.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/operator.js +0 -415
- package/dist/platform/control-plane/routes/remote.d.ts +0 -3
- package/dist/platform/control-plane/routes/remote.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/remote.js +0 -35
- package/dist/platform/control-plane/routes/sessions.d.ts +0 -3
- package/dist/platform/control-plane/routes/sessions.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/sessions.js +0 -43
- package/dist/platform/control-plane/routes/tasks.d.ts +0 -3
- package/dist/platform/control-plane/routes/tasks.d.ts.map +0 -1
- package/dist/platform/control-plane/routes/tasks.js +0 -22
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* operator-contract-schemas-fleet.ts
|
|
3
|
+
*
|
|
4
|
+
* W3-S2 — contract schemas for fleet.*, checkpoints.*, and sessions.search.
|
|
5
|
+
* Split out of operator-contract-schemas-runtime.ts (which was already at
|
|
6
|
+
* the 800-line source-file cap) rather than grown into it; re-exported
|
|
7
|
+
* through operator-contract-schemas.ts alongside the other schema modules.
|
|
8
|
+
*/
|
|
9
|
+
import { BOOLEAN_SCHEMA, NUMBER_SCHEMA, STRING_SCHEMA, arraySchema, objectSchema, } from './method-catalog-shared.js';
|
|
10
|
+
import { STRING_LIST_SCHEMA, enumSchema, nullableSchema, } from './operator-contract-schemas-shared.js';
|
|
11
|
+
import { SHARED_SESSION_KIND_READ_SCHEMA, SHARED_SESSION_RECORD_SCHEMA } from './operator-contract-schemas-runtime.js';
|
|
12
|
+
const PROCESS_KIND_SCHEMA = enumSchema([
|
|
13
|
+
'agent',
|
|
14
|
+
'wrfc-chain',
|
|
15
|
+
'wrfc-subtask',
|
|
16
|
+
'workflow',
|
|
17
|
+
'trigger',
|
|
18
|
+
'schedule',
|
|
19
|
+
'watcher',
|
|
20
|
+
'background-process',
|
|
21
|
+
'workstream',
|
|
22
|
+
'phase',
|
|
23
|
+
'work-item',
|
|
24
|
+
'code-index',
|
|
25
|
+
]);
|
|
26
|
+
const PROCESS_STATE_SCHEMA = enumSchema([
|
|
27
|
+
'thinking',
|
|
28
|
+
'executing-tool',
|
|
29
|
+
'awaiting-approval',
|
|
30
|
+
'streaming',
|
|
31
|
+
'stalled',
|
|
32
|
+
'retrying',
|
|
33
|
+
'done',
|
|
34
|
+
'failed',
|
|
35
|
+
'killed',
|
|
36
|
+
'interrupted',
|
|
37
|
+
'idle',
|
|
38
|
+
'queued',
|
|
39
|
+
'paused',
|
|
40
|
+
]);
|
|
41
|
+
const PROCESS_COST_STATE_SCHEMA = enumSchema(['priced', 'unpriced', 'estimated']);
|
|
42
|
+
const PROCESS_USAGE_SCHEMA = objectSchema({
|
|
43
|
+
inputTokens: NUMBER_SCHEMA,
|
|
44
|
+
outputTokens: NUMBER_SCHEMA,
|
|
45
|
+
cacheReadTokens: NUMBER_SCHEMA,
|
|
46
|
+
cacheWriteTokens: NUMBER_SCHEMA,
|
|
47
|
+
reasoningTokens: NUMBER_SCHEMA,
|
|
48
|
+
llmCallCount: NUMBER_SCHEMA,
|
|
49
|
+
turnCount: NUMBER_SCHEMA,
|
|
50
|
+
toolCallCount: NUMBER_SCHEMA,
|
|
51
|
+
}, ['inputTokens', 'outputTokens', 'cacheReadTokens', 'cacheWriteTokens', 'llmCallCount', 'turnCount', 'toolCallCount']);
|
|
52
|
+
const PROCESS_ACTIVITY_SCHEMA = objectSchema({
|
|
53
|
+
kind: enumSchema(['tool', 'output-line', 'phase']),
|
|
54
|
+
text: STRING_SCHEMA,
|
|
55
|
+
toolName: STRING_SCHEMA,
|
|
56
|
+
at: NUMBER_SCHEMA,
|
|
57
|
+
}, ['kind', 'text', 'at']);
|
|
58
|
+
const PROCESS_CAPABILITIES_SCHEMA = objectSchema({
|
|
59
|
+
interruptible: BOOLEAN_SCHEMA,
|
|
60
|
+
killable: BOOLEAN_SCHEMA,
|
|
61
|
+
pausable: BOOLEAN_SCHEMA,
|
|
62
|
+
resumable: BOOLEAN_SCHEMA,
|
|
63
|
+
steerable: BOOLEAN_SCHEMA,
|
|
64
|
+
}, ['interruptible', 'killable', 'pausable', 'resumable', 'steerable']);
|
|
65
|
+
const PROCESS_SESSION_REF_SCHEMA = objectSchema({
|
|
66
|
+
sessionId: STRING_SCHEMA,
|
|
67
|
+
agentId: STRING_SCHEMA,
|
|
68
|
+
}, []);
|
|
69
|
+
export const PROCESS_NODE_SCHEMA = objectSchema({
|
|
70
|
+
id: STRING_SCHEMA,
|
|
71
|
+
kind: PROCESS_KIND_SCHEMA,
|
|
72
|
+
parentId: STRING_SCHEMA,
|
|
73
|
+
label: STRING_SCHEMA,
|
|
74
|
+
task: STRING_SCHEMA,
|
|
75
|
+
state: PROCESS_STATE_SCHEMA,
|
|
76
|
+
startedAt: NUMBER_SCHEMA,
|
|
77
|
+
completedAt: NUMBER_SCHEMA,
|
|
78
|
+
elapsedMs: NUMBER_SCHEMA,
|
|
79
|
+
usage: PROCESS_USAGE_SCHEMA,
|
|
80
|
+
model: STRING_SCHEMA,
|
|
81
|
+
provider: STRING_SCHEMA,
|
|
82
|
+
costUsd: nullableSchema(NUMBER_SCHEMA),
|
|
83
|
+
costState: PROCESS_COST_STATE_SCHEMA,
|
|
84
|
+
currentActivity: PROCESS_ACTIVITY_SCHEMA,
|
|
85
|
+
capabilities: PROCESS_CAPABILITIES_SCHEMA,
|
|
86
|
+
sessionRef: PROCESS_SESSION_REF_SCHEMA,
|
|
87
|
+
}, ['id', 'kind', 'label', 'state', 'elapsedMs', 'costState', 'capabilities'], { additionalProperties: true });
|
|
88
|
+
export const FLEET_SNAPSHOT_OUTPUT_SCHEMA = objectSchema({
|
|
89
|
+
capturedAt: NUMBER_SCHEMA,
|
|
90
|
+
nodes: arraySchema(PROCESS_NODE_SCHEMA),
|
|
91
|
+
truncated: BOOLEAN_SCHEMA,
|
|
92
|
+
totalCount: NUMBER_SCHEMA,
|
|
93
|
+
}, ['capturedAt', 'nodes', 'truncated', 'totalCount']);
|
|
94
|
+
export const FLEET_LIST_INPUT_SCHEMA = objectSchema({
|
|
95
|
+
kinds: STRING_LIST_SCHEMA,
|
|
96
|
+
states: STRING_LIST_SCHEMA,
|
|
97
|
+
limit: NUMBER_SCHEMA,
|
|
98
|
+
cursor: STRING_SCHEMA,
|
|
99
|
+
}, []);
|
|
100
|
+
export const FLEET_LIST_OUTPUT_SCHEMA = objectSchema({
|
|
101
|
+
items: arraySchema(PROCESS_NODE_SCHEMA),
|
|
102
|
+
nextCursor: STRING_SCHEMA,
|
|
103
|
+
hasMore: BOOLEAN_SCHEMA,
|
|
104
|
+
capturedAt: NUMBER_SCHEMA,
|
|
105
|
+
}, ['items', 'hasMore', 'capturedAt']);
|
|
106
|
+
const CHECKPOINT_KIND_SCHEMA = enumSchema(['turn', 'agent-run', 'manual']);
|
|
107
|
+
const RETENTION_CLASS_SCHEMA = enumSchema(['short', 'standard', 'forensic']);
|
|
108
|
+
export const WORKSPACE_CHECKPOINT_SCHEMA = objectSchema({
|
|
109
|
+
id: STRING_SCHEMA,
|
|
110
|
+
kind: CHECKPOINT_KIND_SCHEMA,
|
|
111
|
+
label: STRING_SCHEMA,
|
|
112
|
+
createdAt: NUMBER_SCHEMA,
|
|
113
|
+
parentId: nullableSchema(STRING_SCHEMA),
|
|
114
|
+
turnId: STRING_SCHEMA,
|
|
115
|
+
agentId: STRING_SCHEMA,
|
|
116
|
+
retentionClass: RETENTION_CLASS_SCHEMA,
|
|
117
|
+
commit: STRING_SCHEMA,
|
|
118
|
+
sizeBytes: NUMBER_SCHEMA,
|
|
119
|
+
}, ['id', 'kind', 'label', 'createdAt', 'parentId', 'retentionClass', 'commit', 'sizeBytes']);
|
|
120
|
+
export const CHECKPOINTS_LIST_INPUT_SCHEMA = objectSchema({
|
|
121
|
+
kind: CHECKPOINT_KIND_SCHEMA,
|
|
122
|
+
since: NUMBER_SCHEMA,
|
|
123
|
+
limit: NUMBER_SCHEMA,
|
|
124
|
+
}, []);
|
|
125
|
+
export const CHECKPOINTS_LIST_OUTPUT_SCHEMA = objectSchema({
|
|
126
|
+
checkpoints: arraySchema(WORKSPACE_CHECKPOINT_SCHEMA),
|
|
127
|
+
}, ['checkpoints']);
|
|
128
|
+
export const CHECKPOINTS_CREATE_INPUT_SCHEMA = objectSchema({
|
|
129
|
+
kind: CHECKPOINT_KIND_SCHEMA,
|
|
130
|
+
label: STRING_SCHEMA,
|
|
131
|
+
retentionClass: RETENTION_CLASS_SCHEMA,
|
|
132
|
+
turnId: STRING_SCHEMA,
|
|
133
|
+
agentId: STRING_SCHEMA,
|
|
134
|
+
paths: STRING_LIST_SCHEMA,
|
|
135
|
+
}, ['kind']);
|
|
136
|
+
export const CHECKPOINTS_CREATE_OUTPUT_SCHEMA = objectSchema({
|
|
137
|
+
checkpoint: nullableSchema(WORKSPACE_CHECKPOINT_SCHEMA),
|
|
138
|
+
noop: BOOLEAN_SCHEMA,
|
|
139
|
+
}, ['checkpoint', 'noop']);
|
|
140
|
+
export const CHECKPOINT_DIFF_SCHEMA = objectSchema({
|
|
141
|
+
from: STRING_SCHEMA,
|
|
142
|
+
to: STRING_SCHEMA,
|
|
143
|
+
files: STRING_LIST_SCHEMA,
|
|
144
|
+
unifiedDiff: STRING_SCHEMA,
|
|
145
|
+
stat: STRING_SCHEMA,
|
|
146
|
+
}, ['from', 'to', 'files', 'unifiedDiff', 'stat']);
|
|
147
|
+
export const CHECKPOINTS_DIFF_INPUT_SCHEMA = objectSchema({
|
|
148
|
+
a: STRING_SCHEMA,
|
|
149
|
+
b: STRING_SCHEMA,
|
|
150
|
+
}, ['a']);
|
|
151
|
+
export const CHECKPOINTS_DIFF_OUTPUT_SCHEMA = objectSchema({
|
|
152
|
+
diff: CHECKPOINT_DIFF_SCHEMA,
|
|
153
|
+
}, ['diff']);
|
|
154
|
+
export const CHECKPOINT_RESTORE_RESULT_SCHEMA = objectSchema({
|
|
155
|
+
checkpointId: STRING_SCHEMA,
|
|
156
|
+
safetyCheckpointId: nullableSchema(STRING_SCHEMA),
|
|
157
|
+
restoredFiles: STRING_LIST_SCHEMA,
|
|
158
|
+
removedFiles: STRING_LIST_SCHEMA,
|
|
159
|
+
}, ['checkpointId', 'safetyCheckpointId', 'restoredFiles', 'removedFiles']);
|
|
160
|
+
export const CHECKPOINTS_RESTORE_INPUT_SCHEMA = objectSchema({
|
|
161
|
+
id: STRING_SCHEMA,
|
|
162
|
+
paths: STRING_LIST_SCHEMA,
|
|
163
|
+
safetyCheckpoint: BOOLEAN_SCHEMA,
|
|
164
|
+
}, ['id']);
|
|
165
|
+
export const CHECKPOINTS_RESTORE_OUTPUT_SCHEMA = objectSchema({
|
|
166
|
+
result: CHECKPOINT_RESTORE_RESULT_SCHEMA,
|
|
167
|
+
}, ['result']);
|
|
168
|
+
export const SESSIONS_SEARCH_INPUT_SCHEMA = objectSchema({
|
|
169
|
+
query: STRING_SCHEMA,
|
|
170
|
+
project: STRING_SCHEMA,
|
|
171
|
+
kind: SHARED_SESSION_KIND_READ_SCHEMA,
|
|
172
|
+
surfaceKind: STRING_SCHEMA,
|
|
173
|
+
status: enumSchema(['active', 'closed']),
|
|
174
|
+
includeClosed: BOOLEAN_SCHEMA,
|
|
175
|
+
limit: NUMBER_SCHEMA,
|
|
176
|
+
cursor: STRING_SCHEMA,
|
|
177
|
+
}, []);
|
|
178
|
+
export const SESSIONS_SEARCH_OUTPUT_SCHEMA = objectSchema({
|
|
179
|
+
sessions: arraySchema(SHARED_SESSION_RECORD_SCHEMA),
|
|
180
|
+
nextCursor: STRING_SCHEMA,
|
|
181
|
+
hasMore: BOOLEAN_SCHEMA,
|
|
182
|
+
}, ['sessions', 'hasMore']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-contract-schemas-permissions.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-permissions.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,0BAA0B,yBAAuD,CAAC;AAC/F,eAAO,MAAM,4BAA4B,yBAAoD,CAAC;AAC9F,eAAO,MAAM,sCAAsC,yBAA4D,CAAC;AAChH,eAAO,MAAM,kCAAkC,yBAAyF,CAAC;AACzI,eAAO,MAAM,8BAA8B,yBAAwE,CAAC;AAEpH,eAAO,MAAM,yCAAyC,yBAWoC,CAAC;AAE3F,eAAO,MAAM,gCAAgC,yBAO0C,CAAC;AAExF,eAAO,MAAM,iCAAiC,
|
|
1
|
+
{"version":3,"file":"operator-contract-schemas-permissions.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-permissions.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,0BAA0B,yBAAuD,CAAC;AAC/F,eAAO,MAAM,4BAA4B,yBAAoD,CAAC;AAC9F,eAAO,MAAM,sCAAsC,yBAA4D,CAAC;AAChH,eAAO,MAAM,kCAAkC,yBAAyF,CAAC;AACzI,eAAO,MAAM,8BAA8B,yBAAwE,CAAC;AAEpH,eAAO,MAAM,yCAAyC,yBAWoC,CAAC;AAE3F,eAAO,MAAM,gCAAgC,yBAO0C,CAAC;AAExF,eAAO,MAAM,iCAAiC,yBAQG,CAAC;AAElD,eAAO,MAAM,sBAAsB,yBAMjC,CAAC;AACH,eAAO,MAAM,wCAAwC,yBAQnD,CAAC;AACH,eAAO,MAAM,kCAAkC,yBAAiD,CAAC;AACjG,eAAO,MAAM,8BAA8B,yBAOzC,CAAC;AACH,eAAO,MAAM,iCAAiC,yBAc5C,CAAC;AAEH,eAAO,MAAM,kCAAkC,yBAasG,CAAC"}
|
|
@@ -28,6 +28,11 @@ export const PERMISSION_PROMPT_REQUEST_SCHEMA = objectSchema({
|
|
|
28
28
|
export const PERMISSION_PROMPT_DECISION_SCHEMA = objectSchema({
|
|
29
29
|
approved: BOOLEAN_SCHEMA,
|
|
30
30
|
remember: BOOLEAN_SCHEMA,
|
|
31
|
+
// Present when a per-hunk (or otherwise argument-modifying) approval replaced
|
|
32
|
+
// the tool call's original args — e.g. the edit-tool `edits` array filtered to
|
|
33
|
+
// the approved hunks. Computed server-side by the approval broker so every
|
|
34
|
+
// surface sees the same modified args on the resolved decision.
|
|
35
|
+
modifiedArgs: TOOL_ARGUMENTS_SCHEMA,
|
|
31
36
|
}, ['approved'], { additionalProperties: false });
|
|
32
37
|
export const PERMISSION_MODE_SCHEMA = enumSchema([
|
|
33
38
|
'default',
|
|
@@ -1,4 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* READ-path kind schema: an OPEN enum. The known kinds are the same set as
|
|
3
|
+
* {@link SHARED_SESSION_KIND_SCHEMA}, but response/output validation must accept
|
|
4
|
+
* an unknown `kind` string per-record instead of hard-failing the whole envelope
|
|
5
|
+
* — a mixed-version daemon (or a future build) can emit a kind this reader does
|
|
6
|
+
* not model, and the tolerant normalizer downstream (`normalizeSharedSessionRecord`)
|
|
7
|
+
* already maps an unknown kind to the documented 'tui' fallback while preserving
|
|
8
|
+
* the raw value under `metadata.wireKind`. See
|
|
9
|
+
* docs/decisions/2026-07-05-session-wire-mixed-version.md (the enum leg). Writes
|
|
10
|
+
* stay strict: {@link SHARED_SESSION_REGISTER_INPUT_SCHEMA} keeps the closed enum
|
|
11
|
+
* so `sessions.register` still 400s on an unknown kind.
|
|
12
|
+
*/
|
|
13
|
+
export declare const SHARED_SESSION_KIND_READ_SCHEMA: Record<string, unknown>;
|
|
1
14
|
export declare const SHARED_SESSION_PARTICIPANT_SCHEMA: Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* Input to sessions.register — the idempotent registration + heartbeat upsert
|
|
17
|
+
* keyed on the caller-supplied `sessionId`. Carries the identity spine
|
|
18
|
+
* (kind + project + participant triple). Re-calling with the same id is the
|
|
19
|
+
* heartbeat (advances participant.lastSeenAt).
|
|
20
|
+
*/
|
|
21
|
+
export declare const SHARED_SESSION_REGISTER_INPUT_SCHEMA: Record<string, unknown>;
|
|
2
22
|
export declare const SHARED_SESSION_MESSAGE_SCHEMA: Record<string, unknown>;
|
|
3
23
|
export declare const SHARED_SESSION_RECORD_SCHEMA: Record<string, unknown>;
|
|
4
24
|
export declare const COMPANION_CHAT_SESSION_SCHEMA: Record<string, unknown>;
|
|
@@ -13,6 +33,14 @@ export declare const SESSION_BROKER_SNAPSHOT_SCHEMA: Record<string, unknown>;
|
|
|
13
33
|
export declare const SHARED_SESSION_WITH_MESSAGES_SCHEMA: Record<string, unknown>;
|
|
14
34
|
export declare const SHARED_SESSION_WITH_INPUTS_SCHEMA: Record<string, unknown>;
|
|
15
35
|
export declare const SHARED_SESSION_CREATE_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* Output of sessions.register. Beyond the record it carries honest lifecycle
|
|
38
|
+
* disposition: `reopened` is true only when this call reopened a closed session,
|
|
39
|
+
* and `conflict` is present (status:'closed') when register targeted a closed
|
|
40
|
+
* session WITHOUT reopen:true — the heartbeat was recorded but the session was
|
|
41
|
+
* left closed.
|
|
42
|
+
*/
|
|
43
|
+
export declare const SHARED_SESSION_REGISTER_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
16
44
|
export declare const SHARED_SESSION_CONVERSATION_ROUTE_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
17
45
|
export declare const SHARED_SESSION_MESSAGE_CREATE_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
18
46
|
export declare const SHARED_SESSION_MESSAGE_ROUTE_OUTPUT_SCHEMA: {
|
|
@@ -28,6 +56,7 @@ export declare const TASK_STATUS_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
|
28
56
|
export declare const SHARED_APPROVAL_RECORD_SCHEMA: Record<string, unknown>;
|
|
29
57
|
export declare const APPROVAL_SNAPSHOT_SCHEMA: Record<string, unknown>;
|
|
30
58
|
export declare const APPROVAL_ACTION_INPUT_SCHEMA: Record<string, unknown>;
|
|
59
|
+
export declare const APPROVAL_APPROVE_INPUT_SCHEMA: Record<string, unknown>;
|
|
31
60
|
export declare const APPROVAL_ACTION_OUTPUT_SCHEMA: Record<string, unknown>;
|
|
32
61
|
export declare const PROVIDER_RUNTIME_SNAPSHOT_SCHEMA: Record<string, unknown>;
|
|
33
62
|
export declare const PROVIDER_USAGE_SNAPSHOT_SCHEMA: Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-contract-schemas-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operator-contract-schemas-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas-runtime.ts"],"names":[],"mappings":"AAmCA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,+BAA+B,EAAyB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AA6B7F,eAAO,MAAM,iCAAiC,yBAQA,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,yBAOe,CAAC;AAEjE,eAAO,MAAM,6BAA6B,yBAasB,CAAC;AAEjE,eAAO,MAAM,4BAA4B,yBAuBqI,CAAC;AAE/K,eAAO,MAAM,6BAA6B,yBAYsF,CAAC;AAEjI,eAAO,MAAM,6BAA6B,yBAO4B,CAAC;AAEvE,eAAO,MAAM,2CAA2C,yBAG7B,CAAC;AAE5B,eAAO,MAAM,mCAAmC,yBAOtB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,yBAGnB,CAAC;AAE9B,eAAO,MAAM,oCAAoC,yBAkB/C,CAAC;AAEH,eAAO,MAAM,kCAAkC,yBAqB0D,CAAC;AAE1G,eAAO,MAAM,uBAAuB,yBAWoE,CAAC;AAEzG,eAAO,MAAM,8BAA8B,yBAOjB,CAAC;AAE3B,eAAO,MAAM,mCAAmC,yBAGrB,CAAC;AAE5B,eAAO,MAAM,iCAAiC,yBAGrB,CAAC;AAE1B,eAAO,MAAM,mCAAmC,yBAEjC,CAAC;AAEhB;;;;;;GAMG;AACH,eAAO,MAAM,qCAAqC,yBAIvB,CAAC;AAE5B,eAAO,MAAM,+CAA+C,yBAIlB,CAAC;AAE3C,eAAO,MAAM,2CAA2C,yBAMF,CAAC;AAEvD,eAAO,MAAM,0CAA0C;;CAK7C,CAAC;AAUX,eAAO,MAAM,mBAAmB,yBAqByD,CAAC;AAE1F,eAAO,MAAM,oBAAoB,yBAsBsB,CAAC;AAExD,eAAO,MAAM,wBAAwB,yBAgBO,CAAC;AAE7C,eAAO,MAAM,yBAAyB,yBASc,CAAC;AAErD,eAAO,MAAM,kBAAkB,yBAEnB,CAAC;AAEb,eAAO,MAAM,yBAAyB,yBAIM,CAAC;AAE7C,eAAO,MAAM,yBAAyB,yBAUiE,CAAC;AAWxG,eAAO,MAAM,6BAA6B,yBAgB8C,CAAC;AAEzF,eAAO,MAAM,wBAAwB,yBASuG,CAAC;AAE7I,eAAO,MAAM,4BAA4B,yBAIU,CAAC;AAOpD,eAAO,MAAM,6BAA6B,yBAKS,CAAC;AAEpD,eAAO,MAAM,6BAA6B,yBAE1B,CAAC;AA0EjB,eAAO,MAAM,gCAAgC,yBAMkB,CAAC;AAEhE,eAAO,MAAM,8BAA8B,yBAcqD,CAAC;AAqEjG,eAAO,MAAM,gCAAgC,yBAKmB,CAAC;AAEjE,eAAO,MAAM,sBAAsB,yBAcyF,CAAC;AAE7H,eAAO,MAAM,4BAA4B,yBASyG,CAAC;AAqBnJ,eAAO,MAAM,0BAA0B,yBAUyH,CAAC;AAEjK,eAAO,MAAM,2BAA2B,yBAIC,CAAC"}
|
|
@@ -13,10 +13,23 @@ const INBOUND_SERVER_SURFACE_SCHEMA = enumSchema(['controlPlane', 'httpListener'
|
|
|
13
13
|
const INBOUND_TLS_MODE_SCHEMA = enumSchema(['off', 'proxy', 'direct']);
|
|
14
14
|
const OUTBOUND_TRUST_MODE_SCHEMA = enumSchema(['bundled', 'bundled+custom', 'custom']);
|
|
15
15
|
const OUTBOUND_CA_STRATEGY_SCHEMA = enumSchema(['bun-default', 'bundled+custom', 'custom']);
|
|
16
|
-
const SHARED_SESSION_KIND_SCHEMA = enumSchema(['tui', 'companion-task', 'companion-chat']);
|
|
16
|
+
const SHARED_SESSION_KIND_SCHEMA = enumSchema(['tui', 'agent', 'webui', 'companion-task', 'companion-chat', 'automation']);
|
|
17
|
+
/**
|
|
18
|
+
* READ-path kind schema: an OPEN enum. The known kinds are the same set as
|
|
19
|
+
* {@link SHARED_SESSION_KIND_SCHEMA}, but response/output validation must accept
|
|
20
|
+
* an unknown `kind` string per-record instead of hard-failing the whole envelope
|
|
21
|
+
* — a mixed-version daemon (or a future build) can emit a kind this reader does
|
|
22
|
+
* not model, and the tolerant normalizer downstream (`normalizeSharedSessionRecord`)
|
|
23
|
+
* already maps an unknown kind to the documented 'tui' fallback while preserving
|
|
24
|
+
* the raw value under `metadata.wireKind`. See
|
|
25
|
+
* docs/decisions/2026-07-05-session-wire-mixed-version.md (the enum leg). Writes
|
|
26
|
+
* stay strict: {@link SHARED_SESSION_REGISTER_INPUT_SCHEMA} keeps the closed enum
|
|
27
|
+
* so `sessions.register` still 400s on an unknown kind.
|
|
28
|
+
*/
|
|
29
|
+
export const SHARED_SESSION_KIND_READ_SCHEMA = { type: 'string' };
|
|
17
30
|
const SHARED_SESSION_INPUT_INTENT_SCHEMA = enumSchema(['submit', 'steer', 'follow-up']);
|
|
18
31
|
const SHARED_SESSION_INPUT_STATE_SCHEMA = enumSchema(['queued', 'delivered', 'spawned', 'completed', 'cancelled', 'failed', 'rejected']);
|
|
19
|
-
const SHARED_SESSION_MESSAGE_MODE_SCHEMA = enumSchema(['spawn', 'continued-live', 'queued-follow-up', 'rejected']);
|
|
32
|
+
const SHARED_SESSION_MESSAGE_MODE_SCHEMA = enumSchema(['spawn', 'continued-live', 'queued-follow-up', 'queued-for-surface', 'rejected']);
|
|
20
33
|
const COMPANION_CHAT_SESSION_STATUS_SCHEMA = enumSchema(['active', 'closed']);
|
|
21
34
|
const COMPANION_CHAT_MESSAGE_ROLE_SCHEMA = enumSchema(['user', 'assistant']);
|
|
22
35
|
const PROVIDER_SELECTION_SCHEMA = enumSchema(['inherit-current', 'concrete', 'synthetic']);
|
|
@@ -49,6 +62,20 @@ export const SHARED_SESSION_PARTICIPANT_SCHEMA = objectSchema({
|
|
|
49
62
|
routeId: STRING_SCHEMA,
|
|
50
63
|
lastSeenAt: NUMBER_SCHEMA,
|
|
51
64
|
}, ['surfaceKind', 'surfaceId', 'lastSeenAt']);
|
|
65
|
+
/**
|
|
66
|
+
* Input to sessions.register — the idempotent registration + heartbeat upsert
|
|
67
|
+
* keyed on the caller-supplied `sessionId`. Carries the identity spine
|
|
68
|
+
* (kind + project + participant triple). Re-calling with the same id is the
|
|
69
|
+
* heartbeat (advances participant.lastSeenAt).
|
|
70
|
+
*/
|
|
71
|
+
export const SHARED_SESSION_REGISTER_INPUT_SCHEMA = objectSchema({
|
|
72
|
+
sessionId: STRING_SCHEMA,
|
|
73
|
+
kind: SHARED_SESSION_KIND_SCHEMA,
|
|
74
|
+
project: STRING_SCHEMA,
|
|
75
|
+
title: STRING_SCHEMA,
|
|
76
|
+
participant: SHARED_SESSION_PARTICIPANT_SCHEMA,
|
|
77
|
+
reopen: BOOLEAN_SCHEMA,
|
|
78
|
+
}, ['sessionId', 'participant'], { additionalProperties: true });
|
|
52
79
|
export const SHARED_SESSION_MESSAGE_SCHEMA = objectSchema({
|
|
53
80
|
id: STRING_SCHEMA,
|
|
54
81
|
sessionId: STRING_SCHEMA,
|
|
@@ -65,7 +92,10 @@ export const SHARED_SESSION_MESSAGE_SCHEMA = objectSchema({
|
|
|
65
92
|
}, ['id', 'sessionId', 'role', 'body', 'createdAt', 'metadata']);
|
|
66
93
|
export const SHARED_SESSION_RECORD_SCHEMA = objectSchema({
|
|
67
94
|
id: STRING_SCHEMA,
|
|
68
|
-
|
|
95
|
+
// Open on READ: an unknown kind must not blank the record (or, per-record, the
|
|
96
|
+
// whole list). Write validation stays strict via SHARED_SESSION_REGISTER_INPUT_SCHEMA.
|
|
97
|
+
kind: SHARED_SESSION_KIND_READ_SCHEMA,
|
|
98
|
+
project: STRING_SCHEMA,
|
|
69
99
|
title: STRING_SCHEMA,
|
|
70
100
|
status: enumSchema(['active', 'closed']),
|
|
71
101
|
createdAt: NUMBER_SCHEMA,
|
|
@@ -74,6 +104,7 @@ export const SHARED_SESSION_RECORD_SCHEMA = objectSchema({
|
|
|
74
104
|
closedAt: NUMBER_SCHEMA,
|
|
75
105
|
lastActivityAt: NUMBER_SCHEMA,
|
|
76
106
|
messageCount: NUMBER_SCHEMA,
|
|
107
|
+
retainedMessageCount: NUMBER_SCHEMA,
|
|
77
108
|
pendingInputCount: NUMBER_SCHEMA,
|
|
78
109
|
routeIds: STRING_LIST_SCHEMA,
|
|
79
110
|
surfaceKinds: STRING_LIST_SCHEMA,
|
|
@@ -192,6 +223,18 @@ export const SHARED_SESSION_WITH_INPUTS_SCHEMA = objectSchema({
|
|
|
192
223
|
export const SHARED_SESSION_CREATE_OUTPUT_SCHEMA = objectSchema({
|
|
193
224
|
session: SHARED_SESSION_RECORD_SCHEMA,
|
|
194
225
|
}, ['session']);
|
|
226
|
+
/**
|
|
227
|
+
* Output of sessions.register. Beyond the record it carries honest lifecycle
|
|
228
|
+
* disposition: `reopened` is true only when this call reopened a closed session,
|
|
229
|
+
* and `conflict` is present (status:'closed') when register targeted a closed
|
|
230
|
+
* session WITHOUT reopen:true — the heartbeat was recorded but the session was
|
|
231
|
+
* left closed.
|
|
232
|
+
*/
|
|
233
|
+
export const SHARED_SESSION_REGISTER_OUTPUT_SCHEMA = objectSchema({
|
|
234
|
+
session: SHARED_SESSION_RECORD_SCHEMA,
|
|
235
|
+
reopened: BOOLEAN_SCHEMA,
|
|
236
|
+
conflict: objectSchema({ status: enumSchema(['closed']) }, ['status']),
|
|
237
|
+
}, ['session', 'reopened']);
|
|
195
238
|
export const SHARED_SESSION_CONVERSATION_ROUTE_OUTPUT_SCHEMA = objectSchema({
|
|
196
239
|
messageId: STRING_SCHEMA,
|
|
197
240
|
routedTo: STRING_SCHEMA,
|
|
@@ -348,6 +391,17 @@ export const APPROVAL_ACTION_INPUT_SCHEMA = objectSchema({
|
|
|
348
391
|
note: STRING_SCHEMA,
|
|
349
392
|
remember: BOOLEAN_SCHEMA,
|
|
350
393
|
}, ['approvalId'], { additionalProperties: false });
|
|
394
|
+
// approvals.approve additionally accepts an optional per-hunk selection. Absent
|
|
395
|
+
// selectedHunks = approve the whole request (exact back-compat). When present,
|
|
396
|
+
// the broker filters the edit-tool `edits` array to those indices server-side
|
|
397
|
+
// so TUI and webui produce identical modified-edit args; an out-of-range index
|
|
398
|
+
// or a non-edit approval is a 400.
|
|
399
|
+
export const APPROVAL_APPROVE_INPUT_SCHEMA = objectSchema({
|
|
400
|
+
approvalId: STRING_SCHEMA,
|
|
401
|
+
note: STRING_SCHEMA,
|
|
402
|
+
remember: BOOLEAN_SCHEMA,
|
|
403
|
+
selectedHunks: arraySchema(NUMBER_SCHEMA),
|
|
404
|
+
}, ['approvalId'], { additionalProperties: false });
|
|
351
405
|
export const APPROVAL_ACTION_OUTPUT_SCHEMA = objectSchema({
|
|
352
406
|
approval: SHARED_APPROVAL_RECORD_SCHEMA,
|
|
353
407
|
}, ['approval']);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './operator-contract-schemas-control.js';
|
|
2
2
|
export * from './operator-contract-schemas-domains.js';
|
|
3
|
+
export * from './operator-contract-schemas-fleet.js';
|
|
3
4
|
export * from './operator-contract-schemas-permissions.js';
|
|
4
5
|
export * from './operator-contract-schemas-remote.js';
|
|
5
6
|
export * from './operator-contract-schemas-runtime.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-contract-schemas.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC"}
|
|
1
|
+
{"version":3,"file":"operator-contract-schemas.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract-schemas.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AACrD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AACvD,cAAc,0CAA0C,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './operator-contract-schemas-control.js';
|
|
2
2
|
export * from './operator-contract-schemas-domains.js';
|
|
3
|
+
export * from './operator-contract-schemas-fleet.js';
|
|
3
4
|
export * from './operator-contract-schemas-permissions.js';
|
|
4
5
|
export * from './operator-contract-schemas-remote.js';
|
|
5
6
|
export * from './operator-contract-schemas-runtime.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator-contract.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,oBAAoB,EAA2B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"operator-contract.d.ts","sourceRoot":"","sources":["../../../src/platform/control-plane/operator-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,oBAAoB,EAA2B,MAAM,qBAAqB,CAAC;AAkBjH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAYhF,YAAY,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAqBhF,eAAO,MAAM,wBAAwB,yBA4E+B,CAAC;AAoErE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,wBAAwB,CA0B7F"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getOperatorContract } from '@pellux/goodvibes-contracts';
|
|
2
2
|
import { BOOLEAN_SCHEMA, METHOD_DESCRIPTOR_SCHEMA, EVENT_DESCRIPTOR_SCHEMA, NUMBER_SCHEMA, STRING_SCHEMA, arraySchema, objectSchema, } from './method-catalog-shared.js';
|
|
3
3
|
import { CONTROL_AUTH_CURRENT_RESPONSE_SCHEMA, CONTROL_AUTH_LOGIN_REQUEST_SCHEMA, CONTROL_AUTH_LOGIN_RESPONSE_SCHEMA, } from './operator-contract-schemas.js';
|
|
4
|
+
import { summarizeInvokeValidationCoverage } from './invoke-input-validation.js';
|
|
4
5
|
import { VERSION } from '../version.js';
|
|
5
6
|
import { OPERATOR_SESSION_COOKIE_NAME } from '../security/http-auth.js';
|
|
6
7
|
const OPERATOR_CONTRACT_VERSION = 1;
|
|
@@ -79,6 +80,12 @@ export const OPERATOR_CONTRACT_SCHEMA = objectSchema({
|
|
|
79
80
|
withDomains: NUMBER_SCHEMA,
|
|
80
81
|
withWireEvents: NUMBER_SCHEMA,
|
|
81
82
|
}, ['events', 'withDomains', 'withWireEvents']),
|
|
83
|
+
validationCoverage: objectSchema({
|
|
84
|
+
methods: NUMBER_SCHEMA,
|
|
85
|
+
validated: NUMBER_SCHEMA,
|
|
86
|
+
skippedGeneric: NUMBER_SCHEMA,
|
|
87
|
+
skippedUntyped: NUMBER_SCHEMA,
|
|
88
|
+
}, ['methods', 'validated', 'skippedGeneric', 'skippedUntyped']),
|
|
82
89
|
}, ['methods', 'events', 'schemaCoverage', 'eventCoverage']),
|
|
83
90
|
peer: objectSchema({
|
|
84
91
|
contractPath: STRING_SCHEMA,
|
|
@@ -171,6 +178,7 @@ export function buildOperatorContract(catalog) {
|
|
|
171
178
|
events,
|
|
172
179
|
schemaCoverage: summarizeSchemaCoverage(catalog.list()),
|
|
173
180
|
eventCoverage: summarizeEventCoverage(catalog.listEvents()),
|
|
181
|
+
validationCoverage: summarizeInvokeValidationCoverage(catalog.list()),
|
|
174
182
|
},
|
|
175
183
|
};
|
|
176
184
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* routes/checkpoints.ts
|
|
3
|
+
*
|
|
4
|
+
* W3-S2 — `checkpoints.list` / `checkpoints.create` / `checkpoints.diff` /
|
|
5
|
+
* `checkpoints.restore` gateway-method handlers over the ALREADY
|
|
6
|
+
* daemon-resident `WorkspaceCheckpointManager` (constructed +
|
|
7
|
+
* eagerly-`init()`'d at ../../runtime/services.ts:620, exposed on
|
|
8
|
+
* RuntimeServices at :245). Thin verb registration over an existing manager
|
|
9
|
+
* — see routes/fleet.ts's header comment for the full rationale on why these
|
|
10
|
+
* are wired via `GatewayMethodCatalog.register(descriptor, handler)` instead
|
|
11
|
+
* of a daemon-sdk REST route or a router.ts change.
|
|
12
|
+
*
|
|
13
|
+
* IMPORTANT (brief-mandated, do not "fix"): `checkpoints.restore` executes
|
|
14
|
+
* the restore immediately, with NO server-side confirmation gate. The TUI
|
|
15
|
+
* gates this behind a confirm overlay in the UI layer
|
|
16
|
+
* (src/input/commands/checkpoint-runtime.ts, DiffPanel.confirmOverlay) —
|
|
17
|
+
* confirmation is the CALLING SURFACE's responsibility, not the wire verb's.
|
|
18
|
+
* A future caller (webui) that fires this unguarded will perform a real
|
|
19
|
+
* git-backed workspace rewrite.
|
|
20
|
+
*/
|
|
21
|
+
import type { GatewayMethodCatalog } from '../method-catalog.js';
|
|
22
|
+
import type { GatewayMethodHandler } from '../method-catalog-shared.js';
|
|
23
|
+
import type { WorkspaceCheckpointManager } from '../../workspace/checkpoint/manager.js';
|
|
24
|
+
/** Structural deps — the read/write surface `checkpoints.*` needs. */
|
|
25
|
+
export type CheckpointsGatewayManager = Pick<WorkspaceCheckpointManager, 'list' | 'create' | 'diff' | 'restore'>;
|
|
26
|
+
export declare function createCheckpointsListHandler(manager: CheckpointsGatewayManager): GatewayMethodHandler;
|
|
27
|
+
export declare function createCheckpointsCreateHandler(manager: CheckpointsGatewayManager): GatewayMethodHandler;
|
|
28
|
+
export declare function createCheckpointsDiffHandler(manager: CheckpointsGatewayManager): GatewayMethodHandler;
|
|
29
|
+
export declare function createCheckpointsRestoreHandler(manager: CheckpointsGatewayManager): GatewayMethodHandler;
|
|
30
|
+
/**
|
|
31
|
+
* Attach the `checkpoints.*` handlers to the descriptors already registered
|
|
32
|
+
* (without a handler) from ../method-catalog-control-core.ts's static
|
|
33
|
+
* builtin array. Call once, at RuntimeServices construction time, after
|
|
34
|
+
* `workspaceCheckpointManager` exists. A missing descriptor is a silent
|
|
35
|
+
* no-op — see routes/fleet.ts's `registerFleetGatewayMethods` for the same
|
|
36
|
+
* rationale.
|
|
37
|
+
*/
|
|
38
|
+
export declare function registerCheckpointGatewayMethods(catalog: GatewayMethodCatalog, manager: CheckpointsGatewayManager): void;
|
|
39
|
+
//# sourceMappingURL=checkpoints.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoints.d.ts","sourceRoot":"","sources":["../../../../src/platform/control-plane/routes/checkpoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AA8GxF,sEAAsE;AACtE,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAAC,0BAA0B,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;AAEjH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,yBAAyB,GAAG,oBAAoB,CASrG;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,yBAAyB,GAAG,oBAAoB,CAkBvG;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,yBAAyB,GAAG,oBAAoB,CAQrG;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,yBAAyB,GAAG,oBAAoB,CAUxG;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAYxH"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { GatewayVerbError } from './gateway-verb-error.js';
|
|
2
|
+
import { readInvocationParams } from './invocation-params.js';
|
|
3
|
+
const CHECKPOINT_KINDS = ['turn', 'agent-run', 'manual'];
|
|
4
|
+
const RETENTION_CLASSES = ['short', 'standard', 'forensic'];
|
|
5
|
+
const CHECKPOINTS_LIST_DEFAULT_LIMIT = 100;
|
|
6
|
+
const CHECKPOINTS_LIST_MAX_LIMIT = 500;
|
|
7
|
+
/**
|
|
8
|
+
* `WorkspaceCheckpointManager.requireCheckpoint` (../../workspace/checkpoint/manager.ts:599-604,
|
|
9
|
+
* private) throws a plain `Error` with this exact message shape for an
|
|
10
|
+
* unknown/gc'd id. `diff`/`restore` both route through it. There is no
|
|
11
|
+
* public `get(id)` to pre-check existence without a second full manager
|
|
12
|
+
* call, so this handler matches the message text the manager already
|
|
13
|
+
* commits to (any manager.ts rewrite of that string is covered by the
|
|
14
|
+
* bootDaemon proof test — see test/w3-s2-*.test.ts — as a regression net,
|
|
15
|
+
* not by this string match alone).
|
|
16
|
+
*/
|
|
17
|
+
const NO_CHECKPOINT_FOUND_MARKER = 'no checkpoint found with id';
|
|
18
|
+
async function callOrHonestNotFound(fn) {
|
|
19
|
+
try {
|
|
20
|
+
return await fn();
|
|
21
|
+
}
|
|
22
|
+
catch (err) {
|
|
23
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
24
|
+
if (message.includes(NO_CHECKPOINT_FOUND_MARKER)) {
|
|
25
|
+
// Preserve the manager's own message (it already names the specific
|
|
26
|
+
// missing id) — only the status/code are being upgraded from the
|
|
27
|
+
// blanket 500 a plain throw would collapse to.
|
|
28
|
+
throw new GatewayVerbError(message, 'NOT_FOUND', 404);
|
|
29
|
+
}
|
|
30
|
+
throw err;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function optionalString(value) {
|
|
34
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
35
|
+
}
|
|
36
|
+
function requiredString(value, field) {
|
|
37
|
+
if (typeof value !== 'string' || value.length === 0) {
|
|
38
|
+
throw new GatewayVerbError(`Missing required field: ${field}`, 'INVALID_ARGUMENT', 400);
|
|
39
|
+
}
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
function optionalNumber(value, field) {
|
|
43
|
+
if (value === undefined || value === null)
|
|
44
|
+
return undefined;
|
|
45
|
+
const n = typeof value === 'number' ? value : Number(value);
|
|
46
|
+
if (!Number.isFinite(n)) {
|
|
47
|
+
throw new GatewayVerbError(`Invalid number for field: ${field}`, 'INVALID_ARGUMENT', 400);
|
|
48
|
+
}
|
|
49
|
+
return n;
|
|
50
|
+
}
|
|
51
|
+
function optionalStringArray(value) {
|
|
52
|
+
if (value === undefined || value === null)
|
|
53
|
+
return undefined;
|
|
54
|
+
if (!Array.isArray(value) || !value.every((v) => typeof v === 'string')) {
|
|
55
|
+
throw new GatewayVerbError('Invalid field: paths must be a string array', 'INVALID_ARGUMENT', 400);
|
|
56
|
+
}
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
function optionalBoolean(value, field) {
|
|
60
|
+
if (value === undefined || value === null)
|
|
61
|
+
return undefined;
|
|
62
|
+
if (typeof value !== 'boolean') {
|
|
63
|
+
throw new GatewayVerbError(`Invalid boolean for field: ${field}`, 'INVALID_ARGUMENT', 400);
|
|
64
|
+
}
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
function validateCheckpointKind(value, required) {
|
|
68
|
+
if (value === undefined || value === null) {
|
|
69
|
+
if (required)
|
|
70
|
+
throw new GatewayVerbError('Missing required field: kind', 'INVALID_ARGUMENT', 400);
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
if (typeof value !== 'string' || !CHECKPOINT_KINDS.includes(value)) {
|
|
74
|
+
throw new GatewayVerbError(`Invalid kind: ${String(value)} (expected one of ${CHECKPOINT_KINDS.join(', ')})`, 'INVALID_ARGUMENT', 400);
|
|
75
|
+
}
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
function validateRetentionClass(value) {
|
|
79
|
+
if (value === undefined || value === null)
|
|
80
|
+
return undefined;
|
|
81
|
+
if (typeof value !== 'string' || !RETENTION_CLASSES.includes(value)) {
|
|
82
|
+
throw new GatewayVerbError(`Invalid retentionClass: ${String(value)} (expected one of ${RETENTION_CLASSES.join(', ')})`, 'INVALID_ARGUMENT', 400);
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
function clampLimit(raw) {
|
|
87
|
+
if (raw === undefined || raw === null)
|
|
88
|
+
return CHECKPOINTS_LIST_DEFAULT_LIMIT;
|
|
89
|
+
const n = typeof raw === 'number' ? raw : Number(raw);
|
|
90
|
+
if (!Number.isFinite(n) || n <= 0) {
|
|
91
|
+
throw new GatewayVerbError(`Invalid limit: ${String(raw)}`, 'INVALID_ARGUMENT', 400);
|
|
92
|
+
}
|
|
93
|
+
return Math.min(Math.floor(n), CHECKPOINTS_LIST_MAX_LIMIT);
|
|
94
|
+
}
|
|
95
|
+
export function createCheckpointsListHandler(manager) {
|
|
96
|
+
return async (invocation) => {
|
|
97
|
+
const params = readInvocationParams(invocation);
|
|
98
|
+
const kind = validateCheckpointKind(params.kind, false);
|
|
99
|
+
const since = optionalNumber(params.since, 'since');
|
|
100
|
+
const limit = clampLimit(params.limit);
|
|
101
|
+
const checkpoints = await manager.list({ kind, since, limit });
|
|
102
|
+
return { checkpoints };
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
export function createCheckpointsCreateHandler(manager) {
|
|
106
|
+
return async (invocation) => {
|
|
107
|
+
const body = readInvocationParams(invocation);
|
|
108
|
+
const kind = validateCheckpointKind(body.kind, true);
|
|
109
|
+
if (!kind)
|
|
110
|
+
throw new GatewayVerbError('Missing required field: kind', 'INVALID_ARGUMENT', 400);
|
|
111
|
+
const checkpoint = await manager.create({
|
|
112
|
+
kind,
|
|
113
|
+
label: optionalString(body.label),
|
|
114
|
+
retentionClass: validateRetentionClass(body.retentionClass),
|
|
115
|
+
turnId: optionalString(body.turnId),
|
|
116
|
+
agentId: optionalString(body.agentId),
|
|
117
|
+
paths: optionalStringArray(body.paths),
|
|
118
|
+
});
|
|
119
|
+
// `create` returns null when the workspace tree is unchanged since the
|
|
120
|
+
// parent checkpoint (manager.ts:349-357) — an honest no-op, not an
|
|
121
|
+
// error and not a fabricated checkpoint record.
|
|
122
|
+
return { checkpoint, noop: checkpoint === null };
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
export function createCheckpointsDiffHandler(manager) {
|
|
126
|
+
return async (invocation) => {
|
|
127
|
+
const params = readInvocationParams(invocation);
|
|
128
|
+
const a = requiredString(params.a, 'a');
|
|
129
|
+
const b = optionalString(params.b);
|
|
130
|
+
const diff = await callOrHonestNotFound(() => manager.diff(a, b));
|
|
131
|
+
return { diff };
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export function createCheckpointsRestoreHandler(manager) {
|
|
135
|
+
return async (invocation) => {
|
|
136
|
+
const body = readInvocationParams(invocation);
|
|
137
|
+
const id = requiredString(body.id, 'id');
|
|
138
|
+
const result = await callOrHonestNotFound(() => manager.restore(id, {
|
|
139
|
+
paths: optionalStringArray(body.paths),
|
|
140
|
+
safetyCheckpoint: optionalBoolean(body.safetyCheckpoint, 'safetyCheckpoint'),
|
|
141
|
+
}));
|
|
142
|
+
return { result };
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Attach the `checkpoints.*` handlers to the descriptors already registered
|
|
147
|
+
* (without a handler) from ../method-catalog-control-core.ts's static
|
|
148
|
+
* builtin array. Call once, at RuntimeServices construction time, after
|
|
149
|
+
* `workspaceCheckpointManager` exists. A missing descriptor is a silent
|
|
150
|
+
* no-op — see routes/fleet.ts's `registerFleetGatewayMethods` for the same
|
|
151
|
+
* rationale.
|
|
152
|
+
*/
|
|
153
|
+
export function registerCheckpointGatewayMethods(catalog, manager) {
|
|
154
|
+
const listDescriptor = catalog.get('checkpoints.list');
|
|
155
|
+
if (listDescriptor)
|
|
156
|
+
catalog.register(listDescriptor, createCheckpointsListHandler(manager), { replace: true });
|
|
157
|
+
const createDescriptor = catalog.get('checkpoints.create');
|
|
158
|
+
if (createDescriptor)
|
|
159
|
+
catalog.register(createDescriptor, createCheckpointsCreateHandler(manager), { replace: true });
|
|
160
|
+
const diffDescriptor = catalog.get('checkpoints.diff');
|
|
161
|
+
if (diffDescriptor)
|
|
162
|
+
catalog.register(diffDescriptor, createCheckpointsDiffHandler(manager), { replace: true });
|
|
163
|
+
const restoreDescriptor = catalog.get('checkpoints.restore');
|
|
164
|
+
if (restoreDescriptor)
|
|
165
|
+
catalog.register(restoreDescriptor, createCheckpointsRestoreHandler(manager), { replace: true });
|
|
166
|
+
}
|