@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,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tones.ts — the canonical UI tone-token table, hoisted from `goodvibes-tui`
|
|
3
|
+
* src/renderer/ui-primitives.ts (UI_TONES + DIFF_TONES + SPINNER_FRAMES) and
|
|
4
|
+
* src/renderer/theme.ts (resolveUiTones / UI_TONES_LIGHT).
|
|
5
|
+
*
|
|
6
|
+
* TONE_TOKENS mirrors the TUI's UI_TONES shape byte-for-byte (the TUI is the
|
|
7
|
+
* reference, and its dark values are the accepted baseline — this keeps a
|
|
8
|
+
* future TUI swap onto this module a no-op). resolveTones(mode) is the single
|
|
9
|
+
* mode-resolved read path: 'dark' returns TONE_TOKENS itself (so a byte-identity
|
|
10
|
+
* check against the constant is trivially true), 'light' returns the inverted
|
|
11
|
+
* chrome/accent variant tuned for legibility on a light terminal background.
|
|
12
|
+
*
|
|
13
|
+
* This module is PURE data — no fs, no terminal I/O, no process globals.
|
|
14
|
+
* Painting stays renderer-owned; this module owns only the token values and
|
|
15
|
+
* the mode-resolution function.
|
|
16
|
+
*/
|
|
17
|
+
/** Background mode — dark is the safe default until a caller's own bg-probe lands. */
|
|
18
|
+
export type ThemeMode = 'dark' | 'light';
|
|
19
|
+
/** The dark-mode (reference) tone-token table. */
|
|
20
|
+
export declare const TONE_TOKENS: {
|
|
21
|
+
readonly fg: {
|
|
22
|
+
readonly primary: "#e2e8f0";
|
|
23
|
+
readonly secondary: "#cbd5e1";
|
|
24
|
+
readonly muted: "#94a3b8";
|
|
25
|
+
readonly dim: "#475569";
|
|
26
|
+
readonly inverse: "#0f172a";
|
|
27
|
+
/** Empty-state / placeholder foreground. */
|
|
28
|
+
readonly empty: "#334155";
|
|
29
|
+
};
|
|
30
|
+
readonly bg: {
|
|
31
|
+
readonly base: "#11131a";
|
|
32
|
+
readonly surface: "#161a22";
|
|
33
|
+
readonly title: "#0f172a";
|
|
34
|
+
readonly section: "#18202b";
|
|
35
|
+
readonly summary: "#1b2430";
|
|
36
|
+
readonly selected: "#223049";
|
|
37
|
+
readonly input: "#1e293b";
|
|
38
|
+
readonly warning: "#2b2116";
|
|
39
|
+
readonly error: "#2a161b";
|
|
40
|
+
readonly success: "#14241b";
|
|
41
|
+
/** Fullscreen/shell footer background. */
|
|
42
|
+
readonly footer: "#111827";
|
|
43
|
+
};
|
|
44
|
+
readonly state: {
|
|
45
|
+
readonly info: "#38bdf8";
|
|
46
|
+
readonly good: "#22c55e";
|
|
47
|
+
readonly warn: "#f59e0b";
|
|
48
|
+
readonly bad: "#ef4444";
|
|
49
|
+
readonly blocked: "#f97316";
|
|
50
|
+
readonly active: "#60a5fa";
|
|
51
|
+
/** Canonical reasoning/thinking purple. */
|
|
52
|
+
readonly reasoning: "#a855f7";
|
|
53
|
+
};
|
|
54
|
+
readonly accent: {
|
|
55
|
+
readonly browser: "#7dd3fc";
|
|
56
|
+
readonly control: "#22d3ee";
|
|
57
|
+
readonly inspector: "#c4b5fd";
|
|
58
|
+
readonly workflow: "#fbbf24";
|
|
59
|
+
readonly conversation: "#93c5fd";
|
|
60
|
+
/** Neon brand accent — header/splash/thinking gradient only. */
|
|
61
|
+
readonly brand: "#00ffff";
|
|
62
|
+
readonly gradientStart: "#00ffff";
|
|
63
|
+
readonly gradientEnd: "#d000ff";
|
|
64
|
+
};
|
|
65
|
+
/** Canonical border stroke color for fullscreen/panel chrome. */
|
|
66
|
+
readonly border: "#64748b";
|
|
67
|
+
/**
|
|
68
|
+
* Persistent-chrome foregrounds — header / footer / live-thinking rows that
|
|
69
|
+
* paint onto the TRANSPARENT terminal background (bg:''), NOT onto the
|
|
70
|
+
* opaque dark modal/panel surfaces that fg.* and state.* serve. In light
|
|
71
|
+
* mode this chrome sits on a light terminal and must invert toward dark to
|
|
72
|
+
* stay legible, which is why it carries its own role instead of reusing
|
|
73
|
+
* fg.muted/fg.dim (tuned light-on-dark for the opaque boxes). Dark values
|
|
74
|
+
* here are byte-identical to the tokens they mirror (fg.muted, fg.dim,
|
|
75
|
+
* state.warn, state.bad), so dark-mode chrome is unchanged by this table
|
|
76
|
+
* existing.
|
|
77
|
+
*/
|
|
78
|
+
readonly chrome: {
|
|
79
|
+
/** Secondary chrome text (header conversation title). == fg.muted (dark). */
|
|
80
|
+
readonly label: "#94a3b8";
|
|
81
|
+
/** Faint chrome text (version, provider, header rule, clean git). == fg.dim (dark). */
|
|
82
|
+
readonly faint: "#475569";
|
|
83
|
+
/** Warn accent on terminal bg (dirty git, pending risk). == state.warn (dark). */
|
|
84
|
+
readonly warn: "#f59e0b";
|
|
85
|
+
/** Alert accent on terminal bg (DANGER banner, shell risk). == state.bad (dark). */
|
|
86
|
+
readonly bad: "#ef4444";
|
|
87
|
+
/** Success accent on terminal bg (tool-call checkmark status). == state.good (dark). */
|
|
88
|
+
readonly good: "#22c55e";
|
|
89
|
+
/** Remote-risk accent on terminal bg (risk:remote marker, plain status). */
|
|
90
|
+
readonly remote: "#a78bfa";
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Diff surface accent color shared across diff-rendering surfaces (conversation
|
|
95
|
+
* diff view, file diff panel, git panel inline diff).
|
|
96
|
+
*/
|
|
97
|
+
export declare const DIFF_TONES: {
|
|
98
|
+
readonly add: "#00ff88";
|
|
99
|
+
readonly del: "#ff4444";
|
|
100
|
+
readonly hunk: "#88aaff";
|
|
101
|
+
};
|
|
102
|
+
/** Single spinner-frame source. */
|
|
103
|
+
export declare const SPINNER_FRAMES: readonly ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
104
|
+
/** Recursively widen the `as const` literal leaves of TONE_TOKENS to `string`
|
|
105
|
+
* so the light variant can assign different colour values without fighting
|
|
106
|
+
* TypeScript's literal-type inference. */
|
|
107
|
+
type DeepWidenToString<T> = T extends string ? string : {
|
|
108
|
+
[K in keyof T]: DeepWidenToString<T[K]>;
|
|
109
|
+
};
|
|
110
|
+
/** The mode-resolved shape returned by resolveTones — same keys as TONE_TOKENS,
|
|
111
|
+
* widened from literal string types to `string` so light values can differ. */
|
|
112
|
+
export type ToneTokens = DeepWidenToString<typeof TONE_TOKENS>;
|
|
113
|
+
/**
|
|
114
|
+
* resolveTones — return the tone-token table for the given background mode.
|
|
115
|
+
* 'dark' returns TONE_TOKENS itself (byte-identical, same object reference) so
|
|
116
|
+
* a consumer that has not wired mode detection can call resolveTones('dark')
|
|
117
|
+
* as the safe default with zero behavior change.
|
|
118
|
+
*/
|
|
119
|
+
export declare function resolveTones(mode: ThemeMode): Readonly<ToneTokens>;
|
|
120
|
+
export {};
|
|
121
|
+
//# sourceMappingURL=tones.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tones.d.ts","sourceRoot":"","sources":["../../../src/platform/presentation/tones.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,sFAAsF;AACtF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,kDAAkD;AAClD,eAAO,MAAM,WAAW;;;;;;;QAOpB,4CAA4C;;;;;;;;;;;;;;QAc5C,0CAA0C;;;;;;;;;;QAU1C,2CAA2C;;;;;;;;;QAS3C,gEAAgE;;;;;IAKlE,iEAAiE;;IAEjE;;;;;;;;;;OAUG;;QAED,6EAA6E;;QAE7E,uFAAuF;;QAEvF,kFAAkF;;QAElF,oFAAoF;;QAEpF,wFAAwF;;QAExF,4EAA4E;;;CAGtE,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;CAIb,CAAC;AAEX,mCAAmC;AACnC,eAAO,MAAM,cAAc,6DAA8D,CAAC;AAE1F;;0CAE0C;AAC1C,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEpG;+EAC+E;AAC/E,MAAM,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,WAAW,CAAC,CAAC;AAuC/D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAElE"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tones.ts — the canonical UI tone-token table, hoisted from `goodvibes-tui`
|
|
3
|
+
* src/renderer/ui-primitives.ts (UI_TONES + DIFF_TONES + SPINNER_FRAMES) and
|
|
4
|
+
* src/renderer/theme.ts (resolveUiTones / UI_TONES_LIGHT).
|
|
5
|
+
*
|
|
6
|
+
* TONE_TOKENS mirrors the TUI's UI_TONES shape byte-for-byte (the TUI is the
|
|
7
|
+
* reference, and its dark values are the accepted baseline — this keeps a
|
|
8
|
+
* future TUI swap onto this module a no-op). resolveTones(mode) is the single
|
|
9
|
+
* mode-resolved read path: 'dark' returns TONE_TOKENS itself (so a byte-identity
|
|
10
|
+
* check against the constant is trivially true), 'light' returns the inverted
|
|
11
|
+
* chrome/accent variant tuned for legibility on a light terminal background.
|
|
12
|
+
*
|
|
13
|
+
* This module is PURE data — no fs, no terminal I/O, no process globals.
|
|
14
|
+
* Painting stays renderer-owned; this module owns only the token values and
|
|
15
|
+
* the mode-resolution function.
|
|
16
|
+
*/
|
|
17
|
+
/** The dark-mode (reference) tone-token table. */
|
|
18
|
+
export const TONE_TOKENS = {
|
|
19
|
+
fg: {
|
|
20
|
+
primary: '#e2e8f0',
|
|
21
|
+
secondary: '#cbd5e1',
|
|
22
|
+
muted: '#94a3b8',
|
|
23
|
+
dim: '#475569',
|
|
24
|
+
inverse: '#0f172a',
|
|
25
|
+
/** Empty-state / placeholder foreground. */
|
|
26
|
+
empty: '#334155',
|
|
27
|
+
},
|
|
28
|
+
bg: {
|
|
29
|
+
base: '#11131a',
|
|
30
|
+
surface: '#161a22',
|
|
31
|
+
title: '#0f172a',
|
|
32
|
+
section: '#18202b',
|
|
33
|
+
summary: '#1b2430',
|
|
34
|
+
selected: '#223049',
|
|
35
|
+
input: '#1e293b',
|
|
36
|
+
warning: '#2b2116',
|
|
37
|
+
error: '#2a161b',
|
|
38
|
+
success: '#14241b',
|
|
39
|
+
/** Fullscreen/shell footer background. */
|
|
40
|
+
footer: '#111827',
|
|
41
|
+
},
|
|
42
|
+
state: {
|
|
43
|
+
info: '#38bdf8',
|
|
44
|
+
good: '#22c55e',
|
|
45
|
+
warn: '#f59e0b',
|
|
46
|
+
bad: '#ef4444',
|
|
47
|
+
blocked: '#f97316',
|
|
48
|
+
active: '#60a5fa',
|
|
49
|
+
/** Canonical reasoning/thinking purple. */
|
|
50
|
+
reasoning: '#a855f7',
|
|
51
|
+
},
|
|
52
|
+
accent: {
|
|
53
|
+
browser: '#7dd3fc',
|
|
54
|
+
control: '#22d3ee',
|
|
55
|
+
inspector: '#c4b5fd',
|
|
56
|
+
workflow: '#fbbf24',
|
|
57
|
+
conversation: '#93c5fd',
|
|
58
|
+
/** Neon brand accent — header/splash/thinking gradient only. */
|
|
59
|
+
brand: '#00ffff',
|
|
60
|
+
gradientStart: '#00ffff',
|
|
61
|
+
gradientEnd: '#d000ff',
|
|
62
|
+
},
|
|
63
|
+
/** Canonical border stroke color for fullscreen/panel chrome. */
|
|
64
|
+
border: '#64748b',
|
|
65
|
+
/**
|
|
66
|
+
* Persistent-chrome foregrounds — header / footer / live-thinking rows that
|
|
67
|
+
* paint onto the TRANSPARENT terminal background (bg:''), NOT onto the
|
|
68
|
+
* opaque dark modal/panel surfaces that fg.* and state.* serve. In light
|
|
69
|
+
* mode this chrome sits on a light terminal and must invert toward dark to
|
|
70
|
+
* stay legible, which is why it carries its own role instead of reusing
|
|
71
|
+
* fg.muted/fg.dim (tuned light-on-dark for the opaque boxes). Dark values
|
|
72
|
+
* here are byte-identical to the tokens they mirror (fg.muted, fg.dim,
|
|
73
|
+
* state.warn, state.bad), so dark-mode chrome is unchanged by this table
|
|
74
|
+
* existing.
|
|
75
|
+
*/
|
|
76
|
+
chrome: {
|
|
77
|
+
/** Secondary chrome text (header conversation title). == fg.muted (dark). */
|
|
78
|
+
label: '#94a3b8',
|
|
79
|
+
/** Faint chrome text (version, provider, header rule, clean git). == fg.dim (dark). */
|
|
80
|
+
faint: '#475569',
|
|
81
|
+
/** Warn accent on terminal bg (dirty git, pending risk). == state.warn (dark). */
|
|
82
|
+
warn: '#f59e0b',
|
|
83
|
+
/** Alert accent on terminal bg (DANGER banner, shell risk). == state.bad (dark). */
|
|
84
|
+
bad: '#ef4444',
|
|
85
|
+
/** Success accent on terminal bg (tool-call checkmark status). == state.good (dark). */
|
|
86
|
+
good: '#22c55e',
|
|
87
|
+
/** Remote-risk accent on terminal bg (risk:remote marker, plain status). */
|
|
88
|
+
remote: '#a78bfa',
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Diff surface accent color shared across diff-rendering surfaces (conversation
|
|
93
|
+
* diff view, file diff panel, git panel inline diff).
|
|
94
|
+
*/
|
|
95
|
+
export const DIFF_TONES = {
|
|
96
|
+
add: '#00ff88',
|
|
97
|
+
del: '#ff4444',
|
|
98
|
+
hunk: '#88aaff',
|
|
99
|
+
};
|
|
100
|
+
/** Single spinner-frame source. */
|
|
101
|
+
export const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
102
|
+
//
|
|
103
|
+
// Light variant — inverts the chrome group (and the two accents/state roles
|
|
104
|
+
// with no light-appropriate dark equivalent: state.info/reasoning,
|
|
105
|
+
// accent.brand/gradientStart/gradientEnd) toward dark-on-light legibility.
|
|
106
|
+
// Every other role has no light-specific value yet and is carried over from
|
|
107
|
+
// TONE_TOKENS unchanged (spread below) — this mirrors the TUI's UI_TONES_LIGHT
|
|
108
|
+
// exactly, including which roles it leaves untouched.
|
|
109
|
+
//
|
|
110
|
+
const TONE_TOKENS_LIGHT = {
|
|
111
|
+
...TONE_TOKENS,
|
|
112
|
+
state: {
|
|
113
|
+
...TONE_TOKENS.state,
|
|
114
|
+
info: '#0369a1',
|
|
115
|
+
reasoning: '#7c3aed',
|
|
116
|
+
},
|
|
117
|
+
accent: {
|
|
118
|
+
...TONE_TOKENS.accent,
|
|
119
|
+
brand: '#0077aa',
|
|
120
|
+
gradientStart: '#0077aa',
|
|
121
|
+
gradientEnd: '#7c3aed',
|
|
122
|
+
},
|
|
123
|
+
chrome: {
|
|
124
|
+
...TONE_TOKENS.chrome,
|
|
125
|
+
label: '#64748b',
|
|
126
|
+
faint: '#94a3b8',
|
|
127
|
+
warn: '#b45309',
|
|
128
|
+
bad: '#dc2626',
|
|
129
|
+
good: '#15803d',
|
|
130
|
+
remote: '#6d28d9',
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
Object.freeze(TONE_TOKENS_LIGHT.state);
|
|
134
|
+
Object.freeze(TONE_TOKENS_LIGHT.accent);
|
|
135
|
+
Object.freeze(TONE_TOKENS_LIGHT.chrome);
|
|
136
|
+
Object.freeze(TONE_TOKENS_LIGHT);
|
|
137
|
+
/**
|
|
138
|
+
* resolveTones — return the tone-token table for the given background mode.
|
|
139
|
+
* 'dark' returns TONE_TOKENS itself (byte-identical, same object reference) so
|
|
140
|
+
* a consumer that has not wired mode detection can call resolveTones('dark')
|
|
141
|
+
* as the safe default with zero behavior change.
|
|
142
|
+
*/
|
|
143
|
+
export function resolveTones(mode) {
|
|
144
|
+
return mode === 'light' ? TONE_TOKENS_LIGHT : TONE_TOKENS;
|
|
145
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* waiting-wording.ts — the honest waiting-state WORDING contract, extracted
|
|
3
|
+
* from `goodvibes-tui` src/renderer/ui-factory.ts:554-584 (the phrase-selection
|
|
4
|
+
* branch inside createThinkingFragment; the companion :522-552
|
|
5
|
+
* computeStallInfo/computeRenderStallInfo signal computation stays
|
|
6
|
+
* renderer-local — each renderer has its own stream-metrics shape to derive
|
|
7
|
+
* a WaitingState from).
|
|
8
|
+
*
|
|
9
|
+
* The split this hoists is a DATA/pure-function contract: a renderer decides
|
|
10
|
+
* WHICH state it is in (from its own approval/stall/reconnect signals, in the
|
|
11
|
+
* TUI's precedence order — approval beats reconnect beats pre-first-token
|
|
12
|
+
* beats stalled beats thinking) and calls waitingPhrase(state, ctx) for the
|
|
13
|
+
* exact wording. Neither renderer should carry its own copy of these five
|
|
14
|
+
* strings/rotation — that duplication is exactly what the W4-R1 audit found
|
|
15
|
+
* (the agent's ui-factory.ts:308-313 was rotating-only, with no honest
|
|
16
|
+
* stall/reconnect/approval split at all).
|
|
17
|
+
*
|
|
18
|
+
* PURE — no fs, no terminal I/O, no timers. Gradient color, spinner glyph,
|
|
19
|
+
* tok/s and elapsed-time suffixes stay renderer-owned (ui-factory.ts's
|
|
20
|
+
* createThinkingFragment composes those around the phrase this returns).
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* The five honest waiting states, in the TUI's precedence order:
|
|
24
|
+
* - 'approval' — a card is waiting on the USER; the turn is not
|
|
25
|
+
* stalled and the provider is not at fault.
|
|
26
|
+
* - 'reconnecting' — the transport is retrying after a drop.
|
|
27
|
+
* - 'pre-first-token' — no delta yet this turn; normal for reasoning models
|
|
28
|
+
* that think before emitting (NOT "stalled" — that
|
|
29
|
+
* would wrongly blame the provider for ordinary
|
|
30
|
+
* pre-token latency).
|
|
31
|
+
* - 'stalled' — silence AFTER the stream had already started
|
|
32
|
+
* producing tokens.
|
|
33
|
+
* - 'thinking' — the ordinary case: tokens are flowing at a normal
|
|
34
|
+
* cadence, show a rotating whimsical phrase.
|
|
35
|
+
*/
|
|
36
|
+
export type WaitingState = 'approval' | 'reconnecting' | 'pre-first-token' | 'stalled' | 'thinking';
|
|
37
|
+
/** Inputs waitingPhrase needs for the states that carry numbers. Fields
|
|
38
|
+
* unused by the selected state are ignored. */
|
|
39
|
+
export interface WaitingPhraseContext {
|
|
40
|
+
/** 'reconnecting' — the current retry attempt number. */
|
|
41
|
+
readonly reconnectAttempt?: number;
|
|
42
|
+
/** 'reconnecting' — the configured maximum retry attempts. */
|
|
43
|
+
readonly reconnectMaxAttempts?: number;
|
|
44
|
+
/** 'pre-first-token' / 'stalled' — elapsed silence since the last delta, in ms. */
|
|
45
|
+
readonly msSinceLastDelta?: number;
|
|
46
|
+
/** 'thinking' — the render frame counter driving the phrase rotation. */
|
|
47
|
+
readonly frame?: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* waitingPhrase — the state -> wording mapping, golden-matched against the
|
|
51
|
+
* TUI's ui-factory.ts:554-584 output for identical inputs.
|
|
52
|
+
*/
|
|
53
|
+
export declare function waitingPhrase(state: WaitingState, ctx?: WaitingPhraseContext): string;
|
|
54
|
+
//# sourceMappingURL=waiting-wording.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-wording.d.ts","sourceRoot":"","sources":["../../../src/platform/presentation/waiting-wording.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAQH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpG;+CAC+C;AAC/C,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,mFAAmF;IACnF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,oBAAyB,GAAG,MAAM,CAqBzF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* waiting-wording.ts — the honest waiting-state WORDING contract, extracted
|
|
3
|
+
* from `goodvibes-tui` src/renderer/ui-factory.ts:554-584 (the phrase-selection
|
|
4
|
+
* branch inside createThinkingFragment; the companion :522-552
|
|
5
|
+
* computeStallInfo/computeRenderStallInfo signal computation stays
|
|
6
|
+
* renderer-local — each renderer has its own stream-metrics shape to derive
|
|
7
|
+
* a WaitingState from).
|
|
8
|
+
*
|
|
9
|
+
* The split this hoists is a DATA/pure-function contract: a renderer decides
|
|
10
|
+
* WHICH state it is in (from its own approval/stall/reconnect signals, in the
|
|
11
|
+
* TUI's precedence order — approval beats reconnect beats pre-first-token
|
|
12
|
+
* beats stalled beats thinking) and calls waitingPhrase(state, ctx) for the
|
|
13
|
+
* exact wording. Neither renderer should carry its own copy of these five
|
|
14
|
+
* strings/rotation — that duplication is exactly what the W4-R1 audit found
|
|
15
|
+
* (the agent's ui-factory.ts:308-313 was rotating-only, with no honest
|
|
16
|
+
* stall/reconnect/approval split at all).
|
|
17
|
+
*
|
|
18
|
+
* PURE — no fs, no terminal I/O, no timers. Gradient color, spinner glyph,
|
|
19
|
+
* tok/s and elapsed-time suffixes stay renderer-owned (ui-factory.ts's
|
|
20
|
+
* createThinkingFragment composes those around the phrase this returns).
|
|
21
|
+
*/
|
|
22
|
+
import { THINKING_PHRASES } from './thinking-phrases.js';
|
|
23
|
+
/** Frame cadence the 'thinking' rotation advances at (frames tick at 80ms in
|
|
24
|
+
* the TUI, so ~30s per phrase) — the TUI's PHRASE_ROTATION_FRAMES verbatim. */
|
|
25
|
+
const PHRASE_ROTATION_FRAMES = 375;
|
|
26
|
+
/**
|
|
27
|
+
* waitingPhrase — the state -> wording mapping, golden-matched against the
|
|
28
|
+
* TUI's ui-factory.ts:554-584 output for identical inputs.
|
|
29
|
+
*/
|
|
30
|
+
export function waitingPhrase(state, ctx = {}) {
|
|
31
|
+
switch (state) {
|
|
32
|
+
case 'approval':
|
|
33
|
+
// An approval card is waiting on the user — blame-free, precedence over
|
|
34
|
+
// stall/reconnect framing: waiting on the user is the true state.
|
|
35
|
+
return 'Waiting for your approval';
|
|
36
|
+
case 'reconnecting':
|
|
37
|
+
return `Reconnecting (attempt ${ctx.reconnectAttempt ?? 0}/${ctx.reconnectMaxAttempts ?? 0})...`;
|
|
38
|
+
case 'pre-first-token':
|
|
39
|
+
return `Waiting for model ${Math.floor((ctx.msSinceLastDelta ?? 0) / 1000)}s...`;
|
|
40
|
+
case 'stalled':
|
|
41
|
+
return `Stalled ${Math.floor((ctx.msSinceLastDelta ?? 0) / 1000)}s...`;
|
|
42
|
+
case 'thinking': {
|
|
43
|
+
const frame = ctx.frame ?? 0;
|
|
44
|
+
const phraseIndex = Math.floor(frame / PHRASE_ROTATION_FRAMES) % THINKING_PHRASES.length;
|
|
45
|
+
// phraseIndex is always in [0, THINKING_PHRASES.length) — the modulo above
|
|
46
|
+
// guarantees an in-bounds index; the non-null assertion only satisfies
|
|
47
|
+
// noUncheckedIndexedAccess and is never actually unsound.
|
|
48
|
+
return THINKING_PHRASES[phraseIndex];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-snapshot.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/runtime-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGvE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/D;
|
|
1
|
+
{"version":3,"file":"runtime-snapshot.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/runtime-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAmB,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGvE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;KAC1B,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,aAAa,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAClD,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;CAC/D;AA0ED,wBAAsB,4BAA4B,CAChD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC,GAC/K,OAAO,CAAC,SAAS,uBAAuB,EAAE,CAAC,CAG7C;AAED,wBAAsB,0BAA0B,CAC9C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC,EAC9J,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAEzC;AAED,wBAAsB,wBAAwB,CAC5C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC,EAC9J,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAiBvC"}
|
|
@@ -41,14 +41,24 @@ async function buildSnapshotForProvider(providerRegistry, providerId) {
|
|
|
41
41
|
models: { models: provider.models },
|
|
42
42
|
usage: { streaming: true, toolCalling: true, parallelTools: false },
|
|
43
43
|
};
|
|
44
|
-
|
|
44
|
+
// Read-only display path: never let an unresolved current model (e.g. a fresh
|
|
45
|
+
// isolated home whose pricing catalog has not hydrated, so the configured
|
|
46
|
+
// default has no materialized definition) turn this snapshot into a 500. Treat
|
|
47
|
+
// an unresolvable current model as "no provider is active" rather than throwing.
|
|
48
|
+
let currentModel;
|
|
49
|
+
try {
|
|
50
|
+
currentModel = providerRegistry.getCurrentModel();
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
currentModel = null;
|
|
54
|
+
}
|
|
45
55
|
const models = providerRegistry
|
|
46
56
|
.listModels()
|
|
47
57
|
.filter((model) => model.provider === providerId)
|
|
48
58
|
.map((model) => toModelSnapshot(model, providerRegistry));
|
|
49
59
|
return {
|
|
50
60
|
providerId,
|
|
51
|
-
active: currentModel
|
|
61
|
+
active: currentModel?.provider === providerId,
|
|
52
62
|
modelCount: models.length,
|
|
53
63
|
runtime: resolvedRuntime,
|
|
54
64
|
models,
|
|
@@ -16,8 +16,49 @@ interface HttpListenerService {
|
|
|
16
16
|
start(): Promise<void>;
|
|
17
17
|
stop(): Promise<void>;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Options passed to the injectable detached-daemon spawn seam. Mirrors the subset
|
|
21
|
+
* of `child_process.SpawnOptions` the detached spawn relies on. `detached: true`
|
|
22
|
+
* and the caller's subsequent `unref()` are what let the daemon outlive this
|
|
23
|
+
* surface — tests assert both are present.
|
|
24
|
+
*/
|
|
25
|
+
export interface DetachedDaemonSpawnOptions {
|
|
26
|
+
readonly detached: boolean;
|
|
27
|
+
readonly stdio: 'ignore' | ReadonlyArray<'ignore' | number>;
|
|
28
|
+
readonly cwd?: string | undefined;
|
|
29
|
+
readonly env?: NodeJS.ProcessEnv | undefined;
|
|
30
|
+
}
|
|
31
|
+
/** Minimal child-process shape the detached spawn seam must return. */
|
|
32
|
+
export interface DetachedDaemonChild {
|
|
33
|
+
readonly pid?: number | undefined;
|
|
34
|
+
unref(): void;
|
|
35
|
+
once?(event: 'error' | 'exit', listener: (arg: unknown) => void): void;
|
|
36
|
+
}
|
|
37
|
+
/** One-time hint surfaced ONCE by the TUI after a successful detached spawn. */
|
|
38
|
+
export declare const DETACHED_DAEMON_INSTALL_HINT = "daemon started for this session \u2014 install it as a service so it survives reboots: POST /api/service/install on the daemon HTTP API (admin token required)";
|
|
19
39
|
interface ServiceFactories {
|
|
20
40
|
createDaemonServer?: (runtimeBus: RuntimeEventBus, userAuth: RuntimeServices['localUserAuthManager'], runtimeServices: RuntimeServices) => DaemonService;
|
|
41
|
+
/**
|
|
42
|
+
* Injectable spawn seam for the detached standalone daemon (Layer 2 default).
|
|
43
|
+
* Defaults to `child_process.spawn`. Tests stub this to assert that detached
|
|
44
|
+
* spawn — not in-process embedding — is chosen by default, and that the options
|
|
45
|
+
* carry `detached: true` (the caller then `unref()`s the returned child).
|
|
46
|
+
*/
|
|
47
|
+
spawnDetachedDaemon?: (command: string, args: readonly string[], options: DetachedDaemonSpawnOptions) => DetachedDaemonChild;
|
|
48
|
+
/** Command used to launch the detached daemon. Default: `GOODVIBES_DAEMON_BINARY` env or `goodvibes-daemon`. */
|
|
49
|
+
daemonLaunchCommand?: string | undefined;
|
|
50
|
+
/** Extra CLI args appended after the resolved `--daemon-home/--hostname/--port` flags. */
|
|
51
|
+
daemonLaunchArgs?: readonly string[] | undefined;
|
|
52
|
+
/** Daemon home directory passed via `--daemon-home`. Default: `os.homedir()`. */
|
|
53
|
+
daemonHomeDir?: string | undefined;
|
|
54
|
+
/** Directory where the detached daemon records pid/port + log. Default `<daemonHomeDir>/.goodvibes/daemon`. */
|
|
55
|
+
daemonRuntimeDir?: string | undefined;
|
|
56
|
+
/** Bounded time to wait for the detached daemon to bind + pass the identity probe. */
|
|
57
|
+
detachedSpawnProbeTimeoutMs?: number | undefined;
|
|
58
|
+
/** Poll interval while waiting for the detached daemon to become reachable. */
|
|
59
|
+
detachedSpawnProbeIntervalMs?: number | undefined;
|
|
60
|
+
/** Sleep function (injectable so tests drive the probe loop deterministically). */
|
|
61
|
+
sleep?: ((ms: number) => Promise<void>) | undefined;
|
|
21
62
|
createHttpListener?: (hookDispatcher: HookDispatcher, userAuth: RuntimeServices['localUserAuthManager'], configManager: RuntimeServices['configManager']) => HttpListenerService;
|
|
22
63
|
startupTimeoutMs?: number | undefined;
|
|
23
64
|
probeDaemonPortInUse?: ((host: string, port: number) => Promise<boolean>) | undefined;
|
|
@@ -37,8 +78,20 @@ interface ServiceFactories {
|
|
|
37
78
|
* different tokens, or both may share the same bearer.
|
|
38
79
|
*/
|
|
39
80
|
sharedHttpListenerToken?: string | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* This surface's own SDK version, used to band-check a daemon found on the
|
|
83
|
+
* configured port before adopting it. Defaults to the SDK `VERSION`. Injected
|
|
84
|
+
* mainly so tests can drive the compatibility gate deterministically.
|
|
85
|
+
*/
|
|
86
|
+
localDaemonVersion?: string | undefined;
|
|
87
|
+
/**
|
|
88
|
+
* Override for the version-compatibility predicate. Defaults to the shared
|
|
89
|
+
* `isDaemonVersionCompatible` band policy. Tests inject a stub to exercise the
|
|
90
|
+
* incompatible-adoption refusal without constructing skewed daemons.
|
|
91
|
+
*/
|
|
92
|
+
isDaemonVersionCompatible?: ((localVersion: string, remoteVersion: string | undefined) => boolean) | undefined;
|
|
40
93
|
}
|
|
41
|
-
export type HostServiceMode = 'disabled' | 'embedded' | 'external' | 'blocked' | 'unavailable';
|
|
94
|
+
export type HostServiceMode = 'disabled' | 'embedded' | 'external' | 'blocked' | 'incompatible' | 'unavailable';
|
|
42
95
|
export interface HostServiceStatus {
|
|
43
96
|
readonly mode: HostServiceMode;
|
|
44
97
|
readonly host: string;
|
|
@@ -60,11 +113,18 @@ export interface HostServicesHandle {
|
|
|
60
113
|
readonly httpListener: HttpListenerService | null;
|
|
61
114
|
readonly daemonStatus: HostServiceStatus;
|
|
62
115
|
readonly httpListenerStatus: HostServiceStatus;
|
|
116
|
+
/**
|
|
117
|
+
* One-time, honest hint the surface can display ONCE after this host instance
|
|
118
|
+
* spawned a detached daemon for the session. Present only when a detached
|
|
119
|
+
* daemon was just started (Layer 2); undefined when a daemon was adopted,
|
|
120
|
+
* embedded, disabled, or unavailable. See {@link DETACHED_DAEMON_INSTALL_HINT}.
|
|
121
|
+
*/
|
|
122
|
+
readonly daemonStartHint?: string | undefined;
|
|
63
123
|
listRecentControlPlaneEvents(limit: number): readonly import('../control-plane/gateway.js').ControlPlaneRecentEvent[];
|
|
64
124
|
stop(): Promise<void>;
|
|
65
125
|
}
|
|
66
126
|
export interface HostServicesConfig {
|
|
67
|
-
get(key: '
|
|
127
|
+
get(key: 'daemon.enabled' | 'daemon.embedInProcess' | 'danger.httpListener' | 'controlPlane.host' | 'controlPlane.port' | 'httpListener.host' | 'httpListener.port'): boolean | string | number | undefined;
|
|
68
128
|
}
|
|
69
129
|
export declare function startHostServices(config: HostServicesConfig, runtimeBus: RuntimeEventBus, hookDispatcher: HookDispatcher, runtimeServices: RuntimeServices, factories?: ServiceFactories): Promise<HostServicesHandle>;
|
|
70
130
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap-services.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/bootstrap-services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap-services.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/bootstrap-services.ts"],"names":[],"mappings":"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"}
|