@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
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
export { ConfigManager } from './manager.js';
|
|
9
9
|
export { DEFAULT_CONFIG, CONFIG_KEYS, CONFIG_SCHEMA, isValidConfigKey } from './schema.js';
|
|
10
10
|
export { ConfigError } from '../types/errors.js';
|
|
11
|
+
export { migrateDangerDaemonAlias } from './migrations.js';
|
|
11
12
|
import { readFileSync } from 'fs';
|
|
12
13
|
import { ConfigManager } from './manager.js';
|
|
13
14
|
export function getConfigSnapshot(configManager) {
|
|
@@ -22,6 +23,22 @@ export function getConfiguredEmbeddingProviderId(configManager) {
|
|
|
22
23
|
export function isAutoApproveEnabled(configManager) {
|
|
23
24
|
return configManager.get('behavior.autoApprove');
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve whether the local session daemon should run.
|
|
28
|
+
*
|
|
29
|
+
* `daemon.enabled` governs (default `true` — daemon on by default,
|
|
30
|
+
* loopback-bound). The deprecated `danger.daemon` alias that used to
|
|
31
|
+
* override this was removed in CHANGELOG 1.0.0 (its explicit-`false` off-switch is
|
|
32
|
+
* preserved for existing users by a one-time config migration onto
|
|
33
|
+
* `daemon.enabled`, applied at {@link ConfigManager.load} — see migrations.ts).
|
|
34
|
+
*
|
|
35
|
+
* This lives in the shared SDK config module (not TUI-local) so the standalone
|
|
36
|
+
* daemon CLI and the TUI's adopt-or-start path resolve the flag identically.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveDaemonEnabled(config) {
|
|
39
|
+
const enabled = config.get('daemon.enabled');
|
|
40
|
+
return typeof enabled === 'boolean' ? enabled : true;
|
|
41
|
+
}
|
|
25
42
|
export function getWorkingDirectory(configManager) {
|
|
26
43
|
return configManager.getWorkingDirectory();
|
|
27
44
|
}
|
|
@@ -36,6 +53,7 @@ export { createOAuthLocalListener } from './oauth-local-listener.js';
|
|
|
36
53
|
export { HelperModel, HelperModelUnavailableError, HelperRouter } from './helper-model.js';
|
|
37
54
|
export { beginOpenAICodexLogin, exchangeOpenAICodexCode, refreshOpenAICodexToken, OPENAI_CODEX_AUTHORIZE_URL, OPENAI_CODEX_CLIENT_ID, OPENAI_CODEX_REDIRECT_URI, OPENAI_CODEX_TOKEN_URL, } from './openai-codex-auth.js';
|
|
38
55
|
export * from './secret-refs.js';
|
|
56
|
+
export { createCredentialStatusProvider } from './credential-status.js';
|
|
39
57
|
export { SecretsManager } from './secrets.js';
|
|
40
58
|
export { ServiceRegistry } from './service-registry.js';
|
|
41
59
|
export { SubscriptionManager } from './subscriptions.js';
|
|
@@ -95,6 +95,15 @@ export declare class ConfigManager {
|
|
|
95
95
|
saveProject(): void;
|
|
96
96
|
/** Load config from disk: global then project (project wins). Deep-merges with defaults. */
|
|
97
97
|
load(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Removal-of-`danger.daemon` migration (see CHANGELOG 1.0.0): rewrite an explicit legacy
|
|
100
|
+
* `danger.daemon = false` onto `daemon.enabled = false` before the raw JSON
|
|
101
|
+
* is merged with defaults, so the removed alias's two-year off-switch is
|
|
102
|
+
* honored rather than silently flipped on. Reports honestly via the logger
|
|
103
|
+
* when it actually rewrites a value; a no-op migration (alias absent, or
|
|
104
|
+
* `= true`) stays silent. See migrations.ts for the full contract.
|
|
105
|
+
*/
|
|
106
|
+
private applyDangerDaemonMigration;
|
|
98
107
|
/**
|
|
99
108
|
* Merge a partial patch into a config category and auto-save.
|
|
100
109
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/platform/config/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/platform/config/manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQxD,wFAAwF;AACxF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;AAEF,yEAAyE;AACzE,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAAG,CAC/C;IACA,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,GACC;IACA,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC,CACF,CAAC;AASF,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;AAED,0DAA0D;AAC1D,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAErH,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC;AA0C3C;;;;;GAKG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,cAAc,CAA6C;IACnE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsE;gBAErF,SAAS,EAAE,eAAe;IAyCtC,wBAAwB,IAAI,MAAM;IAIlC,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAIpC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,oBAAoB,IAAI,MAAM,GAAG,SAAS;IAI1C,oBAAoB,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,IAAI;IAI/E,OAAO,CAAC,WAAW;IAwBnB,0CAA0C;IAC1C,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAKhD,gEAAgE;IAChE,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IA6B7F;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,iBAAiB;IAatF,sDAAsD;IACtD,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI;IAIhF,wFAAwF;IACxF,MAAM,IAAI,YAAY,CAAC,eAAe,CAAC;IAIvC,0DAA0D;IAC1D,WAAW,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIvF,+FAA+F;IAC/F,MAAM,IAAI,QAAQ,CAAC,eAAe,CAAC;IAInC,8BAA8B;IAC9B,SAAS,IAAI,aAAa,EAAE;IAI5B,0DAA0D;IAC1D,IAAI,IAAI,IAAI;IAKZ,yEAAyE;IACzE,WAAW,IAAI,IAAI;IAQnB,4FAA4F;IAC5F,IAAI,IAAI,IAAI;IA2BZ;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAWlC;;;;;;OAMG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IAWrG;;;;;;;OAOG;IACH,iBAAiB,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAOlF;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI;CAY7B"}
|
|
@@ -7,6 +7,7 @@ import { getManagedSettingLock } from '../runtime/settings/control-plane.js';
|
|
|
7
7
|
import { requireSurfaceRoot, resolveSurfaceDirectory, resolveSurfaceSharedFile } from '../runtime/surface-root.js';
|
|
8
8
|
import { summarizeError } from '../utils/error-display.js';
|
|
9
9
|
import { toRecord } from '../utils/record-coerce.js';
|
|
10
|
+
import { migrateDangerDaemonAlias } from './migrations.js';
|
|
10
11
|
const DEFAULT_CONFIG_SNAPSHOT = structuredClone(DEFAULT_CONFIG);
|
|
11
12
|
const PERMISSION_TOOL_KEYS = new Set(Object.keys(DEFAULT_CONFIG.permissions.tools));
|
|
12
13
|
function cloneDefaultConfig() {
|
|
@@ -279,7 +280,8 @@ export class ConfigManager {
|
|
|
279
280
|
try {
|
|
280
281
|
const raw = readFileSync(this.configPath, 'utf-8');
|
|
281
282
|
const parsed = JSON.parse(raw);
|
|
282
|
-
|
|
283
|
+
const migrated = this.applyDangerDaemonMigration(parsed, this.configPath);
|
|
284
|
+
this.config = sanitizeConfigShape(deepMerge(cloneDefaultConfig(), migrated));
|
|
283
285
|
}
|
|
284
286
|
catch (err) {
|
|
285
287
|
throw new ConfigError(`Global config load failed for ${this.configPath}: ${summarizeError(err)}`);
|
|
@@ -290,13 +292,30 @@ export class ConfigManager {
|
|
|
290
292
|
try {
|
|
291
293
|
const raw = readFileSync(this.projectConfigPath, 'utf-8');
|
|
292
294
|
const parsed = JSON.parse(raw);
|
|
293
|
-
|
|
295
|
+
const migrated = this.applyDangerDaemonMigration(parsed, this.projectConfigPath);
|
|
296
|
+
this.config = sanitizeConfigShape(deepMerge(this.config, migrated));
|
|
294
297
|
}
|
|
295
298
|
catch (err) {
|
|
296
299
|
throw new ConfigError(`Project config load failed for ${this.projectConfigPath}: ${summarizeError(err)}`);
|
|
297
300
|
}
|
|
298
301
|
}
|
|
299
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Removal-of-`danger.daemon` migration (see CHANGELOG 1.0.0): rewrite an explicit legacy
|
|
305
|
+
* `danger.daemon = false` onto `daemon.enabled = false` before the raw JSON
|
|
306
|
+
* is merged with defaults, so the removed alias's two-year off-switch is
|
|
307
|
+
* honored rather than silently flipped on. Reports honestly via the logger
|
|
308
|
+
* when it actually rewrites a value; a no-op migration (alias absent, or
|
|
309
|
+
* `= true`) stays silent. See migrations.ts for the full contract.
|
|
310
|
+
*/
|
|
311
|
+
applyDangerDaemonMigration(parsed, sourcePath) {
|
|
312
|
+
const result = migrateDangerDaemonAlias(parsed);
|
|
313
|
+
if (result.rewroteDaemonEnabledFalse) {
|
|
314
|
+
logger.info(`Migrated deprecated 'danger.daemon: false' to 'daemon.enabled: false' (${sourcePath}). ` +
|
|
315
|
+
`The legacy off-switch is preserved; 'danger.daemon' is no longer read.`);
|
|
316
|
+
}
|
|
317
|
+
return result.config;
|
|
318
|
+
}
|
|
300
319
|
/**
|
|
301
320
|
* Merge a partial patch into a config category and auto-save.
|
|
302
321
|
*
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-shot config migrations applied to raw on-disk JSON before it is
|
|
3
|
+
* deep-merged with defaults in {@link ConfigManager.load}.
|
|
4
|
+
*
|
|
5
|
+
* CHANGELOG 1.0.0 removes the deprecated `danger.daemon` alias from the schema
|
|
6
|
+
* (see docs/decisions/2026-07-05-daemon-by-default.md). Once the key leaves
|
|
7
|
+
* `CONFIG_SCHEMA`/`ConfigKey`, a stray `danger.daemon` value in an existing
|
|
8
|
+
* settings.json would otherwise be silently ignored by the deep-merge (the
|
|
9
|
+
* default config's `danger` object no longer declares a `daemon` field to
|
|
10
|
+
* merge onto) — which would flip a user's explicit two-year off-switch
|
|
11
|
+
* (`danger.daemon = false`) back to daemon-ON the moment they upgrade. This
|
|
12
|
+
* migration closes that hazard by rewriting the explicit choice onto
|
|
13
|
+
* `daemon.enabled` BEFORE the merge, so the alias is honored exactly once
|
|
14
|
+
* and then retired.
|
|
15
|
+
*/
|
|
16
|
+
export interface DangerDaemonMigrationResult {
|
|
17
|
+
/** True if the raw config carried a `danger.daemon` key that this migration touched. */
|
|
18
|
+
readonly migrated: boolean;
|
|
19
|
+
/** The (possibly rewritten) raw config, safe to deep-merge with defaults. */
|
|
20
|
+
readonly config: Record<string, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Present only when an explicit `danger.daemon = false` was rewritten onto
|
|
23
|
+
* `daemon.enabled = false` — the one case that changes resolved behavior.
|
|
24
|
+
* Callers can use this to report the migration honestly (e.g. a log line).
|
|
25
|
+
*/
|
|
26
|
+
readonly rewroteDaemonEnabledFalse: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Migrate a raw parsed settings object: `danger.daemon` (a deprecated alias
|
|
30
|
+
* for `daemon.enabled`, removed in CHANGELOG 1.0.0) is removed, and if it was
|
|
31
|
+
* explicitly `false`, that choice is preserved onto `daemon.enabled = false`.
|
|
32
|
+
*
|
|
33
|
+
* Precedence mirrors the alias it replaces (see the removed
|
|
34
|
+
* `resolveDaemonEnabled` alias branch): an explicit `danger.daemon` value
|
|
35
|
+
* always wins over whatever `daemon.enabled` currently holds in the same
|
|
36
|
+
* file, because the alias historically took precedence.
|
|
37
|
+
*
|
|
38
|
+
* Idempotent: config that has already been migrated (or never had the alias)
|
|
39
|
+
* comes back unchanged — `migrated: false`, same reference.
|
|
40
|
+
*
|
|
41
|
+
* - `danger.daemon === false` -> `daemon.enabled = false` (rewritten), alias removed.
|
|
42
|
+
* - `danger.daemon === true` -> alias removed, no rewrite (daemon.enabled
|
|
43
|
+
* already defaults `true`; nothing to preserve).
|
|
44
|
+
* - non-boolean junk under the key -> alias removed, no rewrite.
|
|
45
|
+
* - absent / not an object -> unchanged.
|
|
46
|
+
*/
|
|
47
|
+
export declare function migrateDangerDaemonAlias(parsed: Record<string, unknown>): DangerDaemonMigrationResult;
|
|
48
|
+
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/platform/config/migrations.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,2BAA2B;IAC1C,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,2BAA2B,CAmBrG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-shot config migrations applied to raw on-disk JSON before it is
|
|
3
|
+
* deep-merged with defaults in {@link ConfigManager.load}.
|
|
4
|
+
*
|
|
5
|
+
* CHANGELOG 1.0.0 removes the deprecated `danger.daemon` alias from the schema
|
|
6
|
+
* (see docs/decisions/2026-07-05-daemon-by-default.md). Once the key leaves
|
|
7
|
+
* `CONFIG_SCHEMA`/`ConfigKey`, a stray `danger.daemon` value in an existing
|
|
8
|
+
* settings.json would otherwise be silently ignored by the deep-merge (the
|
|
9
|
+
* default config's `danger` object no longer declares a `daemon` field to
|
|
10
|
+
* merge onto) — which would flip a user's explicit two-year off-switch
|
|
11
|
+
* (`danger.daemon = false`) back to daemon-ON the moment they upgrade. This
|
|
12
|
+
* migration closes that hazard by rewriting the explicit choice onto
|
|
13
|
+
* `daemon.enabled` BEFORE the merge, so the alias is honored exactly once
|
|
14
|
+
* and then retired.
|
|
15
|
+
*/
|
|
16
|
+
function isPlainObject(value) {
|
|
17
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Migrate a raw parsed settings object: `danger.daemon` (a deprecated alias
|
|
21
|
+
* for `daemon.enabled`, removed in CHANGELOG 1.0.0) is removed, and if it was
|
|
22
|
+
* explicitly `false`, that choice is preserved onto `daemon.enabled = false`.
|
|
23
|
+
*
|
|
24
|
+
* Precedence mirrors the alias it replaces (see the removed
|
|
25
|
+
* `resolveDaemonEnabled` alias branch): an explicit `danger.daemon` value
|
|
26
|
+
* always wins over whatever `daemon.enabled` currently holds in the same
|
|
27
|
+
* file, because the alias historically took precedence.
|
|
28
|
+
*
|
|
29
|
+
* Idempotent: config that has already been migrated (or never had the alias)
|
|
30
|
+
* comes back unchanged — `migrated: false`, same reference.
|
|
31
|
+
*
|
|
32
|
+
* - `danger.daemon === false` -> `daemon.enabled = false` (rewritten), alias removed.
|
|
33
|
+
* - `danger.daemon === true` -> alias removed, no rewrite (daemon.enabled
|
|
34
|
+
* already defaults `true`; nothing to preserve).
|
|
35
|
+
* - non-boolean junk under the key -> alias removed, no rewrite.
|
|
36
|
+
* - absent / not an object -> unchanged.
|
|
37
|
+
*/
|
|
38
|
+
export function migrateDangerDaemonAlias(parsed) {
|
|
39
|
+
const danger = parsed['danger'];
|
|
40
|
+
if (!isPlainObject(danger) || !('daemon' in danger)) {
|
|
41
|
+
return { migrated: false, config: parsed, rewroteDaemonEnabledFalse: false };
|
|
42
|
+
}
|
|
43
|
+
const alias = danger['daemon'];
|
|
44
|
+
const { daemon: _removedAlias, ...restDanger } = danger;
|
|
45
|
+
const nextConfig = { ...parsed, danger: restDanger };
|
|
46
|
+
if (alias === false) {
|
|
47
|
+
const existingDaemon = isPlainObject(parsed['daemon']) ? parsed['daemon'] : {};
|
|
48
|
+
nextConfig['daemon'] = { ...existingDaemon, enabled: false };
|
|
49
|
+
return { migrated: true, config: nextConfig, rewroteDaemonEnabledFalse: true };
|
|
50
|
+
}
|
|
51
|
+
// alias === true, or non-boolean junk: nothing to preserve — daemon.enabled
|
|
52
|
+
// already defaults true, and a non-boolean value was never a valid override.
|
|
53
|
+
return { migrated: true, config: nextConfig, rewroteDaemonEnabledFalse: false };
|
|
54
|
+
}
|
|
@@ -57,6 +57,12 @@ export declare const coreConfigDefaults: {
|
|
|
57
57
|
maxActiveAgents: number;
|
|
58
58
|
maxDepth: number;
|
|
59
59
|
};
|
|
60
|
+
planner: {
|
|
61
|
+
decomposition: string;
|
|
62
|
+
maxTurns: number;
|
|
63
|
+
tokenCeiling: number;
|
|
64
|
+
wallTimeoutMs: number;
|
|
65
|
+
};
|
|
60
66
|
sandbox: {
|
|
61
67
|
replIsolation: string;
|
|
62
68
|
mcpIsolation: string;
|
|
@@ -88,8 +94,11 @@ export declare const coreConfigDefaults: {
|
|
|
88
94
|
release: {
|
|
89
95
|
channel: string;
|
|
90
96
|
};
|
|
97
|
+
daemon: {
|
|
98
|
+
enabled: boolean;
|
|
99
|
+
embedInProcess: boolean;
|
|
100
|
+
};
|
|
91
101
|
danger: {
|
|
92
|
-
daemon: boolean;
|
|
93
102
|
httpListener: boolean;
|
|
94
103
|
};
|
|
95
104
|
tools: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-domain-core.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAA4B,MAAM,oBAAoB,CAAC;AAE5F,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"schema-domain-core.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAA4B,MAAM,oBAAoB,CAAC;AAE5F,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2I9B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EA0b3D,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,uBAAuB,EAmK3D,CAAC"}
|
|
@@ -57,6 +57,12 @@ export const coreConfigDefaults = {
|
|
|
57
57
|
maxActiveAgents: 8,
|
|
58
58
|
maxDepth: 0,
|
|
59
59
|
},
|
|
60
|
+
planner: {
|
|
61
|
+
decomposition: 'agent',
|
|
62
|
+
maxTurns: 6,
|
|
63
|
+
tokenCeiling: 120_000,
|
|
64
|
+
wallTimeoutMs: 120_000, // 60s starved reasoning models that think silently before emitting (live replay: planner hit the wall at Turn 3 and fell back)
|
|
65
|
+
},
|
|
60
66
|
sandbox: {
|
|
61
67
|
replIsolation: 'shared-vm',
|
|
62
68
|
mcpIsolation: 'disabled',
|
|
@@ -88,8 +94,11 @@ export const coreConfigDefaults = {
|
|
|
88
94
|
release: {
|
|
89
95
|
channel: 'stable',
|
|
90
96
|
},
|
|
97
|
+
daemon: {
|
|
98
|
+
enabled: true,
|
|
99
|
+
embedInProcess: false,
|
|
100
|
+
},
|
|
91
101
|
danger: {
|
|
92
|
-
daemon: false,
|
|
93
102
|
httpListener: false,
|
|
94
103
|
},
|
|
95
104
|
tools: {
|
|
@@ -396,6 +405,34 @@ export const coreHeadConfigSettings = [
|
|
|
396
405
|
description: 'Maximum recursive orchestration depth: 0=disabled, higher values allow deeper bounded recursion',
|
|
397
406
|
...numRange(0, 5),
|
|
398
407
|
},
|
|
408
|
+
{
|
|
409
|
+
key: 'planner.decomposition',
|
|
410
|
+
type: 'enum',
|
|
411
|
+
default: 'agent',
|
|
412
|
+
description: "How /workstream decomposes a goal into work items: 'agent' spawns a read-only planning agent (with automatic fallback to the heuristic path on any failure); 'heuristic' forces the deterministic single-item path and never spawns an agent",
|
|
413
|
+
enumValues: ['agent', 'heuristic'],
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
key: 'planner.maxTurns',
|
|
417
|
+
type: 'number',
|
|
418
|
+
default: 6,
|
|
419
|
+
description: 'Maximum turns the planning-decomposition agent may take before it is stopped and the heuristic path is used',
|
|
420
|
+
...numRange(1, 20),
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
key: 'planner.tokenCeiling',
|
|
424
|
+
type: 'number',
|
|
425
|
+
default: 120_000,
|
|
426
|
+
description: 'Total token budget for the planning-decomposition agent; exceeding it stops the agent and falls back to the heuristic path',
|
|
427
|
+
...numRange(1_000, 2_000_000),
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
key: 'planner.wallTimeoutMs',
|
|
431
|
+
type: 'number',
|
|
432
|
+
default: 120_000,
|
|
433
|
+
description: 'Wall-clock timeout (ms) for the planning-decomposition agent; exceeding it cancels the agent and falls back to the heuristic path',
|
|
434
|
+
...numRange(1_000, 600_000),
|
|
435
|
+
},
|
|
399
436
|
{
|
|
400
437
|
key: 'sandbox.replIsolation',
|
|
401
438
|
type: 'enum',
|
|
@@ -548,10 +585,16 @@ export const coreHeadConfigSettings = [
|
|
|
548
585
|
];
|
|
549
586
|
export const coreTailConfigSettings = [
|
|
550
587
|
{
|
|
551
|
-
key: '
|
|
588
|
+
key: 'daemon.enabled',
|
|
589
|
+
type: 'boolean',
|
|
590
|
+
default: true,
|
|
591
|
+
description: 'Run the local session daemon (background service that hosts the shared session broker and companion chat). Default on; binds loopback (127.0.0.1) only. Set false to run fully local with no background service.',
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
key: 'daemon.embedInProcess',
|
|
552
595
|
type: 'boolean',
|
|
553
596
|
default: false,
|
|
554
|
-
description: '
|
|
597
|
+
description: 'NOT RECOMMENDED. When true, and no daemon is already running, host the daemon INSIDE this surface process instead of spawning it as a detached background process. In-process embedding couples the daemon lifetime to this one surface: exiting the surface kills the daemon and every other surface sharing it (single point of failure). Default false — the surface spawns a detached, reboot-independent daemon (install it as a system service via POST /api/service/install on the daemon HTTP API).',
|
|
555
598
|
},
|
|
556
599
|
{
|
|
557
600
|
key: 'danger.httpListener',
|
|
@@ -76,6 +76,14 @@ export declare const runtimeConfigDefaults: {
|
|
|
76
76
|
enabled: boolean;
|
|
77
77
|
pathPrefix: string;
|
|
78
78
|
};
|
|
79
|
+
webui: {
|
|
80
|
+
serve: boolean;
|
|
81
|
+
bundleDir: string;
|
|
82
|
+
};
|
|
83
|
+
cors: {
|
|
84
|
+
enabled: boolean;
|
|
85
|
+
allowedOrigins: string;
|
|
86
|
+
};
|
|
79
87
|
tls: {
|
|
80
88
|
mode: string;
|
|
81
89
|
certFile: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-domain-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,oBAAoB,CAAC;AAElF,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"schema-domain-runtime.d.ts","sourceRoot":"","sources":["../../../src/platform/config/schema-domain-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAkB,MAAM,oBAAoB,CAAC;AAElF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuIjC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,uBAAuB,EA8OjE,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,uBAAuB,EA+WnE,CAAC"}
|
|
@@ -76,6 +76,14 @@ export const runtimeConfigDefaults = {
|
|
|
76
76
|
enabled: true,
|
|
77
77
|
pathPrefix: '/v1',
|
|
78
78
|
},
|
|
79
|
+
webui: {
|
|
80
|
+
serve: false,
|
|
81
|
+
bundleDir: '',
|
|
82
|
+
},
|
|
83
|
+
cors: {
|
|
84
|
+
enabled: false,
|
|
85
|
+
allowedOrigins: '',
|
|
86
|
+
},
|
|
79
87
|
tls: {
|
|
80
88
|
mode: 'off',
|
|
81
89
|
certFile: '',
|
|
@@ -239,6 +247,30 @@ export const runtimePrimaryConfigSettings = [
|
|
|
239
247
|
description: 'Path prefix for the daemon OpenAI-compatible routes',
|
|
240
248
|
validate: (v) => typeof v === 'string' && v.startsWith('/') && !v.includes('..'),
|
|
241
249
|
},
|
|
250
|
+
{
|
|
251
|
+
key: 'controlPlane.webui.serve',
|
|
252
|
+
type: 'boolean',
|
|
253
|
+
default: false,
|
|
254
|
+
description: 'Serve a built web UI bundle same-origin from the daemon (opt-in; loopback default unchanged). The bundle is public and the app token-authenticates its own API calls.',
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
key: 'controlPlane.webui.bundleDir',
|
|
258
|
+
type: 'string',
|
|
259
|
+
default: '',
|
|
260
|
+
description: 'Directory holding the built web UI bundle (index.html + assets) served when controlPlane.webui.serve is true. Empty disables serving.',
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
key: 'controlPlane.cors.enabled',
|
|
264
|
+
type: 'boolean',
|
|
265
|
+
default: false,
|
|
266
|
+
description: 'Answer OPTIONS preflight and emit Access-Control-Allow-* headers for allowlisted origins (opt-in; off by default). Never wildcards; credentials are allowlist-gated.',
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
key: 'controlPlane.cors.allowedOrigins',
|
|
270
|
+
type: 'string',
|
|
271
|
+
default: '',
|
|
272
|
+
description: 'Comma-separated explicit allowlist of browser origins permitted to make cross-origin requests when controlPlane.cors.enabled is true (e.g. http://localhost:5173). Empty refuses every cross-origin request.',
|
|
273
|
+
},
|
|
242
274
|
{
|
|
243
275
|
key: 'controlPlane.tls.mode',
|
|
244
276
|
type: 'enum',
|
|
@@ -55,6 +55,14 @@ export interface ControlPlaneConfig {
|
|
|
55
55
|
enabled: boolean;
|
|
56
56
|
pathPrefix: string;
|
|
57
57
|
};
|
|
58
|
+
webui: {
|
|
59
|
+
serve: boolean;
|
|
60
|
+
bundleDir: string;
|
|
61
|
+
};
|
|
62
|
+
cors: {
|
|
63
|
+
enabled: boolean;
|
|
64
|
+
allowedOrigins: string;
|
|
65
|
+
};
|
|
58
66
|
tls: {
|
|
59
67
|
mode: 'off' | 'proxy' | 'direct';
|
|
60
68
|
certFile: string;
|
|
@@ -370,6 +378,12 @@ export interface GoodVibesConfig {
|
|
|
370
378
|
maxActiveAgents: number;
|
|
371
379
|
maxDepth: number;
|
|
372
380
|
};
|
|
381
|
+
planner: {
|
|
382
|
+
decomposition: 'agent' | 'heuristic';
|
|
383
|
+
maxTurns: number;
|
|
384
|
+
tokenCeiling: number;
|
|
385
|
+
wallTimeoutMs: number;
|
|
386
|
+
};
|
|
373
387
|
sandbox: {
|
|
374
388
|
replIsolation: 'shared-vm' | 'per-runtime-vm';
|
|
375
389
|
mcpIsolation: 'disabled' | 'shared-vm' | 'hybrid' | 'per-server-vm';
|
|
@@ -403,8 +417,11 @@ export interface GoodVibesConfig {
|
|
|
403
417
|
watchers: WatchersConfig;
|
|
404
418
|
service: ServiceConfig;
|
|
405
419
|
network: NetworkConfig;
|
|
420
|
+
daemon: {
|
|
421
|
+
enabled: boolean;
|
|
422
|
+
embedInProcess: boolean;
|
|
423
|
+
};
|
|
406
424
|
danger: {
|
|
407
|
-
daemon: boolean;
|
|
408
425
|
httpListener: boolean;
|
|
409
426
|
};
|
|
410
427
|
tools: {
|
|
@@ -455,14 +472,11 @@ export interface ConfigSetting {
|
|
|
455
472
|
description: string;
|
|
456
473
|
enumValues?: string[] | undefined;
|
|
457
474
|
validate?: ((value: unknown) => boolean) | undefined;
|
|
458
|
-
/**
|
|
459
|
-
* Optional hint appended to the validation-failure message when `validate`
|
|
460
|
-
* returns false. E.g. `'finite number in [0.25, 4.0]'`.
|
|
461
|
-
*/
|
|
475
|
+
/** Hint appended to the validation-failure message when `validate` returns false, e.g. `'finite number in [0.25, 4.0]'`. */
|
|
462
476
|
validationHint?: string | undefined;
|
|
463
477
|
}
|
|
464
478
|
/** Dot-path config keys for all settings. */
|
|
465
|
-
export type ConfigKey = 'display.stream' | 'display.lineNumbers' | 'display.collapseThreshold' | 'display.theme' | 'display.showThinking' | 'display.showReasoningSummary' | 'display.showTokenSpeed' | 'display.showToolPreview' | 'provider.reasoningEffort' | 'provider.model' | 'provider.embeddingProvider' | 'provider.systemPromptFile' | 'behavior.autoApprove' | 'behavior.autoCompactThreshold' | 'behavior.staleContextWarnings' | 'behavior.saveHistory' | 'behavior.notifyOnComplete' | 'behavior.suggestAlternativeOnProviderFail' | 'behavior.hitlMode' | 'behavior.returnContextMode' | 'behavior.guidanceMode' | 'storage.secretPolicy' | 'storage.artifacts.maxBytes' | 'permissions.mode' | 'permissions.tools.read' | 'permissions.tools.write' | 'permissions.tools.edit' | 'permissions.tools.exec' | 'permissions.tools.find' | 'permissions.tools.fetch' | 'permissions.tools.analyze' | 'permissions.tools.inspect' | 'permissions.tools.agent' | 'permissions.tools.state' | 'permissions.tools.workflow' | 'permissions.tools.registry' | 'permissions.tools.delegate' | 'permissions.tools.mcp' | 'orchestration.recursionEnabled' | 'orchestration.maxActiveAgents' | 'orchestration.maxDepth' | 'sandbox.replIsolation' | 'sandbox.mcpIsolation' | 'sandbox.windowsMode' | 'sandbox.vmBackend' | 'sandbox.qemuBinary' | 'sandbox.qemuImagePath' | 'sandbox.qemuExecWrapper' | 'sandbox.qemuGuestHost' | 'sandbox.qemuGuestPort' | 'sandbox.qemuGuestUser' | 'sandbox.qemuWorkspacePath' | 'sandbox.qemuSessionMode' | 'sandbox.replJavaScriptCommand' | 'ui.voiceEnabled' | 'ui.systemMessages' | 'ui.operationalMessages' | 'ui.wrfcMessages' | 'tts.provider' | 'tts.voice' | 'tts.llmProvider' | 'tts.llmModel' | 'tts.speed' | 'release.channel' | '
|
|
479
|
+
export type ConfigKey = 'display.stream' | 'display.lineNumbers' | 'display.collapseThreshold' | 'display.theme' | 'display.showThinking' | 'display.showReasoningSummary' | 'display.showTokenSpeed' | 'display.showToolPreview' | 'provider.reasoningEffort' | 'provider.model' | 'provider.embeddingProvider' | 'provider.systemPromptFile' | 'behavior.autoApprove' | 'behavior.autoCompactThreshold' | 'behavior.staleContextWarnings' | 'behavior.saveHistory' | 'behavior.notifyOnComplete' | 'behavior.suggestAlternativeOnProviderFail' | 'behavior.hitlMode' | 'behavior.returnContextMode' | 'behavior.guidanceMode' | 'storage.secretPolicy' | 'storage.artifacts.maxBytes' | 'permissions.mode' | 'permissions.tools.read' | 'permissions.tools.write' | 'permissions.tools.edit' | 'permissions.tools.exec' | 'permissions.tools.find' | 'permissions.tools.fetch' | 'permissions.tools.analyze' | 'permissions.tools.inspect' | 'permissions.tools.agent' | 'permissions.tools.state' | 'permissions.tools.workflow' | 'permissions.tools.registry' | 'permissions.tools.delegate' | 'permissions.tools.mcp' | 'orchestration.recursionEnabled' | 'orchestration.maxActiveAgents' | 'orchestration.maxDepth' | 'planner.decomposition' | 'planner.maxTurns' | 'planner.tokenCeiling' | 'planner.wallTimeoutMs' | 'sandbox.replIsolation' | 'sandbox.mcpIsolation' | 'sandbox.windowsMode' | 'sandbox.vmBackend' | 'sandbox.qemuBinary' | 'sandbox.qemuImagePath' | 'sandbox.qemuExecWrapper' | 'sandbox.qemuGuestHost' | 'sandbox.qemuGuestPort' | 'sandbox.qemuGuestUser' | 'sandbox.qemuWorkspacePath' | 'sandbox.qemuSessionMode' | 'sandbox.replJavaScriptCommand' | 'ui.voiceEnabled' | 'ui.systemMessages' | 'ui.operationalMessages' | 'ui.wrfcMessages' | 'tts.provider' | 'tts.voice' | 'tts.llmProvider' | 'tts.llmModel' | 'tts.speed' | 'release.channel' | 'daemon.enabled' | 'daemon.embedInProcess' | 'danger.httpListener' | 'tools.llmEnabled' | 'tools.llmProvider' | 'tools.llmModel' | 'tools.autoHeal' | 'tools.defaultTokenBudget' | 'tools.hooksFile' | 'wrfc.scoreThreshold' | 'wrfc.maxFixAttempts' | 'wrfc.autoCommit' | 'wrfc.commitScope' | 'wrfc.agentHeartbeatTimeoutMs' | 'wrfc.transportRetryLimit' | 'wrfc.transportRetryDelayMs' | 'cache.enabled' | 'cache.stableTtl' | 'cache.monitorHitRate' | 'cache.hitRateWarningThreshold' | 'helper.enabled' | 'helper.globalProvider' | 'helper.globalModel' | 'automation.enabled' | 'automation.maxConcurrentRuns' | 'automation.runHistoryLimit' | 'automation.defaultTimeoutMs' | 'automation.catchUpWindowMinutes' | 'automation.failureCooldownMs' | 'automation.deleteAfterRun' | 'controlPlane.enabled' | 'controlPlane.hostMode' | 'controlPlane.host' | 'controlPlane.port' | 'controlPlane.baseUrl' | 'controlPlane.streamMode' | 'controlPlane.allowRemote' | 'controlPlane.trustProxy' | 'controlPlane.openaiCompatible.enabled' | 'controlPlane.openaiCompatible.pathPrefix' | 'controlPlane.webui.serve' | 'controlPlane.webui.bundleDir' | 'controlPlane.cors.enabled' | 'controlPlane.cors.allowedOrigins' | 'controlPlane.tls.mode' | 'controlPlane.tls.certFile' | 'controlPlane.tls.keyFile' | 'httpListener.hostMode' | 'httpListener.host' | 'httpListener.port' | 'httpListener.trustProxy' | 'httpListener.tls.mode' | 'httpListener.tls.certFile' | 'httpListener.tls.keyFile' | 'web.enabled' | 'web.hostMode' | 'web.host' | 'web.port' | 'web.publicBaseUrl' | 'web.staticAssetsDir' | 'surfaces.slack.enabled' | 'surfaces.slack.signingSecret' | 'surfaces.slack.botToken' | 'surfaces.slack.appToken' | 'surfaces.slack.defaultChannel' | 'surfaces.slack.workspaceId' | 'surfaces.discord.enabled' | 'surfaces.discord.publicKey' | 'surfaces.discord.botToken' | 'surfaces.discord.applicationId' | 'surfaces.discord.defaultChannelId' | 'surfaces.discord.guildId' | 'surfaces.ntfy.enabled' | 'surfaces.ntfy.baseUrl' | 'surfaces.ntfy.topic' | 'surfaces.ntfy.chatTopic' | 'surfaces.ntfy.agentTopic' | 'surfaces.ntfy.remoteTopic' | 'surfaces.ntfy.token' | 'surfaces.ntfy.defaultPriority' | 'surfaces.webhook.enabled' | 'surfaces.webhook.defaultTarget' | 'surfaces.webhook.timeoutMs' | 'surfaces.webhook.secret' | 'surfaces.homeassistant.enabled' | 'surfaces.homeassistant.instanceUrl' | 'surfaces.homeassistant.accessToken' | 'surfaces.homeassistant.webhookSecret' | 'surfaces.homeassistant.defaultConversationId' | 'surfaces.homeassistant.deviceId' | 'surfaces.homeassistant.deviceName' | 'surfaces.homeassistant.eventType' | 'surfaces.homeassistant.remoteSessionTtlMs' | 'surfaces.telegram.enabled' | 'surfaces.telegram.botToken' | 'surfaces.telegram.webhookSecret' | 'surfaces.telegram.defaultChatId' | 'surfaces.telegram.botUsername' | 'surfaces.telegram.mode' | 'surfaces.googleChat.enabled' | 'surfaces.googleChat.webhookUrl' | 'surfaces.googleChat.verificationToken' | 'surfaces.googleChat.appId' | 'surfaces.googleChat.spaceId' | 'surfaces.signal.enabled' | 'surfaces.signal.bridgeUrl' | 'surfaces.signal.account' | 'surfaces.signal.token' | 'surfaces.signal.defaultRecipient' | 'surfaces.whatsapp.enabled' | 'surfaces.whatsapp.provider' | 'surfaces.whatsapp.accessToken' | 'surfaces.whatsapp.verifyToken' | 'surfaces.whatsapp.signingSecret' | 'surfaces.whatsapp.phoneNumberId' | 'surfaces.whatsapp.businessAccountId' | 'surfaces.whatsapp.defaultRecipient' | 'surfaces.telephony.enabled' | 'surfaces.telephony.provider' | 'surfaces.telephony.mode' | 'surfaces.telephony.bridgeUrl' | 'surfaces.telephony.token' | 'surfaces.telephony.accountSid' | 'surfaces.telephony.authToken' | 'surfaces.telephony.fromNumber' | 'surfaces.telephony.defaultRecipient' | 'surfaces.telephony.webhookSecret' | 'surfaces.telephony.voiceLanguage' | 'surfaces.imessage.enabled' | 'surfaces.imessage.bridgeUrl' | 'surfaces.imessage.account' | 'surfaces.imessage.token' | 'surfaces.imessage.defaultChatId' | 'surfaces.msteams.enabled' | 'surfaces.msteams.appId' | 'surfaces.msteams.appPassword' | 'surfaces.msteams.tenantId' | 'surfaces.msteams.serviceUrl' | 'surfaces.msteams.botId' | 'surfaces.msteams.defaultConversationId' | 'surfaces.msteams.defaultChannelId' | 'surfaces.bluebubbles.enabled' | 'surfaces.bluebubbles.serverUrl' | 'surfaces.bluebubbles.password' | 'surfaces.bluebubbles.account' | 'surfaces.bluebubbles.defaultChatGuid' | 'surfaces.mattermost.enabled' | 'surfaces.mattermost.baseUrl' | 'surfaces.mattermost.botToken' | 'surfaces.mattermost.teamId' | 'surfaces.mattermost.defaultChannelId' | 'surfaces.matrix.enabled' | 'surfaces.matrix.homeserverUrl' | 'surfaces.matrix.accessToken' | 'surfaces.matrix.userId' | 'surfaces.matrix.defaultRoomId' | 'watchers.enabled' | 'watchers.pollIntervalMs' | 'watchers.heartbeatIntervalMs' | 'watchers.recoveryWindowMinutes' | 'service.enabled' | 'service.autostart' | 'service.restartOnFailure' | 'service.platform' | 'service.serviceName' | 'service.logPath' | 'network.outboundTls.mode' | 'network.outboundTls.customCaFile' | 'network.outboundTls.customCaDir' | 'network.outboundTls.allowInsecureLocalhost' | 'network.remoteFetch.allowPrivateHosts' | 'runtime.companionChatLimiter.perSessionLimit' | 'runtime.eventBus.maxListeners' | 'telemetry.includeRawPrompts' | 'batch.mode' | 'batch.fallback' | 'batch.queueBackend' | 'batch.tickIntervalMs' | 'batch.maxDelayMs' | 'batch.maxJobsPerProviderBatch' | 'batch.maxQueuePayloadBytes' | 'batch.maxQueueMessagesPerDay' | 'cloudflare.enabled' | 'cloudflare.freeTierMode' | 'cloudflare.accountId' | 'cloudflare.apiTokenRef' | 'cloudflare.zoneId' | 'cloudflare.zoneName' | 'cloudflare.workerName' | 'cloudflare.workerSubdomain' | 'cloudflare.workerHostname' | 'cloudflare.workerBaseUrl' | 'cloudflare.daemonBaseUrl' | 'cloudflare.daemonHostname' | 'cloudflare.workerTokenRef' | 'cloudflare.workerClientTokenRef' | 'cloudflare.workerCron' | 'cloudflare.queueName' | 'cloudflare.deadLetterQueueName' | 'cloudflare.tunnelName' | 'cloudflare.tunnelId' | 'cloudflare.tunnelTokenRef' | 'cloudflare.accessAppId' | 'cloudflare.accessServiceTokenId' | 'cloudflare.accessServiceTokenRef' | 'cloudflare.kvNamespaceName' | 'cloudflare.kvNamespaceId' | 'cloudflare.durableObjectNamespaceName' | 'cloudflare.durableObjectNamespaceId' | 'cloudflare.r2BucketName' | 'cloudflare.secretsStoreName' | 'cloudflare.secretsStoreId' | 'cloudflare.maxQueueOpsPerDay';
|
|
466
480
|
/** Maps a ConfigKey to its value type. */
|
|
467
|
-
export type ConfigValue<K extends ConfigKey> = K extends 'display.stream' ? boolean : K extends 'display.lineNumbers' ? LineNumberMode : K extends 'display.collapseThreshold' ? number : K extends 'display.theme' ? string : K extends 'display.showThinking' ? boolean : K extends 'display.showReasoningSummary' ? boolean : K extends 'display.showTokenSpeed' ? boolean : K extends 'display.showToolPreview' ? boolean : K extends 'provider.reasoningEffort' ? 'instant' | 'low' | 'medium' | 'high' : K extends 'provider.model' ? string : K extends 'provider.embeddingProvider' ? string : K extends 'provider.systemPromptFile' ? string : K extends 'behavior.autoApprove' ? boolean : K extends 'behavior.autoCompactThreshold' ? number : K extends 'behavior.staleContextWarnings' ? boolean : K extends 'behavior.saveHistory' ? boolean : K extends 'behavior.notifyOnComplete' ? boolean : K extends 'behavior.suggestAlternativeOnProviderFail' ? boolean : K extends 'behavior.hitlMode' ? 'quiet' | 'balanced' | 'operator' : K extends 'behavior.returnContextMode' ? 'off' | 'local' | 'assisted' : K extends 'behavior.guidanceMode' ? 'off' | 'minimal' | 'guided' : K extends 'storage.secretPolicy' ? 'plaintext_allowed' | 'preferred_secure' | 'require_secure' : K extends 'storage.artifacts.maxBytes' ? number : K extends 'permissions.mode' ? PermissionMode : K extends 'permissions.tools.read' ? PermissionAction : K extends 'permissions.tools.write' ? PermissionAction : K extends 'permissions.tools.edit' ? PermissionAction : K extends 'permissions.tools.exec' ? PermissionAction : K extends 'permissions.tools.find' ? PermissionAction : K extends 'permissions.tools.fetch' ? PermissionAction : K extends 'permissions.tools.analyze' ? PermissionAction : K extends 'permissions.tools.inspect' ? PermissionAction : K extends 'permissions.tools.agent' ? PermissionAction : K extends 'permissions.tools.state' ? PermissionAction : K extends 'permissions.tools.workflow' ? PermissionAction : K extends 'permissions.tools.registry' ? PermissionAction : K extends 'permissions.tools.delegate' ? PermissionAction : K extends 'permissions.tools.mcp' ? PermissionAction : K extends 'orchestration.recursionEnabled' ? boolean : K extends 'orchestration.maxActiveAgents' ? number : K extends 'orchestration.maxDepth' ? number : K extends 'sandbox.replIsolation' ? 'shared-vm' | 'per-runtime-vm' : K extends 'sandbox.mcpIsolation' ? 'disabled' | 'shared-vm' | 'hybrid' | 'per-server-vm' : K extends 'sandbox.windowsMode' ? 'native-basic' | 'require-wsl' : K extends 'sandbox.vmBackend' ? 'local' | 'qemu' : K extends 'sandbox.qemuBinary' ? string : K extends 'sandbox.qemuImagePath' ? string : K extends 'sandbox.qemuExecWrapper' ? string : K extends 'sandbox.qemuGuestHost' ? string : K extends 'sandbox.qemuGuestPort' ? number : K extends 'sandbox.qemuGuestUser' ? string : K extends 'sandbox.qemuWorkspacePath' ? string : K extends 'sandbox.qemuSessionMode' ? 'attach' | 'launch-per-command' : K extends 'sandbox.replJavaScriptCommand' ? string : K extends 'ui.voiceEnabled' ? boolean : K extends 'ui.systemMessages' ? 'panel' | 'conversation' | 'both' : K extends 'ui.operationalMessages' ? 'panel' | 'conversation' | 'both' : K extends 'ui.wrfcMessages' ? 'panel' | 'conversation' | 'both' : K extends 'tts.provider' ? string : K extends 'tts.voice' ? string : K extends 'tts.llmProvider' ? string : K extends 'tts.llmModel' ? string : K extends 'tts.speed' ? number : K extends 'release.channel' ? 'stable' | 'preview' : K extends 'danger.daemon' ? boolean : K extends 'danger.httpListener' ? boolean : K extends 'tools.llmEnabled' ? boolean : K extends 'tools.llmProvider' ? string : K extends 'tools.llmModel' ? string : K extends 'tools.autoHeal' ? boolean : K extends 'tools.defaultTokenBudget' ? number : K extends 'tools.hooksFile' ? string : K extends 'wrfc.scoreThreshold' ? number : K extends 'wrfc.maxFixAttempts' ? number : K extends 'wrfc.autoCommit' ? boolean : K extends 'wrfc.commitScope' ? 'off' | 'scoped' | 'all' : K extends 'wrfc.agentHeartbeatTimeoutMs' ? number : K extends 'wrfc.transportRetryLimit' ? number : K extends 'wrfc.transportRetryDelayMs' ? number : K extends 'cache.enabled' ? boolean : K extends 'cache.stableTtl' ? '5m' | '1h' : K extends 'cache.monitorHitRate' ? boolean : K extends 'cache.hitRateWarningThreshold' ? number : K extends 'helper.enabled' ? boolean : K extends 'helper.globalProvider' ? string : K extends 'helper.globalModel' ? string : K extends 'automation.enabled' ? boolean : K extends 'automation.maxConcurrentRuns' ? number : K extends 'automation.runHistoryLimit' ? number : K extends 'automation.defaultTimeoutMs' ? number : K extends 'automation.catchUpWindowMinutes' ? number : K extends 'automation.failureCooldownMs' ? number : K extends 'automation.deleteAfterRun' ? boolean : K extends 'controlPlane.enabled' ? boolean : K extends 'controlPlane.hostMode' ? 'local' | 'network' | 'custom' : K extends 'controlPlane.host' ? string : K extends 'controlPlane.port' ? number : K extends 'controlPlane.baseUrl' ? string : K extends 'controlPlane.streamMode' ? 'sse' | 'websocket' | 'both' : K extends 'controlPlane.allowRemote' ? boolean : K extends 'controlPlane.trustProxy' ? boolean : K extends 'controlPlane.openaiCompatible.enabled' ? boolean : K extends 'controlPlane.openaiCompatible.pathPrefix' ? string : K extends 'controlPlane.tls.mode' ? 'off' | 'proxy' | 'direct' : K extends 'controlPlane.tls.certFile' ? string : K extends 'controlPlane.tls.keyFile' ? string : K extends 'httpListener.hostMode' ? 'local' | 'network' | 'custom' : K extends 'httpListener.host' ? string : K extends 'httpListener.port' ? number : K extends 'httpListener.trustProxy' ? boolean : K extends 'httpListener.tls.mode' ? 'off' | 'proxy' | 'direct' : K extends 'httpListener.tls.certFile' ? string : K extends 'httpListener.tls.keyFile' ? string : K extends 'web.enabled' ? boolean : K extends 'web.hostMode' ? 'local' | 'network' | 'custom' : K extends 'web.host' ? string : K extends 'web.port' ? number : K extends 'web.publicBaseUrl' ? string : K extends 'web.staticAssetsDir' ? string : K extends 'surfaces.slack.enabled' ? boolean : K extends 'surfaces.slack.signingSecret' ? string : K extends 'surfaces.slack.botToken' ? string : K extends 'surfaces.slack.appToken' ? string : K extends 'surfaces.slack.defaultChannel' ? string : K extends 'surfaces.slack.workspaceId' ? string : K extends 'surfaces.discord.enabled' ? boolean : K extends 'surfaces.discord.publicKey' ? string : K extends 'surfaces.discord.botToken' ? string : K extends 'surfaces.discord.applicationId' ? string : K extends 'surfaces.discord.defaultChannelId' ? string : K extends 'surfaces.discord.guildId' ? string : K extends 'surfaces.ntfy.enabled' ? boolean : K extends 'surfaces.ntfy.baseUrl' ? string : K extends 'surfaces.ntfy.topic' ? string : K extends 'surfaces.ntfy.chatTopic' ? string : K extends 'surfaces.ntfy.agentTopic' ? string : K extends 'surfaces.ntfy.remoteTopic' ? string : K extends 'surfaces.ntfy.token' ? string : K extends 'surfaces.ntfy.defaultPriority' ? number : K extends 'surfaces.webhook.enabled' ? boolean : K extends 'surfaces.webhook.defaultTarget' ? string : K extends 'surfaces.webhook.timeoutMs' ? number : K extends 'surfaces.webhook.secret' ? string : K extends 'surfaces.homeassistant.enabled' ? boolean : K extends 'surfaces.homeassistant.instanceUrl' ? string : K extends 'surfaces.homeassistant.accessToken' ? string : K extends 'surfaces.homeassistant.webhookSecret' ? string : K extends 'surfaces.homeassistant.defaultConversationId' ? string : K extends 'surfaces.homeassistant.deviceId' ? string : K extends 'surfaces.homeassistant.deviceName' ? string : K extends 'surfaces.homeassistant.eventType' ? string : K extends 'surfaces.homeassistant.remoteSessionTtlMs' ? number : K extends 'surfaces.telegram.enabled' ? boolean : K extends 'surfaces.telegram.botToken' ? string : K extends 'surfaces.telegram.webhookSecret' ? string : K extends 'surfaces.telegram.defaultChatId' ? string : K extends 'surfaces.telegram.botUsername' ? string : K extends 'surfaces.telegram.mode' ? 'webhook' | 'polling' : K extends 'surfaces.googleChat.enabled' ? boolean : K extends 'surfaces.googleChat.webhookUrl' ? string : K extends 'surfaces.googleChat.verificationToken' ? string : K extends 'surfaces.googleChat.appId' ? string : K extends 'surfaces.googleChat.spaceId' ? string : K extends 'surfaces.signal.enabled' ? boolean : K extends 'surfaces.signal.bridgeUrl' ? string : K extends 'surfaces.signal.account' ? string : K extends 'surfaces.signal.token' ? string : K extends 'surfaces.signal.defaultRecipient' ? string : K extends 'surfaces.whatsapp.enabled' ? boolean : K extends 'surfaces.whatsapp.provider' ? 'meta-cloud' | 'bridge' : K extends 'surfaces.whatsapp.accessToken' ? string : K extends 'surfaces.whatsapp.verifyToken' ? string : K extends 'surfaces.whatsapp.signingSecret' ? string : K extends 'surfaces.whatsapp.phoneNumberId' ? string : K extends 'surfaces.whatsapp.businessAccountId' ? string : K extends 'surfaces.whatsapp.defaultRecipient' ? string : K extends 'surfaces.telephony.enabled' ? boolean : K extends 'surfaces.telephony.provider' ? 'twilio' | 'bridge' : K extends 'surfaces.telephony.mode' ? 'sms' | 'voice' | 'bridge' : K extends 'surfaces.telephony.bridgeUrl' ? string : K extends 'surfaces.telephony.token' ? string : K extends 'surfaces.telephony.accountSid' ? string : K extends 'surfaces.telephony.authToken' ? string : K extends 'surfaces.telephony.fromNumber' ? string : K extends 'surfaces.telephony.defaultRecipient' ? string : K extends 'surfaces.telephony.webhookSecret' ? string : K extends 'surfaces.telephony.voiceLanguage' ? string : K extends 'surfaces.imessage.enabled' ? boolean : K extends 'surfaces.imessage.bridgeUrl' ? string : K extends 'surfaces.imessage.account' ? string : K extends 'surfaces.imessage.token' ? string : K extends 'surfaces.imessage.defaultChatId' ? string : K extends 'surfaces.msteams.enabled' ? boolean : K extends 'surfaces.msteams.appId' ? string : K extends 'surfaces.msteams.appPassword' ? string : K extends 'surfaces.msteams.tenantId' ? string : K extends 'surfaces.msteams.serviceUrl' ? string : K extends 'surfaces.msteams.botId' ? string : K extends 'surfaces.msteams.defaultConversationId' ? string : K extends 'surfaces.msteams.defaultChannelId' ? string : K extends 'surfaces.bluebubbles.enabled' ? boolean : K extends 'surfaces.bluebubbles.serverUrl' ? string : K extends 'surfaces.bluebubbles.password' ? string : K extends 'surfaces.bluebubbles.account' ? string : K extends 'surfaces.bluebubbles.defaultChatGuid' ? string : K extends 'surfaces.mattermost.enabled' ? boolean : K extends 'surfaces.mattermost.baseUrl' ? string : K extends 'surfaces.mattermost.botToken' ? string : K extends 'surfaces.mattermost.teamId' ? string : K extends 'surfaces.mattermost.defaultChannelId' ? string : K extends 'surfaces.matrix.enabled' ? boolean : K extends 'surfaces.matrix.homeserverUrl' ? string : K extends 'surfaces.matrix.accessToken' ? string : K extends 'surfaces.matrix.userId' ? string : K extends 'surfaces.matrix.defaultRoomId' ? string : K extends 'watchers.enabled' ? boolean : K extends 'watchers.pollIntervalMs' ? number : K extends 'watchers.heartbeatIntervalMs' ? number : K extends 'watchers.recoveryWindowMinutes' ? number : K extends 'service.enabled' ? boolean : K extends 'service.autostart' ? boolean : K extends 'service.restartOnFailure' ? boolean : K extends 'service.platform' ? 'auto' | 'systemd' | 'launchd' | 'windows' | 'manual' : K extends 'service.serviceName' ? string : K extends 'service.logPath' ? string : K extends 'network.outboundTls.mode' ? 'bundled' | 'bundled+custom' | 'custom' : K extends 'network.outboundTls.customCaFile' ? string : K extends 'network.outboundTls.customCaDir' ? string : K extends 'network.outboundTls.allowInsecureLocalhost' ? boolean : K extends 'network.remoteFetch.allowPrivateHosts' ? boolean : K extends 'runtime.companionChatLimiter.perSessionLimit' ? number : K extends 'runtime.eventBus.maxListeners' ? number : K extends 'telemetry.includeRawPrompts' ? boolean : K extends 'batch.mode' ? BatchMode : K extends 'batch.fallback' ? BatchFallbackMode : K extends 'batch.queueBackend' ? BatchQueueBackend : K extends 'batch.tickIntervalMs' ? number : K extends 'batch.maxDelayMs' ? number : K extends 'batch.maxJobsPerProviderBatch' ? number : K extends 'batch.maxQueuePayloadBytes' ? number : K extends 'batch.maxQueueMessagesPerDay' ? number : K extends 'cloudflare.enabled' ? boolean : K extends 'cloudflare.freeTierMode' ? boolean : K extends 'cloudflare.accountId' ? string : K extends 'cloudflare.apiTokenRef' ? string : K extends 'cloudflare.zoneId' ? string : K extends 'cloudflare.zoneName' ? string : K extends 'cloudflare.workerName' ? string : K extends 'cloudflare.workerSubdomain' ? string : K extends 'cloudflare.workerHostname' ? string : K extends 'cloudflare.workerBaseUrl' ? string : K extends 'cloudflare.daemonBaseUrl' ? string : K extends 'cloudflare.daemonHostname' ? string : K extends 'cloudflare.workerTokenRef' ? string : K extends 'cloudflare.workerClientTokenRef' ? string : K extends 'cloudflare.workerCron' ? string : K extends 'cloudflare.queueName' ? string : K extends 'cloudflare.deadLetterQueueName' ? string : K extends 'cloudflare.tunnelName' ? string : K extends 'cloudflare.tunnelId' ? string : K extends 'cloudflare.tunnelTokenRef' ? string : K extends 'cloudflare.accessAppId' ? string : K extends 'cloudflare.accessServiceTokenId' ? string : K extends 'cloudflare.accessServiceTokenRef' ? string : K extends 'cloudflare.kvNamespaceName' ? string : K extends 'cloudflare.kvNamespaceId' ? string : K extends 'cloudflare.durableObjectNamespaceName' ? string : K extends 'cloudflare.durableObjectNamespaceId' ? string : K extends 'cloudflare.r2BucketName' ? string : K extends 'cloudflare.secretsStoreName' ? string : K extends 'cloudflare.secretsStoreId' ? string : K extends 'cloudflare.maxQueueOpsPerDay' ? number : never;
|
|
481
|
+
export type ConfigValue<K extends ConfigKey> = K extends 'display.stream' ? boolean : K extends 'display.lineNumbers' ? LineNumberMode : K extends 'display.collapseThreshold' ? number : K extends 'display.theme' ? string : K extends 'display.showThinking' ? boolean : K extends 'display.showReasoningSummary' ? boolean : K extends 'display.showTokenSpeed' ? boolean : K extends 'display.showToolPreview' ? boolean : K extends 'provider.reasoningEffort' ? 'instant' | 'low' | 'medium' | 'high' : K extends 'provider.model' ? string : K extends 'provider.embeddingProvider' ? string : K extends 'provider.systemPromptFile' ? string : K extends 'behavior.autoApprove' ? boolean : K extends 'behavior.autoCompactThreshold' ? number : K extends 'behavior.staleContextWarnings' ? boolean : K extends 'behavior.saveHistory' ? boolean : K extends 'behavior.notifyOnComplete' ? boolean : K extends 'behavior.suggestAlternativeOnProviderFail' ? boolean : K extends 'behavior.hitlMode' ? 'quiet' | 'balanced' | 'operator' : K extends 'behavior.returnContextMode' ? 'off' | 'local' | 'assisted' : K extends 'behavior.guidanceMode' ? 'off' | 'minimal' | 'guided' : K extends 'storage.secretPolicy' ? 'plaintext_allowed' | 'preferred_secure' | 'require_secure' : K extends 'storage.artifacts.maxBytes' ? number : K extends 'permissions.mode' ? PermissionMode : K extends 'permissions.tools.read' ? PermissionAction : K extends 'permissions.tools.write' ? PermissionAction : K extends 'permissions.tools.edit' ? PermissionAction : K extends 'permissions.tools.exec' ? PermissionAction : K extends 'permissions.tools.find' ? PermissionAction : K extends 'permissions.tools.fetch' ? PermissionAction : K extends 'permissions.tools.analyze' ? PermissionAction : K extends 'permissions.tools.inspect' ? PermissionAction : K extends 'permissions.tools.agent' ? PermissionAction : K extends 'permissions.tools.state' ? PermissionAction : K extends 'permissions.tools.workflow' ? PermissionAction : K extends 'permissions.tools.registry' ? PermissionAction : K extends 'permissions.tools.delegate' ? PermissionAction : K extends 'permissions.tools.mcp' ? PermissionAction : K extends 'orchestration.recursionEnabled' ? boolean : K extends 'orchestration.maxActiveAgents' ? number : K extends 'orchestration.maxDepth' ? number : K extends 'planner.decomposition' ? 'agent' | 'heuristic' : K extends 'planner.maxTurns' ? number : K extends 'planner.tokenCeiling' ? number : K extends 'planner.wallTimeoutMs' ? number : K extends 'sandbox.replIsolation' ? 'shared-vm' | 'per-runtime-vm' : K extends 'sandbox.mcpIsolation' ? 'disabled' | 'shared-vm' | 'hybrid' | 'per-server-vm' : K extends 'sandbox.windowsMode' ? 'native-basic' | 'require-wsl' : K extends 'sandbox.vmBackend' ? 'local' | 'qemu' : K extends 'sandbox.qemuBinary' ? string : K extends 'sandbox.qemuImagePath' ? string : K extends 'sandbox.qemuExecWrapper' ? string : K extends 'sandbox.qemuGuestHost' ? string : K extends 'sandbox.qemuGuestPort' ? number : K extends 'sandbox.qemuGuestUser' ? string : K extends 'sandbox.qemuWorkspacePath' ? string : K extends 'sandbox.qemuSessionMode' ? 'attach' | 'launch-per-command' : K extends 'sandbox.replJavaScriptCommand' ? string : K extends 'ui.voiceEnabled' ? boolean : K extends 'ui.systemMessages' ? 'panel' | 'conversation' | 'both' : K extends 'ui.operationalMessages' ? 'panel' | 'conversation' | 'both' : K extends 'ui.wrfcMessages' ? 'panel' | 'conversation' | 'both' : K extends 'tts.provider' ? string : K extends 'tts.voice' ? string : K extends 'tts.llmProvider' ? string : K extends 'tts.llmModel' ? string : K extends 'tts.speed' ? number : K extends 'release.channel' ? 'stable' | 'preview' : K extends 'daemon.enabled' ? boolean : K extends 'daemon.embedInProcess' ? boolean : K extends 'danger.httpListener' ? boolean : K extends 'tools.llmEnabled' ? boolean : K extends 'tools.llmProvider' ? string : K extends 'tools.llmModel' ? string : K extends 'tools.autoHeal' ? boolean : K extends 'tools.defaultTokenBudget' ? number : K extends 'tools.hooksFile' ? string : K extends 'wrfc.scoreThreshold' ? number : K extends 'wrfc.maxFixAttempts' ? number : K extends 'wrfc.autoCommit' ? boolean : K extends 'wrfc.commitScope' ? 'off' | 'scoped' | 'all' : K extends 'wrfc.agentHeartbeatTimeoutMs' ? number : K extends 'wrfc.transportRetryLimit' ? number : K extends 'wrfc.transportRetryDelayMs' ? number : K extends 'cache.enabled' ? boolean : K extends 'cache.stableTtl' ? '5m' | '1h' : K extends 'cache.monitorHitRate' ? boolean : K extends 'cache.hitRateWarningThreshold' ? number : K extends 'helper.enabled' ? boolean : K extends 'helper.globalProvider' ? string : K extends 'helper.globalModel' ? string : K extends 'automation.enabled' ? boolean : K extends 'automation.maxConcurrentRuns' ? number : K extends 'automation.runHistoryLimit' ? number : K extends 'automation.defaultTimeoutMs' ? number : K extends 'automation.catchUpWindowMinutes' ? number : K extends 'automation.failureCooldownMs' ? number : K extends 'automation.deleteAfterRun' ? boolean : K extends 'controlPlane.enabled' ? boolean : K extends 'controlPlane.hostMode' ? 'local' | 'network' | 'custom' : K extends 'controlPlane.host' ? string : K extends 'controlPlane.port' ? number : K extends 'controlPlane.baseUrl' ? string : K extends 'controlPlane.streamMode' ? 'sse' | 'websocket' | 'both' : K extends 'controlPlane.allowRemote' ? boolean : K extends 'controlPlane.trustProxy' ? boolean : K extends 'controlPlane.openaiCompatible.enabled' ? boolean : K extends 'controlPlane.openaiCompatible.pathPrefix' ? string : K extends 'controlPlane.webui.serve' ? boolean : K extends 'controlPlane.webui.bundleDir' ? string : K extends 'controlPlane.cors.enabled' ? boolean : K extends 'controlPlane.cors.allowedOrigins' ? string : K extends 'controlPlane.tls.mode' ? 'off' | 'proxy' | 'direct' : K extends 'controlPlane.tls.certFile' ? string : K extends 'controlPlane.tls.keyFile' ? string : K extends 'httpListener.hostMode' ? 'local' | 'network' | 'custom' : K extends 'httpListener.host' ? string : K extends 'httpListener.port' ? number : K extends 'httpListener.trustProxy' ? boolean : K extends 'httpListener.tls.mode' ? 'off' | 'proxy' | 'direct' : K extends 'httpListener.tls.certFile' ? string : K extends 'httpListener.tls.keyFile' ? string : K extends 'web.enabled' ? boolean : K extends 'web.hostMode' ? 'local' | 'network' | 'custom' : K extends 'web.host' ? string : K extends 'web.port' ? number : K extends 'web.publicBaseUrl' ? string : K extends 'web.staticAssetsDir' ? string : K extends 'surfaces.slack.enabled' ? boolean : K extends 'surfaces.slack.signingSecret' ? string : K extends 'surfaces.slack.botToken' ? string : K extends 'surfaces.slack.appToken' ? string : K extends 'surfaces.slack.defaultChannel' ? string : K extends 'surfaces.slack.workspaceId' ? string : K extends 'surfaces.discord.enabled' ? boolean : K extends 'surfaces.discord.publicKey' ? string : K extends 'surfaces.discord.botToken' ? string : K extends 'surfaces.discord.applicationId' ? string : K extends 'surfaces.discord.defaultChannelId' ? string : K extends 'surfaces.discord.guildId' ? string : K extends 'surfaces.ntfy.enabled' ? boolean : K extends 'surfaces.ntfy.baseUrl' ? string : K extends 'surfaces.ntfy.topic' ? string : K extends 'surfaces.ntfy.chatTopic' ? string : K extends 'surfaces.ntfy.agentTopic' ? string : K extends 'surfaces.ntfy.remoteTopic' ? string : K extends 'surfaces.ntfy.token' ? string : K extends 'surfaces.ntfy.defaultPriority' ? number : K extends 'surfaces.webhook.enabled' ? boolean : K extends 'surfaces.webhook.defaultTarget' ? string : K extends 'surfaces.webhook.timeoutMs' ? number : K extends 'surfaces.webhook.secret' ? string : K extends 'surfaces.homeassistant.enabled' ? boolean : K extends 'surfaces.homeassistant.instanceUrl' ? string : K extends 'surfaces.homeassistant.accessToken' ? string : K extends 'surfaces.homeassistant.webhookSecret' ? string : K extends 'surfaces.homeassistant.defaultConversationId' ? string : K extends 'surfaces.homeassistant.deviceId' ? string : K extends 'surfaces.homeassistant.deviceName' ? string : K extends 'surfaces.homeassistant.eventType' ? string : K extends 'surfaces.homeassistant.remoteSessionTtlMs' ? number : K extends 'surfaces.telegram.enabled' ? boolean : K extends 'surfaces.telegram.botToken' ? string : K extends 'surfaces.telegram.webhookSecret' ? string : K extends 'surfaces.telegram.defaultChatId' ? string : K extends 'surfaces.telegram.botUsername' ? string : K extends 'surfaces.telegram.mode' ? 'webhook' | 'polling' : K extends 'surfaces.googleChat.enabled' ? boolean : K extends 'surfaces.googleChat.webhookUrl' ? string : K extends 'surfaces.googleChat.verificationToken' ? string : K extends 'surfaces.googleChat.appId' ? string : K extends 'surfaces.googleChat.spaceId' ? string : K extends 'surfaces.signal.enabled' ? boolean : K extends 'surfaces.signal.bridgeUrl' ? string : K extends 'surfaces.signal.account' ? string : K extends 'surfaces.signal.token' ? string : K extends 'surfaces.signal.defaultRecipient' ? string : K extends 'surfaces.whatsapp.enabled' ? boolean : K extends 'surfaces.whatsapp.provider' ? 'meta-cloud' | 'bridge' : K extends 'surfaces.whatsapp.accessToken' ? string : K extends 'surfaces.whatsapp.verifyToken' ? string : K extends 'surfaces.whatsapp.signingSecret' ? string : K extends 'surfaces.whatsapp.phoneNumberId' ? string : K extends 'surfaces.whatsapp.businessAccountId' ? string : K extends 'surfaces.whatsapp.defaultRecipient' ? string : K extends 'surfaces.telephony.enabled' ? boolean : K extends 'surfaces.telephony.provider' ? 'twilio' | 'bridge' : K extends 'surfaces.telephony.mode' ? 'sms' | 'voice' | 'bridge' : K extends 'surfaces.telephony.bridgeUrl' ? string : K extends 'surfaces.telephony.token' ? string : K extends 'surfaces.telephony.accountSid' ? string : K extends 'surfaces.telephony.authToken' ? string : K extends 'surfaces.telephony.fromNumber' ? string : K extends 'surfaces.telephony.defaultRecipient' ? string : K extends 'surfaces.telephony.webhookSecret' ? string : K extends 'surfaces.telephony.voiceLanguage' ? string : K extends 'surfaces.imessage.enabled' ? boolean : K extends 'surfaces.imessage.bridgeUrl' ? string : K extends 'surfaces.imessage.account' ? string : K extends 'surfaces.imessage.token' ? string : K extends 'surfaces.imessage.defaultChatId' ? string : K extends 'surfaces.msteams.enabled' ? boolean : K extends 'surfaces.msteams.appId' ? string : K extends 'surfaces.msteams.appPassword' ? string : K extends 'surfaces.msteams.tenantId' ? string : K extends 'surfaces.msteams.serviceUrl' ? string : K extends 'surfaces.msteams.botId' ? string : K extends 'surfaces.msteams.defaultConversationId' ? string : K extends 'surfaces.msteams.defaultChannelId' ? string : K extends 'surfaces.bluebubbles.enabled' ? boolean : K extends 'surfaces.bluebubbles.serverUrl' ? string : K extends 'surfaces.bluebubbles.password' ? string : K extends 'surfaces.bluebubbles.account' ? string : K extends 'surfaces.bluebubbles.defaultChatGuid' ? string : K extends 'surfaces.mattermost.enabled' ? boolean : K extends 'surfaces.mattermost.baseUrl' ? string : K extends 'surfaces.mattermost.botToken' ? string : K extends 'surfaces.mattermost.teamId' ? string : K extends 'surfaces.mattermost.defaultChannelId' ? string : K extends 'surfaces.matrix.enabled' ? boolean : K extends 'surfaces.matrix.homeserverUrl' ? string : K extends 'surfaces.matrix.accessToken' ? string : K extends 'surfaces.matrix.userId' ? string : K extends 'surfaces.matrix.defaultRoomId' ? string : K extends 'watchers.enabled' ? boolean : K extends 'watchers.pollIntervalMs' ? number : K extends 'watchers.heartbeatIntervalMs' ? number : K extends 'watchers.recoveryWindowMinutes' ? number : K extends 'service.enabled' ? boolean : K extends 'service.autostart' ? boolean : K extends 'service.restartOnFailure' ? boolean : K extends 'service.platform' ? 'auto' | 'systemd' | 'launchd' | 'windows' | 'manual' : K extends 'service.serviceName' ? string : K extends 'service.logPath' ? string : K extends 'network.outboundTls.mode' ? 'bundled' | 'bundled+custom' | 'custom' : K extends 'network.outboundTls.customCaFile' ? string : K extends 'network.outboundTls.customCaDir' ? string : K extends 'network.outboundTls.allowInsecureLocalhost' ? boolean : K extends 'network.remoteFetch.allowPrivateHosts' ? boolean : K extends 'runtime.companionChatLimiter.perSessionLimit' ? number : K extends 'runtime.eventBus.maxListeners' ? number : K extends 'telemetry.includeRawPrompts' ? boolean : K extends 'batch.mode' ? BatchMode : K extends 'batch.fallback' ? BatchFallbackMode : K extends 'batch.queueBackend' ? BatchQueueBackend : K extends 'batch.tickIntervalMs' ? number : K extends 'batch.maxDelayMs' ? number : K extends 'batch.maxJobsPerProviderBatch' ? number : K extends 'batch.maxQueuePayloadBytes' ? number : K extends 'batch.maxQueueMessagesPerDay' ? number : K extends 'cloudflare.enabled' ? boolean : K extends 'cloudflare.freeTierMode' ? boolean : K extends 'cloudflare.accountId' ? string : K extends 'cloudflare.apiTokenRef' ? string : K extends 'cloudflare.zoneId' ? string : K extends 'cloudflare.zoneName' ? string : K extends 'cloudflare.workerName' ? string : K extends 'cloudflare.workerSubdomain' ? string : K extends 'cloudflare.workerHostname' ? string : K extends 'cloudflare.workerBaseUrl' ? string : K extends 'cloudflare.daemonBaseUrl' ? string : K extends 'cloudflare.daemonHostname' ? string : K extends 'cloudflare.workerTokenRef' ? string : K extends 'cloudflare.workerClientTokenRef' ? string : K extends 'cloudflare.workerCron' ? string : K extends 'cloudflare.queueName' ? string : K extends 'cloudflare.deadLetterQueueName' ? string : K extends 'cloudflare.tunnelName' ? string : K extends 'cloudflare.tunnelId' ? string : K extends 'cloudflare.tunnelTokenRef' ? string : K extends 'cloudflare.accessAppId' ? string : K extends 'cloudflare.accessServiceTokenId' ? string : K extends 'cloudflare.accessServiceTokenRef' ? string : K extends 'cloudflare.kvNamespaceName' ? string : K extends 'cloudflare.kvNamespaceId' ? string : K extends 'cloudflare.durableObjectNamespaceName' ? string : K extends 'cloudflare.durableObjectNamespaceId' ? string : K extends 'cloudflare.r2BucketName' ? string : K extends 'cloudflare.secretsStoreName' ? string : K extends 'cloudflare.secretsStoreId' ? string : K extends 'cloudflare.maxQueueOpsPerDay' ? number : never;
|
|
468
482
|
//# sourceMappingURL=schema-types.d.ts.map
|