@mycadet/assistant 0.12.7 → 0.12.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/activation-funnel-telemetry.md +6 -6
- package/docs/cadet-doctor.md +7 -7
- package/docs/desktop-browser-cli.md +7 -7
- package/docs/skills.md +2 -2
- package/docs/voice-input-diagnostics.md +1 -1
- package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
- package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
- package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
- package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
- package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
- package/node_modules/@mycadet/environments/src/types.ts +6 -6
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
- package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
- package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
- package/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/openapi.yaml +6815 -794
- package/package.json +2 -2
- package/scripts/build-test-fixtures.ts +1 -1
- package/scripts/probe-skill-retrieval.ts +1 -1
- package/scripts/sync-llm-catalog.ts +2 -2
- package/scripts/voice-ttft-spike.ts +2 -2
- package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
- package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
- package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
- package/src/__tests__/anthropic-provider.test.ts +2 -2
- package/src/__tests__/available-skills.test.ts +11 -12
- package/src/__tests__/avatar-identity-sync.test.ts +1 -1
- package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
- package/src/__tests__/call-domain.test.ts +1 -1
- package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
- package/src/__tests__/catalog-files.test.ts +10 -10
- package/src/__tests__/catalog-install-normalize.test.ts +3 -3
- package/src/__tests__/channel-availability-routes.test.ts +8 -8
- package/src/__tests__/channel-readiness-routes.test.ts +4 -4
- package/src/__tests__/channel-readiness-service.test.ts +14 -14
- package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
- package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
- package/src/__tests__/checker.test.ts +6 -6
- package/src/__tests__/clawhub.test.ts +1 -1
- package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
- package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
- package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
- package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
- package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +60 -60
- package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
- package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
- package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
- package/src/__tests__/compaction-events.test.ts +7 -5
- package/src/__tests__/config-loader-backfill.test.ts +65 -65
- package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
- package/src/__tests__/config-loader-corrupt.test.ts +1 -1
- package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
- package/src/__tests__/config-schema.test.ts +3 -3
- package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
- package/src/__tests__/config-watcher.test.ts +1 -1
- package/src/__tests__/contacts-write.test.ts +1 -1
- package/src/__tests__/conversation-agent-loop.test.ts +2 -2
- package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
- package/src/__tests__/conversation-error.test.ts +45 -45
- package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
- package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
- package/src/__tests__/conversation-skill-tools.test.ts +7 -8
- package/src/__tests__/conversation-slash.test.ts +2 -2
- package/src/__tests__/conversation-speed-override.test.ts +8 -10
- package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
- package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
- package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
- package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
- package/src/__tests__/credential-health-service.test.ts +27 -41
- package/src/__tests__/credential-routes.test.ts +85 -165
- package/src/__tests__/credential-security-invariants.test.ts +6 -7
- package/src/__tests__/custom-profile-ensure.test.ts +1 -1
- package/src/__tests__/date-context.test.ts +1 -1
- package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
- package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
- package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
- package/src/__tests__/disk-usage.test.ts +3 -3
- package/src/__tests__/email-invite-adapter.test.ts +5 -5
- package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
- package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
- package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
- package/src/__tests__/fallback-breaker.test.ts +7 -7
- package/src/__tests__/feature-flag-test-helpers.ts +106 -0
- package/src/__tests__/gateway-flag-listener.test.ts +1 -1
- package/src/__tests__/gemini-image-service.test.ts +2 -2
- package/src/__tests__/gemini-provider.test.ts +5 -5
- package/src/__tests__/get-skill-detail-audit.test.ts +9 -8
- package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
- package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
- package/src/__tests__/image-credentials.test.ts +13 -13
- package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
- package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
- package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
- package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
- package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
- package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
- package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
- package/src/__tests__/input-repairs.test.ts +1 -1
- package/src/__tests__/install-skill-routing.test.ts +10 -8
- package/src/__tests__/integration-status.test.ts +5 -5
- package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
- package/src/__tests__/invite-routes-http.test.ts +1 -1
- package/src/__tests__/llm-catalog-parity.test.ts +5 -7
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
- package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
- package/src/__tests__/llm-resolver.test.ts +1 -1
- package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
- package/src/__tests__/llm-usage-store.test.ts +1 -1
- package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
- package/src/__tests__/mcp-abort-signal.test.ts +2 -2
- package/src/__tests__/mcp-client-auth.test.ts +2 -2
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -2
- package/src/__tests__/media-generate-image.test.ts +30 -30
- package/src/__tests__/memory-config-file-parity.test.ts +6 -6
- package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
- package/src/__tests__/migration-import-commit-http.test.ts +1 -1
- package/src/__tests__/mtime-cache.test.ts +2 -2
- package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
- package/src/__tests__/notification-deep-link.test.ts +40 -40
- package/src/__tests__/oauth-apps-routes.test.ts +3 -3
- package/src/__tests__/oauth-cli.test.ts +9 -9
- package/src/__tests__/oauth-commands-routes.test.ts +16 -16
- package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
- package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
- package/src/__tests__/oauth-providers-routes.test.ts +12 -12
- package/src/__tests__/oauth-store.test.ts +1 -1
- package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
- package/src/__tests__/onboarding-persona-write.test.ts +2 -2
- package/src/__tests__/openai-image-service.test.ts +2 -2
- package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
- package/src/__tests__/openai-responses-provider.test.ts +1 -1
- package/src/__tests__/path-policy.test.ts +4 -4
- package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
- package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
- package/src/__tests__/plugin-api-provider.test.ts +1 -1
- package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
- package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
- package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
- package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
- package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
- package/src/__tests__/provider-connections-backfill.test.ts +9 -9
- package/src/__tests__/provider-error-scenarios.test.ts +8 -8
- package/src/__tests__/provider-registry-ollama.test.ts +1 -1
- package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
- package/src/__tests__/registry.test.ts +3 -3
- package/src/__tests__/requests-mock.ts +972 -0
- package/src/__tests__/resolve-trust-class.test.ts +1 -1
- package/src/__tests__/resource-pressure-guard.test.ts +6 -6
- package/src/__tests__/resource-pressure-routes.test.ts +5 -5
- package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
- package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
- package/src/__tests__/schedule-store.test.ts +1 -1
- package/src/__tests__/search-skills-unified.test.ts +9 -7
- package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
- package/src/__tests__/secret-routes-scrub.test.ts +2 -59
- package/src/__tests__/secure-keys.test.ts +1 -1
- package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
- package/src/__tests__/skill-load-tool.test.ts +1 -1
- package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
- package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
- package/src/__tests__/skill-tool-factory.test.ts +1 -1
- package/src/__tests__/skills-file-content-endpoint.test.ts +12 -12
- package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
- package/src/__tests__/skills.test.ts +1 -1
- package/src/__tests__/slim-skill-category.test.ts +11 -9
- package/src/__tests__/stt-stream-session.test.ts +3 -3
- package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
- package/src/__tests__/subagent-disposal.test.ts +5 -5
- package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
- package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
- package/src/__tests__/subagent-manager-notify.test.ts +5 -5
- package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
- package/src/__tests__/system-prompt.test.ts +1 -1
- package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
- package/src/__tests__/telegram-config.test.ts +16 -16
- package/src/__tests__/telephony-tts-guard.test.ts +13 -13
- package/src/__tests__/test-preload.ts +17 -7
- package/src/__tests__/tool-audit.test.ts +1 -1
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
- package/src/__tests__/turn-events-store.test.ts +1 -1
- package/src/__tests__/twilio-routes.test.ts +2 -1
- package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
- package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
- package/src/__tests__/validate-input.test.ts +5 -5
- package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
- package/src/__tests__/voice-config-update.test.ts +15 -15
- package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
- package/src/__tests__/web-search.test.ts +340 -859
- package/src/__tests__/workspace-git-service.test.ts +1 -1
- package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
- package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
- package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
- package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
- package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
- package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
- package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
- package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
- package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
- package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
- package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
- package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
- package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
- package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
- package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
- package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
- package/src/api/events/cloud-disconnected.ts +21 -0
- package/src/api/events/host-bash.ts +1 -1
- package/src/api/events/host-cu.ts +1 -1
- package/src/api/events/host-file.ts +1 -1
- package/src/api/events/notification-intent.ts +1 -1
- package/src/api/events/{show-platform-login.ts → show-cloud-login.ts} +3 -5
- package/src/api/index.ts +11 -11
- package/src/api/responses/home.ts +1 -1
- package/src/api/surfaces.ts +4 -4
- package/src/approvals/guardian-request-resolvers.ts +2 -2
- package/src/avatar/accent-backfill.ts +1 -1
- package/src/avatar/identity-avatar.ts +1 -1
- package/src/avatar/notification-avatar.test.ts +2 -2
- package/src/avatar/notification-avatar.ts +2 -2
- package/src/avatar/resvg-lazy.test.ts +1 -1
- package/src/avatar/resvg-lazy.ts +3 -3
- package/src/avatar/sync-avatar.test.ts +76 -76
- package/src/avatar/sync-avatar.ts +15 -15
- package/src/avatar/traits-png-sync.ts +1 -1
- package/src/background-wake/background-wake-routes.test.ts +39 -39
- package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
- package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
- package/src/background-wake/publisher.ts +4 -4
- package/src/background-wake/wake-intent-hooks.test.ts +3 -3
- package/src/calls/__tests__/call-controller.test.ts +2 -2
- package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
- package/src/calls/call-domain.ts +1 -1
- package/src/calls/resolve-call-tts-provider.ts +6 -6
- package/src/calls/telephony-credential-preflight.ts +3 -3
- package/src/calls/telephony-tts-capability.ts +5 -6
- package/src/calls/tts-call-strategy.ts +1 -1
- package/src/calls/voice-escalation-judge.ts +1 -1
- package/src/calls/voice-ingress-preflight.ts +4 -4
- package/src/cli/bundled-modules.ts +1 -1
- package/src/cli/commands/__tests__/apps.test.ts +18 -53
- package/src/cli/commands/__tests__/plugins.test.ts +13 -13
- package/src/cli/commands/__tests__/tts.test.ts +1 -1
- package/src/cli/commands/auth.help.ts +3 -3
- package/src/cli/commands/auth.ts +2 -4
- package/src/cli/commands/browser.help.ts +2 -2
- package/src/cli/commands/channels/index.help.ts +2 -2
- package/src/cli/commands/channels/index.ts +1 -1
- package/src/cli/commands/channels/send.ts +1 -1
- package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
- package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
- package/src/cli/commands/cloud/connect.ts +2 -2
- package/src/cli/commands/cloud/credits-format.ts +1 -1
- package/src/cli/commands/cloud/index.help.ts +35 -35
- package/src/cli/commands/config.ts +1 -1
- package/src/cli/commands/credentials.ts +10 -12
- package/src/cli/commands/domain.ts +1 -1
- package/src/cli/commands/email.help.ts +1 -1
- package/src/cli/commands/email.ts +2 -2
- package/src/cli/commands/gateway.help.ts +1 -1
- package/src/cli/commands/gateway.ts +1 -1
- package/src/cli/commands/image-generation.help.ts +1 -1
- package/src/cli/commands/inference-providers.ts +1 -1
- package/src/cli/commands/inference.help.ts +2 -2
- package/src/cli/commands/memory/index.help.ts +1 -1
- package/src/cli/commands/oauth/connect.test.ts +2 -2
- package/src/cli/commands/oauth/connect.ts +1 -1
- package/src/cli/commands/oauth/index.help.ts +5 -5
- package/src/cli/commands/oauth/providers.ts +2 -2
- package/src/cli/commands/oauth/shared.ts +3 -3
- package/src/cli/commands/plugins.help.ts +2 -3
- package/src/cli/commands/plugins.ts +5 -5
- package/src/cli/commands/roadmap.help.ts +1 -1
- package/src/cli/commands/telemetry.help.ts +2 -2
- package/src/cli/commands/telemetry.ts +2 -2
- package/src/cli/commands/tts.help.ts +3 -3
- package/src/cli/commands/webhooks.help.ts +9 -9
- package/src/cli/commands/webhooks.ts +1 -1
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
- package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
- package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
- package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
- package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
- package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
- package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
- package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
- package/src/cli/lib/bundled-marketplace.json +1 -1
- package/src/cli/lib/inspect-plugin.ts +2 -2
- package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
- package/src/cli/lib/install-from-github.ts +4 -4
- package/src/cli/lib/plugin-catalog-cache.ts +7 -7
- package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
- package/src/cli/lib/plugin-catalog-local.ts +2 -2
- package/src/cli/lib/publish-plugin.ts +9 -10
- package/src/cli/lib/search-plugins.ts +2 -2
- package/src/{platform → cloud}/client.test.ts +85 -86
- package/src/{platform → cloud}/client.ts +38 -46
- package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
- package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
- package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
- package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
- package/src/{platform → cloud}/consent-cache.test.ts +5 -5
- package/src/{platform → cloud}/consent-cache.ts +8 -8
- package/src/cloud/feature-gate.ts +8 -0
- package/src/{platform → cloud}/sync-identity.test.ts +4 -4
- package/src/{platform → cloud}/sync-identity.ts +6 -6
- package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
- package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
- package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
- package/src/config/__tests__/default-provider.test.ts +4 -4
- package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
- package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
- package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
- package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
- package/src/config/__tests__/profile-materialization.test.ts +7 -7
- package/src/config/__tests__/seed-default-provider.test.ts +17 -17
- package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
- package/src/config/__tests__/webhook-routing.test.ts +51 -51
- package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
- package/src/config/bundled-skills/messaging/SKILL.md +8 -8
- package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
- package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
- package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
- package/src/config/bundled-skills/settings/TOOLS.json +3 -3
- package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
- package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
- package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
- package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
- package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
- package/src/config/call-site-defaults.ts +6 -6
- package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
- package/src/config/cloud-rehydration.ts +35 -0
- package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
- package/src/config/default-profile-catalog.ts +36 -38
- package/src/config/default-profile-names.ts +11 -11
- package/src/config/default-provider-resolution.ts +2 -2
- package/src/config/default-provider.ts +1 -1
- package/src/config/env-registry.ts +23 -21
- package/src/config/env.ts +33 -46
- package/src/config/feature-flag-registry.json +5 -5
- package/src/config/inference-profile-validation.ts +1 -1
- package/src/config/llm-resolver.ts +9 -10
- package/src/config/loader.ts +33 -17
- package/src/config/profile-materialization.ts +8 -8
- package/src/config/profile-text-generation.test.ts +1 -1
- package/src/config/sanitize-for-transfer.ts +1 -1
- package/src/config/schema.ts +6 -6
- package/src/config/schemas/__tests__/stt.test.ts +2 -2
- package/src/config/schemas/call-site-catalog.ts +1 -1
- package/src/config/schemas/channels.ts +8 -0
- package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
- package/src/config/schemas/host-browser.ts +1 -0
- package/src/config/schemas/ingress.ts +1 -12
- package/src/config/schemas/llm.ts +45 -36
- package/src/config/schemas/memory-lifecycle.ts +11 -1
- package/src/config/schemas/services.ts +4 -4
- package/src/config/schemas/stt.ts +3 -3
- package/src/config/schemas/tts.ts +10 -5
- package/src/config/schemas/voice.ts +1 -1
- package/src/config/seed-inference-profiles.ts +19 -19
- package/src/config/skill-state.ts +2 -2
- package/src/config/skills.ts +4 -4
- package/src/config/sync-gated-profiles.ts +8 -8
- package/src/config/webhook-routing.ts +19 -19
- package/src/contacts/contacts-write.ts +1 -1
- package/src/credential-execution/ces-runtime.ts +6 -6
- package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
- package/src/credential-execution/prompted-credential.ts +6 -18
- package/src/credential-health/credential-health-service.ts +61 -76
- package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
- package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
- package/src/daemon/config-watcher.ts +2 -2
- package/src/daemon/conversation-agent-loop.ts +9 -9
- package/src/daemon/conversation-error.ts +36 -36
- package/src/daemon/conversation-skill-tools.ts +7 -7
- package/src/daemon/conversation-surfaces.ts +1 -1
- package/src/daemon/conversation-tool-setup.ts +2 -2
- package/src/daemon/conversation-turn-finalize.ts +1 -1
- package/src/daemon/conversation-workspace.ts +1 -1
- package/src/daemon/conversation.ts +1 -1
- package/src/daemon/credential-transcript-scrub.ts +21 -35
- package/src/daemon/daemon-readiness.ts +1 -1
- package/src/daemon/event-loop-watchdog.ts +2 -2
- package/src/daemon/handlers/config-ingress.ts +9 -9
- package/src/daemon/handlers/config-telegram.ts +6 -6
- package/src/daemon/handlers/skills.ts +20 -20
- package/src/daemon/host-cu-proxy.ts +1 -1
- package/src/daemon/lifecycle.ts +19 -19
- package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
- package/src/daemon/providers-setup.ts +6 -6
- package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
- package/src/daemon/resource-pressure-guard.ts +6 -6
- package/src/daemon/shutdown-handlers.ts +1 -1
- package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
- package/src/daemon/trust-context.ts +1 -1
- package/src/desktop/desktop-automation-lease.ts +1 -1
- package/src/desktop/desktop-browser-endpoint.ts +2 -4
- package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
- package/src/desktop/desktop-stream-bridge.test.ts +4 -4
- package/src/desktop/desktop-stream-bridge.ts +1 -1
- package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
- package/src/desktop/virtual-desktop-feature.ts +7 -7
- package/src/email/byo-email-credential.ts +1 -1
- package/src/email/registered-inbox.test.ts +16 -16
- package/src/email/registered-inbox.ts +20 -20
- package/src/heartbeat/heartbeat-service.ts +1 -1
- package/src/hooks/hook-loader.ts +2 -2
- package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
- package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
- package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
- package/src/inbound/oauth-callback-url.ts +6 -6
- package/src/inbound/pod-webhook-claim.ts +2 -2
- package/src/inbound/public-ingress-urls.ts +3 -3
- package/src/inbound/tunnel-probe.ts +21 -15
- package/src/inbound/tunnel-webhooks-gate.ts +3 -3
- package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
- package/src/ipc/__tests__/email-ipc.test.ts +8 -8
- package/src/ipc/gateway-client.test.ts +55 -59
- package/src/ipc/gateway-flag-listener.ts +3 -3
- package/src/ipc/routes/db-proxy.ts +1 -1
- package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
- package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
- package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
- package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
- package/src/live-voice/live-activity-reporter.ts +7 -7
- package/src/live-voice/live-voice-credential-preflight.ts +6 -6
- package/src/live-voice/live-voice-session.ts +3 -3
- package/src/live-voice/live-voice-tts.ts +1 -1
- package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
- package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
- package/src/mcp/mcp-oauth-provider.ts +2 -2
- package/src/media/gemini-image-service.ts +11 -13
- package/src/media/image-credentials.ts +9 -9
- package/src/media/openai-image-service.ts +1 -1
- package/src/media/types.ts +3 -3
- package/src/messaging/providers/channel-transport.ts +1 -1
- package/src/messaging/providers/discord/transport.ts +1 -1
- package/src/messaging/providers/gmail/adapter.ts +1 -1
- package/src/messaging/providers/gmail/client.ts +4 -4
- package/src/messaging/providers/outlook/adapter.ts +1 -1
- package/src/messaging/providers/slack/adapter.ts +1 -1
- package/src/messaging/providers/slack/transport.ts +1 -1
- package/src/messaging/providers/telegram-bot/transport.ts +1 -1
- package/src/monitoring/db-integrity-check.ts +1 -1
- package/src/monitoring/db-integrity-sample.ts +2 -2
- package/src/monitoring/mount-watch.ts +1 -1
- package/src/monitoring/oom-kill-reporter.ts +1 -1
- package/src/monitoring/worker.ts +5 -5
- package/src/notifications/README.md +2 -2
- package/src/notifications/__tests__/broadcaster.test.ts +9 -9
- package/src/notifications/__tests__/completion-policy.test.ts +1 -1
- package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
- package/src/notifications/activity-failed-dedupe.ts +1 -1
- package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
- package/src/notifications/broadcaster.ts +10 -10
- package/src/notifications/decision-engine.ts +1 -1
- package/src/notifications/destination-resolver.ts +1 -1
- package/src/notifications/emit-signal.ts +6 -6
- package/src/notifications/types.ts +2 -2
- package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
- package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
- package/src/oauth/byo-connection.test.ts +2 -2
- package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
- package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
- package/src/oauth/connection-resolver.test.ts +59 -61
- package/src/oauth/connection-resolver.ts +22 -22
- package/src/oauth/connection.ts +1 -1
- package/src/oauth/oauth-store.ts +8 -8
- package/src/oauth/provider-serializer.ts +4 -4
- package/src/oauth/revoke.ts +1 -1
- package/src/oauth/seed-providers.ts +32 -32
- package/src/permissions/approval-provenance.ts +1 -1
- package/src/permissions/checker.test.ts +18 -16
- package/src/permissions/checker.ts +3 -3
- package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
- package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
- package/src/persistence/embeddings/embedding-backend.ts +13 -13
- package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
- package/src/persistence/embeddings/embedding-gemini.ts +11 -11
- package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
- package/src/persistence/jobs-store.ts +1 -1
- package/src/persistence/lifecycle-events-store.ts +1 -1
- package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
- package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
- package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
- package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
- package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
- package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
- package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
- package/src/persistence/schema/oauth.ts +1 -1
- package/src/plugin-api/index.ts +4 -4
- package/src/plugin-api/model-profiles.test.ts +1 -1
- package/src/plugin-api/model-profiles.ts +1 -1
- package/src/plugin-api/transcription-session.ts +1 -1
- package/src/plugin-api/vision-support.test.ts +1 -1
- package/src/plugin-api/webhook-url.ts +12 -12
- package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
- package/src/plugins/defaults/cloud-hosted/package.json +14 -0
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
- package/src/plugins/defaults/index.ts +6 -6
- package/src/plugins/defaults/main.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
- package/src/plugins/defaults/memory/config.ts +4 -4
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
- package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
- package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
- package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
- package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
- package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
- package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
- package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
- package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
- package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
- package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
- package/src/plugins/defaults/memory/worker.ts +5 -5
- package/src/plugins/defaults/workspace/injectors.ts +2 -2
- package/src/plugins/mtime-cache.ts +1 -1
- package/src/plugins/source-versions.ts +1 -1
- package/src/plugins/types.ts +1 -1
- package/src/prompts/__tests__/system-prompt.test.ts +1 -1
- package/src/prompts/normalize-onboarding.ts +1 -1
- package/src/prompts/persona-resolver.ts +1 -1
- package/src/prompts/templates/system-sections.ts +3 -3
- package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
- package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
- package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
- package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
- package/src/providers/__tests__/inference.test.ts +2 -2
- package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
- package/src/providers/__tests__/retry-callsite.test.ts +1 -1
- package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
- package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
- package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
- package/src/providers/anthropic/client.ts +1 -1
- package/src/providers/cadet/client.ts +1 -1
- package/src/providers/cadet-model-routing.test.ts +19 -19
- package/src/providers/cadet-model-routing.ts +23 -23
- package/src/providers/call-site-routing.ts +10 -10
- package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
- package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
- package/src/providers/connection-resolution.ts +43 -43
- package/src/providers/fallback-breaker.ts +2 -2
- package/src/providers/fetch-provider-catalog.ts +3 -3
- package/src/providers/gemini/client.ts +5 -5
- package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
- package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
- package/src/providers/inference/adapter-factory.ts +35 -35
- package/src/providers/inference/auth.ts +10 -10
- package/src/providers/inference/backfill.ts +11 -11
- package/src/providers/inference/connection-availability.ts +24 -24
- package/src/providers/inference/connections.ts +18 -20
- package/src/providers/inference/profile-probe.ts +4 -4
- package/src/providers/inference/resolve-auth.ts +8 -8
- package/src/providers/jev/ask.test.ts +1 -1
- package/src/providers/jev/ask.ts +2 -2
- package/src/providers/model-catalog.ts +8 -9
- package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
- package/src/providers/openai/api-error-normalization.ts +2 -2
- package/src/providers/provider-availability.ts +4 -4
- package/src/providers/provider-env-vars.ts +1 -1
- package/src/providers/provider-secret-catalog.ts +1 -1
- package/src/providers/registry.ts +20 -20
- package/src/providers/retry.ts +26 -26
- package/src/providers/routing-identity.ts +10 -10
- package/src/providers/search-provider-catalog.ts +2 -2
- package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
- package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
- package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
- package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
- package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
- package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
- package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
- package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
- package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
- package/src/providers/speech-to-text/provider-catalog.ts +3 -3
- package/src/providers/speech-to-text/resolve.ts +26 -28
- package/src/providers/together/client.ts +1 -1
- package/src/providers/types.ts +4 -4
- package/src/providers/voice-error-copy.ts +1 -1
- package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
- package/src/runtime/agent-wake.ts +1 -1
- package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
- package/src/runtime/auth/middleware.ts +1 -1
- package/src/runtime/auth/scopes.ts +1 -1
- package/src/runtime/capabilities.ts +1 -1
- package/src/runtime/channel-invite-transports/discord.ts +1 -1
- package/src/runtime/channel-invite-transports/email.ts +2 -2
- package/src/runtime/channel-readiness-service.ts +15 -13
- package/src/runtime/channel-reply-session.test.ts +1 -1
- package/src/runtime/channel-reply-session.ts +1 -1
- package/src/runtime/http-server.ts +4 -4
- package/src/runtime/introduction-policy.ts +4 -4
- package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
- package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
- package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
- package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
- package/src/runtime/migrations/migration-transport.ts +3 -3
- package/src/runtime/migrations/origin-mode.ts +6 -9
- package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
- package/src/runtime/migrations/vbundle-importer.ts +4 -4
- package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
- package/src/runtime/migrations/vbundle-validator.ts +1 -1
- package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
- package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
- package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +26 -25
- package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
- package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
- package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
- package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
- package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
- package/src/runtime/routes/app-management-routes.ts +1 -1
- package/src/runtime/routes/attachment-routes.ts +1 -1
- package/src/runtime/routes/auth-routes.ts +14 -14
- package/src/runtime/routes/avatar-routes.ts +0 -14
- package/src/runtime/routes/background-wake-routes.ts +4 -4
- package/src/runtime/routes/channel-availability-routes.ts +4 -4
- package/src/runtime/routes/client-routes.ts +5 -5
- package/src/runtime/routes/cloud-credentials.ts +45 -0
- package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +83 -116
- package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +82 -282
- package/src/runtime/routes/credential-routes.ts +28 -30
- package/src/runtime/routes/default-provider-routes.ts +1 -1
- package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
- package/src/runtime/routes/desktop-setup-routes.ts +1 -1
- package/src/runtime/routes/domain-routes.ts +15 -21
- package/src/runtime/routes/email-routes.ts +13 -13
- package/src/runtime/routes/errors.ts +1 -1
- package/src/runtime/routes/gateway-status-routes.ts +1 -1
- package/src/runtime/routes/identity-routes.ts +3 -3
- package/src/runtime/routes/inbound-message-handler.ts +1 -1
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
- package/src/runtime/routes/index.ts +1 -1
- package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
- package/src/runtime/routes/inference-profiles-routes.ts +11 -11
- package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
- package/src/runtime/routes/ingress-status-routes.ts +1 -1
- package/src/runtime/routes/integrations/a2a.ts +2 -2
- package/src/runtime/routes/integrations/twilio.ts +21 -35
- package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
- package/src/runtime/routes/live-voice-routes.test.ts +4 -4
- package/src/runtime/routes/live-voice-routes.ts +6 -6
- package/src/runtime/routes/migration-routes.ts +34 -40
- package/src/runtime/routes/oauth-commands-routes.ts +31 -31
- package/src/runtime/routes/oauth-providers.ts +5 -5
- package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
- package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
- package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
- package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
- package/src/runtime/routes/oauth-request-hints.ts +1 -1
- package/src/runtime/routes/plugins-routes.ts +9 -9
- package/src/runtime/routes/profiler-routes.ts +1 -1
- package/src/runtime/routes/ps-routes.ts +4 -0
- package/src/runtime/routes/roadmap-routes.ts +18 -20
- package/src/runtime/routes/secret-routes.ts +29 -55
- package/src/runtime/routes/settings-routes.ts +18 -23
- package/src/runtime/routes/telemetry-routes.ts +4 -4
- package/src/runtime/routes/tts-routes.ts +4 -4
- package/src/runtime/routes/user-route-resolution.ts +1 -1
- package/src/runtime/routes/webhook-routes.ts +18 -18
- package/src/runtime/routes/workflow-routes.ts +5 -5
- package/src/runtime/sync/resource-sync-events.ts +2 -2
- package/src/runtime/verification-outbound-actions.ts +4 -4
- package/src/schedule/integration-status.ts +6 -6
- package/src/schedule/run-script.ts +1 -1
- package/src/schedule/schedule-timezone.ts +1 -1
- package/src/schedule/worker.ts +5 -5
- package/src/security/auth-fallback-events-store.ts +1 -1
- package/src/security/oauth2.ts +4 -4
- package/src/skills/available-skills.ts +4 -4
- package/src/skills/catalog-files.ts +8 -8
- package/src/skills/catalog-install.ts +12 -12
- package/src/skills/categories-cache.ts +3 -3
- package/src/skills/clawhub.ts +1 -1
- package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
- package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
- package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
- package/src/skills/inline-command-runner.ts +1 -1
- package/src/skills/install-meta.ts +1 -1
- package/src/skills/path-classifier.ts +4 -4
- package/src/skills/skill-history.ts +4 -4
- package/src/skills/skillssh-registry.ts +1 -1
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
- package/src/stt/daemon-batch-transcriber.ts +7 -7
- package/src/stt/types.ts +3 -3
- package/src/subagent/manager.ts +15 -15
- package/src/subagent/types.ts +1 -1
- package/src/telegram/__tests__/webhook-health.test.ts +16 -16
- package/src/telegram/webhook-health.ts +10 -10
- package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
- package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
- package/src/telemetry/config-setting-events-store.ts +1 -1
- package/src/telemetry/config-setting-snapshot.ts +1 -1
- package/src/telemetry/memory-corpus-size.ts +1 -1
- package/src/telemetry/memory-tier-reporter.test.ts +2 -2
- package/src/telemetry/memory-tier-reporter.ts +3 -3
- package/src/telemetry/telemetry-event-sources.test.ts +2 -2
- package/src/telemetry/telemetry-event-sources.ts +9 -9
- package/src/telemetry/telemetry-events-outbox.ts +2 -2
- package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
- package/src/telemetry/telemetry-wire-validation.ts +3 -3
- package/src/telemetry/telemetry-wire.generated.ts +1 -1
- package/src/telemetry/tool-audit.ts +1 -1
- package/src/telemetry/tool-executed-events-store.test.ts +1 -1
- package/src/telemetry/trace-collection-policy.ts +4 -4
- package/src/telemetry/turn-events-store.ts +1 -1
- package/src/telemetry/turn-outcome.ts +1 -1
- package/src/telemetry/turn-trace-store.ts +2 -2
- package/src/telemetry/types.test.ts +1 -1
- package/src/telemetry/types.ts +19 -19
- package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
- package/src/telemetry/usage-telemetry-reporter.ts +17 -17
- package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
- package/src/telemetry/watchdog-direct-emit.ts +10 -10
- package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
- package/src/tools/browser/cdp-client/factory.ts +1 -1
- package/src/tools/computer-use/target.ts +2 -2
- package/src/tools/credentials/store.ts +6 -15
- package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
- package/src/tools/network/__tests__/web-search.test.ts +14 -14
- package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
- package/src/tools/network/web-search.ts +9 -9
- package/src/tools/permission-checker.ts +2 -2
- package/src/tools/shared/input-misuse.ts +1 -1
- package/src/tools/shared/input-repairs.ts +4 -4
- package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
- package/src/tools/skills/find-similar-skills.test.ts +7 -7
- package/src/tools/skills/find-similar-skills.ts +15 -15
- package/src/tools/skills/load.ts +6 -6
- package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
- package/src/tools/skills/skill-script-runner.ts +2 -2
- package/src/tools/terminal/safe-env.ts +3 -3
- package/src/tools/tool-types.ts +2 -2
- package/src/tools/types.ts +2 -2
- package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
- package/src/tools/workflows/manage-workflows.ts +1 -1
- package/src/tools/workspace-tools/loader.ts +1 -1
- package/src/tts/__tests__/cadet-provider.test.ts +5 -5
- package/src/tts/provider-catalog.ts +1 -1
- package/src/tts/providers/cadet-provider.ts +23 -23
- package/src/tts/providers/cadet-tts-socket.ts +2 -2
- package/src/tts/tts-config-resolver.ts +1 -1
- package/src/tts/tts-voice-field.ts +3 -3
- package/src/usage/subagent-attribution.ts +1 -1
- package/src/util/__tests__/process-table.test.ts +47 -0
- package/src/util/canonicalize-identity.ts +1 -1
- package/src/util/cgroup-cpu.ts +5 -5
- package/src/util/cgroup-memory.ts +2 -2
- package/src/util/container-cpu-sampler.ts +4 -4
- package/src/util/disk-usage.ts +4 -4
- package/src/util/errors.ts +3 -3
- package/src/util/oom-priority.ts +1 -1
- package/src/util/platform.ts +5 -5
- package/src/util/process-table.ts +39 -5
- package/src/util/provider-error-patterns.ts +2 -2
- package/src/watch/__tests__/watch-retro.test.ts +2 -2
- package/src/watch/watch-retro.ts +1 -1
- package/src/watcher/__tests__/telemetry.test.ts +2 -2
- package/src/watcher/telemetry.ts +1 -1
- package/src/windows-compiled-cli.ts +1 -1
- package/src/workspace/adaptive-thinking-repair.ts +4 -4
- package/src/workspace/byok-default-profile-ensure.ts +7 -7
- package/src/workspace/git-service.ts +2 -2
- package/src/workspace/migrations/006-services-config.ts +1 -1
- package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
- package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
- package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
- package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
- package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
- package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
- package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
- package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
- package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
- package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
- package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
- package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
- package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
- package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
- package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
- package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
- package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
- package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
- package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
- package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
- package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
- package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
- package/src/workspace/migrations/127-backfill-default-provider.ts +4 -4
- package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
- package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
- package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
- package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
- package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
- package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
- package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
- package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
- package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
- package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
- package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
- package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
- package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
- package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
- package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
- package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
- package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
- package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
- package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
- package/src/workspace/migrations/registry.ts +6 -6
- package/src/workspace/top-level-renderer.ts +1 -1
- package/src/workspace/turn-commit.ts +2 -2
- package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
- package/src/__tests__/mock-gateway-ipc.ts +0 -260
- package/src/api/events/platform-disconnected.ts +0 -21
- package/src/config/platform-rehydration.ts +0 -60
- package/src/platform/feature-gate.ts +0 -8
- package/src/plugins/defaults/platform-hosted/package.json +0 -14
- package/src/runtime/routes/platform-managed-credentials.ts +0 -50
- /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
- /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
-
|
|
4
|
+
getCloudUpstream,
|
|
5
5
|
parseCadetModel,
|
|
6
6
|
} from "../../providers/cadet-model-routing.js";
|
|
7
7
|
import {
|
|
@@ -18,9 +18,9 @@ import {
|
|
|
18
18
|
DEFAULT_PROFILE_KEYS,
|
|
19
19
|
DEFAULT_PROFILE_PROVIDERS,
|
|
20
20
|
FALLBACK_PROFILE_BY_KEY,
|
|
21
|
+
isCloudOnlyProfileKey,
|
|
21
22
|
isDefaultProfileKey,
|
|
22
23
|
isFlagGatedProfileKey,
|
|
23
|
-
isManagedOnlyProfileKey,
|
|
24
24
|
JEV_MANAGED_PROFILE_CALL_SITES,
|
|
25
25
|
JEV_MANAGED_PROFILE_KEY,
|
|
26
26
|
MANAGED_ONLY_PROFILE_KEYS,
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
import { InputModalitiesSchema } from "../input-modalities.js";
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
|
-
* Managed-only keys that are valid reference targets on the
|
|
31
|
+
* Managed-only keys that are valid reference targets on the cloud column
|
|
32
32
|
* whether or not a workspace stub exists. The flag-gated ones (`os-beta`,
|
|
33
33
|
* `auto`) are excluded: they resolve only while their reconciled stub is
|
|
34
34
|
* present, so they enter the reference set through `llm.profiles` alone.
|
|
@@ -77,7 +77,7 @@ export const KNOWN_LLM_PROVIDERS = [
|
|
|
77
77
|
"ionet",
|
|
78
78
|
"poolside",
|
|
79
79
|
"typesafe",
|
|
80
|
-
// Routing identities: "cadet" = the
|
|
80
|
+
// Routing identities: "cadet" = the cloud route (upstream
|
|
81
81
|
// derived from the model at dispatch) and the catalog owner of
|
|
82
82
|
// Cadet-hosted GPU models; "chatgpt" = the subscription route to OpenAI.
|
|
83
83
|
// Dispatch substitutes a concrete upstream before adapter lookup.
|
|
@@ -173,8 +173,8 @@ export function routingIdentityModelIssue(
|
|
|
173
173
|
if (routed) {
|
|
174
174
|
return `Model "${model}" is an encoded routing string; store the native model id "${routed.model}".`;
|
|
175
175
|
}
|
|
176
|
-
return
|
|
177
|
-
? `Model "${model}" is not served by the Cadet
|
|
176
|
+
return getCloudUpstream(model) === null
|
|
177
|
+
? `Model "${model}" is not served by the Cadet Cloud route.`
|
|
178
178
|
: null;
|
|
179
179
|
}
|
|
180
180
|
if (provider === "chatgpt") {
|
|
@@ -506,7 +506,7 @@ const OpenRouterDeepPartialSchema = z.object({
|
|
|
506
506
|
// ---------------------------------------------------------------------------
|
|
507
507
|
|
|
508
508
|
/**
|
|
509
|
-
* Distinguishes daemon-
|
|
509
|
+
* Distinguishes daemon-cloud profiles (overwritten on every startup) from
|
|
510
510
|
* user-created ones (never touched by the daemon).
|
|
511
511
|
*/
|
|
512
512
|
const ProfileSource = z.enum(["managed", "user"]);
|
|
@@ -617,7 +617,7 @@ export type LLMConfigFragment = z.infer<typeof LLMConfigFragment>;
|
|
|
617
617
|
* (`LLMConfigBase` is the all-defaulted VIEW for resolution, never the
|
|
618
618
|
* storage shape). `provider` stays the loose provider set and is clamped at
|
|
619
619
|
* read time via `isDefaultProviderChoice`: a value with no matrix column
|
|
620
|
-
* (keyless ollama, user-endpoint openai-compatible) resolves to the
|
|
620
|
+
* (keyless ollama, user-endpoint openai-compatible) resolves to the cloud
|
|
621
621
|
* column rather than failing the whole blob.
|
|
622
622
|
*/
|
|
623
623
|
export const LLMDefaultConfigSchema = LLMConfigFragment.extend({
|
|
@@ -630,7 +630,7 @@ export type LLMDefaultConfig = z.infer<typeof LLMDefaultConfigSchema>;
|
|
|
630
630
|
* config carries them, for readers that see config.json before the loader's
|
|
631
631
|
* schema parse (boot seed, ensure passes, wire overlays). Each field fails
|
|
632
632
|
* independently so a valid provider survives a bad pin, and a malformed blob
|
|
633
|
-
* reads as empty — both clamp to the
|
|
633
|
+
* reads as empty — both clamp to the cloud column downstream via
|
|
634
634
|
* `isDefaultProviderChoice`.
|
|
635
635
|
*/
|
|
636
636
|
export const RawDefaultSelectionSchema = z
|
|
@@ -710,9 +710,9 @@ export const ProfileEntry = LLMConfigFragment.extend({
|
|
|
710
710
|
inputModalities: InputModalitiesSchema.nullable().optional(),
|
|
711
711
|
/**
|
|
712
712
|
* Absent means active. `.nullable()` matches `label` so the PUT route's
|
|
713
|
-
* "send `null` to clear" sentinel works for status too — a
|
|
713
|
+
* "send `null` to clear" sentinel works for status too — a cloud
|
|
714
714
|
* re-enable body of `{status: null}` clears back to active-by-absence
|
|
715
|
-
* (see `
|
|
715
|
+
* (see `applyCloudProfileReenable`).
|
|
716
716
|
*/
|
|
717
717
|
status: ProfileStatusSchema.nullable().optional(),
|
|
718
718
|
/**
|
|
@@ -727,13 +727,22 @@ export const ProfileEntry = LLMConfigFragment.extend({
|
|
|
727
727
|
*/
|
|
728
728
|
mix: MixSchema.optional(),
|
|
729
729
|
/**
|
|
730
|
-
* Code-owned backup profile for a Cadet
|
|
730
|
+
* Code-owned backup profile for a Cadet Cloud default profile. This is
|
|
731
731
|
* read-only metadata from the default-profile catalog. Config write paths
|
|
732
732
|
* reject user-authored values because custom and BYOK fallback routes are
|
|
733
733
|
* not supported.
|
|
734
734
|
*/
|
|
735
735
|
fallbackProfile: z.string().min(1).optional().meta({ readOnly: true }),
|
|
736
|
-
|
|
736
|
+
/**
|
|
737
|
+
* Wire-only capability flags: stamped onto config-read responses by
|
|
738
|
+
* `enrichProfilesForWire` and stripped from incoming writes by
|
|
739
|
+
* `stripWireOnlyProfileKeys` (conversation-query-routes), so they never
|
|
740
|
+
* persist. Declared here so the wire contract (AssistantConfig → SDK
|
|
741
|
+
* types) describes the enriched profile shape clients consume.
|
|
742
|
+
*/
|
|
743
|
+
supportsVision: z.boolean().optional(),
|
|
744
|
+
invariant: z.boolean().optional(),
|
|
745
|
+
}).meta({ id: "ProfileEntry" });
|
|
737
746
|
export type ProfileEntry = z.infer<typeof ProfileEntry>;
|
|
738
747
|
|
|
739
748
|
/**
|
|
@@ -771,10 +780,10 @@ export type DefaultProviderConfig = {
|
|
|
771
780
|
};
|
|
772
781
|
|
|
773
782
|
/**
|
|
774
|
-
* Whether the
|
|
783
|
+
* Whether the cloud backup profiles (`BACKUP_PROFILE_KEYS`) resolve under a
|
|
775
784
|
* given `llm.default` blob.
|
|
776
785
|
*
|
|
777
|
-
* Backups are companions of the
|
|
786
|
+
* Backups are companions of the cloud (`cadet`) column only: on a BYOK or
|
|
778
787
|
* ChatGPT default provider `defaultProfileBodyForProvider` returns `undefined`
|
|
779
788
|
* for them, because the install may hold no credential for the backup's
|
|
780
789
|
* upstream. So a reference to one is a target that can never resolve there,
|
|
@@ -782,7 +791,7 @@ export type DefaultProviderConfig = {
|
|
|
782
791
|
* cannot show.
|
|
783
792
|
*
|
|
784
793
|
* A missing blob or a `provider` with no matrix column (keyless ollama,
|
|
785
|
-
* user-endpoint openai-compatible) clamps to the
|
|
794
|
+
* user-endpoint openai-compatible) clamps to the cloud column via
|
|
786
795
|
* `isDefaultProviderChoice`, so backups resolve there too.
|
|
787
796
|
*/
|
|
788
797
|
export function backupProfilesResolveUnderDefaultProvider(
|
|
@@ -799,35 +808,35 @@ export function backupProfilesResolveUnderDefaultProvider(
|
|
|
799
808
|
* Why a referenced profile name does not resolve, for the reference error
|
|
800
809
|
* messages. A backup key under a non-managed default provider gets its own
|
|
801
810
|
* reason: the name is real and code-defined, it just has no body outside the
|
|
802
|
-
*
|
|
811
|
+
* cloud column, and "not defined in llm.profiles" would send the reader
|
|
803
812
|
* looking for a missing entry that was never supposed to exist.
|
|
804
813
|
*/
|
|
805
814
|
function unresolvableProfileReason(
|
|
806
815
|
name: string,
|
|
807
816
|
backupsResolve: boolean,
|
|
808
817
|
): string {
|
|
809
|
-
if (backupsResolve || !
|
|
818
|
+
if (backupsResolve || !isCloudOnlyProfileKey(name)) {
|
|
810
819
|
return "is not defined in llm.profiles";
|
|
811
820
|
}
|
|
812
821
|
if (name === JEV_MANAGED_PROFILE_KEY) {
|
|
813
|
-
return "is the
|
|
822
|
+
return "is the cloud Jev profile, which resolves only while llm.default is the cloud provider";
|
|
814
823
|
}
|
|
815
824
|
if (name === AUTO_PROFILE_KEY) {
|
|
816
|
-
return "is the
|
|
825
|
+
return "is the cloud Auto profile, which resolves only while llm.default is the cloud provider";
|
|
817
826
|
}
|
|
818
|
-
return "is a
|
|
827
|
+
return "is a cloud backup profile, which resolves only while llm.default is the cloud provider";
|
|
819
828
|
}
|
|
820
829
|
|
|
821
830
|
/**
|
|
822
831
|
* The `llm.profiles` keys that are reference targets in their own right,
|
|
823
|
-
* given whether the
|
|
832
|
+
* given whether the cloud backups resolve under the current
|
|
824
833
|
* `llm.default`.
|
|
825
834
|
*
|
|
826
835
|
* Every on-disk key qualifies but one: a reserved backup name whose entry is
|
|
827
836
|
* a thin `source: "managed"` stub. The stub is not a profile, it is the
|
|
828
|
-
* workspace's slot for a code-owned one, and it can reach disk on a
|
|
837
|
+
* workspace's slot for a code-owned one, and it can reach disk on a cloud
|
|
829
838
|
* install through nothing more than a `config get` -> `config set` round-trip
|
|
830
|
-
* of the effective profile list (`
|
|
839
|
+
* of the effective profile list (`normalizeCloudProfileWrites` reduces the
|
|
831
840
|
* echoed body to exactly that stub). Counting it as an ordinary raw key would
|
|
832
841
|
* let it launder a backup reference past the provider gate: after a switch to
|
|
833
842
|
* a BYOK or ChatGPT default provider the reference would keep validating
|
|
@@ -846,7 +855,7 @@ function referenceableProfileKeys(
|
|
|
846
855
|
): string[] {
|
|
847
856
|
return Object.entries(profiles ?? {})
|
|
848
857
|
.filter(([name, value]) => {
|
|
849
|
-
if (backupsResolve || !
|
|
858
|
+
if (backupsResolve || !isCloudOnlyProfileKey(name)) {
|
|
850
859
|
return true;
|
|
851
860
|
}
|
|
852
861
|
const entry =
|
|
@@ -874,8 +883,8 @@ function referenceableProfileKeys(
|
|
|
874
883
|
* are read defensively so the raw on-disk shape is safe to pass.
|
|
875
884
|
*
|
|
876
885
|
* `llmDefault` is the sibling `llm.default` value (raw or parsed): it
|
|
877
|
-
* decides whether the
|
|
878
|
-
* on the
|
|
886
|
+
* decides whether the cloud backups are valid targets, since they resolve
|
|
887
|
+
* on the cloud column alone.
|
|
879
888
|
*/
|
|
880
889
|
export function collectFallbackProfileIssues(
|
|
881
890
|
profiles: Record<string, unknown> | undefined,
|
|
@@ -891,8 +900,8 @@ export function collectFallbackProfileIssues(
|
|
|
891
900
|
// (`default-profile-catalog.ts`) and resolve whether or not they are
|
|
892
901
|
// materialized in `llm.profiles`, so their names are always valid
|
|
893
902
|
// fallback targets (same rule as call-site `profile` references). The
|
|
894
|
-
// managed backups resolve the same way, but on the
|
|
895
|
-
// so they are valid targets only under a
|
|
903
|
+
// managed backups resolve the same way, but on the cloud column only,
|
|
904
|
+
// so they are valid targets only under a cloud `llm.default`.
|
|
896
905
|
// A persisted managed stub for a backup name does not change that, see
|
|
897
906
|
// `referenceableProfileKeys`.
|
|
898
907
|
const backupsResolve = backupProfilesResolveUnderDefaultProvider(
|
|
@@ -930,7 +939,7 @@ export function collectFallbackProfileIssues(
|
|
|
930
939
|
if (entry?.source !== "managed" || fallback !== expectedFallback) {
|
|
931
940
|
issues.push({
|
|
932
941
|
profileName: name,
|
|
933
|
-
message: `Profile "${name}" cannot configure fallbackProfile. Automatic fallbacks are code-owned for Cadet
|
|
942
|
+
message: `Profile "${name}" cannot configure fallbackProfile. Automatic fallbacks are code-owned for Cadet Cloud default profiles.`,
|
|
934
943
|
});
|
|
935
944
|
continue;
|
|
936
945
|
}
|
|
@@ -1049,20 +1058,20 @@ export const LLMSchema = z
|
|
|
1049
1058
|
// The always-available default profiles are code-defined
|
|
1050
1059
|
// (`default-profile-catalog.ts`) and resolve whether or not they are
|
|
1051
1060
|
// materialized in `llm.profiles`, so their names are always valid
|
|
1052
|
-
// reference targets. The
|
|
1061
|
+
// reference targets. The cloud backups (`BACKUP_PROFILE_KEYS`) are
|
|
1053
1062
|
// code-defined on the same terms and are listed in the effective
|
|
1054
1063
|
// catalog, so a selection naming one (`activeProfile`, `advisorProfile`,
|
|
1055
1064
|
// a call-site pin) must survive the next load rather than being stripped
|
|
1056
|
-
// back to a default. Backups are scoped to the
|
|
1057
|
-
// they join the set only under a
|
|
1065
|
+
// back to a default. Backups are scoped to the cloud column though, so
|
|
1066
|
+
// they join the set only under a cloud `llm.default`: on a BYOK
|
|
1058
1067
|
// or ChatGPT default provider they have no body to resolve to, and
|
|
1059
1068
|
// keeping the reference would strand a selection the picker cannot show.
|
|
1060
|
-
// The
|
|
1069
|
+
// The cloud Jev profile (`JEV_MANAGED_PROFILE_KEY`) is scoped the same
|
|
1061
1070
|
// way, as a pin target for the judge call sites.
|
|
1062
1071
|
// The flag-gated `os-beta` is excluded: it resolves only while a
|
|
1063
1072
|
// workspace entry exists, so a reference to it is valid only when that
|
|
1064
1073
|
// entry is present in `config.profiles`. A backup name materialized as a
|
|
1065
|
-
// thin managed stub does not re-enter the set on a non-
|
|
1074
|
+
// thin managed stub does not re-enter the set on a non-cloud column
|
|
1066
1075
|
// either, see `referenceableProfileKeys`.
|
|
1067
1076
|
const backupsResolve = backupProfilesResolveUnderDefaultProvider(
|
|
1068
1077
|
config.default,
|
|
@@ -1121,7 +1130,7 @@ export const LLMSchema = z
|
|
|
1121
1130
|
message: `Profile "${config.advisorProfile}" referenced by llm.advisorProfile ${unresolvableProfileReason(config.advisorProfile, backupsResolve)}`,
|
|
1122
1131
|
});
|
|
1123
1132
|
}
|
|
1124
|
-
// The
|
|
1133
|
+
// The cloud Jev profile is a valid reference target for call-site pins
|
|
1125
1134
|
// only. Its model returns structured verdicts rather than chat text, so
|
|
1126
1135
|
// the conversation positions reject it here as well as at the write
|
|
1127
1136
|
// routes, which keeps a raw config write from handing the main agent or
|
|
@@ -41,6 +41,14 @@ const MemoryJobsConfigInputSchema = z.object({
|
|
|
41
41
|
),
|
|
42
42
|
});
|
|
43
43
|
|
|
44
|
+
const MemoryJobsConfigOutputSchema = z.object({
|
|
45
|
+
workerConcurrency: positiveInt("workerConcurrency"),
|
|
46
|
+
stalledJobTimeoutMs: positiveInt("stalledJobTimeoutMs"),
|
|
47
|
+
slowLlmConcurrency: positiveInt("slowLlmConcurrency"),
|
|
48
|
+
fastConcurrency: positiveInt("fastConcurrency"),
|
|
49
|
+
embedConcurrency: positiveInt("embedConcurrency"),
|
|
50
|
+
});
|
|
51
|
+
|
|
44
52
|
export const MemoryJobsConfigSchema = MemoryJobsConfigInputSchema.transform(
|
|
45
53
|
(input) => {
|
|
46
54
|
// When `workerConcurrency` is explicitly set but lane caps are not,
|
|
@@ -76,7 +84,9 @@ export const MemoryJobsConfigSchema = MemoryJobsConfigInputSchema.transform(
|
|
|
76
84
|
embedConcurrency,
|
|
77
85
|
};
|
|
78
86
|
},
|
|
79
|
-
)
|
|
87
|
+
)
|
|
88
|
+
.pipe(MemoryJobsConfigOutputSchema)
|
|
89
|
+
.describe("Memory background job processing configuration");
|
|
80
90
|
|
|
81
91
|
export const MemoryRetentionConfigSchema = z
|
|
82
92
|
.object({
|
|
@@ -20,7 +20,7 @@ export const VALID_INFERENCE_PROVIDERS = [
|
|
|
20
20
|
"openrouter",
|
|
21
21
|
] as const;
|
|
22
22
|
|
|
23
|
-
// `cadet` generates through the
|
|
23
|
+
// `cadet` generates through the cloud runtime proxy; the backend
|
|
24
24
|
// (gemini/openai) derives from the selected model's prefix at request time.
|
|
25
25
|
const VALID_IMAGE_GEN_PROVIDERS = [
|
|
26
26
|
"cadet",
|
|
@@ -60,7 +60,7 @@ const InferenceServiceSchema = z.object({});
|
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
62
|
* Image generation carries no `mode`: `provider` is the only axis. `"cadet"`
|
|
63
|
-
* generates through the
|
|
63
|
+
* generates through the cloud runtime proxy for the model-appropriate
|
|
64
64
|
* backend, billed to Cadet credits; `"gemini"`/`"openai"`/`"openrouter"`
|
|
65
65
|
* use the user's key. A `mode` key sent by an older client is stripped at
|
|
66
66
|
* parse.
|
|
@@ -74,7 +74,7 @@ const ImageGenerationServiceSchema = z.object({
|
|
|
74
74
|
* Web-search carries no `mode`: `provider` is the only axis. `"cadet"`
|
|
75
75
|
* searches through the Cadet Cloud search proxy, billed to Cadet
|
|
76
76
|
* credits; `"inference-provider-native"` prefers the inference model's own
|
|
77
|
-
* hosted search, falling back to the user's keys and then the
|
|
77
|
+
* hosted search, falling back to the user's keys and then the cloud
|
|
78
78
|
* proxy; any other provider uses the user's own API key. A `mode` key sent
|
|
79
79
|
* by an older client is stripped at parse.
|
|
80
80
|
*/
|
|
@@ -90,7 +90,7 @@ const WebSearchServiceSchema = z.object({
|
|
|
90
90
|
});
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
|
-
* Web-fetch carries no `mode`: there is no
|
|
93
|
+
* Web-fetch carries no `mode`: there is no cloud proxy for it, so the only
|
|
94
94
|
* axis is which provider backs the tool.
|
|
95
95
|
*/
|
|
96
96
|
const WebFetchServiceSchema = z.object({
|
|
@@ -183,7 +183,7 @@ export { STT_ROLE_REQUIREMENTS, STT_ROLES, type SttRole };
|
|
|
183
183
|
/**
|
|
184
184
|
* Canonical STT service configuration.
|
|
185
185
|
*
|
|
186
|
-
* `provider` is the only axis: `"cadet"` transcribes through the
|
|
186
|
+
* `provider` is the only axis: `"cadet"` transcribes through the cloud,
|
|
187
187
|
* billed to Cadet credits; any other provider uses the user's own API key.
|
|
188
188
|
*/
|
|
189
189
|
export const SttServiceSchema = z
|
|
@@ -204,7 +204,7 @@ export const SttServiceSchema = z
|
|
|
204
204
|
.describe("Active STT provider used for speech-to-text transcription"),
|
|
205
205
|
/**
|
|
206
206
|
* Spoken-language selection, forwarded to providers whose adapters accept
|
|
207
|
-
* a language (Deepgram, xAI, and the
|
|
207
|
+
* a language (Deepgram, xAI, and the cloud relay).
|
|
208
208
|
*
|
|
209
209
|
* `"multi"` selects Deepgram's nova-3 code-switching mode, which follows
|
|
210
210
|
* a speaker moving between languages inside a single utterance (e.g.
|
|
@@ -220,7 +220,7 @@ export const SttServiceSchema = z
|
|
|
220
220
|
* The default applies on load, not just at creation, so an existing
|
|
221
221
|
* config that never set a language materializes `"multi"` on its next
|
|
222
222
|
* start. That changes no behavior: `effectiveSttLanguage` already
|
|
223
|
-
* resolved unset to `"multi"` on Deepgram and the
|
|
223
|
+
* resolved unset to `"multi"` on Deepgram and the cloud relay, and the
|
|
224
224
|
* providers that detect natively ignore the field either way. It only
|
|
225
225
|
* makes the value explicit. An assistant that has chosen a language
|
|
226
226
|
* keeps it, since a default fills nothing that is already set.
|
|
@@ -52,6 +52,7 @@ function languageVoicesSchema(providerId: string, valuesDescription: string) {
|
|
|
52
52
|
}
|
|
53
53
|
return Object.fromEntries(normalized);
|
|
54
54
|
})
|
|
55
|
+
.pipe(z.record(z.string(), z.string()))
|
|
55
56
|
.optional()
|
|
56
57
|
.describe(
|
|
57
58
|
"Per-language voice overrides for live voice. Keys are normalized on " +
|
|
@@ -70,6 +71,7 @@ export const TtsElevenLabsProviderConfigSchema = z
|
|
|
70
71
|
})
|
|
71
72
|
.transform((v) => v || DEFAULT_ELEVENLABS_VOICE_ID)
|
|
72
73
|
.default(DEFAULT_ELEVENLABS_VOICE_ID)
|
|
74
|
+
.pipe(z.string())
|
|
73
75
|
.describe("ElevenLabs voice ID for text-to-speech"),
|
|
74
76
|
voiceModelId: z
|
|
75
77
|
.string({
|
|
@@ -194,6 +196,7 @@ export const TtsDeepgramProviderConfigSchema = z
|
|
|
194
196
|
})
|
|
195
197
|
.transform((v) => v || "aura-asteria-en")
|
|
196
198
|
.default("aura-asteria-en")
|
|
199
|
+
.pipe(z.string())
|
|
197
200
|
.describe("Deepgram TTS model identifier"),
|
|
198
201
|
format: z
|
|
199
202
|
.enum(["mp3", "wav", "opus"], {
|
|
@@ -221,6 +224,7 @@ export const TtsXaiProviderConfigSchema = z
|
|
|
221
224
|
})
|
|
222
225
|
.transform((v) => v || "eve")
|
|
223
226
|
.default("eve")
|
|
227
|
+
.pipe(z.string())
|
|
224
228
|
.describe(
|
|
225
229
|
"xAI voice ID — one of: eve, ara, rex, sal, leo (case-insensitive)",
|
|
226
230
|
),
|
|
@@ -230,6 +234,7 @@ export const TtsXaiProviderConfigSchema = z
|
|
|
230
234
|
})
|
|
231
235
|
.transform((v) => v || "auto")
|
|
232
236
|
.default("auto")
|
|
237
|
+
.pipe(z.string())
|
|
233
238
|
.describe(
|
|
234
239
|
"BCP-47 language code (e.g. 'en-US') or 'auto' for auto-detection",
|
|
235
240
|
),
|
|
@@ -267,7 +272,7 @@ export const TtsXaiProviderConfigSchema = z
|
|
|
267
272
|
export type TtsXaiProviderConfig = z.infer<typeof TtsXaiProviderConfigSchema>;
|
|
268
273
|
|
|
269
274
|
/**
|
|
270
|
-
* Cadet
|
|
275
|
+
* Cadet Cloud provider configuration under `services.tts.providers`.
|
|
271
276
|
*/
|
|
272
277
|
const TtsCadetProviderConfigSchema = z
|
|
273
278
|
.object({
|
|
@@ -275,17 +280,17 @@ const TtsCadetProviderConfigSchema = z
|
|
|
275
280
|
.string()
|
|
276
281
|
.optional()
|
|
277
282
|
.describe(
|
|
278
|
-
"Managed TTS voice model (e.g. aura-2-thalia-en). Unset means the
|
|
283
|
+
"Managed TTS voice model (e.g. aura-2-thalia-en). Unset means the cloud's default voice. The cloud rejects voices it does not offer.",
|
|
279
284
|
),
|
|
280
285
|
languageVoices: languageVoicesSchema(
|
|
281
286
|
"cadet",
|
|
282
287
|
"values are managed TTS voice models (e.g. aura-2-thalia-en) and must " +
|
|
283
|
-
"be voices offered by the
|
|
288
|
+
"be voices offered by the cloud rate card: an unpriced model is " +
|
|
284
289
|
"rejected by the relay (missing_price), the same contract as " +
|
|
285
290
|
"services.tts.providers.cadet.model.",
|
|
286
291
|
),
|
|
287
292
|
})
|
|
288
|
-
.describe("Cadet
|
|
293
|
+
.describe("Cadet Cloud provider configuration under services.tts");
|
|
289
294
|
|
|
290
295
|
export type TtsCadetProviderConfig = z.infer<
|
|
291
296
|
typeof TtsCadetProviderConfigSchema
|
|
@@ -339,7 +344,7 @@ for (const id of schemaKeys) {
|
|
|
339
344
|
/**
|
|
340
345
|
* Canonical TTS service configuration.
|
|
341
346
|
*
|
|
342
|
-
* `provider` is the only axis: `"cadet"` synthesizes through the
|
|
347
|
+
* `provider` is the only axis: `"cadet"` synthesizes through the cloud,
|
|
343
348
|
* billed to Cadet credits; any other provider uses the user's own API key.
|
|
344
349
|
*/
|
|
345
350
|
export const TtsServiceSchema = z
|
|
@@ -103,7 +103,7 @@ export const VoiceFrontModelConfigSchema = z
|
|
|
103
103
|
)
|
|
104
104
|
.default(1200)
|
|
105
105
|
.describe(
|
|
106
|
-
"Hard budget (ms) for the endpoint decision LLM call. This adds to end-of-turn latency when semantic endpointing is on, so keep it as tight as the decider model's real roundtrip allows. Measured Haiku roundtrips through the
|
|
106
|
+
"Hard budget (ms) for the endpoint decision LLM call. This adds to end-of-turn latency when semantic endpointing is on, so keep it as tight as the decider model's real roundtrip allows. Measured Haiku roundtrips through the cloud proxy run ~670-1130ms (dev), so tighter budgets turn the feature into a fail-open no-op.",
|
|
107
107
|
),
|
|
108
108
|
endpointExtensionMs: z
|
|
109
109
|
.number({
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DrizzleDb } from "../persistence/db-connection.js";
|
|
2
|
-
import {
|
|
2
|
+
import { CADET_CLOUD_PROVIDER } from "../providers/cadet-model-routing.js";
|
|
3
3
|
import { PROVIDERS_REQUIRING_BASE_URL_AND_MODELS } from "../providers/inference/auth.js";
|
|
4
4
|
import {
|
|
5
5
|
createConnection,
|
|
@@ -48,12 +48,12 @@ export type SeedInferenceProfilesOptions = {
|
|
|
48
48
|
* `<provider>-personal` connection backed by the user's API key in CES.
|
|
49
49
|
* The BYOK columns of the intent × provider matrix stamp exactly that
|
|
50
50
|
* connection name (via `resolveDefaultConnectionName`), so the default
|
|
51
|
-
* profiles dispatch through it. Skipped for the
|
|
51
|
+
* profiles dispatch through it. Skipped for the cloud provider — the
|
|
52
52
|
* `cadet` column routes through the canonical platform-backed row, never
|
|
53
53
|
* a user key, so no `cadet-personal` connection exists or is needed.
|
|
54
54
|
*
|
|
55
55
|
* 2. **`llm.default`**: the base blob's `provider` field is written once at
|
|
56
|
-
* hatch time, mirroring the
|
|
56
|
+
* hatch time, mirroring the cloud/managed/BYOK decision, and never
|
|
57
57
|
* overwritten afterward. The default profiles resolve through this
|
|
58
58
|
* provider's matrix column.
|
|
59
59
|
*
|
|
@@ -67,10 +67,10 @@ export function seedInferenceProfiles(
|
|
|
67
67
|
const llm = config.llm;
|
|
68
68
|
const profiles = llm.profiles;
|
|
69
69
|
|
|
70
|
-
const
|
|
71
|
-
process.env.
|
|
70
|
+
const isCloud =
|
|
71
|
+
process.env.IS_CLOUD === "true" || process.env.IS_CLOUD === "1";
|
|
72
72
|
|
|
73
|
-
// A hatch overlay that explicitly selected a
|
|
73
|
+
// A hatch overlay that explicitly selected a cloud connection routes the
|
|
74
74
|
// default provider through cadet rather than the entered BYOK key.
|
|
75
75
|
const hatchSelectedManagedConnection = didHatchSelectManagedConnection(
|
|
76
76
|
llm,
|
|
@@ -78,18 +78,18 @@ export function seedInferenceProfiles(
|
|
|
78
78
|
options,
|
|
79
79
|
);
|
|
80
80
|
|
|
81
|
-
// 1. Personal provider connection: only at hatch time for off-
|
|
81
|
+
// 1. Personal provider connection: only at hatch time for off-cloud
|
|
82
82
|
// installations, backed by the user's API key in CES. The BYOK columns
|
|
83
83
|
// of the intent × provider matrix stamp `<provider>-personal` (via
|
|
84
84
|
// `resolveDefaultConnectionName`), so the connection must exist for the
|
|
85
85
|
// default profiles to dispatch.
|
|
86
86
|
let usableHatchProvider: string | undefined;
|
|
87
|
-
if (options.isHatch && !
|
|
87
|
+
if (options.isHatch && !isCloud) {
|
|
88
88
|
// The hatch overlay writes `llm.default.provider` directly.
|
|
89
89
|
const hatchProvider = llm.default?.provider;
|
|
90
90
|
if (
|
|
91
91
|
hatchProvider &&
|
|
92
|
-
hatchProvider !==
|
|
92
|
+
hatchProvider !== CADET_CLOUD_PROVIDER &&
|
|
93
93
|
hatchProvider !== "ollama" &&
|
|
94
94
|
!PROVIDERS_REQUIRING_BASE_URL_AND_MODELS.has(hatchProvider)
|
|
95
95
|
) {
|
|
@@ -138,7 +138,7 @@ export function seedInferenceProfiles(
|
|
|
138
138
|
llm.default = {
|
|
139
139
|
...blob,
|
|
140
140
|
provider: resolveHatchDefaultProvider(
|
|
141
|
-
|
|
141
|
+
isCloud,
|
|
142
142
|
hatchSelectedManagedConnection,
|
|
143
143
|
usableHatchProvider,
|
|
144
144
|
),
|
|
@@ -150,8 +150,8 @@ export function seedInferenceProfiles(
|
|
|
150
150
|
// Profile lookups below go through the effective view: a default profile
|
|
151
151
|
// resolves from the code catalog whether or not the workspace carries a
|
|
152
152
|
// stub for it, and a stub contributes only its status/label overlays.
|
|
153
|
-
// Resolved against `llm.default` so the
|
|
154
|
-
// available only on the
|
|
153
|
+
// Resolved against `llm.default` so the cloud backups count as
|
|
154
|
+
// available only on the cloud column, matching what the schema accepts
|
|
155
155
|
// as a reference: an `activeProfile` naming a backup on a BYOK install
|
|
156
156
|
// fails the typed load's leaf recovery, reads here as no selection, and
|
|
157
157
|
// is repaired to `balanced` below.
|
|
@@ -186,7 +186,7 @@ export function seedInferenceProfiles(
|
|
|
186
186
|
requestedAdvisorProfile === undefined ||
|
|
187
187
|
requestedAdvisorIsDisabledManaged
|
|
188
188
|
) {
|
|
189
|
-
const defaultAdvisorProfile =
|
|
189
|
+
const defaultAdvisorProfile = firstActiveCloudProfile(effectiveProfiles, [
|
|
190
190
|
"quality-optimized",
|
|
191
191
|
"balanced",
|
|
192
192
|
"cost-optimized",
|
|
@@ -201,7 +201,7 @@ export function seedInferenceProfiles(
|
|
|
201
201
|
// Profile ordering: ensure all seeded profiles appear in the order array.
|
|
202
202
|
// A managed key absent from a workspace's order is placed next to the
|
|
203
203
|
// sibling that precedes it in the catalog rather than appended, so the
|
|
204
|
-
//
|
|
204
|
+
// cloud profiles stay grouped in catalog order even on a workspace whose
|
|
205
205
|
// order already lists custom profiles. Entries already in the order keep
|
|
206
206
|
// their relative positions, so a user arrangement survives.
|
|
207
207
|
const profileOrder = [...llm.profileOrder];
|
|
@@ -246,13 +246,13 @@ export function readObject(value: unknown): Record<string, unknown> | null {
|
|
|
246
246
|
}
|
|
247
247
|
|
|
248
248
|
function resolveHatchDefaultProvider(
|
|
249
|
-
|
|
249
|
+
isCloud: boolean,
|
|
250
250
|
selectedManagedConnection: boolean,
|
|
251
251
|
hatchProvider: string | undefined,
|
|
252
252
|
): string {
|
|
253
253
|
// Platform mode and an explicit managed-connection selection both route
|
|
254
254
|
// through cadet.
|
|
255
|
-
if (
|
|
255
|
+
if (isCloud || selectedManagedConnection) {
|
|
256
256
|
return "cadet";
|
|
257
257
|
}
|
|
258
258
|
if (hatchProvider !== undefined && isDefaultProviderChoice(hatchProvider)) {
|
|
@@ -331,7 +331,7 @@ function pruneRemovedProfileReferences(
|
|
|
331
331
|
}
|
|
332
332
|
}
|
|
333
333
|
|
|
334
|
-
function
|
|
334
|
+
function firstActiveCloudProfile(
|
|
335
335
|
profiles: Record<string, ProfileEntry>,
|
|
336
336
|
names: string[],
|
|
337
337
|
): string | undefined {
|
|
@@ -363,8 +363,8 @@ function didHatchSelectManagedConnection(
|
|
|
363
363
|
return MANAGED_CONNECTION_NAMES.has(explicitConnection);
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
-
// A default-profile name with no explicit connection selects the
|
|
367
|
-
// route: the cadet column IS the
|
|
366
|
+
// A default-profile name with no explicit connection selects the cloud
|
|
367
|
+
// route: the cadet column IS the cloud column, and its profiles route
|
|
368
368
|
// through the canonical cadet row.
|
|
369
369
|
return MANAGED_PROFILE_TEMPLATES[activeProfile] !== undefined;
|
|
370
370
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isSkillCompatibleWithCloud } from "../skills/cloud-compatibility.js";
|
|
2
2
|
import { isAssistantFeatureFlagEnabled } from "./assistant-feature-flags.js";
|
|
3
3
|
import type { AssistantConfig, SkillEntryConfig } from "./schema.js";
|
|
4
4
|
import type { SkillSummary } from "./skills.js";
|
|
@@ -32,7 +32,7 @@ export function resolveSkillStates(
|
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
for (const skill of catalog) {
|
|
35
|
-
if (!
|
|
35
|
+
if (!isSkillCompatibleWithCloud(skill)) {
|
|
36
36
|
continue;
|
|
37
37
|
}
|
|
38
38
|
|
package/src/config/skills.ts
CHANGED
|
@@ -21,14 +21,14 @@ import { z } from "zod";
|
|
|
21
21
|
import type { ClientOs } from "../channels/types.js";
|
|
22
22
|
import { getDefaultPluginSkillRoots } from "../plugins/defaults/main.js";
|
|
23
23
|
import { isPluginDisabled } from "../plugins/disabled-state.js";
|
|
24
|
-
import { parseFrontmatterFields } from "../skills/frontmatter.js";
|
|
25
|
-
import type { InlineCommandExpansion } from "../skills/inline-command-expansions.js";
|
|
26
|
-
import { parseInlineCommandExpansions } from "../skills/inline-command-expansions.js";
|
|
27
24
|
import {
|
|
28
25
|
normalizeSkillPlatforms,
|
|
29
26
|
SKILL_PLATFORM_VALUES,
|
|
30
27
|
type SkillPlatform,
|
|
31
|
-
} from "../skills/
|
|
28
|
+
} from "../skills/cloud-compatibility.js";
|
|
29
|
+
import { parseFrontmatterFields } from "../skills/frontmatter.js";
|
|
30
|
+
import type { InlineCommandExpansion } from "../skills/inline-command-expansions.js";
|
|
31
|
+
import { parseInlineCommandExpansions } from "../skills/inline-command-expansions.js";
|
|
32
32
|
import { parseToolManifestFile } from "../skills/tool-manifest.js";
|
|
33
33
|
import { computeSkillVersionHash } from "../skills/version-hash.js";
|
|
34
34
|
import type { OwnerInfo } from "../tools/types.js";
|
|
@@ -34,8 +34,8 @@ interface GatedProfile {
|
|
|
34
34
|
place: (profileOrder: string[]) => void;
|
|
35
35
|
/**
|
|
36
36
|
* Whether a BYOK install first materializes the stub disabled. True for a
|
|
37
|
-
* profile whose
|
|
38
|
-
* the
|
|
37
|
+
* profile whose cloud route exists but is unusable until the user enables
|
|
38
|
+
* the cloud connection; false for a cloud-only profile, whose stub has
|
|
39
39
|
* no body on a BYOK column and so is never offered there anyway.
|
|
40
40
|
*/
|
|
41
41
|
byokStartsDisabled: boolean;
|
|
@@ -67,7 +67,7 @@ const GATED_PROFILES: readonly GatedProfile[] = [
|
|
|
67
67
|
];
|
|
68
68
|
|
|
69
69
|
/**
|
|
70
|
-
* Reconcile flag-gated
|
|
70
|
+
* Reconcile flag-gated cloud profiles against the current feature-flag state.
|
|
71
71
|
*
|
|
72
72
|
* `seedInferenceProfiles()` runs synchronously at boot before feature flags are
|
|
73
73
|
* available, so the gated profiles (OS Beta, Auto) are materialized here once
|
|
@@ -97,9 +97,9 @@ export function reconcileFlagGatedProfiles(): boolean {
|
|
|
97
97
|
: [];
|
|
98
98
|
llm.profileOrder = profileOrder;
|
|
99
99
|
|
|
100
|
-
const
|
|
101
|
-
process.env.
|
|
102
|
-
const isByokMode = !
|
|
100
|
+
const isCloud =
|
|
101
|
+
process.env.IS_CLOUD === "true" || process.env.IS_CLOUD === "1";
|
|
102
|
+
const isByokMode = !isCloud;
|
|
103
103
|
|
|
104
104
|
let changed = false;
|
|
105
105
|
for (const gated of GATED_PROFILES) {
|
|
@@ -154,7 +154,7 @@ function enableProfile(
|
|
|
154
154
|
// `topP`).
|
|
155
155
|
const next: Record<string, unknown> = { source: "managed" };
|
|
156
156
|
|
|
157
|
-
// BYOK installs create the stub disabled: the
|
|
157
|
+
// BYOK installs create the stub disabled: the cloud inference connection
|
|
158
158
|
// backing this profile isn't usable until the user enables it, so a fresh
|
|
159
159
|
// entry starts disabled to avoid offering an unusable route. The
|
|
160
160
|
// " (Managed)" label suffix disambiguates it from personal profiles in
|
|
@@ -251,7 +251,7 @@ function disableProfile(
|
|
|
251
251
|
typeof llm.advisorProfile === "string" &&
|
|
252
252
|
removed.has(llm.advisorProfile)
|
|
253
253
|
) {
|
|
254
|
-
// Repoint the advisor at the
|
|
254
|
+
// Repoint the advisor at the cloud Quality profile (the strongest).
|
|
255
255
|
// `quality-optimized` is an always-available code-catalog default, so it
|
|
256
256
|
// resolves whether or not a workspace stub exists.
|
|
257
257
|
llm.advisorProfile = "quality-optimized";
|