@pellux/goodvibes-sdk 0.38.0 → 1.1.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 +4468 -916
- package/dist/daemon.d.ts +2 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +4 -0
- package/dist/events/communication.d.ts +1 -1
- 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 +16 -3
- package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator-runner.js +20 -6
- package/dist/platform/agents/orchestrator.d.ts +42 -10
- package/dist/platform/agents/orchestrator.d.ts.map +1 -1
- package/dist/platform/agents/orchestrator.js +68 -20
- 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 +24 -1
- package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
- package/dist/platform/agents/wrfc-controller.js +161 -35
- 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-branching.d.ts +66 -0
- package/dist/platform/companion/companion-chat-branching.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-branching.js +142 -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 +91 -23
- package/dist/platform/companion/companion-chat-manager.d.ts.map +1 -1
- package/dist/platform/companion/companion-chat-manager.js +195 -223
- 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 +113 -4
- package/dist/platform/companion/companion-chat-turn-execution.d.ts +61 -0
- package/dist/platform/companion/companion-chat-turn-execution.d.ts.map +1 -0
- package/dist/platform/companion/companion-chat-turn-execution.js +107 -0
- package/dist/platform/companion/companion-chat-types.d.ts +67 -0
- package/dist/platform/companion/companion-chat-types.d.ts.map +1 -1
- 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-domain-runtime.d.ts +8 -0
- package/dist/platform/config/schema-domain-runtime.d.ts.map +1 -1
- package/dist/platform/config/schema-domain-runtime.js +32 -0
- package/dist/platform/config/schema-types.d.ts +21 -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 +8 -1
- package/dist/platform/control-plane/index.d.ts.map +1 -1
- package/dist/platform/control-plane/index.js +8 -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 +176 -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-push.d.ts +30 -0
- package/dist/platform/control-plane/method-catalog-push.d.ts.map +1 -0
- package/dist/platform/control-plane/method-catalog-push.js +80 -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-runtime.d.ts.map +1 -1
- package/dist/platform/control-plane/method-catalog-runtime.js +83 -1
- 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 +34 -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 +37 -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 +100 -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/push.d.ts +26 -0
- package/dist/platform/control-plane/routes/push.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/push.js +104 -0
- package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts +31 -0
- package/dist/platform/control-plane/routes/register-gateway-verb-groups.d.ts.map +1 -0
- package/dist/platform/control-plane/routes/register-gateway-verb-groups.js +16 -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 +23 -3
- 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 +13 -6
- package/dist/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/platform/core/orchestrator-turn-loop.js +29 -22
- package/dist/platform/core/orchestrator.d.ts +16 -10
- package/dist/platform/core/orchestrator.d.ts.map +1 -1
- package/dist/platform/core/orchestrator.js +23 -8
- 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 +69 -0
- package/dist/platform/daemon/boot.d.ts.map +1 -0
- package/dist/platform/daemon/boot.js +61 -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 +15 -6
- package/dist/platform/daemon/facade.d.ts.map +1 -1
- package/dist/platform/daemon/facade.js +48 -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 +2 -1
- package/dist/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/platform/daemon/http/router.js +42 -40
- 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/http/webui-serving.d.ts +68 -0
- package/dist/platform/daemon/http/webui-serving.d.ts.map +1 -0
- package/dist/platform/daemon/http/webui-serving.js +230 -0
- 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/knowledge-api.d.ts +1 -1
- 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/budget.d.ts +2 -2
- package/dist/platform/orchestration/cancellation.d.ts +2 -2
- package/dist/platform/orchestration/controller-compat.d.ts +16 -3
- package/dist/platform/orchestration/controller-compat.d.ts.map +1 -1
- package/dist/platform/orchestration/controller-compat.js +18 -4
- package/dist/platform/orchestration/dirty-guard.js +1 -1
- 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 +229 -25
- 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 +6 -3
- package/dist/platform/orchestration/phase-runner.d.ts +33 -6
- 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 +20 -1
- 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 +289 -4
- 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/push/delivery.d.ts +48 -0
- package/dist/platform/push/delivery.d.ts.map +1 -0
- package/dist/platform/push/delivery.js +117 -0
- package/dist/platform/push/encryption.d.ts +41 -0
- package/dist/platform/push/encryption.d.ts.map +1 -0
- package/dist/platform/push/encryption.js +82 -0
- package/dist/platform/push/index.d.ts +17 -0
- package/dist/platform/push/index.d.ts.map +1 -0
- package/dist/platform/push/index.js +10 -0
- package/dist/platform/push/service.d.ts +75 -0
- package/dist/platform/push/service.d.ts.map +1 -0
- package/dist/platform/push/service.js +95 -0
- package/dist/platform/push/subscription-store.d.ts +50 -0
- package/dist/platform/push/subscription-store.d.ts.map +1 -0
- package/dist/platform/push/subscription-store.js +123 -0
- package/dist/platform/push/types.d.ts +68 -0
- package/dist/platform/push/types.d.ts.map +1 -0
- package/dist/platform/push/types.js +13 -0
- package/dist/platform/push/vapid.d.ts +54 -0
- package/dist/platform/push/vapid.d.ts.map +1 -0
- package/dist/platform/push/vapid.js +113 -0
- 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/agent.d.ts +2 -2
- package/dist/platform/runtime/fleet/adapters/agent.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/agent.js +4 -4
- package/dist/platform/runtime/fleet/adapters/automation.d.ts +1 -1
- package/dist/platform/runtime/fleet/adapters/automation.js +1 -1
- package/dist/platform/runtime/fleet/adapters/code-index.d.ts +1 -1
- package/dist/platform/runtime/fleet/adapters/code-index.js +1 -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/schedule.d.ts +4 -4
- package/dist/platform/runtime/fleet/adapters/schedule.js +4 -4
- package/dist/platform/runtime/fleet/adapters/trigger.d.ts +3 -4
- package/dist/platform/runtime/fleet/adapters/trigger.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/adapters/trigger.js +3 -4
- 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 +49 -2
- package/dist/platform/runtime/fleet/registry.d.ts +7 -7
- package/dist/platform/runtime/fleet/registry.d.ts.map +1 -1
- package/dist/platform/runtime/fleet/registry.js +41 -7
- package/dist/platform/runtime/fleet/types.d.ts +9 -9
- package/dist/platform/runtime/fleet/types.d.ts.map +1 -1
- package/dist/platform/runtime/memory-spine/client.d.ts +127 -0
- package/dist/platform/runtime/memory-spine/client.d.ts.map +1 -0
- package/dist/platform/runtime/memory-spine/client.js +113 -0
- package/dist/platform/runtime/memory-spine/index.d.ts +11 -0
- package/dist/platform/runtime/memory-spine/index.d.ts.map +1 -0
- package/dist/platform/runtime/memory-spine/index.js +10 -0
- 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 +11 -9
- package/dist/platform/runtime/services.d.ts.map +1 -1
- package/dist/platform/runtime/services.js +24 -9
- 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-chunking.js +1 -1
- package/dist/platform/state/code-index-db.d.ts +1 -1
- 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 +11 -3
- 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 +118 -0
- package/dist/platform/state/memory-recall-contract.d.ts.map +1 -0
- package/dist/platform/state/memory-recall-contract.js +170 -0
- package/dist/platform/state/memory-registry.d.ts +8 -0
- package/dist/platform/state/memory-registry.d.ts.map +1 -1
- package/dist/platform/state/memory-registry.js +10 -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 +14 -3
- 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/sqlite-vec-loader.d.ts +1 -1
- package/dist/platform/state/sqlite-vec-loader.js +1 -1
- 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 +22 -10
- package/dist/platform/tools/agent/manager.d.ts.map +1 -1
- package/dist/platform/tools/agent/manager.js +13 -7
- 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 +27 -10
- package/dist/platform/tools/exec/schema.d.ts +2 -2
- package/dist/platform/tools/exec/schema.d.ts.map +1 -1
- package/dist/platform/tools/exec/schema.js +2 -1
- package/dist/platform/tools/fetch/runtime.d.ts +1 -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/registry.d.ts +1 -1
- package/dist/platform/tools/registry.js +1 -1
- 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/types/tools.d.ts +1 -1
- package/dist/platform/utils/request-body.d.ts.map +1 -1
- package/dist/platform/utils/request-body.js +50 -5
- package/dist/platform/version.js +1 -1
- package/package.json +25 -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,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* union-cache.ts — the SDK session read facade (moved from goodvibes-tui).
|
|
3
|
+
*
|
|
4
|
+
* The cache-backed read layer that lets panel/read consumers keep their
|
|
5
|
+
* SYNCHRONOUS listSessions()/getSession() shape while telling the truth about
|
|
6
|
+
* cross-surface sessions.
|
|
7
|
+
*
|
|
8
|
+
* The problem it solves: in adopted-daemon mode a surface's OWN
|
|
9
|
+
* SharedSessionBroker only holds the sessions THIS process created, so a panel
|
|
10
|
+
* reading it misses every session hosted on the adopted daemon from other surfaces
|
|
11
|
+
* (companion, webui, other TUIs). The daemon's own reads are ASYNC
|
|
12
|
+
* (HttpTransport.operator.sessions.list returns a Promise) while the local broker's
|
|
13
|
+
* are SYNC — a signature mismatch that blocks a drop-in swap.
|
|
14
|
+
*
|
|
15
|
+
* This facade bridges that: in adopted mode it refreshes the wire union on a modest
|
|
16
|
+
* interval (and on demand), caches the last-known rows, and serves them
|
|
17
|
+
* synchronously alongside the local rows. It NEVER lies:
|
|
18
|
+
*
|
|
19
|
+
* - EMBEDDED mode (this process's own broker IS the daemon's broker): pure
|
|
20
|
+
* passthrough to the local broker — it already IS the truth, no wire, no
|
|
21
|
+
* 'offline' segment.
|
|
22
|
+
* - ADOPTED mode, wire reachable: serve union(local, wire), deduped by id (local
|
|
23
|
+
* wins for its own session), with lastSyncAt + a `stale` flag.
|
|
24
|
+
* - ADOPTED mode, wire UNREACHABLE (daemon died mid-session): degrade to 'offline'
|
|
25
|
+
* — serve ONLY the local rows plus an honest 'cross-surface view offline' note,
|
|
26
|
+
* rather than presenting the stale last-known union as if it were live.
|
|
27
|
+
* - LOCAL/dormant (never adopted, or non-external mode): passthrough local, no
|
|
28
|
+
* cross-surface claim.
|
|
29
|
+
*
|
|
30
|
+
* The wire refresh runs on its OWN interval timer (injectable) and is never invoked
|
|
31
|
+
* from the render/keystroke hot path — reads are served from the cache
|
|
32
|
+
* synchronously, so the facade adds zero awaits to any interactive path.
|
|
33
|
+
*
|
|
34
|
+
* MOVE NOTE (One-Platform): this generalizes cleanly (SDK-clean deps,
|
|
35
|
+
* already parameterized via injected local + wireReader, generation-guarded probes)
|
|
36
|
+
* and serves the union goal, so it now lives in the SDK alongside the spine client.
|
|
37
|
+
* That "generalizes cleanly" is ARCHITECTURAL until a second real consumer imports
|
|
38
|
+
* it — today only the TUI does.
|
|
39
|
+
*/
|
|
40
|
+
import { logger } from '../../utils/logger.js';
|
|
41
|
+
import type { SharedSessionBroker, SharedSessionRecord } from '../../control-plane/index.js';
|
|
42
|
+
/** The synchronous local read source — the in-process SharedSessionBroker. */
|
|
43
|
+
export type LocalSessionReader = Pick<SharedSessionBroker, 'listSessions' | 'getSession'>;
|
|
44
|
+
/** The async wire reader — HttpTransport.operator.sessions.list against an adopted daemon. */
|
|
45
|
+
export interface WireSessionReader {
|
|
46
|
+
list(limit?: number): Promise<readonly SharedSessionRecord[]>;
|
|
47
|
+
}
|
|
48
|
+
export type SessionUnionMode = 'local' | 'embedded' | 'adopted';
|
|
49
|
+
/**
|
|
50
|
+
* Honest cross-surface posture for the panels to render. `offlineNote` is non-null
|
|
51
|
+
* ONLY in adopted mode when the wire is unreachable — that is the exact string a
|
|
52
|
+
* panel should show next to its (local-only) session rows.
|
|
53
|
+
*/
|
|
54
|
+
export interface CrossSurfaceView {
|
|
55
|
+
readonly mode: SessionUnionMode;
|
|
56
|
+
/** True only after a successful wire refresh in adopted mode. */
|
|
57
|
+
readonly online: boolean;
|
|
58
|
+
/** True when the served rows are not a confirmed-live union (offline, or aged past the freshness window). */
|
|
59
|
+
readonly stale: boolean;
|
|
60
|
+
/** Wall-clock ms of the last successful wire refresh, or null if never. */
|
|
61
|
+
readonly lastSyncAt: number | null;
|
|
62
|
+
/** Honest operator note when the cross-surface view is offline, else null. */
|
|
63
|
+
readonly offlineNote: string | null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The read surface panels/openers consume in place of the raw broker. Declares its
|
|
67
|
+
* own signatures (readonly returns) rather than inheriting the broker's mutable
|
|
68
|
+
* ones, so both the broker-backed cache and the cache itself satisfy it.
|
|
69
|
+
*/
|
|
70
|
+
export interface SessionReadFacade {
|
|
71
|
+
listSessions(limit?: number): readonly SharedSessionRecord[];
|
|
72
|
+
getSession(sessionId: string): SharedSessionRecord | null;
|
|
73
|
+
readonly crossSurfaceView: CrossSurfaceView;
|
|
74
|
+
}
|
|
75
|
+
export interface SessionUnionCacheOptions {
|
|
76
|
+
readonly local: LocalSessionReader;
|
|
77
|
+
readonly now?: () => number;
|
|
78
|
+
/** Wire refresh cadence in adopted mode (default 5s). */
|
|
79
|
+
readonly refreshIntervalMs?: number;
|
|
80
|
+
/** A served union older than this reads as `stale` even while nominally online (default 20s). */
|
|
81
|
+
readonly staleAfterMs?: number;
|
|
82
|
+
/** Upper bound on rows pulled from the wire per refresh (default 200). */
|
|
83
|
+
readonly wireLimit?: number;
|
|
84
|
+
/**
|
|
85
|
+
* Bound how long a single refresh() will wait on the wire before treating it as a
|
|
86
|
+
* failed probe (default 4s, under the 5s refresh cadence). A dead daemon usually
|
|
87
|
+
* rejects the fetch promptly (ECONNREFUSED), but a process that dies mid-connection
|
|
88
|
+
* can leave a stale keep-alive socket that the runtime/OS doesn't notice for a long
|
|
89
|
+
* time (well past any acceptable UI latency) — this timeout caps the wait so the
|
|
90
|
+
* probe can never hang past ~1 refresh interval.
|
|
91
|
+
*/
|
|
92
|
+
readonly probeTimeoutMs?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Optional live accessor for the TRUE shared identity of "which wire rows
|
|
95
|
+
* are mine" — typically `() => sessionSpineClient.mirroredSessionIds`
|
|
96
|
+
* (see {@link SessionSpineClient.mirroredSessionIds}). When supplied, every
|
|
97
|
+
* wire row whose id appears in this set is dropped from the wire side of
|
|
98
|
+
* the union BEFORE merging with `local`: the module doc's own invariant is
|
|
99
|
+
* that `local` holds exactly this surface's own sessions, so `local` is
|
|
100
|
+
* always the authoritative view for them regardless of what id the wire
|
|
101
|
+
* mirror happens to carry for the same conceptual session.
|
|
102
|
+
*
|
|
103
|
+
* Why this matters: the plain merge below dedups by raw `record.id`
|
|
104
|
+
* equality between `wireCache` and `local.listSessions()`. That is only
|
|
105
|
+
* correct if whatever mirrored a local session onto the wire used the EXACT
|
|
106
|
+
* same id the local reader reports for it — an assumption this facade
|
|
107
|
+
* cannot verify and a caller can violate (e.g. a local record created
|
|
108
|
+
* without an explicit id, auto-assigned one scheme, mirrored to the wire
|
|
109
|
+
* under a separately-chosen id). When that happens, id-only dedup counts
|
|
110
|
+
* the surface's own session TWICE: once from `wireCache` under the
|
|
111
|
+
* wire-registered id, once from `local` under its own id — a constant +1
|
|
112
|
+
* that can spuriously trip a caller's overflow cap. Filtering wireCache by
|
|
113
|
+
* the CANONICAL registered-id set fixes this for any number of self
|
|
114
|
+
* sessions, with no special-casing, and is a no-op (byte-identical result)
|
|
115
|
+
* whenever the ids already agree.
|
|
116
|
+
*/
|
|
117
|
+
readonly selfSessionIds?: (() => ReadonlySet<string>) | undefined;
|
|
118
|
+
/** Injectable timer seam for deterministic tests. */
|
|
119
|
+
readonly scheduler?: {
|
|
120
|
+
setInterval?: (fn: () => void, ms: number) => ReturnType<typeof setInterval>;
|
|
121
|
+
clearInterval?: (handle: ReturnType<typeof setInterval>) => void;
|
|
122
|
+
setTimeout?: (fn: () => void, ms: number) => ReturnType<typeof setTimeout>;
|
|
123
|
+
clearTimeout?: (handle: ReturnType<typeof setTimeout>) => void;
|
|
124
|
+
};
|
|
125
|
+
readonly log?: Pick<typeof logger, 'debug'>;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Derive the footer's spine online/offline segment from the FRESHEST liveness
|
|
129
|
+
* signal. The spine client's own status() is ACTIVITY-gated — it only flips on a
|
|
130
|
+
* register/heartbeat/close wire call — so after the daemon dies mid-idle the footer
|
|
131
|
+
* keeps reading 'online' until the next activity (seconds to minutes). The union
|
|
132
|
+
* cache, by contrast, probes the wire every refreshIntervalMs (5s) in adopted mode,
|
|
133
|
+
* so ITS `online` flag is a genuine liveness heartbeat with a bounded staleness.
|
|
134
|
+
*
|
|
135
|
+
* Rule (one signal, no new timer): once the wire has been confirmed reachable at
|
|
136
|
+
* least once (`lastSyncAt !== null`), the union probe is authoritative for the
|
|
137
|
+
* footer — a failed 5s probe reads 'offline' within one interval of the daemon
|
|
138
|
+
* dying, and recovers on the next success. Before any confirmation (or when not
|
|
139
|
+
* adopted), fall back to the spine client's own status.
|
|
140
|
+
*/
|
|
141
|
+
export declare function deriveSpineFooterStatus(spineStatus: 'unknown' | 'online' | 'offline', view: Pick<CrossSurfaceView, 'mode' | 'online' | 'lastSyncAt'>): 'unknown' | 'online' | 'offline';
|
|
142
|
+
export declare class SessionUnionCache implements SessionReadFacade {
|
|
143
|
+
private readonly local;
|
|
144
|
+
private readonly now;
|
|
145
|
+
private readonly refreshIntervalMs;
|
|
146
|
+
private readonly staleAfterMs;
|
|
147
|
+
private readonly wireLimit;
|
|
148
|
+
private readonly probeTimeoutMs;
|
|
149
|
+
private readonly selfSessionIds;
|
|
150
|
+
private readonly scheduler;
|
|
151
|
+
private readonly log;
|
|
152
|
+
private mode;
|
|
153
|
+
private wireReader;
|
|
154
|
+
private wireCache;
|
|
155
|
+
private online;
|
|
156
|
+
private lastSyncAt;
|
|
157
|
+
private timer;
|
|
158
|
+
/** Guards against overlapping refresh() calls racing the same wire. */
|
|
159
|
+
private refreshInFlight;
|
|
160
|
+
/**
|
|
161
|
+
* Bumped on every activate()/markEmbedded()/deactivate() — stamps which adoption is
|
|
162
|
+
* CURRENT. A performRefresh() call captures this at start and checks it again once
|
|
163
|
+
* its wire promise settles; if it has moved on, the whole write-back (cache, online,
|
|
164
|
+
* lastSyncAt, onTransition) is dropped, so a probe started under a superseded reader
|
|
165
|
+
* can never overwrite a newer reader's state or paint a phantom liveness flip for a
|
|
166
|
+
* UI that has already moved on.
|
|
167
|
+
*/
|
|
168
|
+
private generation;
|
|
169
|
+
/**
|
|
170
|
+
* Fired whenever a refresh() flips `online` (either direction). A consumer wires
|
|
171
|
+
* this to requestRender() so a liveness change is never just correct DATA sitting
|
|
172
|
+
* uncomposited — without it the flip is only PAINTED whenever some unrelated
|
|
173
|
+
* activity happens to trigger the next render, which during an idle stretch can be
|
|
174
|
+
* minutes away.
|
|
175
|
+
*/
|
|
176
|
+
private onTransition;
|
|
177
|
+
constructor(options: SessionUnionCacheOptions);
|
|
178
|
+
/** Current facade mode — for diagnostics/tests. */
|
|
179
|
+
getMode(): SessionUnionMode;
|
|
180
|
+
/**
|
|
181
|
+
* Register a callback fired whenever a refresh() flips the online/offline liveness
|
|
182
|
+
* state, so a consumer can repaint the footer's spine segment promptly on a real
|
|
183
|
+
* transition instead of waiting for incidental render activity. Pass null to clear.
|
|
184
|
+
*/
|
|
185
|
+
setOnTransition(callback: ((online: boolean) => void) | null): void;
|
|
186
|
+
/**
|
|
187
|
+
* Enter ADOPTED mode against a reachable daemon's wire reader. Kicks an immediate
|
|
188
|
+
* refresh and starts the interval poll. Idempotent per reader.
|
|
189
|
+
*/
|
|
190
|
+
activate(wireReader: WireSessionReader): void;
|
|
191
|
+
/**
|
|
192
|
+
* Enter EMBEDDED mode — this process's broker IS the daemon's broker, so the local
|
|
193
|
+
* reads are already the whole truth. Pure passthrough, no wire.
|
|
194
|
+
*/
|
|
195
|
+
markEmbedded(): void;
|
|
196
|
+
/** Return to LOCAL/dormant mode (non-external daemon, or adoption lost). */
|
|
197
|
+
deactivate(reason: string): void;
|
|
198
|
+
/**
|
|
199
|
+
* Pull the wire union once and update the cache. Awaitable so tests drive it
|
|
200
|
+
* deterministically. A rejecting wire degrades to offline WITHOUT dropping to a lie:
|
|
201
|
+
* `online` flips false so listSessions() serves local-only rows.
|
|
202
|
+
*
|
|
203
|
+
* The wire call is raced against probeTimeoutMs so a stale/hung connection can't
|
|
204
|
+
* hold `online` at a stale `true` indefinitely. An in-flight guard collapses
|
|
205
|
+
* overlapping calls into the SAME pending probe. Fires onTransition exactly when
|
|
206
|
+
* `online` actually flips (not on every tick).
|
|
207
|
+
*/
|
|
208
|
+
refresh(): Promise<void>;
|
|
209
|
+
private performRefresh;
|
|
210
|
+
/**
|
|
211
|
+
* Bound how long refresh() will wait on the wire promise. The underlying promise is
|
|
212
|
+
* NOT cancelled (no AbortSignal reaches this layer today) — it may still settle later
|
|
213
|
+
* in the background and its result is simply ignored — but refresh() itself never
|
|
214
|
+
* waits past probeTimeoutMs, which is what keeps the liveness probe honest under a
|
|
215
|
+
* hung connection.
|
|
216
|
+
*/
|
|
217
|
+
private raceWithProbeTimeout;
|
|
218
|
+
listSessions(limit?: number): readonly SharedSessionRecord[];
|
|
219
|
+
getSession(sessionId: string): SharedSessionRecord | null;
|
|
220
|
+
get crossSurfaceView(): CrossSurfaceView;
|
|
221
|
+
dispose(): void;
|
|
222
|
+
private resetWireState;
|
|
223
|
+
private stopTimer;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=union-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-cache.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/session-spine/union-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* union-cache.ts — the SDK session read facade (moved from goodvibes-tui).
|
|
3
|
+
*
|
|
4
|
+
* The cache-backed read layer that lets panel/read consumers keep their
|
|
5
|
+
* SYNCHRONOUS listSessions()/getSession() shape while telling the truth about
|
|
6
|
+
* cross-surface sessions.
|
|
7
|
+
*
|
|
8
|
+
* The problem it solves: in adopted-daemon mode a surface's OWN
|
|
9
|
+
* SharedSessionBroker only holds the sessions THIS process created, so a panel
|
|
10
|
+
* reading it misses every session hosted on the adopted daemon from other surfaces
|
|
11
|
+
* (companion, webui, other TUIs). The daemon's own reads are ASYNC
|
|
12
|
+
* (HttpTransport.operator.sessions.list returns a Promise) while the local broker's
|
|
13
|
+
* are SYNC — a signature mismatch that blocks a drop-in swap.
|
|
14
|
+
*
|
|
15
|
+
* This facade bridges that: in adopted mode it refreshes the wire union on a modest
|
|
16
|
+
* interval (and on demand), caches the last-known rows, and serves them
|
|
17
|
+
* synchronously alongside the local rows. It NEVER lies:
|
|
18
|
+
*
|
|
19
|
+
* - EMBEDDED mode (this process's own broker IS the daemon's broker): pure
|
|
20
|
+
* passthrough to the local broker — it already IS the truth, no wire, no
|
|
21
|
+
* 'offline' segment.
|
|
22
|
+
* - ADOPTED mode, wire reachable: serve union(local, wire), deduped by id (local
|
|
23
|
+
* wins for its own session), with lastSyncAt + a `stale` flag.
|
|
24
|
+
* - ADOPTED mode, wire UNREACHABLE (daemon died mid-session): degrade to 'offline'
|
|
25
|
+
* — serve ONLY the local rows plus an honest 'cross-surface view offline' note,
|
|
26
|
+
* rather than presenting the stale last-known union as if it were live.
|
|
27
|
+
* - LOCAL/dormant (never adopted, or non-external mode): passthrough local, no
|
|
28
|
+
* cross-surface claim.
|
|
29
|
+
*
|
|
30
|
+
* The wire refresh runs on its OWN interval timer (injectable) and is never invoked
|
|
31
|
+
* from the render/keystroke hot path — reads are served from the cache
|
|
32
|
+
* synchronously, so the facade adds zero awaits to any interactive path.
|
|
33
|
+
*
|
|
34
|
+
* MOVE NOTE (One-Platform): this generalizes cleanly (SDK-clean deps,
|
|
35
|
+
* already parameterized via injected local + wireReader, generation-guarded probes)
|
|
36
|
+
* and serves the union goal, so it now lives in the SDK alongside the spine client.
|
|
37
|
+
* That "generalizes cleanly" is ARCHITECTURAL until a second real consumer imports
|
|
38
|
+
* it — today only the TUI does.
|
|
39
|
+
*/
|
|
40
|
+
import { logger } from '../../utils/logger.js';
|
|
41
|
+
const DEFAULT_REFRESH_INTERVAL_MS = 5_000;
|
|
42
|
+
const DEFAULT_STALE_AFTER_MS = 20_000;
|
|
43
|
+
const DEFAULT_WIRE_LIMIT = 200;
|
|
44
|
+
const DEFAULT_PROBE_TIMEOUT_MS = 4_000;
|
|
45
|
+
const OFFLINE_NOTE = 'cross-surface view offline';
|
|
46
|
+
/**
|
|
47
|
+
* Derive the footer's spine online/offline segment from the FRESHEST liveness
|
|
48
|
+
* signal. The spine client's own status() is ACTIVITY-gated — it only flips on a
|
|
49
|
+
* register/heartbeat/close wire call — so after the daemon dies mid-idle the footer
|
|
50
|
+
* keeps reading 'online' until the next activity (seconds to minutes). The union
|
|
51
|
+
* cache, by contrast, probes the wire every refreshIntervalMs (5s) in adopted mode,
|
|
52
|
+
* so ITS `online` flag is a genuine liveness heartbeat with a bounded staleness.
|
|
53
|
+
*
|
|
54
|
+
* Rule (one signal, no new timer): once the wire has been confirmed reachable at
|
|
55
|
+
* least once (`lastSyncAt !== null`), the union probe is authoritative for the
|
|
56
|
+
* footer — a failed 5s probe reads 'offline' within one interval of the daemon
|
|
57
|
+
* dying, and recovers on the next success. Before any confirmation (or when not
|
|
58
|
+
* adopted), fall back to the spine client's own status.
|
|
59
|
+
*/
|
|
60
|
+
export function deriveSpineFooterStatus(spineStatus, view) {
|
|
61
|
+
if (view.mode === 'adopted' && view.lastSyncAt !== null) {
|
|
62
|
+
return view.online ? 'online' : 'offline';
|
|
63
|
+
}
|
|
64
|
+
return spineStatus;
|
|
65
|
+
}
|
|
66
|
+
export class SessionUnionCache {
|
|
67
|
+
local;
|
|
68
|
+
now;
|
|
69
|
+
refreshIntervalMs;
|
|
70
|
+
staleAfterMs;
|
|
71
|
+
wireLimit;
|
|
72
|
+
probeTimeoutMs;
|
|
73
|
+
selfSessionIds;
|
|
74
|
+
scheduler;
|
|
75
|
+
log;
|
|
76
|
+
mode = 'local';
|
|
77
|
+
wireReader = null;
|
|
78
|
+
wireCache = [];
|
|
79
|
+
online = false;
|
|
80
|
+
lastSyncAt = null;
|
|
81
|
+
timer = null;
|
|
82
|
+
/** Guards against overlapping refresh() calls racing the same wire. */
|
|
83
|
+
refreshInFlight = null;
|
|
84
|
+
/**
|
|
85
|
+
* Bumped on every activate()/markEmbedded()/deactivate() — stamps which adoption is
|
|
86
|
+
* CURRENT. A performRefresh() call captures this at start and checks it again once
|
|
87
|
+
* its wire promise settles; if it has moved on, the whole write-back (cache, online,
|
|
88
|
+
* lastSyncAt, onTransition) is dropped, so a probe started under a superseded reader
|
|
89
|
+
* can never overwrite a newer reader's state or paint a phantom liveness flip for a
|
|
90
|
+
* UI that has already moved on.
|
|
91
|
+
*/
|
|
92
|
+
generation = 0;
|
|
93
|
+
/**
|
|
94
|
+
* Fired whenever a refresh() flips `online` (either direction). A consumer wires
|
|
95
|
+
* this to requestRender() so a liveness change is never just correct DATA sitting
|
|
96
|
+
* uncomposited — without it the flip is only PAINTED whenever some unrelated
|
|
97
|
+
* activity happens to trigger the next render, which during an idle stretch can be
|
|
98
|
+
* minutes away.
|
|
99
|
+
*/
|
|
100
|
+
onTransition = null;
|
|
101
|
+
constructor(options) {
|
|
102
|
+
this.local = options.local;
|
|
103
|
+
this.now = options.now ?? Date.now;
|
|
104
|
+
this.refreshIntervalMs = options.refreshIntervalMs ?? DEFAULT_REFRESH_INTERVAL_MS;
|
|
105
|
+
this.staleAfterMs = options.staleAfterMs ?? DEFAULT_STALE_AFTER_MS;
|
|
106
|
+
this.wireLimit = options.wireLimit ?? DEFAULT_WIRE_LIMIT;
|
|
107
|
+
this.probeTimeoutMs = options.probeTimeoutMs ?? DEFAULT_PROBE_TIMEOUT_MS;
|
|
108
|
+
this.selfSessionIds = options.selfSessionIds;
|
|
109
|
+
this.scheduler = {
|
|
110
|
+
setInterval: options.scheduler?.setInterval ?? ((fn, ms) => {
|
|
111
|
+
const handle = setInterval(fn, ms);
|
|
112
|
+
handle.unref?.(); // a background poll must never keep the process alive on its own
|
|
113
|
+
return handle;
|
|
114
|
+
}),
|
|
115
|
+
clearInterval: options.scheduler?.clearInterval ?? ((handle) => clearInterval(handle)),
|
|
116
|
+
setTimeout: options.scheduler?.setTimeout ?? ((fn, ms) => setTimeout(fn, ms)),
|
|
117
|
+
clearTimeout: options.scheduler?.clearTimeout ?? ((handle) => clearTimeout(handle)),
|
|
118
|
+
};
|
|
119
|
+
this.log = options.log ?? logger;
|
|
120
|
+
}
|
|
121
|
+
/** Current facade mode — for diagnostics/tests. */
|
|
122
|
+
getMode() {
|
|
123
|
+
return this.mode;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Register a callback fired whenever a refresh() flips the online/offline liveness
|
|
127
|
+
* state, so a consumer can repaint the footer's spine segment promptly on a real
|
|
128
|
+
* transition instead of waiting for incidental render activity. Pass null to clear.
|
|
129
|
+
*/
|
|
130
|
+
setOnTransition(callback) {
|
|
131
|
+
this.onTransition = callback;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Enter ADOPTED mode against a reachable daemon's wire reader. Kicks an immediate
|
|
135
|
+
* refresh and starts the interval poll. Idempotent per reader.
|
|
136
|
+
*/
|
|
137
|
+
activate(wireReader) {
|
|
138
|
+
this.stopTimer();
|
|
139
|
+
this.generation += 1; // supersede any probe still in flight under the prior reader
|
|
140
|
+
this.wireReader = wireReader;
|
|
141
|
+
this.mode = 'adopted';
|
|
142
|
+
this.online = false; // unconfirmed until the first successful refresh
|
|
143
|
+
this.lastSyncAt = null;
|
|
144
|
+
this.wireCache = [];
|
|
145
|
+
this.refreshInFlight = null; // a new adoption starts a fresh probe, not a stale prior reader's
|
|
146
|
+
this.timer = this.scheduler.setInterval(() => void this.refresh(), this.refreshIntervalMs);
|
|
147
|
+
void this.refresh();
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Enter EMBEDDED mode — this process's broker IS the daemon's broker, so the local
|
|
151
|
+
* reads are already the whole truth. Pure passthrough, no wire.
|
|
152
|
+
*/
|
|
153
|
+
markEmbedded() {
|
|
154
|
+
this.stopTimer();
|
|
155
|
+
this.generation += 1; // supersede any adopted-mode probe still in flight
|
|
156
|
+
this.mode = 'embedded';
|
|
157
|
+
this.resetWireState();
|
|
158
|
+
}
|
|
159
|
+
/** Return to LOCAL/dormant mode (non-external daemon, or adoption lost). */
|
|
160
|
+
deactivate(reason) {
|
|
161
|
+
if (this.mode === 'adopted') {
|
|
162
|
+
this.log.debug('[session-union] deactivating adopted read facade', { reason });
|
|
163
|
+
}
|
|
164
|
+
this.stopTimer();
|
|
165
|
+
this.generation += 1; // supersede any probe still in flight from before deactivation
|
|
166
|
+
this.mode = 'local';
|
|
167
|
+
this.resetWireState();
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Pull the wire union once and update the cache. Awaitable so tests drive it
|
|
171
|
+
* deterministically. A rejecting wire degrades to offline WITHOUT dropping to a lie:
|
|
172
|
+
* `online` flips false so listSessions() serves local-only rows.
|
|
173
|
+
*
|
|
174
|
+
* The wire call is raced against probeTimeoutMs so a stale/hung connection can't
|
|
175
|
+
* hold `online` at a stale `true` indefinitely. An in-flight guard collapses
|
|
176
|
+
* overlapping calls into the SAME pending probe. Fires onTransition exactly when
|
|
177
|
+
* `online` actually flips (not on every tick).
|
|
178
|
+
*/
|
|
179
|
+
async refresh() {
|
|
180
|
+
if (this.mode !== 'adopted' || !this.wireReader)
|
|
181
|
+
return;
|
|
182
|
+
if (this.refreshInFlight)
|
|
183
|
+
return this.refreshInFlight;
|
|
184
|
+
const generation = this.generation;
|
|
185
|
+
const run = this.performRefresh(generation);
|
|
186
|
+
this.refreshInFlight = run;
|
|
187
|
+
try {
|
|
188
|
+
await run;
|
|
189
|
+
}
|
|
190
|
+
finally {
|
|
191
|
+
// Only clear OUR OWN in-flight slot: if a newer activate()/deactivate() already
|
|
192
|
+
// replaced it with a fresher reader's in-flight promise, clearing unconditionally
|
|
193
|
+
// here would null out that fresher guard and let a second concurrent wire call
|
|
194
|
+
// slip through against the new reader.
|
|
195
|
+
if (this.refreshInFlight === run)
|
|
196
|
+
this.refreshInFlight = null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async performRefresh(generation) {
|
|
200
|
+
const wasOnline = this.online;
|
|
201
|
+
let rows;
|
|
202
|
+
let succeeded = false;
|
|
203
|
+
try {
|
|
204
|
+
rows = await this.raceWithProbeTimeout(this.wireReader.list(this.wireLimit));
|
|
205
|
+
succeeded = true;
|
|
206
|
+
}
|
|
207
|
+
catch (err) {
|
|
208
|
+
this.log.debug('[session-union] wire refresh failed; serving local-only', { error: String(err) });
|
|
209
|
+
}
|
|
210
|
+
// This probe's reader may have been superseded by a newer
|
|
211
|
+
// activate()/markEmbedded()/deactivate() while the wire call was pending. If so,
|
|
212
|
+
// this settlement — success or failure — belongs to a reader nobody is reading
|
|
213
|
+
// through anymore: drop the ENTIRE write-back.
|
|
214
|
+
if (generation !== this.generation)
|
|
215
|
+
return;
|
|
216
|
+
if (succeeded) {
|
|
217
|
+
this.wireCache = rows;
|
|
218
|
+
this.lastSyncAt = this.now();
|
|
219
|
+
this.online = true;
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Degrade honestly: keep the last rows but stop serving them as live.
|
|
223
|
+
this.online = false;
|
|
224
|
+
}
|
|
225
|
+
if (this.online !== wasOnline) {
|
|
226
|
+
this.onTransition?.(this.online);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Bound how long refresh() will wait on the wire promise. The underlying promise is
|
|
231
|
+
* NOT cancelled (no AbortSignal reaches this layer today) — it may still settle later
|
|
232
|
+
* in the background and its result is simply ignored — but refresh() itself never
|
|
233
|
+
* waits past probeTimeoutMs, which is what keeps the liveness probe honest under a
|
|
234
|
+
* hung connection.
|
|
235
|
+
*/
|
|
236
|
+
raceWithProbeTimeout(promise) {
|
|
237
|
+
if (!(this.probeTimeoutMs > 0))
|
|
238
|
+
return promise;
|
|
239
|
+
return new Promise((resolve, reject) => {
|
|
240
|
+
let settled = false;
|
|
241
|
+
const timer = this.scheduler.setTimeout(() => {
|
|
242
|
+
if (settled)
|
|
243
|
+
return;
|
|
244
|
+
settled = true;
|
|
245
|
+
reject(new Error(`wire probe timed out after ${this.probeTimeoutMs}ms`));
|
|
246
|
+
}, this.probeTimeoutMs);
|
|
247
|
+
promise.then((value) => {
|
|
248
|
+
if (settled)
|
|
249
|
+
return;
|
|
250
|
+
settled = true;
|
|
251
|
+
this.scheduler.clearTimeout(timer);
|
|
252
|
+
resolve(value);
|
|
253
|
+
}, (err) => {
|
|
254
|
+
if (settled)
|
|
255
|
+
return;
|
|
256
|
+
settled = true;
|
|
257
|
+
this.scheduler.clearTimeout(timer);
|
|
258
|
+
reject(err);
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
listSessions(limit) {
|
|
263
|
+
// Embedded / local / adopted-but-offline: local is the honest answer.
|
|
264
|
+
if (this.mode !== 'adopted' || !this.online) {
|
|
265
|
+
return this.local.listSessions(limit);
|
|
266
|
+
}
|
|
267
|
+
// Adopted + online: serve the deduped union (local wins for its own rows).
|
|
268
|
+
// `mine` is the TRUE shared identity of "wire rows this surface itself
|
|
269
|
+
// mirrored" (see SessionUnionCacheOptions.selfSessionIds) — every such row
|
|
270
|
+
// is dropped from the wire side before merging, so `local` (documented to
|
|
271
|
+
// hold exactly this surface's own sessions) is unconditionally
|
|
272
|
+
// authoritative for them regardless of what id the wire copy carries.
|
|
273
|
+
// When ids already agree (the common case, and the whole story when no
|
|
274
|
+
// selfSessionIds accessor is supplied) this is a no-op: local's overlay
|
|
275
|
+
// below re-adds the identical row under the identical key.
|
|
276
|
+
const mine = this.selfSessionIds?.();
|
|
277
|
+
const merged = new Map();
|
|
278
|
+
for (const record of this.wireCache) {
|
|
279
|
+
if (mine?.has(record.id))
|
|
280
|
+
continue;
|
|
281
|
+
merged.set(record.id, record);
|
|
282
|
+
}
|
|
283
|
+
for (const record of this.local.listSessions())
|
|
284
|
+
merged.set(record.id, record);
|
|
285
|
+
const union = Array.from(merged.values());
|
|
286
|
+
return typeof limit === 'number' && limit >= 0 ? union.slice(0, limit) : union;
|
|
287
|
+
}
|
|
288
|
+
getSession(sessionId) {
|
|
289
|
+
const localRecord = this.local.getSession(sessionId);
|
|
290
|
+
if (localRecord)
|
|
291
|
+
return localRecord;
|
|
292
|
+
if (this.mode === 'adopted' && this.online) {
|
|
293
|
+
// A wire row this surface itself mirrored is not a genuine cross-surface
|
|
294
|
+
// hit once `local` failed to resolve it under this exact id — honest
|
|
295
|
+
// behavior is "not found" (matching listSessions()'s exclusion) rather
|
|
296
|
+
// than surfacing a stale self-mirror the local view no longer vouches for.
|
|
297
|
+
if (this.selfSessionIds?.().has(sessionId))
|
|
298
|
+
return null;
|
|
299
|
+
return this.wireCache.find((record) => record.id === sessionId) ?? null;
|
|
300
|
+
}
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
get crossSurfaceView() {
|
|
304
|
+
if (this.mode !== 'adopted') {
|
|
305
|
+
return { mode: this.mode, online: false, stale: false, lastSyncAt: null, offlineNote: null };
|
|
306
|
+
}
|
|
307
|
+
const aged = this.lastSyncAt === null || this.now() - this.lastSyncAt > this.staleAfterMs;
|
|
308
|
+
const stale = !this.online || aged;
|
|
309
|
+
return {
|
|
310
|
+
mode: 'adopted',
|
|
311
|
+
online: this.online,
|
|
312
|
+
stale,
|
|
313
|
+
lastSyncAt: this.lastSyncAt,
|
|
314
|
+
offlineNote: this.online ? null : OFFLINE_NOTE,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
dispose() {
|
|
318
|
+
this.stopTimer();
|
|
319
|
+
}
|
|
320
|
+
resetWireState() {
|
|
321
|
+
this.wireReader = null;
|
|
322
|
+
this.wireCache = [];
|
|
323
|
+
this.online = false;
|
|
324
|
+
this.lastSyncAt = null;
|
|
325
|
+
this.refreshInFlight = null;
|
|
326
|
+
}
|
|
327
|
+
stopTimer() {
|
|
328
|
+
if (this.timer !== null) {
|
|
329
|
+
this.scheduler.clearInterval(this.timer);
|
|
330
|
+
this.timer = null;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
@@ -11,7 +11,7 @@ import type { RemoteRunnerRegistry } from './remote/index.js';
|
|
|
11
11
|
import type { RemoteExecutionArtifact, RemoteRunnerContract, RemoteRunnerPool, RemoteSessionBundle } from './remote/types.js';
|
|
12
12
|
import type { AutomationJob, AutomationRun, CreateAutomationJobInput, AutomationManager } from '../automation/index.js';
|
|
13
13
|
import type { CancellationRequest, CancellationResult, CrossSessionTaskRef, SessionTaskGraphSnapshot, TaskHandoffRecord } from '../sessions/orchestration/index.js';
|
|
14
|
-
import type { ExecutionPlan, PlanItem } from '../core/execution-plan.js';
|
|
14
|
+
import type { DismissPlanResult, ExecutionPlan, PlanItem } from '../core/execution-plan.js';
|
|
15
15
|
import type { DomainVerbosity } from './notifications/types.js';
|
|
16
16
|
import type { HITLMode, HITLModeDefinition } from '../state/mode-manager.js';
|
|
17
17
|
export interface ShellAgentManagerService {
|
|
@@ -51,6 +51,8 @@ export interface ShellPlanManagerService {
|
|
|
51
51
|
toMarkdown(plan: ExecutionPlan): string;
|
|
52
52
|
create(title: string, items: Omit<PlanItem, 'id' | 'status'>[], sessionId?: string): ExecutionPlan;
|
|
53
53
|
save(plan: ExecutionPlan): void;
|
|
54
|
+
/** Archive the active plan (DEBT-3). See ExecutionPlanManager.dismiss. */
|
|
55
|
+
dismiss(sessionId?: string): DismissPlanResult;
|
|
54
56
|
}
|
|
55
57
|
export interface ShellSessionOrchestrationService {
|
|
56
58
|
linkTask(ref: CrossSessionTaskRef, dependsOn?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-command-ops.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/shell-command-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"shell-command-ops.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/shell-command-ops.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC5F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE7E,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;IACtC,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7C,KAAK,IAAI,IAAI,CAAC;IACd,WAAW,IAAI,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,IAAI,aAAa,EAAE,CAAC;IAC5B,SAAS,CAAC,KAAK,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACxE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,oCAAoC,GAAG,6BAA6B,GAAG,iBAAiB,CAAC;AAErG,MAAM,WAAW,uBAAuB;IACtC,WAAW,IAAI,QAAQ,CAAC;IACxB,aAAa,IAAI,kBAAkB,CAAC;IACpC,eAAe,IAAI,kBAAkB,EAAE,CAAC;IACxC,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IACrE,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IACxC,IAAI,IAAI,aAAa,EAAE,CAAC;IACxB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IACnG,IAAI,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,0EAA0E;IAC1E,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAAC;CAChD;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvH,eAAe,CACb,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAC9C,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,IAAI,wBAAwB,CAAC;IACrC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;IAC1E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACxE,WAAW,IAAI,iBAAiB,EAAE,CAAC;IACnC,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAAC;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,qBAAqB,IAAI,SAAS,aAAa,EAAE,CAAC;IAClD,WAAW,IAAI,gBAAgB,CAAC;IAChC,SAAS,IAAI,SAAS,gBAAgB,EAAE,CAAC;IACzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,CAAC;IACnE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC9E,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAChF,aAAa,IAAI,SAAS,oBAAoB,EAAE,CAAC;IACjD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;IAC3D,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACvE,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAAC;IACtE,aAAa,IAAI,SAAS,uBAAuB,EAAE,CAAC;IACpD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,uBAAuB,GAAG,IAAI,CAAC;IAChE,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACtD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,uBAAuB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACvH,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,uBAAuB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC5H,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/D,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,mBAAmB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1F,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,iBAAiB,CAAC,EAAE,oCAAoC,GAAG,SAAS,CAAC;IACrE,WAAW,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAClD,WAAW,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,oBAAoB,CAAC,EAAE,gCAAgC,GAAG,SAAS,CAAC;IACpE,aAAa,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjD,WAAW,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,6BAA8B,SAAQ,uBAAuB;CAAG;AAEjF,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,uBAAuB,CAwBzB;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,UAAU,EAAE,OAAO,qBAAqB,EAAE,YAAY,CAAC;IAChE,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;CACrC,GAAG,oBAAoB,GAAG,SAAS,CA+BnC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACvD,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAClF,GAAG,kBAAkB,GAAG,SAAS,CAOjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-http-client-validators.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/transports/daemon-http-client-validators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC1G,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,qCAAqC,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAO1G,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAChC,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,CAAC,CAWH;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,CAAC,GAAG,IAAI,CAUV;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,SAAS,CAAC,EAAE,CASd;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,WAAW,EAAE,CAU/F;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,oBAAoB,EAAE,CAK/G;AAED,wBAAgB,kCAAkC,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,uBAAuB,EAAE,CAc3H;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,uBAAuB,CASvG;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CASnG;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAU3F;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAUzG;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,qCAAqC,CAUtH;
|
|
1
|
+
{"version":3,"file":"daemon-http-client-validators.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/transports/daemon-http-client-validators.ts"],"names":[],"mappings":"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"}
|