@mycadet/assistant 0.12.7 → 0.12.8
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/README.md +1 -1
- package/docs/activation-funnel-telemetry.md +6 -6
- package/docs/cadet-doctor.md +7 -7
- package/docs/desktop-browser-cli.md +7 -7
- package/docs/skills.md +2 -2
- package/docs/voice-input-diagnostics.md +1 -1
- package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
- package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
- package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
- package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
- package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
- package/node_modules/@mycadet/environments/src/types.ts +6 -6
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
- package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
- package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
- package/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/openapi.yaml +6815 -794
- package/package.json +2 -2
- package/scripts/build-test-fixtures.ts +1 -1
- package/scripts/probe-skill-retrieval.ts +1 -1
- package/scripts/sync-llm-catalog.ts +2 -2
- package/scripts/voice-ttft-spike.ts +2 -2
- package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
- package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
- package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
- package/src/__tests__/anthropic-provider.test.ts +2 -2
- package/src/__tests__/available-skills.test.ts +11 -12
- package/src/__tests__/avatar-identity-sync.test.ts +1 -1
- package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
- package/src/__tests__/call-domain.test.ts +1 -1
- package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
- package/src/__tests__/catalog-files.test.ts +10 -10
- package/src/__tests__/catalog-install-normalize.test.ts +3 -3
- package/src/__tests__/channel-availability-routes.test.ts +8 -8
- package/src/__tests__/channel-readiness-routes.test.ts +4 -4
- package/src/__tests__/channel-readiness-service.test.ts +14 -14
- package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
- package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
- package/src/__tests__/checker.test.ts +6 -6
- package/src/__tests__/clawhub.test.ts +1 -1
- package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
- package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
- package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
- package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
- package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +60 -60
- package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
- package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
- package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
- package/src/__tests__/compaction-events.test.ts +7 -5
- package/src/__tests__/config-loader-backfill.test.ts +65 -65
- package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
- package/src/__tests__/config-loader-corrupt.test.ts +1 -1
- package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
- package/src/__tests__/config-schema.test.ts +3 -3
- package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
- package/src/__tests__/config-watcher.test.ts +1 -1
- package/src/__tests__/contacts-write.test.ts +1 -1
- package/src/__tests__/conversation-agent-loop.test.ts +2 -2
- package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
- package/src/__tests__/conversation-error.test.ts +45 -45
- package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
- package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
- package/src/__tests__/conversation-skill-tools.test.ts +7 -8
- package/src/__tests__/conversation-slash.test.ts +2 -2
- package/src/__tests__/conversation-speed-override.test.ts +8 -10
- package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
- package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
- package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
- package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
- package/src/__tests__/credential-health-service.test.ts +27 -41
- package/src/__tests__/credential-routes.test.ts +85 -165
- package/src/__tests__/credential-security-invariants.test.ts +6 -7
- package/src/__tests__/custom-profile-ensure.test.ts +1 -1
- package/src/__tests__/date-context.test.ts +1 -1
- package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
- package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
- package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
- package/src/__tests__/disk-usage.test.ts +3 -3
- package/src/__tests__/email-invite-adapter.test.ts +5 -5
- package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
- package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
- package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
- package/src/__tests__/fallback-breaker.test.ts +7 -7
- package/src/__tests__/feature-flag-test-helpers.ts +106 -0
- package/src/__tests__/gateway-flag-listener.test.ts +1 -1
- package/src/__tests__/gemini-image-service.test.ts +2 -2
- package/src/__tests__/gemini-provider.test.ts +5 -5
- package/src/__tests__/get-skill-detail-audit.test.ts +9 -8
- package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
- package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
- package/src/__tests__/image-credentials.test.ts +13 -13
- package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
- package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
- package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
- package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
- package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
- package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
- package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
- package/src/__tests__/input-repairs.test.ts +1 -1
- package/src/__tests__/install-skill-routing.test.ts +10 -8
- package/src/__tests__/integration-status.test.ts +5 -5
- package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
- package/src/__tests__/invite-routes-http.test.ts +1 -1
- package/src/__tests__/llm-catalog-parity.test.ts +5 -7
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
- package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
- package/src/__tests__/llm-resolver.test.ts +1 -1
- package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
- package/src/__tests__/llm-usage-store.test.ts +1 -1
- package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
- package/src/__tests__/mcp-abort-signal.test.ts +2 -2
- package/src/__tests__/mcp-client-auth.test.ts +2 -2
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -2
- package/src/__tests__/media-generate-image.test.ts +30 -30
- package/src/__tests__/memory-config-file-parity.test.ts +6 -6
- package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
- package/src/__tests__/migration-import-commit-http.test.ts +1 -1
- package/src/__tests__/mtime-cache.test.ts +2 -2
- package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
- package/src/__tests__/notification-deep-link.test.ts +40 -40
- package/src/__tests__/oauth-apps-routes.test.ts +3 -3
- package/src/__tests__/oauth-cli.test.ts +9 -9
- package/src/__tests__/oauth-commands-routes.test.ts +16 -16
- package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
- package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
- package/src/__tests__/oauth-providers-routes.test.ts +12 -12
- package/src/__tests__/oauth-store.test.ts +1 -1
- package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
- package/src/__tests__/onboarding-persona-write.test.ts +2 -2
- package/src/__tests__/openai-image-service.test.ts +2 -2
- package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
- package/src/__tests__/openai-responses-provider.test.ts +1 -1
- package/src/__tests__/path-policy.test.ts +4 -4
- package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
- package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
- package/src/__tests__/plugin-api-provider.test.ts +1 -1
- package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
- package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
- package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
- package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
- package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
- package/src/__tests__/provider-connections-backfill.test.ts +9 -9
- package/src/__tests__/provider-error-scenarios.test.ts +8 -8
- package/src/__tests__/provider-registry-ollama.test.ts +1 -1
- package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
- package/src/__tests__/registry.test.ts +3 -3
- package/src/__tests__/requests-mock.ts +972 -0
- package/src/__tests__/resolve-trust-class.test.ts +1 -1
- package/src/__tests__/resource-pressure-guard.test.ts +6 -6
- package/src/__tests__/resource-pressure-routes.test.ts +5 -5
- package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
- package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
- package/src/__tests__/schedule-store.test.ts +1 -1
- package/src/__tests__/search-skills-unified.test.ts +9 -7
- package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
- package/src/__tests__/secret-routes-scrub.test.ts +2 -59
- package/src/__tests__/secure-keys.test.ts +1 -1
- package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
- package/src/__tests__/skill-load-tool.test.ts +1 -1
- package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
- package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
- package/src/__tests__/skill-tool-factory.test.ts +1 -1
- package/src/__tests__/skills-file-content-endpoint.test.ts +12 -12
- package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
- package/src/__tests__/skills.test.ts +1 -1
- package/src/__tests__/slim-skill-category.test.ts +11 -9
- package/src/__tests__/stt-stream-session.test.ts +3 -3
- package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
- package/src/__tests__/subagent-disposal.test.ts +5 -5
- package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
- package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
- package/src/__tests__/subagent-manager-notify.test.ts +5 -5
- package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
- package/src/__tests__/system-prompt.test.ts +1 -1
- package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
- package/src/__tests__/telegram-config.test.ts +16 -16
- package/src/__tests__/telephony-tts-guard.test.ts +13 -13
- package/src/__tests__/test-preload.ts +17 -7
- package/src/__tests__/tool-audit.test.ts +1 -1
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
- package/src/__tests__/turn-events-store.test.ts +1 -1
- package/src/__tests__/twilio-routes.test.ts +2 -1
- package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
- package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
- package/src/__tests__/validate-input.test.ts +5 -5
- package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
- package/src/__tests__/voice-config-update.test.ts +15 -15
- package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
- package/src/__tests__/web-search.test.ts +340 -859
- package/src/__tests__/workspace-git-service.test.ts +1 -1
- package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
- package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
- package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
- package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
- package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
- package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
- package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
- package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
- package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
- package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
- package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
- package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
- package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
- package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
- package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
- package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
- package/src/api/events/cloud-disconnected.ts +21 -0
- package/src/api/events/host-bash.ts +1 -1
- package/src/api/events/host-cu.ts +1 -1
- package/src/api/events/host-file.ts +1 -1
- package/src/api/events/notification-intent.ts +1 -1
- package/src/api/events/{show-platform-login.ts → show-cloud-login.ts} +3 -5
- package/src/api/index.ts +11 -11
- package/src/api/responses/home.ts +1 -1
- package/src/api/surfaces.ts +4 -4
- package/src/approvals/guardian-request-resolvers.ts +2 -2
- package/src/avatar/accent-backfill.ts +1 -1
- package/src/avatar/identity-avatar.ts +1 -1
- package/src/avatar/notification-avatar.test.ts +2 -2
- package/src/avatar/notification-avatar.ts +2 -2
- package/src/avatar/resvg-lazy.test.ts +1 -1
- package/src/avatar/resvg-lazy.ts +3 -3
- package/src/avatar/sync-avatar.test.ts +76 -76
- package/src/avatar/sync-avatar.ts +15 -15
- package/src/avatar/traits-png-sync.ts +1 -1
- package/src/background-wake/background-wake-routes.test.ts +39 -39
- package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
- package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
- package/src/background-wake/publisher.ts +4 -4
- package/src/background-wake/wake-intent-hooks.test.ts +3 -3
- package/src/calls/__tests__/call-controller.test.ts +2 -2
- package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
- package/src/calls/call-domain.ts +1 -1
- package/src/calls/resolve-call-tts-provider.ts +6 -6
- package/src/calls/telephony-credential-preflight.ts +3 -3
- package/src/calls/telephony-tts-capability.ts +5 -6
- package/src/calls/tts-call-strategy.ts +1 -1
- package/src/calls/voice-escalation-judge.ts +1 -1
- package/src/calls/voice-ingress-preflight.ts +4 -4
- package/src/cli/bundled-modules.ts +1 -1
- package/src/cli/commands/__tests__/apps.test.ts +18 -53
- package/src/cli/commands/__tests__/plugins.test.ts +13 -13
- package/src/cli/commands/__tests__/tts.test.ts +1 -1
- package/src/cli/commands/auth.help.ts +3 -3
- package/src/cli/commands/auth.ts +2 -4
- package/src/cli/commands/browser.help.ts +2 -2
- package/src/cli/commands/channels/index.help.ts +2 -2
- package/src/cli/commands/channels/index.ts +1 -1
- package/src/cli/commands/channels/send.ts +1 -1
- package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
- package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
- package/src/cli/commands/cloud/connect.ts +2 -2
- package/src/cli/commands/cloud/credits-format.ts +1 -1
- package/src/cli/commands/cloud/index.help.ts +35 -35
- package/src/cli/commands/config.ts +1 -1
- package/src/cli/commands/credentials.ts +10 -12
- package/src/cli/commands/domain.ts +1 -1
- package/src/cli/commands/email.help.ts +1 -1
- package/src/cli/commands/email.ts +2 -2
- package/src/cli/commands/gateway.help.ts +1 -1
- package/src/cli/commands/gateway.ts +1 -1
- package/src/cli/commands/image-generation.help.ts +1 -1
- package/src/cli/commands/inference-providers.ts +1 -1
- package/src/cli/commands/inference.help.ts +2 -2
- package/src/cli/commands/memory/index.help.ts +1 -1
- package/src/cli/commands/oauth/connect.test.ts +2 -2
- package/src/cli/commands/oauth/connect.ts +1 -1
- package/src/cli/commands/oauth/index.help.ts +5 -5
- package/src/cli/commands/oauth/providers.ts +2 -2
- package/src/cli/commands/oauth/shared.ts +3 -3
- package/src/cli/commands/plugins.help.ts +2 -3
- package/src/cli/commands/plugins.ts +5 -5
- package/src/cli/commands/roadmap.help.ts +1 -1
- package/src/cli/commands/telemetry.help.ts +2 -2
- package/src/cli/commands/telemetry.ts +2 -2
- package/src/cli/commands/tts.help.ts +3 -3
- package/src/cli/commands/webhooks.help.ts +9 -9
- package/src/cli/commands/webhooks.ts +1 -1
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
- package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
- package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
- package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
- package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
- package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
- package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
- package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
- package/src/cli/lib/bundled-marketplace.json +1 -1
- package/src/cli/lib/inspect-plugin.ts +2 -2
- package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
- package/src/cli/lib/install-from-github.ts +4 -4
- package/src/cli/lib/plugin-catalog-cache.ts +7 -7
- package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
- package/src/cli/lib/plugin-catalog-local.ts +2 -2
- package/src/cli/lib/publish-plugin.ts +9 -10
- package/src/cli/lib/search-plugins.ts +2 -2
- package/src/{platform → cloud}/client.test.ts +85 -86
- package/src/{platform → cloud}/client.ts +38 -46
- package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
- package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
- package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
- package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
- package/src/{platform → cloud}/consent-cache.test.ts +5 -5
- package/src/{platform → cloud}/consent-cache.ts +8 -8
- package/src/cloud/feature-gate.ts +8 -0
- package/src/{platform → cloud}/sync-identity.test.ts +4 -4
- package/src/{platform → cloud}/sync-identity.ts +6 -6
- package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
- package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
- package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
- package/src/config/__tests__/default-provider.test.ts +4 -4
- package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
- package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
- package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
- package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
- package/src/config/__tests__/profile-materialization.test.ts +7 -7
- package/src/config/__tests__/seed-default-provider.test.ts +17 -17
- package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
- package/src/config/__tests__/webhook-routing.test.ts +51 -51
- package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
- package/src/config/bundled-skills/messaging/SKILL.md +8 -8
- package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
- package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
- package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
- package/src/config/bundled-skills/settings/TOOLS.json +3 -3
- package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
- package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
- package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
- package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
- package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
- package/src/config/call-site-defaults.ts +6 -6
- package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
- package/src/config/cloud-rehydration.ts +35 -0
- package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
- package/src/config/default-profile-catalog.ts +36 -38
- package/src/config/default-profile-names.ts +11 -11
- package/src/config/default-provider-resolution.ts +2 -2
- package/src/config/default-provider.ts +1 -1
- package/src/config/env-registry.ts +23 -21
- package/src/config/env.ts +33 -46
- package/src/config/feature-flag-registry.json +5 -5
- package/src/config/inference-profile-validation.ts +1 -1
- package/src/config/llm-resolver.ts +9 -10
- package/src/config/loader.ts +33 -17
- package/src/config/profile-materialization.ts +8 -8
- package/src/config/profile-text-generation.test.ts +1 -1
- package/src/config/sanitize-for-transfer.ts +1 -1
- package/src/config/schema.ts +6 -6
- package/src/config/schemas/__tests__/stt.test.ts +2 -2
- package/src/config/schemas/call-site-catalog.ts +1 -1
- package/src/config/schemas/channels.ts +8 -0
- package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
- package/src/config/schemas/host-browser.ts +1 -0
- package/src/config/schemas/ingress.ts +1 -12
- package/src/config/schemas/llm.ts +45 -36
- package/src/config/schemas/memory-lifecycle.ts +11 -1
- package/src/config/schemas/services.ts +4 -4
- package/src/config/schemas/stt.ts +3 -3
- package/src/config/schemas/tts.ts +10 -5
- package/src/config/schemas/voice.ts +1 -1
- package/src/config/seed-inference-profiles.ts +19 -19
- package/src/config/skill-state.ts +2 -2
- package/src/config/skills.ts +4 -4
- package/src/config/sync-gated-profiles.ts +8 -8
- package/src/config/webhook-routing.ts +19 -19
- package/src/contacts/contacts-write.ts +1 -1
- package/src/credential-execution/ces-runtime.ts +6 -6
- package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
- package/src/credential-execution/prompted-credential.ts +6 -18
- package/src/credential-health/credential-health-service.ts +61 -76
- package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
- package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
- package/src/daemon/config-watcher.ts +2 -2
- package/src/daemon/conversation-agent-loop.ts +9 -9
- package/src/daemon/conversation-error.ts +36 -36
- package/src/daemon/conversation-skill-tools.ts +7 -7
- package/src/daemon/conversation-surfaces.ts +1 -1
- package/src/daemon/conversation-tool-setup.ts +2 -2
- package/src/daemon/conversation-turn-finalize.ts +1 -1
- package/src/daemon/conversation-workspace.ts +1 -1
- package/src/daemon/conversation.ts +1 -1
- package/src/daemon/credential-transcript-scrub.ts +21 -35
- package/src/daemon/daemon-readiness.ts +1 -1
- package/src/daemon/event-loop-watchdog.ts +2 -2
- package/src/daemon/handlers/config-ingress.ts +9 -9
- package/src/daemon/handlers/config-telegram.ts +6 -6
- package/src/daemon/handlers/skills.ts +20 -20
- package/src/daemon/host-cu-proxy.ts +1 -1
- package/src/daemon/lifecycle.ts +19 -19
- package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
- package/src/daemon/providers-setup.ts +6 -6
- package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
- package/src/daemon/resource-pressure-guard.ts +6 -6
- package/src/daemon/shutdown-handlers.ts +1 -1
- package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
- package/src/daemon/trust-context.ts +1 -1
- package/src/desktop/desktop-automation-lease.ts +1 -1
- package/src/desktop/desktop-browser-endpoint.ts +2 -4
- package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
- package/src/desktop/desktop-stream-bridge.test.ts +4 -4
- package/src/desktop/desktop-stream-bridge.ts +1 -1
- package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
- package/src/desktop/virtual-desktop-feature.ts +7 -7
- package/src/email/byo-email-credential.ts +1 -1
- package/src/email/registered-inbox.test.ts +16 -16
- package/src/email/registered-inbox.ts +20 -20
- package/src/heartbeat/heartbeat-service.ts +1 -1
- package/src/hooks/hook-loader.ts +2 -2
- package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
- package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
- package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
- package/src/inbound/oauth-callback-url.ts +6 -6
- package/src/inbound/pod-webhook-claim.ts +2 -2
- package/src/inbound/public-ingress-urls.ts +3 -3
- package/src/inbound/tunnel-probe.ts +21 -15
- package/src/inbound/tunnel-webhooks-gate.ts +3 -3
- package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
- package/src/ipc/__tests__/email-ipc.test.ts +8 -8
- package/src/ipc/gateway-client.test.ts +55 -59
- package/src/ipc/gateway-flag-listener.ts +3 -3
- package/src/ipc/routes/db-proxy.ts +1 -1
- package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
- package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
- package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
- package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
- package/src/live-voice/live-activity-reporter.ts +7 -7
- package/src/live-voice/live-voice-credential-preflight.ts +6 -6
- package/src/live-voice/live-voice-session.ts +3 -3
- package/src/live-voice/live-voice-tts.ts +1 -1
- package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
- package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
- package/src/mcp/mcp-oauth-provider.ts +2 -2
- package/src/media/gemini-image-service.ts +11 -13
- package/src/media/image-credentials.ts +9 -9
- package/src/media/openai-image-service.ts +1 -1
- package/src/media/types.ts +3 -3
- package/src/messaging/providers/channel-transport.ts +1 -1
- package/src/messaging/providers/discord/transport.ts +1 -1
- package/src/messaging/providers/gmail/adapter.ts +1 -1
- package/src/messaging/providers/gmail/client.ts +4 -4
- package/src/messaging/providers/outlook/adapter.ts +1 -1
- package/src/messaging/providers/slack/adapter.ts +1 -1
- package/src/messaging/providers/slack/transport.ts +1 -1
- package/src/messaging/providers/telegram-bot/transport.ts +1 -1
- package/src/monitoring/db-integrity-check.ts +1 -1
- package/src/monitoring/db-integrity-sample.ts +2 -2
- package/src/monitoring/mount-watch.ts +1 -1
- package/src/monitoring/oom-kill-reporter.ts +1 -1
- package/src/monitoring/worker.ts +5 -5
- package/src/notifications/README.md +2 -2
- package/src/notifications/__tests__/broadcaster.test.ts +9 -9
- package/src/notifications/__tests__/completion-policy.test.ts +1 -1
- package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
- package/src/notifications/activity-failed-dedupe.ts +1 -1
- package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
- package/src/notifications/broadcaster.ts +10 -10
- package/src/notifications/decision-engine.ts +1 -1
- package/src/notifications/destination-resolver.ts +1 -1
- package/src/notifications/emit-signal.ts +6 -6
- package/src/notifications/types.ts +2 -2
- package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
- package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
- package/src/oauth/byo-connection.test.ts +2 -2
- package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
- package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
- package/src/oauth/connection-resolver.test.ts +59 -61
- package/src/oauth/connection-resolver.ts +22 -22
- package/src/oauth/connection.ts +1 -1
- package/src/oauth/oauth-store.ts +8 -8
- package/src/oauth/provider-serializer.ts +4 -4
- package/src/oauth/revoke.ts +1 -1
- package/src/oauth/seed-providers.ts +32 -32
- package/src/permissions/approval-provenance.ts +1 -1
- package/src/permissions/checker.test.ts +18 -16
- package/src/permissions/checker.ts +3 -3
- package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
- package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
- package/src/persistence/embeddings/embedding-backend.ts +13 -13
- package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
- package/src/persistence/embeddings/embedding-gemini.ts +11 -11
- package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
- package/src/persistence/jobs-store.ts +1 -1
- package/src/persistence/lifecycle-events-store.ts +1 -1
- package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
- package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
- package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
- package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
- package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
- package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
- package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
- package/src/persistence/schema/oauth.ts +1 -1
- package/src/plugin-api/index.ts +4 -4
- package/src/plugin-api/model-profiles.test.ts +1 -1
- package/src/plugin-api/model-profiles.ts +1 -1
- package/src/plugin-api/transcription-session.ts +1 -1
- package/src/plugin-api/vision-support.test.ts +1 -1
- package/src/plugin-api/webhook-url.ts +12 -12
- package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
- package/src/plugins/defaults/cloud-hosted/package.json +14 -0
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
- package/src/plugins/defaults/index.ts +6 -6
- package/src/plugins/defaults/main.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
- package/src/plugins/defaults/memory/config.ts +4 -4
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
- package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
- package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
- package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
- package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
- package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
- package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
- package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
- package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
- package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
- package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
- package/src/plugins/defaults/memory/worker.ts +5 -5
- package/src/plugins/defaults/workspace/injectors.ts +2 -2
- package/src/plugins/mtime-cache.ts +1 -1
- package/src/plugins/source-versions.ts +1 -1
- package/src/plugins/types.ts +1 -1
- package/src/prompts/__tests__/system-prompt.test.ts +1 -1
- package/src/prompts/normalize-onboarding.ts +1 -1
- package/src/prompts/persona-resolver.ts +1 -1
- package/src/prompts/templates/system-sections.ts +3 -3
- package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
- package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
- package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
- package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
- package/src/providers/__tests__/inference.test.ts +2 -2
- package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
- package/src/providers/__tests__/retry-callsite.test.ts +1 -1
- package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
- package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
- package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
- package/src/providers/anthropic/client.ts +1 -1
- package/src/providers/cadet/client.ts +1 -1
- package/src/providers/cadet-model-routing.test.ts +19 -19
- package/src/providers/cadet-model-routing.ts +23 -23
- package/src/providers/call-site-routing.ts +10 -10
- package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
- package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
- package/src/providers/connection-resolution.ts +43 -43
- package/src/providers/fallback-breaker.ts +2 -2
- package/src/providers/fetch-provider-catalog.ts +3 -3
- package/src/providers/gemini/client.ts +5 -5
- package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
- package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
- package/src/providers/inference/adapter-factory.ts +35 -35
- package/src/providers/inference/auth.ts +10 -10
- package/src/providers/inference/backfill.ts +11 -11
- package/src/providers/inference/connection-availability.ts +24 -24
- package/src/providers/inference/connections.ts +18 -20
- package/src/providers/inference/profile-probe.ts +4 -4
- package/src/providers/inference/resolve-auth.ts +8 -8
- package/src/providers/jev/ask.test.ts +1 -1
- package/src/providers/jev/ask.ts +2 -2
- package/src/providers/model-catalog.ts +8 -9
- package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
- package/src/providers/openai/api-error-normalization.ts +2 -2
- package/src/providers/provider-availability.ts +4 -4
- package/src/providers/provider-env-vars.ts +1 -1
- package/src/providers/provider-secret-catalog.ts +1 -1
- package/src/providers/registry.ts +20 -20
- package/src/providers/retry.ts +26 -26
- package/src/providers/routing-identity.ts +10 -10
- package/src/providers/search-provider-catalog.ts +2 -2
- package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
- package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
- package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
- package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
- package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
- package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
- package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
- package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
- package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
- package/src/providers/speech-to-text/provider-catalog.ts +3 -3
- package/src/providers/speech-to-text/resolve.ts +26 -28
- package/src/providers/together/client.ts +1 -1
- package/src/providers/types.ts +4 -4
- package/src/providers/voice-error-copy.ts +1 -1
- package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
- package/src/runtime/agent-wake.ts +1 -1
- package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
- package/src/runtime/auth/middleware.ts +1 -1
- package/src/runtime/auth/scopes.ts +1 -1
- package/src/runtime/capabilities.ts +1 -1
- package/src/runtime/channel-invite-transports/discord.ts +1 -1
- package/src/runtime/channel-invite-transports/email.ts +2 -2
- package/src/runtime/channel-readiness-service.ts +15 -13
- package/src/runtime/channel-reply-session.test.ts +1 -1
- package/src/runtime/channel-reply-session.ts +1 -1
- package/src/runtime/http-server.ts +4 -4
- package/src/runtime/introduction-policy.ts +4 -4
- package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
- package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
- package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
- package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
- package/src/runtime/migrations/migration-transport.ts +3 -3
- package/src/runtime/migrations/origin-mode.ts +6 -9
- package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
- package/src/runtime/migrations/vbundle-importer.ts +4 -4
- package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
- package/src/runtime/migrations/vbundle-validator.ts +1 -1
- package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
- package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
- package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +26 -25
- package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
- package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
- package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
- package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
- package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
- package/src/runtime/routes/app-management-routes.ts +1 -1
- package/src/runtime/routes/attachment-routes.ts +1 -1
- package/src/runtime/routes/auth-routes.ts +14 -14
- package/src/runtime/routes/avatar-routes.ts +0 -14
- package/src/runtime/routes/background-wake-routes.ts +4 -4
- package/src/runtime/routes/channel-availability-routes.ts +4 -4
- package/src/runtime/routes/client-routes.ts +5 -5
- package/src/runtime/routes/cloud-credentials.ts +45 -0
- package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +83 -116
- package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +82 -282
- package/src/runtime/routes/credential-routes.ts +28 -30
- package/src/runtime/routes/default-provider-routes.ts +1 -1
- package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
- package/src/runtime/routes/desktop-setup-routes.ts +1 -1
- package/src/runtime/routes/domain-routes.ts +15 -21
- package/src/runtime/routes/email-routes.ts +13 -13
- package/src/runtime/routes/errors.ts +1 -1
- package/src/runtime/routes/gateway-status-routes.ts +1 -1
- package/src/runtime/routes/identity-routes.ts +3 -3
- package/src/runtime/routes/inbound-message-handler.ts +1 -1
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
- package/src/runtime/routes/index.ts +1 -1
- package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
- package/src/runtime/routes/inference-profiles-routes.ts +11 -11
- package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
- package/src/runtime/routes/ingress-status-routes.ts +1 -1
- package/src/runtime/routes/integrations/a2a.ts +2 -2
- package/src/runtime/routes/integrations/twilio.ts +21 -35
- package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
- package/src/runtime/routes/live-voice-routes.test.ts +4 -4
- package/src/runtime/routes/live-voice-routes.ts +6 -6
- package/src/runtime/routes/migration-routes.ts +34 -40
- package/src/runtime/routes/oauth-commands-routes.ts +31 -31
- package/src/runtime/routes/oauth-providers.ts +5 -5
- package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
- package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
- package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
- package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
- package/src/runtime/routes/oauth-request-hints.ts +1 -1
- package/src/runtime/routes/plugins-routes.ts +9 -9
- package/src/runtime/routes/profiler-routes.ts +1 -1
- package/src/runtime/routes/ps-routes.ts +4 -0
- package/src/runtime/routes/roadmap-routes.ts +18 -20
- package/src/runtime/routes/secret-routes.ts +29 -55
- package/src/runtime/routes/settings-routes.ts +18 -23
- package/src/runtime/routes/telemetry-routes.ts +4 -4
- package/src/runtime/routes/tts-routes.ts +4 -4
- package/src/runtime/routes/user-route-resolution.ts +1 -1
- package/src/runtime/routes/webhook-routes.ts +18 -18
- package/src/runtime/routes/workflow-routes.ts +5 -5
- package/src/runtime/sync/resource-sync-events.ts +2 -2
- package/src/runtime/verification-outbound-actions.ts +4 -4
- package/src/schedule/integration-status.ts +6 -6
- package/src/schedule/run-script.ts +1 -1
- package/src/schedule/schedule-timezone.ts +1 -1
- package/src/schedule/worker.ts +5 -5
- package/src/security/auth-fallback-events-store.ts +1 -1
- package/src/security/oauth2.ts +4 -4
- package/src/skills/available-skills.ts +4 -4
- package/src/skills/catalog-files.ts +8 -8
- package/src/skills/catalog-install.ts +12 -12
- package/src/skills/categories-cache.ts +3 -3
- package/src/skills/clawhub.ts +1 -1
- package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
- package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
- package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
- package/src/skills/inline-command-runner.ts +1 -1
- package/src/skills/install-meta.ts +1 -1
- package/src/skills/path-classifier.ts +4 -4
- package/src/skills/skill-history.ts +4 -4
- package/src/skills/skillssh-registry.ts +1 -1
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
- package/src/stt/daemon-batch-transcriber.ts +7 -7
- package/src/stt/types.ts +3 -3
- package/src/subagent/manager.ts +15 -15
- package/src/subagent/types.ts +1 -1
- package/src/telegram/__tests__/webhook-health.test.ts +16 -16
- package/src/telegram/webhook-health.ts +10 -10
- package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
- package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
- package/src/telemetry/config-setting-events-store.ts +1 -1
- package/src/telemetry/config-setting-snapshot.ts +1 -1
- package/src/telemetry/memory-corpus-size.ts +1 -1
- package/src/telemetry/memory-tier-reporter.test.ts +2 -2
- package/src/telemetry/memory-tier-reporter.ts +3 -3
- package/src/telemetry/telemetry-event-sources.test.ts +2 -2
- package/src/telemetry/telemetry-event-sources.ts +9 -9
- package/src/telemetry/telemetry-events-outbox.ts +2 -2
- package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
- package/src/telemetry/telemetry-wire-validation.ts +3 -3
- package/src/telemetry/telemetry-wire.generated.ts +1 -1
- package/src/telemetry/tool-audit.ts +1 -1
- package/src/telemetry/tool-executed-events-store.test.ts +1 -1
- package/src/telemetry/trace-collection-policy.ts +4 -4
- package/src/telemetry/turn-events-store.ts +1 -1
- package/src/telemetry/turn-outcome.ts +1 -1
- package/src/telemetry/turn-trace-store.ts +2 -2
- package/src/telemetry/types.test.ts +1 -1
- package/src/telemetry/types.ts +19 -19
- package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
- package/src/telemetry/usage-telemetry-reporter.ts +17 -17
- package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
- package/src/telemetry/watchdog-direct-emit.ts +10 -10
- package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
- package/src/tools/browser/cdp-client/factory.ts +1 -1
- package/src/tools/computer-use/target.ts +2 -2
- package/src/tools/credentials/store.ts +6 -15
- package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
- package/src/tools/network/__tests__/web-search.test.ts +14 -14
- package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
- package/src/tools/network/web-search.ts +9 -9
- package/src/tools/permission-checker.ts +2 -2
- package/src/tools/shared/input-misuse.ts +1 -1
- package/src/tools/shared/input-repairs.ts +4 -4
- package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
- package/src/tools/skills/find-similar-skills.test.ts +7 -7
- package/src/tools/skills/find-similar-skills.ts +15 -15
- package/src/tools/skills/load.ts +6 -6
- package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
- package/src/tools/skills/skill-script-runner.ts +2 -2
- package/src/tools/terminal/safe-env.ts +3 -3
- package/src/tools/tool-types.ts +2 -2
- package/src/tools/types.ts +2 -2
- package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
- package/src/tools/workflows/manage-workflows.ts +1 -1
- package/src/tools/workspace-tools/loader.ts +1 -1
- package/src/tts/__tests__/cadet-provider.test.ts +5 -5
- package/src/tts/provider-catalog.ts +1 -1
- package/src/tts/providers/cadet-provider.ts +23 -23
- package/src/tts/providers/cadet-tts-socket.ts +2 -2
- package/src/tts/tts-config-resolver.ts +1 -1
- package/src/tts/tts-voice-field.ts +3 -3
- package/src/usage/subagent-attribution.ts +1 -1
- package/src/util/__tests__/process-table.test.ts +47 -0
- package/src/util/canonicalize-identity.ts +1 -1
- package/src/util/cgroup-cpu.ts +5 -5
- package/src/util/cgroup-memory.ts +2 -2
- package/src/util/container-cpu-sampler.ts +4 -4
- package/src/util/disk-usage.ts +4 -4
- package/src/util/errors.ts +3 -3
- package/src/util/oom-priority.ts +1 -1
- package/src/util/platform.ts +5 -5
- package/src/util/process-table.ts +39 -5
- package/src/util/provider-error-patterns.ts +2 -2
- package/src/watch/__tests__/watch-retro.test.ts +2 -2
- package/src/watch/watch-retro.ts +1 -1
- package/src/watcher/__tests__/telemetry.test.ts +2 -2
- package/src/watcher/telemetry.ts +1 -1
- package/src/windows-compiled-cli.ts +1 -1
- package/src/workspace/adaptive-thinking-repair.ts +4 -4
- package/src/workspace/byok-default-profile-ensure.ts +7 -7
- package/src/workspace/git-service.ts +2 -2
- package/src/workspace/migrations/006-services-config.ts +1 -1
- package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
- package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
- package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
- package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
- package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
- package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
- package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
- package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
- package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
- package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
- package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
- package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
- package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
- package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
- package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
- package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
- package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
- package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
- package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
- package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
- package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
- package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
- package/src/workspace/migrations/127-backfill-default-provider.ts +4 -4
- package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
- package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
- package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
- package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
- package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
- package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
- package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
- package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
- package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
- package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
- package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
- package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
- package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
- package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
- package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
- package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
- package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
- package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
- package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
- package/src/workspace/migrations/registry.ts +6 -6
- package/src/workspace/top-level-renderer.ts +1 -1
- package/src/workspace/turn-commit.ts +2 -2
- package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
- package/src/__tests__/mock-gateway-ipc.ts +0 -260
- package/src/api/events/platform-disconnected.ts +0 -21
- package/src/config/platform-rehydration.ts +0 -60
- package/src/platform/feature-gate.ts +0 -8
- package/src/plugins/defaults/platform-hosted/package.json +0 -14
- package/src/runtime/routes/platform-managed-credentials.ts +0 -50
- /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
- /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCloudUpstream } from "../providers/cadet-model-routing.js";
|
|
2
2
|
import { ROUTING_IDENTITY_PROVIDERS } from "../providers/inference/auth.js";
|
|
3
3
|
import {
|
|
4
4
|
catalogMaxOutputTokens,
|
|
@@ -16,10 +16,10 @@ import {
|
|
|
16
16
|
type DefaultProfileKey,
|
|
17
17
|
type DefaultProfileProvider,
|
|
18
18
|
FALLBACK_PROFILE_BY_KEY,
|
|
19
|
+
isCloudOnlyProfileKey,
|
|
19
20
|
isDefaultProfileKey,
|
|
20
21
|
isDefaultProfileProvider,
|
|
21
22
|
isFlagGatedProfileKey,
|
|
22
|
-
isManagedOnlyProfileKey,
|
|
23
23
|
JEV_MANAGED_PROFILE_KEY,
|
|
24
24
|
OS_BETA_PROFILE_KEY,
|
|
25
25
|
} from "./default-profile-names.js";
|
|
@@ -44,10 +44,10 @@ import {
|
|
|
44
44
|
* structured as an intent × provider matrix: each default profile is an
|
|
45
45
|
* intent, and each provider that can serve default profiles has a concrete
|
|
46
46
|
* implementation of that intent (model, token budget, effort, thinking).
|
|
47
|
-
* The `cadet` column is the
|
|
47
|
+
* The `cadet` column is the cloud-managed implementation and the
|
|
48
48
|
* `chatgpt` column is the ChatGPT-subscription implementation; the other
|
|
49
49
|
* columns are the BYOK implementations resolved through `llm.default`
|
|
50
|
-
* on off-
|
|
50
|
+
* on off-cloud installs.
|
|
51
51
|
*
|
|
52
52
|
* Nothing materializes default bodies into workspace config: runtime readers
|
|
53
53
|
* resolve profiles through `getEffectiveProfiles`/`getEffectiveProfile`
|
|
@@ -75,7 +75,7 @@ export type DefaultProfileTemplate = Omit<
|
|
|
75
75
|
type ProfileImpls = Record<DefaultProfileKey, DefaultProfileTemplate>;
|
|
76
76
|
|
|
77
77
|
/**
|
|
78
|
-
* The `cadet` column:
|
|
78
|
+
* The `cadet` column: cloud-managed implementations, stamped
|
|
79
79
|
* `provider: "cadet"` — dispatch derives the upstream from the model.
|
|
80
80
|
* Models are pinned (never intents): the intent tables are keyed by
|
|
81
81
|
* concrete dispatch providers, and the model is what selects the upstream.
|
|
@@ -140,17 +140,17 @@ const CADET_PROFILE_IMPLS: ProfileImpls = {
|
|
|
140
140
|
},
|
|
141
141
|
},
|
|
142
142
|
"latency-optimized": {
|
|
143
|
-
// The
|
|
143
|
+
// The cloud latency class, also what the live-voice front model runs on.
|
|
144
144
|
// Its leading tokens are the turn-taking verdict, so what this profile
|
|
145
145
|
// optimizes is the tail of time-to-first-token rather than the median: a
|
|
146
146
|
// verdict slower than `voice.frontModel.endpointDecisionTimeoutMs`
|
|
147
147
|
// trips the speculative fail-open commit in live-voice-session.ts, which
|
|
148
148
|
// is audible dead air.
|
|
149
149
|
//
|
|
150
|
-
// Two constraints bind the model id. Its
|
|
150
|
+
// Two constraints bind the model id. Its cloud credentials must be
|
|
151
151
|
// provisioned in every environment, and it alone selects the upstream:
|
|
152
152
|
// `provider` below is the provider-agnostic managed sentinel, so
|
|
153
|
-
// `
|
|
153
|
+
// `getCloudUpstream` resolves the real upstream from the model's catalog
|
|
154
154
|
// owner. This model is the one live-voice TTFT drives validated.
|
|
155
155
|
model: "gpt-5.6-luna",
|
|
156
156
|
provider: "cadet",
|
|
@@ -172,7 +172,7 @@ const CADET_PROFILE_IMPLS: ProfileImpls = {
|
|
|
172
172
|
};
|
|
173
173
|
|
|
174
174
|
/**
|
|
175
|
-
* The
|
|
175
|
+
* The cloud backup profiles, one per default profile: the route a primary's
|
|
176
176
|
* `fallbackProfile` pointer names. Cadet column only: backups never
|
|
177
177
|
* materialize for BYOK or chatgpt installs. Like the primaries, models are
|
|
178
178
|
* pinned (never intents) and stamped `provider: "cadet"`, so dispatch
|
|
@@ -392,8 +392,8 @@ export const PROFILE_IMPLS: Record<
|
|
|
392
392
|
>;
|
|
393
393
|
|
|
394
394
|
/**
|
|
395
|
-
* The
|
|
396
|
-
*
|
|
395
|
+
* The cloud Jev profile: TypeSafe's System One decision model through the
|
|
396
|
+
* cloud proxy. Managed column only, because the cloud is the only
|
|
397
397
|
* route the catalog offers for it here, and never a conversation profile,
|
|
398
398
|
* because `jev-latest` returns structured answers rather than chat text
|
|
399
399
|
* (`supportsText: false` on the `typesafe` catalog entry). Its budget is
|
|
@@ -412,7 +412,7 @@ export const JEV_MANAGED_PROFILE_TEMPLATE: DefaultProfileTemplate = {
|
|
|
412
412
|
};
|
|
413
413
|
|
|
414
414
|
/**
|
|
415
|
-
* The Auto profile: the
|
|
415
|
+
* The Auto profile: the cloud Balanced body under its own label, so that
|
|
416
416
|
* anything dispatching the name directly runs Balanced. The per-message
|
|
417
417
|
* choice among the defaults happens in the agent loop, not here (see
|
|
418
418
|
* `AUTO_PROFILE_KEY`). No `fallbackProfile`: the code-owned fallback mapping
|
|
@@ -433,8 +433,8 @@ export const AUTO_PROFILE_TEMPLATE: DefaultProfileTemplate = (() => {
|
|
|
433
433
|
})();
|
|
434
434
|
|
|
435
435
|
/**
|
|
436
|
-
*
|
|
437
|
-
* managed backup profiles and the
|
|
436
|
+
* Cloud profiles, i.e. the `cadet` column keyed by profile name, plus the
|
|
437
|
+
* managed backup profiles and the cloud Jev profile. Backups come after the
|
|
438
438
|
* primaries, which is what places them after the primaries in the seeded
|
|
439
439
|
* `profileOrder`: the seeder inserts missing managed keys in this record's
|
|
440
440
|
* order. Keyed by the user-facing defaults only: an internal profile is
|
|
@@ -490,7 +490,7 @@ export const USER_PROFILE_TEMPLATES: Record<string, DefaultProfileTemplate> =
|
|
|
490
490
|
);
|
|
491
491
|
|
|
492
492
|
/**
|
|
493
|
-
* Flag-gated
|
|
493
|
+
* Flag-gated cloud profile. NOT in `MANAGED_PROFILE_TEMPLATES`, so the
|
|
494
494
|
* unconditional boot seed never creates it. Reconciled in/out by
|
|
495
495
|
* the flag-gated profile reconcile based on the `os-beta` feature flag.
|
|
496
496
|
* Balanced defaults, with lower reasoning effort while the profile is in beta.
|
|
@@ -537,7 +537,7 @@ export const CODE_OWNED_PROFILE_NAMES = new Set<string>([
|
|
|
537
537
|
JEV_MANAGED_PROFILE_KEY,
|
|
538
538
|
]);
|
|
539
539
|
|
|
540
|
-
// All
|
|
540
|
+
// All cloud profiles, including the flag-gated os-beta, are invariant:
|
|
541
541
|
// their MANAGED-SOURCE entries are read-only to user-facing writes except
|
|
542
542
|
// re-enabling a disabled one (enforced at commitConfigWrite). A user-owned
|
|
543
543
|
// profile sharing one of these names is NOT locked — invariance is gated on
|
|
@@ -614,14 +614,14 @@ for (const key of DEFAULT_PROFILE_KEYS) {
|
|
|
614
614
|
if (impl.model != null) {
|
|
615
615
|
const routable =
|
|
616
616
|
impl.provider === "cadet"
|
|
617
|
-
?
|
|
617
|
+
? getCloudUpstream(impl.model) !== null
|
|
618
618
|
: impl.provider === "chatgpt"
|
|
619
619
|
? isCodexSubscriptionModel(impl.model)
|
|
620
620
|
: isModelInCatalog(impl.provider, impl.model);
|
|
621
621
|
if (!routable) {
|
|
622
622
|
throw new Error(
|
|
623
623
|
`PROFILE_IMPLS[${key}][${provider}] references model "${impl.model}" ` +
|
|
624
|
-
`which is not ${impl.provider === "cadet" ? "served by any
|
|
624
|
+
`which is not ${impl.provider === "cadet" ? "served by any cloud upstream" : impl.provider === "chatgpt" ? "in CODEX_SUBSCRIPTION_MODEL_IDS" : `in PROVIDER_CATALOG for provider "${impl.provider}"`}. ` +
|
|
625
625
|
`Update model-catalog.ts or default-profile-catalog.ts.`,
|
|
626
626
|
);
|
|
627
627
|
}
|
|
@@ -630,31 +630,29 @@ for (const key of DEFAULT_PROFILE_KEYS) {
|
|
|
630
630
|
}
|
|
631
631
|
|
|
632
632
|
// Backup profiles get the same eager verification as the cadet column: a
|
|
633
|
-
// pinned model that no
|
|
633
|
+
// pinned model that no cloud upstream serves would make the fallback route
|
|
634
634
|
// undispatchable exactly when it is needed. The cross-provider rule (backup
|
|
635
635
|
// upstream differs from the primary's) is asserted in
|
|
636
636
|
// __tests__/default-profile-catalog-fallback.test.ts.
|
|
637
637
|
for (const key of BACKUP_PROFILE_KEYS) {
|
|
638
638
|
const impl = BACKUP_PROFILE_IMPLS[key];
|
|
639
|
-
if (impl.model == null ||
|
|
639
|
+
if (impl.model == null || getCloudUpstream(impl.model) === null) {
|
|
640
640
|
throw new Error(
|
|
641
641
|
`BACKUP_PROFILE_IMPLS[${key}] references model "${impl.model ?? ""}" ` +
|
|
642
|
-
`which is not served by any
|
|
642
|
+
`which is not served by any cloud upstream. ` +
|
|
643
643
|
`Update model-catalog.ts or default-profile-catalog.ts.`,
|
|
644
644
|
);
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
647
|
|
|
648
|
-
// The
|
|
648
|
+
// The cloud Jev profile pins a model the cloud proxy must front, and the
|
|
649
649
|
// judges depend on it being the non-text TypeSafe model rather than a chat
|
|
650
650
|
// model that happens to share the id.
|
|
651
|
-
if (
|
|
652
|
-
getManagedUpstream(JEV_MANAGED_PROFILE_TEMPLATE.model ?? "") !== "typesafe"
|
|
653
|
-
) {
|
|
651
|
+
if (getCloudUpstream(JEV_MANAGED_PROFILE_TEMPLATE.model ?? "") !== "typesafe") {
|
|
654
652
|
throw new Error(
|
|
655
653
|
`JEV_MANAGED_PROFILE_TEMPLATE references model "${JEV_MANAGED_PROFILE_TEMPLATE.model ?? ""}" ` +
|
|
656
|
-
`which the
|
|
657
|
-
`Update model-catalog.ts,
|
|
654
|
+
`which the cloud route does not serve through typesafe. ` +
|
|
655
|
+
`Update model-catalog.ts, cloud-proxy/constants.ts, or default-profile-catalog.ts.`,
|
|
658
656
|
);
|
|
659
657
|
}
|
|
660
658
|
|
|
@@ -706,8 +704,8 @@ function buildDefaultProfileEntries(): Record<string, ProfileEntry> {
|
|
|
706
704
|
|
|
707
705
|
/**
|
|
708
706
|
* The materialized code-default bodies keyed by profile name — the
|
|
709
|
-
* code-owned content a
|
|
710
|
-
* the `cadet` column (the
|
|
707
|
+
* code-owned content a cloud-source workspace entry resolves to. These are
|
|
708
|
+
* the `cadet` column (the cloud implementations).
|
|
711
709
|
*
|
|
712
710
|
* Materialized once at module load, so this is the shipped catalog. The
|
|
713
711
|
* provider-aware resolvers (`resolveDefaultProfileForProvider`,
|
|
@@ -773,13 +771,13 @@ function resolveAgainstBody(
|
|
|
773
771
|
if (body == null) {
|
|
774
772
|
// A managed stub is the workspace's slot for a code-owned profile, never
|
|
775
773
|
// a profile of its own, so with no body behind it there is nothing to
|
|
776
|
-
// resolve. Only a
|
|
774
|
+
// resolve. Only a cloud-only name (a backup, the Jev profile) reaches
|
|
777
775
|
// this branch with a stub (the default keys always have a body), and it
|
|
778
776
|
// reaches it on the columns where those profiles do not exist. Resolving
|
|
779
777
|
// to the stub would list a profile with no provider or model and let a
|
|
780
778
|
// reference to it look valid, which is precisely what `LLMSchema` rejects
|
|
781
779
|
// on those columns.
|
|
782
|
-
if (
|
|
780
|
+
if (isCloudOnlyProfileKey(name) && workspace?.source === "managed") {
|
|
783
781
|
return undefined;
|
|
784
782
|
}
|
|
785
783
|
return workspace;
|
|
@@ -865,14 +863,14 @@ function defaultProfileBodyForProvider(
|
|
|
865
863
|
defaultBlob: LLMDefaultConfig | undefined,
|
|
866
864
|
): ProfileEntry | undefined {
|
|
867
865
|
if (!isDefaultProfileKey(name)) {
|
|
868
|
-
// Backup profiles and the
|
|
866
|
+
// Backup profiles and the cloud Jev profile exist on the cloud
|
|
869
867
|
// (`cadet`) column only: under a BYOK or chatgpt default provider the
|
|
870
868
|
// primaries carry no `fallbackProfile` pointers, and neither may
|
|
871
869
|
// materialize, since the install may hold no credential for their
|
|
872
|
-
// provider. A blob with no usable selection resolves to the
|
|
870
|
+
// provider. A blob with no usable selection resolves to the cloud
|
|
873
871
|
// column, so it keeps them.
|
|
874
872
|
if (
|
|
875
|
-
|
|
873
|
+
isCloudOnlyProfileKey(name) &&
|
|
876
874
|
!backupProfilesResolveUnderDefaultProvider(defaultBlob)
|
|
877
875
|
) {
|
|
878
876
|
return undefined;
|
|
@@ -882,7 +880,7 @@ function defaultProfileBodyForProvider(
|
|
|
882
880
|
// The blob's `provider` is the loose provider set: only a value the intent
|
|
883
881
|
// × provider matrix can implement selects a column; anything else — no
|
|
884
882
|
// provider, a keyless ollama, a user-endpoint openai-compatible — resolves
|
|
885
|
-
// to the
|
|
883
|
+
// to the cloud column, which is what the frozen bodies carry.
|
|
886
884
|
const provider = defaultBlob?.provider;
|
|
887
885
|
if (provider == null || !isDefaultProviderChoice(provider)) {
|
|
888
886
|
return CODE_DEFAULT_PROFILE_ENTRIES[name];
|
|
@@ -925,12 +923,12 @@ function clampMaxTokensToModelCap(body: ProfileEntry): ProfileEntry {
|
|
|
925
923
|
* record all runtime readers of `llm.profiles` should consume; the raw
|
|
926
924
|
* workspace record is a write-path concern.
|
|
927
925
|
*
|
|
928
|
-
* Deliberately provider-agnostic: it lists the
|
|
926
|
+
* Deliberately provider-agnostic: it lists the cloud backups whatever
|
|
929
927
|
* `llm.default` says, because it resolves names against the passed
|
|
930
928
|
* catalog alone and never reads config. Internal resolution and reference
|
|
931
929
|
* validation use `getEffectiveProfilesForProvider`; user-facing selectors use
|
|
932
930
|
* `getUserSelectableProfilesForProvider`, which additionally removes backups
|
|
933
|
-
* from the
|
|
931
|
+
* from the cloud column. Keeping those views separate lets automatic
|
|
934
932
|
* fallback resolve an internal route without offering it as a direct choice.
|
|
935
933
|
*/
|
|
936
934
|
export function getEffectiveProfiles(
|
|
@@ -976,7 +974,7 @@ export function getEffectiveProfilesForProvider(
|
|
|
976
974
|
continue;
|
|
977
975
|
}
|
|
978
976
|
// Nothing resolved, so the name must not survive from the workspace
|
|
979
|
-
// spread above: a backup carrying only a
|
|
977
|
+
// spread above: a backup carrying only a cloud stub on a column that
|
|
980
978
|
// has no backups would otherwise be listed as an available profile with
|
|
981
979
|
// no provider or model behind it.
|
|
982
980
|
delete effective[name];
|
|
@@ -27,10 +27,10 @@ export const DEFAULT_PROFILE_KEYS = [
|
|
|
27
27
|
export type DefaultProfileKey = (typeof DEFAULT_PROFILE_KEYS)[number];
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
|
-
* Stable keys of the
|
|
30
|
+
* Stable keys of the cloud backup profiles, one per default profile.
|
|
31
31
|
* Deliberately NOT part of `DEFAULT_PROFILE_KEYS`: that array drives picker
|
|
32
32
|
* order and the intent x provider matrix, while backups are companions of
|
|
33
|
-
* the
|
|
33
|
+
* the cloud (`cadet`) column only. Each backup pins a model at a
|
|
34
34
|
* different upstream provider than its primary, so an outage at the
|
|
35
35
|
* primary's provider can be served by re-sending on the backup (see the
|
|
36
36
|
* `fallbackProfile` field on `ProfileEntry`).
|
|
@@ -68,9 +68,9 @@ export function isBackupProfileKey(value: string): value is BackupProfileKey {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
/**
|
|
71
|
-
*
|
|
71
|
+
* Cloud profile for the TypeSafe decision model (Jev). Deliberately NOT
|
|
72
72
|
* part of `DEFAULT_PROFILE_KEYS`: it has no BYOK column, because the
|
|
73
|
-
* platform serves Jev only through the
|
|
73
|
+
* platform serves Jev only through the cloud route, and its model returns
|
|
74
74
|
* structured answers rather than chat text, so it can never be the active
|
|
75
75
|
* or conversation profile. It exists as a pin target for the call sites
|
|
76
76
|
* that consume a yes/no verdict (the voice judges, the memory selector).
|
|
@@ -78,12 +78,12 @@ export function isBackupProfileKey(value: string): value is BackupProfileKey {
|
|
|
78
78
|
export const JEV_MANAGED_PROFILE_KEY = "jev-managed";
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
|
-
*
|
|
81
|
+
* Cloud profile that picks one of the default profiles per message: the
|
|
82
82
|
* agent loop asks Jev which default fits the user's latest message and runs
|
|
83
83
|
* the turn on that profile (`daemon/auto-profile-router.ts`). Its own body
|
|
84
|
-
* is the
|
|
84
|
+
* is the cloud Balanced body, so any path that dispatches the name
|
|
85
85
|
* directly, or a turn on which the router is unavailable, runs Balanced.
|
|
86
|
-
* Managed column only, because the router depends on the
|
|
86
|
+
* Managed column only, because the router depends on the cloud Jev route,
|
|
87
87
|
* and flag-gated: it exists only while the `auto-profile` feature flag has
|
|
88
88
|
* reconciled it into the workspace (see `sync-gated-profiles.ts`).
|
|
89
89
|
* Deliberately NOT part of `DEFAULT_PROFILE_KEYS`: it is a selection over
|
|
@@ -108,7 +108,7 @@ export const JEV_MANAGED_PROFILE_CALL_SITES = [
|
|
|
108
108
|
] as const;
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
|
-
* Keys whose profile exists on the
|
|
111
|
+
* Keys whose profile exists on the cloud (`cadet`) column only: the
|
|
112
112
|
* backups, the Jev profile, and the Auto profile. Under a BYOK or ChatGPT
|
|
113
113
|
* default provider these names have no body to resolve to.
|
|
114
114
|
*/
|
|
@@ -118,7 +118,7 @@ export const MANAGED_ONLY_PROFILE_KEYS = [
|
|
|
118
118
|
AUTO_PROFILE_KEY,
|
|
119
119
|
] as const;
|
|
120
120
|
|
|
121
|
-
export function
|
|
121
|
+
export function isCloudOnlyProfileKey(value: string): boolean {
|
|
122
122
|
return (MANAGED_ONLY_PROFILE_KEYS as readonly string[]).includes(value);
|
|
123
123
|
}
|
|
124
124
|
|
|
@@ -132,7 +132,7 @@ export function isManagedOnlyProfileKey(value: string): boolean {
|
|
|
132
132
|
export const OS_BETA_PROFILE_KEY = "os-beta";
|
|
133
133
|
|
|
134
134
|
/**
|
|
135
|
-
*
|
|
135
|
+
* Cloud profiles that resolve only while a workspace entry exists, because
|
|
136
136
|
* a feature flag reconciles that entry in and out. Never always-valid
|
|
137
137
|
* reference targets: a reference to one is valid only with the entry present.
|
|
138
138
|
*/
|
|
@@ -147,7 +147,7 @@ export function isFlagGatedProfileKey(value: string): boolean {
|
|
|
147
147
|
|
|
148
148
|
/**
|
|
149
149
|
* The named columns of the intent × provider matrix. `cadet` is the
|
|
150
|
-
*
|
|
150
|
+
* cloud column (routed through the single `cadet` connection to
|
|
151
151
|
* an underlying provider per profile) and `chatgpt` is the
|
|
152
152
|
* ChatGPT-subscription column (routed through the `chatgpt-subscription`
|
|
153
153
|
* connection to the Codex endpoint); the rest are BYOK columns whose
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CADET_CLOUD_CONNECTION_NAME } from "../providers/cadet-model-routing.js";
|
|
2
2
|
import { CHATGPT_SUBSCRIPTION_CONNECTION_NAME } from "../providers/inference/auth.js";
|
|
3
3
|
import {
|
|
4
4
|
isDefaultProviderChoice,
|
|
@@ -23,7 +23,7 @@ export function resolveDefaultConnectionName(
|
|
|
23
23
|
return dp.provider_connection;
|
|
24
24
|
}
|
|
25
25
|
if (provider === "cadet") {
|
|
26
|
-
return
|
|
26
|
+
return CADET_CLOUD_CONNECTION_NAME;
|
|
27
27
|
}
|
|
28
28
|
if (provider === "chatgpt") {
|
|
29
29
|
return CHATGPT_SUBSCRIPTION_CONNECTION_NAME;
|
|
@@ -41,7 +41,7 @@ const StoredDefaultBlobSchema = z
|
|
|
41
41
|
* `setDefaultProvider` persists into the blob. Kept separate from the stored
|
|
42
42
|
* blob shape on purpose — the route rejects anything the matrix cannot
|
|
43
43
|
* implement (a partial blob tolerates it and clamps at read), so a bogus
|
|
44
|
-
* provider fails loudly here instead of silently resolving to the
|
|
44
|
+
* provider fails loudly here instead of silently resolving to the cloud
|
|
45
45
|
* column.
|
|
46
46
|
*/
|
|
47
47
|
export const DefaultProviderSelectionSchema = z.object({
|
|
@@ -54,35 +54,37 @@ export function getIsContainerized(): boolean {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
58
|
-
* When true, indicates the assistant is running as a
|
|
59
|
-
* remote instance. Controls
|
|
60
|
-
* callback registration and blocking `
|
|
57
|
+
* IS_CLOUD — boolean, default: false
|
|
58
|
+
* When true, indicates the assistant is running as a Cadet Cloud-managed
|
|
59
|
+
* remote instance. Controls cloud-specific behaviors like webhook
|
|
60
|
+
* callback registration and blocking `cloud disconnect`.
|
|
61
61
|
*
|
|
62
62
|
* Separate from IS_CONTAINERIZED because local Docker assistants are
|
|
63
63
|
* containerized (need CES sidecar, gateway trust store, etc.) but are
|
|
64
|
-
* not
|
|
64
|
+
* not cloud-managed. Reads the legacy IS_CLOUD name as a fallback so
|
|
65
|
+
* deployments provisioned before the rename keep working.
|
|
65
66
|
*/
|
|
66
|
-
export function
|
|
67
|
-
return flag("
|
|
67
|
+
export function getIsCloud(): boolean {
|
|
68
|
+
return flag("IS_CLOUD") || flag("IS_CLOUD");
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
/**
|
|
71
|
-
* Whether this assistant is running as a
|
|
72
|
+
* Whether this assistant is running as a Cadet Cloud-managed remote instance.
|
|
72
73
|
*/
|
|
73
|
-
export function
|
|
74
|
-
return
|
|
74
|
+
export function isCloudRemote(): boolean {
|
|
75
|
+
return getIsCloud();
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
/**
|
|
78
|
-
*
|
|
79
|
-
* When true, all outbound
|
|
80
|
-
* The daemon, gateway, and web UI each no-op
|
|
81
|
-
* debug log. Has no effect when
|
|
82
|
-
* instances always connect to the
|
|
79
|
+
* CADET_DISABLE_CLOUD — boolean, default: false
|
|
80
|
+
* When true, all outbound cloud API calls in local mode are suppressed.
|
|
81
|
+
* The daemon, gateway, and web UI each no-op cloud requests with a
|
|
82
|
+
* debug log. Has no effect when IS_CLOUD is true (cloud-managed
|
|
83
|
+
* instances always connect to the cloud). Reads the legacy
|
|
84
|
+
* CADET_DISABLE_CLOUD name as a fallback for older deployments.
|
|
83
85
|
*/
|
|
84
|
-
export function
|
|
85
|
-
return flag("
|
|
86
|
+
export function getDisableCloud(): boolean {
|
|
87
|
+
return flag("CADET_DISABLE_CLOUD") || flag("CADET_DISABLE_CLOUD");
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
/**
|
|
@@ -96,14 +98,14 @@ export function getDeviceIdOverride(): string | undefined {
|
|
|
96
98
|
}
|
|
97
99
|
|
|
98
100
|
// ── Profiler env vars ───────────────────────────────────────────────────
|
|
99
|
-
// These are injected by the
|
|
101
|
+
// These are injected by the cloud when running a cloud assistant in
|
|
100
102
|
// profiler mode. The runtime uses them to locate, scope, and budget-limit
|
|
101
103
|
// profiler output on the workspace volume.
|
|
102
104
|
|
|
103
105
|
/**
|
|
104
106
|
* CADET_CPU_LIMIT — string (K8s resource format), default: undefined
|
|
105
107
|
* The CPU resource limit for the container (e.g. "2000m", "2").
|
|
106
|
-
* Set by the
|
|
108
|
+
* Set by the cloud StatefulSet template to the exact K8s CPU limit.
|
|
107
109
|
* Used by the health endpoint to report accurate CPU core count inside
|
|
108
110
|
* gVisor sandboxes where cgroup files may expose the host node's CPUs.
|
|
109
111
|
*/
|
|
@@ -187,7 +189,7 @@ const KNOWN_CADET_VARS = new Set([
|
|
|
187
189
|
"CADET_DESKTOP_APP",
|
|
188
190
|
"CADET_DEV",
|
|
189
191
|
"CADET_DEVICE_ID",
|
|
190
|
-
"
|
|
192
|
+
"CADET_DISABLE_CLOUD",
|
|
191
193
|
"CADET_DOCS_BASE_URL",
|
|
192
194
|
"CADET_ENVIRONMENT",
|
|
193
195
|
"CADET_HATCHED_BY",
|
|
@@ -198,7 +200,7 @@ const KNOWN_CADET_VARS = new Set([
|
|
|
198
200
|
"CADET_MARKETING_URL",
|
|
199
201
|
"CADET_MIGRATION_EXPORT_ALLOWED_HOSTS",
|
|
200
202
|
"CADET_MIGRATION_IMPORT_ALLOWED_HOSTS",
|
|
201
|
-
"
|
|
203
|
+
"CADET_CLOUD_URL",
|
|
202
204
|
"CADET_PROFILER_MAX_BYTES",
|
|
203
205
|
"CADET_PROFILER_MAX_RUNS",
|
|
204
206
|
"CADET_PROFILER_MIN_FREE_MB",
|
package/src/config/env.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import { getLogger } from "../util/logger.js";
|
|
17
|
-
import { checkUnrecognizedEnvVars,
|
|
17
|
+
import { checkUnrecognizedEnvVars, getIsCloud } from "./env-registry.js";
|
|
18
18
|
import { getConfig } from "./loader.js";
|
|
19
19
|
|
|
20
20
|
const log = getLogger("env");
|
|
@@ -91,25 +91,25 @@ export function getRuntimeHttpHost(): string {
|
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* True when HTTP API auth is disabled via DISABLE_HTTP_AUTH=true.
|
|
94
|
-
* Used in
|
|
94
|
+
* Used in cloud-managed deployments where the cloud handles auth.
|
|
95
95
|
*/
|
|
96
96
|
export function isHttpAuthDisabled(): boolean {
|
|
97
97
|
return str("DISABLE_HTTP_AUTH")?.toLowerCase() === "true";
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
|
-
* True when the
|
|
102
|
-
* and
|
|
101
|
+
* True when the cloud-managed auth bypass is in effect: DISABLE_HTTP_AUTH
|
|
102
|
+
* and IS_CLOUD both set, the pair a vembda pod runs with.
|
|
103
103
|
*
|
|
104
104
|
* The narrow reading of the bypass, for authorization decisions that must not
|
|
105
|
-
* turn off on a host the
|
|
106
|
-
* is a dev flag whose whole meaning is "the
|
|
105
|
+
* turn off on a host the cloud does not manage. `DISABLE_HTTP_AUTH` alone
|
|
106
|
+
* is a dev flag whose whole meaning is "the cloud handles auth", so a leak
|
|
107
107
|
* of it onto another host must not also surrender a route's policy or a
|
|
108
|
-
* grant's binding. Mirrors `
|
|
108
|
+
* grant's binding. Mirrors `isCloudAuthBypassActive` in
|
|
109
109
|
* `gateway/src/http/middleware/auth.ts`.
|
|
110
110
|
*/
|
|
111
|
-
export function
|
|
112
|
-
return isHttpAuthDisabled() &&
|
|
111
|
+
export function isCloudAuthBypassActive(): boolean {
|
|
112
|
+
return isHttpAuthDisabled() && getIsCloud();
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
// ── Qdrant ───────────────────────────────────────────────────────────────────
|
|
@@ -134,25 +134,19 @@ export function getOllamaBaseUrlEnv(): string | undefined {
|
|
|
134
134
|
|
|
135
135
|
// ── Platform ─────────────────────────────────────────────────────────────────
|
|
136
136
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
export function setPlatformBaseUrl(value: string | undefined): void {
|
|
140
|
-
_platformBaseUrlOverride = value;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export function getPlatformBaseUrl(): string {
|
|
137
|
+
export function getCloudBaseUrl(): string {
|
|
144
138
|
let configUrl: string | undefined;
|
|
145
139
|
try {
|
|
146
|
-
const val = getConfig().
|
|
140
|
+
const val = getConfig().cloud.baseUrl;
|
|
147
141
|
if (val) {
|
|
148
142
|
configUrl = val;
|
|
149
143
|
}
|
|
150
144
|
} catch {
|
|
151
145
|
// Config not yet available (early bootstrap) — fall through
|
|
152
146
|
}
|
|
153
|
-
// Resolve the default
|
|
147
|
+
// Resolve the default cloud URL from CADET_ENVIRONMENT.
|
|
154
148
|
// `production`, `staging`, and `test` map to their respective hosted
|
|
155
|
-
// platforms, `local` points at a developer's locally running
|
|
149
|
+
// platforms, `local` points at a developer's locally running cloud,
|
|
156
150
|
// and everything else (including unset) falls back to dev-platform.
|
|
157
151
|
const env = str("CADET_ENVIRONMENT")?.trim();
|
|
158
152
|
let defaultUrl: string;
|
|
@@ -167,12 +161,7 @@ export function getPlatformBaseUrl(): string {
|
|
|
167
161
|
} else {
|
|
168
162
|
defaultUrl = "https://dev-cloud.mycadet.ai";
|
|
169
163
|
}
|
|
170
|
-
return (
|
|
171
|
-
configUrl ||
|
|
172
|
-
str("CADET_PLATFORM_URL") ||
|
|
173
|
-
_platformBaseUrlOverride ||
|
|
174
|
-
defaultUrl
|
|
175
|
-
);
|
|
164
|
+
return configUrl || str("CADET_CLOUD_URL") || defaultUrl;
|
|
176
165
|
}
|
|
177
166
|
|
|
178
167
|
/**
|
|
@@ -182,7 +171,7 @@ export function getPlatformBaseUrl(): string {
|
|
|
182
171
|
*/
|
|
183
172
|
export function getApexDomain(): string {
|
|
184
173
|
try {
|
|
185
|
-
const url =
|
|
174
|
+
const url = getCloudBaseUrl();
|
|
186
175
|
const host = new URL(url).hostname;
|
|
187
176
|
|
|
188
177
|
if (host.endsWith("cloud.mycadet.ai")) {
|
|
@@ -207,7 +196,7 @@ export function getApexDomain(): string {
|
|
|
207
196
|
export function getAssistantDomain(): string {
|
|
208
197
|
const subdomain = (() => {
|
|
209
198
|
try {
|
|
210
|
-
return getConfig().
|
|
199
|
+
return getConfig().cloud?.subdomain;
|
|
211
200
|
} catch {
|
|
212
201
|
return undefined;
|
|
213
202
|
}
|
|
@@ -219,51 +208,49 @@ export function getAssistantDomain(): string {
|
|
|
219
208
|
return apex;
|
|
220
209
|
}
|
|
221
210
|
|
|
222
|
-
let
|
|
211
|
+
let _cloudAssistantIdOverride: string | undefined;
|
|
223
212
|
|
|
224
|
-
export function
|
|
225
|
-
|
|
213
|
+
export function setCloudAssistantId(value: string | undefined): void {
|
|
214
|
+
_cloudAssistantIdOverride = value;
|
|
226
215
|
}
|
|
227
216
|
|
|
228
217
|
/**
|
|
229
|
-
* Platform assistant ID — UUID of this assistant on the
|
|
218
|
+
* Platform assistant ID — UUID of this assistant on the cloud.
|
|
230
219
|
*
|
|
231
220
|
* Resolved from the in-memory override (populated by providers-setup
|
|
232
|
-
* rehydration via
|
|
221
|
+
* rehydration via cloud validate, or by secret-routes when the
|
|
233
222
|
* platform pushes the value).
|
|
234
223
|
*/
|
|
235
|
-
export function
|
|
236
|
-
return
|
|
224
|
+
export function getCloudAssistantId(): string {
|
|
225
|
+
return _cloudAssistantIdOverride ?? "";
|
|
237
226
|
}
|
|
238
227
|
|
|
239
|
-
let
|
|
228
|
+
let _cloudOrganizationIdOverride: string | undefined;
|
|
240
229
|
|
|
241
|
-
export function
|
|
242
|
-
|
|
230
|
+
export function setCloudOrganizationId(value: string | undefined): void {
|
|
231
|
+
_cloudOrganizationIdOverride = value;
|
|
243
232
|
}
|
|
244
233
|
|
|
245
234
|
/**
|
|
246
|
-
*
|
|
235
|
+
* CLOUD_ORGANIZATION_ID — UUID of the organization this assistant belongs to.
|
|
247
236
|
* Used for platform tagging and API calls.
|
|
248
237
|
*/
|
|
249
|
-
export function
|
|
250
|
-
return (
|
|
251
|
-
str("PLATFORM_ORGANIZATION_ID") ?? _platformOrganizationIdOverride ?? ""
|
|
252
|
-
);
|
|
238
|
+
export function getCloudOrganizationId(): string {
|
|
239
|
+
return str("CLOUD_ORGANIZATION_ID") ?? _cloudOrganizationIdOverride ?? "";
|
|
253
240
|
}
|
|
254
241
|
|
|
255
242
|
let _platformUserIdOverride: string | undefined;
|
|
256
243
|
|
|
257
|
-
export function
|
|
244
|
+
export function setCloudUserId(value: string | undefined): void {
|
|
258
245
|
_platformUserIdOverride = value;
|
|
259
246
|
}
|
|
260
247
|
|
|
261
248
|
/**
|
|
262
|
-
*
|
|
249
|
+
* CLOUD_USER_ID — UUID of the user who owns this assistant.
|
|
263
250
|
* Used for telemetry and platform API calls.
|
|
264
251
|
*/
|
|
265
|
-
export function
|
|
266
|
-
return str("
|
|
252
|
+
export function getCloudUserId(): string {
|
|
253
|
+
return str("CLOUD_USER_ID") ?? _platformUserIdOverride ?? "";
|
|
267
254
|
}
|
|
268
255
|
|
|
269
256
|
// ── Startup validation ──────────────────────────────────────────────────────
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"scope": "client",
|
|
83
83
|
"key": "multi-platform-assistant",
|
|
84
84
|
"label": "Multi-Platform Assistant Switcher",
|
|
85
|
-
"description": "Enable the menu-bar assistant switcher for managing multiple
|
|
85
|
+
"description": "Enable the menu-bar assistant switcher for managing multiple cloud-hosted assistants (new/switch/retire)",
|
|
86
86
|
"defaultEnabled": false
|
|
87
87
|
},
|
|
88
88
|
{
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"scope": "client",
|
|
139
139
|
"key": "fork-from-message",
|
|
140
140
|
"label": "Internal Thread Actions (legacy key)",
|
|
141
|
-
"description": "Legacy key for `internal-thread-actions`. The client grants the internal thread affordances when either key is enabled, so the
|
|
141
|
+
"description": "Legacy key for `internal-thread-actions`. The client grants the internal thread affordances when either key is enabled, so the cloud may serve the gate under either name. Declared here so the flag mapper keeps the value instead of dropping it as undeclared.",
|
|
142
142
|
"defaultEnabled": false
|
|
143
143
|
},
|
|
144
144
|
{
|
|
@@ -378,7 +378,7 @@
|
|
|
378
378
|
"scope": "client",
|
|
379
379
|
"key": "push-avatar-sender",
|
|
380
380
|
"label": "Push Avatar Sender",
|
|
381
|
-
"description": "Native notifications show the assistant's avatar as the icon with the assistant's name on line one. Same key the
|
|
381
|
+
"description": "Native notifications show the assistant's avatar as the icon with the assistant's name on line one. Same key the cloud reads for APNs/FCM sender blocks.",
|
|
382
382
|
"defaultEnabled": false
|
|
383
383
|
},
|
|
384
384
|
{
|
|
@@ -450,7 +450,7 @@
|
|
|
450
450
|
"scope": "assistant",
|
|
451
451
|
"key": "tunnel-webhooks",
|
|
452
452
|
"label": "Tunnel Webhooks",
|
|
453
|
-
"description": "
|
|
453
|
+
"description": "Cloud pods resolve webhook callback URLs from the Tunnel-published ingress URL instead of registering platform callback routes. Falls back to platform callback registration while no tunnel URL is published.",
|
|
454
454
|
"defaultEnabled": false
|
|
455
455
|
},
|
|
456
456
|
{
|
|
@@ -483,7 +483,7 @@
|
|
|
483
483
|
"scope": "assistant",
|
|
484
484
|
"key": "assistant-desktop",
|
|
485
485
|
"label": "Virtual desktop",
|
|
486
|
-
"description": "Streams an interactive virtual desktop from a
|
|
486
|
+
"description": "Streams an interactive virtual desktop from a cloud-hosted, containerized assistant over /v1/desktop/stream. Requires platform hosting; self-hosted assistants are excluded. Off: the virtual desktop is hidden. On: the chat header offers its viewer and controls.",
|
|
487
487
|
"defaultEnabled": false
|
|
488
488
|
},
|
|
489
489
|
{
|