@mycadet/assistant 0.12.7 → 0.12.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/activation-funnel-telemetry.md +6 -6
- package/docs/cadet-doctor.md +7 -7
- package/docs/desktop-browser-cli.md +7 -7
- package/docs/skills.md +2 -2
- package/docs/voice-input-diagnostics.md +1 -1
- package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
- package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
- package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
- package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
- package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
- package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
- package/node_modules/@mycadet/environments/src/types.ts +6 -6
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
- package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
- package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
- package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
- package/node_modules/@mycadet/service-contracts/package.json +1 -1
- package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
- package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
- package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
- package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
- package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
- package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
- package/openapi.yaml +6815 -794
- package/package.json +2 -2
- package/scripts/build-test-fixtures.ts +1 -1
- package/scripts/probe-skill-retrieval.ts +1 -1
- package/scripts/sync-llm-catalog.ts +2 -2
- package/scripts/voice-ttft-spike.ts +2 -2
- package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
- package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
- package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
- package/src/__tests__/anthropic-provider.test.ts +2 -2
- package/src/__tests__/available-skills.test.ts +11 -12
- package/src/__tests__/avatar-identity-sync.test.ts +1 -1
- package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
- package/src/__tests__/call-domain.test.ts +1 -1
- package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
- package/src/__tests__/catalog-files.test.ts +10 -10
- package/src/__tests__/catalog-install-normalize.test.ts +3 -3
- package/src/__tests__/channel-availability-routes.test.ts +8 -8
- package/src/__tests__/channel-readiness-routes.test.ts +4 -4
- package/src/__tests__/channel-readiness-service.test.ts +14 -14
- package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
- package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
- package/src/__tests__/checker.test.ts +6 -6
- package/src/__tests__/clawhub.test.ts +1 -1
- package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
- package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
- package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
- package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
- package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +60 -60
- package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
- package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
- package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
- package/src/__tests__/compaction-events.test.ts +7 -5
- package/src/__tests__/config-loader-backfill.test.ts +65 -65
- package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
- package/src/__tests__/config-loader-corrupt.test.ts +1 -1
- package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
- package/src/__tests__/config-schema.test.ts +3 -3
- package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
- package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
- package/src/__tests__/config-watcher.test.ts +1 -1
- package/src/__tests__/contacts-write.test.ts +1 -1
- package/src/__tests__/conversation-agent-loop.test.ts +2 -2
- package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
- package/src/__tests__/conversation-error.test.ts +45 -45
- package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
- package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
- package/src/__tests__/conversation-skill-tools.test.ts +7 -8
- package/src/__tests__/conversation-slash.test.ts +2 -2
- package/src/__tests__/conversation-speed-override.test.ts +8 -10
- package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
- package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
- package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
- package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
- package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
- package/src/__tests__/credential-health-service.test.ts +27 -41
- package/src/__tests__/credential-routes.test.ts +85 -165
- package/src/__tests__/credential-security-invariants.test.ts +6 -7
- package/src/__tests__/custom-profile-ensure.test.ts +1 -1
- package/src/__tests__/date-context.test.ts +1 -1
- package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
- package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
- package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
- package/src/__tests__/disk-usage.test.ts +3 -3
- package/src/__tests__/email-invite-adapter.test.ts +5 -5
- package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
- package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
- package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
- package/src/__tests__/fallback-breaker.test.ts +7 -7
- package/src/__tests__/feature-flag-test-helpers.ts +106 -0
- package/src/__tests__/gateway-flag-listener.test.ts +1 -1
- package/src/__tests__/gemini-image-service.test.ts +2 -2
- package/src/__tests__/gemini-provider.test.ts +5 -5
- package/src/__tests__/get-skill-detail-audit.test.ts +9 -8
- package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
- package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
- package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
- package/src/__tests__/image-credentials.test.ts +13 -13
- package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
- package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
- package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
- package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
- package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
- package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
- package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
- package/src/__tests__/input-repairs.test.ts +1 -1
- package/src/__tests__/install-skill-routing.test.ts +10 -8
- package/src/__tests__/integration-status.test.ts +5 -5
- package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
- package/src/__tests__/invite-routes-http.test.ts +1 -1
- package/src/__tests__/llm-catalog-parity.test.ts +5 -7
- package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
- package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
- package/src/__tests__/llm-resolver.test.ts +1 -1
- package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
- package/src/__tests__/llm-usage-store.test.ts +1 -1
- package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
- package/src/__tests__/mcp-abort-signal.test.ts +2 -2
- package/src/__tests__/mcp-client-auth.test.ts +2 -2
- package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -2
- package/src/__tests__/media-generate-image.test.ts +30 -30
- package/src/__tests__/memory-config-file-parity.test.ts +6 -6
- package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
- package/src/__tests__/migration-import-commit-http.test.ts +1 -1
- package/src/__tests__/mtime-cache.test.ts +2 -2
- package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
- package/src/__tests__/notification-deep-link.test.ts +40 -40
- package/src/__tests__/oauth-apps-routes.test.ts +3 -3
- package/src/__tests__/oauth-cli.test.ts +9 -9
- package/src/__tests__/oauth-commands-routes.test.ts +16 -16
- package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
- package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
- package/src/__tests__/oauth-providers-routes.test.ts +12 -12
- package/src/__tests__/oauth-store.test.ts +1 -1
- package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
- package/src/__tests__/onboarding-persona-write.test.ts +2 -2
- package/src/__tests__/openai-image-service.test.ts +2 -2
- package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
- package/src/__tests__/openai-responses-provider.test.ts +1 -1
- package/src/__tests__/path-policy.test.ts +4 -4
- package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
- package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
- package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
- package/src/__tests__/plugin-api-provider.test.ts +1 -1
- package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
- package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
- package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
- package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
- package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
- package/src/__tests__/provider-connections-backfill.test.ts +9 -9
- package/src/__tests__/provider-error-scenarios.test.ts +8 -8
- package/src/__tests__/provider-registry-ollama.test.ts +1 -1
- package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
- package/src/__tests__/registry.test.ts +3 -3
- package/src/__tests__/requests-mock.ts +972 -0
- package/src/__tests__/resolve-trust-class.test.ts +1 -1
- package/src/__tests__/resource-pressure-guard.test.ts +6 -6
- package/src/__tests__/resource-pressure-routes.test.ts +5 -5
- package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
- package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
- package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
- package/src/__tests__/schedule-store.test.ts +1 -1
- package/src/__tests__/search-skills-unified.test.ts +9 -7
- package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
- package/src/__tests__/secret-routes-scrub.test.ts +2 -59
- package/src/__tests__/secure-keys.test.ts +1 -1
- package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
- package/src/__tests__/skill-load-tool.test.ts +1 -1
- package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
- package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
- package/src/__tests__/skill-tool-factory.test.ts +1 -1
- package/src/__tests__/skills-file-content-endpoint.test.ts +12 -12
- package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
- package/src/__tests__/skills.test.ts +1 -1
- package/src/__tests__/slim-skill-category.test.ts +11 -9
- package/src/__tests__/stt-stream-session.test.ts +3 -3
- package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
- package/src/__tests__/subagent-disposal.test.ts +5 -5
- package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
- package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
- package/src/__tests__/subagent-manager-notify.test.ts +5 -5
- package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
- package/src/__tests__/system-prompt.test.ts +1 -1
- package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
- package/src/__tests__/telegram-config.test.ts +16 -16
- package/src/__tests__/telephony-tts-guard.test.ts +13 -13
- package/src/__tests__/test-preload.ts +17 -7
- package/src/__tests__/tool-audit.test.ts +1 -1
- package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
- package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
- package/src/__tests__/turn-events-store.test.ts +1 -1
- package/src/__tests__/twilio-routes.test.ts +2 -1
- package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
- package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
- package/src/__tests__/validate-input.test.ts +5 -5
- package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
- package/src/__tests__/voice-config-update.test.ts +15 -15
- package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
- package/src/__tests__/web-search.test.ts +340 -859
- package/src/__tests__/workspace-git-service.test.ts +1 -1
- package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
- package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
- package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
- package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
- package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
- package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
- package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
- package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
- package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
- package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
- package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
- package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
- package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
- package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
- package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
- package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
- package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
- package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
- package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
- package/src/api/events/cloud-disconnected.ts +21 -0
- package/src/api/events/host-bash.ts +1 -1
- package/src/api/events/host-cu.ts +1 -1
- package/src/api/events/host-file.ts +1 -1
- package/src/api/events/notification-intent.ts +1 -1
- package/src/api/events/{show-platform-login.ts → show-cloud-login.ts} +3 -5
- package/src/api/index.ts +11 -11
- package/src/api/responses/home.ts +1 -1
- package/src/api/surfaces.ts +4 -4
- package/src/approvals/guardian-request-resolvers.ts +2 -2
- package/src/avatar/accent-backfill.ts +1 -1
- package/src/avatar/identity-avatar.ts +1 -1
- package/src/avatar/notification-avatar.test.ts +2 -2
- package/src/avatar/notification-avatar.ts +2 -2
- package/src/avatar/resvg-lazy.test.ts +1 -1
- package/src/avatar/resvg-lazy.ts +3 -3
- package/src/avatar/sync-avatar.test.ts +76 -76
- package/src/avatar/sync-avatar.ts +15 -15
- package/src/avatar/traits-png-sync.ts +1 -1
- package/src/background-wake/background-wake-routes.test.ts +39 -39
- package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
- package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
- package/src/background-wake/publisher.ts +4 -4
- package/src/background-wake/wake-intent-hooks.test.ts +3 -3
- package/src/calls/__tests__/call-controller.test.ts +2 -2
- package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
- package/src/calls/call-domain.ts +1 -1
- package/src/calls/resolve-call-tts-provider.ts +6 -6
- package/src/calls/telephony-credential-preflight.ts +3 -3
- package/src/calls/telephony-tts-capability.ts +5 -6
- package/src/calls/tts-call-strategy.ts +1 -1
- package/src/calls/voice-escalation-judge.ts +1 -1
- package/src/calls/voice-ingress-preflight.ts +4 -4
- package/src/cli/bundled-modules.ts +1 -1
- package/src/cli/commands/__tests__/apps.test.ts +18 -53
- package/src/cli/commands/__tests__/plugins.test.ts +13 -13
- package/src/cli/commands/__tests__/tts.test.ts +1 -1
- package/src/cli/commands/auth.help.ts +3 -3
- package/src/cli/commands/auth.ts +2 -4
- package/src/cli/commands/browser.help.ts +2 -2
- package/src/cli/commands/channels/index.help.ts +2 -2
- package/src/cli/commands/channels/index.ts +1 -1
- package/src/cli/commands/channels/send.ts +1 -1
- package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
- package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
- package/src/cli/commands/cloud/connect.ts +2 -2
- package/src/cli/commands/cloud/credits-format.ts +1 -1
- package/src/cli/commands/cloud/index.help.ts +35 -35
- package/src/cli/commands/config.ts +1 -1
- package/src/cli/commands/credentials.ts +10 -12
- package/src/cli/commands/domain.ts +1 -1
- package/src/cli/commands/email.help.ts +1 -1
- package/src/cli/commands/email.ts +2 -2
- package/src/cli/commands/gateway.help.ts +1 -1
- package/src/cli/commands/gateway.ts +1 -1
- package/src/cli/commands/image-generation.help.ts +1 -1
- package/src/cli/commands/inference-providers.ts +1 -1
- package/src/cli/commands/inference.help.ts +2 -2
- package/src/cli/commands/memory/index.help.ts +1 -1
- package/src/cli/commands/oauth/connect.test.ts +2 -2
- package/src/cli/commands/oauth/connect.ts +1 -1
- package/src/cli/commands/oauth/index.help.ts +5 -5
- package/src/cli/commands/oauth/providers.ts +2 -2
- package/src/cli/commands/oauth/shared.ts +3 -3
- package/src/cli/commands/plugins.help.ts +2 -3
- package/src/cli/commands/plugins.ts +5 -5
- package/src/cli/commands/roadmap.help.ts +1 -1
- package/src/cli/commands/telemetry.help.ts +2 -2
- package/src/cli/commands/telemetry.ts +2 -2
- package/src/cli/commands/tts.help.ts +3 -3
- package/src/cli/commands/webhooks.help.ts +9 -9
- package/src/cli/commands/webhooks.ts +1 -1
- package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
- package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
- package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
- package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
- package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
- package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
- package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
- package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
- package/src/cli/lib/bundled-marketplace.json +1 -1
- package/src/cli/lib/inspect-plugin.ts +2 -2
- package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
- package/src/cli/lib/install-from-github.ts +4 -4
- package/src/cli/lib/plugin-catalog-cache.ts +7 -7
- package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
- package/src/cli/lib/plugin-catalog-local.ts +2 -2
- package/src/cli/lib/publish-plugin.ts +9 -10
- package/src/cli/lib/search-plugins.ts +2 -2
- package/src/{platform → cloud}/client.test.ts +85 -86
- package/src/{platform → cloud}/client.ts +38 -46
- package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
- package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
- package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
- package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
- package/src/{platform → cloud}/consent-cache.test.ts +5 -5
- package/src/{platform → cloud}/consent-cache.ts +8 -8
- package/src/cloud/feature-gate.ts +8 -0
- package/src/{platform → cloud}/sync-identity.test.ts +4 -4
- package/src/{platform → cloud}/sync-identity.ts +6 -6
- package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
- package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
- package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
- package/src/config/__tests__/default-provider.test.ts +4 -4
- package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
- package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
- package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
- package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
- package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
- package/src/config/__tests__/profile-materialization.test.ts +7 -7
- package/src/config/__tests__/seed-default-provider.test.ts +17 -17
- package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
- package/src/config/__tests__/webhook-routing.test.ts +51 -51
- package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
- package/src/config/bundled-skills/messaging/SKILL.md +8 -8
- package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
- package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
- package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
- package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
- package/src/config/bundled-skills/settings/TOOLS.json +3 -3
- package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
- package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
- package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
- package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
- package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
- package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
- package/src/config/call-site-defaults.ts +6 -6
- package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
- package/src/config/cloud-rehydration.ts +35 -0
- package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
- package/src/config/default-profile-catalog.ts +36 -38
- package/src/config/default-profile-names.ts +11 -11
- package/src/config/default-provider-resolution.ts +2 -2
- package/src/config/default-provider.ts +1 -1
- package/src/config/env-registry.ts +23 -21
- package/src/config/env.ts +33 -46
- package/src/config/feature-flag-registry.json +5 -5
- package/src/config/inference-profile-validation.ts +1 -1
- package/src/config/llm-resolver.ts +9 -10
- package/src/config/loader.ts +33 -17
- package/src/config/profile-materialization.ts +8 -8
- package/src/config/profile-text-generation.test.ts +1 -1
- package/src/config/sanitize-for-transfer.ts +1 -1
- package/src/config/schema.ts +6 -6
- package/src/config/schemas/__tests__/stt.test.ts +2 -2
- package/src/config/schemas/call-site-catalog.ts +1 -1
- package/src/config/schemas/channels.ts +8 -0
- package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
- package/src/config/schemas/host-browser.ts +1 -0
- package/src/config/schemas/ingress.ts +1 -12
- package/src/config/schemas/llm.ts +45 -36
- package/src/config/schemas/memory-lifecycle.ts +11 -1
- package/src/config/schemas/services.ts +4 -4
- package/src/config/schemas/stt.ts +3 -3
- package/src/config/schemas/tts.ts +10 -5
- package/src/config/schemas/voice.ts +1 -1
- package/src/config/seed-inference-profiles.ts +19 -19
- package/src/config/skill-state.ts +2 -2
- package/src/config/skills.ts +4 -4
- package/src/config/sync-gated-profiles.ts +8 -8
- package/src/config/webhook-routing.ts +19 -19
- package/src/contacts/contacts-write.ts +1 -1
- package/src/credential-execution/ces-runtime.ts +6 -6
- package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
- package/src/credential-execution/prompted-credential.ts +6 -18
- package/src/credential-health/credential-health-service.ts +61 -76
- package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
- package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
- package/src/daemon/config-watcher.ts +2 -2
- package/src/daemon/conversation-agent-loop.ts +9 -9
- package/src/daemon/conversation-error.ts +36 -36
- package/src/daemon/conversation-skill-tools.ts +7 -7
- package/src/daemon/conversation-surfaces.ts +1 -1
- package/src/daemon/conversation-tool-setup.ts +2 -2
- package/src/daemon/conversation-turn-finalize.ts +1 -1
- package/src/daemon/conversation-workspace.ts +1 -1
- package/src/daemon/conversation.ts +1 -1
- package/src/daemon/credential-transcript-scrub.ts +21 -35
- package/src/daemon/daemon-readiness.ts +1 -1
- package/src/daemon/event-loop-watchdog.ts +2 -2
- package/src/daemon/handlers/config-ingress.ts +9 -9
- package/src/daemon/handlers/config-telegram.ts +6 -6
- package/src/daemon/handlers/skills.ts +20 -20
- package/src/daemon/host-cu-proxy.ts +1 -1
- package/src/daemon/lifecycle.ts +19 -19
- package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
- package/src/daemon/providers-setup.ts +6 -6
- package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
- package/src/daemon/resource-pressure-guard.ts +6 -6
- package/src/daemon/shutdown-handlers.ts +1 -1
- package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
- package/src/daemon/trust-context.ts +1 -1
- package/src/desktop/desktop-automation-lease.ts +1 -1
- package/src/desktop/desktop-browser-endpoint.ts +2 -4
- package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
- package/src/desktop/desktop-stream-bridge.test.ts +4 -4
- package/src/desktop/desktop-stream-bridge.ts +1 -1
- package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
- package/src/desktop/virtual-desktop-feature.ts +7 -7
- package/src/email/byo-email-credential.ts +1 -1
- package/src/email/registered-inbox.test.ts +16 -16
- package/src/email/registered-inbox.ts +20 -20
- package/src/heartbeat/heartbeat-service.ts +1 -1
- package/src/hooks/hook-loader.ts +2 -2
- package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
- package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
- package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
- package/src/inbound/oauth-callback-url.ts +6 -6
- package/src/inbound/pod-webhook-claim.ts +2 -2
- package/src/inbound/public-ingress-urls.ts +3 -3
- package/src/inbound/tunnel-probe.ts +21 -15
- package/src/inbound/tunnel-webhooks-gate.ts +3 -3
- package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
- package/src/ipc/__tests__/email-ipc.test.ts +8 -8
- package/src/ipc/gateway-client.test.ts +55 -59
- package/src/ipc/gateway-flag-listener.ts +3 -3
- package/src/ipc/routes/db-proxy.ts +1 -1
- package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
- package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
- package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
- package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
- package/src/live-voice/live-activity-reporter.ts +7 -7
- package/src/live-voice/live-voice-credential-preflight.ts +6 -6
- package/src/live-voice/live-voice-session.ts +3 -3
- package/src/live-voice/live-voice-tts.ts +1 -1
- package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
- package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
- package/src/mcp/mcp-oauth-provider.ts +2 -2
- package/src/media/gemini-image-service.ts +11 -13
- package/src/media/image-credentials.ts +9 -9
- package/src/media/openai-image-service.ts +1 -1
- package/src/media/types.ts +3 -3
- package/src/messaging/providers/channel-transport.ts +1 -1
- package/src/messaging/providers/discord/transport.ts +1 -1
- package/src/messaging/providers/gmail/adapter.ts +1 -1
- package/src/messaging/providers/gmail/client.ts +4 -4
- package/src/messaging/providers/outlook/adapter.ts +1 -1
- package/src/messaging/providers/slack/adapter.ts +1 -1
- package/src/messaging/providers/slack/transport.ts +1 -1
- package/src/messaging/providers/telegram-bot/transport.ts +1 -1
- package/src/monitoring/db-integrity-check.ts +1 -1
- package/src/monitoring/db-integrity-sample.ts +2 -2
- package/src/monitoring/mount-watch.ts +1 -1
- package/src/monitoring/oom-kill-reporter.ts +1 -1
- package/src/monitoring/worker.ts +5 -5
- package/src/notifications/README.md +2 -2
- package/src/notifications/__tests__/broadcaster.test.ts +9 -9
- package/src/notifications/__tests__/completion-policy.test.ts +1 -1
- package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
- package/src/notifications/activity-failed-dedupe.ts +1 -1
- package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
- package/src/notifications/broadcaster.ts +10 -10
- package/src/notifications/decision-engine.ts +1 -1
- package/src/notifications/destination-resolver.ts +1 -1
- package/src/notifications/emit-signal.ts +6 -6
- package/src/notifications/types.ts +2 -2
- package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
- package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
- package/src/oauth/byo-connection.test.ts +2 -2
- package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
- package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
- package/src/oauth/connection-resolver.test.ts +59 -61
- package/src/oauth/connection-resolver.ts +22 -22
- package/src/oauth/connection.ts +1 -1
- package/src/oauth/oauth-store.ts +8 -8
- package/src/oauth/provider-serializer.ts +4 -4
- package/src/oauth/revoke.ts +1 -1
- package/src/oauth/seed-providers.ts +32 -32
- package/src/permissions/approval-provenance.ts +1 -1
- package/src/permissions/checker.test.ts +18 -16
- package/src/permissions/checker.ts +3 -3
- package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
- package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
- package/src/persistence/embeddings/embedding-backend.ts +13 -13
- package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
- package/src/persistence/embeddings/embedding-gemini.ts +11 -11
- package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
- package/src/persistence/jobs-store.ts +1 -1
- package/src/persistence/lifecycle-events-store.ts +1 -1
- package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
- package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
- package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
- package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
- package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
- package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
- package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
- package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
- package/src/persistence/schema/oauth.ts +1 -1
- package/src/plugin-api/index.ts +4 -4
- package/src/plugin-api/model-profiles.test.ts +1 -1
- package/src/plugin-api/model-profiles.ts +1 -1
- package/src/plugin-api/transcription-session.ts +1 -1
- package/src/plugin-api/vision-support.test.ts +1 -1
- package/src/plugin-api/webhook-url.ts +12 -12
- package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
- package/src/plugins/defaults/cloud-hosted/package.json +14 -0
- package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
- package/src/plugins/defaults/index.ts +6 -6
- package/src/plugins/defaults/main.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
- package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
- package/src/plugins/defaults/memory/config.ts +4 -4
- package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
- package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
- package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
- package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
- package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
- package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
- package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
- package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
- package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
- package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
- package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
- package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
- package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
- package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
- package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
- package/src/plugins/defaults/memory/worker.ts +5 -5
- package/src/plugins/defaults/workspace/injectors.ts +2 -2
- package/src/plugins/mtime-cache.ts +1 -1
- package/src/plugins/source-versions.ts +1 -1
- package/src/plugins/types.ts +1 -1
- package/src/prompts/__tests__/system-prompt.test.ts +1 -1
- package/src/prompts/normalize-onboarding.ts +1 -1
- package/src/prompts/persona-resolver.ts +1 -1
- package/src/prompts/templates/system-sections.ts +3 -3
- package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
- package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
- package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
- package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
- package/src/providers/__tests__/inference.test.ts +2 -2
- package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
- package/src/providers/__tests__/retry-callsite.test.ts +1 -1
- package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
- package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
- package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
- package/src/providers/anthropic/client.ts +1 -1
- package/src/providers/cadet/client.ts +1 -1
- package/src/providers/cadet-model-routing.test.ts +19 -19
- package/src/providers/cadet-model-routing.ts +23 -23
- package/src/providers/call-site-routing.ts +10 -10
- package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
- package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
- package/src/providers/connection-resolution.ts +43 -43
- package/src/providers/fallback-breaker.ts +2 -2
- package/src/providers/fetch-provider-catalog.ts +3 -3
- package/src/providers/gemini/client.ts +5 -5
- package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
- package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
- package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
- package/src/providers/inference/adapter-factory.ts +35 -35
- package/src/providers/inference/auth.ts +10 -10
- package/src/providers/inference/backfill.ts +11 -11
- package/src/providers/inference/connection-availability.ts +24 -24
- package/src/providers/inference/connections.ts +18 -20
- package/src/providers/inference/profile-probe.ts +4 -4
- package/src/providers/inference/resolve-auth.ts +8 -8
- package/src/providers/jev/ask.test.ts +1 -1
- package/src/providers/jev/ask.ts +2 -2
- package/src/providers/model-catalog.ts +8 -9
- package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
- package/src/providers/openai/api-error-normalization.ts +2 -2
- package/src/providers/provider-availability.ts +4 -4
- package/src/providers/provider-env-vars.ts +1 -1
- package/src/providers/provider-secret-catalog.ts +1 -1
- package/src/providers/registry.ts +20 -20
- package/src/providers/retry.ts +26 -26
- package/src/providers/routing-identity.ts +10 -10
- package/src/providers/search-provider-catalog.ts +2 -2
- package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
- package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
- package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
- package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
- package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
- package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
- package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
- package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
- package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
- package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
- package/src/providers/speech-to-text/provider-catalog.ts +3 -3
- package/src/providers/speech-to-text/resolve.ts +26 -28
- package/src/providers/together/client.ts +1 -1
- package/src/providers/types.ts +4 -4
- package/src/providers/voice-error-copy.ts +1 -1
- package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
- package/src/runtime/agent-wake.ts +1 -1
- package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
- package/src/runtime/auth/middleware.ts +1 -1
- package/src/runtime/auth/scopes.ts +1 -1
- package/src/runtime/capabilities.ts +1 -1
- package/src/runtime/channel-invite-transports/discord.ts +1 -1
- package/src/runtime/channel-invite-transports/email.ts +2 -2
- package/src/runtime/channel-readiness-service.ts +15 -13
- package/src/runtime/channel-reply-session.test.ts +1 -1
- package/src/runtime/channel-reply-session.ts +1 -1
- package/src/runtime/http-server.ts +4 -4
- package/src/runtime/introduction-policy.ts +4 -4
- package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
- package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
- package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
- package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
- package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
- package/src/runtime/migrations/migration-transport.ts +3 -3
- package/src/runtime/migrations/origin-mode.ts +6 -9
- package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
- package/src/runtime/migrations/vbundle-importer.ts +4 -4
- package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
- package/src/runtime/migrations/vbundle-validator.ts +1 -1
- package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
- package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
- package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
- package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +26 -25
- package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
- package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
- package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
- package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
- package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
- package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
- package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
- package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
- package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
- package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
- package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
- package/src/runtime/routes/app-management-routes.ts +1 -1
- package/src/runtime/routes/attachment-routes.ts +1 -1
- package/src/runtime/routes/auth-routes.ts +14 -14
- package/src/runtime/routes/avatar-routes.ts +0 -14
- package/src/runtime/routes/background-wake-routes.ts +4 -4
- package/src/runtime/routes/channel-availability-routes.ts +4 -4
- package/src/runtime/routes/client-routes.ts +5 -5
- package/src/runtime/routes/cloud-credentials.ts +45 -0
- package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +83 -116
- package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
- package/src/runtime/routes/conversation-query-routes.ts +82 -282
- package/src/runtime/routes/credential-routes.ts +28 -30
- package/src/runtime/routes/default-provider-routes.ts +1 -1
- package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
- package/src/runtime/routes/desktop-setup-routes.ts +1 -1
- package/src/runtime/routes/domain-routes.ts +15 -21
- package/src/runtime/routes/email-routes.ts +13 -13
- package/src/runtime/routes/errors.ts +1 -1
- package/src/runtime/routes/gateway-status-routes.ts +1 -1
- package/src/runtime/routes/identity-routes.ts +3 -3
- package/src/runtime/routes/inbound-message-handler.ts +1 -1
- package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
- package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
- package/src/runtime/routes/index.ts +1 -1
- package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
- package/src/runtime/routes/inference-profiles-routes.ts +11 -11
- package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
- package/src/runtime/routes/ingress-status-routes.ts +1 -1
- package/src/runtime/routes/integrations/a2a.ts +2 -2
- package/src/runtime/routes/integrations/twilio.ts +21 -35
- package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
- package/src/runtime/routes/live-voice-routes.test.ts +4 -4
- package/src/runtime/routes/live-voice-routes.ts +6 -6
- package/src/runtime/routes/migration-routes.ts +34 -40
- package/src/runtime/routes/oauth-commands-routes.ts +31 -31
- package/src/runtime/routes/oauth-providers.ts +5 -5
- package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
- package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
- package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
- package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
- package/src/runtime/routes/oauth-request-hints.ts +1 -1
- package/src/runtime/routes/plugins-routes.ts +9 -9
- package/src/runtime/routes/profiler-routes.ts +1 -1
- package/src/runtime/routes/ps-routes.ts +4 -0
- package/src/runtime/routes/roadmap-routes.ts +18 -20
- package/src/runtime/routes/secret-routes.ts +29 -55
- package/src/runtime/routes/settings-routes.ts +18 -23
- package/src/runtime/routes/telemetry-routes.ts +4 -4
- package/src/runtime/routes/tts-routes.ts +4 -4
- package/src/runtime/routes/user-route-resolution.ts +1 -1
- package/src/runtime/routes/webhook-routes.ts +18 -18
- package/src/runtime/routes/workflow-routes.ts +5 -5
- package/src/runtime/sync/resource-sync-events.ts +2 -2
- package/src/runtime/verification-outbound-actions.ts +4 -4
- package/src/schedule/integration-status.ts +6 -6
- package/src/schedule/run-script.ts +1 -1
- package/src/schedule/schedule-timezone.ts +1 -1
- package/src/schedule/worker.ts +5 -5
- package/src/security/auth-fallback-events-store.ts +1 -1
- package/src/security/oauth2.ts +4 -4
- package/src/skills/available-skills.ts +4 -4
- package/src/skills/catalog-files.ts +8 -8
- package/src/skills/catalog-install.ts +12 -12
- package/src/skills/categories-cache.ts +3 -3
- package/src/skills/clawhub.ts +1 -1
- package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
- package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
- package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
- package/src/skills/inline-command-runner.ts +1 -1
- package/src/skills/install-meta.ts +1 -1
- package/src/skills/path-classifier.ts +4 -4
- package/src/skills/skill-history.ts +4 -4
- package/src/skills/skillssh-registry.ts +1 -1
- package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
- package/src/stt/daemon-batch-transcriber.ts +7 -7
- package/src/stt/types.ts +3 -3
- package/src/subagent/manager.ts +15 -15
- package/src/subagent/types.ts +1 -1
- package/src/telegram/__tests__/webhook-health.test.ts +16 -16
- package/src/telegram/webhook-health.ts +10 -10
- package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
- package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
- package/src/telemetry/config-setting-events-store.ts +1 -1
- package/src/telemetry/config-setting-snapshot.ts +1 -1
- package/src/telemetry/memory-corpus-size.ts +1 -1
- package/src/telemetry/memory-tier-reporter.test.ts +2 -2
- package/src/telemetry/memory-tier-reporter.ts +3 -3
- package/src/telemetry/telemetry-event-sources.test.ts +2 -2
- package/src/telemetry/telemetry-event-sources.ts +9 -9
- package/src/telemetry/telemetry-events-outbox.ts +2 -2
- package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
- package/src/telemetry/telemetry-wire-validation.ts +3 -3
- package/src/telemetry/telemetry-wire.generated.ts +1 -1
- package/src/telemetry/tool-audit.ts +1 -1
- package/src/telemetry/tool-executed-events-store.test.ts +1 -1
- package/src/telemetry/trace-collection-policy.ts +4 -4
- package/src/telemetry/turn-events-store.ts +1 -1
- package/src/telemetry/turn-outcome.ts +1 -1
- package/src/telemetry/turn-trace-store.ts +2 -2
- package/src/telemetry/types.test.ts +1 -1
- package/src/telemetry/types.ts +19 -19
- package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
- package/src/telemetry/usage-telemetry-reporter.ts +17 -17
- package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
- package/src/telemetry/watchdog-direct-emit.ts +10 -10
- package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
- package/src/tools/browser/cdp-client/factory.ts +1 -1
- package/src/tools/computer-use/target.ts +2 -2
- package/src/tools/credentials/store.ts +6 -15
- package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
- package/src/tools/network/__tests__/web-search.test.ts +14 -14
- package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
- package/src/tools/network/web-search.ts +9 -9
- package/src/tools/permission-checker.ts +2 -2
- package/src/tools/shared/input-misuse.ts +1 -1
- package/src/tools/shared/input-repairs.ts +4 -4
- package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
- package/src/tools/skills/find-similar-skills.test.ts +7 -7
- package/src/tools/skills/find-similar-skills.ts +15 -15
- package/src/tools/skills/load.ts +6 -6
- package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
- package/src/tools/skills/skill-script-runner.ts +2 -2
- package/src/tools/terminal/safe-env.ts +3 -3
- package/src/tools/tool-types.ts +2 -2
- package/src/tools/types.ts +2 -2
- package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
- package/src/tools/workflows/manage-workflows.ts +1 -1
- package/src/tools/workspace-tools/loader.ts +1 -1
- package/src/tts/__tests__/cadet-provider.test.ts +5 -5
- package/src/tts/provider-catalog.ts +1 -1
- package/src/tts/providers/cadet-provider.ts +23 -23
- package/src/tts/providers/cadet-tts-socket.ts +2 -2
- package/src/tts/tts-config-resolver.ts +1 -1
- package/src/tts/tts-voice-field.ts +3 -3
- package/src/usage/subagent-attribution.ts +1 -1
- package/src/util/__tests__/process-table.test.ts +47 -0
- package/src/util/canonicalize-identity.ts +1 -1
- package/src/util/cgroup-cpu.ts +5 -5
- package/src/util/cgroup-memory.ts +2 -2
- package/src/util/container-cpu-sampler.ts +4 -4
- package/src/util/disk-usage.ts +4 -4
- package/src/util/errors.ts +3 -3
- package/src/util/oom-priority.ts +1 -1
- package/src/util/platform.ts +5 -5
- package/src/util/process-table.ts +39 -5
- package/src/util/provider-error-patterns.ts +2 -2
- package/src/watch/__tests__/watch-retro.test.ts +2 -2
- package/src/watch/watch-retro.ts +1 -1
- package/src/watcher/__tests__/telemetry.test.ts +2 -2
- package/src/watcher/telemetry.ts +1 -1
- package/src/windows-compiled-cli.ts +1 -1
- package/src/workspace/adaptive-thinking-repair.ts +4 -4
- package/src/workspace/byok-default-profile-ensure.ts +7 -7
- package/src/workspace/git-service.ts +2 -2
- package/src/workspace/migrations/006-services-config.ts +1 -1
- package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
- package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
- package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
- package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
- package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
- package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
- package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
- package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
- package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
- package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
- package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
- package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
- package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
- package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
- package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
- package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
- package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
- package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
- package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
- package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
- package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
- package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
- package/src/workspace/migrations/127-backfill-default-provider.ts +4 -4
- package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
- package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
- package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
- package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
- package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
- package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
- package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
- package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
- package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
- package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
- package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
- package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
- package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
- package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
- package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
- package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
- package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
- package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
- package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
- package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
- package/src/workspace/migrations/registry.ts +6 -6
- package/src/workspace/top-level-renderer.ts +1 -1
- package/src/workspace/turn-commit.ts +2 -2
- package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
- package/src/__tests__/mock-gateway-ipc.ts +0 -260
- package/src/api/events/platform-disconnected.ts +0 -21
- package/src/config/platform-rehydration.ts +0 -60
- package/src/platform/feature-gate.ts +0 -8
- package/src/plugins/defaults/platform-hosted/package.json +0 -14
- package/src/runtime/routes/platform-managed-credentials.ts +0 -50
- /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
- /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
|
@@ -504,10 +504,10 @@ export function supportsDiarization(id: SttProviderId): boolean {
|
|
|
504
504
|
* than a stored API key.
|
|
505
505
|
*
|
|
506
506
|
* Derived from the catalog rather than a hand-kept id list: every check that
|
|
507
|
-
* gates
|
|
507
|
+
* gates cloud speech reads this, so adding a cloud provider cannot leave
|
|
508
508
|
* one of them behind on a stale literal.
|
|
509
509
|
*/
|
|
510
|
-
export function
|
|
510
|
+
export function isCloudSttProvider(id: SttProviderId): boolean {
|
|
511
511
|
return CATALOG.get(id)?.credentialProvider === "cadet";
|
|
512
512
|
}
|
|
513
513
|
|
|
@@ -653,7 +653,7 @@ export function listCredentialProviderNames(): readonly string[] {
|
|
|
653
653
|
const seen = new Set<string>();
|
|
654
654
|
const result: string[] = [];
|
|
655
655
|
for (const entry of CATALOG.values()) {
|
|
656
|
-
// Connection-based providers (cadet) authenticate via the
|
|
656
|
+
// Connection-based providers (cadet) authenticate via the cloud
|
|
657
657
|
// connection, not a stored API key — offering them on the generic
|
|
658
658
|
// key routes would accept a key that never enables anything.
|
|
659
659
|
if (entry.setupMode !== "api-key") {
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
batchBoundaryGapReason,
|
|
14
14
|
getCredentialProvider,
|
|
15
15
|
getProviderEntry,
|
|
16
|
-
|
|
16
|
+
isCloudSttProvider,
|
|
17
17
|
resolveSttCatalogKey,
|
|
18
18
|
supportsBoundary,
|
|
19
19
|
supportsDiarization,
|
|
@@ -27,7 +27,7 @@ const log = getLogger("stt-resolver");
|
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
29
|
* Providers that decode language-less audio as English rather than detecting
|
|
30
|
-
* the spoken language: Deepgram directly, and the
|
|
30
|
+
* the spoken language: Deepgram directly, and the cloud relay, which dials
|
|
31
31
|
* Deepgram server-side. For these, an unset `services.stt.language` is not a
|
|
32
32
|
* neutral state: it is a silent English pin that returns non-English speech
|
|
33
33
|
* as English-sounding nonsense.
|
|
@@ -38,7 +38,7 @@ const log = getLogger("stt-resolver");
|
|
|
38
38
|
const MULTILINGUAL_DEFAULT_PROVIDERS: ReadonlySet<SttProviderId> = new Set([
|
|
39
39
|
"deepgram",
|
|
40
40
|
"cadet",
|
|
41
|
-
//
|
|
41
|
+
// Cloud Flux resolves an absent language to `flux-general-en` relay-side,
|
|
42
42
|
// so unset is an English pin here too. With "multi" the relay selects
|
|
43
43
|
// `flux-general-multi` and lets Flux detect and code-switch.
|
|
44
44
|
"cadet-flux",
|
|
@@ -157,10 +157,10 @@ export async function resolveBatchTranscriber(
|
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
if (provider === "cadet") {
|
|
160
|
-
// Managed batch rides the
|
|
160
|
+
// Managed batch rides the cloud's speech proxy, which forwards the
|
|
161
161
|
// language to Deepgram server-side. A platform build predating that
|
|
162
162
|
// field ignores it rather than failing, so the daemon can send one
|
|
163
|
-
// before the
|
|
163
|
+
// before the cloud side deploys.
|
|
164
164
|
return (await sttProviderKeyResolves("cadet"))
|
|
165
165
|
? createDaemonBatchTranscriber(null, "cadet", language)
|
|
166
166
|
: null;
|
|
@@ -380,7 +380,7 @@ export interface ResolveStreamingTranscriberOptions {
|
|
|
380
380
|
/**
|
|
381
381
|
* Provider to resolve a transcriber for. Defaults to
|
|
382
382
|
* `services.stt.provider`. Callers that derive the provider themselves
|
|
383
|
-
* (e.g. live voice, which runs on the
|
|
383
|
+
* (e.g. live voice, which runs on the cloud-speech effective provider)
|
|
384
384
|
* pass it here so the resolved transcriber matches the provider their own
|
|
385
385
|
* readiness check approved.
|
|
386
386
|
*/
|
|
@@ -421,7 +421,7 @@ export interface ResolveStreamingTranscriberOptions {
|
|
|
421
421
|
* config for a single session.
|
|
422
422
|
*
|
|
423
423
|
* Leaving both unset does not reach the adapters as "no language": on
|
|
424
|
-
* Deepgram and the
|
|
424
|
+
* Deepgram and the cloud relay, where that would mean English rather
|
|
425
425
|
* than detection, {@link effectiveSttLanguage} fills in code-switching
|
|
426
426
|
* first. See {@link CreateStreamingTranscriberOptions.language} for how
|
|
427
427
|
* each adapter treats what it finally receives.
|
|
@@ -518,7 +518,7 @@ export async function resolveStreamingTranscriber(
|
|
|
518
518
|
// Both managed entries authenticate with the cloud connection, not a
|
|
519
519
|
// stored API key: there is no key to fetch, and readiness is whether the
|
|
520
520
|
// connection resolves.
|
|
521
|
-
const managed =
|
|
521
|
+
const managed = isCloudSttProvider(provider);
|
|
522
522
|
const apiKey = managed
|
|
523
523
|
? null
|
|
524
524
|
: await getProviderKeyAsync(credentialProviderName);
|
|
@@ -576,7 +576,7 @@ interface CreateStreamingTranscriberOptions {
|
|
|
576
576
|
utteranceEndMs?: number;
|
|
577
577
|
/**
|
|
578
578
|
* Spoken language, forwarded to the adapters that accept one: Deepgram,
|
|
579
|
-
* xAI, and the
|
|
579
|
+
* xAI, and the cloud relay (which passes it to Deepgram server-side).
|
|
580
580
|
*
|
|
581
581
|
* Gemini and Whisper take no language option (both auto-detect natively
|
|
582
582
|
* from the audio), so this is silently ignored for them, matching how
|
|
@@ -586,7 +586,7 @@ interface CreateStreamingTranscriberOptions {
|
|
|
586
586
|
* decode as English, so non-English speech comes back as English-sounding
|
|
587
587
|
* nonsense rather than failing loudly. Any configured language pins
|
|
588
588
|
* nova-3 on BYOK Deepgram (see `deepgramLanguageOptions`); `"multi"`
|
|
589
|
-
* selects nova-3's code-switching mode (the
|
|
589
|
+
* selects nova-3's code-switching mode (the cloud relay pins nova-3
|
|
590
590
|
* server-side).
|
|
591
591
|
*/
|
|
592
592
|
language?: string;
|
|
@@ -657,19 +657,18 @@ async function createStreamingTranscriber(
|
|
|
657
657
|
});
|
|
658
658
|
}
|
|
659
659
|
case "cadet": {
|
|
660
|
-
//
|
|
660
|
+
// Cloud speech dials the GATEWAY's speech relay (tunnel contact is
|
|
661
661
|
// gateway-only); the apiKey argument is unused. Diarization is
|
|
662
662
|
// unsupported (not in the relay's param allowlist) and silently
|
|
663
663
|
// ignored, matching Gemini/Whisper — as is utteranceEndMs (the relay
|
|
664
664
|
// allowlist has no utterance_end_ms; boundary finals ride on
|
|
665
665
|
// endpointing alone).
|
|
666
|
-
// The gateway is the credential authority, but the
|
|
666
|
+
// The gateway is the credential authority, but the cloud
|
|
667
667
|
// connection (API key + assistant ID) is checkable locally — gate
|
|
668
668
|
// here so preflight reports "connect your account" instead of
|
|
669
669
|
// resolving a transcriber whose dial is doomed.
|
|
670
|
-
const {
|
|
671
|
-
|
|
672
|
-
if (!(await cadetManagedSpeechAvailable())) {
|
|
670
|
+
const { cadetCloudSpeechAvailable } = await import("./cadet-cloud.js");
|
|
671
|
+
if (!(await cadetCloudSpeechAvailable())) {
|
|
673
672
|
return null;
|
|
674
673
|
}
|
|
675
674
|
const { resolveSpeechRelayConnection } =
|
|
@@ -679,12 +678,12 @@ async function createStreamingTranscriber(
|
|
|
679
678
|
return null;
|
|
680
679
|
}
|
|
681
680
|
const { CadetManagedRealtimeTranscriber } =
|
|
682
|
-
await import("./cadet-
|
|
681
|
+
await import("./cadet-cloud-realtime.js");
|
|
683
682
|
return new CadetManagedRealtimeTranscriber(connection, {
|
|
684
683
|
sampleRate: options.sampleRate,
|
|
685
684
|
// `language` IS in the relay's param allowlist, and the relay pins
|
|
686
685
|
// the STT model to nova-3 server-side, so "multi" code-switching
|
|
687
|
-
// needs nothing from the
|
|
686
|
+
// needs nothing from the cloud, only this forward. Source:
|
|
688
687
|
// mycadet-platform: tunnel/internal/tunnel/deepgram.go
|
|
689
688
|
// (deepgramSTTParams allowlist; deepgramSTTModel pin).
|
|
690
689
|
...(options.language ? { language: options.language } : {}),
|
|
@@ -694,13 +693,12 @@ async function createStreamingTranscriber(
|
|
|
694
693
|
});
|
|
695
694
|
}
|
|
696
695
|
case "cadet-flux": {
|
|
697
|
-
//
|
|
696
|
+
// Cloud Flux: same relay as `cadet`, but the STT v2 endpoint with
|
|
698
697
|
// `contract=flux` so the turn events arrive intact instead of being
|
|
699
698
|
// translated into the released v1 Deepgram dialect. Gated on the local
|
|
700
699
|
// cloud connection for the same reason as `cadet` above.
|
|
701
|
-
const {
|
|
702
|
-
|
|
703
|
-
if (!(await cadetManagedSpeechAvailable())) {
|
|
700
|
+
const { cadetCloudSpeechAvailable } = await import("./cadet-cloud.js");
|
|
701
|
+
if (!(await cadetCloudSpeechAvailable())) {
|
|
704
702
|
return null;
|
|
705
703
|
}
|
|
706
704
|
// The relay maps the language onto a Flux model and refuses the dial
|
|
@@ -713,7 +711,7 @@ async function createStreamingTranscriber(
|
|
|
713
711
|
if (managedFluxModelForLanguage(options.language) === null) {
|
|
714
712
|
log.warn(
|
|
715
713
|
{ providerId, language: options.language },
|
|
716
|
-
"
|
|
714
|
+
"Cloud Flux has no model for the configured language; refusing rather than transcribing it as another",
|
|
717
715
|
);
|
|
718
716
|
return null;
|
|
719
717
|
}
|
|
@@ -724,7 +722,7 @@ async function createStreamingTranscriber(
|
|
|
724
722
|
return null;
|
|
725
723
|
}
|
|
726
724
|
const { CadetManagedFluxRealtimeTranscriber } =
|
|
727
|
-
await import("./cadet-
|
|
725
|
+
await import("./cadet-cloud-flux-realtime.js");
|
|
728
726
|
return new CadetManagedFluxRealtimeTranscriber(connection, {
|
|
729
727
|
sampleRate: options.sampleRate,
|
|
730
728
|
// The relay picks `flux-general-en` or `flux-general-multi` from
|
|
@@ -778,17 +776,17 @@ async function createStreamingTranscriber(
|
|
|
778
776
|
*/
|
|
779
777
|
/**
|
|
780
778
|
* Human-readable reason for a credential gap, aware that connection-based
|
|
781
|
-
* providers (cadet) are fixed by connecting the
|
|
779
|
+
* providers (cadet) are fixed by connecting the cloud account, not by
|
|
782
780
|
* entering an API key.
|
|
783
781
|
*/
|
|
784
782
|
export function sttCredentialGapReason(credentialProviderName: string): string {
|
|
785
783
|
// Called with either the catalog id ("cadet") or its credential-service
|
|
786
|
-
// key ("cadet", the persisted identity family) — both mean
|
|
784
|
+
// key ("cadet", the persisted identity family) — both mean cloud speech.
|
|
787
785
|
if (
|
|
788
786
|
credentialProviderName === "cadet" ||
|
|
789
787
|
credentialProviderName === "cadet"
|
|
790
788
|
) {
|
|
791
|
-
return "No Cadet Cloud connection for
|
|
789
|
+
return "No Cadet Cloud connection for cloud speech — run 'assistant cloud connect'";
|
|
792
790
|
}
|
|
793
791
|
return `No API key configured for credential provider "${credentialProviderName}"`;
|
|
794
792
|
}
|
|
@@ -798,8 +796,8 @@ export async function sttProviderKeyResolves(
|
|
|
798
796
|
): Promise<boolean> {
|
|
799
797
|
// cadet has no stored API key — the cloud connection is the credential.
|
|
800
798
|
if (credentialProviderName === "cadet") {
|
|
801
|
-
const {
|
|
802
|
-
return
|
|
799
|
+
const { cadetCloudSpeechAvailable } = await import("./cadet-cloud.js");
|
|
800
|
+
return cadetCloudSpeechAvailable();
|
|
803
801
|
}
|
|
804
802
|
return (await getProviderKeyAsync(credentialProviderName)) !== undefined;
|
|
805
803
|
}
|
|
@@ -9,7 +9,7 @@ export interface TogetherProviderOptions {
|
|
|
9
9
|
const DEFAULT_TOGETHER_BASE_URL = "https://api.together.ai/v1";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
|
-
* Together AI exposes an OpenAI-compatible endpoint. Used as the
|
|
12
|
+
* Together AI exposes an OpenAI-compatible endpoint. Used as the cloud route
|
|
13
13
|
* for MiniMax M3. Together serializes object-typed tool args correctly, so —
|
|
14
14
|
* unlike {@link FireworksProvider} — no `coerceObjectArgsToJsonString`
|
|
15
15
|
* workaround is needed.
|
package/src/providers/types.ts
CHANGED
|
@@ -367,7 +367,7 @@ export interface SendMessageConfig {
|
|
|
367
367
|
* True when the caller appended {@link NATIVE_WEB_SEARCH_TOOL_NAME} purely
|
|
368
368
|
* to activate the route's provider-native web search, rather than passing an
|
|
369
369
|
* app-executed search tool of the same name (which is what runs when a
|
|
370
|
-
* search backend like Brave or the
|
|
370
|
+
* search backend like Brave or the cloud search proxy is configured).
|
|
371
371
|
* Only the caller can tell those apart, and a route change after that
|
|
372
372
|
* decision has to: `RetryProvider` drops the tool on a backup that runs no
|
|
373
373
|
* native search, and must not touch it when the daemon executes it itself.
|
|
@@ -406,9 +406,9 @@ export interface SendMessageConfig {
|
|
|
406
406
|
*/
|
|
407
407
|
promptCacheKey?: string;
|
|
408
408
|
/**
|
|
409
|
-
* Internal per-request HTTP headers for
|
|
409
|
+
* Internal per-request HTTP headers for cloud-proxy usage attribution.
|
|
410
410
|
* Provider clients may pass these through SDK request options only when the
|
|
411
|
-
* transport is Cadet
|
|
411
|
+
* transport is Cadet Cloud, and must never include this object in provider
|
|
412
412
|
* JSON request bodies.
|
|
413
413
|
*/
|
|
414
414
|
usageAttributionHeaders?: Record<string, string>;
|
|
@@ -578,7 +578,7 @@ export interface ContextOverflowErrorOptions {
|
|
|
578
578
|
*
|
|
579
579
|
* A regex-on-message fallback still exists in
|
|
580
580
|
* `daemon/parse-actual-tokens-from-error.ts` as a safety net for adapters
|
|
581
|
-
* that rewrap the error (e.g.
|
|
581
|
+
* that rewrap the error (e.g. cloud-proxy) before it reaches the agent
|
|
582
582
|
* loop.
|
|
583
583
|
*/
|
|
584
584
|
export class ContextOverflowError extends ProviderError {
|
|
@@ -24,7 +24,7 @@ export function describeSttFailure(
|
|
|
24
24
|
providerId?: SttProviderId,
|
|
25
25
|
): string {
|
|
26
26
|
// Adapters that already produce user-facing, provider-appropriate copy
|
|
27
|
-
// (
|
|
27
|
+
// (cloud speech: reconnect the cloud, top up Cadet credits) mark the
|
|
28
28
|
// error so its remediation survives verbatim instead of being rewritten to
|
|
29
29
|
// the BYOK "check your API key" copy — which is wrong for managed users, who
|
|
30
30
|
// hold no speech-to-text key.
|
|
@@ -15,7 +15,7 @@ describe("RuntimeHttpServer /v1/desktop/stream upgrade", () => {
|
|
|
15
15
|
let baseUrl: string;
|
|
16
16
|
let restoreAuthEnv: () => void;
|
|
17
17
|
const originalContainerized = process.env.IS_CONTAINERIZED;
|
|
18
|
-
const originalPlatform = process.env.
|
|
18
|
+
const originalPlatform = process.env.IS_CLOUD;
|
|
19
19
|
|
|
20
20
|
beforeEach(async () => {
|
|
21
21
|
restoreAuthEnv = requireHttpAuth();
|
|
@@ -23,7 +23,7 @@ describe("RuntimeHttpServer /v1/desktop/stream upgrade", () => {
|
|
|
23
23
|
server = new RuntimeHttpServer({ port, hostname: "127.0.0.1" });
|
|
24
24
|
await server.start();
|
|
25
25
|
baseUrl = `127.0.0.1:${server.actualPort}`;
|
|
26
|
-
process.env.
|
|
26
|
+
process.env.IS_CLOUD = "true";
|
|
27
27
|
});
|
|
28
28
|
|
|
29
29
|
afterEach(async () => {
|
|
@@ -35,9 +35,9 @@ describe("RuntimeHttpServer /v1/desktop/stream upgrade", () => {
|
|
|
35
35
|
process.env.IS_CONTAINERIZED = originalContainerized;
|
|
36
36
|
}
|
|
37
37
|
if (originalPlatform === undefined) {
|
|
38
|
-
delete process.env.
|
|
38
|
+
delete process.env.IS_CLOUD;
|
|
39
39
|
} else {
|
|
40
|
-
process.env.
|
|
40
|
+
process.env.IS_CLOUD = originalPlatform;
|
|
41
41
|
}
|
|
42
42
|
setOverridesForTesting({});
|
|
43
43
|
});
|
|
@@ -78,7 +78,7 @@ describe("RuntimeHttpServer /v1/desktop/stream upgrade", () => {
|
|
|
78
78
|
const closed = await waitForClose(ws);
|
|
79
79
|
expect(closed.code).toBe(4008);
|
|
80
80
|
expect(closed.reason).toBe(
|
|
81
|
-
"Virtual desktop is available only on enabled
|
|
81
|
+
"Virtual desktop is available only on enabled cloud-hosted assistants",
|
|
82
82
|
);
|
|
83
83
|
});
|
|
84
84
|
for (const flag of [false, undefined]) {
|
|
@@ -93,20 +93,20 @@ describe("RuntimeHttpServer /v1/desktop/stream upgrade", () => {
|
|
|
93
93
|
const closed = await waitForClose(ws);
|
|
94
94
|
expect(closed.code).toBe(4008);
|
|
95
95
|
expect(closed.reason).toBe(
|
|
96
|
-
"Virtual desktop is available only on enabled
|
|
96
|
+
"Virtual desktop is available only on enabled cloud-hosted assistants",
|
|
97
97
|
);
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
100
|
});
|
|
101
101
|
|
|
102
102
|
test("self-hosted containers cannot stream with the feature flag enabled", async () => {
|
|
103
|
-
const originalPlatform = process.env.
|
|
103
|
+
const originalPlatform = process.env.IS_CLOUD;
|
|
104
104
|
const originalContainerized = process.env.IS_CONTAINERIZED;
|
|
105
105
|
const restoreAuth = requireHttpAuth();
|
|
106
106
|
const server = new RuntimeHttpServer({ port: 0, hostname: "127.0.0.1" });
|
|
107
107
|
try {
|
|
108
108
|
await server.start();
|
|
109
|
-
process.env.
|
|
109
|
+
process.env.IS_CLOUD = "false";
|
|
110
110
|
process.env.IS_CONTAINERIZED = "true";
|
|
111
111
|
setOverridesForTesting({ "assistant-desktop": true });
|
|
112
112
|
const baseUrl = `127.0.0.1:${server.actualPort}`;
|
|
@@ -118,9 +118,9 @@ test("self-hosted containers cannot stream with the feature flag enabled", async
|
|
|
118
118
|
await server.stop();
|
|
119
119
|
restoreAuth();
|
|
120
120
|
if (originalPlatform === undefined) {
|
|
121
|
-
delete process.env.
|
|
121
|
+
delete process.env.IS_CLOUD;
|
|
122
122
|
} else {
|
|
123
|
-
process.env.
|
|
123
|
+
process.env.IS_CLOUD = originalPlatform;
|
|
124
124
|
}
|
|
125
125
|
if (originalContainerized === undefined) {
|
|
126
126
|
delete process.env.IS_CONTAINERIZED;
|
|
@@ -1301,7 +1301,7 @@ export async function wakeAgentForOpportunity(
|
|
|
1301
1301
|
// `provider_error` fires at the provider-call site; `error` fires from
|
|
1302
1302
|
// the loop's generic catch — check both so a rewrapping retry layer
|
|
1303
1303
|
// can't hide the signal. The heuristic check also catches adapter
|
|
1304
|
-
// paths (e.g.
|
|
1304
|
+
// paths (e.g. cloud-proxy rewrappers) that surface the overflow as
|
|
1305
1305
|
// an untyped error the typed `instanceof` check would miss.
|
|
1306
1306
|
if (
|
|
1307
1307
|
suppressAutoCompaction &&
|
|
@@ -327,7 +327,7 @@ describe("authenticateRequest for /v1/host-browser-result", () => {
|
|
|
327
327
|
|
|
328
328
|
// ---------------------------------------------------------------------------
|
|
329
329
|
// Dev bypass covers only a request that supplied no Authorization header. A
|
|
330
|
-
// bearer sent to a
|
|
330
|
+
// bearer sent to a cloud pod (the gateway's exchange token, or a trusted
|
|
331
331
|
// contact's) is verified on its own terms.
|
|
332
332
|
// ---------------------------------------------------------------------------
|
|
333
333
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* Replaces both the legacy bearer shared-secret check and the
|
|
18
18
|
* actor-token HMAC middleware with a single JWT verification path.
|
|
19
19
|
*
|
|
20
|
-
* When DISABLE_HTTP_AUTH is set (
|
|
20
|
+
* When DISABLE_HTTP_AUTH is set (cloud-managed deployments), a request
|
|
21
21
|
* carrying no bearer gets a synthetic AuthContext so downstream code always
|
|
22
22
|
* has a typed context to consume. A request that carries one is verified
|
|
23
23
|
* normally, and a bad token is refused rather than falling back.
|
|
@@ -54,7 +54,7 @@ const PROFILE_SCOPES: Record<ScopeProfile, ReadonlySet<Scope>> = {
|
|
|
54
54
|
// route. `enforcePolicy` admits it only where the route's policy names
|
|
55
55
|
// oauth.proxy, so a route naming no scope refuses it too.
|
|
56
56
|
oauth_proxy_v1: new Set<Scope>(["oauth.proxy"]),
|
|
57
|
-
//
|
|
57
|
+
// Cloud speech relay only (ATL-1033): the daemon's relay-dial token must
|
|
58
58
|
// not open any other edge-scoped route.
|
|
59
59
|
speech_relay_v1: new Set<Scope>(["speech.relay"]),
|
|
60
60
|
ui_page_v1: new Set<Scope>(["settings.read"]),
|
|
@@ -48,7 +48,7 @@ export type PromptTrustGuidance =
|
|
|
48
48
|
export interface CapabilitySet {
|
|
49
49
|
// --- Tool approval mechanism ---
|
|
50
50
|
/**
|
|
51
|
-
* Auto-approves *ordinary* tool calls (e.g. background/
|
|
51
|
+
* Auto-approves *ordinary* tool calls (e.g. background/cloud-hosted bash)
|
|
52
52
|
* and honors the actor's own pending-confirmation callback. The
|
|
53
53
|
* sensitive/guardian-required tool path is governed separately by
|
|
54
54
|
* `sensitiveToolApproval`; the two are independent levers.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Resolves the assistant's Discord bot username for use in invite
|
|
5
5
|
* instructions. Discord invites use the universal 6-digit code path for
|
|
6
6
|
* redemption, so this adapter only implements `resolveChannelHandle`,
|
|
7
|
-
* no `buildShareLink` or `extractInboundToken` needed. The
|
|
7
|
+
* no `buildShareLink` or `extractInboundToken` needed. The cloud
|
|
8
8
|
* constraint that shapes the instruction copy lives with the copy
|
|
9
9
|
* (`invite-instruction-generator.ts`): a person can only DM the bot once
|
|
10
10
|
* they share a server with it.
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Email channel invite adapter.
|
|
3
3
|
*
|
|
4
4
|
* Resolves the assistant's email address for use in invite instructions.
|
|
5
|
-
* The address is a
|
|
5
|
+
* The address is a cloud inbox registration, which lives on the cloud
|
|
6
6
|
* (nothing about one lands in workspace config), so it resolves through the
|
|
7
7
|
* shared registered-inbox reader. Returns `undefined` when no address is
|
|
8
|
-
* registered or the
|
|
8
|
+
* registered or the cloud cannot be asked, which causes the invite
|
|
9
9
|
* instruction generator to emit generic "on Email" wording.
|
|
10
10
|
*
|
|
11
11
|
* Email invites use the universal 6-digit code path for redemption, so
|
|
@@ -143,20 +143,22 @@ async function checkCredential(
|
|
|
143
143
|
|
|
144
144
|
/** Check that public ingress is configured and enabled. */
|
|
145
145
|
async function checkIngress(
|
|
146
|
-
|
|
146
|
+
allowCloudCallbacks = false,
|
|
147
147
|
options: { twilio?: boolean } = {},
|
|
148
148
|
): Promise<ReadinessCheckResult> {
|
|
149
|
-
const { configured,
|
|
150
|
-
|
|
149
|
+
const { configured, usesCloudCallbacks } = await hasWebhookRoutingConfigured(
|
|
150
|
+
allowCloudCallbacks,
|
|
151
|
+
options,
|
|
152
|
+
);
|
|
151
153
|
return check(
|
|
152
154
|
"ingress",
|
|
153
155
|
configured,
|
|
154
|
-
|
|
156
|
+
usesCloudCallbacks
|
|
155
157
|
? "Managed platform callback routing is configured"
|
|
156
158
|
: options.twilio
|
|
157
159
|
? "Twilio public ingress URL is configured"
|
|
158
160
|
: "Public ingress URL is configured",
|
|
159
|
-
|
|
161
|
+
allowCloudCallbacks
|
|
160
162
|
? options.twilio
|
|
161
163
|
? "No Twilio public ingress URL or managed callback route is configured"
|
|
162
164
|
: "No public ingress URL or managed callback route is configured"
|
|
@@ -274,7 +276,7 @@ const emailProbe: ChannelProbe = {
|
|
|
274
276
|
check(
|
|
275
277
|
"platform_email",
|
|
276
278
|
true,
|
|
277
|
-
"Email is handled through the
|
|
279
|
+
"Email is handled through the cloud (Mailgun)",
|
|
278
280
|
"Email requires platform registration",
|
|
279
281
|
),
|
|
280
282
|
check(
|
|
@@ -283,16 +285,16 @@ const emailProbe: ChannelProbe = {
|
|
|
283
285
|
"Email invite code redemption is enabled",
|
|
284
286
|
"Email invite code redemption is disabled",
|
|
285
287
|
),
|
|
286
|
-
// Managed callbacks allowed: inbound email arrives through the
|
|
288
|
+
// Managed callbacks allowed: inbound email arrives through the cloud
|
|
287
289
|
// callback route the gateway registers (`registerEmailCallbackRoute`,
|
|
288
|
-
// the same pattern as Telegram's webhook route), so a
|
|
290
|
+
// the same pattern as Telegram's webhook route), so a cloud-connected
|
|
289
291
|
// deployment with no public ingress URL still receives email.
|
|
290
292
|
await checkIngress(true),
|
|
291
293
|
];
|
|
292
294
|
},
|
|
293
295
|
/**
|
|
294
|
-
* Ask the
|
|
295
|
-
* a "your own" provider credential. The
|
|
296
|
+
* Ask the cloud whether an inbox address is registered, falling back to
|
|
297
|
+
* a "your own" provider credential. The cloud's email-addresses API is
|
|
296
298
|
* the only writer of managed inbox registrations (nothing about one lands
|
|
297
299
|
* in workspace config), and a BYO deployment's configuration claim is its
|
|
298
300
|
* stored provider API key, so those are the only sources this check may
|
|
@@ -305,7 +307,7 @@ const emailProbe: ChannelProbe = {
|
|
|
305
307
|
*/
|
|
306
308
|
async runRemoteChecks(): Promise<ReadinessCheckResult[]> {
|
|
307
309
|
// Imported here rather than at module scope, matching the other probes:
|
|
308
|
-
// the
|
|
310
|
+
// the cloud client pulls in a module graph that unrelated consumers of
|
|
309
311
|
// this service should not have to mock.
|
|
310
312
|
const { resolveRegisteredInbox } =
|
|
311
313
|
await import("../email/registered-inbox.js");
|
|
@@ -357,7 +359,7 @@ const emailProbe: ChannelProbe = {
|
|
|
357
359
|
name,
|
|
358
360
|
passed: false,
|
|
359
361
|
message:
|
|
360
|
-
"Email is not configured. Connect to Cadet Cloud for a
|
|
362
|
+
"Email is not configured. Connect to Cadet Cloud for a cloud inbox (assistant cloud connect), or configure your own provider",
|
|
361
363
|
},
|
|
362
364
|
];
|
|
363
365
|
case "unavailable":
|
|
@@ -366,7 +368,7 @@ const emailProbe: ChannelProbe = {
|
|
|
366
368
|
name,
|
|
367
369
|
passed: true,
|
|
368
370
|
indeterminate: true,
|
|
369
|
-
message: `Could not reach the
|
|
371
|
+
message: `Could not reach the cloud to check inbox registration (${inbox.detail})`,
|
|
370
372
|
},
|
|
371
373
|
];
|
|
372
374
|
}
|
|
@@ -208,7 +208,7 @@ describe("channelCanStreamReply", () => {
|
|
|
208
208
|
|
|
209
209
|
describe("createChannelReplySession", () => {
|
|
210
210
|
test("a start the channel refuses falls back without streaming", async () => {
|
|
211
|
-
// Whether THIS conversation can carry a growing reply is the
|
|
211
|
+
// Whether THIS conversation can carry a growing reply is the cloud's
|
|
212
212
|
// rule, answered by the transport's own reply to `start`. Slack refusing
|
|
213
213
|
// a turn with no thread, and Telegram refusing a chat that is not
|
|
214
214
|
// private, both arrive here as the same not-ok.
|
|
@@ -63,7 +63,7 @@ export type ChannelReplySession = {
|
|
|
63
63
|
*
|
|
64
64
|
* Only the channel-level half is answered here, and only by asking whether
|
|
65
65
|
* the transport implements the operation: implementing it is the whole of
|
|
66
|
-
* declaring it. Whether THIS conversation can carry one is the
|
|
66
|
+
* declaring it. Whether THIS conversation can carry one is the cloud's
|
|
67
67
|
* own rule (Slack streams into a thread, Telegram only into a private chat),
|
|
68
68
|
* so it is answered by the transport's own reply to `start` and reaches this
|
|
69
69
|
* module as an ordinary not-ok, which falls back exactly like a failure.
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
getRuntimeHttpPort,
|
|
25
25
|
isHttpAuthDisabled,
|
|
26
26
|
} from "../config/env.js";
|
|
27
|
-
import {
|
|
27
|
+
import { getIsCloud } from "../config/env-registry.js";
|
|
28
28
|
import { getConfig } from "../config/loader.js";
|
|
29
29
|
import {
|
|
30
30
|
getDbMigrationReadiness,
|
|
@@ -152,7 +152,7 @@ const PAGES_PATH_RE = /^\/pages\/[^/]+$/;
|
|
|
152
152
|
function routerEndpointForPath(path: string): string | null {
|
|
153
153
|
if (path.startsWith("/v1/")) {
|
|
154
154
|
// Strip trailing slashes so routes match regardless of whether the caller
|
|
155
|
-
// includes one (e.g.
|
|
155
|
+
// includes one (e.g. cloud proxy paths use Django's trailing-slash
|
|
156
156
|
// convention, so the gateway may forward paths with a trailing /).
|
|
157
157
|
return path.slice("/v1/".length).replace(/\/$/, "");
|
|
158
158
|
}
|
|
@@ -455,7 +455,7 @@ export class RuntimeHttpServer {
|
|
|
455
455
|
if (!virtualDesktopEnabled()) {
|
|
456
456
|
ws.close(
|
|
457
457
|
DESKTOP_CLOSE.unavailable,
|
|
458
|
-
"Virtual desktop is available only on enabled
|
|
458
|
+
"Virtual desktop is available only on enabled cloud-hosted assistants",
|
|
459
459
|
);
|
|
460
460
|
return;
|
|
461
461
|
}
|
|
@@ -647,7 +647,7 @@ export class RuntimeHttpServer {
|
|
|
647
647
|
}
|
|
648
648
|
|
|
649
649
|
if (isHttpAuthDisabled()) {
|
|
650
|
-
if (
|
|
650
|
+
if (getIsCloud()) {
|
|
651
651
|
log.info(
|
|
652
652
|
"DISABLE_HTTP_AUTH is set — HTTP auth disabled (expected: platform handles auth)",
|
|
653
653
|
);
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* | `block` | revoked | — |
|
|
13
13
|
*
|
|
14
14
|
* The verification handshake is a signal-driven exception, not the default:
|
|
15
|
-
* which actions are offered (and which leads) is derived from the
|
|
15
|
+
* which actions are offered (and which leads) is derived from the cloud's
|
|
16
16
|
* own identity confidence — never from per-individual-contact rules.
|
|
17
17
|
*
|
|
18
18
|
* This module is the single source of truth for:
|
|
@@ -46,7 +46,7 @@ import type { ApprovalAction } from "./channel-approval-types.js";
|
|
|
46
46
|
*
|
|
47
47
|
* Each signal is tri-state: `true` / `false` are positive platform
|
|
48
48
|
* resolutions (Slack `users.info` succeeded and said so); `undefined` means
|
|
49
|
-
* the
|
|
49
|
+
* the cloud could not vouch either way (lookup failure, channel without
|
|
50
50
|
* workspace identity). Policy must treat `undefined` as NOT vouched.
|
|
51
51
|
*/
|
|
52
52
|
export interface RequesterIdentitySignals {
|
|
@@ -135,7 +135,7 @@ export { VERIFIED_VIA_CHANNEL_CLAIM, VERIFIED_VIA_MANUAL };
|
|
|
135
135
|
export type { BindingStrength };
|
|
136
136
|
|
|
137
137
|
/**
|
|
138
|
-
* Whether the
|
|
138
|
+
* Whether the cloud itself vouches for the requester's identity inside the
|
|
139
139
|
* guardian's workspace. Only Slack carries workspace identity today: a
|
|
140
140
|
* non-stranger, non-restricted member (human or workspace app) is
|
|
141
141
|
* authenticated by Slack. Every other channel is an inbound channel claim.
|
|
@@ -219,7 +219,7 @@ export function requesterCanCompleteHandshake(
|
|
|
219
219
|
*
|
|
220
220
|
* The handshake is the exception, not the default:
|
|
221
221
|
* - never where it cannot complete (see {@link requesterCanCompleteHandshake});
|
|
222
|
-
* - not for workspace-vouched identities — the
|
|
222
|
+
* - not for workspace-vouched identities — the cloud already
|
|
223
223
|
* authenticated them;
|
|
224
224
|
* - not on voice — a phone call has no text handshake path;
|
|
225
225
|
* - offered everywhere else: it leads for identities nobody is vouching for.
|