@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,248 @@
|
|
|
1
|
+
/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */
|
|
2
|
+
/**
|
|
3
|
+
* WorktreeIsolationManager — the engine-side driver for `worktree` isolation
|
|
4
|
+
* mode (see WorkstreamIsolation, types.ts, and IsolatedWorktree, worktree.ts).
|
|
5
|
+
*
|
|
6
|
+
* Owns three things the engine calls into at well-defined lifecycle points:
|
|
7
|
+
*
|
|
8
|
+
* ensureWorktree() — at an item's FIRST claim (engine.ts runItemPhase),
|
|
9
|
+
* create its dedicated worktree if it doesn't have
|
|
10
|
+
* one yet. Idempotent across an item's phases (a
|
|
11
|
+
* worktree persists for the item's whole run).
|
|
12
|
+
* enqueueIntegration() — when a passed item's pipeline terminates, queue its
|
|
13
|
+
* branch onto the SINGLE sequential integration lane
|
|
14
|
+
* (completion order, not claim order). A conflict
|
|
15
|
+
* keeps the worktree + branch and lets the lane
|
|
16
|
+
* continue with the next item — never auto-resolved,
|
|
17
|
+
* never silently dropped.
|
|
18
|
+
* cleanupTerminated() — when an item fails or is killed, remove its
|
|
19
|
+
* worktree ONLY if the tree is clean; a dirty tree
|
|
20
|
+
* is KEPT (data safety) and counted against the
|
|
21
|
+
* kept-worktree cap (oldest-first eviction).
|
|
22
|
+
* reconcileOrphans() — at import (a resumed/crashed workstream), find any
|
|
23
|
+
* on-disk `ws/<wsShort>/*` worktree not already
|
|
24
|
+
* recorded on one of the imported items and either
|
|
25
|
+
* ADOPT it (the item still has unresolved work) or
|
|
26
|
+
* REPORT it (leave in place for the operator — NEVER
|
|
27
|
+
* deleted on sight).
|
|
28
|
+
*
|
|
29
|
+
* Location + naming: worktrees live under
|
|
30
|
+
* `<projectRoot>/.goodvibes/.worktrees/ws/<wsShort>/<itemShort>` on branch
|
|
31
|
+
* `ws/<wsShort>/<itemShort>` — deterministic from (workstreamId, itemId), so
|
|
32
|
+
* `ensureWorktree` and `reconcileOrphans` agree on where a given item's
|
|
33
|
+
* worktree lives without any extra bookkeeping.
|
|
34
|
+
*
|
|
35
|
+
* SYNCHRONOUS orphan scan (deliberate — mirrors dirty-guard.ts's
|
|
36
|
+
* snapshotDirtyTree precedent): `reconcileOrphans` must resolve BEFORE the
|
|
37
|
+
* engine's first tick() can claim any item, or a claim could race the async
|
|
38
|
+
* git listing and create a second worktree at the same deterministic path an
|
|
39
|
+
* orphan already occupies (`git worktree add` on an existing path throws).
|
|
40
|
+
* importWorkstream (engine.ts) is itself a synchronous function, so
|
|
41
|
+
* reconciliation is done with Bun.spawnSync, paid once per import, exactly
|
|
42
|
+
* like the launch-dirty snapshot.
|
|
43
|
+
*/
|
|
44
|
+
import { createHash } from 'node:crypto';
|
|
45
|
+
import { join } from 'node:path';
|
|
46
|
+
import { GitService } from '../git/service.js';
|
|
47
|
+
import { IsolatedWorktree } from '../agents/worktree.js';
|
|
48
|
+
import { logger } from '../utils/logger.js';
|
|
49
|
+
import { summarizeError } from '../utils/error-display.js';
|
|
50
|
+
/** Derives a short, filesystem/branch-safe fragment from an id: the suffix after the last '-' when it's plain alphanumerics, else a stable short hash of the whole id (caller-supplied WorkItemSpec.id can be arbitrary text). */
|
|
51
|
+
function shortId(id) {
|
|
52
|
+
const dash = id.lastIndexOf('-');
|
|
53
|
+
const candidate = dash >= 0 ? id.slice(dash + 1) : id;
|
|
54
|
+
if (candidate.length > 0 && /^[A-Za-z0-9]+$/.test(candidate))
|
|
55
|
+
return candidate;
|
|
56
|
+
return createHash('sha1').update(id).digest('hex').slice(0, 8);
|
|
57
|
+
}
|
|
58
|
+
export function itemWorktreeBranch(workstreamId, itemId) {
|
|
59
|
+
return `ws/${shortId(workstreamId)}/${shortId(itemId)}`;
|
|
60
|
+
}
|
|
61
|
+
function itemWorktreeDir(projectRoot, workstreamId, itemId) {
|
|
62
|
+
return join(projectRoot, '.goodvibes', '.worktrees', 'ws', shortId(workstreamId), shortId(itemId));
|
|
63
|
+
}
|
|
64
|
+
export function createWorktreeIsolationManager(deps) {
|
|
65
|
+
const now = deps.now ?? (() => Date.now());
|
|
66
|
+
const keptCap = deps.keptWorktreeCap ?? 20;
|
|
67
|
+
const rootGit = new GitService(deps.projectRoot);
|
|
68
|
+
const instances = new Map(); // itemId -> instance
|
|
69
|
+
const kept = [];
|
|
70
|
+
let baseBranchCache = null;
|
|
71
|
+
let integrationLane = Promise.resolve();
|
|
72
|
+
/** Resolved once (Bun.spawnSync, mirroring dirty-guard.ts) since every IsolatedWorktree for this manager's lifetime merges into the SAME root-tree branch. */
|
|
73
|
+
function resolveBaseBranch() {
|
|
74
|
+
if (baseBranchCache)
|
|
75
|
+
return baseBranchCache;
|
|
76
|
+
try {
|
|
77
|
+
const result = Bun.spawnSync(['git', '-C', deps.projectRoot, 'rev-parse', '--abbrev-ref', 'HEAD']);
|
|
78
|
+
const branch = result.exitCode === 0 ? new TextDecoder().decode(result.stdout).trim() : '';
|
|
79
|
+
baseBranchCache = branch.length > 0 && branch !== 'HEAD' ? branch : 'main';
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
logger.warn('worktree-isolation: could not resolve base branch, defaulting to "main"', { error: summarizeError(error) });
|
|
83
|
+
baseBranchCache = 'main';
|
|
84
|
+
}
|
|
85
|
+
return baseBranchCache;
|
|
86
|
+
}
|
|
87
|
+
function getOrCreateInstance(workstream, item, path, branch) {
|
|
88
|
+
let instance = instances.get(item.id);
|
|
89
|
+
if (!instance) {
|
|
90
|
+
instance = new IsolatedWorktree(deps.projectRoot, path, branch, resolveBaseBranch());
|
|
91
|
+
instances.set(item.id, instance);
|
|
92
|
+
}
|
|
93
|
+
return instance;
|
|
94
|
+
}
|
|
95
|
+
async function ensureWorktree(workstream, item) {
|
|
96
|
+
const path = item.worktreePath ?? itemWorktreeDir(deps.projectRoot, workstream.id, item.id);
|
|
97
|
+
const branch = item.worktreeBranch ?? itemWorktreeBranch(workstream.id, item.id);
|
|
98
|
+
const instance = getOrCreateInstance(workstream, item, path, branch);
|
|
99
|
+
if (!item.worktreePath) {
|
|
100
|
+
await instance.create();
|
|
101
|
+
item.worktreePath = instance.path;
|
|
102
|
+
item.worktreeBranch = instance.branch;
|
|
103
|
+
deps.emit({ type: 'item-worktree-created', workstreamId: workstream.id, itemId: item.id, path: instance.path, branch: instance.branch });
|
|
104
|
+
}
|
|
105
|
+
return { path: instance.path, commit: (message, paths) => instance.commit(message, paths) };
|
|
106
|
+
}
|
|
107
|
+
function keepWorktree(workstream, item, instance, reason) {
|
|
108
|
+
item.worktreeKept = true;
|
|
109
|
+
deps.emit({ type: 'item-worktree-kept', workstreamId: workstream.id, itemId: item.id, path: instance.path, reason });
|
|
110
|
+
kept.push({ workstream, item, instance, keptAt: now() });
|
|
111
|
+
enforceKeptCap();
|
|
112
|
+
}
|
|
113
|
+
function enforceKeptCap() {
|
|
114
|
+
while (kept.length > keptCap) {
|
|
115
|
+
const oldest = kept.shift();
|
|
116
|
+
if (!oldest)
|
|
117
|
+
break;
|
|
118
|
+
void removeWorktree(oldest.workstream, oldest.item, oldest.instance, true).catch((error) => {
|
|
119
|
+
logger.error('worktree-isolation: eviction of oldest kept worktree did not complete', {
|
|
120
|
+
itemId: oldest.item.id, error: summarizeError(error),
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
async function removeWorktree(workstream, item, instance, evicted) {
|
|
126
|
+
const path = instance.path;
|
|
127
|
+
try {
|
|
128
|
+
await instance.remove();
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
logger.warn('worktree-isolation: worktree removal did not complete', { itemId: item.id, path, error: summarizeError(error) });
|
|
132
|
+
}
|
|
133
|
+
instances.delete(item.id);
|
|
134
|
+
item.worktreePath = undefined;
|
|
135
|
+
item.worktreeKept = false;
|
|
136
|
+
deps.emit(evicted
|
|
137
|
+
? { type: 'item-worktree-evicted', workstreamId: workstream.id, itemId: item.id, path }
|
|
138
|
+
: { type: 'item-worktree-removed', workstreamId: workstream.id, itemId: item.id, path });
|
|
139
|
+
}
|
|
140
|
+
async function integrateOne(workstream, item) {
|
|
141
|
+
const path = item.worktreePath ?? itemWorktreeDir(deps.projectRoot, workstream.id, item.id);
|
|
142
|
+
const branch = item.worktreeBranch ?? itemWorktreeBranch(workstream.id, item.id);
|
|
143
|
+
const instance = getOrCreateInstance(workstream, item, path, branch);
|
|
144
|
+
item.mergeState = 'pending';
|
|
145
|
+
try {
|
|
146
|
+
const outcome = await instance.integrate();
|
|
147
|
+
if (outcome.status === 'merged') {
|
|
148
|
+
item.mergeState = 'merged';
|
|
149
|
+
item.mergeHash = outcome.hash;
|
|
150
|
+
deps.emit({ type: 'item-merged', workstreamId: workstream.id, itemId: item.id, branch: instance.branch, hash: outcome.hash });
|
|
151
|
+
await removeWorktree(workstream, item, instance, false);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (outcome.status === 'conflict') {
|
|
155
|
+
item.mergeState = 'conflict';
|
|
156
|
+
item.blockedReason = `merge-conflict: ${outcome.files.join(', ') || 'unknown files'}`;
|
|
157
|
+
deps.emit({
|
|
158
|
+
type: 'item-merge-conflict', workstreamId: workstream.id, itemId: item.id,
|
|
159
|
+
branch: instance.branch, path: instance.path, files: outcome.files,
|
|
160
|
+
});
|
|
161
|
+
keepWorktree(workstream, item, instance, `merge-conflict: ${outcome.files.join(', ') || 'unknown files'}`);
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
// 'empty' — the item branch carries no commits beyond base: an honest
|
|
165
|
+
// no-op, not a failure. Nothing to merge, so trivially "merged" (no
|
|
166
|
+
// hash — there is no merge commit to report) and the worktree is
|
|
167
|
+
// reclaimed like any other successfully-integrated item.
|
|
168
|
+
item.mergeState = 'merged';
|
|
169
|
+
await removeWorktree(workstream, item, instance, false);
|
|
170
|
+
}
|
|
171
|
+
catch (error) {
|
|
172
|
+
logger.error('worktree-isolation: integration attempt threw', { itemId: item.id, error: summarizeError(error) });
|
|
173
|
+
item.mergeState = 'conflict';
|
|
174
|
+
item.blockedReason = `merge-conflict: integration did not complete (${summarizeError(error)})`;
|
|
175
|
+
keepWorktree(workstream, item, instance, `integration attempt threw: ${summarizeError(error)}`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function enqueueIntegration(workstream, item) {
|
|
179
|
+
const run = integrationLane.then(() => integrateOne(workstream, item));
|
|
180
|
+
// Chain off a NEVER-REJECTING tail so one item's (already internally
|
|
181
|
+
// caught) failure can't skip the lane forward for the next enqueue —
|
|
182
|
+
// integrateOne never actually throws past its own try/catch, but this is
|
|
183
|
+
// cheap insurance against a future change forgetting that invariant.
|
|
184
|
+
integrationLane = run.catch((error) => {
|
|
185
|
+
logger.error('worktree-isolation: integration lane step did not complete', { itemId: item.id, error: summarizeError(error) });
|
|
186
|
+
});
|
|
187
|
+
return run;
|
|
188
|
+
}
|
|
189
|
+
async function cleanupTerminated(workstream, item) {
|
|
190
|
+
const instance = instances.get(item.id);
|
|
191
|
+
if (!instance)
|
|
192
|
+
return; // never got a worktree (failed before claim, or shared mode)
|
|
193
|
+
try {
|
|
194
|
+
const clean = await instance.isClean();
|
|
195
|
+
if (clean) {
|
|
196
|
+
await removeWorktree(workstream, item, instance, false);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
keepWorktree(workstream, item, instance, 'dirty tree after item failed/killed');
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
logger.error('worktree-isolation: cleanup-on-terminate check did not complete, keeping worktree for safety', {
|
|
204
|
+
itemId: item.id, error: summarizeError(error),
|
|
205
|
+
});
|
|
206
|
+
keepWorktree(workstream, item, instance, `cleanup check did not complete: ${summarizeError(error)}`);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function reconcileOrphans(workstream) {
|
|
210
|
+
let raw;
|
|
211
|
+
try {
|
|
212
|
+
const result = Bun.spawnSync(['git', '-C', deps.projectRoot, 'worktree', 'list', '--porcelain']);
|
|
213
|
+
if (result.exitCode !== 0)
|
|
214
|
+
return;
|
|
215
|
+
raw = new TextDecoder().decode(result.stdout);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
logger.warn('worktree-isolation: orphan scan (worktree list) did not complete', { error: summarizeError(error) });
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const prefix = `ws/${shortId(workstream.id)}/`;
|
|
222
|
+
const knownPaths = new Set(workstream.items.map((i) => i.worktreePath).filter((p) => typeof p === 'string' && p.length > 0));
|
|
223
|
+
for (const block of raw.trim().split('\n\n').filter(Boolean)) {
|
|
224
|
+
const lines = block.split('\n');
|
|
225
|
+
const path = lines.find((l) => l.startsWith('worktree '))?.slice('worktree '.length) ?? '';
|
|
226
|
+
const branchLine = lines.find((l) => l.startsWith('branch '));
|
|
227
|
+
const branch = branchLine ? branchLine.slice('branch '.length).replace(/^refs\/heads\//, '') : '';
|
|
228
|
+
if (!path || !branch.startsWith(prefix))
|
|
229
|
+
continue;
|
|
230
|
+
if (knownPaths.has(path))
|
|
231
|
+
continue; // already tracked by an item's recorded worktreePath — not an orphan
|
|
232
|
+
const itemShort = branch.slice(prefix.length);
|
|
233
|
+
const item = workstream.items.find((i) => shortId(i.id) === itemShort);
|
|
234
|
+
const unresolved = !!item && ((item.state !== 'passed' && item.state !== 'failed')
|
|
235
|
+
|| item.mergeState === 'pending');
|
|
236
|
+
if (item && unresolved) {
|
|
237
|
+
item.worktreePath = path;
|
|
238
|
+
item.worktreeBranch = branch;
|
|
239
|
+
instances.set(item.id, new IsolatedWorktree(deps.projectRoot, path, branch, resolveBaseBranch()));
|
|
240
|
+
deps.emit({ type: 'orphan-worktree-reconciled', workstreamId: workstream.id, path, branch, disposition: 'adopted' });
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
deps.emit({ type: 'orphan-worktree-reconciled', workstreamId: workstream.id, path, branch, disposition: 'reported' });
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
return { ensureWorktree, enqueueIntegration, cleanupTerminated, reconcileOrphans };
|
|
248
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* glyphs.ts — the canonical glyph registry for status/frame/navigation/meter
|
|
3
|
+
* rendering, hoisted from `goodvibes-tui` src/renderer/ui-primitives.ts (GLYPHS)
|
|
4
|
+
* and src/renderer/status-glyphs.ts (STATE_GLYPHS).
|
|
5
|
+
*
|
|
6
|
+
* This is one of the four genuinely-duplicated presentation tables named by the
|
|
7
|
+
* renderer/input parity audit (see CHANGELOG 1.0.0; both the TUI and the agent shipped a near-twin
|
|
8
|
+
* copy). The TUI is the reference: it is the more-complete, more-recently-fixed
|
|
9
|
+
* copy, and per the presentation-contract decision record its `status` group is
|
|
10
|
+
* the one both renderers converge on.
|
|
11
|
+
*
|
|
12
|
+
* Reconciliation (the one real content choice this hoist makes): the TUI and
|
|
13
|
+
* agent status groups disagreed —
|
|
14
|
+
* - TUI: idle = '◌' (U+25CC), info = '○' (U+25CB), warn = '⚠' present
|
|
15
|
+
* - agent: idle = '○' (U+25CB), info = '•' (U+2022), no `warn` key
|
|
16
|
+
* GLYPHS.status below is the TUI's values verbatim. Consumers that previously
|
|
17
|
+
* carried the agent's values will see idle/info visibly change when they adopt
|
|
18
|
+
* this module — an intentional convergence, not a regression (see the decision
|
|
19
|
+
* record's divergence ruling).
|
|
20
|
+
*/
|
|
21
|
+
/** The full glyph registry — frame/surface/navigation/status/meter groups. */
|
|
22
|
+
export declare const GLYPHS: {
|
|
23
|
+
readonly frame: {
|
|
24
|
+
readonly topLeft: "┌";
|
|
25
|
+
readonly topRight: "┐";
|
|
26
|
+
readonly bottomLeft: "└";
|
|
27
|
+
readonly bottomRight: "┘";
|
|
28
|
+
readonly horizontal: "─";
|
|
29
|
+
readonly vertical: "│";
|
|
30
|
+
readonly teeLeft: "├";
|
|
31
|
+
readonly teeRight: "┤";
|
|
32
|
+
readonly teeTop: "┬";
|
|
33
|
+
readonly teeBottom: "┴";
|
|
34
|
+
readonly cross: "┼";
|
|
35
|
+
};
|
|
36
|
+
readonly surface: {
|
|
37
|
+
readonly top: "▄";
|
|
38
|
+
readonly bottom: "▀";
|
|
39
|
+
readonly cursor: "█";
|
|
40
|
+
readonly altCursor: "▌";
|
|
41
|
+
};
|
|
42
|
+
readonly navigation: {
|
|
43
|
+
readonly selected: "▸";
|
|
44
|
+
readonly collapsed: "▸";
|
|
45
|
+
readonly expanded: "▾";
|
|
46
|
+
readonly up: "↑";
|
|
47
|
+
readonly down: "↓";
|
|
48
|
+
readonly moreAbove: "▲";
|
|
49
|
+
readonly moreBelow: "▼";
|
|
50
|
+
readonly next: "→";
|
|
51
|
+
readonly back: "←";
|
|
52
|
+
readonly pipeSeparator: "│";
|
|
53
|
+
};
|
|
54
|
+
readonly status: {
|
|
55
|
+
readonly success: "✓";
|
|
56
|
+
readonly failure: "✕";
|
|
57
|
+
readonly pending: "•";
|
|
58
|
+
readonly active: "●";
|
|
59
|
+
readonly idle: "◌";
|
|
60
|
+
readonly info: "○";
|
|
61
|
+
readonly warn: "⚠";
|
|
62
|
+
readonly blocked: "⊘";
|
|
63
|
+
readonly skipped: "◇";
|
|
64
|
+
readonly review: "◈";
|
|
65
|
+
readonly retry: "↻";
|
|
66
|
+
readonly handoff: "⇢";
|
|
67
|
+
readonly reference: "↗";
|
|
68
|
+
readonly partial: "◐";
|
|
69
|
+
readonly dualPane: "◆";
|
|
70
|
+
readonly star: "★";
|
|
71
|
+
};
|
|
72
|
+
readonly meter: {
|
|
73
|
+
readonly filled: "█";
|
|
74
|
+
readonly medium: "▓";
|
|
75
|
+
readonly light: "▒";
|
|
76
|
+
readonly empty: "░";
|
|
77
|
+
readonly spark: readonly ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
/** The four semantic status states STATE_GLYPHS maps onto. */
|
|
81
|
+
export type StatusState = 'good' | 'warn' | 'bad' | 'info';
|
|
82
|
+
/**
|
|
83
|
+
* STATE_GLYPHS — the 4-state semantic alias map, aliased to GLYPHS.status (the
|
|
84
|
+
* TUI's mechanism). The agent's twin (status-glyphs.ts) hardcoded its own
|
|
85
|
+
* literals ('✓'/'⚠'/'✕'/'○') instead of aliasing a shared registry; hoisting
|
|
86
|
+
* the TUI's alias pattern here means there is exactly one place these four
|
|
87
|
+
* glyphs are spelled out, and STATUS_GLYPHS/GLYPHS.status can never drift
|
|
88
|
+
* apart again.
|
|
89
|
+
*/
|
|
90
|
+
export declare const STATE_GLYPHS: Record<StatusState, string>;
|
|
91
|
+
//# sourceMappingURL=glyphs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glyphs.d.ts","sourceRoot":"","sources":["../../../src/platform/presentation/glyphs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDT,CAAC;AAEX,8DAA8D;AAC9D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKpD,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* glyphs.ts — the canonical glyph registry for status/frame/navigation/meter
|
|
3
|
+
* rendering, hoisted from `goodvibes-tui` src/renderer/ui-primitives.ts (GLYPHS)
|
|
4
|
+
* and src/renderer/status-glyphs.ts (STATE_GLYPHS).
|
|
5
|
+
*
|
|
6
|
+
* This is one of the four genuinely-duplicated presentation tables named by the
|
|
7
|
+
* renderer/input parity audit (see CHANGELOG 1.0.0; both the TUI and the agent shipped a near-twin
|
|
8
|
+
* copy). The TUI is the reference: it is the more-complete, more-recently-fixed
|
|
9
|
+
* copy, and per the presentation-contract decision record its `status` group is
|
|
10
|
+
* the one both renderers converge on.
|
|
11
|
+
*
|
|
12
|
+
* Reconciliation (the one real content choice this hoist makes): the TUI and
|
|
13
|
+
* agent status groups disagreed —
|
|
14
|
+
* - TUI: idle = '◌' (U+25CC), info = '○' (U+25CB), warn = '⚠' present
|
|
15
|
+
* - agent: idle = '○' (U+25CB), info = '•' (U+2022), no `warn` key
|
|
16
|
+
* GLYPHS.status below is the TUI's values verbatim. Consumers that previously
|
|
17
|
+
* carried the agent's values will see idle/info visibly change when they adopt
|
|
18
|
+
* this module — an intentional convergence, not a regression (see the decision
|
|
19
|
+
* record's divergence ruling).
|
|
20
|
+
*/
|
|
21
|
+
/** The full glyph registry — frame/surface/navigation/status/meter groups. */
|
|
22
|
+
export const GLYPHS = {
|
|
23
|
+
frame: {
|
|
24
|
+
topLeft: '┌',
|
|
25
|
+
topRight: '┐',
|
|
26
|
+
bottomLeft: '└',
|
|
27
|
+
bottomRight: '┘',
|
|
28
|
+
horizontal: '─',
|
|
29
|
+
vertical: '│',
|
|
30
|
+
teeLeft: '├',
|
|
31
|
+
teeRight: '┤',
|
|
32
|
+
teeTop: '┬',
|
|
33
|
+
teeBottom: '┴',
|
|
34
|
+
cross: '┼',
|
|
35
|
+
},
|
|
36
|
+
surface: {
|
|
37
|
+
top: '▄',
|
|
38
|
+
bottom: '▀',
|
|
39
|
+
cursor: '█',
|
|
40
|
+
altCursor: '▌',
|
|
41
|
+
},
|
|
42
|
+
navigation: {
|
|
43
|
+
selected: '▸',
|
|
44
|
+
collapsed: '▸',
|
|
45
|
+
expanded: '▾',
|
|
46
|
+
up: '↑',
|
|
47
|
+
down: '↓',
|
|
48
|
+
moreAbove: '▲',
|
|
49
|
+
moreBelow: '▼',
|
|
50
|
+
next: '→',
|
|
51
|
+
back: '←',
|
|
52
|
+
pipeSeparator: '│',
|
|
53
|
+
},
|
|
54
|
+
status: {
|
|
55
|
+
success: '✓',
|
|
56
|
+
failure: '✕',
|
|
57
|
+
pending: '•',
|
|
58
|
+
active: '●',
|
|
59
|
+
idle: '◌',
|
|
60
|
+
info: '○',
|
|
61
|
+
warn: '⚠',
|
|
62
|
+
blocked: '⊘',
|
|
63
|
+
skipped: '◇',
|
|
64
|
+
review: '◈',
|
|
65
|
+
retry: '↻',
|
|
66
|
+
handoff: '⇢',
|
|
67
|
+
reference: '↗',
|
|
68
|
+
partial: '◐',
|
|
69
|
+
dualPane: '◆',
|
|
70
|
+
star: '★',
|
|
71
|
+
},
|
|
72
|
+
meter: {
|
|
73
|
+
filled: '█',
|
|
74
|
+
medium: '▓',
|
|
75
|
+
light: '▒',
|
|
76
|
+
empty: '░',
|
|
77
|
+
spark: ['▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'],
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* STATE_GLYPHS — the 4-state semantic alias map, aliased to GLYPHS.status (the
|
|
82
|
+
* TUI's mechanism). The agent's twin (status-glyphs.ts) hardcoded its own
|
|
83
|
+
* literals ('✓'/'⚠'/'✕'/'○') instead of aliasing a shared registry; hoisting
|
|
84
|
+
* the TUI's alias pattern here means there is exactly one place these four
|
|
85
|
+
* glyphs are spelled out, and STATUS_GLYPHS/GLYPHS.status can never drift
|
|
86
|
+
* apart again.
|
|
87
|
+
*/
|
|
88
|
+
export const STATE_GLYPHS = {
|
|
89
|
+
good: GLYPHS.status.success, // ✓
|
|
90
|
+
warn: GLYPHS.status.warn, // ⚠
|
|
91
|
+
bad: GLYPHS.status.failure, // ✕
|
|
92
|
+
info: GLYPHS.status.info, // ○
|
|
93
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pellux/goodvibes-sdk/platform/presentation
|
|
3
|
+
*
|
|
4
|
+
* The presentation contract — the four genuinely-duplicated presentation
|
|
5
|
+
* tables named by the renderer/input parity audit (see CHANGELOG 1.0.0; goodvibes-tui vs
|
|
6
|
+
* goodvibes-agent), hoisted into one pure, dependency-free module per Mike's
|
|
7
|
+
* SDK-boundary rule (machinery needed by 2+ surfaces => SDK):
|
|
8
|
+
*
|
|
9
|
+
* - GLYPHS / STATE_GLYPHS — the glyph registry + semantic status-glyph alias.
|
|
10
|
+
* - TONE_TOKENS / resolveTones / DIFF_TONES / SPINNER_FRAMES — the chrome
|
|
11
|
+
* tone-token table and its dark/light mode resolution.
|
|
12
|
+
* - THINKING_PHRASES — the rotating thinking-phrase pool.
|
|
13
|
+
* - WaitingState / waitingPhrase — the honest waiting-state wording contract.
|
|
14
|
+
*
|
|
15
|
+
* The TUI is the reference for every value here; dark stays byte-identical to
|
|
16
|
+
* today's TUI. See docs/decisions/2026-07-05-presentation-contract-sdk-extraction.md
|
|
17
|
+
* for the full decision record, including the GLYPHS status-group reconciliation
|
|
18
|
+
* ruling and the consumption plan (the agent picks this up via R4; the TUI swap is
|
|
19
|
+
* deferred to a future coherence pass).
|
|
20
|
+
*
|
|
21
|
+
* PURE — no fs, no terminal I/O, no process globals. Painting stays
|
|
22
|
+
* renderer-owned; this module owns only tokens and pure wording functions.
|
|
23
|
+
*/
|
|
24
|
+
export { GLYPHS, STATE_GLYPHS, type StatusState } from './glyphs.js';
|
|
25
|
+
export { TONE_TOKENS, resolveTones, DIFF_TONES, SPINNER_FRAMES, type ThemeMode, type ToneTokens, } from './tones.js';
|
|
26
|
+
export { THINKING_PHRASES } from './thinking-phrases.js';
|
|
27
|
+
export { waitingPhrase, type WaitingState, type WaitingPhraseContext, } from './waiting-wording.js';
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/presentation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,UAAU,EACV,cAAc,EACd,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EACL,aAAa,EACb,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pellux/goodvibes-sdk/platform/presentation
|
|
3
|
+
*
|
|
4
|
+
* The presentation contract — the four genuinely-duplicated presentation
|
|
5
|
+
* tables named by the renderer/input parity audit (see CHANGELOG 1.0.0; goodvibes-tui vs
|
|
6
|
+
* goodvibes-agent), hoisted into one pure, dependency-free module per Mike's
|
|
7
|
+
* SDK-boundary rule (machinery needed by 2+ surfaces => SDK):
|
|
8
|
+
*
|
|
9
|
+
* - GLYPHS / STATE_GLYPHS — the glyph registry + semantic status-glyph alias.
|
|
10
|
+
* - TONE_TOKENS / resolveTones / DIFF_TONES / SPINNER_FRAMES — the chrome
|
|
11
|
+
* tone-token table and its dark/light mode resolution.
|
|
12
|
+
* - THINKING_PHRASES — the rotating thinking-phrase pool.
|
|
13
|
+
* - WaitingState / waitingPhrase — the honest waiting-state wording contract.
|
|
14
|
+
*
|
|
15
|
+
* The TUI is the reference for every value here; dark stays byte-identical to
|
|
16
|
+
* today's TUI. See docs/decisions/2026-07-05-presentation-contract-sdk-extraction.md
|
|
17
|
+
* for the full decision record, including the GLYPHS status-group reconciliation
|
|
18
|
+
* ruling and the consumption plan (the agent picks this up via R4; the TUI swap is
|
|
19
|
+
* deferred to a future coherence pass).
|
|
20
|
+
*
|
|
21
|
+
* PURE — no fs, no terminal I/O, no process globals. Painting stays
|
|
22
|
+
* renderer-owned; this module owns only tokens and pure wording functions.
|
|
23
|
+
*/
|
|
24
|
+
export { GLYPHS, STATE_GLYPHS } from './glyphs.js';
|
|
25
|
+
export { TONE_TOKENS, resolveTones, DIFF_TONES, SPINNER_FRAMES, } from './tones.js';
|
|
26
|
+
export { THINKING_PHRASES } from './thinking-phrases.js';
|
|
27
|
+
export { waitingPhrase, } from './waiting-wording.js';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* thinking-phrases.ts — the rotating "thinking" phrase pool, hoisted from
|
|
3
|
+
* `goodvibes-tui` src/renderer/ui-factory.ts (THINKING_PHRASES). Verbatim
|
|
4
|
+
* identical to the agent's copy today (per the renderer/input parity audit) — a pure
|
|
5
|
+
* move, no reconciliation needed.
|
|
6
|
+
*
|
|
7
|
+
* Vaporwave / good-vibes themed; shown by waitingPhrase()'s 'thinking' case
|
|
8
|
+
* while a turn is genuinely producing tokens at a normal cadence (see
|
|
9
|
+
* waiting-wording.ts).
|
|
10
|
+
*/
|
|
11
|
+
export declare const THINKING_PHRASES: readonly ["Thinking...", "Vibing...", "Manifesting...", "Channeling energy...", "Tuning frequencies...", "Riding the wave...", "Aligning chakras...", "Entering flow state...", "Consulting the void...", "Absorbing aesthetics...", "Synthesizing vibes...", "Transcending...", "Dreaming in neon...", "Parsing the cosmos...", "Loading good vibes...", "Meditating...", "Catching a vibe...", "Harmonizing...", "Feeling it...", "In the zone..."];
|
|
12
|
+
//# sourceMappingURL=thinking-phrases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"thinking-phrases.d.ts","sourceRoot":"","sources":["../../../src/platform/presentation/thinking-phrases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,ubAqBnB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* thinking-phrases.ts — the rotating "thinking" phrase pool, hoisted from
|
|
3
|
+
* `goodvibes-tui` src/renderer/ui-factory.ts (THINKING_PHRASES). Verbatim
|
|
4
|
+
* identical to the agent's copy today (per the renderer/input parity audit) — a pure
|
|
5
|
+
* move, no reconciliation needed.
|
|
6
|
+
*
|
|
7
|
+
* Vaporwave / good-vibes themed; shown by waitingPhrase()'s 'thinking' case
|
|
8
|
+
* while a turn is genuinely producing tokens at a normal cadence (see
|
|
9
|
+
* waiting-wording.ts).
|
|
10
|
+
*/
|
|
11
|
+
export const THINKING_PHRASES = [
|
|
12
|
+
'Thinking...',
|
|
13
|
+
'Vibing...',
|
|
14
|
+
'Manifesting...',
|
|
15
|
+
'Channeling energy...',
|
|
16
|
+
'Tuning frequencies...',
|
|
17
|
+
'Riding the wave...',
|
|
18
|
+
'Aligning chakras...',
|
|
19
|
+
'Entering flow state...',
|
|
20
|
+
'Consulting the void...',
|
|
21
|
+
'Absorbing aesthetics...',
|
|
22
|
+
'Synthesizing vibes...',
|
|
23
|
+
'Transcending...',
|
|
24
|
+
'Dreaming in neon...',
|
|
25
|
+
'Parsing the cosmos...',
|
|
26
|
+
'Loading good vibes...',
|
|
27
|
+
'Meditating...',
|
|
28
|
+
'Catching a vibe...',
|
|
29
|
+
'Harmonizing...',
|
|
30
|
+
'Feeling it...',
|
|
31
|
+
'In the zone...',
|
|
32
|
+
];
|