@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
|
@@ -323,14 +323,14 @@ async function runSeedV2SkillEntries(generation: number): Promise<void> {
|
|
|
323
323
|
// Build the dense + sparse vectors for the Qdrant write. Sparse (BM25/TF)
|
|
324
324
|
// encoding is computed locally and needs no backend; only the dense vectors
|
|
325
325
|
// require `embedWithBackend`, which is unconfigured during the cold-start
|
|
326
|
-
// window before a
|
|
326
|
+
// window before a cloud-proxy embedding credential is provisioned.
|
|
327
327
|
//
|
|
328
328
|
// A dense-embed failure is non-fatal to the in-memory cache: the v3 needle
|
|
329
329
|
// finder lane and always-candidate skill pinning read skills from `entries`
|
|
330
330
|
// / the page index, NOT from Qdrant, so the cache is populated from the
|
|
331
331
|
// local catalog regardless of backend state and skills stay discoverable
|
|
332
|
-
// from first boot. Only the dense Qdrant upsert is skipped; the
|
|
333
|
-
// credential reseed (`
|
|
332
|
+
// from first boot. Only the dense Qdrant upsert is skipped; the cloud-
|
|
333
|
+
// credential reseed (`maybeReseedCapabilitiesAfterCloudCredential`) and
|
|
334
334
|
// the v3 maintain pass backfill the dense vectors once the backend recovers.
|
|
335
335
|
const nextEntries = new Map<string, SkillEntry>();
|
|
336
336
|
let denseVectors: number[][] = [];
|
|
@@ -461,7 +461,7 @@ async function runSeedV2SkillEntries(generation: number): Promise<void> {
|
|
|
461
461
|
fallbackAlwaysCandidateIds = new Set<string>();
|
|
462
462
|
invalidatePageIndex();
|
|
463
463
|
|
|
464
|
-
// Surface a dense-embed failure to `throwOnError` callers (the
|
|
464
|
+
// Surface a dense-embed failure to `throwOnError` callers (the cloud-
|
|
465
465
|
// credential reseed and the operator reembed route) so the existing retry +
|
|
466
466
|
// maintain machinery backfills the dense lane. The in-memory cache is
|
|
467
467
|
// already updated above, so the needle lane is fixed regardless.
|
|
@@ -125,7 +125,7 @@ describe("maintainJob", () => {
|
|
|
125
125
|
},
|
|
126
126
|
// Skill usage-prune stage off by default: no managed skills ⇒ nothing to
|
|
127
127
|
// report or delete. The dedicated usage-prune tests below override these.
|
|
128
|
-
|
|
128
|
+
listCloudSkills: () => [],
|
|
129
129
|
deleteSkill: async () => {},
|
|
130
130
|
nowMs: () => Date.now(),
|
|
131
131
|
};
|
|
@@ -1202,7 +1202,7 @@ describe("maintainJob skill usage-prune", () => {
|
|
|
1202
1202
|
listIndexedSlugs: async () => [],
|
|
1203
1203
|
loadCoreSet: () => [],
|
|
1204
1204
|
invalidateLanes: () => {},
|
|
1205
|
-
|
|
1205
|
+
listCloudSkills: () =>
|
|
1206
1206
|
skills.map((s) => ({ ...s, installMeta: metas[s.id] ?? null })),
|
|
1207
1207
|
deleteSkill: async (id) => {
|
|
1208
1208
|
deletedSkills.push(id);
|
|
@@ -1259,7 +1259,7 @@ describe("maintainJob skill usage-prune", () => {
|
|
|
1259
1259
|
});
|
|
1260
1260
|
});
|
|
1261
1261
|
|
|
1262
|
-
describe("enabled (skillPruneDays: 30) — deletes via
|
|
1262
|
+
describe("enabled (skillPruneDays: 30) — deletes via executeDeleteCloudSkill", () => {
|
|
1263
1263
|
test("prunes a stale assistant skill via deleteSkill", async () => {
|
|
1264
1264
|
memoryV3LiveSlot = true;
|
|
1265
1265
|
const {
|
|
@@ -89,7 +89,7 @@ mock.module("@mycadet/plugin-api", () => ({
|
|
|
89
89
|
mock.module("../../../../../providers/registry.js", () => ({
|
|
90
90
|
...registryReal,
|
|
91
91
|
getProviderRoutingSource: (providerName: string) =>
|
|
92
|
-
providerName === "managed" ? "
|
|
92
|
+
providerName === "managed" ? "cloud-proxy" : "user-key",
|
|
93
93
|
}));
|
|
94
94
|
|
|
95
95
|
mock.module("../../../../../util/logger.js", () => ({
|
|
@@ -536,7 +536,7 @@ describe("selectPool — infrastructure failures throw", () => {
|
|
|
536
536
|
expect(failure.turn?.recentContext).toBe("");
|
|
537
537
|
});
|
|
538
538
|
|
|
539
|
-
test("
|
|
539
|
+
test("cloud provider 402 attaches a non-terminal credits notice", async () => {
|
|
540
540
|
providerStub = {
|
|
541
541
|
name: "managed",
|
|
542
542
|
sendMessage: async (messages, options) => {
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
* 5. **Skill usage-prune (observe-first, default-off)** — REPORT
|
|
58
58
|
* assistant-authored managed skills unused for at least
|
|
59
59
|
* {@link SKILL_OBSERVE_WINDOW_DAYS} days (in `prunableSkills`) on every
|
|
60
|
-
* pass for observability, and DELETE them (via `
|
|
60
|
+
* pass for observability, and DELETE them (via `executeDeleteCloudSkill`)
|
|
61
61
|
* only when `memory.maintenance.skillPruneDays` is a positive integer
|
|
62
62
|
* (default `null` = never prune). `author:"user"` and untagged skills are
|
|
63
63
|
* always protected. See {@link pruneStaleSkills}.
|
|
@@ -89,7 +89,7 @@ import { getMemoryCheckpoint } from "../../../../persistence/checkpoints.js";
|
|
|
89
89
|
import { EmbeddingBackendUnavailableError } from "../../../../persistence/embeddings/embedding-backend.js";
|
|
90
90
|
import { EmbeddingBillingBlockError } from "../../../../persistence/embeddings/embedding-billing-breaker.js";
|
|
91
91
|
import type { MemoryJob } from "../../../../persistence/jobs-store.js";
|
|
92
|
-
import {
|
|
92
|
+
import { executeDeleteCloudSkill } from "../../../../tools/skills/delete-cloud.js";
|
|
93
93
|
import { embedWithBackend } from "../embeddings.js";
|
|
94
94
|
import { getLogger } from "../logging.js";
|
|
95
95
|
import { getWorkspaceDir } from "../paths.js";
|
|
@@ -208,14 +208,14 @@ export interface MaintainJobDeps {
|
|
|
208
208
|
/** Drop the memoized v3 lanes so the next turn rebuilds them. */
|
|
209
209
|
invalidateLanes: () => void;
|
|
210
210
|
/**
|
|
211
|
-
* The
|
|
211
|
+
* The cloud (assistant-installed) skills in the catalog, each carrying its
|
|
212
212
|
* `installMeta`. The usage-prune stage reads the meta's `author`,
|
|
213
213
|
* `lastUsedAt`, and `installedAt` to find stale assistant-authored skills.
|
|
214
214
|
*/
|
|
215
|
-
|
|
215
|
+
listCloudSkills: () => ResolvedSkillEntry[] | Promise<ResolvedSkillEntry[]>;
|
|
216
216
|
/**
|
|
217
|
-
* Delete a
|
|
218
|
-
* page/vectors + v3 sections reconcile), as the `
|
|
217
|
+
* Delete a cloud skill by id (dir + companion files + graph node + v2
|
|
218
|
+
* page/vectors + v3 sections reconcile), as the `delete_cloud_skill` tool
|
|
219
219
|
* does. Called only when deletion is enabled and a skill is stale.
|
|
220
220
|
*/
|
|
221
221
|
deleteSkill: (skillId: string) => Promise<void>;
|
|
@@ -455,10 +455,10 @@ function defaultDeps(config: AssistantConfig): MaintainJobDeps {
|
|
|
455
455
|
listIndexedSlugs: () => selectAllPagesFromWorkspace(workspaceDir),
|
|
456
456
|
loadCoreSet: () => realLoadCoreSet(workspaceDir),
|
|
457
457
|
invalidateLanes: realInvalidateLanes,
|
|
458
|
-
|
|
458
|
+
listCloudSkills: async () =>
|
|
459
459
|
(await listInstalledSkills()).filter((s) => s.source === "managed"),
|
|
460
460
|
deleteSkill: async (skillId) => {
|
|
461
|
-
const result = await
|
|
461
|
+
const result = await executeDeleteCloudSkill(
|
|
462
462
|
{ skill_id: skillId },
|
|
463
463
|
{
|
|
464
464
|
conversationId: "memory-v3-maintain",
|
|
@@ -722,7 +722,7 @@ async function pruneStaleSkills(deps: MaintainJobDeps): Promise<{
|
|
|
722
722
|
const deleteEnabled =
|
|
723
723
|
typeof skillPruneDays === "number" && skillPruneDays > 0;
|
|
724
724
|
|
|
725
|
-
const managed = await deps.
|
|
725
|
+
const managed = await deps.listCloudSkills();
|
|
726
726
|
const prunableSkills: string[] = [];
|
|
727
727
|
const prunedSkills: string[] = [];
|
|
728
728
|
const skillPruneFailures: Array<{ skillId: string; error: string }> = [];
|
|
@@ -1167,7 +1167,7 @@ export async function maintainJob(
|
|
|
1167
1167
|
// Stage 5: usage-prune assistant-authored skills. OBSERVE-FIRST and
|
|
1168
1168
|
// DEFAULT-OFF: it always REPORTS assistant-authored managed skills unused for
|
|
1169
1169
|
// at least SKILL_OBSERVE_WINDOW_DAYS days (prunableSkills) so accumulation is
|
|
1170
|
-
// visible, and only DELETES — via
|
|
1170
|
+
// visible, and only DELETES — via executeDeleteCloudSkill — when
|
|
1171
1171
|
// memory.maintenance.skillPruneDays is a positive integer (default null = never
|
|
1172
1172
|
// prune). User-authored and untagged skills are always protected. Contained: a
|
|
1173
1173
|
// failure is logged + recorded without aborting invalidation.
|
|
@@ -118,7 +118,7 @@ import {
|
|
|
118
118
|
const log = getLogger("memory-v3-injection-gate");
|
|
119
119
|
|
|
120
120
|
/** `check_name` of the `watchdog` telemetry event recorded once per
|
|
121
|
-
* injection-gate run. The
|
|
121
|
+
* injection-gate run. The cloud's memory admin analytics count and filter
|
|
122
122
|
* on this exact string — keep it stable. */
|
|
123
123
|
export const MEMORY_V3_INJECTION_GATE_CHECK_NAME = "memory_v3_injection_gate";
|
|
124
124
|
|
|
@@ -133,7 +133,7 @@ export const MEMORY_V3_INJECTION_GATE_CHECK_NAME = "memory_v3_injection_gate";
|
|
|
133
133
|
* gate threw). Pass rate is only meaningful over scored runs — the shortcuts are
|
|
134
134
|
* all unconditional passes and would otherwise inflate it. It is derivable from
|
|
135
135
|
* `reason`, but the daemon owns the reason set and adds to it freely, so it is
|
|
136
|
-
* reported explicitly rather than left for the
|
|
136
|
+
* reported explicitly rather than left for the cloud to re-derive from a
|
|
137
137
|
* hardcoded list that would silently miscount the next reason we add. */
|
|
138
138
|
function recordGateRun(detail: Record<string, unknown>): void {
|
|
139
139
|
try {
|
|
@@ -149,7 +149,7 @@ function recordGateRun(detail: Record<string, unknown>): void {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
/** `check_name` of the `watchdog` telemetry event recorded once per orchestrated
|
|
152
|
-
* turn, carrying what the SELECTOR did. Keep this string stable — the
|
|
152
|
+
* turn, carrying what the SELECTOR did. Keep this string stable — the cloud's
|
|
153
153
|
* memory admin analytics filter on it. */
|
|
154
154
|
export const MEMORY_V3_SELECTION_CHECK_NAME = "memory_v3_selection";
|
|
155
155
|
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
|
|
13
13
|
import { writeFileSync } from "node:fs";
|
|
14
14
|
|
|
15
|
+
import { rehydrateCloudCredentials } from "../../../config/cloud-rehydration.js";
|
|
15
16
|
import { getConfig } from "../../../config/loader.js";
|
|
16
17
|
import { isMemoryEnabled } from "../../../config/memory-v3-gate.js";
|
|
17
|
-
import { rehydratePlatformCredentials } from "../../../config/platform-rehydration.js";
|
|
18
18
|
import { startConversationEvictor } from "../../../daemon/conversation-evictor.js";
|
|
19
19
|
import {
|
|
20
20
|
startWorkspaceSkillMdMtimePoll,
|
|
@@ -55,15 +55,15 @@ async function main(): Promise<void> {
|
|
|
55
55
|
writeFileSync(pidPath, String(process.pid), { flag: "w" });
|
|
56
56
|
log.info({ pid: process.pid, pidPath }, "Memory worker process started");
|
|
57
57
|
|
|
58
|
-
// Rehydrate the
|
|
58
|
+
// Rehydrate the cloud base URL and IDs from the credential store before
|
|
59
59
|
// any job runs. The daemon does this in initializeProvidersAndTools(); this
|
|
60
|
-
// standalone process must do it itself so
|
|
60
|
+
// standalone process must do it itself so getCloudBaseUrl() resolves to
|
|
61
61
|
// the persisted platform environment instead of the CADET_ENVIRONMENT
|
|
62
62
|
// default. Retrospective and consolidation passes wake real agent
|
|
63
63
|
// conversations whose inference and background-wake requests go through the
|
|
64
|
-
//
|
|
64
|
+
// cloud proxy — without rehydration those requests hit the wrong platform
|
|
65
65
|
// and are rejected.
|
|
66
|
-
await
|
|
66
|
+
await rehydrateCloudCredentials();
|
|
67
67
|
|
|
68
68
|
// Jobs in this process wake real agent conversations, so it registers the
|
|
69
69
|
// default plugin hook surface (hooks and injectors, no init hooks) the same
|
|
@@ -292,7 +292,7 @@ function readConfigValidationResetNotice(): ConfigValidationResetNotice | null {
|
|
|
292
292
|
* the loader recovers along a ladder (see `config/loader.ts`
|
|
293
293
|
* `recoverFromInvalidConfig`) and records a sentinel. Whichever rung it lands
|
|
294
294
|
* on, the saved config is not fully in effect: a section — or the whole config —
|
|
295
|
-
* may have reverted to schema defaults, flipping a
|
|
295
|
+
* may have reverted to schema defaults, flipping a cloud email/OAuth service
|
|
296
296
|
* mode back to `your-own`, or the user's most recent edit may simply never have
|
|
297
297
|
* applied. That is otherwise invisible (log-only). This injector reads the
|
|
298
298
|
* sentinel and, when it is younger than
|
|
@@ -340,7 +340,7 @@ const configValidationResetNoticeInjector: Injector = {
|
|
|
340
340
|
`The user's config.json failed schema validation at ${notice.resetAt} ` +
|
|
341
341
|
`and did not fully take effect. Settings the user did not change may ` +
|
|
342
342
|
`have silently reverted to defaults — including managed email/OAuth ` +
|
|
343
|
-
`service modes (a
|
|
343
|
+
`service modes (a cloud connection can flip back to "your-own" and ` +
|
|
344
344
|
`break), model choices, and other customizations — and a recent edit may ` +
|
|
345
345
|
`never have applied. The on-disk config.json is intact; the invalid ` +
|
|
346
346
|
`entries just need fixing for the saved values to take effect again. ` +
|
|
@@ -1018,7 +1018,7 @@ export function registerDeclaredCredentialKeyPatterns(
|
|
|
1018
1018
|
*
|
|
1019
1019
|
* `disable` and `reload` keep the directory present, so {@link runShutdownHook}
|
|
1020
1020
|
* resolves and runs the on-disk `shutdown` (via the same resolution the dispatch
|
|
1021
|
-
* path uses). `uninstall` runs nothing here: a
|
|
1021
|
+
* path uses). `uninstall` runs nothing here: a cloud uninstall runs `shutdown`
|
|
1022
1022
|
* *before* removing the directory (see `cli/lib/uninstall-plugin.ts`), and an
|
|
1023
1023
|
* out-of-band `rm` leaves nothing to resolve.
|
|
1024
1024
|
*/
|
|
@@ -68,7 +68,7 @@ export interface SourceVersionsDocument {
|
|
|
68
68
|
/** ISO timestamp of the last rewrite, for staleness logging. */
|
|
69
69
|
readonly writtenAt: string;
|
|
70
70
|
/**
|
|
71
|
-
* Keyed by the absolute directory path as the
|
|
71
|
+
* Keyed by the absolute directory path as the cloud helpers construct
|
|
72
72
|
* it (`getWorkspacePluginsDir()`-derived plugin dirs, plus
|
|
73
73
|
* `getWorkspaceHooksDir()` for standalone workspace hooks), so readers
|
|
74
74
|
* can key their own state the same way without any name resolution.
|
package/src/plugins/types.ts
CHANGED
|
@@ -148,7 +148,7 @@ export interface TurnContext {
|
|
|
148
148
|
readonly interfaceName?: string;
|
|
149
149
|
/**
|
|
150
150
|
* Client OS surface, reported independently of the transport interface.
|
|
151
|
-
* Rendered as the `client_os:` line so the model knows the
|
|
151
|
+
* Rendered as the `client_os:` line so the model knows the cloud even
|
|
152
152
|
* though browser, mobile, and desktop apps share one `"web"`
|
|
153
153
|
* transport interface.
|
|
154
154
|
*/
|
|
@@ -178,7 +178,7 @@ describe("buildSystemPrompt — default persona trust-class guardrail", () => {
|
|
|
178
178
|
test("gates off for an unresolved local build when HTTP auth is disabled", () => {
|
|
179
179
|
// Initial-prompt warming, home generation, and btw sidechains build
|
|
180
180
|
// prompts with NO trustContext on behalf of the owner. In an auth-disabled
|
|
181
|
-
// (local /
|
|
181
|
+
// (local / cloud-managed) deployment that unresolved actor is the
|
|
182
182
|
// guardian, so the guardrail must not render into those guardian-facing
|
|
183
183
|
// prompts (fail-stranger would stonewall the owner about their own data).
|
|
184
184
|
process.env.DISABLE_HTTP_AUTH = "true";
|
|
@@ -138,7 +138,7 @@ export function normalizeOnboardingContext(
|
|
|
138
138
|
// Findings are model-extracted from arbitrary web content and get written
|
|
139
139
|
// into persisted persona markdown as single bullets. Collapse ALL runs of
|
|
140
140
|
// whitespace (incl. newlines) so one finding can never mint extra lines —
|
|
141
|
-
// injected bullets, headings, or a `## ` that would corrupt the
|
|
141
|
+
// injected bullets, headings, or a `## ` that would corrupt the cloud
|
|
142
142
|
// section boundary on later rewrites.
|
|
143
143
|
researchFindings: ctx.researchFindings?.length
|
|
144
144
|
? ctx.researchFindings
|
|
@@ -475,7 +475,7 @@ function resolveOnboardingWriteTarget(): string {
|
|
|
475
475
|
}
|
|
476
476
|
|
|
477
477
|
/**
|
|
478
|
-
* Write a
|
|
478
|
+
* Write a cloud `## Onboarding Context` section to the guardian persona
|
|
479
479
|
* file (or fallback target). Idempotent: replaces the section in-place if
|
|
480
480
|
* it already exists, appends if not, and creates the file when missing.
|
|
481
481
|
*
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
import { existsSync, readFileSync } from "node:fs";
|
|
28
28
|
import { join } from "node:path";
|
|
29
29
|
|
|
30
|
-
import { getCachedManagedConnections } from "../../credential-execution/
|
|
30
|
+
import { getCachedManagedConnections } from "../../credential-execution/cloud-catalog.js";
|
|
31
31
|
import { listConnections } from "../../oauth/oauth-store.js";
|
|
32
32
|
import type { OnboardingContext } from "../../types/onboarding-context.js";
|
|
33
33
|
import { stripCommentLines } from "../../util/strip-comment-lines.js";
|
|
@@ -136,7 +136,7 @@ function renderFirstRunUserContext(onboarding: OnboardingContext): string {
|
|
|
136
136
|
/**
|
|
137
137
|
* Builds the `# Connected Services` block from the live OAuth caches.
|
|
138
138
|
* Reads local (BYO) connections from the SQLite store via
|
|
139
|
-
* `listConnections()` and
|
|
139
|
+
* `listConnections()` and cloud connections from the
|
|
140
140
|
* in-memory cache populated at daemon startup. Provider-level dedup
|
|
141
141
|
* is intentional: this block is a summary for the model, not an
|
|
142
142
|
* exhaustive account list, so multiple accounts on the same provider
|
|
@@ -569,7 +569,7 @@ You can still be genuinely helpful — answer general questions, do research, an
|
|
|
569
569
|
// because the content is derived from live caches rather than a
|
|
570
570
|
// workspace file — the transform pulls from `listConnections()`
|
|
571
571
|
// (SQLite OAuth store) and `getCachedManagedConnections()`
|
|
572
|
-
// (in-memory cache populated by the
|
|
572
|
+
// (in-memory cache populated by the cloud-catalog refresh job).
|
|
573
573
|
// Returns null when no active connections exist so the renderer's
|
|
574
574
|
// empty-body gate omits the section entirely.
|
|
575
575
|
id: "14-connected-services",
|
|
@@ -8,7 +8,7 @@ import { migrateCreateProviderConnections } from "../../persistence/migrations/2
|
|
|
8
8
|
import { migrateProviderConnectionStatusLabel } from "../../persistence/migrations/244-provider-connection-status-label.js";
|
|
9
9
|
import { migrateProviderConnectionBaseUrlAndModels } from "../../persistence/migrations/250-provider-connection-base-url-and-models.js";
|
|
10
10
|
import * as schema from "../../persistence/schema/index.js";
|
|
11
|
-
import {
|
|
11
|
+
import { isCadetCloudConnection } from "../cadet-model-routing.js";
|
|
12
12
|
import { createAdapterFromConnection } from "../inference/adapter-factory.js";
|
|
13
13
|
import type { Auth, ProviderConnection } from "../inference/auth.js";
|
|
14
14
|
import type { ResolvedAuth } from "../inference/auth.js";
|
|
@@ -43,13 +43,13 @@ const resolvedAuth: ResolvedAuth = {
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
describe("cadet connection routing", () => {
|
|
46
|
-
test("
|
|
47
|
-
expect(
|
|
46
|
+
test("isCadetCloudConnection identifies the sentinel connection", () => {
|
|
47
|
+
expect(isCadetCloudConnection(cadetConnection)).toBe(true);
|
|
48
48
|
// The provider column alone decides: a concrete provider is never the
|
|
49
|
-
//
|
|
49
|
+
// cloud route (platform auth always pairs with provider "cadet";
|
|
50
50
|
// DB migration 361 reconciles stored rows).
|
|
51
|
-
expect(
|
|
52
|
-
expect(
|
|
51
|
+
expect(isCadetCloudConnection({ provider: "fireworks" })).toBe(false);
|
|
52
|
+
expect(isCadetCloudConnection({ provider: "cadet" })).toBe(true);
|
|
53
53
|
});
|
|
54
54
|
|
|
55
55
|
test("the cadet sentinel does not dispatch without an override", () => {
|
|
@@ -149,7 +149,7 @@ describe("cadet connection persistence (DB round-trip)", () => {
|
|
|
149
149
|
const loaded = getConnection(db, "cadet");
|
|
150
150
|
expect(loaded).not.toBeNull();
|
|
151
151
|
expect(loaded?.provider).toBe("cadet");
|
|
152
|
-
expect(
|
|
152
|
+
expect(isCadetCloudConnection(loaded!)).toBe(true);
|
|
153
153
|
});
|
|
154
154
|
|
|
155
155
|
test("listConnections includes a persisted cadet row", () => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Guards that a `cadet` provider_connection only takes the provider-agnostic
|
|
3
|
-
* routing path when the resolving profile declares a
|
|
4
|
-
* A `cadet` connection paired with a non-
|
|
3
|
+
* routing path when the resolving profile declares a cloud-routable upstream.
|
|
4
|
+
* A `cadet` connection paired with a non-cloud provider (openrouter/ollama/…)
|
|
5
5
|
* is a misconfiguration and must use the normal mismatch recovery/error path,
|
|
6
6
|
* not route as platform auth and silently fall back.
|
|
7
7
|
*/
|
|
@@ -88,14 +88,14 @@ describe("cadet connection mismatch handling", () => {
|
|
|
88
88
|
expect(provider).not.toBeNull();
|
|
89
89
|
expect(provider?.routeAttribution).toEqual({
|
|
90
90
|
connectionName: "cadet",
|
|
91
|
-
|
|
91
|
+
isCloudRoute: true,
|
|
92
92
|
});
|
|
93
93
|
expect(resolveCalls).toHaveLength(1);
|
|
94
94
|
expect(resolveCalls[0].connection.name).toBe("cadet");
|
|
95
95
|
expect(resolveCalls[0].opts.providerOverride).toBe("fireworks");
|
|
96
96
|
});
|
|
97
97
|
|
|
98
|
-
test("non-
|
|
98
|
+
test("non-cloud provider with no recovery throws provider_mismatch", async () => {
|
|
99
99
|
fakeConnections.set("cadet", cadetConn);
|
|
100
100
|
listResult = []; // no openrouter connection to recover to
|
|
101
101
|
let caught: unknown;
|
|
@@ -113,11 +113,11 @@ describe("cadet connection mismatch handling", () => {
|
|
|
113
113
|
expect((caught as ConnectionResolutionError).reason).toBe(
|
|
114
114
|
"provider_mismatch",
|
|
115
115
|
);
|
|
116
|
-
// Never routed as a cadet
|
|
116
|
+
// Never routed as a cadet cloud-auth request.
|
|
117
117
|
expect(resolveCalls).toHaveLength(0);
|
|
118
118
|
});
|
|
119
119
|
|
|
120
|
-
test("non-
|
|
120
|
+
test("non-cloud provider auto-recovers to a real connection (no override)", async () => {
|
|
121
121
|
fakeConnections.set("cadet", cadetConn);
|
|
122
122
|
listResult = [
|
|
123
123
|
{
|
|
@@ -135,7 +135,7 @@ describe("cadet connection mismatch handling", () => {
|
|
|
135
135
|
expect(provider).not.toBeNull();
|
|
136
136
|
expect(provider?.routeAttribution).toEqual({
|
|
137
137
|
connectionName: "openrouter-personal",
|
|
138
|
-
|
|
138
|
+
isCloudRoute: false,
|
|
139
139
|
});
|
|
140
140
|
expect(resolveCalls).toHaveLength(1);
|
|
141
141
|
expect(resolveCalls[0].connection.name).toBe("openrouter-personal");
|
|
@@ -145,8 +145,8 @@ describe("cadet connection mismatch handling", () => {
|
|
|
145
145
|
|
|
146
146
|
/**
|
|
147
147
|
* Boot seeding leaves a user-owned row claiming the `cadet` name in place, so
|
|
148
|
-
* an install can have no canonical row at all. A
|
|
149
|
-
* on a
|
|
148
|
+
* an install can have no canonical row at all. A cloud profile only resolves
|
|
149
|
+
* on a cloud install, so its route is platform auth, never the credentials
|
|
150
150
|
* that row happens to carry, and never an error over the name collision.
|
|
151
151
|
*/
|
|
152
152
|
describe("user-owned connection claiming the cadet name", () => {
|
|
@@ -199,7 +199,7 @@ describe("user-owned connection claiming the cadet name", () => {
|
|
|
199
199
|
|
|
200
200
|
test("an unavailable platform is a soft miss, not a fall-through", async () => {
|
|
201
201
|
fakeConnections.set("cadet", userOwnedOpenai);
|
|
202
|
-
resolveResult = null; // not signed in to the
|
|
202
|
+
resolveResult = null; // not signed in to the cloud
|
|
203
203
|
const provider = await tryResolveProviderForConnectionName(
|
|
204
204
|
"cadet",
|
|
205
205
|
config,
|
|
@@ -213,8 +213,8 @@ describe("user-owned connection claiming the cadet name", () => {
|
|
|
213
213
|
|
|
214
214
|
test("a concrete provider over the canonical name is still platform-billed", async () => {
|
|
215
215
|
// The shape `resolveCallSiteConfig` produces when a call-site tweak pins a
|
|
216
|
-
// concrete upstream over a
|
|
217
|
-
//
|
|
216
|
+
// concrete upstream over a cloud profile: provider is the upstream, the
|
|
217
|
+
// cloud connection survives. The legacy config of the same shape (a BYOK
|
|
218
218
|
// profile pointing at a row named `cadet`) resolves the same way.
|
|
219
219
|
fakeConnections.set("cadet", userOwnedOpenai);
|
|
220
220
|
const provider = await tryResolveProviderForConnectionName(
|
|
@@ -26,7 +26,7 @@ import type { Auth } from "../inference/auth.js";
|
|
|
26
26
|
// ---------------------------------------------------------------------------
|
|
27
27
|
|
|
28
28
|
const apiKeyAuth: Auth = { type: "api_key", credential: "credential/x" };
|
|
29
|
-
const
|
|
29
|
+
const cloudAuth: Auth = { type: "platform" };
|
|
30
30
|
const oauthAuth: Auth = {
|
|
31
31
|
type: "oauth_subscription",
|
|
32
32
|
credential: "credential/x",
|
|
@@ -40,7 +40,7 @@ describe("isConnectionCompatibleWithModel", () => {
|
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
test("platform connection is compatible with any model", () => {
|
|
43
|
-
const conn = { auth:
|
|
43
|
+
const conn = { auth: cloudAuth };
|
|
44
44
|
expect(isConnectionCompatibleWithModel(conn, "gpt-5.4-nano")).toBe(true);
|
|
45
45
|
});
|
|
46
46
|
|
|
@@ -157,7 +157,7 @@ describe("dispatch routes through provider_connection (Phase 1: connection-only)
|
|
|
157
157
|
|
|
158
158
|
setLlmConfig({
|
|
159
159
|
profiles: {
|
|
160
|
-
"anthropic-
|
|
160
|
+
"anthropic-cloud-profile": {
|
|
161
161
|
provider: "anthropic",
|
|
162
162
|
provider_connection: "anthropic-managed",
|
|
163
163
|
model: "claude-opus-4-7",
|
|
@@ -171,7 +171,7 @@ describe("dispatch routes through provider_connection (Phase 1: connection-only)
|
|
|
171
171
|
});
|
|
172
172
|
|
|
173
173
|
const managedResult = await getConfiguredProvider("mainAgent", {
|
|
174
|
-
overrideProfile: "anthropic-
|
|
174
|
+
overrideProfile: "anthropic-cloud-profile",
|
|
175
175
|
});
|
|
176
176
|
const personalResult = await getConfiguredProvider("mainAgent", {
|
|
177
177
|
overrideProfile: "anthropic-personal-profile",
|
|
@@ -440,7 +440,7 @@ describe("routing identities", () => {
|
|
|
440
440
|
tag: "managed",
|
|
441
441
|
routeAttribution: {
|
|
442
442
|
connectionName: "cadet",
|
|
443
|
-
|
|
443
|
+
isCloudRoute: true,
|
|
444
444
|
},
|
|
445
445
|
} as never);
|
|
446
446
|
expect(resolveProviderCalls[0]?.name).toBe("cadet");
|
|
@@ -467,7 +467,7 @@ describe("routing identities", () => {
|
|
|
467
467
|
tag: "gpu",
|
|
468
468
|
routeAttribution: {
|
|
469
469
|
connectionName: "cadet",
|
|
470
|
-
|
|
470
|
+
isCloudRoute: true,
|
|
471
471
|
},
|
|
472
472
|
} as never);
|
|
473
473
|
expect(resolveProviderOpts[0]?.providerOverride).toBe("cadet");
|
|
@@ -499,7 +499,7 @@ describe("routing identities", () => {
|
|
|
499
499
|
tag: "subscription",
|
|
500
500
|
routeAttribution: {
|
|
501
501
|
connectionName: "chatgpt-subscription",
|
|
502
|
-
|
|
502
|
+
isCloudRoute: false,
|
|
503
503
|
},
|
|
504
504
|
} as never);
|
|
505
505
|
expect(resolveProviderCalls[0]?.name).toBe("chatgpt-subscription");
|
|
@@ -534,7 +534,7 @@ describe("routing identities", () => {
|
|
|
534
534
|
|
|
535
535
|
expect(provider?.routeAttribution).toEqual({
|
|
536
536
|
connectionName: "chatgpt-subscription",
|
|
537
|
-
|
|
537
|
+
isCloudRoute: false,
|
|
538
538
|
});
|
|
539
539
|
expect(resolveProviderCalls[0]?.name).toBe("chatgpt-subscription");
|
|
540
540
|
expect(resolveProviderOpts[0]?.providerOverride).toBe("openai");
|
|
@@ -543,7 +543,7 @@ describe("routing identities", () => {
|
|
|
543
543
|
// A second managed row is creatable under any non-reserved name: only the
|
|
544
544
|
// canonical name is refused at the create route, and `provider: "cadet"`
|
|
545
545
|
// derives platform auth. Managed-ness is the row, never its name.
|
|
546
|
-
test("a
|
|
546
|
+
test("a cloud row under a non-canonical name carries cloud route attribution", async () => {
|
|
547
547
|
fakeConnections.set("managed-openai", {
|
|
548
548
|
name: "managed-openai",
|
|
549
549
|
provider: "cadet",
|
|
@@ -563,7 +563,7 @@ describe("routing identities", () => {
|
|
|
563
563
|
|
|
564
564
|
expect(provider?.routeAttribution).toEqual({
|
|
565
565
|
connectionName: "managed-openai",
|
|
566
|
-
|
|
566
|
+
isCloudRoute: true,
|
|
567
567
|
});
|
|
568
568
|
});
|
|
569
569
|
|
|
@@ -720,7 +720,7 @@ describe("entry-name providers", () => {
|
|
|
720
720
|
// Selection treats an unresolvable provider like an incomplete profile:
|
|
721
721
|
// the broken winner loses and the next rung's model AND transport apply
|
|
722
722
|
// together, restoring the pre-open-schema self-healing. The anchor is
|
|
723
|
-
// the
|
|
723
|
+
// the cloud default, so the heal lands on the cadet route.
|
|
724
724
|
registerConnection(
|
|
725
725
|
{ name: "cadet", provider: "cadet", auth: { type: "platform" } },
|
|
726
726
|
{ name: "anthropic", tag: "managed-anchor" },
|
|
@@ -740,7 +740,7 @@ describe("entry-name providers", () => {
|
|
|
740
740
|
});
|
|
741
741
|
|
|
742
742
|
test("healing hands off to the anchor, whose own failures stay loud", async () => {
|
|
743
|
-
// With the broken profile healed away, resolution rests on the
|
|
743
|
+
// With the broken profile healed away, resolution rests on the cloud
|
|
744
744
|
// anchor; its canonical row missing is a boot-seeding violation and
|
|
745
745
|
// throws explainably rather than masquerading as the ghost profile.
|
|
746
746
|
setLlmConfig({
|
|
@@ -77,7 +77,7 @@ describe("migrateCreateProviderConnections", () => {
|
|
|
77
77
|
const { db } = setupDb();
|
|
78
78
|
// `cadet` was not reserved before consolidation, so an install may already
|
|
79
79
|
// have a BYOK connection keyed `cadet`. Seeding must not rewrite it to the
|
|
80
|
-
//
|
|
80
|
+
// cloud-auth sentinel.
|
|
81
81
|
createConnection(db, {
|
|
82
82
|
name: "cadet",
|
|
83
83
|
provider: "anthropic",
|
|
@@ -338,7 +338,7 @@ describe("Mix-and-match: two profiles, same provider, different connections", ()
|
|
|
338
338
|
const { db } = setupDb();
|
|
339
339
|
|
|
340
340
|
// Two connections for the same provider with distinct auth resolve
|
|
341
|
-
// independently: one
|
|
341
|
+
// independently: one cloud-auth, one personal api_key.
|
|
342
342
|
createConnection(db, {
|
|
343
343
|
name: "anthropic-platform",
|
|
344
344
|
provider: "anthropic",
|