@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.
Files changed (892) hide show
  1. package/README.md +1 -1
  2. package/docs/activation-funnel-telemetry.md +6 -6
  3. package/docs/cadet-doctor.md +7 -7
  4. package/docs/desktop-browser-cli.md +7 -7
  5. package/docs/skills.md +2 -2
  6. package/docs/voice-input-diagnostics.md +1 -1
  7. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
  8. package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
  9. package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
  10. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +1 -1
  11. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  12. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  13. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  14. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  15. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  16. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  17. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  18. package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
  19. package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
  20. package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
  21. package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
  22. package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
  23. package/node_modules/@mycadet/environments/src/types.ts +6 -6
  24. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +1 -1
  25. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  26. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  27. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  28. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  29. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  30. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  31. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  32. package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
  33. package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
  34. package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
  35. package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
  36. package/node_modules/@mycadet/service-contracts/package.json +1 -1
  37. package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  38. package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  39. package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  40. package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  41. package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  42. package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  43. package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  44. package/openapi.yaml +6815 -794
  45. package/package.json +2 -2
  46. package/scripts/build-test-fixtures.ts +1 -1
  47. package/scripts/probe-skill-retrieval.ts +1 -1
  48. package/scripts/sync-llm-catalog.ts +2 -2
  49. package/scripts/voice-ttft-spike.ts +2 -2
  50. package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
  51. package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
  52. package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
  53. package/src/__tests__/anthropic-provider.test.ts +2 -2
  54. package/src/__tests__/available-skills.test.ts +11 -12
  55. package/src/__tests__/avatar-identity-sync.test.ts +1 -1
  56. package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
  57. package/src/__tests__/call-domain.test.ts +1 -1
  58. package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
  59. package/src/__tests__/catalog-files.test.ts +10 -10
  60. package/src/__tests__/catalog-install-normalize.test.ts +3 -3
  61. package/src/__tests__/channel-availability-routes.test.ts +8 -8
  62. package/src/__tests__/channel-readiness-routes.test.ts +4 -4
  63. package/src/__tests__/channel-readiness-service.test.ts +14 -14
  64. package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
  65. package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
  66. package/src/__tests__/checker.test.ts +6 -6
  67. package/src/__tests__/clawhub.test.ts +1 -1
  68. package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
  69. package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
  70. package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
  71. package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
  72. package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +60 -60
  73. package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
  74. package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
  75. package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
  76. package/src/__tests__/compaction-events.test.ts +7 -5
  77. package/src/__tests__/config-loader-backfill.test.ts +65 -65
  78. package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
  79. package/src/__tests__/config-loader-corrupt.test.ts +1 -1
  80. package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
  81. package/src/__tests__/config-schema.test.ts +3 -3
  82. package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
  83. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
  84. package/src/__tests__/config-watcher.test.ts +1 -1
  85. package/src/__tests__/contacts-write.test.ts +1 -1
  86. package/src/__tests__/conversation-agent-loop.test.ts +2 -2
  87. package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
  88. package/src/__tests__/conversation-error.test.ts +45 -45
  89. package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
  90. package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
  91. package/src/__tests__/conversation-skill-tools.test.ts +7 -8
  92. package/src/__tests__/conversation-slash.test.ts +2 -2
  93. package/src/__tests__/conversation-speed-override.test.ts +8 -10
  94. package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
  95. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
  96. package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
  97. package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
  98. package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
  99. package/src/__tests__/credential-health-service.test.ts +27 -41
  100. package/src/__tests__/credential-routes.test.ts +85 -165
  101. package/src/__tests__/credential-security-invariants.test.ts +6 -7
  102. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  103. package/src/__tests__/date-context.test.ts +1 -1
  104. package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
  105. package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
  106. package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
  107. package/src/__tests__/disk-usage.test.ts +3 -3
  108. package/src/__tests__/email-invite-adapter.test.ts +5 -5
  109. package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
  110. package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
  111. package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
  112. package/src/__tests__/fallback-breaker.test.ts +7 -7
  113. package/src/__tests__/feature-flag-test-helpers.ts +106 -0
  114. package/src/__tests__/gateway-flag-listener.test.ts +1 -1
  115. package/src/__tests__/gemini-image-service.test.ts +2 -2
  116. package/src/__tests__/gemini-provider.test.ts +5 -5
  117. package/src/__tests__/get-skill-detail-audit.test.ts +9 -8
  118. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  119. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
  120. package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
  121. package/src/__tests__/image-credentials.test.ts +13 -13
  122. package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
  123. package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
  124. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
  125. package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
  126. package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
  127. package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
  128. package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
  129. package/src/__tests__/input-repairs.test.ts +1 -1
  130. package/src/__tests__/install-skill-routing.test.ts +10 -8
  131. package/src/__tests__/integration-status.test.ts +5 -5
  132. package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
  133. package/src/__tests__/invite-routes-http.test.ts +1 -1
  134. package/src/__tests__/llm-catalog-parity.test.ts +5 -7
  135. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
  136. package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
  137. package/src/__tests__/llm-resolver.test.ts +1 -1
  138. package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
  139. package/src/__tests__/llm-usage-store.test.ts +1 -1
  140. package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
  141. package/src/__tests__/mcp-abort-signal.test.ts +2 -2
  142. package/src/__tests__/mcp-client-auth.test.ts +2 -2
  143. package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -2
  144. package/src/__tests__/media-generate-image.test.ts +30 -30
  145. package/src/__tests__/memory-config-file-parity.test.ts +6 -6
  146. package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
  147. package/src/__tests__/migration-import-commit-http.test.ts +1 -1
  148. package/src/__tests__/mtime-cache.test.ts +2 -2
  149. package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
  150. package/src/__tests__/notification-deep-link.test.ts +40 -40
  151. package/src/__tests__/oauth-apps-routes.test.ts +3 -3
  152. package/src/__tests__/oauth-cli.test.ts +9 -9
  153. package/src/__tests__/oauth-commands-routes.test.ts +16 -16
  154. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
  155. package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
  156. package/src/__tests__/oauth-providers-routes.test.ts +12 -12
  157. package/src/__tests__/oauth-store.test.ts +1 -1
  158. package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
  159. package/src/__tests__/onboarding-persona-write.test.ts +2 -2
  160. package/src/__tests__/openai-image-service.test.ts +2 -2
  161. package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
  162. package/src/__tests__/openai-responses-provider.test.ts +1 -1
  163. package/src/__tests__/path-policy.test.ts +4 -4
  164. package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
  165. package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
  166. package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
  167. package/src/__tests__/plugin-api-provider.test.ts +1 -1
  168. package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
  169. package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
  170. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
  171. package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
  172. package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
  173. package/src/__tests__/provider-connections-backfill.test.ts +9 -9
  174. package/src/__tests__/provider-error-scenarios.test.ts +8 -8
  175. package/src/__tests__/provider-registry-ollama.test.ts +1 -1
  176. package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
  177. package/src/__tests__/registry.test.ts +3 -3
  178. package/src/__tests__/requests-mock.ts +972 -0
  179. package/src/__tests__/resolve-trust-class.test.ts +1 -1
  180. package/src/__tests__/resource-pressure-guard.test.ts +6 -6
  181. package/src/__tests__/resource-pressure-routes.test.ts +5 -5
  182. package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
  183. package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
  184. package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
  185. package/src/__tests__/schedule-store.test.ts +1 -1
  186. package/src/__tests__/search-skills-unified.test.ts +9 -7
  187. package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
  188. package/src/__tests__/secret-routes-scrub.test.ts +2 -59
  189. package/src/__tests__/secure-keys.test.ts +1 -1
  190. package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
  191. package/src/__tests__/skill-load-tool.test.ts +1 -1
  192. package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
  193. package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
  194. package/src/__tests__/skill-tool-factory.test.ts +1 -1
  195. package/src/__tests__/skills-file-content-endpoint.test.ts +12 -12
  196. package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
  197. package/src/__tests__/skills.test.ts +1 -1
  198. package/src/__tests__/slim-skill-category.test.ts +11 -9
  199. package/src/__tests__/stt-stream-session.test.ts +3 -3
  200. package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
  201. package/src/__tests__/subagent-disposal.test.ts +5 -5
  202. package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
  203. package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
  204. package/src/__tests__/subagent-manager-notify.test.ts +5 -5
  205. package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
  206. package/src/__tests__/system-prompt.test.ts +1 -1
  207. package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
  208. package/src/__tests__/telegram-config.test.ts +16 -16
  209. package/src/__tests__/telephony-tts-guard.test.ts +13 -13
  210. package/src/__tests__/test-preload.ts +17 -7
  211. package/src/__tests__/tool-audit.test.ts +1 -1
  212. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
  213. package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
  214. package/src/__tests__/turn-events-store.test.ts +1 -1
  215. package/src/__tests__/twilio-routes.test.ts +2 -1
  216. package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
  217. package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
  218. package/src/__tests__/validate-input.test.ts +5 -5
  219. package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
  220. package/src/__tests__/voice-config-update.test.ts +15 -15
  221. package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
  222. package/src/__tests__/web-search.test.ts +340 -859
  223. package/src/__tests__/workspace-git-service.test.ts +1 -1
  224. package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
  225. package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
  226. package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
  227. package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
  228. package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
  229. package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
  230. package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
  231. package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
  232. package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
  233. package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
  234. package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
  235. package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
  236. package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
  237. package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
  238. package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
  239. package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
  240. package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
  241. package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
  242. package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
  243. package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
  244. package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
  245. package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
  246. package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
  247. package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
  248. package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
  249. package/src/api/events/cloud-disconnected.ts +21 -0
  250. package/src/api/events/host-bash.ts +1 -1
  251. package/src/api/events/host-cu.ts +1 -1
  252. package/src/api/events/host-file.ts +1 -1
  253. package/src/api/events/notification-intent.ts +1 -1
  254. package/src/api/events/{show-platform-login.ts → show-cloud-login.ts} +3 -5
  255. package/src/api/index.ts +11 -11
  256. package/src/api/responses/home.ts +1 -1
  257. package/src/api/surfaces.ts +4 -4
  258. package/src/approvals/guardian-request-resolvers.ts +2 -2
  259. package/src/avatar/accent-backfill.ts +1 -1
  260. package/src/avatar/identity-avatar.ts +1 -1
  261. package/src/avatar/notification-avatar.test.ts +2 -2
  262. package/src/avatar/notification-avatar.ts +2 -2
  263. package/src/avatar/resvg-lazy.test.ts +1 -1
  264. package/src/avatar/resvg-lazy.ts +3 -3
  265. package/src/avatar/sync-avatar.test.ts +76 -76
  266. package/src/avatar/sync-avatar.ts +15 -15
  267. package/src/avatar/traits-png-sync.ts +1 -1
  268. package/src/background-wake/background-wake-routes.test.ts +39 -39
  269. package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
  270. package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
  271. package/src/background-wake/publisher.ts +4 -4
  272. package/src/background-wake/wake-intent-hooks.test.ts +3 -3
  273. package/src/calls/__tests__/call-controller.test.ts +2 -2
  274. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
  275. package/src/calls/call-domain.ts +1 -1
  276. package/src/calls/resolve-call-tts-provider.ts +6 -6
  277. package/src/calls/telephony-credential-preflight.ts +3 -3
  278. package/src/calls/telephony-tts-capability.ts +5 -6
  279. package/src/calls/tts-call-strategy.ts +1 -1
  280. package/src/calls/voice-escalation-judge.ts +1 -1
  281. package/src/calls/voice-ingress-preflight.ts +4 -4
  282. package/src/cli/bundled-modules.ts +1 -1
  283. package/src/cli/commands/__tests__/apps.test.ts +18 -53
  284. package/src/cli/commands/__tests__/plugins.test.ts +13 -13
  285. package/src/cli/commands/__tests__/tts.test.ts +1 -1
  286. package/src/cli/commands/auth.help.ts +3 -3
  287. package/src/cli/commands/auth.ts +2 -4
  288. package/src/cli/commands/browser.help.ts +2 -2
  289. package/src/cli/commands/channels/index.help.ts +2 -2
  290. package/src/cli/commands/channels/index.ts +1 -1
  291. package/src/cli/commands/channels/send.ts +1 -1
  292. package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
  293. package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
  294. package/src/cli/commands/cloud/connect.ts +2 -2
  295. package/src/cli/commands/cloud/credits-format.ts +1 -1
  296. package/src/cli/commands/cloud/index.help.ts +35 -35
  297. package/src/cli/commands/config.ts +1 -1
  298. package/src/cli/commands/credentials.ts +10 -12
  299. package/src/cli/commands/domain.ts +1 -1
  300. package/src/cli/commands/email.help.ts +1 -1
  301. package/src/cli/commands/email.ts +2 -2
  302. package/src/cli/commands/gateway.help.ts +1 -1
  303. package/src/cli/commands/gateway.ts +1 -1
  304. package/src/cli/commands/image-generation.help.ts +1 -1
  305. package/src/cli/commands/inference-providers.ts +1 -1
  306. package/src/cli/commands/inference.help.ts +2 -2
  307. package/src/cli/commands/memory/index.help.ts +1 -1
  308. package/src/cli/commands/oauth/connect.test.ts +2 -2
  309. package/src/cli/commands/oauth/connect.ts +1 -1
  310. package/src/cli/commands/oauth/index.help.ts +5 -5
  311. package/src/cli/commands/oauth/providers.ts +2 -2
  312. package/src/cli/commands/oauth/shared.ts +3 -3
  313. package/src/cli/commands/plugins.help.ts +2 -3
  314. package/src/cli/commands/plugins.ts +5 -5
  315. package/src/cli/commands/roadmap.help.ts +1 -1
  316. package/src/cli/commands/telemetry.help.ts +2 -2
  317. package/src/cli/commands/telemetry.ts +2 -2
  318. package/src/cli/commands/tts.help.ts +3 -3
  319. package/src/cli/commands/webhooks.help.ts +9 -9
  320. package/src/cli/commands/webhooks.ts +1 -1
  321. package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
  322. package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
  323. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
  324. package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
  325. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
  326. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
  327. package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
  328. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
  329. package/src/cli/lib/bundled-marketplace.json +1 -1
  330. package/src/cli/lib/inspect-plugin.ts +2 -2
  331. package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
  332. package/src/cli/lib/install-from-github.ts +4 -4
  333. package/src/cli/lib/plugin-catalog-cache.ts +7 -7
  334. package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
  335. package/src/cli/lib/plugin-catalog-local.ts +2 -2
  336. package/src/cli/lib/publish-plugin.ts +9 -10
  337. package/src/cli/lib/search-plugins.ts +2 -2
  338. package/src/{platform → cloud}/client.test.ts +85 -86
  339. package/src/{platform → cloud}/client.ts +38 -46
  340. package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
  341. package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
  342. package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
  343. package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
  344. package/src/{platform → cloud}/consent-cache.test.ts +5 -5
  345. package/src/{platform → cloud}/consent-cache.ts +8 -8
  346. package/src/cloud/feature-gate.ts +8 -0
  347. package/src/{platform → cloud}/sync-identity.test.ts +4 -4
  348. package/src/{platform → cloud}/sync-identity.ts +6 -6
  349. package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
  350. package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
  351. package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
  352. package/src/config/__tests__/default-provider.test.ts +4 -4
  353. package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
  354. package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
  355. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
  356. package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
  357. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
  358. package/src/config/__tests__/profile-materialization.test.ts +7 -7
  359. package/src/config/__tests__/seed-default-provider.test.ts +17 -17
  360. package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
  361. package/src/config/__tests__/webhook-routing.test.ts +51 -51
  362. package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
  363. package/src/config/bundled-skills/messaging/SKILL.md +8 -8
  364. package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
  365. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
  366. package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
  367. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
  368. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  369. package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
  370. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
  371. package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
  372. package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
  373. package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
  374. package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
  375. package/src/config/call-site-defaults.ts +6 -6
  376. package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
  377. package/src/config/cloud-rehydration.ts +35 -0
  378. package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
  379. package/src/config/default-profile-catalog.ts +36 -38
  380. package/src/config/default-profile-names.ts +11 -11
  381. package/src/config/default-provider-resolution.ts +2 -2
  382. package/src/config/default-provider.ts +1 -1
  383. package/src/config/env-registry.ts +23 -21
  384. package/src/config/env.ts +33 -46
  385. package/src/config/feature-flag-registry.json +5 -5
  386. package/src/config/inference-profile-validation.ts +1 -1
  387. package/src/config/llm-resolver.ts +9 -10
  388. package/src/config/loader.ts +33 -17
  389. package/src/config/profile-materialization.ts +8 -8
  390. package/src/config/profile-text-generation.test.ts +1 -1
  391. package/src/config/sanitize-for-transfer.ts +1 -1
  392. package/src/config/schema.ts +6 -6
  393. package/src/config/schemas/__tests__/stt.test.ts +2 -2
  394. package/src/config/schemas/call-site-catalog.ts +1 -1
  395. package/src/config/schemas/channels.ts +8 -0
  396. package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
  397. package/src/config/schemas/host-browser.ts +1 -0
  398. package/src/config/schemas/ingress.ts +1 -12
  399. package/src/config/schemas/llm.ts +45 -36
  400. package/src/config/schemas/memory-lifecycle.ts +11 -1
  401. package/src/config/schemas/services.ts +4 -4
  402. package/src/config/schemas/stt.ts +3 -3
  403. package/src/config/schemas/tts.ts +10 -5
  404. package/src/config/schemas/voice.ts +1 -1
  405. package/src/config/seed-inference-profiles.ts +19 -19
  406. package/src/config/skill-state.ts +2 -2
  407. package/src/config/skills.ts +4 -4
  408. package/src/config/sync-gated-profiles.ts +8 -8
  409. package/src/config/webhook-routing.ts +19 -19
  410. package/src/contacts/contacts-write.ts +1 -1
  411. package/src/credential-execution/ces-runtime.ts +6 -6
  412. package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
  413. package/src/credential-execution/prompted-credential.ts +6 -18
  414. package/src/credential-health/credential-health-service.ts +61 -76
  415. package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
  416. package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
  417. package/src/daemon/config-watcher.ts +2 -2
  418. package/src/daemon/conversation-agent-loop.ts +9 -9
  419. package/src/daemon/conversation-error.ts +36 -36
  420. package/src/daemon/conversation-skill-tools.ts +7 -7
  421. package/src/daemon/conversation-surfaces.ts +1 -1
  422. package/src/daemon/conversation-tool-setup.ts +2 -2
  423. package/src/daemon/conversation-turn-finalize.ts +1 -1
  424. package/src/daemon/conversation-workspace.ts +1 -1
  425. package/src/daemon/conversation.ts +1 -1
  426. package/src/daemon/credential-transcript-scrub.ts +21 -35
  427. package/src/daemon/daemon-readiness.ts +1 -1
  428. package/src/daemon/event-loop-watchdog.ts +2 -2
  429. package/src/daemon/handlers/config-ingress.ts +9 -9
  430. package/src/daemon/handlers/config-telegram.ts +6 -6
  431. package/src/daemon/handlers/skills.ts +20 -20
  432. package/src/daemon/host-cu-proxy.ts +1 -1
  433. package/src/daemon/lifecycle.ts +19 -19
  434. package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
  435. package/src/daemon/providers-setup.ts +6 -6
  436. package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
  437. package/src/daemon/resource-pressure-guard.ts +6 -6
  438. package/src/daemon/shutdown-handlers.ts +1 -1
  439. package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
  440. package/src/daemon/trust-context.ts +1 -1
  441. package/src/desktop/desktop-automation-lease.ts +1 -1
  442. package/src/desktop/desktop-browser-endpoint.ts +2 -4
  443. package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
  444. package/src/desktop/desktop-stream-bridge.test.ts +4 -4
  445. package/src/desktop/desktop-stream-bridge.ts +1 -1
  446. package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
  447. package/src/desktop/virtual-desktop-feature.ts +7 -7
  448. package/src/email/byo-email-credential.ts +1 -1
  449. package/src/email/registered-inbox.test.ts +16 -16
  450. package/src/email/registered-inbox.ts +20 -20
  451. package/src/heartbeat/heartbeat-service.ts +1 -1
  452. package/src/hooks/hook-loader.ts +2 -2
  453. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  454. package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
  455. package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
  456. package/src/inbound/oauth-callback-url.ts +6 -6
  457. package/src/inbound/pod-webhook-claim.ts +2 -2
  458. package/src/inbound/public-ingress-urls.ts +3 -3
  459. package/src/inbound/tunnel-probe.ts +21 -15
  460. package/src/inbound/tunnel-webhooks-gate.ts +3 -3
  461. package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
  462. package/src/ipc/__tests__/email-ipc.test.ts +8 -8
  463. package/src/ipc/gateway-client.test.ts +55 -59
  464. package/src/ipc/gateway-flag-listener.ts +3 -3
  465. package/src/ipc/routes/db-proxy.ts +1 -1
  466. package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
  467. package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
  468. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
  469. package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
  470. package/src/live-voice/live-activity-reporter.ts +7 -7
  471. package/src/live-voice/live-voice-credential-preflight.ts +6 -6
  472. package/src/live-voice/live-voice-session.ts +3 -3
  473. package/src/live-voice/live-voice-tts.ts +1 -1
  474. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
  475. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
  476. package/src/mcp/mcp-oauth-provider.ts +2 -2
  477. package/src/media/gemini-image-service.ts +11 -13
  478. package/src/media/image-credentials.ts +9 -9
  479. package/src/media/openai-image-service.ts +1 -1
  480. package/src/media/types.ts +3 -3
  481. package/src/messaging/providers/channel-transport.ts +1 -1
  482. package/src/messaging/providers/discord/transport.ts +1 -1
  483. package/src/messaging/providers/gmail/adapter.ts +1 -1
  484. package/src/messaging/providers/gmail/client.ts +4 -4
  485. package/src/messaging/providers/outlook/adapter.ts +1 -1
  486. package/src/messaging/providers/slack/adapter.ts +1 -1
  487. package/src/messaging/providers/slack/transport.ts +1 -1
  488. package/src/messaging/providers/telegram-bot/transport.ts +1 -1
  489. package/src/monitoring/db-integrity-check.ts +1 -1
  490. package/src/monitoring/db-integrity-sample.ts +2 -2
  491. package/src/monitoring/mount-watch.ts +1 -1
  492. package/src/monitoring/oom-kill-reporter.ts +1 -1
  493. package/src/monitoring/worker.ts +5 -5
  494. package/src/notifications/README.md +2 -2
  495. package/src/notifications/__tests__/broadcaster.test.ts +9 -9
  496. package/src/notifications/__tests__/completion-policy.test.ts +1 -1
  497. package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
  498. package/src/notifications/activity-failed-dedupe.ts +1 -1
  499. package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
  500. package/src/notifications/broadcaster.ts +10 -10
  501. package/src/notifications/decision-engine.ts +1 -1
  502. package/src/notifications/destination-resolver.ts +1 -1
  503. package/src/notifications/emit-signal.ts +6 -6
  504. package/src/notifications/types.ts +2 -2
  505. package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
  506. package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
  507. package/src/oauth/byo-connection.test.ts +2 -2
  508. package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
  509. package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
  510. package/src/oauth/connection-resolver.test.ts +59 -61
  511. package/src/oauth/connection-resolver.ts +22 -22
  512. package/src/oauth/connection.ts +1 -1
  513. package/src/oauth/oauth-store.ts +8 -8
  514. package/src/oauth/provider-serializer.ts +4 -4
  515. package/src/oauth/revoke.ts +1 -1
  516. package/src/oauth/seed-providers.ts +32 -32
  517. package/src/permissions/approval-provenance.ts +1 -1
  518. package/src/permissions/checker.test.ts +18 -16
  519. package/src/permissions/checker.ts +3 -3
  520. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  521. package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
  522. package/src/persistence/embeddings/embedding-backend.ts +13 -13
  523. package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
  524. package/src/persistence/embeddings/embedding-gemini.ts +11 -11
  525. package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
  526. package/src/persistence/jobs-store.ts +1 -1
  527. package/src/persistence/lifecycle-events-store.ts +1 -1
  528. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  529. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  530. package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
  531. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  532. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
  533. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  534. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
  535. package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
  536. package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
  537. package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
  538. package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
  539. package/src/persistence/schema/oauth.ts +1 -1
  540. package/src/plugin-api/index.ts +4 -4
  541. package/src/plugin-api/model-profiles.test.ts +1 -1
  542. package/src/plugin-api/model-profiles.ts +1 -1
  543. package/src/plugin-api/transcription-session.ts +1 -1
  544. package/src/plugin-api/vision-support.test.ts +1 -1
  545. package/src/plugin-api/webhook-url.ts +12 -12
  546. package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
  547. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
  548. package/src/plugins/defaults/cloud-hosted/package.json +14 -0
  549. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
  550. package/src/plugins/defaults/index.ts +6 -6
  551. package/src/plugins/defaults/main.ts +5 -5
  552. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
  553. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
  554. package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
  555. package/src/plugins/defaults/memory/config.ts +4 -4
  556. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
  557. package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
  558. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
  559. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
  560. package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
  561. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  562. package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
  563. package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
  564. package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
  565. package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
  566. package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
  567. package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
  568. package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
  569. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
  570. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
  571. package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
  572. package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
  573. package/src/plugins/defaults/memory/worker.ts +5 -5
  574. package/src/plugins/defaults/workspace/injectors.ts +2 -2
  575. package/src/plugins/mtime-cache.ts +1 -1
  576. package/src/plugins/source-versions.ts +1 -1
  577. package/src/plugins/types.ts +1 -1
  578. package/src/prompts/__tests__/system-prompt.test.ts +1 -1
  579. package/src/prompts/normalize-onboarding.ts +1 -1
  580. package/src/prompts/persona-resolver.ts +1 -1
  581. package/src/prompts/templates/system-sections.ts +3 -3
  582. package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
  583. package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
  584. package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
  585. package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
  586. package/src/providers/__tests__/inference.test.ts +2 -2
  587. package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
  588. package/src/providers/__tests__/retry-callsite.test.ts +1 -1
  589. package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
  590. package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
  591. package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
  592. package/src/providers/anthropic/client.ts +1 -1
  593. package/src/providers/cadet/client.ts +1 -1
  594. package/src/providers/cadet-model-routing.test.ts +19 -19
  595. package/src/providers/cadet-model-routing.ts +23 -23
  596. package/src/providers/call-site-routing.ts +10 -10
  597. package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
  598. package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
  599. package/src/providers/connection-resolution.ts +43 -43
  600. package/src/providers/fallback-breaker.ts +2 -2
  601. package/src/providers/fetch-provider-catalog.ts +3 -3
  602. package/src/providers/gemini/client.ts +5 -5
  603. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
  604. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
  605. package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
  606. package/src/providers/inference/adapter-factory.ts +35 -35
  607. package/src/providers/inference/auth.ts +10 -10
  608. package/src/providers/inference/backfill.ts +11 -11
  609. package/src/providers/inference/connection-availability.ts +24 -24
  610. package/src/providers/inference/connections.ts +18 -20
  611. package/src/providers/inference/profile-probe.ts +4 -4
  612. package/src/providers/inference/resolve-auth.ts +8 -8
  613. package/src/providers/jev/ask.test.ts +1 -1
  614. package/src/providers/jev/ask.ts +2 -2
  615. package/src/providers/model-catalog.ts +8 -9
  616. package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
  617. package/src/providers/openai/api-error-normalization.ts +2 -2
  618. package/src/providers/provider-availability.ts +4 -4
  619. package/src/providers/provider-env-vars.ts +1 -1
  620. package/src/providers/provider-secret-catalog.ts +1 -1
  621. package/src/providers/registry.ts +20 -20
  622. package/src/providers/retry.ts +26 -26
  623. package/src/providers/routing-identity.ts +10 -10
  624. package/src/providers/search-provider-catalog.ts +2 -2
  625. package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
  626. package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
  627. package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
  628. package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
  629. package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
  630. package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
  631. package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
  632. package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
  633. package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
  634. package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
  635. package/src/providers/speech-to-text/provider-catalog.ts +3 -3
  636. package/src/providers/speech-to-text/resolve.ts +26 -28
  637. package/src/providers/together/client.ts +1 -1
  638. package/src/providers/types.ts +4 -4
  639. package/src/providers/voice-error-copy.ts +1 -1
  640. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
  641. package/src/runtime/agent-wake.ts +1 -1
  642. package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
  643. package/src/runtime/auth/middleware.ts +1 -1
  644. package/src/runtime/auth/scopes.ts +1 -1
  645. package/src/runtime/capabilities.ts +1 -1
  646. package/src/runtime/channel-invite-transports/discord.ts +1 -1
  647. package/src/runtime/channel-invite-transports/email.ts +2 -2
  648. package/src/runtime/channel-readiness-service.ts +15 -13
  649. package/src/runtime/channel-reply-session.test.ts +1 -1
  650. package/src/runtime/channel-reply-session.ts +1 -1
  651. package/src/runtime/http-server.ts +4 -4
  652. package/src/runtime/introduction-policy.ts +4 -4
  653. package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
  654. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
  655. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
  656. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
  657. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
  658. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
  659. package/src/runtime/migrations/migration-transport.ts +3 -3
  660. package/src/runtime/migrations/origin-mode.ts +6 -9
  661. package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
  662. package/src/runtime/migrations/vbundle-importer.ts +4 -4
  663. package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
  664. package/src/runtime/migrations/vbundle-validator.ts +1 -1
  665. package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
  666. package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
  667. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
  668. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +26 -25
  669. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
  670. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
  671. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
  672. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
  673. package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
  674. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  675. package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
  676. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
  677. package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
  678. package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
  679. package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
  680. package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
  681. package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
  682. package/src/runtime/routes/app-management-routes.ts +1 -1
  683. package/src/runtime/routes/attachment-routes.ts +1 -1
  684. package/src/runtime/routes/auth-routes.ts +14 -14
  685. package/src/runtime/routes/avatar-routes.ts +0 -14
  686. package/src/runtime/routes/background-wake-routes.ts +4 -4
  687. package/src/runtime/routes/channel-availability-routes.ts +4 -4
  688. package/src/runtime/routes/client-routes.ts +5 -5
  689. package/src/runtime/routes/cloud-credentials.ts +45 -0
  690. package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +83 -116
  691. package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
  692. package/src/runtime/routes/conversation-query-routes.ts +82 -282
  693. package/src/runtime/routes/credential-routes.ts +28 -30
  694. package/src/runtime/routes/default-provider-routes.ts +1 -1
  695. package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
  696. package/src/runtime/routes/desktop-setup-routes.ts +1 -1
  697. package/src/runtime/routes/domain-routes.ts +15 -21
  698. package/src/runtime/routes/email-routes.ts +13 -13
  699. package/src/runtime/routes/errors.ts +1 -1
  700. package/src/runtime/routes/gateway-status-routes.ts +1 -1
  701. package/src/runtime/routes/identity-routes.ts +3 -3
  702. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  703. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
  704. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
  705. package/src/runtime/routes/index.ts +1 -1
  706. package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
  707. package/src/runtime/routes/inference-profiles-routes.ts +11 -11
  708. package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
  709. package/src/runtime/routes/ingress-status-routes.ts +1 -1
  710. package/src/runtime/routes/integrations/a2a.ts +2 -2
  711. package/src/runtime/routes/integrations/twilio.ts +21 -35
  712. package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
  713. package/src/runtime/routes/live-voice-routes.test.ts +4 -4
  714. package/src/runtime/routes/live-voice-routes.ts +6 -6
  715. package/src/runtime/routes/migration-routes.ts +34 -40
  716. package/src/runtime/routes/oauth-commands-routes.ts +31 -31
  717. package/src/runtime/routes/oauth-providers.ts +5 -5
  718. package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
  719. package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
  720. package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
  721. package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
  722. package/src/runtime/routes/oauth-request-hints.ts +1 -1
  723. package/src/runtime/routes/plugins-routes.ts +9 -9
  724. package/src/runtime/routes/profiler-routes.ts +1 -1
  725. package/src/runtime/routes/ps-routes.ts +4 -0
  726. package/src/runtime/routes/roadmap-routes.ts +18 -20
  727. package/src/runtime/routes/secret-routes.ts +29 -55
  728. package/src/runtime/routes/settings-routes.ts +18 -23
  729. package/src/runtime/routes/telemetry-routes.ts +4 -4
  730. package/src/runtime/routes/tts-routes.ts +4 -4
  731. package/src/runtime/routes/user-route-resolution.ts +1 -1
  732. package/src/runtime/routes/webhook-routes.ts +18 -18
  733. package/src/runtime/routes/workflow-routes.ts +5 -5
  734. package/src/runtime/sync/resource-sync-events.ts +2 -2
  735. package/src/runtime/verification-outbound-actions.ts +4 -4
  736. package/src/schedule/integration-status.ts +6 -6
  737. package/src/schedule/run-script.ts +1 -1
  738. package/src/schedule/schedule-timezone.ts +1 -1
  739. package/src/schedule/worker.ts +5 -5
  740. package/src/security/auth-fallback-events-store.ts +1 -1
  741. package/src/security/oauth2.ts +4 -4
  742. package/src/skills/available-skills.ts +4 -4
  743. package/src/skills/catalog-files.ts +8 -8
  744. package/src/skills/catalog-install.ts +12 -12
  745. package/src/skills/categories-cache.ts +3 -3
  746. package/src/skills/clawhub.ts +1 -1
  747. package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
  748. package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
  749. package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
  750. package/src/skills/inline-command-runner.ts +1 -1
  751. package/src/skills/install-meta.ts +1 -1
  752. package/src/skills/path-classifier.ts +4 -4
  753. package/src/skills/skill-history.ts +4 -4
  754. package/src/skills/skillssh-registry.ts +1 -1
  755. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
  756. package/src/stt/daemon-batch-transcriber.ts +7 -7
  757. package/src/stt/types.ts +3 -3
  758. package/src/subagent/manager.ts +15 -15
  759. package/src/subagent/types.ts +1 -1
  760. package/src/telegram/__tests__/webhook-health.test.ts +16 -16
  761. package/src/telegram/webhook-health.ts +10 -10
  762. package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
  763. package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
  764. package/src/telemetry/config-setting-events-store.ts +1 -1
  765. package/src/telemetry/config-setting-snapshot.ts +1 -1
  766. package/src/telemetry/memory-corpus-size.ts +1 -1
  767. package/src/telemetry/memory-tier-reporter.test.ts +2 -2
  768. package/src/telemetry/memory-tier-reporter.ts +3 -3
  769. package/src/telemetry/telemetry-event-sources.test.ts +2 -2
  770. package/src/telemetry/telemetry-event-sources.ts +9 -9
  771. package/src/telemetry/telemetry-events-outbox.ts +2 -2
  772. package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
  773. package/src/telemetry/telemetry-wire-validation.ts +3 -3
  774. package/src/telemetry/telemetry-wire.generated.ts +1 -1
  775. package/src/telemetry/tool-audit.ts +1 -1
  776. package/src/telemetry/tool-executed-events-store.test.ts +1 -1
  777. package/src/telemetry/trace-collection-policy.ts +4 -4
  778. package/src/telemetry/turn-events-store.ts +1 -1
  779. package/src/telemetry/turn-outcome.ts +1 -1
  780. package/src/telemetry/turn-trace-store.ts +2 -2
  781. package/src/telemetry/types.test.ts +1 -1
  782. package/src/telemetry/types.ts +19 -19
  783. package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
  784. package/src/telemetry/usage-telemetry-reporter.ts +17 -17
  785. package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
  786. package/src/telemetry/watchdog-direct-emit.ts +10 -10
  787. package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
  788. package/src/tools/browser/cdp-client/factory.ts +1 -1
  789. package/src/tools/computer-use/target.ts +2 -2
  790. package/src/tools/credentials/store.ts +6 -15
  791. package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
  792. package/src/tools/network/__tests__/web-search.test.ts +14 -14
  793. package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
  794. package/src/tools/network/web-search.ts +9 -9
  795. package/src/tools/permission-checker.ts +2 -2
  796. package/src/tools/shared/input-misuse.ts +1 -1
  797. package/src/tools/shared/input-repairs.ts +4 -4
  798. package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
  799. package/src/tools/skills/find-similar-skills.test.ts +7 -7
  800. package/src/tools/skills/find-similar-skills.ts +15 -15
  801. package/src/tools/skills/load.ts +6 -6
  802. package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
  803. package/src/tools/skills/skill-script-runner.ts +2 -2
  804. package/src/tools/terminal/safe-env.ts +3 -3
  805. package/src/tools/tool-types.ts +2 -2
  806. package/src/tools/types.ts +2 -2
  807. package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
  808. package/src/tools/workflows/manage-workflows.ts +1 -1
  809. package/src/tools/workspace-tools/loader.ts +1 -1
  810. package/src/tts/__tests__/cadet-provider.test.ts +5 -5
  811. package/src/tts/provider-catalog.ts +1 -1
  812. package/src/tts/providers/cadet-provider.ts +23 -23
  813. package/src/tts/providers/cadet-tts-socket.ts +2 -2
  814. package/src/tts/tts-config-resolver.ts +1 -1
  815. package/src/tts/tts-voice-field.ts +3 -3
  816. package/src/usage/subagent-attribution.ts +1 -1
  817. package/src/util/__tests__/process-table.test.ts +47 -0
  818. package/src/util/canonicalize-identity.ts +1 -1
  819. package/src/util/cgroup-cpu.ts +5 -5
  820. package/src/util/cgroup-memory.ts +2 -2
  821. package/src/util/container-cpu-sampler.ts +4 -4
  822. package/src/util/disk-usage.ts +4 -4
  823. package/src/util/errors.ts +3 -3
  824. package/src/util/oom-priority.ts +1 -1
  825. package/src/util/platform.ts +5 -5
  826. package/src/util/process-table.ts +39 -5
  827. package/src/util/provider-error-patterns.ts +2 -2
  828. package/src/watch/__tests__/watch-retro.test.ts +2 -2
  829. package/src/watch/watch-retro.ts +1 -1
  830. package/src/watcher/__tests__/telemetry.test.ts +2 -2
  831. package/src/watcher/telemetry.ts +1 -1
  832. package/src/windows-compiled-cli.ts +1 -1
  833. package/src/workspace/adaptive-thinking-repair.ts +4 -4
  834. package/src/workspace/byok-default-profile-ensure.ts +7 -7
  835. package/src/workspace/git-service.ts +2 -2
  836. package/src/workspace/migrations/006-services-config.ts +1 -1
  837. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  838. package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
  839. package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
  840. package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
  841. package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
  842. package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
  843. package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
  844. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
  845. package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
  846. package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
  847. package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
  848. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
  849. package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
  850. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
  851. package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
  852. package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
  853. package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
  854. package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
  855. package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
  856. package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
  857. package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
  858. package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
  859. package/src/workspace/migrations/127-backfill-default-provider.ts +4 -4
  860. package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
  861. package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
  862. package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
  863. package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
  864. package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
  865. package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
  866. package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
  867. package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
  868. package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
  869. package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
  870. package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
  871. package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
  872. package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
  873. package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
  874. package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
  875. package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
  876. package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
  877. package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
  878. package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
  879. package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
  880. package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
  881. package/src/workspace/migrations/registry.ts +6 -6
  882. package/src/workspace/top-level-renderer.ts +1 -1
  883. package/src/workspace/turn-commit.ts +2 -2
  884. package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
  885. package/src/__tests__/mock-gateway-ipc.ts +0 -260
  886. package/src/api/events/platform-disconnected.ts +0 -21
  887. package/src/config/platform-rehydration.ts +0 -60
  888. package/src/platform/feature-gate.ts +0 -8
  889. package/src/plugins/defaults/platform-hosted/package.json +0 -14
  890. package/src/runtime/routes/platform-managed-credentials.ts +0 -50
  891. /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
  892. /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
@@ -23,8 +23,8 @@ import { PassThrough, Readable } from "node:stream";
23
23
  import { GatewayDebugExportIpcResponseSchema } from "@mycadet/gateway-client/gateway-ipc-contracts";
24
24
  import { z } from "zod";
25
25
 
26
+ import { resolveCloudAssistantId } from "../../config/cloud-identity.js";
26
27
  import { invalidateConfigCache } from "../../config/loader.js";
27
- import { resolvePlatformAssistantId } from "../../config/platform-identity.js";
28
28
  import { trackDaemonActivity } from "../../daemon/activity-trail.js";
29
29
  import { getAssistantName } from "../../daemon/identity-helpers.js";
30
30
  import { ipcCallPersistent } from "../../ipc/gateway-client.js";
@@ -108,7 +108,7 @@ import type { RouteDefinition, RouteHandlerArgs } from "./types.js";
108
108
  import { RouteResponse } from "./types.js";
109
109
 
110
110
  /**
111
- * CES account prefix for platform-identity (`cadet:*`) credentials. Entries
111
+ * CES account prefix for cloud-identity (`cadet:*`) credentials. Entries
112
112
  * with an account that starts with this string are filtered out of any
113
113
  * imported bundle so they don't overwrite the target's own Django-provisioned
114
114
  * platform identity (most notably `assistant_api_key`).
@@ -119,23 +119,17 @@ import { RouteResponse } from "./types.js";
119
119
  const PLATFORM_CREDENTIAL_PREFIX = credentialKey("cadet", "");
120
120
 
121
121
  /**
122
- * Platform-identity fields that the managed runtime expects to see in CES.
123
- * On a managed assistant the platform provisions these after hatch (most via
124
- * `POST /v1/secrets`), including `platform_organization_id` and
125
- * `platform_user_id`, which it resolves from the hatching user and
126
- * organization. A signed-in client may additionally (re)assert some of them
127
- * on teleport / local→managed transfer. Either set of writes can race with
122
+ * Cadet credentials that the cloud runtime expects to see in CES.
123
+ * On a cloud assistant the cloud provisions these after hatch via
124
+ * `POST /v1/secrets`. A signed-in client may additionally (re)assert some of
125
+ * them on teleport / local→managed transfer. Either set of writes can race with
128
126
  * the import — the CES write survives (separate volume), but the metadata
129
127
  * upsert may be clobbered by the in-place clear / atomic swap. After every
130
128
  * import we reconcile metadata.json against CES so any field CES already holds
131
129
  * a value for gets a matching metadata entry.
132
130
  */
133
- const CADET_PLATFORM_IDENTITY_FIELDS = [
134
- "platform_base_url",
131
+ const CADET_CREDENTIAL_FIELDS = [
135
132
  "assistant_api_key",
136
- "platform_assistant_id",
137
- "platform_organization_id",
138
- "platform_user_id",
139
133
  "webhook_secret",
140
134
  ] as const;
141
135
 
@@ -150,7 +144,7 @@ const CADET_PLATFORM_IDENTITY_FIELDS = [
150
144
  export async function reconcileCadetMetadataFromCes(warningSink: {
151
145
  warnings: string[];
152
146
  }): Promise<void> {
153
- for (const field of CADET_PLATFORM_IDENTITY_FIELDS) {
147
+ for (const field of CADET_CREDENTIAL_FIELDS) {
154
148
  try {
155
149
  const value = await getSecureKeyAsync(credentialKey("cadet", field));
156
150
  if (!value) {
@@ -244,7 +238,7 @@ interface ExportManifestInputs {
244
238
  * `DAEMON_INTERNAL_ASSISTANT_ID` rather than the empty string.
245
239
  */
246
240
  async function resolveAssistantId(): Promise<string> {
247
- const resolved = await resolvePlatformAssistantId();
241
+ const resolved = await resolveCloudAssistantId();
248
242
  if (resolved) {
249
243
  return resolved;
250
244
  }
@@ -272,9 +266,9 @@ async function resolveAssistantId(): Promise<string> {
272
266
  *
273
267
  * Managed-mode exports never reach this with credentials: both export
274
268
  * handlers skip credential collection entirely when `origin.mode` is
275
- * "managed" (the validator's cross-field refine rejects a managed bundle
269
+ * "managed" (the validator's cross-field refine rejects a cloud bundle
276
270
  * with `secrets_redacted: false`, and teleport clients re-provision
277
- * platform identity after a platform→local import).
271
+ * platform identity after a cloud→local import).
278
272
  */
279
273
  export function computeSecretsRedacted(
280
274
  credentialCount: number,
@@ -383,7 +377,7 @@ export async function handleMigrationExport(
383
377
  // Managed deployments never ship credentials in bundles — the manifest
384
378
  // schema forbids it (`secrets_redacted` must be true when `origin.mode`
385
379
  // is "managed"), and teleport clients re-provision platform identity
386
- // after a platform→local import. Redact instead of emitting a bundle
380
+ // after a cloud→local import. Redact instead of emitting a bundle
387
381
  // the importer is guaranteed to reject.
388
382
  let credentials: Array<{ account: string; value: string }> = [];
389
383
  let secretsRedacted = true;
@@ -642,7 +636,7 @@ export async function handleMigrationExportToGcs({ body }: RouteHandlerArgs) {
642
636
  // deployments never ship credentials in bundles — the manifest schema
643
637
  // forbids it (`secrets_redacted` must be true when `origin.mode` is
644
638
  // "managed"), and teleport clients re-provision platform identity after
645
- // a platform→local import — so redact instead of emitting a bundle the
639
+ // a cloud→local import — so redact instead of emitting a bundle the
646
640
  // importer is guaranteed to reject.
647
641
  //
648
642
  // A debug bundle goes to Cadet staff, so it never carries credentials
@@ -729,7 +723,7 @@ export async function handleMigrationExportToGcs({ body }: RouteHandlerArgs) {
729
723
  method: "PUT",
730
724
  body: webBody,
731
725
  // `duplex: "half"` is required when sending a streaming body
732
- // via fetch in Node/Bun — without it the platform rejects the
726
+ // via fetch in Node/Bun — without it the cloud rejects the
733
727
  // request as "duplex option is required when body is a
734
728
  // ReadableStream".
735
729
  duplex: "half",
@@ -1143,7 +1137,7 @@ function wasFetchBodyTornDown(stream: PassThrough): boolean {
1143
1137
  * assistant is willing to PUT a bundle (SSRF). Widening the export path is
1144
1138
  * its own explicit operator opt-in via the separate
1145
1139
  * `CADET_MIGRATION_EXPORT_ALLOWED_HOSTS` env var (local/minikube only,
1146
- * where the platform serves plain-http SigV4 URLs from SeaweedFS) — see
1140
+ * where the cloud serves plain-http SigV4 URLs from SeaweedFS) — see
1147
1141
  * `exportValidatorOptions`.
1148
1142
  */
1149
1143
  let urlValidatorOptions: ValidateGcsSignedUrlOptions | undefined;
@@ -1174,7 +1168,7 @@ export function parseMigrationImportAllowedHostsEnv(
1174
1168
  *
1175
1169
  * Precedence: an explicit test override (when set) wins; otherwise the
1176
1170
  * env-derived import allowlist from `CADET_MIGRATION_IMPORT_ALLOWED_HOSTS`.
1177
- * The platform injects that env var only where the bundle is served over
1171
+ * The cloud injects that env var only where the bundle is served over
1178
1172
  * plain http from a non-GCS host — e.g. local/minikube, where the signed
1179
1173
  * bundle URL points at `http://host.docker.internal/...`. Supplying a
1180
1174
  * non-default allowlist intentionally relaxes the validator's scheme check
@@ -1211,7 +1205,7 @@ function importValidatorOptions(): ValidateGcsSignedUrlOptions | undefined {
1211
1205
  * Deliberately a separate env var from the import allowlist: the export
1212
1206
  * path controls where the assistant will PUT a full workspace bundle, so
1213
1207
  * widening it must be its own operator decision, never a side effect of
1214
- * relaxing imports. The platform injects it only where the signed upload
1208
+ * relaxing imports. The cloud injects it only where the signed upload
1215
1209
  * URL is served over plain http from a non-GCS host (local/minikube
1216
1210
  * SeaweedFS); it is unset in staging/prod, keeping the strict GCS-only
1217
1211
  * default there.
@@ -1265,7 +1259,7 @@ interface GcsImportErrorInit {
1265
1259
  reason?: string;
1266
1260
  errors?: Array<{ code: string; message: string; path?: string }>;
1267
1261
  partial_report?: ImportCommitReport;
1268
- /** Populated for `version_incompatible` — mirrors the platform's PR #5470
1262
+ /** Populated for `version_incompatible` — mirrors the cloud's PR #5470
1269
1263
  * response shape so the URL-body endpoint can return the same body. */
1270
1264
  bundle_compat?: RuntimeCompatibility;
1271
1265
  /** Populated for `version_incompatible`. */
@@ -1607,7 +1601,7 @@ async function runGcsImport(
1607
1601
  }
1608
1602
  if (result.reason === "version_incompatible") {
1609
1603
  // Returned by commitImport / streamCommitImport when the runtime falls
1610
- // outside the bundle's compat range. The platform-side gate is the
1604
+ // outside the bundle's compat range. The cloud-side gate is the
1611
1605
  // primary check; this catches legacy bundles whose ExportJob row
1612
1606
  // predates PR #5470 (compat columns NULL → platform gate skipped).
1613
1607
  throw new GcsImportError({
@@ -1890,7 +1884,7 @@ function throwGcsImportError(err: unknown): never {
1890
1884
  }
1891
1885
  if (err.code === "version_incompatible") {
1892
1886
  // 422 (not 500) — the bundle is structurally valid but cannot be
1893
- // imported on this runtime. Body mirrors the platform's PR #5470
1887
+ // imported on this runtime. Body mirrors the cloud's PR #5470
1894
1888
  // response shape.
1895
1889
  throw new UnprocessableEntityError(err.message, {
1896
1890
  reason: "version_incompatible" as const,
@@ -2094,7 +2088,7 @@ interface CredentialImportSummary {
2094
2088
  succeeded: number;
2095
2089
  failed: number;
2096
2090
  failedAccounts: string[];
2097
- skippedPlatform: number;
2091
+ skippedCloud: number;
2098
2092
  }
2099
2093
 
2100
2094
  /**
@@ -2108,7 +2102,7 @@ interface CredentialWarningSink {
2108
2102
  }
2109
2103
 
2110
2104
  /**
2111
- * Filter platform-identity (cadet:*) credentials out of the bundle, push
2105
+ * Filter cloud-identity (cadet:*) credentials out of the bundle, push
2112
2106
  * user credentials into CES via `bulkSetSecureKeysAsync`, and return a
2113
2107
  * structured summary. Never throws — CES failures become report warnings.
2114
2108
  */
@@ -2116,18 +2110,18 @@ async function importBundleCredentialsIntoCes(
2116
2110
  bundleCredentials: Array<{ account: string; value: string }>,
2117
2111
  warningSink: CredentialWarningSink,
2118
2112
  ): Promise<CredentialImportSummary | undefined> {
2119
- // Filter out platform-identity credentials (cadet:*) — these are
2113
+ // Filter out cloud-identity credentials (cadet:*) — these are
2120
2114
  // environment-specific and must not overwrite the target's own identity.
2121
2115
  const userCredentials = bundleCredentials.filter(
2122
2116
  (c) => !c.account.startsWith(PLATFORM_CREDENTIAL_PREFIX),
2123
2117
  );
2124
- const skippedPlatform = bundleCredentials.length - userCredentials.length;
2125
- if (skippedPlatform > 0) {
2126
- log.info(`Skipped ${skippedPlatform} cloud credential(s) from import`);
2118
+ const skippedCloud = bundleCredentials.length - userCredentials.length;
2119
+ if (skippedCloud > 0) {
2120
+ log.info(`Skipped ${skippedCloud} cloud credential(s) from import`);
2127
2121
  }
2128
2122
 
2129
2123
  if (userCredentials.length === 0) {
2130
- if (skippedPlatform > 0) {
2124
+ if (skippedCloud > 0) {
2131
2125
  // All credentials in the bundle were cloud credentials — report
2132
2126
  // the skip count even though nothing was sent to CES.
2133
2127
  return {
@@ -2135,7 +2129,7 @@ async function importBundleCredentialsIntoCes(
2135
2129
  succeeded: 0,
2136
2130
  failed: 0,
2137
2131
  failedAccounts: [],
2138
- skippedPlatform,
2132
+ skippedCloud,
2139
2133
  };
2140
2134
  }
2141
2135
  return undefined;
@@ -2165,7 +2159,7 @@ async function importBundleCredentialsIntoCes(
2165
2159
  succeeded,
2166
2160
  failed: failedResults.length,
2167
2161
  failedAccounts: failedResults.map((f) => f.account),
2168
- skippedPlatform,
2162
+ skippedCloud,
2169
2163
  };
2170
2164
  } catch (err) {
2171
2165
  log.warn({ err }, "Credential import failed entirely");
@@ -2177,7 +2171,7 @@ async function importBundleCredentialsIntoCes(
2177
2171
  succeeded: 0,
2178
2172
  failed: userCredentials.length,
2179
2173
  failedAccounts: userCredentials.map((c) => c.account),
2180
- skippedPlatform,
2174
+ skippedCloud,
2181
2175
  };
2182
2176
  }
2183
2177
  }
@@ -2248,13 +2242,13 @@ function throwImportCommitFailure(
2248
2242
 
2249
2243
  if (result.reason === "version_incompatible") {
2250
2244
  // Returned by commitImport / streamCommitImport when the runtime falls
2251
- // outside the bundle's compat range. The platform-side gate is the
2245
+ // outside the bundle's compat range. The cloud-side gate is the
2252
2246
  // primary check; this catches legacy bundles whose ExportJob row
2253
2247
  // predates PR #5470 (compat columns NULL → platform gate skipped).
2254
2248
  //
2255
2249
  // 422 (not 500) — the bundle is structurally valid but cannot be
2256
2250
  // imported on this runtime; the caller can act on it (upgrade the
2257
- // runtime, choose a different bundle). Body mirrors the platform's
2251
+ // runtime, choose a different bundle). Body mirrors the cloud's
2258
2252
  // PR #5470 response shape.
2259
2253
  throw new UnprocessableEntityError(
2260
2254
  formatRuntimeCompatibilityMessage(
@@ -2286,7 +2280,7 @@ function throwImportCommitFailure(
2286
2280
  *
2287
2281
  * - `{ job_id, type, status: "processing" }`
2288
2282
  * Covers both the internal `pending` and `running` states — collapsed
2289
- * into a single wire value to match the platform's transport shape used
2283
+ * into a single wire value to match the cloud's transport shape used
2290
2284
  * by `ExportStatusProcessingSerializer` / `ImportStatusProcessingSerializer`.
2291
2285
  * - `{ job_id, type, status: "complete", result }`
2292
2286
  * - `{ job_id, type, status: "failed", error, error_code, upstream_status? }`
@@ -2330,7 +2324,7 @@ export async function handleMigrationJobStatus({
2330
2324
  return result;
2331
2325
  }
2332
2326
 
2333
- // pending or running — collapse to the platform's "processing" wire value.
2327
+ // pending or running — collapse to the cloud's "processing" wire value.
2334
2328
  return {
2335
2329
  job_id: job.id,
2336
2330
  type: job.type,
@@ -9,6 +9,7 @@ import { readFileSync } from "node:fs";
9
9
 
10
10
  import { channelForBotProvider } from "@mycadet/service-contracts/channels";
11
11
 
12
+ import { CadetCloudClient } from "../../cloud/client.js";
12
13
  import {
13
14
  getConfig,
14
15
  loadRawConfig,
@@ -46,7 +47,6 @@ import {
46
47
  type OAuthProviderRow,
47
48
  } from "../../oauth/oauth-store.js";
48
49
  import { missingScopesForStoredToken } from "../../oauth/scope-utils.js";
49
- import { CadetPlatformClient } from "../../platform/client.js";
50
50
  import { withValidToken } from "../../security/token-manager.js";
51
51
  import { matchHostPattern } from "../../tools/credentials/host-pattern-match.js";
52
52
  import { parseJsonSafe } from "../../util/json.js";
@@ -77,14 +77,14 @@ interface PlatformConnectionEntry {
77
77
 
78
78
  function getManagedServiceConfigKey(provider: string): string | null {
79
79
  const providerRow = getProvider(provider);
80
- const managedKey = providerRow?.managedServiceConfigKey;
80
+ const managedKey = providerRow?.cloudServiceConfigKey;
81
81
  if (!managedKey || !(managedKey in ServicesSchema.shape)) {
82
82
  return null;
83
83
  }
84
84
  return managedKey;
85
85
  }
86
86
 
87
- function isManagedMode(provider: string): boolean {
87
+ function isCloudMode(provider: string): boolean {
88
88
  const managedKey = getManagedServiceConfigKey(provider);
89
89
  if (!managedKey) {
90
90
  return false;
@@ -97,30 +97,30 @@ function isManagedMode(provider: string): boolean {
97
97
  }
98
98
  }
99
99
 
100
- async function requirePlatformClient(): Promise<CadetPlatformClient> {
101
- const client = await CadetPlatformClient.create();
100
+ async function requireCloudClient(): Promise<CadetCloudClient> {
101
+ const client = await CadetCloudClient.create();
102
102
  if (!client) {
103
103
  throw new BadRequestError(
104
104
  "Not connected to Cadet Cloud. Run `cadet cloud connect` to connect first.",
105
105
  );
106
106
  }
107
- if (!client.platformAssistantId) {
107
+ if (!client.cloudAssistantId) {
108
108
  throw new BadRequestError(
109
- "Connected to Cadet Cloud but no assistant ID is configured. Ensure the assistant is registered on the platform.",
109
+ "Connected to Cadet Cloud but no assistant ID is configured. Ensure the assistant is registered on the cloud.",
110
110
  );
111
111
  }
112
112
  return client;
113
113
  }
114
114
 
115
115
  async function fetchActiveConnections(
116
- client: CadetPlatformClient,
116
+ client: CadetCloudClient,
117
117
  provider: string,
118
118
  ): Promise<PlatformConnectionEntry[]> {
119
119
  const params = new URLSearchParams();
120
120
  params.set("provider", provider);
121
121
  params.set("status", "ACTIVE");
122
122
 
123
- const path = `/v1/assistants/${encodeURIComponent(client.platformAssistantId)}/oauth/connections/?${params.toString()}`;
123
+ const path = `/v1/assistants/${encodeURIComponent(client.cloudAssistantId)}/oauth/connections/?${params.toString()}`;
124
124
  const response = await client.fetch(path);
125
125
 
126
126
  if (!response.ok) {
@@ -141,12 +141,12 @@ async function fetchActiveConnections(
141
141
 
142
142
  /**
143
143
  * Best-effort helper to count active cloud connections for a provider.
144
- * Returns 0 if the platform client cannot be created or the fetch fails.
144
+ * Returns 0 if the cloud client cannot be created or the fetch fails.
145
145
  */
146
146
  async function countManagedConnections(provider: string): Promise<number> {
147
147
  try {
148
- const client = await CadetPlatformClient.create();
149
- if (!client || !client.platformAssistantId) {
148
+ const client = await CadetCloudClient.create();
149
+ if (!client || !client.cloudAssistantId) {
150
150
  return 0;
151
151
  }
152
152
  const entries = await fetchActiveConnections(client, provider);
@@ -264,7 +264,7 @@ function judgeProviderResponse(
264
264
  * health measures the same thing on the heartbeat; measuring it on the
265
265
  * request names the gap at the moment a call may depend on it, since a
266
266
  * connection made before a scope was required keeps working for every call
267
- * that does not need it. A managed connection has no local row and reports
267
+ * that does not need it. A cloud connection has no local row and reports
268
268
  * nothing.
269
269
  */
270
270
  function missingScopesForConnection(
@@ -312,10 +312,10 @@ async function handleDisconnect({ body = {} }: RouteHandlerArgs) {
312
312
  );
313
313
  }
314
314
 
315
- const managed = isManagedMode(b.provider);
315
+ const managed = isCloudMode(b.provider);
316
316
 
317
317
  if (managed) {
318
- const client = await requirePlatformClient();
318
+ const client = await requireCloudClient();
319
319
  const entries = await fetchActiveConnections(client, b.provider);
320
320
 
321
321
  let connectionId: string | undefined;
@@ -355,7 +355,7 @@ async function handleDisconnect({ body = {} }: RouteHandlerArgs) {
355
355
  accountLabel = entries[0].account_label;
356
356
  }
357
357
 
358
- const disconnectPath = `/v1/assistants/${encodeURIComponent(client.platformAssistantId)}/oauth/connections/${encodeURIComponent(connectionId!)}/disconnect/`;
358
+ const disconnectPath = `/v1/assistants/${encodeURIComponent(client.cloudAssistantId)}/oauth/connections/${encodeURIComponent(connectionId!)}/disconnect/`;
359
359
  const disconnectResponse = await client.fetch(disconnectPath, {
360
360
  method: "POST",
361
361
  headers: { "Content-Type": "application/json" },
@@ -513,13 +513,13 @@ async function handleModeSet({ body = {} }: RouteHandlerArgs) {
513
513
  };
514
514
  }
515
515
  throw new BadRequestError(
516
- `Managed mode is not available for ${b.provider}. Only providers with platform-managed OAuth support can be switched to managed mode.`,
516
+ `Managed mode is not available for ${b.provider}. Only providers with cloud OAuth support can be switched to managed mode.`,
517
517
  );
518
518
  }
519
519
 
520
520
  // Require cloud connection when switching to managed mode
521
521
  if (b.mode === "managed") {
522
- const client = await CadetPlatformClient.create();
522
+ const client = await CadetCloudClient.create();
523
523
  if (!client) {
524
524
  throw new BadRequestError(
525
525
  "Not connected to Cadet Cloud. Run `cadet cloud connect` to connect first.",
@@ -590,10 +590,10 @@ async function handleStatus({ queryParams = {} }: RouteHandlerArgs) {
590
590
  );
591
591
  }
592
592
 
593
- const managed = isManagedMode(provider);
593
+ const managed = isCloudMode(provider);
594
594
 
595
595
  if (managed) {
596
- const client = await requirePlatformClient();
596
+ const client = await requireCloudClient();
597
597
  const rawEntries = await fetchActiveConnections(client, provider);
598
598
 
599
599
  const connections = rawEntries.map((c) => ({
@@ -762,9 +762,9 @@ async function handleToken({ body = {} }: RouteHandlerArgs) {
762
762
  throw new BadRequestError("provider is required");
763
763
  }
764
764
 
765
- if (isManagedMode(b.provider)) {
765
+ if (isCloudMode(b.provider)) {
766
766
  throw new BadRequestError(
767
- "Token retrieval is not supported for platform-managed providers. " +
767
+ "Token retrieval is not supported for cloud providers. " +
768
768
  "When a provider is in managed mode, Cadet handles OAuth tokens on your behalf — " +
769
769
  "they are not exposed directly.\n\n" +
770
770
  `To verify your connection is working, run 'assistant oauth ping ${b.provider}'.\n` +
@@ -858,11 +858,11 @@ export async function handleRequest({ body = {} }: RouteHandlerArgs) {
858
858
  );
859
859
  }
860
860
 
861
- const managed = isManagedMode(b.provider);
861
+ const managed = isCloudMode(b.provider);
862
862
 
863
863
  if (b.client_id) {
864
864
  if (managed) {
865
- log.info("--client-id is ignored for platform-managed providers");
865
+ log.info("--client-id is ignored for cloud providers");
866
866
  } else {
867
867
  const app = getAppByProviderAndClientId(b.provider, b.client_id);
868
868
  if (!app) {
@@ -1075,9 +1075,9 @@ async function handleManagedConnect({ body = {} }: RouteHandlerArgs) {
1075
1075
  throw new BadRequestError("provider is required");
1076
1076
  }
1077
1077
 
1078
- const client = await requirePlatformClient();
1078
+ const client = await requireCloudClient();
1079
1079
 
1080
- const startPath = `/v1/assistants/${encodeURIComponent(client.platformAssistantId)}/oauth/${encodeURIComponent(b.provider)}/start/`;
1080
+ const startPath = `/v1/assistants/${encodeURIComponent(client.cloudAssistantId)}/oauth/${encodeURIComponent(b.provider)}/start/`;
1081
1081
 
1082
1082
  const reqBody: Record<string, unknown> = {};
1083
1083
  if (b.scopes && b.scopes.length > 0) {
@@ -1085,7 +1085,7 @@ async function handleManagedConnect({ body = {} }: RouteHandlerArgs) {
1085
1085
  }
1086
1086
  reqBody.redirect_after_connect =
1087
1087
  b.redirect_after_connect ?? "/account/oauth/complete";
1088
- // Only forwarded when present: the platform validates it against the
1088
+ // Only forwarded when present: the cloud validates it against the
1089
1089
  // provider's pattern and rejects per-tenant providers that omit it.
1090
1090
  const tenantHost =
1091
1091
  typeof b.tenant_host === "string" ? b.tenant_host.trim() : "";
@@ -1129,7 +1129,7 @@ async function handleManagedConnectPoll({
1129
1129
  throw new BadRequestError("provider query param is required");
1130
1130
  }
1131
1131
 
1132
- const client = await requirePlatformClient();
1132
+ const client = await requireCloudClient();
1133
1133
  const entries = await fetchActiveConnections(client, provider);
1134
1134
 
1135
1135
  return {
@@ -1268,9 +1268,9 @@ export const ROUTES: RouteDefinition[] = [
1268
1268
  requiredScopes: ["settings.write"],
1269
1269
  allowedPrincipalTypes: LOCAL_PRINCIPALS,
1270
1270
  },
1271
- summary: "Start managed OAuth connect",
1271
+ summary: "Start cloud OAuth connect",
1272
1272
  description:
1273
- "Start a managed (platform) OAuth connect flow and return the connect URL.",
1273
+ "Start a cloud (platform) OAuth connect flow and return the connect URL.",
1274
1274
  tags: ["oauth"],
1275
1275
  handler: handleManagedConnect,
1276
1276
  },
@@ -1282,7 +1282,7 @@ export const ROUTES: RouteDefinition[] = [
1282
1282
  requiredScopes: ["settings.read"],
1283
1283
  allowedPrincipalTypes: LOCAL_PRINCIPALS,
1284
1284
  },
1285
- summary: "Poll managed OAuth connections",
1285
+ summary: "Poll cloud OAuth connections",
1286
1286
  description:
1287
1287
  "Fetch active cloud connections for a provider (used to detect new connections after managed connect).",
1288
1288
  tags: ["oauth"],
@@ -72,11 +72,11 @@ function handleListProviders({ queryParams = {} }: RouteHandlerArgs) {
72
72
  .map((row) => serializeProviderSummary(row))
73
73
  .filter((s): s is NonNullable<typeof s> => s !== null);
74
74
 
75
- const supportsManagedMode = queryParams.supports_managed_mode;
75
+ const supportsManagedMode = queryParams.supports_cloud_mode;
76
76
  if (supportsManagedMode === "true") {
77
- serialized = serialized.filter((p) => p.supports_managed_mode);
77
+ serialized = serialized.filter((p) => p.supports_cloud_mode);
78
78
  } else if (supportsManagedMode === "false") {
79
- serialized = serialized.filter((p) => !p.supports_managed_mode);
79
+ serialized = serialized.filter((p) => !p.supports_cloud_mode);
80
80
  }
81
81
 
82
82
  return { providers: serialized };
@@ -399,7 +399,7 @@ export const oauthProviderSummarySchema = z.object({
399
399
  client_id_placeholder: z.string().nullable(),
400
400
  requires_client_secret: z.boolean(),
401
401
  logo_url: z.string().nullable(),
402
- supports_managed_mode: z.boolean(),
402
+ supports_cloud_mode: z.boolean(),
403
403
  managed_service_is_paid: z.boolean(),
404
404
  feature_flag: z.string().nullable(),
405
405
  category: z
@@ -446,7 +446,7 @@ export const ROUTES: RouteDefinition[] = [
446
446
  handler: handleListProviders,
447
447
  queryParams: [
448
448
  {
449
- name: "supports_managed_mode",
449
+ name: "supports_cloud_mode",
450
450
  schema: { type: "string" },
451
451
  description: "Filter by managed mode support (true/false)",
452
452
  },
@@ -4,7 +4,7 @@ import {
4
4
  CredentialRequiredError,
5
5
  InsufficientBalanceError,
6
6
  ProviderUnreachableError,
7
- } from "../../oauth/platform-connection.js";
7
+ } from "../../oauth/cloud-connection.js";
8
8
  import { BackendError } from "../../util/errors.js";
9
9
  import { BadRequestError, ForbiddenError, RouteError } from "./errors.js";
10
10
  import {
@@ -7,14 +7,14 @@
7
7
  * fidelity, header stripping, error mapping) testable in isolation.
8
8
  */
9
9
 
10
+ import {
11
+ CredentialRequiredError,
12
+ InsufficientBalanceError,
13
+ } from "../../oauth/cloud-connection.js";
10
14
  import {
11
15
  isBinaryOAuthBody,
12
16
  type OAuthConnectionResponse,
13
17
  } from "../../oauth/connection.js";
14
- import {
15
- CredentialRequiredError,
16
- InsufficientBalanceError,
17
- } from "../../oauth/platform-connection.js";
18
18
  import type { TokenExpiredError } from "../../security/token-manager.js";
19
19
  import { findContentTypeHeader } from "../../util/oauth-request-body.js";
20
20
  import {
@@ -69,7 +69,7 @@ const TEXT_ENCODER = new TextEncoder();
69
69
  /**
70
70
  * Statuses the `Response` constructor refuses a body on, limited to the ones
71
71
  * this route can emit. The interim 1xx statuses are absent: a BYO `fetch`
72
- * never surfaces one as a final response and the platform envelope refuses a
72
+ * never surfaces one as a final response and the cloud envelope refuses a
73
73
  * status outside 200 to 599, so a `RouteResponse` carrying one would only make
74
74
  * the adapter's `Response` constructor throw.
75
75
  */
@@ -409,9 +409,9 @@ export function mapProxyResolveError(
409
409
  *
410
410
  * Upstream text arrives here verbatim: a BYO refresh failure carries the
411
411
  * provider token endpoint's own response and the refresh breaker's state, and
412
- * a managed provider that could not be reached carries the platform proxy's
412
+ * a cloud provider that could not be reached carries the cloud proxy's
413
413
  * body. The grant holder learns which dependency failed and what repairs it,
414
- * and nothing the provider or the platform wrote; the route logs the verbatim
414
+ * and nothing the provider or the cloud wrote; the route logs the verbatim
415
415
  * text so the operator still has it.
416
416
  *
417
417
  * `InsufficientBalanceError` is the exception: it is raised on a bare status
@@ -506,7 +506,7 @@ function pinningProviderSegment(
506
506
  * A BYO connection reports a dead credential either as `TokenExpiredError`
507
507
  * (no token, or a refresh that cannot succeed) or, when a refreshed request
508
508
  * still comes back 401, as an error carrying `status: 401`. Both mean the same
509
- * thing the platform's `CredentialRequiredError` does: reconnect.
509
+ * thing the cloud's `CredentialRequiredError` does: reconnect.
510
510
  */
511
511
  function isBYOCredentialFailure(err: unknown): boolean {
512
512
  return isTokenExpiredError(err) || hasUnauthorizedStatus(err);
@@ -11,7 +11,11 @@
11
11
  * `oauth-proxy-passthrough.ts`; this module is the wiring around them.
12
12
  */
13
13
 
14
- import { isPlatformAuthBypassActive } from "../../config/env.js";
14
+ import { isCloudAuthBypassActive } from "../../config/env.js";
15
+ import {
16
+ CloudOAuthConnection,
17
+ prepareCloudProxyHeaders,
18
+ } from "../../oauth/cloud-connection.js";
15
19
  import {
16
20
  isIdempotentHttpMethod,
17
21
  type OAuthConnectionResponse,
@@ -19,10 +23,6 @@ import {
19
23
  import type { OAuthConnectionResolution } from "../../oauth/connection-resolver.js";
20
24
  import { resolveOAuthConnectionWithMeta } from "../../oauth/connection-resolver.js";
21
25
  import { getProvider } from "../../oauth/oauth-store.js";
22
- import {
23
- PlatformOAuthConnection,
24
- prepareManagedProxyHeaders,
25
- } from "../../oauth/platform-connection.js";
26
26
  import { getLogger } from "../../util/logger.js";
27
27
  import { LOCAL_PRINCIPALS } from "../auth/route-policy.js";
28
28
  import {
@@ -76,11 +76,11 @@ export async function handleOAuthProxy(
76
76
  // A grant names one provider and, when it pinned one, one account. The
77
77
  // subject is re-derived from this request's own segment, so rewriting or
78
78
  // dropping `@account` cannot match the grant's subject. Only a
79
- // platform-managed pod skips the comparison: there the daemon discards the
79
+ // cloud-managed pod skips the comparison: there the daemon discards the
80
80
  // token and builds a synthetic context that carries no grant subject to
81
81
  // compare against.
82
82
  if (
83
- !isPlatformAuthBypassActive() &&
83
+ !isCloudAuthBypassActive() &&
84
84
  args.headers?.["x-cadet-subject"] !== proxyGrantSubject(provider, account)
85
85
  ) {
86
86
  throw new ForbiddenError(
@@ -118,13 +118,11 @@ export async function handleOAuthProxy(
118
118
  }
119
119
 
120
120
  const { connection } = resolution;
121
- if (connection instanceof PlatformOAuthConnection) {
121
+ if (connection instanceof CloudOAuthConnection) {
122
122
  if (method === "HEAD") {
123
- throw new MethodNotAllowedError(
124
- "Managed connections do not support HEAD",
125
- );
123
+ throw new MethodNotAllowedError("Cloud connections do not support HEAD");
126
124
  }
127
- const managedHeaders = prepareManagedProxyHeaders(headers);
125
+ const managedHeaders = prepareCloudProxyHeaders(headers);
128
126
  const { unsupportedHeaders } = managedHeaders;
129
127
  if (unsupportedHeaders.length > 0) {
130
128
  throw new BadRequestError(
@@ -134,7 +132,7 @@ export async function handleOAuthProxy(
134
132
  headers = managedHeaders.headers;
135
133
  }
136
134
 
137
- // A Buffer travels as raw bytes on BYO and as base64 on the platform, in
135
+ // A Buffer travels as raw bytes on BYO and as base64 on the cloud, in
138
136
  // both cases under the caller's own Content-Type.
139
137
  const body =
140
138
  carriesBody(method) && args.rawBody?.byteLength
@@ -152,7 +150,7 @@ export async function handleOAuthProxy(
152
150
  headers,
153
151
  body,
154
152
  signal: args.abortSignal,
155
- // Byte-exact passthrough. Honored by BYO connections; a managed
153
+ // Byte-exact passthrough. Honored by BYO connections; a cloud
156
154
  // connection is parsed platform-side and cannot offer it.
157
155
  rawResponseBody: true,
158
156
  // The caller's own HTTP client decides what to do with a 3xx; the
@@ -163,7 +161,7 @@ export async function handleOAuthProxy(
163
161
  // the other idempotent methods keep their retries.
164
162
  singleAttempt: !isIdempotentHttpMethod(method),
165
163
  // The provider signing this query sees the bytes the caller wrote: key
166
- // order, `%20`, and valueless flags all survive. Managed connections
164
+ // order, `%20`, and valueless flags all survive. Cloud connections
167
165
  // have no raw mode and send `query` instead.
168
166
  rawQuery: args.rawUrl.search,
169
167
  });
@@ -202,9 +200,9 @@ const BINARY_BODY = {
202
200
  const ERROR_RESPONSES: Record<string, { description: string }> = {
203
201
  "400": {
204
202
  description:
205
- "Malformed provider segment or proxied path, or request headers unsupported by a managed connection",
203
+ "Malformed provider segment or proxied path, or request headers unsupported by a cloud connection",
206
204
  },
207
- "402": { description: "The managed account is out of balance" },
205
+ "402": { description: "The cloud account is out of balance" },
208
206
  "403": {
209
207
  description: "The grant was minted for a different provider or account",
210
208
  },