@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
@@ -285,7 +285,7 @@ export interface BroadcastDecisionOptions {
285
285
  resultsSink?: NotificationDeliveryResult[];
286
286
  }
287
287
 
288
- // Cap on how long the deferred cadet send waits for the platform dispatch
288
+ // Cap on how long the deferred cadet send waits for the cloud dispatch
289
289
  // outcome: a duplicate banner beats a late one.
290
290
  const PLATFORM_OUTCOME_DEADLINE_MS = 2_500;
291
291
 
@@ -384,7 +384,7 @@ export class NotificationBroadcaster {
384
384
  // event fires immediately, before slower channel sends (e.g. Telegram 30s
385
385
  // timeout) can delay it. Platform sorts second: the cadet intent carries
386
386
  // remotePushDispatched, so its deferred send (below) flushes right after
387
- // the platform outcome is known instead of waiting behind slower channels.
387
+ // the cloud outcome is known instead of waiting behind slower channels.
388
388
  const dispatchRank = (channel: NotificationChannel): number => {
389
389
  if (channel === "cadet") {
390
390
  return 0;
@@ -413,7 +413,7 @@ export class NotificationBroadcaster {
413
413
  : undefined;
414
414
  const results: NotificationDeliveryResult[] = options?.resultsSink ?? [];
415
415
 
416
- // Cadet pairing carried forward for the platform channel's deep link.
416
+ // Cadet pairing carried forward for the cloud channel's deep link.
417
417
  // A single-pass carry is safe because orderedChannels sorts cadet first.
418
418
  let cadetPairing: {
419
419
  conversationId: string;
@@ -424,9 +424,9 @@ export class NotificationBroadcaster {
424
424
  // platform dispatch outcome, not channel selection: when both channels
425
425
  // are selected, the cadet channel is still prepared first (pairing, the
426
426
  // conversation-created emission, and the pending delivery row all run
427
- // eagerly, so the platform deep link keeps the cadet pairing carry), but
428
- // its adapter send is deferred until the platform adapter reports whether
429
- // the platform accepted a device push. Typical cost: one fast HTTP
427
+ // eagerly, so the cloud deep link keeps the cadet pairing carry), but
428
+ // its adapter send is deferred until the cloud adapter reports whether
429
+ // the cloud accepted a device push. Typical cost: one fast HTTP
430
430
  // round-trip before the local banner goes out, capped at
431
431
  // PLATFORM_OUTCOME_DEADLINE_MS.
432
432
  let deferredCadetSend: PendingChannelDispatch | null = null;
@@ -446,7 +446,7 @@ export class NotificationBroadcaster {
446
446
  try {
447
447
  for (const channel of orderedChannels) {
448
448
  // Platform sorts immediately after cadet, so reaching any later
449
- // channel means the platform outcome is settled (or the platform
449
+ // channel means the cloud outcome is settled (or the cloud
450
450
  // channel was skipped): flush the deferred cadet send now so the
451
451
  // local banner is not held behind slower sends. On the cadet
452
452
  // iteration itself this is a no-op -- cadet appears at most once in
@@ -592,7 +592,7 @@ export class NotificationBroadcaster {
592
592
  );
593
593
  if (existingDelivery) {
594
594
  // On retry paths the cadet row already exists, so the fresh-pairing
595
- // carry below never runs -- seed the platform deep-link carry from
595
+ // carry below never runs -- seed the cloud deep-link carry from
596
596
  // the duplicate row's conversation instead.
597
597
  if (channel === "cadet" && existingDelivery.conversationId) {
598
598
  cadetPairing = {
@@ -838,14 +838,14 @@ export class NotificationBroadcaster {
838
838
 
839
839
  if (channel === "cadet" && orderedChannels.includes("platform")) {
840
840
  // The cadet intent carries remotePushDispatched, so its send waits
841
- // for the platform outcome; everything else (pairing, events, the
841
+ // for the cloud outcome; everything else (pairing, events, the
842
842
  // pending delivery row) already ran above.
843
843
  deferredCadetSend = dispatch;
844
844
  continue;
845
845
  }
846
846
 
847
847
  if (channel === "platform" && deferredCadetSend) {
848
- // The local banner is urgent: wait for the platform outcome only up
848
+ // The local banner is urgent: wait for the cloud outcome only up
849
849
  // to the deadline (a duplicate banner beats a late one). On expiry
850
850
  // the cadet send flushes with remotePushDispatched=false while the
851
851
  // dispatch keeps running, recording its delivery row when it
@@ -244,7 +244,7 @@ const TITLE_FIELD_DESCRIPTION = [
244
244
  "- No quotes, no markdown, no trailing punctuation",
245
245
  "- Never describe missing or thin context. Titles like 'Notification', 'Update', 'Activity complete', 'Missing context' are forbidden. Say what was done from the words that ARE present",
246
246
  "Examples:",
247
- "- Body 'Your 9am standup with the platform team starts in 5 minutes' -> 'Platform standup in 5 minutes', NOT 'Platform Standup'",
247
+ "- Body 'Your 9am standup with the platform team starts in 5 minutes' -> 'Cloud standup in 5 minutes', NOT 'Cloud Standup'",
248
248
  "- Body 'The nightly backup job failed on db-primary at 02:14' -> 'Nightly backup failed', NOT 'Nightly Backup Failure'",
249
249
  "- Body 'Alice replied about the Q3 pricing deck and wants your notes' -> 'Alice wants notes on the Q3 deck', NOT 'Q3 Pricing Deck'",
250
250
  "- Body 'Recapped the 12 emails that needed a reply and deleted 6 newsletters' -> 'Recapped 12 emails, deleted 6', NOT 'Inbox Recap'",
@@ -193,7 +193,7 @@ export function resolveDestinations(
193
193
  break;
194
194
  }
195
195
  case "platform": {
196
- // Platform delivery goes through the daemon's CadetPlatformClient —
196
+ // Platform delivery goes through the daemon's CadetCloudClient —
197
197
  // no external binding needed. Include guardianPrincipalId so the
198
198
  // adapter can scope guardian-sensitive notifications.
199
199
  const platformGuardian = resolveGuardian(guardians, "cadet");
@@ -13,18 +13,18 @@ import type { GuardianDelivery } from "@mycadet/gateway-client";
13
13
  import { v4 as uuid } from "uuid";
14
14
 
15
15
  import { getDeliverableChannels } from "../channels/config.js";
16
+ import { isCloudClientConfigured } from "../cloud/client.js";
16
17
  import {
17
18
  getGuardianDelivery,
18
19
  guardianForChannel,
19
20
  } from "../contacts/guardian-delivery-reader.js";
20
21
  import type { ConversationCreateType } from "../persistence/conversation-types.js";
21
- import { isPlatformClientConfigured } from "../platform/client.js";
22
22
  import { broadcastMessage } from "../runtime/assistant-event-hub.js";
23
23
  import { getLogger } from "../util/logger.js";
24
24
  import { withSqliteRetry } from "../util/sqlite-retry.js";
25
+ import { CloudPushAdapter } from "./adapters/cloud.js";
25
26
  import { DiscordAdapter } from "./adapters/discord.js";
26
27
  import { CadetAdapter } from "./adapters/macos.js";
27
- import { PlatformPushAdapter } from "./adapters/platform.js";
28
28
  import { SlackAdapter } from "./adapters/slack.js";
29
29
  import { TelegramAdapter } from "./adapters/telegram.js";
30
30
  import { resolveAssistantInitiatedThread } from "./assistant-initiated-thread.js";
@@ -72,7 +72,7 @@ export function getBroadcaster(): NotificationBroadcaster {
72
72
  new TelegramAdapter(),
73
73
  new SlackAdapter(),
74
74
  new DiscordAdapter(),
75
- new PlatformPushAdapter(),
75
+ new CloudPushAdapter(),
76
76
  ]);
77
77
 
78
78
  // Wire the conversation-created callback so the event goes out as soon
@@ -142,7 +142,7 @@ export async function getConnectedChannels(): Promise<NotificationChannel[]> {
142
142
  case "platform":
143
143
  // Platform push is treated as connected at the decision-engine
144
144
  // layer; the actual delivery path lazily resolves
145
- // `CadetPlatformClient.create()` in `PlatformPushAdapter.send()`
145
+ // `CadetCloudClient.create()` in `CloudPushAdapter.send()`
146
146
  // and reports a delivery failure when credentials are absent.
147
147
  channels.push(channel);
148
148
  break;
@@ -316,7 +316,7 @@ function emitOutcome(
316
316
 
317
317
  /**
318
318
  * True when at least one channel adapter has already been handed the signal.
319
- * `sent` is a completed delivery; `pending` is the platform push that passed
319
+ * `sent` is a completed delivery; `pending` is the cloud push that passed
320
320
  * its outcome deadline and is still in flight. Both mean a retry would
321
321
  * re-deliver.
322
322
  */
@@ -449,7 +449,7 @@ export async function emitNotificationSignal<TEventName extends string>(
449
449
  const prePolicyDecision = decision;
450
450
  let platformConfigured: Promise<boolean> | undefined;
451
451
  const platformIsConfigured = () =>
452
- (platformConfigured ??= isPlatformClientConfigured());
452
+ (platformConfigured ??= isCloudClientConfigured());
453
453
 
454
454
  // Step 2.5a: High/critical urgency signals always get both the in-app
455
455
  // system notification (cadet) and the remote push (platform),
@@ -69,7 +69,7 @@ export const DeliveryResultSchema = z.object({
69
69
  skipped: z.boolean().optional(),
70
70
  error: z.string().optional(),
71
71
  messageId: z.string().optional(),
72
- /** Set only by the platform push adapter: true when the platform accepted
72
+ /** Set only by the cloud push adapter: true when the cloud accepted
73
73
  * at least one device push for delivery (not proof of device receipt). */
74
74
  remotePushAccepted: z.boolean().optional(),
75
75
  remotePushPlatforms: z.array(z.enum(["ios", "android"])).optional(),
@@ -124,7 +124,7 @@ export const ChannelDeliveryPayloadSchema = z.object({
124
124
  * broadcaster so channel adapters render it without re-parsing
125
125
  * `contextPayload`. */
126
126
  toolApprovalSource: ToolApprovalSourceViewSchema.optional(),
127
- /** True when the platform (APNs) channel accepted a remote push for this
127
+ /** True when the cloud (APNs) channel accepted a remote push for this
128
128
  * delivery. Set only on the cadet channel's payload so clients can avoid
129
129
  * double-bannering. */
130
130
  remotePushDispatched: z.boolean().optional(),
@@ -50,7 +50,7 @@ function makeProviderRow(
50
50
  pingBody: null,
51
51
  revokeUrl: null,
52
52
  revokeBodyTemplate: null,
53
- managedServiceConfigKey: null,
53
+ cloudServiceConfigKey: null,
54
54
  managedServiceIsPaid: false,
55
55
  displayLabel: null,
56
56
  description: null,
@@ -7,7 +7,7 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
7
7
  test("github provider is wired up for managed mode", () => {
8
8
  const github = PROVIDER_SEED_DATA.github;
9
9
  expect(github).toBeDefined();
10
- expect(github.managedServiceConfigKey).toBe("github-oauth");
10
+ expect(github.cloudServiceConfigKey).toBe("github-oauth");
11
11
  expect("github-oauth" in ServicesSchema.shape).toBe(true);
12
12
  });
13
13
 
@@ -32,7 +32,7 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
32
32
  test("figma requests only scopes an app on any plan can grant", () => {
33
33
  const figma = PROVIDER_SEED_DATA.figma;
34
34
  expect(figma).toBeDefined();
35
- expect(figma.managedServiceConfigKey).toBe("figma-oauth");
35
+ expect(figma.cloudServiceConfigKey).toBe("figma-oauth");
36
36
  expect("figma-oauth" in ServicesSchema.shape).toBe(true);
37
37
 
38
38
  // Figma rejects the whole authorization request when the app cannot grant
@@ -114,12 +114,12 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
114
114
 
115
115
  test("Link does not ship a Stripe publishable key to BYO installs", () => {
116
116
  // Link's authorize endpoint needs a `key` param naming the Stripe account
117
- // behind the client_id. Cadet's belongs only in the platform registry,
118
- // where it pairs with the platform's own client. Seeding it here would
117
+ // behind the client_id. Cadet's belongs only in the cloud registry,
118
+ // where it pairs with the cloud's own client. Seeding it here would
119
119
  // send our merchant identity from every self-hosted install.
120
120
  const link = PROVIDER_SEED_DATA.stripe_link;
121
121
  expect(link).toBeDefined();
122
- expect(link.managedServiceConfigKey).toBe("stripe-link-oauth");
122
+ expect(link.cloudServiceConfigKey).toBe("stripe-link-oauth");
123
123
  expect(link.authorizeParams).toBeUndefined();
124
124
  expect(JSON.stringify(link)).not.toContain("pk_live_");
125
125
  });
@@ -151,7 +151,7 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
151
151
  // Shopify has no global OAuth host: every endpoint lives on the
152
152
  // merchant's own domain. Hardcoding any host here would send every
153
153
  // merchant's authorization to the wrong store, so the {tenant_host}
154
- // placeholder the platform substitutes must survive.
154
+ // placeholder the cloud substitutes must survive.
155
155
  const shopify = PROVIDER_SEED_DATA.shopify;
156
156
  expect(shopify).toBeDefined();
157
157
  for (const url of [
@@ -204,9 +204,9 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
204
204
  test("quickbooks is wired up for managed mode behind its flag", () => {
205
205
  const quickbooks = PROVIDER_SEED_DATA.quickbooks;
206
206
  expect(quickbooks).toBeDefined();
207
- expect(quickbooks.managedServiceConfigKey).toBe("quickbooks-oauth");
207
+ expect(quickbooks.cloudServiceConfigKey).toBe("quickbooks-oauth");
208
208
  expect("quickbooks-oauth" in ServicesSchema.shape).toBe(true);
209
- // Hidden until the platform side and client ids are live, like Figma
209
+ // Hidden until the cloud side and client ids are live, like Figma
210
210
  // and Shopify.
211
211
  expect(quickbooks.featureFlag).toBe("quickbooks-oauth");
212
212
  });
@@ -225,7 +225,7 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
225
225
 
226
226
  test("quickbooks keeps its per-company URL templates", () => {
227
227
  // Every Accounting API path is scoped to the realm the user picked on
228
- // Intuit's consent screen. The platform fills {realm_id} from the
228
+ // Intuit's consent screen. The cloud fills {realm_id} from the
229
229
  // connection; a hardcoded realm here would send every company's calls
230
230
  // to the wrong books.
231
231
  const quickbooks = PROVIDER_SEED_DATA.quickbooks;
@@ -276,13 +276,13 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
276
276
  }
277
277
  });
278
278
 
279
- test("every managedServiceConfigKey resolves to a ServicesSchema key", () => {
280
- // Cross-repo invariant: a provider with managedServiceConfigKey but no
279
+ test("every cloudServiceConfigKey resolves to a ServicesSchema key", () => {
280
+ // Cross-repo invariant: a provider with cloudServiceConfigKey but no
281
281
  // matching ServicesSchema entry silently falls back to BYO mode in
282
282
  // connection-resolver.ts. This test guards against that drift.
283
283
  const offenders: Array<{ provider: string; key: string }> = [];
284
284
  for (const [provider, seed] of Object.entries(PROVIDER_SEED_DATA)) {
285
- const key = seed.managedServiceConfigKey;
285
+ const key = seed.cloudServiceConfigKey;
286
286
  if (key && !(key in ServicesSchema.shape)) {
287
287
  offenders.push({ provider, key });
288
288
  }
@@ -290,7 +290,7 @@ describe("PROVIDER_SEED_DATA managed mode wiring", () => {
290
290
  expect(offenders).toEqual([]);
291
291
  });
292
292
 
293
- test("github managed service schema defaults to your-own", () => {
293
+ test("github cloud service schema defaults to your-own", () => {
294
294
  const parsed = ServicesSchema.shape["github-oauth"].parse({});
295
295
  expect(parsed.mode).toBe("your-own");
296
296
  });
@@ -89,7 +89,7 @@ const mockProviders = new Map<
89
89
  tokenEndpointAuthMethod?: string;
90
90
  tokenExchangeBodyFormat?: string;
91
91
  baseUrl?: string;
92
- managedServiceConfigKey?: string | null;
92
+ cloudServiceConfigKey?: string | null;
93
93
  }
94
94
  >();
95
95
 
@@ -225,7 +225,7 @@ async function setupCredential(
225
225
  service === "google"
226
226
  ? "https://gmail.googleapis.com/gmail/v1/users/me"
227
227
  : undefined,
228
- managedServiceConfigKey: null,
228
+ cloudServiceConfigKey: null,
229
229
  });
230
230
  mockApps.set(appId, {
231
231
  id: appId,
@@ -8,19 +8,17 @@ mock.module("../util/retry.js", () => ({
8
8
  sleep: () => Promise.resolve(),
9
9
  }));
10
10
 
11
- import type { CadetPlatformClient } from "../platform/client.js";
11
+ import type { CadetCloudClient } from "../cloud/client.js";
12
12
  import { BackendError, CadetError } from "../util/errors.js";
13
13
  import {
14
+ CloudOAuthConnection,
14
15
  CredentialRequiredError,
15
16
  InsufficientBalanceError,
16
- PlatformOAuthConnection,
17
17
  ProviderUnreachableError,
18
18
  unhonoredManagedOptions,
19
- } from "./platform-connection.js";
19
+ } from "./cloud-connection.js";
20
20
 
21
- function makeMockClient(
22
- fetchImpl?: typeof globalThis.fetch,
23
- ): CadetPlatformClient {
21
+ function makeMockClient(fetchImpl?: typeof globalThis.fetch): CadetCloudClient {
24
22
  const mockFetchFn =
25
23
  fetchImpl ??
26
24
  (mock(async () => {
@@ -33,14 +31,14 @@ function makeMockClient(
33
31
  return {
34
32
  baseUrl: "https://platform.example.com",
35
33
  assistantApiKey: "test-api-key",
36
- platformAssistantId: "asst-abc",
34
+ cloudAssistantId: "asst-abc",
37
35
  fetch: mock(async (path: string, init?: RequestInit) => {
38
36
  const url = `https://platform.example.com${path}`;
39
37
  const headers = new Headers(init?.headers);
40
38
  headers.set("Authorization", "Bearer test-api-key");
41
39
  return mockFetchFn(url, { ...init, headers });
42
40
  }),
43
- } as unknown as CadetPlatformClient;
41
+ } as unknown as CadetCloudClient;
44
42
  }
45
43
 
46
44
  const DEFAULT_OPTIONS = {
@@ -52,7 +50,7 @@ const DEFAULT_OPTIONS = {
52
50
  connectionId: "platform-conn-123",
53
51
  };
54
52
 
55
- describe("PlatformOAuthConnection", () => {
53
+ describe("CloudOAuthConnection", () => {
56
54
  test("successful proxied request", async () => {
57
55
  const upstreamBody = { messages: [{ id: "msg-1", snippet: "Hello" }] };
58
56
 
@@ -88,7 +86,7 @@ describe("PlatformOAuthConnection", () => {
88
86
  }) as unknown as typeof globalThis.fetch,
89
87
  );
90
88
 
91
- const conn = new PlatformOAuthConnection({
89
+ const conn = new CloudOAuthConnection({
92
90
  ...DEFAULT_OPTIONS,
93
91
  client,
94
92
  });
@@ -126,7 +124,7 @@ describe("PlatformOAuthConnection", () => {
126
124
  }) as unknown as typeof globalThis.fetch,
127
125
  );
128
126
 
129
- const conn = new PlatformOAuthConnection({
127
+ const conn = new CloudOAuthConnection({
130
128
  ...DEFAULT_OPTIONS,
131
129
  client,
132
130
  });
@@ -157,7 +155,7 @@ describe("PlatformOAuthConnection", () => {
157
155
  }) as unknown as typeof globalThis.fetch,
158
156
  );
159
157
 
160
- const conn = new PlatformOAuthConnection({
158
+ const conn = new CloudOAuthConnection({
161
159
  ...DEFAULT_OPTIONS,
162
160
  client,
163
161
  });
@@ -187,7 +185,7 @@ describe("PlatformOAuthConnection", () => {
187
185
  }) as unknown as typeof globalThis.fetch,
188
186
  );
189
187
 
190
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
188
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
191
189
  await conn.request({
192
190
  method: "GET",
193
191
  path: "/calendars/primary/events",
@@ -210,7 +208,7 @@ describe("PlatformOAuthConnection", () => {
210
208
  }) as unknown as typeof globalThis.fetch,
211
209
  );
212
210
 
213
- const conn = new PlatformOAuthConnection({
211
+ const conn = new CloudOAuthConnection({
214
212
  ...DEFAULT_OPTIONS,
215
213
  client,
216
214
  baseUrl: "https://gmail.googleapis.com/gmail/v1/users/me",
@@ -233,7 +231,7 @@ describe("PlatformOAuthConnection", () => {
233
231
  }) as unknown as typeof globalThis.fetch,
234
232
  );
235
233
 
236
- const conn = new PlatformOAuthConnection({
234
+ const conn = new CloudOAuthConnection({
237
235
  ...DEFAULT_OPTIONS,
238
236
  client,
239
237
  baseUrl: "https://gmail.googleapis.com/gmail/v1/users/me",
@@ -258,7 +256,7 @@ describe("PlatformOAuthConnection", () => {
258
256
  }) as unknown as typeof globalThis.fetch,
259
257
  );
260
258
 
261
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
259
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
262
260
  await conn.request({ method: "GET", path: "/some/path" });
263
261
  });
264
262
 
@@ -283,7 +281,7 @@ describe("PlatformOAuthConnection", () => {
283
281
  ) as unknown as typeof globalThis.fetch,
284
282
  );
285
283
 
286
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
284
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
287
285
  await expect(
288
286
  conn.request({ method: "GET", path: "/test" }),
289
287
  ).rejects.toThrow(InsufficientBalanceError);
@@ -296,7 +294,7 @@ describe("PlatformOAuthConnection", () => {
296
294
  ) as unknown as typeof globalThis.fetch,
297
295
  );
298
296
 
299
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
297
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
300
298
  await expect(
301
299
  conn.request({ method: "GET", path: "/test" }),
302
300
  ).rejects.toThrow(/add funds/i);
@@ -311,7 +309,7 @@ describe("PlatformOAuthConnection", () => {
311
309
  }) as unknown as typeof globalThis.fetch,
312
310
  );
313
311
 
314
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
312
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
315
313
  await expect(
316
314
  conn.request({ method: "GET", path: "/test" }),
317
315
  ).rejects.toThrow(InsufficientBalanceError);
@@ -325,7 +323,7 @@ describe("PlatformOAuthConnection", () => {
325
323
  ) as unknown as typeof globalThis.fetch,
326
324
  );
327
325
 
328
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
326
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
329
327
  await expect(
330
328
  conn.request({ method: "GET", path: "/test" }),
331
329
  ).rejects.toThrow(CredentialRequiredError);
@@ -340,7 +338,7 @@ describe("PlatformOAuthConnection", () => {
340
338
  }) as unknown as typeof globalThis.fetch,
341
339
  );
342
340
 
343
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
341
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
344
342
  await expect(
345
343
  conn.request({ method: "GET", path: "/test" }),
346
344
  ).rejects.toThrow(ProviderUnreachableError);
@@ -355,7 +353,7 @@ describe("PlatformOAuthConnection", () => {
355
353
  ) as unknown as typeof globalThis.fetch,
356
354
  );
357
355
 
358
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
356
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
359
357
  await expect(
360
358
  conn.request({ method: "GET", path: "/test" }),
361
359
  ).rejects.toThrow(/upstream timeout after 30s/);
@@ -376,7 +374,7 @@ describe("PlatformOAuthConnection", () => {
376
374
  }) as unknown as typeof globalThis.fetch,
377
375
  );
378
376
 
379
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
377
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
380
378
  const result = await conn.request({ method: "GET", path: "/test" });
381
379
 
382
380
  expect(result.status).toBe(200);
@@ -385,9 +383,9 @@ describe("PlatformOAuthConnection", () => {
385
383
  });
386
384
 
387
385
  test("withToken throws clear error", async () => {
388
- const conn = new PlatformOAuthConnection(DEFAULT_OPTIONS);
386
+ const conn = new CloudOAuthConnection(DEFAULT_OPTIONS);
389
387
  await expect(conn.withToken(async (token) => token)).rejects.toThrow(
390
- "Raw token access is not supported for platform-managed connections. Use connection.request() instead.",
388
+ "Raw token access is not supported for cloud connections. Use connection.request() instead.",
391
389
  );
392
390
  });
393
391
 
@@ -406,7 +404,7 @@ describe("PlatformOAuthConnection", () => {
406
404
  }) as unknown as typeof globalThis.fetch,
407
405
  );
408
406
 
409
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
407
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
410
408
  const result = await conn.request({ method: "GET", path: "/test" });
411
409
 
412
410
  expect(result.status).toBe(200);
@@ -421,7 +419,7 @@ describe("PlatformOAuthConnection", () => {
421
419
  ) as unknown as typeof globalThis.fetch,
422
420
  );
423
421
 
424
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
422
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
425
423
  await expect(
426
424
  conn.request({ method: "GET", path: "/test" }),
427
425
  ).rejects.toThrow("Platform proxy returned unexpected status 429");
@@ -442,7 +440,7 @@ describe("PlatformOAuthConnection", () => {
442
440
  }) as unknown as typeof globalThis.fetch,
443
441
  );
444
442
 
445
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
443
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
446
444
  const result = await conn.request({ method: "GET", path: "/test" });
447
445
 
448
446
  expect(result.status).toBe(200);
@@ -458,7 +456,7 @@ describe("PlatformOAuthConnection", () => {
458
456
  }) as unknown as typeof globalThis.fetch,
459
457
  );
460
458
 
461
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
459
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
462
460
  await expect(
463
461
  conn.request({ method: "GET", path: "/test" }),
464
462
  ).rejects.toThrow(CredentialRequiredError);
@@ -474,7 +472,7 @@ describe("PlatformOAuthConnection", () => {
474
472
  }) as unknown as typeof globalThis.fetch,
475
473
  );
476
474
 
477
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
475
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
478
476
  await expect(
479
477
  conn.request({ method: "GET", path: "/test" }),
480
478
  ).rejects.toThrow("Platform proxy returned unexpected status 403");
@@ -490,7 +488,7 @@ describe("PlatformOAuthConnection", () => {
490
488
  }) as unknown as typeof globalThis.fetch,
491
489
  );
492
490
 
493
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
491
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
494
492
  await expect(
495
493
  conn.request({
496
494
  method: "POST",
@@ -510,7 +508,7 @@ describe("PlatformOAuthConnection", () => {
510
508
  }) as unknown as typeof globalThis.fetch,
511
509
  );
512
510
 
513
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
511
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
514
512
  await expect(
515
513
  conn.request({
516
514
  method: "POST",
@@ -536,7 +534,7 @@ describe("PlatformOAuthConnection", () => {
536
534
  }) as unknown as typeof globalThis.fetch,
537
535
  );
538
536
 
539
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
537
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
540
538
  const result = await conn.request({
541
539
  method: "POST",
542
540
  path: "/messages/send",
@@ -559,7 +557,7 @@ describe("PlatformOAuthConnection", () => {
559
557
  }) as unknown as typeof globalThis.fetch,
560
558
  );
561
559
 
562
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
560
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
563
561
  const result = await conn.request({
564
562
  method: "POST",
565
563
  path: "/v1/payment_intents",
@@ -583,7 +581,7 @@ describe("PlatformOAuthConnection", () => {
583
581
 
584
582
  // 700 reaches `new Response(body, { status })` as a RangeError, which is
585
583
  // not a mapped error, so the caller would see an opaque 500.
586
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
584
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
587
585
  await expect(conn.request({ method: "GET", path: "/x" })).rejects.toThrow(
588
586
  "Platform proxy returned an unusable response status: 700",
589
587
  );
@@ -598,13 +596,13 @@ describe("PlatformOAuthConnection", () => {
598
596
  }) as unknown as typeof globalThis.fetch,
599
597
  );
600
598
 
601
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
599
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
602
600
  await expect(conn.request({ method: "GET", path: "/x" })).rejects.toThrow(
603
601
  BackendError,
604
602
  );
605
603
  });
606
604
 
607
- // The platform proxy rebuilds the query from the parsed record, so managed
605
+ // The cloud proxy rebuilds the query from the parsed record, so managed
608
606
  // mode cannot carry a signed query string.
609
607
  test("sends the parsed query and never rawQuery", async () => {
610
608
  const client = makeMockClient(
@@ -621,7 +619,7 @@ describe("PlatformOAuthConnection", () => {
621
619
  }) as unknown as typeof globalThis.fetch,
622
620
  );
623
621
 
624
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
622
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
625
623
  await conn.request({
626
624
  method: "GET",
627
625
  path: "/x",
@@ -630,10 +628,10 @@ describe("PlatformOAuthConnection", () => {
630
628
  });
631
629
  });
632
630
 
633
- // The platform proxy parses the response, rebuilds the query, and follows
631
+ // The cloud proxy parses the response, rebuilds the query, and follows
634
632
  // redirects server-side, so managed mode diverges from BYO on all three by
635
633
  // design.
636
- test("names every option the platform proxy cannot honor", () => {
634
+ test("names every option the cloud proxy cannot honor", () => {
637
635
  expect(unhonoredManagedOptions({ method: "GET", path: "/x" })).toEqual([]);
638
636
  expect(
639
637
  unhonoredManagedOptions({
@@ -670,7 +668,7 @@ describe("PlatformOAuthConnection", () => {
670
668
  }) as unknown as typeof globalThis.fetch,
671
669
  );
672
670
 
673
- const conn = new PlatformOAuthConnection({ ...DEFAULT_OPTIONS, client });
671
+ const conn = new CloudOAuthConnection({ ...DEFAULT_OPTIONS, client });
674
672
  const result = await conn.request({
675
673
  method: "GET",
676
674
  path: "/v1/redirecting",
@@ -678,7 +676,7 @@ describe("PlatformOAuthConnection", () => {
678
676
  rawResponseBody: true,
679
677
  });
680
678
 
681
- // The platform already followed the redirect and parsed the body, so the
679
+ // The cloud already followed the redirect and parsed the body, so the
682
680
  // caller sees the destination's JSON rather than a 3xx or raw bytes.
683
681
  expect(result.status).toBe(200);
684
682
  expect(result.body).toEqual({ followed: true });
@@ -697,7 +695,7 @@ describe("PlatformOAuthConnection", () => {
697
695
  }) as unknown as typeof globalThis.fetch,
698
696
  );
699
697
 
700
- const conn = new PlatformOAuthConnection({
698
+ const conn = new CloudOAuthConnection({
701
699
  ...DEFAULT_OPTIONS,
702
700
  client,
703
701
  provider: "slack",