@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
|
@@ -4,26 +4,26 @@ import { join } from "node:path";
|
|
|
4
4
|
import type { WorkspaceMigration } from "./types.js";
|
|
5
5
|
|
|
6
6
|
// Bring an existing workspace's managed inference config in line with the
|
|
7
|
-
// current code templates: the
|
|
8
|
-
// (Fireworks), and the default advisor points at the
|
|
7
|
+
// current code templates: the cloud `quality-optimized` profile runs GLM 5.2
|
|
8
|
+
// (Fireworks), and the default advisor points at the cloud `frontier` (Opus)
|
|
9
9
|
// profile.
|
|
10
10
|
//
|
|
11
|
-
// A migration is needed even though the seeder reconciles
|
|
11
|
+
// A migration is needed even though the seeder reconciles cloud-profile
|
|
12
12
|
// content from the templates on every boot, because the seeder only consults a
|
|
13
13
|
// template when it reseeds that profile. Off-platform installs reseed every
|
|
14
|
-
// boot, but a
|
|
14
|
+
// boot, but a cloud workspace keeps the profile it was hatched with (the
|
|
15
15
|
// seeder skips overlay-supplied profiles, and the overlay is consumed once). A
|
|
16
16
|
// platform workspace whose `quality-optimized` profile resolves to Opus
|
|
17
17
|
// therefore relies on this migration to move it to GLM 5.2.
|
|
18
18
|
//
|
|
19
|
-
// Scope: only the
|
|
19
|
+
// Scope: only the cloud `quality-optimized` profile is rewritten — the
|
|
20
20
|
// user-owned `custom-quality-optimized` copy is theirs to manage, and an
|
|
21
21
|
// explicitly user-owned `quality-optimized` is left alone. A profile matches
|
|
22
22
|
// only when its model is an Opus id (the OpenRouter-prefixed id included);
|
|
23
23
|
// absent `source` on this canonical name means legacy managed (migration 052
|
|
24
24
|
// seeds it source-less), so it counts as ours.
|
|
25
25
|
//
|
|
26
|
-
// The
|
|
26
|
+
// The cloud `frontier` profile is materialized by the boot seeder (it is a
|
|
27
27
|
// managed template), so this migration only points the default advisor at it,
|
|
28
28
|
// and only when the workspace still carries the seeded `quality-optimized`
|
|
29
29
|
// default and no user-owned `frontier` profile exists.
|
|
@@ -38,7 +38,7 @@ const GLM_52_MODEL = "accounts/fireworks/models/glm-5p2";
|
|
|
38
38
|
export const swapQualityProfileToGlm52Migration: WorkspaceMigration = {
|
|
39
39
|
id: "109-swap-quality-profile-to-glm-5p2",
|
|
40
40
|
description:
|
|
41
|
-
"Set the
|
|
41
|
+
"Set the cloud quality-optimized profile to GLM 5.2 and point the default advisor at frontier",
|
|
42
42
|
run(workspaceDir: string): void {
|
|
43
43
|
const configPath = join(workspaceDir, "config.json");
|
|
44
44
|
if (!existsSync(configPath)) {
|
|
@@ -66,7 +66,7 @@ export const swapQualityProfileToGlm52Migration: WorkspaceMigration = {
|
|
|
66
66
|
const profiles = readObject(llm.profiles);
|
|
67
67
|
if (profiles !== null) {
|
|
68
68
|
const profile = readObject(profiles["quality-optimized"]);
|
|
69
|
-
// Only the
|
|
69
|
+
// Only the cloud profile is ours to migrate. `quality-optimized` is a
|
|
70
70
|
// canonical name reserved since migration 052, which seeded it source-less,
|
|
71
71
|
// so absent `source` means legacy managed — treat it as ours. Only an
|
|
72
72
|
// explicit `source: "user"` (a profile the user took ownership of) is left
|
|
@@ -90,15 +90,15 @@ export const swapQualityProfileToGlm52Migration: WorkspaceMigration = {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
// Move the default advisor pointer to the new strongest
|
|
93
|
+
// Move the default advisor pointer to the new strongest cloud profile.
|
|
94
94
|
// Only the seeded default (`quality-optimized`) is rewritten; a workspace
|
|
95
95
|
// that picked its own advisor profile keeps it. Skip the rewrite when a
|
|
96
96
|
// user already owns a profile named `frontier`: the seeder leaves that
|
|
97
|
-
// user profile in place rather than materializing the
|
|
97
|
+
// user profile in place rather than materializing the cloud Opus one, so
|
|
98
98
|
// pointing the advisor at it would consult an arbitrary user model. Leaving
|
|
99
99
|
// the advisor on `quality-optimized` (now managed GLM 5.2) is the safe
|
|
100
100
|
// fallback in that collision case. Any `frontier` present at migration time
|
|
101
|
-
// is user-owned (the
|
|
101
|
+
// is user-owned (the cloud one is materialized later, at seed time);
|
|
102
102
|
// treat anything not explicitly `source: "managed"` as theirs, since the
|
|
103
103
|
// settings UI saves custom profiles without a `source`.
|
|
104
104
|
const existingFrontier = readObject(profiles?.frontier);
|
|
@@ -3,18 +3,18 @@ import { join } from "node:path";
|
|
|
3
3
|
|
|
4
4
|
import type { WorkspaceMigration } from "./types.js";
|
|
5
5
|
|
|
6
|
-
// Move the
|
|
6
|
+
// Move the cloud `balanced` profile from Fireworks MiniMax M3 to Together AI.
|
|
7
7
|
//
|
|
8
8
|
// Together serves MiniMax M3 with correct forced-`tool_choice` and object-typed
|
|
9
9
|
// tool-arg handling; the Fireworks copy collapses object args to `{}`. The boot
|
|
10
|
-
// seeder reconciles
|
|
11
|
-
// it reseeds a profile: off-
|
|
10
|
+
// seeder reconciles cloud-profile content from the templates, but only when
|
|
11
|
+
// it reseeds a profile: off-cloud installs reseed every boot, while a
|
|
12
12
|
// platform workspace keeps the profile it was hatched with (the seeder skips
|
|
13
13
|
// overlay-supplied profiles, and the overlay is consumed once). A platform
|
|
14
14
|
// workspace whose `balanced` profile still resolves to Fireworks MiniMax M3
|
|
15
15
|
// therefore relies on this migration to move it to Together.
|
|
16
16
|
//
|
|
17
|
-
// Scope: only the
|
|
17
|
+
// Scope: only the cloud `balanced` profile still on the Fireworks MiniMax M3
|
|
18
18
|
// default is rewritten. A user-owned `balanced` (`source: "user"`) or one whose
|
|
19
19
|
// model the user changed is left alone. Migration 052 seeds `balanced`
|
|
20
20
|
// source-less, so absent `source` means legacy managed — treat it as ours. The
|
|
@@ -27,7 +27,7 @@ const NEW_MODEL = "MiniMaxAI/MiniMax-M3";
|
|
|
27
27
|
export const flipBalancedProfileToTogetherMigration: WorkspaceMigration = {
|
|
28
28
|
id: "110-flip-balanced-profile-to-together",
|
|
29
29
|
description:
|
|
30
|
-
"Move the
|
|
30
|
+
"Move the cloud balanced profile from Fireworks to Together AI (MiniMax M3)",
|
|
31
31
|
run(workspaceDir: string): void {
|
|
32
32
|
const configPath = join(workspaceDir, "config.json");
|
|
33
33
|
if (!existsSync(configPath)) {
|
|
@@ -56,7 +56,7 @@ export const flipBalancedProfileToTogetherMigration: WorkspaceMigration = {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const profile = readObject(profiles["balanced"]);
|
|
59
|
-
// Only the
|
|
59
|
+
// Only the cloud profile still on the Fireworks MiniMax M3 default is
|
|
60
60
|
// ours to migrate. `balanced` is seeded source-less by migration 052, so
|
|
61
61
|
// absent `source` means legacy managed; only an explicit `source: "user"`
|
|
62
62
|
// is left untouched. Matching on the old model id leaves a user-retargeted
|
|
@@ -5,18 +5,18 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
5
5
|
|
|
6
6
|
// Bring an existing workspace's managed `balanced` profile in line with the
|
|
7
7
|
// current code template: it now runs GLM 5.2 (Fireworks) at effort `high`,
|
|
8
|
-
// taking over the model the
|
|
8
|
+
// taking over the model the cloud `quality-optimized` profile used to serve.
|
|
9
9
|
// The slot keeps its own `label` and `description`.
|
|
10
10
|
//
|
|
11
|
-
// A migration is needed even though the seeder reconciles
|
|
11
|
+
// A migration is needed even though the seeder reconciles cloud-profile
|
|
12
12
|
// content from the templates on every boot, because the seeder only consults a
|
|
13
13
|
// template when it reseeds that profile. Off-platform installs reseed every
|
|
14
|
-
// boot, but a
|
|
14
|
+
// boot, but a cloud workspace keeps the profile it was hatched with (the
|
|
15
15
|
// seeder skips overlay-supplied profiles, and the overlay is consumed once). A
|
|
16
16
|
// platform workspace whose `balanced` profile still resolves to Together
|
|
17
17
|
// MiniMax M3 therefore relies on this migration to move it to GLM 5.2.
|
|
18
18
|
//
|
|
19
|
-
// Scope: only the
|
|
19
|
+
// Scope: only the cloud `balanced` profile is rewritten. `balanced` is a
|
|
20
20
|
// canonical name reserved since migration 052, which seeded it source-less, so
|
|
21
21
|
// absent `source` means legacy managed — treat it as ours. An explicit
|
|
22
22
|
// `source: "user"` (a profile the user took ownership of) or one whose model the
|
|
@@ -43,7 +43,7 @@ const SEEDED_TOP_P = 0.95;
|
|
|
43
43
|
|
|
44
44
|
export const swapBalancedProfileToGlm52Migration: WorkspaceMigration = {
|
|
45
45
|
id: "113-swap-balanced-profile-to-glm-5p2",
|
|
46
|
-
description: "Set the
|
|
46
|
+
description: "Set the cloud balanced profile to GLM 5.2 (Fireworks)",
|
|
47
47
|
run(workspaceDir: string): void {
|
|
48
48
|
const configPath = join(workspaceDir, "config.json");
|
|
49
49
|
if (!existsSync(configPath)) {
|
|
@@ -9,15 +9,15 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
9
9
|
// managed `balanced` profile takes over the GLM 5.2 model `quality-optimized`
|
|
10
10
|
// used to serve (migration 113).
|
|
11
11
|
//
|
|
12
|
-
// A migration is needed even though the seeder reconciles
|
|
12
|
+
// A migration is needed even though the seeder reconciles cloud-profile
|
|
13
13
|
// content from the templates on every boot, because the seeder only consults a
|
|
14
14
|
// template when it reseeds that profile. Off-platform installs reseed every
|
|
15
|
-
// boot, but a
|
|
15
|
+
// boot, but a cloud workspace keeps the profile it was hatched with (the
|
|
16
16
|
// seeder skips overlay-supplied profiles, and the overlay is consumed once). A
|
|
17
17
|
// platform workspace whose `quality-optimized` profile resolves to GLM 5.2
|
|
18
18
|
// therefore relies on this migration to move it to Opus.
|
|
19
19
|
//
|
|
20
|
-
// Scope: only the
|
|
20
|
+
// Scope: only the cloud `quality-optimized` profile still on the GLM 5.2
|
|
21
21
|
// default is rewritten. `quality-optimized` is a canonical name reserved since
|
|
22
22
|
// migration 052, which seeded it source-less, so absent `source` means legacy
|
|
23
23
|
// managed — treat it as ours. An explicit `source: "user"` (a profile the user
|
|
@@ -32,7 +32,7 @@ const NEW_MODEL = "claude-opus-4-8";
|
|
|
32
32
|
export const swapQualityProfileToOpusMigration: WorkspaceMigration = {
|
|
33
33
|
id: "114-swap-quality-profile-to-opus",
|
|
34
34
|
description:
|
|
35
|
-
"Set the
|
|
35
|
+
"Set the cloud quality-optimized profile to Anthropic Opus (matching frontier)",
|
|
36
36
|
run(workspaceDir: string): void {
|
|
37
37
|
const configPath = join(workspaceDir, "config.json");
|
|
38
38
|
if (!existsSync(configPath)) {
|
|
@@ -3,11 +3,11 @@ import { join } from "node:path";
|
|
|
3
3
|
|
|
4
4
|
import type { WorkspaceMigration } from "./types.js";
|
|
5
5
|
|
|
6
|
-
// Reclaim the
|
|
7
|
-
// `anthropic-managed` — the same model and config as the
|
|
6
|
+
// Reclaim the cloud `frontier` inference profile. It ran Anthropic Opus on
|
|
7
|
+
// `anthropic-managed` — the same model and config as the cloud
|
|
8
8
|
// `quality-optimized` profile, which the seeder reconciles from the templates
|
|
9
9
|
// on every boot. The seeder never deletes a profile, so this migration deletes
|
|
10
|
-
// the
|
|
10
|
+
// the cloud `frontier` object and repoints every reference to it — its
|
|
11
11
|
// `profileOrder` entry, the `activeProfile` and `advisorProfile` selections,
|
|
12
12
|
// call-site `profile` overrides, and mix-profile arms — onto `quality-optimized`,
|
|
13
13
|
// which resolves to the same Opus route. A `frontier` profile that the user owns
|
|
@@ -19,7 +19,7 @@ const REPLACEMENT = "quality-optimized";
|
|
|
19
19
|
export const dropFrontierProfileMigration: WorkspaceMigration = {
|
|
20
20
|
id: "115-drop-frontier-profile",
|
|
21
21
|
description:
|
|
22
|
-
"Remove the
|
|
22
|
+
"Remove the cloud Frontier profile and repoint its references to Quality",
|
|
23
23
|
run(workspaceDir: string): void {
|
|
24
24
|
const configPath = join(workspaceDir, "config.json");
|
|
25
25
|
if (!existsSync(configPath)) {
|
|
@@ -46,7 +46,7 @@ export const dropFrontierProfileMigration: WorkspaceMigration = {
|
|
|
46
46
|
const frontier = profiles !== null ? readObject(profiles[FRONTIER]) : null;
|
|
47
47
|
|
|
48
48
|
// A user-owned profile that happens to use this name keeps everything,
|
|
49
|
-
// references included — only the
|
|
49
|
+
// references included — only the cloud profile is reclaimed.
|
|
50
50
|
if (frontier !== null && frontier.source !== "managed") {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
@@ -3,17 +3,17 @@ import { join } from "node:path";
|
|
|
3
3
|
|
|
4
4
|
import type { WorkspaceMigration } from "./types.js";
|
|
5
5
|
|
|
6
|
-
// Move the
|
|
6
|
+
// Move the cloud quality-optimized profile from Anthropic Opus 4.8 back to
|
|
7
7
|
// Claude Fable 5, reversing migration 114.
|
|
8
8
|
//
|
|
9
9
|
// The quality-optimized intent maps to claude-fable-5, but the intent map is
|
|
10
|
-
// only consulted when a profile is seeded: off-
|
|
11
|
-
// profiles on every boot, while on-
|
|
10
|
+
// only consulted when a profile is seeded: off-cloud installs reseed managed
|
|
11
|
+
// profiles on every boot, while on-cloud workspaces keep the profile they
|
|
12
12
|
// were hatched with — the seeder skips existing profiles there, and the hatch
|
|
13
13
|
// overlay is consumed exactly once. A platform workspace holding an Opus 4.8
|
|
14
14
|
// quality-optimized profile therefore keeps it until a migration rewrites it.
|
|
15
15
|
//
|
|
16
|
-
// Only the
|
|
16
|
+
// Only the cloud quality-optimized profile is touched — the user-owned
|
|
17
17
|
// custom-quality-optimized copy is theirs to manage. Within it, only a profile
|
|
18
18
|
// still on the Opus default is rewritten — matching by model value also covers
|
|
19
19
|
// the OpenRouter-prefixed id. A profile whose model the user changed to
|
|
@@ -30,7 +30,7 @@ const MODEL_SWAPS: Record<string, string> = {
|
|
|
30
30
|
export const swapQualityProfileToFableMigration: WorkspaceMigration = {
|
|
31
31
|
id: "123-swap-quality-profile-to-fable",
|
|
32
32
|
description:
|
|
33
|
-
"Move the
|
|
33
|
+
"Move the cloud quality-optimized profile from Anthropic Opus 4.8 to Claude Fable 5",
|
|
34
34
|
run(workspaceDir: string): void {
|
|
35
35
|
const configPath = join(workspaceDir, "config.json");
|
|
36
36
|
if (!existsSync(configPath)) {
|
|
@@ -7,10 +7,10 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
7
7
|
// `*-managed` connection onto the single provider-agnostic `cadet`
|
|
8
8
|
// connection.
|
|
9
9
|
//
|
|
10
|
-
// The five
|
|
10
|
+
// The five cloud connections (anthropic/openai/gemini/fireworks/together)
|
|
11
11
|
// are collapsed into one `cadet` row and are no longer seeded (a follow-up
|
|
12
12
|
// migration deletes the orphaned rows), so any config still pointing at them
|
|
13
|
-
// would fail to resolve.
|
|
13
|
+
// would fail to resolve. Cloud profiles also self-heal via the boot-time
|
|
14
14
|
// template reconcile, but `llm.default`, per-call-site overrides, and
|
|
15
15
|
// user-owned copies are rewritten here.
|
|
16
16
|
//
|
|
@@ -31,7 +31,7 @@ const CADET_CONNECTION = "cadet";
|
|
|
31
31
|
export const repointManagedConnectionsToCadetMigration: WorkspaceMigration = {
|
|
32
32
|
id: "125-repoint-managed-connections-to-cadet",
|
|
33
33
|
description:
|
|
34
|
-
"Repoint provider_connection from the per-provider *-
|
|
34
|
+
"Repoint provider_connection from the per-provider *-cloud connections to the single cadet connection",
|
|
35
35
|
run(workspaceDir: string): void {
|
|
36
36
|
const configPath = join(workspaceDir, "config.json");
|
|
37
37
|
if (!existsSync(configPath)) {
|
|
@@ -9,7 +9,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
9
9
|
// into workspace config, so this migration strips the previously seeded
|
|
10
10
|
// managed entries down to thin stubs holding only the workspace-owned
|
|
11
11
|
// overlay fields (`source`, plus `label`/`status`/`topP` by key-presence —
|
|
12
|
-
// the exact whitelist the effective view reads off a
|
|
12
|
+
// the exact whitelist the effective view reads off a cloud-source entry).
|
|
13
13
|
//
|
|
14
14
|
// A same-named entry the user explicitly owns (a non-managed `source` tag)
|
|
15
15
|
// is left fully intact — user profiles shadow the code defaults by design.
|
|
@@ -29,7 +29,7 @@ const DEFAULT_PROFILE_NAMES = [
|
|
|
29
29
|
|
|
30
30
|
const WORKSPACE_OWNED_FIELDS = ["label", "status", "topP"];
|
|
31
31
|
|
|
32
|
-
export const
|
|
32
|
+
export const stripCloudProfileBodiesMigration: WorkspaceMigration = {
|
|
33
33
|
id: "126-strip-managed-profile-bodies",
|
|
34
34
|
description:
|
|
35
35
|
"Strip seeded managed default-profile bodies down to thin workspace-owned stubs (content is code-owned)",
|
|
@@ -5,7 +5,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
5
5
|
|
|
6
6
|
// Backfill `llm.defaultProvider` for installs that never ran the hatch flow
|
|
7
7
|
// (which sets it directly) from deterministic, synchronously-readable
|
|
8
|
-
// signals: `
|
|
8
|
+
// signals: `IS_CLOUD`, a legacy `llm.default.provider`, or a personal
|
|
9
9
|
// `custom-*` profile's provider.
|
|
10
10
|
//
|
|
11
11
|
// Platform installs resolve to "cadet" before the legacy field is
|
|
@@ -16,7 +16,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
16
16
|
// value). This mirrors the hatch precedence, where platform outranks the
|
|
17
17
|
// BYOK provider signal.
|
|
18
18
|
//
|
|
19
|
-
// The same schema-default echo affects the off-
|
|
19
|
+
// The same schema-default echo affects the off-cloud legacy read:
|
|
20
20
|
// `LLMConfigBase.provider` defaults to "anthropic" and the first-launch
|
|
21
21
|
// seed persists it, so a bare "anthropic" is ambiguous. Disambiguating it
|
|
22
22
|
// requires an async vault read that this sync migration cannot perform, so
|
|
@@ -115,10 +115,10 @@ function isValidDefaultProvider(value: unknown): boolean {
|
|
|
115
115
|
);
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
// Frozen copy of config/env-registry.ts's
|
|
118
|
+
// Frozen copy of config/env-registry.ts's IS_CLOUD read — migration
|
|
119
119
|
// modules must not import from config modules (workspace/migrations/AGENTS.md).
|
|
120
120
|
function isPlatform(): boolean {
|
|
121
|
-
return process.env.
|
|
121
|
+
return process.env.IS_CLOUD === "true" || process.env.IS_CLOUD === "1";
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
function resolveProviderSignal(
|
|
@@ -6,11 +6,11 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
6
6
|
/**
|
|
7
7
|
* Fold `services.stt.mode` / `services.tts.mode` into the provider field.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* Cloud speech used to be a second axis: `mode: "managed"` routed to Cadet
|
|
10
10
|
* while `provider` held the untouched BYOK choice. Provider is now the only
|
|
11
|
-
* axis, with `"cadet"` meaning managed, so a
|
|
11
|
+
* axis, with `"cadet"` meaning managed, so a cloud service must be rewritten
|
|
12
12
|
* to `provider: "cadet"` before the new schema reads it — otherwise the
|
|
13
|
-
* lingering BYOK provider would be taken at face value and a
|
|
13
|
+
* lingering BYOK provider would be taken at face value and a cloud user would
|
|
14
14
|
* silently fall back to a provider they have no key for.
|
|
15
15
|
*
|
|
16
16
|
* Idempotent: a config with no `mode` key is left untouched.
|
|
@@ -88,7 +88,7 @@ export const speechModeToProviderMigration: WorkspaceMigration = {
|
|
|
88
88
|
continue;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
// What a
|
|
91
|
+
// What a cloud service had chosen for BYOK before is not
|
|
92
92
|
// recoverable — it was overwritten on the way up.
|
|
93
93
|
service.mode = service.provider === "cadet" ? "managed" : "your-own";
|
|
94
94
|
changed = true;
|
|
@@ -5,7 +5,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Strip the now-removed `services.web-fetch.mode` field from existing
|
|
8
|
-
* `config.json` files. Web fetch has no
|
|
8
|
+
* `config.json` files. Web fetch has no cloud proxy, so the field never
|
|
9
9
|
* governed anything — provider is the only axis — and the schema no longer
|
|
10
10
|
* recognizes it.
|
|
11
11
|
*
|
|
@@ -9,15 +9,15 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
9
9
|
* Configs written by older versions carry two axes: `mode: "managed"` routes
|
|
10
10
|
* search through the Cadet Cloud proxy while `provider` holds an
|
|
11
11
|
* untouched BYOK choice. The schema treats `provider` as the only axis, with
|
|
12
|
-
* `"cadet"` meaning managed, so this migration rewrites a
|
|
12
|
+
* `"cadet"` meaning managed, so this migration rewrites a cloud service to
|
|
13
13
|
* `provider: "cadet"` — otherwise the lingering BYOK provider would be taken
|
|
14
|
-
* at face value and a
|
|
14
|
+
* at face value and a cloud user would silently land on a provider they
|
|
15
15
|
* hold no key for.
|
|
16
16
|
*
|
|
17
17
|
* `inference-provider-native` is the exception: it is a distinct user-facing
|
|
18
|
-
* option (the inference model runs its own hosted search), so a
|
|
18
|
+
* option (the inference model runs its own hosted search), so a cloud
|
|
19
19
|
* service on that provider keeps it verbatim rather than becoming `cadet`.
|
|
20
|
-
* Its
|
|
20
|
+
* Its cloud fallback (cloud proxy when the model has no native search
|
|
21
21
|
* and no user key exists) works without a `mode`.
|
|
22
22
|
*
|
|
23
23
|
* Idempotent: a config with no `mode` key is left untouched.
|
|
@@ -91,8 +91,8 @@ export const webSearchModeToProviderMigration: WorkspaceMigration = {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
// Schemas that predate this migration accept provider "cadet" alongside
|
|
94
|
-
// mode "managed", so the
|
|
95
|
-
// provider a
|
|
94
|
+
// mode "managed", so the cloud pair round-trips exactly. The BYOK
|
|
95
|
+
// provider a cloud service holds before `run()` is not recoverable —
|
|
96
96
|
// `run()` overwrites it. Likewise `inference-provider-native` rolls back
|
|
97
97
|
// to `your-own`: dropping `mode` erases any pairing with `managed`.
|
|
98
98
|
service.mode = service.provider === "cadet" ? "managed" : "your-own";
|
|
@@ -11,7 +11,7 @@ const log = getLogger("migrations/133-collapse-provider-connections");
|
|
|
11
11
|
//
|
|
12
12
|
// - `provider_connection: "cadet"` entries become `provider: "cadet"` (the
|
|
13
13
|
// routing identity) and lose the connection field — dispatch derives the
|
|
14
|
-
//
|
|
14
|
+
// cloud upstream from the model.
|
|
15
15
|
// - `provider_connection: "chatgpt-subscription"` entries become
|
|
16
16
|
// `provider: "chatgpt"` when their model is a Codex subscription model.
|
|
17
17
|
// - The conventional `<provider>-personal` reference is dropped: the
|
|
@@ -178,7 +178,7 @@ export const collapseProviderConnectionsMigration: WorkspaceMigration = {
|
|
|
178
178
|
// the field is stripped on read, so any raw value is dead weight the
|
|
179
179
|
// resolver has never honored. It is deleted verbatim, never used as a
|
|
180
180
|
// rewrite signal: flipping a call site's provider from a schema-dead
|
|
181
|
-
// "cadet" string would move a BYOK call site onto the
|
|
181
|
+
// "cadet" string would move a BYOK call site onto the cloud route.
|
|
182
182
|
const callSites = readObject(llm.callSites);
|
|
183
183
|
if (callSites !== null) {
|
|
184
184
|
for (const key of Object.keys(callSites)) {
|
|
@@ -309,7 +309,7 @@ function rewriteEntry(entry: Record<string, unknown>, label: string): boolean {
|
|
|
309
309
|
* Decode an encoded `<managed-provider>/<model>` routing string to its native
|
|
310
310
|
* model id, or null when the value is not an encoded id for a known managed
|
|
311
311
|
* model. Fireworks/together native ids contain slashes but their prefixes
|
|
312
|
-
* ("accounts", "MiniMaxAI") are not
|
|
312
|
+
* ("accounts", "MiniMaxAI") are not cloud provider names, so they pass
|
|
313
313
|
* through untouched.
|
|
314
314
|
*/
|
|
315
315
|
function decodeRoutedModel(value: unknown): string | null {
|
|
@@ -11,10 +11,10 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
11
11
|
* names the backend the proxy fronts (gemini or openai). The schema treats
|
|
12
12
|
* `provider` as the only axis, with `"cadet"` meaning managed and the
|
|
13
13
|
* backend derived from the selected model's prefix at request time, so this
|
|
14
|
-
* migration rewrites every
|
|
14
|
+
* migration rewrites every cloud service to `provider: "cadet"`. There is
|
|
15
15
|
* no per-provider exemption: the stored backend value under managed mode is
|
|
16
16
|
* itself derived from the model on every model write, so replacing it loses
|
|
17
|
-
* nothing — `model` is preserved verbatim and keeps routing the
|
|
17
|
+
* nothing — `model` is preserved verbatim and keeps routing the cloud
|
|
18
18
|
* request to the same backend.
|
|
19
19
|
*
|
|
20
20
|
* Idempotent: a config with no `mode` key is left untouched.
|
|
@@ -97,8 +97,8 @@ export const imageGenerationModeToProviderMigration: WorkspaceMigration = {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
// Schemas that predate this migration accept provider "cadet" alongside
|
|
100
|
-
// mode "managed", so the
|
|
101
|
-
// provider a
|
|
100
|
+
// mode "managed", so the cloud pair round-trips exactly. The backend
|
|
101
|
+
// provider a cloud service holds before `run()` is not recoverable —
|
|
102
102
|
// `run()` overwrites it with "cadet". That value is derived from the
|
|
103
103
|
// model prefix, so it re-derives on the next model write.
|
|
104
104
|
service.mode = service.provider === "cadet" ? "managed" : "your-own";
|
|
@@ -17,9 +17,9 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
17
17
|
* Fireworks latency-intent model.
|
|
18
18
|
*
|
|
19
19
|
* Provider guard: the stale ID belongs to the `fireworks` provider and
|
|
20
|
-
* also appears in
|
|
20
|
+
* also appears in cloud profiles stamped
|
|
21
21
|
* `provider: "cadet"` (which route Fireworks-account model IDs through
|
|
22
|
-
* the
|
|
22
|
+
* the cloud proxy). A fragment is repaired when its `provider` is
|
|
23
23
|
* `"fireworks"`, `"cadet"`, or absent; an explicit other provider (e.g.
|
|
24
24
|
* an `openai-compatible` endpoint serving a model by the same name) is
|
|
25
25
|
* left untouched.
|
|
@@ -21,8 +21,8 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
21
21
|
* would make it read as unedited to `ensureByokDefaultProfiles`.
|
|
22
22
|
*
|
|
23
23
|
* Provider guard: the retired ID belongs to the `fireworks` provider and
|
|
24
|
-
* also appears in
|
|
25
|
-
* route Fireworks-account model IDs through the
|
|
24
|
+
* also appears in cloud profiles stamped `provider: "cadet"` (which
|
|
25
|
+
* route Fireworks-account model IDs through the cloud proxy). A fragment
|
|
26
26
|
* is repaired when its `provider` is `"fireworks"`, `"cadet"`, or absent;
|
|
27
27
|
* an explicit other provider (e.g. an `openai-compatible` endpoint serving
|
|
28
28
|
* a model by the same name) is left untouched.
|
|
@@ -7,7 +7,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
7
7
|
* Clear the machinery-written `"Speed"` label off the `cost-optimized`
|
|
8
8
|
* profile so the code catalog's new label ("Cost") reaches existing installs.
|
|
9
9
|
*
|
|
10
|
-
* `label` is workspace-owned overlay state: a
|
|
10
|
+
* `label` is workspace-owned overlay state: a cloud-source entry's label
|
|
11
11
|
* wins over the code default (`WORKSPACE_OWNED_DEFAULT_FIELDS` in
|
|
12
12
|
* `config/default-profile-catalog.ts`). Migration 082 and the pre-catalog
|
|
13
13
|
* seeder both wrote `"Speed"` onto `cost-optimized`, and migration 126
|
|
@@ -67,7 +67,7 @@ export const clearRenamedCostProfileLabelMigration: WorkspaceMigration = {
|
|
|
67
67
|
if (entry === null) {
|
|
68
68
|
return;
|
|
69
69
|
}
|
|
70
|
-
// Only a
|
|
70
|
+
// Only a cloud-source entry carries a machinery-written label. Anything
|
|
71
71
|
// else, a source-less legacy entry included, shadows the default outright
|
|
72
72
|
// (see `getEffectiveProfile`), so its label is the user's.
|
|
73
73
|
if (entry.source !== "managed") {
|
|
@@ -5,7 +5,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Put existing assistants on code-switching by writing
|
|
8
|
-
* `services.stt.language: "multi"` on Deepgram and the
|
|
8
|
+
* `services.stt.language: "multi"` on Deepgram and the cloud relay,
|
|
9
9
|
* covering both an accepted English default and a language that was never
|
|
10
10
|
* set at all.
|
|
11
11
|
*
|
|
@@ -14,7 +14,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
14
14
|
* exist before the language picker shipped (#39546, released 2026-07-31), and
|
|
15
15
|
* on these two providers that picker never offered English and Multilingual
|
|
16
16
|
* as peers. The only English row was the default row, labelled "English
|
|
17
|
-
* (default)". So an `"en"` on Deepgram or the
|
|
17
|
+
* (default)". So an `"en"` on Deepgram or the cloud relay records "I
|
|
18
18
|
* accepted the default", not "I want English rather than code-switching", and
|
|
19
19
|
* the default it accepted has since changed.
|
|
20
20
|
*
|
|
@@ -22,7 +22,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
22
22
|
*
|
|
23
23
|
* - Only `"en"` and absent. Any other language is a real choice from a list
|
|
24
24
|
* where it was the only way to get that language.
|
|
25
|
-
* - Only Deepgram and the
|
|
25
|
+
* - Only Deepgram and the cloud relay (`mode: "managed"` routes there
|
|
26
26
|
* while `provider` holds the bring-your-own restore value). xAI has
|
|
27
27
|
* offered an explicit English row since the picker shipped, so an `"en"`
|
|
28
28
|
* there is deliberate, and code-switching is a Deepgram mode its adapter
|
|
@@ -38,7 +38,7 @@ const MULTI_DEFAULT_PROVIDERS = new Set(["deepgram", "cadet"]);
|
|
|
38
38
|
export const sttEnglishDefaultToMultilingualMigration: WorkspaceMigration = {
|
|
39
39
|
id: "141-stt-english-default-to-multilingual",
|
|
40
40
|
description:
|
|
41
|
-
"Move services.stt.language from the accepted English default to multilingual on Deepgram and
|
|
41
|
+
"Move services.stt.language from the accepted English default to multilingual on Deepgram and cloud speech",
|
|
42
42
|
run(workspaceDir: string): void {
|
|
43
43
|
if (process.env.CADET_DEFAULT_WORKSPACE_CONFIG_PATH) {
|
|
44
44
|
return;
|
|
@@ -34,7 +34,7 @@ const log = getLogger("migration-144");
|
|
|
34
34
|
* `llm.defaultProvider` of "openai" converts the same way: it anchors the
|
|
35
35
|
* code-owned default profiles and background call sites, which are equally
|
|
36
36
|
* stranded. Fragments with a `provider_connection` pin, a pinned
|
|
37
|
-
* defaultProvider connectionName, any other provider, or a
|
|
37
|
+
* defaultProvider connectionName, any other provider, or a cloud source
|
|
38
38
|
* are left untouched. `llm.default` is not swept: migration 133 drops that
|
|
39
39
|
* legacy blob and runs earlier in the chain.
|
|
40
40
|
*/
|
|
@@ -42,7 +42,7 @@ const log = getLogger("migrations/145-collapse-profile-bindings-to-entries");
|
|
|
42
42
|
// conservative keep-provider path.
|
|
43
43
|
|
|
44
44
|
const ROUTING_IDENTITIES = new Set(["cadet", "chatgpt"]);
|
|
45
|
-
const
|
|
45
|
+
const CLOUD_ROUTABLE = new Set([
|
|
46
46
|
"openai",
|
|
47
47
|
"anthropic",
|
|
48
48
|
"gemini",
|
|
@@ -294,7 +294,7 @@ function kindAgrees(rowKind: string, provider: string | undefined): boolean {
|
|
|
294
294
|
return provider === "openai";
|
|
295
295
|
}
|
|
296
296
|
if (rowKind === "cadet") {
|
|
297
|
-
return
|
|
297
|
+
return CLOUD_ROUTABLE.has(provider);
|
|
298
298
|
}
|
|
299
299
|
return false;
|
|
300
300
|
}
|
|
@@ -19,8 +19,8 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
19
19
|
* dated ID.
|
|
20
20
|
*
|
|
21
21
|
* Provider guard: the stale ID belongs to the `fireworks` provider and also
|
|
22
|
-
* appears in
|
|
23
|
-
* Fireworks-account model IDs through the
|
|
22
|
+
* appears in cloud profiles stamped `provider: "cadet"` (which route
|
|
23
|
+
* Fireworks-account model IDs through the cloud proxy). Under the entries
|
|
24
24
|
* model (migration 145) `provider` can also hold a `provider_connections`
|
|
25
25
|
* entry name whose row kind drives dispatch. A fragment is repaired when
|
|
26
26
|
* its `provider` is `"fireworks"`, `"cadet"`, absent, or an entry name
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Automatic model fallbacks are code-owned metadata on the four managed
|
|
5
5
|
* default profiles. Earlier builds accepted custom `fallbackProfile` values
|
|
6
6
|
* in raw workspace config, including pointers rewritten by migration 147.
|
|
7
|
-
* Those values cannot be executed under the
|
|
7
|
+
* Those values cannot be executed under the cloud-only fallback contract
|
|
8
8
|
* and would make later config writes fail validation.
|
|
9
9
|
*
|
|
10
10
|
* This migration removes every persisted pointer except the exact managed
|
|
@@ -35,7 +35,7 @@ const CODE_OWNED_FALLBACKS: Record<string, string> = {
|
|
|
35
35
|
export const stripUnsupportedFallbackProfilesMigration: WorkspaceMigration = {
|
|
36
36
|
id: "148-strip-unsupported-fallback-profiles",
|
|
37
37
|
description:
|
|
38
|
-
"Remove custom fallback profile pointers outside the
|
|
38
|
+
"Remove custom fallback profile pointers outside the cloud default contract",
|
|
39
39
|
// A transient config write failure must not leave an unsupported pointer
|
|
40
40
|
// behind permanently; the next boot can safely repeat this idempotent pass.
|
|
41
41
|
retryFailedCheckpoint: true,
|
|
@@ -16,7 +16,7 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
16
16
|
* provider: "deepgram-flux" -> provider: "deepgram"
|
|
17
17
|
* providers.deepgram.model: "flux"
|
|
18
18
|
*
|
|
19
|
-
* The same rewrite applies to the
|
|
19
|
+
* The same rewrite applies to the cloud pair. Any other provider value is
|
|
20
20
|
* left untouched, and an existing `providers.<parent>` entry keeps every key
|
|
21
21
|
* it already had.
|
|
22
22
|
*
|
|
@@ -19,8 +19,8 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
19
19
|
* dated ID.
|
|
20
20
|
*
|
|
21
21
|
* Provider guard: the stale ID belongs to the `fireworks` provider and also
|
|
22
|
-
* appears in
|
|
23
|
-
* Fireworks-account model IDs through the
|
|
22
|
+
* appears in cloud profiles stamped `provider: "cadet"` (which route
|
|
23
|
+
* Fireworks-account model IDs through the cloud proxy). Under the entries
|
|
24
24
|
* model (migration 145) `provider` can also hold a `provider_connections`
|
|
25
25
|
* entry name whose row kind drives dispatch. A fragment is repaired when
|
|
26
26
|
* its `provider` is `"fireworks"`, `"cadet"`, absent, or an entry name
|
|
@@ -23,8 +23,8 @@ import type { WorkspaceMigration } from "./types.js";
|
|
|
23
23
|
* to the same model this migration writes.
|
|
24
24
|
*
|
|
25
25
|
* Provider guard: the stale ID belongs to the `fireworks` provider and also
|
|
26
|
-
* appears in
|
|
27
|
-
* Fireworks-account model IDs through the
|
|
26
|
+
* appears in cloud profiles stamped `provider: "cadet"` (which route
|
|
27
|
+
* Fireworks-account model IDs through the cloud proxy). Under the entries
|
|
28
28
|
* model (migration 145) `provider` can also hold a `provider_connections`
|
|
29
29
|
* entry name whose row kind drives dispatch. A fragment is repaired when
|
|
30
30
|
* its `provider` is `"fireworks"`, `"cadet"`, absent, or an entry name
|