@mycadet/assistant 0.12.7 → 0.12.9
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 +2 -2
- 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/package.json +1 -1
- package/node_modules/@mycadet/ces-client/src/__tests__/ces-client.test.ts +14 -14
- 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 +2 -2
- 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 +2 -2
- 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 +6804 -799
- 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} +77 -75
- 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-set-route.test.ts +12 -8
- 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 +28 -40
- 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 +134 -288
- 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 +1 -2
- package/src/__tests__/mcp-client-auth.test.ts +1 -2
- package/src/__tests__/mcp-config-secret-boundary.test.ts +44 -40
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +1 -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-store-credential.test.ts +4 -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 +222 -536
- package/src/__tests__/skills-files-catalog-fallback.test.ts +259 -577
- 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-cloud-login.ts +18 -0
- 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__/callback-routes-list.test.ts +2 -2
- 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/cloud/index.ts +1 -1
- package/src/cli/commands/config.ts +2 -2
- 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__/substrate-twin-shadowing.test.ts +36 -26
- 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 +21 -26
- 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 +29 -10
- package/src/config/schemas/llm.ts +36 -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/substrate-twin-shadowing.ts +12 -17
- package/src/config/sync-gated-profiles.ts +8 -9
- 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 +2 -23
- package/src/credential-health/credential-health-service.ts +59 -70
- 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 +32 -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/__tests__/memory-tier-boundary-guard.test.ts +5 -0
- 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 +126 -82
- 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} +86 -119
- package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +345 -667
- 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 +20 -61
- 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 +2 -20
- 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/layout.ts +479 -0
- package/src/util/oom-priority.ts +1 -1
- package/src/util/platform.ts +12 -468
- 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 +6 -6
- 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/api/events/show-platform-login.ts +0 -20
- 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
|
@@ -24,13 +24,13 @@ mock.module("../provider-availability.js", () => ({
|
|
|
24
24
|
: "absent",
|
|
25
25
|
}));
|
|
26
26
|
|
|
27
|
-
mock.module("../
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
mock.module("../cloud-proxy/context.js", () => ({
|
|
28
|
+
hasCloudProxyPrereqs: async () => platformLoggedIn,
|
|
29
|
+
resolveCloudProxyContext: async () => ({
|
|
30
30
|
enabled: platformLoggedIn,
|
|
31
31
|
// Base URL configured: an unauthenticated result must come from the
|
|
32
32
|
// credential probe, so CES outages stay distinguishable.
|
|
33
|
-
|
|
33
|
+
cloudBaseUrl: "https://platform",
|
|
34
34
|
assistantApiKey: platformLoggedIn ? "key" : "",
|
|
35
35
|
}),
|
|
36
36
|
}));
|
|
@@ -74,11 +74,11 @@ beforeEach(() => {
|
|
|
74
74
|
secureKeys = { "credential/anthropic/api_key": "sk-ant" };
|
|
75
75
|
cesUnreachable = false;
|
|
76
76
|
platformLoggedIn = false;
|
|
77
|
-
delete process.env.
|
|
77
|
+
delete process.env.IS_CLOUD;
|
|
78
78
|
});
|
|
79
79
|
|
|
80
80
|
afterEach(() => {
|
|
81
|
-
delete process.env.
|
|
81
|
+
delete process.env.IS_CLOUD;
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
describe("preflightResolvedConfig", () => {
|
|
@@ -140,7 +140,7 @@ describe("preflightResolvedConfig", () => {
|
|
|
140
140
|
).resolves.toBeUndefined();
|
|
141
141
|
});
|
|
142
142
|
|
|
143
|
-
test("a cadet identity without a
|
|
143
|
+
test("a cadet identity without a cloud login throws platform_unauthenticated", async () => {
|
|
144
144
|
connectionsByName["cadet"] = {
|
|
145
145
|
name: "cadet",
|
|
146
146
|
provider: "cadet",
|
|
@@ -153,9 +153,9 @@ describe("preflightResolvedConfig", () => {
|
|
|
153
153
|
expect(err?.reason).toBe("platform_unauthenticated");
|
|
154
154
|
});
|
|
155
155
|
|
|
156
|
-
test("a user-owned row claiming the cadet name preflights the
|
|
156
|
+
test("a user-owned row claiming the cadet name preflights the cloud", async () => {
|
|
157
157
|
// Dispatch ignores that row, so its credential is irrelevant to the
|
|
158
|
-
// verdict: signed in passes, signed out is the
|
|
158
|
+
// verdict: signed in passes, signed out is the cloud's own failure.
|
|
159
159
|
connectionsByName["cadet"] = {
|
|
160
160
|
name: "cadet",
|
|
161
161
|
provider: "openai",
|
|
@@ -295,7 +295,7 @@ describe("preflightResolvedConfig", () => {
|
|
|
295
295
|
expect(err?.reason).toBe("model_incompatible");
|
|
296
296
|
});
|
|
297
297
|
|
|
298
|
-
test("the cadet
|
|
298
|
+
test("the cadet cloud connection serves managed-routable providers when logged in", async () => {
|
|
299
299
|
connectionsByName = {
|
|
300
300
|
cadet: {
|
|
301
301
|
name: "cadet",
|
|
@@ -315,7 +315,7 @@ describe("preflightResolvedConfig", () => {
|
|
|
315
315
|
expect(err?.reason).toBe("platform_unauthenticated");
|
|
316
316
|
});
|
|
317
317
|
|
|
318
|
-
test("the cadet
|
|
318
|
+
test("the cadet cloud connection rejects non-managed-routable providers", async () => {
|
|
319
319
|
connectionsByName = {
|
|
320
320
|
cadet: {
|
|
321
321
|
name: "cadet",
|
|
@@ -330,7 +330,7 @@ describe("preflightResolvedConfig", () => {
|
|
|
330
330
|
expect(err?.reason).toBe("provider_mismatch");
|
|
331
331
|
});
|
|
332
332
|
|
|
333
|
-
test("
|
|
333
|
+
test("cloud-auth connections require a cloud login", async () => {
|
|
334
334
|
connectionsByName["anthropic-personal"] = {
|
|
335
335
|
name: "anthropic-personal",
|
|
336
336
|
provider: "anthropic",
|
|
@@ -363,7 +363,7 @@ describe("preflightResolvedConfig", () => {
|
|
|
363
363
|
});
|
|
364
364
|
});
|
|
365
365
|
|
|
366
|
-
describe("preflightResolvedConfig
|
|
366
|
+
describe("preflightResolvedConfig cloud credential messaging", () => {
|
|
367
367
|
const platformManaged = () => {
|
|
368
368
|
connectionsByName = {
|
|
369
369
|
cadet: {
|
|
@@ -372,7 +372,7 @@ describe("preflightResolvedConfig platform-managed credential messaging", () =>
|
|
|
372
372
|
auth: { type: "platform" },
|
|
373
373
|
},
|
|
374
374
|
};
|
|
375
|
-
process.env.
|
|
375
|
+
process.env.IS_CLOUD = "true";
|
|
376
376
|
};
|
|
377
377
|
const managedRoute = () => resolved({ provider_connection: "cadet" });
|
|
378
378
|
|
|
@@ -400,7 +400,7 @@ describe("preflightResolvedConfig platform-managed credential messaging", () =>
|
|
|
400
400
|
expect(await preflightError(managedRoute())).toBeUndefined();
|
|
401
401
|
});
|
|
402
402
|
|
|
403
|
-
test("non-
|
|
403
|
+
test("non-cloud install keeps the log-in-or-switch wording", async () => {
|
|
404
404
|
connectionsByName = {
|
|
405
405
|
cadet: {
|
|
406
406
|
name: "cadet",
|
|
@@ -408,7 +408,7 @@ describe("preflightResolvedConfig platform-managed credential messaging", () =>
|
|
|
408
408
|
auth: { type: "platform" },
|
|
409
409
|
},
|
|
410
410
|
};
|
|
411
|
-
//
|
|
411
|
+
// IS_CLOUD left unset covers both local and self-hosted Docker installs.
|
|
412
412
|
const err = await preflightError(managedRoute());
|
|
413
413
|
expect(err?.reason).toBe("platform_unauthenticated");
|
|
414
414
|
expect(err?.message).toContain("log in or pick a different provider");
|
|
@@ -443,7 +443,7 @@ describe("RetryProvider — callSite resolution", () => {
|
|
|
443
443
|
// The profile declares `provider: "cadet"` (the provider-agnostic managed
|
|
444
444
|
// sentinel) and the real upstream comes from the model id, so the stub is
|
|
445
445
|
// named for that resolved upstream rather than the sentinel, matching what
|
|
446
|
-
// `createAdapterFromConnection` builds for a
|
|
446
|
+
// `createAdapterFromConnection` builds for a cloud route.
|
|
447
447
|
setLlmConfig({});
|
|
448
448
|
|
|
449
449
|
const expected = CODE_DEFAULT_PROFILE_ENTRIES["latency-optimized"];
|
|
@@ -94,7 +94,7 @@ mock.module("../inference/connections.js", () => ({
|
|
|
94
94
|
|
|
95
95
|
// Connection names that should make `resolveProviderFromConnection` throw —
|
|
96
96
|
// simulates a transient failure inside auth resolution (credential read,
|
|
97
|
-
//
|
|
97
|
+
// cloud-proxy context lookup) bubbling up from the inner registry call.
|
|
98
98
|
const connectionsThatThrowOnResolve = new Set<string>();
|
|
99
99
|
|
|
100
100
|
mock.module("../registry.js", () => ({
|
|
@@ -186,14 +186,14 @@ describe("CallSiteRoutingProvider honors provider_connection (satellite gate)",
|
|
|
186
186
|
|
|
187
187
|
setLlmConfig({
|
|
188
188
|
profiles: {
|
|
189
|
-
"
|
|
189
|
+
"cloud-profile": {
|
|
190
190
|
provider: "anthropic",
|
|
191
191
|
provider_connection: "anthropic-managed",
|
|
192
192
|
model: "claude-opus-4-7",
|
|
193
193
|
},
|
|
194
194
|
},
|
|
195
195
|
callSites: {
|
|
196
|
-
replySuggestion: { profile: "
|
|
196
|
+
replySuggestion: { profile: "cloud-profile" },
|
|
197
197
|
},
|
|
198
198
|
});
|
|
199
199
|
|
|
@@ -406,7 +406,7 @@ describe("CallSiteRoutingProvider honors provider_connection (satellite gate)",
|
|
|
406
406
|
|
|
407
407
|
test("transient auth-resolution failure → falls back to default (graceful per-call degradation)", async () => {
|
|
408
408
|
// Simulates a transient error inside `resolveProviderFromConnection`
|
|
409
|
-
// (e.g. a credential read fails, or
|
|
409
|
+
// (e.g. a credential read fails, or cloud-proxy context lookup
|
|
410
410
|
// throws). The connection-resolution helper catches transient throws
|
|
411
411
|
// and returns null. The wrapper then falls back to the default
|
|
412
412
|
// Provider so a credential blip does not take inference offline.
|
|
@@ -37,7 +37,7 @@ describe("search-provider-catalog", () => {
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
|
|
40
|
-
test("
|
|
40
|
+
test("cloud providers omit BYOK-only fields", () => {
|
|
41
41
|
const managed = SEARCH_PROVIDER_CATALOG.filter((p) => p.kind === "managed");
|
|
42
42
|
for (const provider of managed) {
|
|
43
43
|
expect(provider.envVar).toBeUndefined();
|
|
@@ -75,7 +75,7 @@ describe("search-provider-catalog", () => {
|
|
|
75
75
|
expect(SEARCH_PROVIDER_FALLBACK_ORDER).toEqual(sorted);
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
test("cadet is a
|
|
78
|
+
test("cadet is a cloud provider outside the BYOK fallback chain", () => {
|
|
79
79
|
expect(getSearchProvider("cadet")?.kind).toBe("managed");
|
|
80
80
|
expect(BYOK_SEARCH_PROVIDERS.map((p) => p.id)).not.toContain("cadet");
|
|
81
81
|
expect(SEARCH_PROVIDER_FALLBACK_ORDER).not.toContain("cadet");
|
|
@@ -50,10 +50,10 @@ describe("describeSttFailure", () => {
|
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
describe("
|
|
53
|
+
describe("cloud speech (userFacing marker)", () => {
|
|
54
54
|
test("auth failure surfaces the reconnect remediation verbatim", () => {
|
|
55
55
|
const message =
|
|
56
|
-
"
|
|
56
|
+
"Cloud speech needs a working Cadet Cloud connection — reconnect with 'assistant cloud connect'.";
|
|
57
57
|
const copy = describeSttFailure(
|
|
58
58
|
new SttError("auth", message, { userFacing: true }),
|
|
59
59
|
"cadet",
|
|
@@ -77,7 +77,7 @@ describe("describeSttFailure", () => {
|
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
test("passthrough does not depend on the provider label", () => {
|
|
80
|
-
const message = "
|
|
80
|
+
const message = "Cloud speech relay error: upstream_error";
|
|
81
81
|
const copy = describeSttFailure(
|
|
82
82
|
new SttError("provider-error", message, { userFacing: true }),
|
|
83
83
|
undefined,
|
|
@@ -153,7 +153,7 @@ export function deriveAnthropicReason(
|
|
|
153
153
|
const status = error.status;
|
|
154
154
|
const haystack = `${apiType ?? ""} ${error.message ?? ""}`;
|
|
155
155
|
|
|
156
|
-
// The
|
|
156
|
+
// The cloud proxy's daily-limit 402 shares the status with generic credit
|
|
157
157
|
// exhaustion; match its specific body code first so it isn't swallowed.
|
|
158
158
|
if (FREE_TIER_DAILY_LIMIT_PATTERNS.some((re) => re.test(haystack))) {
|
|
159
159
|
return "free_tier_daily_limit_reached";
|
|
@@ -11,7 +11,7 @@ export interface CadetProviderOptions {
|
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* OpenAI-compatible client for Cadet-hosted GPU inference.
|
|
14
|
-
* Managed requests set `baseURL` to the
|
|
14
|
+
* Managed requests set `baseURL` to the cloud `/v1/runtime-proxy/cadet`
|
|
15
15
|
* path and authenticate with the assistant API key. These models have no
|
|
16
16
|
* bring-your-own-key path.
|
|
17
17
|
*/
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { describe, expect, test } from "bun:test";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
+
CLOUD_ROUTABLE_PROVIDERS,
|
|
4
5
|
formatCadetModel,
|
|
5
|
-
|
|
6
|
-
MANAGED_ROUTABLE_PROVIDERS,
|
|
6
|
+
getCloudUpstream,
|
|
7
7
|
parseCadetModel,
|
|
8
8
|
} from "./cadet-model-routing.js";
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ describe("cadet-model-routing", () => {
|
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
28
|
|
|
29
|
-
test("format rejects a non-
|
|
29
|
+
test("format rejects a non-cloud provider", () => {
|
|
30
30
|
expect(() => formatCadetModel("openrouter", "x")).toThrow();
|
|
31
31
|
expect(() => formatCadetModel("fireworks", "")).toThrow();
|
|
32
32
|
});
|
|
@@ -39,35 +39,35 @@ describe("cadet-model-routing", () => {
|
|
|
39
39
|
expect(parseCadetModel("/foo")).toBeNull(); // empty provider
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
test("
|
|
43
|
-
expect(
|
|
44
|
-
expect(
|
|
42
|
+
test("getCloudUpstream resolves a bare catalog id to its owner", () => {
|
|
43
|
+
expect(getCloudUpstream("claude-fable-5")).toBe("anthropic");
|
|
44
|
+
expect(getCloudUpstream("qwen/qwen3-8b")).toBe("cadet");
|
|
45
45
|
});
|
|
46
46
|
|
|
47
|
-
test("
|
|
47
|
+
test("getCloudUpstream resolves a routing string by its prefix", () => {
|
|
48
48
|
expect(
|
|
49
|
-
|
|
49
|
+
getCloudUpstream("fireworks/accounts/fireworks/models/minimax-m3"),
|
|
50
50
|
).toBe("fireworks");
|
|
51
51
|
});
|
|
52
52
|
|
|
53
|
-
test("
|
|
54
|
-
expect(
|
|
55
|
-
expect(
|
|
53
|
+
test("getCloudUpstream returns null for non-managed owners", () => {
|
|
54
|
+
expect(getCloudUpstream("MiniMax-M3")).toBeNull(); // minimax, not managed
|
|
55
|
+
expect(getCloudUpstream("openrouter/whatever")).toBeNull();
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
test("
|
|
59
|
-
expect(
|
|
60
|
-
expect(
|
|
58
|
+
test("getCloudUpstream returns null for unknown models", () => {
|
|
59
|
+
expect(getCloudUpstream("not-a-real-model")).toBeNull();
|
|
60
|
+
expect(getCloudUpstream("")).toBeNull();
|
|
61
61
|
});
|
|
62
62
|
|
|
63
|
-
test("
|
|
64
|
-
expect(
|
|
65
|
-
expect(
|
|
63
|
+
test("getCloudUpstream rejects managed-prefixed strings whose model is not cataloged under that provider", () => {
|
|
64
|
+
expect(getCloudUpstream("anthropic/definitely-not-a-model")).toBeNull();
|
|
65
|
+
expect(getCloudUpstream("openai/accounts/foo/bar")).toBeNull();
|
|
66
66
|
});
|
|
67
67
|
|
|
68
|
-
test("managed set matches the
|
|
68
|
+
test("managed set matches the cloud proxy table", () => {
|
|
69
69
|
// Guards against drift if PLATFORM_PROVIDER_META changes.
|
|
70
|
-
expect([...
|
|
70
|
+
expect([...CLOUD_ROUTABLE_PROVIDERS].sort()).toEqual([
|
|
71
71
|
"anthropic",
|
|
72
72
|
"cadet",
|
|
73
73
|
"fireworks",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Codec for Cadet
|
|
2
|
+
* Codec for Cadet Cloud model routing strings.
|
|
3
3
|
*
|
|
4
4
|
* A single `cadet` provider connection is provider-agnostic: unlike the
|
|
5
5
|
* per-provider `*-managed` connections it does not carry the upstream provider
|
|
@@ -14,26 +14,26 @@
|
|
|
14
14
|
* codec — no I/O, no wiring — so it can be adopted incrementally.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
+
import { PLATFORM_PROVIDER_META } from "./cloud-proxy/constants.js";
|
|
17
18
|
import {
|
|
18
19
|
getCatalogProviderForModel,
|
|
19
20
|
isModelInCatalog,
|
|
20
21
|
} from "./model-catalog.js";
|
|
21
|
-
import { PLATFORM_PROVIDER_META } from "./platform-proxy/constants.js";
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
|
-
* Provider ids that can front a Cadet
|
|
24
|
+
* Provider ids that can front a Cadet Cloud (platform-proxied) route.
|
|
25
25
|
* Only these are valid prefixes for a routing string; everything else
|
|
26
26
|
* (openrouter, ollama, openai-compatible, or a raw native model id) is not a
|
|
27
27
|
* Cadet-routed string and `parseCadetModel` returns null for it.
|
|
28
28
|
*/
|
|
29
|
-
export const
|
|
29
|
+
export const CLOUD_ROUTABLE_PROVIDERS: ReadonlySet<string> = new Set(
|
|
30
30
|
Object.values(PLATFORM_PROVIDER_META)
|
|
31
31
|
.filter((m) => m.managed)
|
|
32
32
|
.map((m) => m.name),
|
|
33
33
|
);
|
|
34
34
|
|
|
35
35
|
/**
|
|
36
|
-
* Sentinel provider id for the single, provider-agnostic Cadet
|
|
36
|
+
* Sentinel provider id for the single, provider-agnostic Cadet Cloud
|
|
37
37
|
* connection. Unlike the per-provider `*-managed` connections, this one does
|
|
38
38
|
* not name an upstream provider on its DB row — the upstream is determined
|
|
39
39
|
* per-request from the resolving profile. The same id is the catalog owner
|
|
@@ -41,10 +41,10 @@ export const MANAGED_ROUTABLE_PROVIDERS: ReadonlySet<string> = new Set(
|
|
|
41
41
|
* factory id (including `cadet` when that is the catalog owner) before
|
|
42
42
|
* adapter lookup.
|
|
43
43
|
*/
|
|
44
|
-
export const
|
|
44
|
+
export const CADET_CLOUD_PROVIDER = "cadet";
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
|
-
* Name of the single provider-agnostic Cadet
|
|
47
|
+
* Name of the single provider-agnostic Cadet Cloud connection row. The
|
|
48
48
|
* connection carries platform auth and the `cadet` sentinel instead of a
|
|
49
49
|
* real upstream; the upstream is chosen per-request from the resolving
|
|
50
50
|
* profile's provider. Lives in this pure module (rather than
|
|
@@ -52,23 +52,23 @@ export const CADET_MANAGED_PROVIDER = "cadet";
|
|
|
52
52
|
* default-profile catalog can reference it without importing the
|
|
53
53
|
* DB-connected module graph.
|
|
54
54
|
*/
|
|
55
|
-
export const
|
|
55
|
+
export const CADET_CLOUD_CONNECTION_NAME = "cadet";
|
|
56
56
|
|
|
57
57
|
/**
|
|
58
|
-
* Whether a connection is the provider-agnostic Cadet
|
|
59
|
-
* The provider column alone identifies the
|
|
58
|
+
* Whether a connection is the provider-agnostic Cadet Cloud connection.
|
|
59
|
+
* The provider column alone identifies the cloud route: platform auth
|
|
60
60
|
* always accompanies it (auth derivation pairs them, the connection routes
|
|
61
61
|
* reject writes that split them, and DB migration 361 reconciles stored
|
|
62
62
|
* rows).
|
|
63
63
|
* Structurally typed so this stays a pure module with no connection-schema
|
|
64
64
|
* import.
|
|
65
65
|
*/
|
|
66
|
-
export function
|
|
67
|
-
return conn.provider ===
|
|
66
|
+
export function isCadetCloudConnection(conn: { provider: string }): boolean {
|
|
67
|
+
return conn.provider === CADET_CLOUD_PROVIDER;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
export interface CadetModelRoute {
|
|
71
|
-
/** Upstream provider id, e.g. "fireworks". Always a
|
|
71
|
+
/** Upstream provider id, e.g. "fireworks". Always a cloud-routable id. */
|
|
72
72
|
provider: string;
|
|
73
73
|
/** Native upstream model id, slashes intact, e.g. "accounts/fireworks/models/minimax-m3". */
|
|
74
74
|
model: string;
|
|
@@ -79,10 +79,10 @@ export interface CadetModelRoute {
|
|
|
79
79
|
* Throws on a non-routable provider — that is a caller bug, not user input.
|
|
80
80
|
*/
|
|
81
81
|
export function formatCadetModel(provider: string, model: string): string {
|
|
82
|
-
if (!
|
|
82
|
+
if (!CLOUD_ROUTABLE_PROVIDERS.has(provider)) {
|
|
83
83
|
throw new Error(
|
|
84
|
-
`formatCadetModel: "${provider}" is not a Cadet
|
|
85
|
-
`(expected one of ${[...
|
|
84
|
+
`formatCadetModel: "${provider}" is not a Cadet Cloud provider ` +
|
|
85
|
+
`(expected one of ${[...CLOUD_ROUTABLE_PROVIDERS].join(", ")})`,
|
|
86
86
|
);
|
|
87
87
|
}
|
|
88
88
|
if (!model) {
|
|
@@ -97,7 +97,7 @@ export function formatCadetModel(provider: string, model: string): string {
|
|
|
97
97
|
* Splits on the FIRST slash only so native ids that themselves contain
|
|
98
98
|
* slashes (Fireworks `accounts/fireworks/models/...`) round-trip losslessly.
|
|
99
99
|
* Returns null when the string is not a Cadet-routed model — no slash, empty
|
|
100
|
-
* model, or a prefix that is not a
|
|
100
|
+
* model, or a prefix that is not a cloud-routable provider.
|
|
101
101
|
*
|
|
102
102
|
* Note: `anthropic/…` is also OpenRouter's native id shape, so this codec
|
|
103
103
|
* must only be applied in a Cadet-connection context. OpenRouter is
|
|
@@ -114,26 +114,26 @@ export function parseCadetModel(routingString: string): CadetModelRoute | null {
|
|
|
114
114
|
if (!model) {
|
|
115
115
|
return null;
|
|
116
116
|
}
|
|
117
|
-
if (!
|
|
117
|
+
if (!CLOUD_ROUTABLE_PROVIDERS.has(provider)) {
|
|
118
118
|
return null;
|
|
119
119
|
}
|
|
120
120
|
return { provider, model };
|
|
121
121
|
}
|
|
122
122
|
|
|
123
123
|
/**
|
|
124
|
-
* Resolve the
|
|
124
|
+
* Resolve the cloud upstream provider for a model referenced by a
|
|
125
125
|
* `provider: "cadet"` profile. Such a profile carries no upstream of its own,
|
|
126
126
|
* so the model alone determines it: a `<provider>/<model>` routing string
|
|
127
127
|
* names the upstream directly, and a bare id resolves to its catalog owner.
|
|
128
128
|
* Returns null when the model has no managed-routable upstream (unknown id,
|
|
129
|
-
* or owned by a non-
|
|
129
|
+
* or owned by a non-cloud provider like openrouter).
|
|
130
130
|
*
|
|
131
131
|
* A decoded routing string must also name a real catalog model under its
|
|
132
132
|
* prefix: OpenRouter/Vercel native ids share the `<provider>/<model>` shape
|
|
133
133
|
* (e.g. `anthropic/…`), so an unvalidated prefix match could route an
|
|
134
|
-
* arbitrary non-managed id through the
|
|
134
|
+
* arbitrary non-managed id through the cloud proxy.
|
|
135
135
|
*/
|
|
136
|
-
export function
|
|
136
|
+
export function getCloudUpstream(model: string): string | null {
|
|
137
137
|
const route = parseCadetModel(model);
|
|
138
138
|
if (route) {
|
|
139
139
|
return isModelInCatalog(route.provider, route.model)
|
|
@@ -141,7 +141,7 @@ export function getManagedUpstream(model: string): string | null {
|
|
|
141
141
|
: null;
|
|
142
142
|
}
|
|
143
143
|
const owner = getCatalogProviderForModel(model);
|
|
144
|
-
return owner !== undefined &&
|
|
144
|
+
return owner !== undefined && CLOUD_ROUTABLE_PROVIDERS.has(owner)
|
|
145
145
|
? owner
|
|
146
146
|
: null;
|
|
147
147
|
}
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
ConnectionResolutionError,
|
|
42
42
|
dispatchProviderResolvable,
|
|
43
43
|
expectedVendorProvider,
|
|
44
|
-
|
|
44
|
+
isCloudConnectionRoute,
|
|
45
45
|
resolveEntryConnectionName,
|
|
46
46
|
resolveEntryProviderKind,
|
|
47
47
|
resolveRoutingIdentity,
|
|
@@ -64,7 +64,7 @@ interface SelectedProviderRoute {
|
|
|
64
64
|
provider: Provider;
|
|
65
65
|
connectionName?: string;
|
|
66
66
|
profileName?: string;
|
|
67
|
-
|
|
67
|
+
isCloudRoute?: boolean;
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
export class CallSiteRoutingProvider implements Provider {
|
|
@@ -151,8 +151,8 @@ export class CallSiteRoutingProvider implements Provider {
|
|
|
151
151
|
...(selectedRoute.profileName
|
|
152
152
|
? { profileName: selectedRoute.profileName }
|
|
153
153
|
: {}),
|
|
154
|
-
...(selectedRoute.
|
|
155
|
-
? {
|
|
154
|
+
...(selectedRoute.isCloudRoute !== undefined
|
|
155
|
+
? { isCloudRoute: selectedRoute.isCloudRoute }
|
|
156
156
|
: {}),
|
|
157
157
|
});
|
|
158
158
|
}
|
|
@@ -237,7 +237,7 @@ export class CallSiteRoutingProvider implements Provider {
|
|
|
237
237
|
* 3. No `provider_connection` → auto-resolve a connection for the
|
|
238
238
|
* resolved provider and route through it. This runs even when the
|
|
239
239
|
* provider matches the default's name: the default transport may
|
|
240
|
-
* ride the
|
|
240
|
+
* ride the cloud (platform-billed) connection while the profile's
|
|
241
241
|
* intent is the user's own key, so a bare name match must not stand
|
|
242
242
|
* in for connection resolution.
|
|
243
243
|
* 4. No connection exists for the provider and it matches the
|
|
@@ -299,7 +299,7 @@ export class CallSiteRoutingProvider implements Provider {
|
|
|
299
299
|
|
|
300
300
|
// When no connection is set, auto-resolve one for the resolved provider —
|
|
301
301
|
// including when the provider matches the default's name. The default
|
|
302
|
-
// transport may ride the
|
|
302
|
+
// transport may ride the cloud (platform-billed) connection, so reusing
|
|
303
303
|
// it on a bare name match would silently bill managed credits for a
|
|
304
304
|
// profile whose intent is the user's own key. Mirrors
|
|
305
305
|
// `resolveConfiguredProvider`, which never takes a name shortcut; when no
|
|
@@ -338,9 +338,9 @@ export class CallSiteRoutingProvider implements Provider {
|
|
|
338
338
|
connectionName:
|
|
339
339
|
connectionProvider.routeAttribution?.connectionName ??
|
|
340
340
|
connectionName,
|
|
341
|
-
|
|
342
|
-
connectionProvider.routeAttribution?.
|
|
343
|
-
|
|
341
|
+
isCloudRoute:
|
|
342
|
+
connectionProvider.routeAttribution?.isCloudRoute ??
|
|
343
|
+
isCloudConnectionRoute(connectionName),
|
|
344
344
|
};
|
|
345
345
|
// The connection whose credential the call authenticates with is only
|
|
346
346
|
// known here, and diagnostics for a failed request are unactionable
|
|
@@ -358,7 +358,7 @@ export class CallSiteRoutingProvider implements Provider {
|
|
|
358
358
|
}
|
|
359
359
|
// Soft credential failure: the routed connection yielded no usable
|
|
360
360
|
// adapter and dispatch is landing on the default transport, which may
|
|
361
|
-
// be the
|
|
361
|
+
// be the cloud-billed route. Keep every such degradation
|
|
362
362
|
// observable. The reason is "no adapter", not a proven credential miss:
|
|
363
363
|
// adapter construction can also fail for dispatch bugs.
|
|
364
364
|
log.warn(
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Provider metadata for
|
|
2
|
+
* Provider metadata for cloud proxy routing.
|
|
3
3
|
*
|
|
4
4
|
* Each managed-capable provider maps to a deterministic proxy base path
|
|
5
|
-
* used when routing LLM requests through the
|
|
5
|
+
* used when routing LLM requests through the cloud's cloud proxy.
|
|
6
6
|
* Providers marked as non-managed (e.g. ollama) are excluded.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
export interface
|
|
9
|
+
export interface CloudProviderMeta {
|
|
10
10
|
/** Provider identifier matching the registry name. */
|
|
11
11
|
name: string;
|
|
12
|
-
/** Whether this provider supports
|
|
12
|
+
/** Whether this provider supports cloud proxy routing. */
|
|
13
13
|
managed: boolean;
|
|
14
|
-
/** Proxy path segment appended to the
|
|
14
|
+
/** Proxy path segment appended to the cloud base URL (only for cloud providers). */
|
|
15
15
|
proxyPath?: string;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Explicit provider metadata for all known providers.
|
|
20
|
-
*
|
|
20
|
+
* Cloud providers get a deterministic proxy path; non-cloud providers
|
|
21
21
|
* are marked accordingly and have no proxy path.
|
|
22
22
|
*
|
|
23
|
-
* This table describes
|
|
23
|
+
* This table describes cloud proxy routing capability only. It does not
|
|
24
24
|
* control which providers auto-bootstrap into the text-model registry when
|
|
25
|
-
*
|
|
25
|
+
* cloud credentials are present; that policy lives in the registry/context
|
|
26
26
|
* fallback allowlists.
|
|
27
27
|
*/
|
|
28
|
-
export const PLATFORM_PROVIDER_META: Record<string,
|
|
28
|
+
export const PLATFORM_PROVIDER_META: Record<string, CloudProviderMeta> = {
|
|
29
29
|
openai: {
|
|
30
30
|
name: "openai",
|
|
31
31
|
managed: true,
|
|
@@ -54,8 +54,8 @@ export const PLATFORM_PROVIDER_META: Record<string, ManagedProviderMeta> = {
|
|
|
54
54
|
cadet: {
|
|
55
55
|
name: "cadet",
|
|
56
56
|
managed: true,
|
|
57
|
-
// Wire contract with the
|
|
58
|
-
// is renamed in coordination with the
|
|
57
|
+
// Wire contract with the cloud's runtime proxy — the route segment
|
|
58
|
+
// is renamed in coordination with the cloud deploy, not here.
|
|
59
59
|
proxyPath: "/v1/runtime-proxy/cadet",
|
|
60
60
|
},
|
|
61
61
|
typesafe: {
|