@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
|
@@ -57,8 +57,8 @@ export async function runSkillToolScript(
|
|
|
57
57
|
// capability reserved for bundled skills, which ship trusted, in-repo
|
|
58
58
|
// executors. A non-bundled skill (managed, workspace, plugin, extra) that
|
|
59
59
|
// declares `execution_target: host` must be refused: otherwise an
|
|
60
|
-
// attacker-planted TOOLS.json — e.g. written into a
|
|
61
|
-
//
|
|
60
|
+
// attacker-planted TOOLS.json — e.g. written into a cloud skill dir via
|
|
61
|
+
// scaffold_cloud_skill companion files, or shipped in a third-party skill —
|
|
62
62
|
// could get arbitrary code imported into the host process and auto-approved
|
|
63
63
|
// under the low-risk threshold. Non-bundled skills must run their tools in the
|
|
64
64
|
// sandbox (handled above); host execution here is a hard, fail-closed deny.
|
|
@@ -41,7 +41,7 @@ export const SAFE_ENV_VARS = [
|
|
|
41
41
|
"CADET_SLOW_SYNC_THRESHOLD_MS",
|
|
42
42
|
"CADET_SLOW_QUERY_THRESHOLD_MS",
|
|
43
43
|
"CADET_DEVICE_ID",
|
|
44
|
-
"
|
|
44
|
+
"CADET_DISABLE_CLOUD",
|
|
45
45
|
"CADET_ENVIRONMENT",
|
|
46
46
|
"CADET_TEST_LOG_LEVEL",
|
|
47
47
|
|
|
@@ -51,7 +51,7 @@ export const SAFE_ENV_VARS = [
|
|
|
51
51
|
"ASSISTANT_IPC_SOCKET_DIR",
|
|
52
52
|
"GATEWAY_IPC_SOCKET_DIR",
|
|
53
53
|
"GATEWAY_SECURITY_DIR",
|
|
54
|
-
"
|
|
54
|
+
"CADET_CLOUD_URL",
|
|
55
55
|
"CADET_ASSISTANT_PLATFORM_URL",
|
|
56
56
|
"CADET_DOCS_BASE_URL",
|
|
57
57
|
"CADET_WEB_URL",
|
|
@@ -72,7 +72,7 @@ export const SAFE_ENV_VARS = [
|
|
|
72
72
|
// QdrantManager into external mode and bypasses the local managed lifecycle.
|
|
73
73
|
"QDRANT_HTTP_PORT",
|
|
74
74
|
"IS_CONTAINERIZED",
|
|
75
|
-
"
|
|
75
|
+
"IS_CLOUD",
|
|
76
76
|
"CADET_CLOUD",
|
|
77
77
|
"CADET_SANDBOX_RUNTIME",
|
|
78
78
|
"CADET_PROFILER_RUN_ID",
|
package/src/tools/tool-types.ts
CHANGED
|
@@ -330,8 +330,8 @@ export interface ToolContext {
|
|
|
330
330
|
* the assistant narrows to the concrete `HostFileProxy` class.
|
|
331
331
|
*/
|
|
332
332
|
hostFileProxy?: unknown;
|
|
333
|
-
/** True when the assistant is running as a
|
|
334
|
-
|
|
333
|
+
/** True when the assistant is running as a cloud-managed remote instance. Used to auto-approve sandboxed bash tools. */
|
|
334
|
+
isCloudHosted?: boolean;
|
|
335
335
|
/**
|
|
336
336
|
* CES RPC client for credential execution operations. Held as `unknown`
|
|
337
337
|
* here; the assistant narrows to the concrete `CesClient` class.
|
package/src/tools/types.ts
CHANGED
|
@@ -440,10 +440,10 @@ export interface ToolContext {
|
|
|
440
440
|
*/
|
|
441
441
|
toolUseId?: string;
|
|
442
442
|
/**
|
|
443
|
-
* True when the assistant is running as a
|
|
443
|
+
* True when the assistant is running as a cloud-managed remote instance. Used to auto-approve sandboxed bash tools.
|
|
444
444
|
* @legacy
|
|
445
445
|
*/
|
|
446
|
-
|
|
446
|
+
isCloudHosted?: boolean;
|
|
447
447
|
/**
|
|
448
448
|
* The interface ID of the connected client driving the current turn (e.g.
|
|
449
449
|
* "macos", "chrome-extension"). Browser backend policy uses this to decide
|
|
@@ -130,9 +130,9 @@ export const SURFACE_SHAPE_DOCS: Record<string, SurfaceShapeDoc> = {
|
|
|
130
130
|
: "`data` must carry at least a summary, metrics, or sections",
|
|
131
131
|
},
|
|
132
132
|
oauth_connect: {
|
|
133
|
-
purpose: "
|
|
133
|
+
purpose: "cloud OAuth connection button for an integration account",
|
|
134
134
|
shape:
|
|
135
|
-
"{ providerKey, requestedScopes?, displayName?, description?, logoUrl? }:
|
|
135
|
+
"{ providerKey, requestedScopes?, displayName?, description?, logoUrl? }: cloud OAuth connection CTA; use when the task needs a cloud integration account (Google, Linear, GitHub, ...) instead of settings or shell OAuth. requestedScopes is an optional FULL replacement set of OAuth scopes: when set, the connection is granted exactly these scopes instead of the cloud defaults, so include every scope the connection should keep; omit it to use the cloud's default scopes",
|
|
136
136
|
missingContent: (data) =>
|
|
137
137
|
isNonEmptyString(data.providerKey)
|
|
138
138
|
? null
|
|
@@ -200,7 +200,7 @@ export async function executeManageWorkflows(
|
|
|
200
200
|
// valid `profile` for `run_workflow` (an unknown profile throws).
|
|
201
201
|
const { llm } = loadConfig();
|
|
202
202
|
// A workflow leaf runs chat turns, so this is the conversation view,
|
|
203
|
-
// which leaves out the
|
|
203
|
+
// which leaves out the cloud Jev profile.
|
|
204
204
|
const profiles = getConversationProfilesForProvider(llm);
|
|
205
205
|
return {
|
|
206
206
|
content: JSON.stringify({
|
|
@@ -711,7 +711,7 @@ async function reconcileWorkspaceTools(
|
|
|
711
711
|
const tool = await loadDesiredLiveTool(stem, entry, importTimeoutMs);
|
|
712
712
|
if (!tool) {
|
|
713
713
|
// Import failed (already logged). Leave any prior registration intact
|
|
714
|
-
// and keep the
|
|
714
|
+
// and keep the cloud entry so a later fix re-imports cleanly.
|
|
715
715
|
continue;
|
|
716
716
|
}
|
|
717
717
|
|
|
@@ -7,7 +7,7 @@ let synthesizeCalls: Array<{
|
|
|
7
7
|
signal?: AbortSignal;
|
|
8
8
|
}> = [];
|
|
9
9
|
|
|
10
|
-
mock.module("../../
|
|
10
|
+
mock.module("../../cloud/cloud-speech.js", () => ({
|
|
11
11
|
managedSpeechSynthesize: async (input: {
|
|
12
12
|
text: string;
|
|
13
13
|
format: string;
|
|
@@ -97,7 +97,7 @@ describe("cadet TTS adapter", () => {
|
|
|
97
97
|
expect(result.contentType).toBe("audio/mpeg");
|
|
98
98
|
});
|
|
99
99
|
|
|
100
|
-
test("PCM hint maps to the
|
|
100
|
+
test("PCM hint maps to the cloud's fixed 16 kHz PCM format", async () => {
|
|
101
101
|
const provider = createCadetProvider();
|
|
102
102
|
await provider.synthesize(request({ outputFormat: "pcm" }));
|
|
103
103
|
|
|
@@ -109,7 +109,7 @@ describe("cadet TTS adapter", () => {
|
|
|
109
109
|
expect(provider.resolveOutputSampleRateHz?.(request())).toBeUndefined();
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
-
test("forwards the abort signal to the
|
|
112
|
+
test("forwards the abort signal to the cloud call", async () => {
|
|
113
113
|
const controller = new AbortController();
|
|
114
114
|
const provider = createCadetProvider();
|
|
115
115
|
await provider.synthesize(request({ signal: controller.signal }));
|
|
@@ -236,12 +236,12 @@ describe("cadet TTS definition", () => {
|
|
|
236
236
|
expect(cadetTtsProviderDefinition.mediaStreamPlayback.outputFormat).toBe(
|
|
237
237
|
"pcm",
|
|
238
238
|
);
|
|
239
|
-
// True since
|
|
239
|
+
// True since cloud voice selection: clients gate their voice dropdown
|
|
240
240
|
// on this flag (old daemons report false and show no selector).
|
|
241
241
|
expect(cadetTtsProviderDefinition.supportsVoiceSelection).toBe(true);
|
|
242
242
|
});
|
|
243
243
|
|
|
244
|
-
test("requires only the
|
|
244
|
+
test("requires only the cloud connection credential", () => {
|
|
245
245
|
expect(cadetTtsProviderDefinition.secretRequirements).toEqual([
|
|
246
246
|
{
|
|
247
247
|
credentialStoreKey: "credential/cadet/assistant_api_key",
|
|
@@ -54,7 +54,7 @@ const DEFINITIONS = {
|
|
|
54
54
|
/**
|
|
55
55
|
* Definitions in display order (e.g. settings dropdowns).
|
|
56
56
|
*/
|
|
57
|
-
// cadet leads: it is the
|
|
57
|
+
// cadet leads: it is the cloud option, selected like any other provider.
|
|
58
58
|
const CATALOG: readonly TtsProviderDefinition[] = [
|
|
59
59
|
DEFINITIONS.cadet,
|
|
60
60
|
DEFINITIONS.elevenlabs,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cadet
|
|
2
|
+
* Cadet Cloud TTS: synthesis through the cloud's cloud speech
|
|
3
3
|
* surfaces (Cadet-held Deepgram key, billed to Cadet credits). No provider
|
|
4
4
|
* API key exists on this machine — the cloud connection is the credential.
|
|
5
5
|
*
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
* messages rather than returning silence.
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { getConfig } from "../../config/loader.js";
|
|
19
18
|
import {
|
|
20
|
-
type
|
|
19
|
+
type CloudSpeechResult,
|
|
20
|
+
type CloudSpeechTtsFormat,
|
|
21
21
|
managedSpeechSynthesize,
|
|
22
|
-
|
|
23
|
-
} from "../../
|
|
22
|
+
} from "../../cloud/cloud-speech.js";
|
|
23
|
+
import { getConfig } from "../../config/loader.js";
|
|
24
24
|
import {
|
|
25
25
|
mapTunnelError,
|
|
26
26
|
probeTunnelRejection,
|
|
@@ -41,42 +41,42 @@ const log = getLogger("cadet-tts");
|
|
|
41
41
|
const TTS_STREAM_PATH = "/v1/speech/tts/stream";
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
|
-
* The
|
|
44
|
+
* The cloud's PCM format is fixed at 16 kHz, 16-bit LE mono — the
|
|
45
45
|
* media-stream transcoder needs to know the rate regardless of hints.
|
|
46
46
|
*/
|
|
47
47
|
const CADET_PCM_SAMPLE_RATE_HZ = 16_000;
|
|
48
48
|
|
|
49
|
-
type
|
|
49
|
+
type CloudSpeechFailure = Extract<CloudSpeechResult<never>, { ok: false }>;
|
|
50
50
|
|
|
51
51
|
/**
|
|
52
|
-
* Map the synthesis request onto the
|
|
52
|
+
* Map the synthesis request onto the cloud's format vocabulary.
|
|
53
53
|
*
|
|
54
54
|
* The PCM hint (media-stream playback) maps to raw 16 kHz PCM for mu-law
|
|
55
55
|
* transcoding; every other use case gets mp3.
|
|
56
56
|
*/
|
|
57
57
|
function resolveManagedFormat(
|
|
58
58
|
request: TtsSynthesisRequest,
|
|
59
|
-
):
|
|
59
|
+
): CloudSpeechTtsFormat {
|
|
60
60
|
return request.outputFormat === "pcm" ? "pcm_16000" : "mp3";
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/**
|
|
64
|
-
* The configured
|
|
65
|
-
* config; undefined means the
|
|
64
|
+
* The configured cloud voice, if any. A request-level voiceId wins over
|
|
65
|
+
* config; undefined means the cloud's default voice.
|
|
66
66
|
*/
|
|
67
|
-
function
|
|
67
|
+
function resolveCloudVoice(request: TtsSynthesisRequest): string | undefined {
|
|
68
68
|
return request.voiceId ?? getConfig().services.tts.providers.cadet.model;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
function synthesisError(failure:
|
|
71
|
+
function synthesisError(failure: CloudSpeechFailure): Error {
|
|
72
72
|
if (failure.code === "insufficient_balance") {
|
|
73
73
|
return new Error(
|
|
74
|
-
"Cadet credits are exhausted — add funds to your Cadet account to continue using
|
|
74
|
+
"Cadet credits are exhausted — add funds to your Cadet account to continue using cloud speech.",
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
77
|
if (failure.kind === "unavailable") {
|
|
78
78
|
return new Error(
|
|
79
|
-
`
|
|
79
|
+
`Cloud speech is unavailable: ${failure.message} Run 'assistant cloud connect' to connect your Cadet account.`,
|
|
80
80
|
);
|
|
81
81
|
}
|
|
82
82
|
return new Error(failure.message);
|
|
@@ -88,7 +88,7 @@ async function performSynthesis(
|
|
|
88
88
|
const result = await managedSpeechSynthesize({
|
|
89
89
|
text: request.text,
|
|
90
90
|
format: resolveManagedFormat(request),
|
|
91
|
-
model:
|
|
91
|
+
model: resolveCloudVoice(request),
|
|
92
92
|
signal: request.signal,
|
|
93
93
|
});
|
|
94
94
|
if (!result.ok) {
|
|
@@ -119,7 +119,7 @@ async function performStreamingSynthesis(
|
|
|
119
119
|
const connection = await resolveSpeechRelayConnection();
|
|
120
120
|
if (!connection) {
|
|
121
121
|
throw new Error(
|
|
122
|
-
"
|
|
122
|
+
"Cloud speech is unavailable: the assistant cannot reach its speech relay. Run 'assistant cloud connect' to connect your Cadet account.",
|
|
123
123
|
);
|
|
124
124
|
}
|
|
125
125
|
|
|
@@ -131,7 +131,7 @@ async function performStreamingSynthesis(
|
|
|
131
131
|
// consumes headerless PCM, so RIFF header bytes would play as static.
|
|
132
132
|
container: "none",
|
|
133
133
|
});
|
|
134
|
-
const voice =
|
|
134
|
+
const voice = resolveCloudVoice(request);
|
|
135
135
|
if (voice) {
|
|
136
136
|
params.set("model", voice);
|
|
137
137
|
}
|
|
@@ -196,7 +196,7 @@ export function createCadetProvider(): TtsProvider {
|
|
|
196
196
|
id: "cadet",
|
|
197
197
|
capabilities,
|
|
198
198
|
// Per the TtsProvider contract this returns undefined for non-PCM
|
|
199
|
-
// output; the
|
|
199
|
+
// output; the cloud's PCM format is pinned to 16 kHz.
|
|
200
200
|
resolveOutputSampleRateHz: (request) =>
|
|
201
201
|
request.outputFormat === "pcm" ? CADET_PCM_SAMPLE_RATE_HZ : undefined,
|
|
202
202
|
synthesize: performSynthesis,
|
|
@@ -205,7 +205,7 @@ export function createCadetProvider(): TtsProvider {
|
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
/**
|
|
208
|
-
* The complete Cadet
|
|
208
|
+
* The complete Cadet Cloud provider definition — catalog metadata plus
|
|
209
209
|
* the runtime adapter — assembled into the canonical catalog by
|
|
210
210
|
* `provider-catalog.ts`.
|
|
211
211
|
*/
|
|
@@ -214,14 +214,14 @@ export const cadetTtsProviderDefinition: TtsProviderDefinition = {
|
|
|
214
214
|
displayName: "Cadet",
|
|
215
215
|
subtitle:
|
|
216
216
|
"Text-to-speech through your Cadet account — billed to Cadet credits, no separate API key needed.",
|
|
217
|
-
// Advertises
|
|
217
|
+
// Advertises cloud voice selection (`services.tts.providers.cadet.model`)
|
|
218
218
|
// to clients; web gates its voice dropdown on this flag, so daemons that
|
|
219
219
|
// predate the field never show a selector whose writes they would ignore.
|
|
220
220
|
supportsVoiceSelection: true,
|
|
221
221
|
apiKeyPlaceholder: "Connected via your Cadet account",
|
|
222
222
|
credentialsGuide: {
|
|
223
223
|
description:
|
|
224
|
-
"Connect this assistant to your Cadet account;
|
|
224
|
+
"Connect this assistant to your Cadet account; cloud speech uses that connection instead of a provider API key.",
|
|
225
225
|
url: "https://cloud.mycadet.ai/",
|
|
226
226
|
linkLabel: "Open Cadet Cloud",
|
|
227
227
|
},
|
|
@@ -231,7 +231,7 @@ export const cadetTtsProviderDefinition: TtsProviderDefinition = {
|
|
|
231
231
|
supportsStreaming: true,
|
|
232
232
|
supportedFormats: ["mp3", "pcm"],
|
|
233
233
|
},
|
|
234
|
-
// The adapter honours the PCM hint via the
|
|
234
|
+
// The adapter honours the PCM hint via the cloud's pcm_16000 format.
|
|
235
235
|
mediaStreamPlayback: { outputFormat: "pcm" },
|
|
236
236
|
secretRequirements: [
|
|
237
237
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cadet
|
|
2
|
+
* Cadet Cloud TTS WebSocket streaming session.
|
|
3
3
|
*
|
|
4
4
|
* Runs a single-utterance synthesis session against the gateway's managed
|
|
5
5
|
* speech relay (`/v1/speech/tts/stream`, gateway → tunnel → Deepgram; tunnel
|
|
@@ -100,7 +100,7 @@ export interface CadetTtsSocketOptions extends StreamReadTimeouts {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
* Synthesize one utterance over the
|
|
103
|
+
* Synthesize one utterance over the cloud speech relay, resolving with
|
|
104
104
|
* the complete audio. Binary chunks are forwarded to `onChunk` as they
|
|
105
105
|
* arrive. Abort sends `Clear` (barge-in: discard buffered synthesis)
|
|
106
106
|
* before closing the socket.
|
|
@@ -36,7 +36,7 @@ export interface ResolvedTtsConfig {
|
|
|
36
36
|
*
|
|
37
37
|
* `providerOverride` selects a provider other than the configured one and
|
|
38
38
|
* returns that provider's config block — used by callers that resolve the
|
|
39
|
-
* provider themselves (e.g. live voice, which runs on the
|
|
39
|
+
* provider themselves (e.g. live voice, which runs on the cloud-speech
|
|
40
40
|
* effective provider).
|
|
41
41
|
*/
|
|
42
42
|
export function resolveTtsConfig(
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* A voice change (the `voice_config_update` tool's `tts_voice_id` setting and
|
|
6
6
|
* the `assistant tts voice` CLI command) must write to the entry for the
|
|
7
|
-
* *active* provider — a
|
|
8
|
-
* model id (or an ElevenLabs voice id, since
|
|
7
|
+
* *active* provider — a cloud (cadet) assistant's voice is a Deepgram Aura
|
|
8
|
+
* model id (or an ElevenLabs voice id, since cloud speech serves both) at
|
|
9
9
|
* `.cadet.model`, not an ElevenLabs voice id at `.elevenlabs.voiceId`.
|
|
10
10
|
* Writing the wrong field is a silent no-op: the write "succeeds" but the
|
|
11
11
|
* active provider keeps its old voice.
|
|
@@ -32,7 +32,7 @@ export const TTS_VOICE_FIELD_BY_PROVIDER: Record<string, TtsVoiceField> = {
|
|
|
32
32
|
},
|
|
33
33
|
cadet: {
|
|
34
34
|
path: "services.tts.providers.cadet.model",
|
|
35
|
-
label: "Cadet
|
|
35
|
+
label: "Cadet Cloud voice",
|
|
36
36
|
alphanumericOnly: false,
|
|
37
37
|
},
|
|
38
38
|
deepgram: {
|
|
@@ -43,7 +43,7 @@ const cache = new Map<string, SubagentAttribution>();
|
|
|
43
43
|
*
|
|
44
44
|
* Never throws. This runs on the provider dispatch hot path and attribution
|
|
45
45
|
* must never be able to take a model request down. Any failure degrades to
|
|
46
|
-
* "no attribution", which is exactly how the
|
|
46
|
+
* "no attribution", which is exactly how the cloud treats a missing header.
|
|
47
47
|
*/
|
|
48
48
|
export function resolveSubagentAttribution(
|
|
49
49
|
conversationId: string | undefined,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { describe, expect, test } from "bun:test";
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
+
dropProcessTableSelfRows,
|
|
4
5
|
parsePsProcessTable,
|
|
5
6
|
parseWindowsProcessTable,
|
|
6
7
|
} from "../process-table.js";
|
|
@@ -64,3 +65,49 @@ describe("parseWindowsProcessTable", () => {
|
|
|
64
65
|
).toEqual([{ pid: 100, ppid: 4, command: "worker.exe" }]);
|
|
65
66
|
});
|
|
66
67
|
});
|
|
68
|
+
|
|
69
|
+
describe("dropProcessTableSelfRows", () => {
|
|
70
|
+
test("drops the ps enumeration's own row", () => {
|
|
71
|
+
const rows = [
|
|
72
|
+
{ pid: 1, ppid: 0, command: "/sbin/launchd" },
|
|
73
|
+
{ pid: 100, ppid: 42, command: "ps -A -ww -o pid=,ppid=,command=" },
|
|
74
|
+
{ pid: 101, ppid: 42, command: "bun run /app/daemon/main.ts" },
|
|
75
|
+
];
|
|
76
|
+
expect(dropProcessTableSelfRows(rows)).toEqual([
|
|
77
|
+
{ pid: 1, ppid: 0, command: "/sbin/launchd" },
|
|
78
|
+
{ pid: 101, ppid: 42, command: "bun run /app/daemon/main.ts" },
|
|
79
|
+
]);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test("drops the PowerShell enumeration's own row case-insensitively", () => {
|
|
83
|
+
const rows = [
|
|
84
|
+
{
|
|
85
|
+
pid: 50,
|
|
86
|
+
ppid: 4,
|
|
87
|
+
command: "C:\\Program Files\\Bun\\bun.exe worker.ts",
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
pid: 51,
|
|
91
|
+
ppid: 50,
|
|
92
|
+
command:
|
|
93
|
+
"PowerShell.exe -NoProfile -NonInteractive -Command Get-CimInstance Win32_Process | ConvertTo-Json",
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
expect(dropProcessTableSelfRows(rows)).toEqual([
|
|
97
|
+
{
|
|
98
|
+
pid: 50,
|
|
99
|
+
ppid: 4,
|
|
100
|
+
command: "C:\\Program Files\\Bun\\bun.exe worker.ts",
|
|
101
|
+
},
|
|
102
|
+
]);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test("keeps ordinary processes — a bare ps invocation without the enumeration args is a real process", () => {
|
|
106
|
+
const rows = [
|
|
107
|
+
{ pid: 60, ppid: 4, command: "ps" },
|
|
108
|
+
{ pid: 61, ppid: 4, command: "ps aux" },
|
|
109
|
+
{ pid: 62, ppid: 4, command: "qdrant" },
|
|
110
|
+
];
|
|
111
|
+
expect(dropProcessTableSelfRows(rows)).toEqual(rows);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Phone-like channels (voice, whatsapp) normalize to E.164 using the
|
|
9
9
|
* existing phone utilities. Email channels are lowercased (RFC 5321).
|
|
10
|
-
* Other channels (telegram, slack, etc.) pass through the
|
|
10
|
+
* Other channels (telegram, slack, etc.) pass through the cloud-stable
|
|
11
11
|
* ID as-is after whitespace trimming.
|
|
12
12
|
*/
|
|
13
13
|
|
package/src/util/cgroup-cpu.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { readFileSync } from "node:fs";
|
|
10
10
|
import { availableParallelism, cpus } from "node:os";
|
|
11
11
|
|
|
12
|
-
import { getCpuLimit,
|
|
12
|
+
import { getCpuLimit, getIsCloud } from "../config/env-registry.js";
|
|
13
13
|
import { parseKeyedCounts } from "./cgroup-memory.js";
|
|
14
14
|
|
|
15
15
|
export interface ContainerCpuStat {
|
|
@@ -78,7 +78,7 @@ export function parseK8sCpuCores(value: string): number | null {
|
|
|
78
78
|
* 4. os.cpus().length as last resort.
|
|
79
79
|
*/
|
|
80
80
|
export function getContainerCpuCores(): number {
|
|
81
|
-
// 1. Prefer the explicit env var set by the
|
|
81
|
+
// 1. Prefer the explicit env var set by the cloud StatefulSet template.
|
|
82
82
|
try {
|
|
83
83
|
const envLimit = getCpuLimit();
|
|
84
84
|
if (envLimit) {
|
|
@@ -101,8 +101,8 @@ export function getContainerCpuCores(): number {
|
|
|
101
101
|
if (!isNaN(quota) && !isNaN(period) && period > 0 && quota > 0) {
|
|
102
102
|
const cores = quota / period;
|
|
103
103
|
// Sanity check: if the value looks like the node's full CPU count
|
|
104
|
-
// and we're on a
|
|
105
|
-
if (cores < cpus().length * 0.9 || !
|
|
104
|
+
// and we're on a cloud pod, it's likely gVisor leaking the host value.
|
|
105
|
+
if (cores < cpus().length * 0.9 || !getIsCloud()) {
|
|
106
106
|
return cores;
|
|
107
107
|
}
|
|
108
108
|
}
|
|
@@ -123,7 +123,7 @@ export function getContainerCpuCores(): number {
|
|
|
123
123
|
);
|
|
124
124
|
if (!isNaN(quota) && !isNaN(period) && period > 0 && quota > 0) {
|
|
125
125
|
const cores = quota / period;
|
|
126
|
-
if (cores < cpus().length * 0.9 || !
|
|
126
|
+
if (cores < cpus().length * 0.9 || !getIsCloud()) {
|
|
127
127
|
return cores;
|
|
128
128
|
}
|
|
129
129
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Container memory accounting read from cgroup files (and the
|
|
2
|
+
* Container memory accounting read from cgroup files (and the cloud
|
|
3
3
|
* `CADET_MEMORY_LIMIT` override).
|
|
4
4
|
*
|
|
5
5
|
* Shared by the `/v1/health` identity handler (which reports current + max) and
|
|
@@ -36,7 +36,7 @@ function readCgroupInt(path: string): number | null {
|
|
|
36
36
|
* by the StatefulSet template to the exact K8s memory limit (e.g. "3Gi").
|
|
37
37
|
*/
|
|
38
38
|
export function getContainerMemoryLimitBytes(): number | null {
|
|
39
|
-
// 1. Prefer the explicit env var set by the
|
|
39
|
+
// 1. Prefer the explicit env var set by the cloud StatefulSet template.
|
|
40
40
|
try {
|
|
41
41
|
const envLimit = process.env.CADET_MEMORY_LIMIT;
|
|
42
42
|
if (envLimit) {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import { readFileSync } from "node:fs";
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { getIsCloud } from "../config/env-registry.js";
|
|
13
13
|
import { getContainerCpuCores } from "./cgroup-cpu.js";
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -122,7 +122,7 @@ function runCpuSamplerTick(now: number): void {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// Always sample process-level CPU so the baseline stays fresh. This
|
|
125
|
-
// prevents a spike if the
|
|
125
|
+
// prevents a spike if the cloud cgroup path later falls back to
|
|
126
126
|
// process.cpuUsage() after cgroup stats were previously available.
|
|
127
127
|
const newProcessUsage = sampleProcessCpuUsage();
|
|
128
128
|
const processDeltaUs =
|
|
@@ -135,7 +135,7 @@ function runCpuSamplerTick(now: number): void {
|
|
|
135
135
|
_lastProcessCpuUsage = newProcessUsage;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
if (
|
|
138
|
+
if (getIsCloud()) {
|
|
139
139
|
// In platform mode, prefer cgroup-level CPU usage so we see the full
|
|
140
140
|
// container footprint, not just this process.
|
|
141
141
|
const cgroupUs = getContainerCpuUsageUs();
|
|
@@ -155,7 +155,7 @@ function runCpuSamplerTick(now: number): void {
|
|
|
155
155
|
}
|
|
156
156
|
_lastCgroupCpuUs = cgroupUs;
|
|
157
157
|
} else if (processDeltaUs !== null) {
|
|
158
|
-
// Non-
|
|
158
|
+
// Non-cloud: use process.cpuUsage() (accurate for single-process mode).
|
|
159
159
|
setCachedCpuPercent(
|
|
160
160
|
computeCpuPercent(processDeltaUs, elapsedMs, numCores),
|
|
161
161
|
now,
|
package/src/util/disk-usage.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { existsSync, statfsSync } from "node:fs";
|
|
|
3
3
|
import { promisify } from "node:util";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
+
getIsCloud,
|
|
6
7
|
getIsContainerized,
|
|
7
|
-
getIsPlatform,
|
|
8
8
|
getMinikubeStorageSize,
|
|
9
9
|
} from "../config/env-registry.js";
|
|
10
10
|
import { getWorkspaceDir } from "./platform.js";
|
|
@@ -85,7 +85,7 @@ export function __resetDiskUsageCacheForTests(): void {
|
|
|
85
85
|
* usage is measured with `du` and the effective capacity is current usage
|
|
86
86
|
* plus the host's remaining headroom.
|
|
87
87
|
* - `none`: statfsSync already reports the volume accurately (bare metal, or
|
|
88
|
-
* a
|
|
88
|
+
* a cloud-managed instance on a CSI-backed PVC), so use it directly.
|
|
89
89
|
*/
|
|
90
90
|
type WorkspaceVolumeReporting =
|
|
91
91
|
| { kind: "none" }
|
|
@@ -101,7 +101,7 @@ type WorkspaceVolumeReporting =
|
|
|
101
101
|
function classifyWorkspaceVolume(
|
|
102
102
|
fsTotalBytes: number,
|
|
103
103
|
): WorkspaceVolumeReporting {
|
|
104
|
-
// Minikube mode: the
|
|
104
|
+
// Minikube mode: the cloud passes the PVC storage size so we can report
|
|
105
105
|
// accurate capacity. Detect the hostPath case by comparing filesystem size
|
|
106
106
|
// against the PVC size — if the filesystem is larger, statfsSync is seeing
|
|
107
107
|
// the host disk and we should measure the directory instead.
|
|
@@ -117,7 +117,7 @@ function classifyWorkspaceVolume(
|
|
|
117
117
|
// Local Docker hatch: the workspace is a Docker named volume backed by the
|
|
118
118
|
// host filesystem. Platform-managed remote instances run on CSI-backed PVCs
|
|
119
119
|
// where statfsSync already reports the volume, so they are excluded.
|
|
120
|
-
if (getIsContainerized() && !
|
|
120
|
+
if (getIsContainerized() && !getIsCloud()) {
|
|
121
121
|
return { kind: "host-free" };
|
|
122
122
|
}
|
|
123
123
|
|
package/src/util/errors.ts
CHANGED
|
@@ -129,14 +129,14 @@ export type ProviderCredentialSource =
|
|
|
129
129
|
| "byok"
|
|
130
130
|
| "no-auth"
|
|
131
131
|
| "oauth-subscription"
|
|
132
|
-
| "cadet-
|
|
132
|
+
| "cadet-cloud";
|
|
133
133
|
|
|
134
134
|
export interface ProviderRouteAttribution {
|
|
135
135
|
connectionName?: string;
|
|
136
136
|
profileName?: string;
|
|
137
|
-
|
|
137
|
+
isCloudRoute?: boolean;
|
|
138
138
|
/**
|
|
139
|
-
* Credential surface used for this request. Finer than `
|
|
139
|
+
* Credential surface used for this request. Finer than `isCloudRoute`:
|
|
140
140
|
* it separates personal provider keys, keyless endpoints, and subscription
|
|
141
141
|
* logins from each other so error copy can name what the user must fix.
|
|
142
142
|
*/
|
package/src/util/oom-priority.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* through the desktop session's spawn wrapper, workers and Qdrant through a
|
|
14
14
|
* parent-side write right after spawn. Raising a value never needs a
|
|
15
15
|
* capability; lowering one below the inherited value needs CAP_SYS_RESOURCE,
|
|
16
|
-
* which the
|
|
16
|
+
* which the cloud grants and self-hosted Docker (non-root) does not. There
|
|
17
17
|
* the daemon stays at 0, which children at +1000 still lose to.
|
|
18
18
|
*/
|
|
19
19
|
|
package/src/util/platform.ts
CHANGED
|
@@ -52,7 +52,7 @@ export function getExtraToolPathDirs(): string[] {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
* Add missing `dirs` to the PATH entry of `env` in place, using the
|
|
55
|
+
* Add missing `dirs` to the PATH entry of `env` in place, using the cloud
|
|
56
56
|
* delimiter. Windows keys the variable as `Path`, so the existing key is
|
|
57
57
|
* matched case-insensitively rather than assuming `PATH`.
|
|
58
58
|
*/
|
|
@@ -306,7 +306,7 @@ export function getProcDir(name: string): string {
|
|
|
306
306
|
return join(getProcsDir(), name);
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
-
/** Create (if needed) and return a
|
|
309
|
+
/** Create (if needed) and return a cloud subprocess's runtime directory. */
|
|
310
310
|
export function ensureProcDir(name: string): string {
|
|
311
311
|
const dir = getProcDir(name);
|
|
312
312
|
mkdirSync(dir, { recursive: true });
|
|
@@ -314,7 +314,7 @@ export function ensureProcDir(name: string): string {
|
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
/**
|
|
317
|
-
* The IPC socket a
|
|
317
|
+
* The IPC socket a cloud subprocess binds and the daemon connects to
|
|
318
318
|
* (`procs/<name>/ipc.sock`). The basename is fixed — the directory already
|
|
319
319
|
* carries the subprocess name. Keep it short: Unix `sun_path` is ~104–108 bytes.
|
|
320
320
|
*/
|
|
@@ -322,7 +322,7 @@ export function getProcSocketPath(name: string): string {
|
|
|
322
322
|
return join(getProcDir(name), "ipc.sock");
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
-
/** The PID file a
|
|
325
|
+
/** The PID file a cloud subprocess writes on readiness (`procs/<name>/<name>.pid`). */
|
|
326
326
|
export function getProcPidPath(name: string): string {
|
|
327
327
|
return join(getProcDir(name), `${name}.pid`);
|
|
328
328
|
}
|
|
@@ -501,7 +501,7 @@ export function getWorkspaceSystemPromptDir(): string {
|
|
|
501
501
|
return join(getWorkspaceDir(), "prompts", "system");
|
|
502
502
|
}
|
|
503
503
|
|
|
504
|
-
//
|
|
504
|
+
// Cloud profiler runs live under <workspace>/data/profiler/. These
|
|
505
505
|
// helpers enforce a single canonical layout so every runtime caller
|
|
506
506
|
// resolves the same paths.
|
|
507
507
|
|