@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
|
@@ -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,13 @@ 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
|
+
}).meta({ id: "ProfileEntry" });
|
|
737
737
|
export type ProfileEntry = z.infer<typeof ProfileEntry>;
|
|
738
738
|
|
|
739
739
|
/**
|
|
@@ -771,10 +771,10 @@ export type DefaultProviderConfig = {
|
|
|
771
771
|
};
|
|
772
772
|
|
|
773
773
|
/**
|
|
774
|
-
* Whether the
|
|
774
|
+
* Whether the cloud backup profiles (`BACKUP_PROFILE_KEYS`) resolve under a
|
|
775
775
|
* given `llm.default` blob.
|
|
776
776
|
*
|
|
777
|
-
* Backups are companions of the
|
|
777
|
+
* Backups are companions of the cloud (`cadet`) column only: on a BYOK or
|
|
778
778
|
* ChatGPT default provider `defaultProfileBodyForProvider` returns `undefined`
|
|
779
779
|
* for them, because the install may hold no credential for the backup's
|
|
780
780
|
* upstream. So a reference to one is a target that can never resolve there,
|
|
@@ -782,7 +782,7 @@ export type DefaultProviderConfig = {
|
|
|
782
782
|
* cannot show.
|
|
783
783
|
*
|
|
784
784
|
* A missing blob or a `provider` with no matrix column (keyless ollama,
|
|
785
|
-
* user-endpoint openai-compatible) clamps to the
|
|
785
|
+
* user-endpoint openai-compatible) clamps to the cloud column via
|
|
786
786
|
* `isDefaultProviderChoice`, so backups resolve there too.
|
|
787
787
|
*/
|
|
788
788
|
export function backupProfilesResolveUnderDefaultProvider(
|
|
@@ -799,35 +799,35 @@ export function backupProfilesResolveUnderDefaultProvider(
|
|
|
799
799
|
* Why a referenced profile name does not resolve, for the reference error
|
|
800
800
|
* messages. A backup key under a non-managed default provider gets its own
|
|
801
801
|
* reason: the name is real and code-defined, it just has no body outside the
|
|
802
|
-
*
|
|
802
|
+
* cloud column, and "not defined in llm.profiles" would send the reader
|
|
803
803
|
* looking for a missing entry that was never supposed to exist.
|
|
804
804
|
*/
|
|
805
805
|
function unresolvableProfileReason(
|
|
806
806
|
name: string,
|
|
807
807
|
backupsResolve: boolean,
|
|
808
808
|
): string {
|
|
809
|
-
if (backupsResolve || !
|
|
809
|
+
if (backupsResolve || !isCloudOnlyProfileKey(name)) {
|
|
810
810
|
return "is not defined in llm.profiles";
|
|
811
811
|
}
|
|
812
812
|
if (name === JEV_MANAGED_PROFILE_KEY) {
|
|
813
|
-
return "is the
|
|
813
|
+
return "is the cloud Jev profile, which resolves only while llm.default is the cloud provider";
|
|
814
814
|
}
|
|
815
815
|
if (name === AUTO_PROFILE_KEY) {
|
|
816
|
-
return "is the
|
|
816
|
+
return "is the cloud Auto profile, which resolves only while llm.default is the cloud provider";
|
|
817
817
|
}
|
|
818
|
-
return "is a
|
|
818
|
+
return "is a cloud backup profile, which resolves only while llm.default is the cloud provider";
|
|
819
819
|
}
|
|
820
820
|
|
|
821
821
|
/**
|
|
822
822
|
* The `llm.profiles` keys that are reference targets in their own right,
|
|
823
|
-
* given whether the
|
|
823
|
+
* given whether the cloud backups resolve under the current
|
|
824
824
|
* `llm.default`.
|
|
825
825
|
*
|
|
826
826
|
* Every on-disk key qualifies but one: a reserved backup name whose entry is
|
|
827
827
|
* 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
|
|
828
|
+
* workspace's slot for a code-owned one, and it can reach disk on a cloud
|
|
829
829
|
* install through nothing more than a `config get` -> `config set` round-trip
|
|
830
|
-
* of the effective profile list (`
|
|
830
|
+
* of the effective profile list (`normalizeCloudProfileWrites` reduces the
|
|
831
831
|
* echoed body to exactly that stub). Counting it as an ordinary raw key would
|
|
832
832
|
* let it launder a backup reference past the provider gate: after a switch to
|
|
833
833
|
* a BYOK or ChatGPT default provider the reference would keep validating
|
|
@@ -846,7 +846,7 @@ function referenceableProfileKeys(
|
|
|
846
846
|
): string[] {
|
|
847
847
|
return Object.entries(profiles ?? {})
|
|
848
848
|
.filter(([name, value]) => {
|
|
849
|
-
if (backupsResolve || !
|
|
849
|
+
if (backupsResolve || !isCloudOnlyProfileKey(name)) {
|
|
850
850
|
return true;
|
|
851
851
|
}
|
|
852
852
|
const entry =
|
|
@@ -874,8 +874,8 @@ function referenceableProfileKeys(
|
|
|
874
874
|
* are read defensively so the raw on-disk shape is safe to pass.
|
|
875
875
|
*
|
|
876
876
|
* `llmDefault` is the sibling `llm.default` value (raw or parsed): it
|
|
877
|
-
* decides whether the
|
|
878
|
-
* on the
|
|
877
|
+
* decides whether the cloud backups are valid targets, since they resolve
|
|
878
|
+
* on the cloud column alone.
|
|
879
879
|
*/
|
|
880
880
|
export function collectFallbackProfileIssues(
|
|
881
881
|
profiles: Record<string, unknown> | undefined,
|
|
@@ -891,8 +891,8 @@ export function collectFallbackProfileIssues(
|
|
|
891
891
|
// (`default-profile-catalog.ts`) and resolve whether or not they are
|
|
892
892
|
// materialized in `llm.profiles`, so their names are always valid
|
|
893
893
|
// 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
|
|
894
|
+
// managed backups resolve the same way, but on the cloud column only,
|
|
895
|
+
// so they are valid targets only under a cloud `llm.default`.
|
|
896
896
|
// A persisted managed stub for a backup name does not change that, see
|
|
897
897
|
// `referenceableProfileKeys`.
|
|
898
898
|
const backupsResolve = backupProfilesResolveUnderDefaultProvider(
|
|
@@ -930,7 +930,7 @@ export function collectFallbackProfileIssues(
|
|
|
930
930
|
if (entry?.source !== "managed" || fallback !== expectedFallback) {
|
|
931
931
|
issues.push({
|
|
932
932
|
profileName: name,
|
|
933
|
-
message: `Profile "${name}" cannot configure fallbackProfile. Automatic fallbacks are code-owned for Cadet
|
|
933
|
+
message: `Profile "${name}" cannot configure fallbackProfile. Automatic fallbacks are code-owned for Cadet Cloud default profiles.`,
|
|
934
934
|
});
|
|
935
935
|
continue;
|
|
936
936
|
}
|
|
@@ -1049,20 +1049,20 @@ export const LLMSchema = z
|
|
|
1049
1049
|
// The always-available default profiles are code-defined
|
|
1050
1050
|
// (`default-profile-catalog.ts`) and resolve whether or not they are
|
|
1051
1051
|
// materialized in `llm.profiles`, so their names are always valid
|
|
1052
|
-
// reference targets. The
|
|
1052
|
+
// reference targets. The cloud backups (`BACKUP_PROFILE_KEYS`) are
|
|
1053
1053
|
// code-defined on the same terms and are listed in the effective
|
|
1054
1054
|
// catalog, so a selection naming one (`activeProfile`, `advisorProfile`,
|
|
1055
1055
|
// 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
|
|
1056
|
+
// back to a default. Backups are scoped to the cloud column though, so
|
|
1057
|
+
// they join the set only under a cloud `llm.default`: on a BYOK
|
|
1058
1058
|
// or ChatGPT default provider they have no body to resolve to, and
|
|
1059
1059
|
// keeping the reference would strand a selection the picker cannot show.
|
|
1060
|
-
// The
|
|
1060
|
+
// The cloud Jev profile (`JEV_MANAGED_PROFILE_KEY`) is scoped the same
|
|
1061
1061
|
// way, as a pin target for the judge call sites.
|
|
1062
1062
|
// The flag-gated `os-beta` is excluded: it resolves only while a
|
|
1063
1063
|
// workspace entry exists, so a reference to it is valid only when that
|
|
1064
1064
|
// 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-
|
|
1065
|
+
// thin managed stub does not re-enter the set on a non-cloud column
|
|
1066
1066
|
// either, see `referenceableProfileKeys`.
|
|
1067
1067
|
const backupsResolve = backupProfilesResolveUnderDefaultProvider(
|
|
1068
1068
|
config.default,
|
|
@@ -1121,7 +1121,7 @@ export const LLMSchema = z
|
|
|
1121
1121
|
message: `Profile "${config.advisorProfile}" referenced by llm.advisorProfile ${unresolvableProfileReason(config.advisorProfile, backupsResolve)}`,
|
|
1122
1122
|
});
|
|
1123
1123
|
}
|
|
1124
|
-
// The
|
|
1124
|
+
// The cloud Jev profile is a valid reference target for call-site pins
|
|
1125
1125
|
// only. Its model returns structured verdicts rather than chat text, so
|
|
1126
1126
|
// the conversation positions reject it here as well as at the write
|
|
1127
1127
|
// 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,
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
MANAGED_PROFILE_NAMES,
|
|
15
15
|
MANAGED_PROFILE_TEMPLATES,
|
|
16
16
|
} from "./default-profile-catalog.js";
|
|
17
|
+
import { getIsCloud } from "./env-registry.js";
|
|
17
18
|
import { loadConfig, loadRawConfig, saveRawConfig } from "./loader.js";
|
|
18
19
|
import { isDispatchableProfile } from "./profile-dispatchability.js";
|
|
19
20
|
import {
|
|
@@ -48,12 +49,12 @@ export type SeedInferenceProfilesOptions = {
|
|
|
48
49
|
* `<provider>-personal` connection backed by the user's API key in CES.
|
|
49
50
|
* The BYOK columns of the intent × provider matrix stamp exactly that
|
|
50
51
|
* connection name (via `resolveDefaultConnectionName`), so the default
|
|
51
|
-
* profiles dispatch through it. Skipped for the
|
|
52
|
+
* profiles dispatch through it. Skipped for the cloud provider — the
|
|
52
53
|
* `cadet` column routes through the canonical platform-backed row, never
|
|
53
54
|
* a user key, so no `cadet-personal` connection exists or is needed.
|
|
54
55
|
*
|
|
55
56
|
* 2. **`llm.default`**: the base blob's `provider` field is written once at
|
|
56
|
-
* hatch time, mirroring the
|
|
57
|
+
* hatch time, mirroring the cloud/managed/BYOK decision, and never
|
|
57
58
|
* overwritten afterward. The default profiles resolve through this
|
|
58
59
|
* provider's matrix column.
|
|
59
60
|
*
|
|
@@ -67,10 +68,9 @@ export function seedInferenceProfiles(
|
|
|
67
68
|
const llm = config.llm;
|
|
68
69
|
const profiles = llm.profiles;
|
|
69
70
|
|
|
70
|
-
const
|
|
71
|
-
process.env.IS_PLATFORM === "true" || process.env.IS_PLATFORM === "1";
|
|
71
|
+
const isCloud = getIsCloud();
|
|
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";
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
// Memory substrate — twin-namespace shadowing detection
|
|
3
3
|
// ---------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
+
import { getConfig } from "./loader.js";
|
|
6
|
+
|
|
5
7
|
/** One `memory.v2` tunable's `memory.substrate` twin. */
|
|
6
8
|
interface SubstrateTwin {
|
|
7
9
|
/** The twin's `memory.substrate` key, e.g. `spread_k` for `k`. */
|
|
@@ -93,29 +95,22 @@ export type SubstrateShadowing = {
|
|
|
93
95
|
alsoReadByV2Engine: boolean;
|
|
94
96
|
};
|
|
95
97
|
|
|
96
|
-
function readPlainObject(value: unknown): Record<string, unknown> | undefined {
|
|
97
|
-
return value != null && typeof value === "object" && !Array.isArray(value)
|
|
98
|
-
? (value as Record<string, unknown>)
|
|
99
|
-
: undefined;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
98
|
/**
|
|
103
99
|
* The `memory.substrate` twin covering `path`, or `undefined` when `path` is
|
|
104
100
|
* not a shadowable `memory.v2` tunable or its twin is unset.
|
|
105
101
|
*
|
|
106
102
|
* `memory.substrate` is override-only and wins for substrate recall whenever
|
|
107
|
-
* its key is
|
|
108
|
-
* `resolveSubstrateTuning`
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* remaining consumer, while for the three engine-read twins it still tunes v2
|
|
112
|
-
* injection.
|
|
103
|
+
* its key is set. Detection keys on presence in the RUNNING config — the same
|
|
104
|
+
* typed view `resolveSubstrateTuning` consults, so the check can never
|
|
105
|
+
* disagree with runtime precedence: a key absent from the parsed config is
|
|
106
|
+
* absent for the resolver too.
|
|
113
107
|
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
108
|
+
* What a set twin means for the `memory.v2` key depends on
|
|
109
|
+
* {@link SubstrateTwin.alsoReadByV2Engine}: for a substrate-only twin the
|
|
110
|
+
* `memory.v2` value has no remaining consumer, while for the three
|
|
111
|
+
* engine-read twins it still tunes v2 injection.
|
|
116
112
|
*/
|
|
117
113
|
export function findSubstrateShadowing(
|
|
118
|
-
raw: Record<string, unknown>,
|
|
119
114
|
path: string,
|
|
120
115
|
): SubstrateShadowing | undefined {
|
|
121
116
|
const segments = path.split(".");
|
|
@@ -130,8 +125,8 @@ export function findSubstrateShadowing(
|
|
|
130
125
|
if (twin === undefined) {
|
|
131
126
|
return undefined;
|
|
132
127
|
}
|
|
133
|
-
const substrate =
|
|
134
|
-
if (!
|
|
128
|
+
const substrate: Record<string, unknown> = getConfig().memory.substrate;
|
|
129
|
+
if (!(twin.substrateKey in substrate)) {
|
|
135
130
|
return undefined;
|
|
136
131
|
}
|
|
137
132
|
return {
|