@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
@@ -1,4 +1,4 @@
1
- import type { CadetPlatformClient } from "../platform/client.js";
1
+ import type { CadetCloudClient } from "../cloud/client.js";
2
2
  import { BackendError } from "../util/errors.js";
3
3
  import { getLogger } from "../util/logger.js";
4
4
  import { getHttpRetryDelay, isRetryableStatus, sleep } from "../util/retry.js";
@@ -36,7 +36,7 @@ export class ProviderUnreachableError extends BackendError {
36
36
 
37
37
  export class InsufficientBalanceError extends BackendError {
38
38
  constructor(
39
- message = "Your Cadet account balance is too low to use this managed OAuth connection. " +
39
+ message = "Your Cadet account balance is too low to use this cloud OAuth connection. " +
40
40
  "You can add funds or switch to using your own OAuth app.",
41
41
  ) {
42
42
  super(message);
@@ -45,9 +45,9 @@ export class InsufficientBalanceError extends BackendError {
45
45
  }
46
46
 
47
47
  /**
48
- * Request options the platform proxy cannot honor. It parses the response
48
+ * Request options the cloud proxy cannot honor. It parses the response
49
49
  * body, rebuilds the query string from the parsed record, and follows provider
50
- * redirects server-side, so a managed connection answers with re-serialized
50
+ * redirects server-side, so a cloud connection answers with re-serialized
51
51
  * JSON, a regrouped query, and the redirect target's response. A caller that
52
52
  * needs the provider's exact bytes, its exact query string, or a verbatim 3xx
53
53
  * needs a BYO connection.
@@ -71,7 +71,7 @@ const MANAGED_PROXY_REQUEST_HEADERS = new Set([
71
71
  ]);
72
72
 
73
73
  /** Node fetch defaults can be dropped; other unsupported headers need caller handling. */
74
- export function prepareManagedProxyHeaders(headers: Record<string, string>): {
74
+ export function prepareCloudProxyHeaders(headers: Record<string, string>): {
75
75
  headers: Record<string, string>;
76
76
  unsupportedHeaders: string[];
77
77
  } {
@@ -91,12 +91,12 @@ export function prepareManagedProxyHeaders(headers: Record<string, string>): {
91
91
  return { headers: forwarded, unsupportedHeaders: unsupportedHeaders.sort() };
92
92
  }
93
93
 
94
- export interface PlatformOAuthConnectionOptions {
94
+ export interface CloudOAuthConnectionOptions {
95
95
  id: string;
96
96
  provider: string;
97
97
  externalId: string;
98
98
  accountInfo: string | null;
99
- client: CadetPlatformClient;
99
+ client: CadetCloudClient;
100
100
  /** Platform-side connection ID used in the proxy URL path. */
101
101
  connectionId: string;
102
102
  /** Provider API base URL (e.g. "https://gmail.googleapis.com/gmail/v1/users/me").
@@ -104,20 +104,20 @@ export interface PlatformOAuthConnectionOptions {
104
104
  baseUrl?: string;
105
105
  }
106
106
 
107
- export class PlatformOAuthConnection implements OAuthConnection {
107
+ export class CloudOAuthConnection implements OAuthConnection {
108
108
  readonly id: string;
109
109
  readonly provider: string;
110
110
  readonly externalId: string;
111
111
  readonly accountInfo: string | null;
112
112
 
113
- private readonly client: CadetPlatformClient;
113
+ private readonly client: CadetCloudClient;
114
114
  private readonly connectionId: string;
115
115
  private readonly baseUrl: string | undefined;
116
116
 
117
- constructor(options: PlatformOAuthConnectionOptions) {
117
+ constructor(options: CloudOAuthConnectionOptions) {
118
118
  if (!options.connectionId) {
119
119
  throw new BackendError(
120
- `Platform-managed connection for "${options.provider}" cannot be created: missing connection ID. ` +
120
+ `Cloud connection for "${options.provider}" cannot be created: missing connection ID. ` +
121
121
  `Log in to Cadet Cloud or switch to using your own OAuth app.`,
122
122
  );
123
123
  }
@@ -132,7 +132,7 @@ export class PlatformOAuthConnection implements OAuthConnection {
132
132
  }
133
133
 
134
134
  async request(req: OAuthConnectionRequest): Promise<OAuthConnectionResponse> {
135
- const proxyPath = `/v1/assistants/${this.client.platformAssistantId}/external-provider-proxy/${this.connectionId}/`;
135
+ const proxyPath = `/v1/assistants/${this.client.cloudAssistantId}/external-provider-proxy/${this.connectionId}/`;
136
136
 
137
137
  // The envelope carries the caller's headers and body side by side. A
138
138
  // string body is placed in the envelope as a string, so the proxy forwards
@@ -164,7 +164,7 @@ export class PlatformOAuthConnection implements OAuthConnection {
164
164
  }
165
165
 
166
166
  // A retry replays the whole request upstream, and a 502 arrives only after
167
- // the platform already called the provider, so a caller forwarding a write
167
+ // the cloud already called the provider, so a caller forwarding a write
168
168
  // it cannot repeat gets a single attempt.
169
169
  const retriesAllowed = req.singleAttempt === true ? 0 : MAX_RETRIES;
170
170
 
@@ -192,8 +192,8 @@ export class PlatformOAuthConnection implements OAuthConnection {
192
192
  attempt < retriesAllowed
193
193
  ) {
194
194
  log.warn(
195
- { status: response.status, attempt, provider: "platform-proxy" },
196
- `Retryable status ${response.status} from platform proxy (attempt ${attempt + 1}/${retriesAllowed + 1})`,
195
+ { status: response.status, attempt, provider: "cloud-proxy" },
196
+ `Retryable status ${response.status} from cloud proxy (attempt ${attempt + 1}/${retriesAllowed + 1})`,
197
197
  );
198
198
  await sleep(getHttpRetryDelay(response, attempt));
199
199
  continue;
@@ -219,7 +219,7 @@ export class PlatformOAuthConnection implements OAuthConnection {
219
219
  body_encoding?: string | null;
220
220
  };
221
221
 
222
- return decodePlatformProxyEnvelope(json);
222
+ return decodeCloudProxyEnvelope(json);
223
223
  }
224
224
 
225
225
  throw new BackendError("Platform proxy request failed after retries");
@@ -227,12 +227,12 @@ export class PlatformOAuthConnection implements OAuthConnection {
227
227
 
228
228
  async withToken<T>(_fn: (token: string) => Promise<T>): Promise<T> {
229
229
  throw new BackendError(
230
- "Raw token access is not supported for platform-managed connections. Use connection.request() instead.",
230
+ "Raw token access is not supported for cloud connections. Use connection.request() instead.",
231
231
  );
232
232
  }
233
233
  }
234
234
 
235
- function decodePlatformProxyEnvelope(json: {
235
+ function decodeCloudProxyEnvelope(json: {
236
236
  status: number;
237
237
  headers: Record<string, string>;
238
238
  body: unknown;
@@ -240,7 +240,7 @@ function decodePlatformProxyEnvelope(json: {
240
240
  }): OAuthConnectionResponse {
241
241
  // A status outside the range `Response` accepts cannot be emitted, and
242
242
  // clamping it would attribute a status to the provider that it never sent,
243
- // so an unusable envelope fails as a platform fault instead.
243
+ // so an unusable envelope fails as a cloud fault instead.
244
244
  const { status } = json;
245
245
  if (
246
246
  !Number.isInteger(status) ||
@@ -10,7 +10,7 @@ let mockConnections:
10
10
  | Array<Record<string, unknown> & { clientId?: string; accountInfo?: string }>
11
11
  | undefined;
12
12
  let mockAccessToken: string | undefined;
13
- let mockPlatformClient: Record<string, unknown> | null = null;
13
+ let mockCloudClient: Record<string, unknown> | null = null;
14
14
  let syncManualTokenCalls: string[] = [];
15
15
 
16
16
  // ---------------------------------------------------------------------------
@@ -60,9 +60,9 @@ mock.module("./manual-token-connection.js", () => ({
60
60
  },
61
61
  }));
62
62
 
63
- mock.module("../platform/client.js", () => ({
64
- CadetPlatformClient: {
65
- create: async () => mockPlatformClient,
63
+ mock.module("../cloud/client.js", () => ({
64
+ CadetCloudClient: {
65
+ create: async () => mockCloudClient,
66
66
  },
67
67
  }));
68
68
 
@@ -72,15 +72,15 @@ mock.module("../platform/client.js", () => ({
72
72
 
73
73
  import { setConfig } from "../__tests__/helpers/set-config.js";
74
74
  import { BYOOAuthConnection } from "./byo-connection.js";
75
+ import { CloudOAuthConnection } from "./cloud-connection.js";
75
76
  import {
77
+ cloudProxyBaseUrl,
76
78
  formatNoConnectionError,
77
- platformProxyBaseUrl,
78
79
  resolveEffectiveBaseUrl,
79
80
  resolveOAuthConnection,
80
81
  resolveOAuthConnectionWithMeta,
81
82
  resolveTokenHeader,
82
83
  } from "./connection-resolver.js";
83
- import { PlatformOAuthConnection } from "./platform-connection.js";
84
84
 
85
85
  /** Seed `services.<key>.mode` entries into the workspace config for real. */
86
86
  function seedServiceModes(modes: Record<string, "managed" | "your-own">): void {
@@ -100,7 +100,7 @@ function makeMockClient() {
100
100
  return {
101
101
  baseUrl: "https://platform.example.com",
102
102
  assistantApiKey: "sk-test-key",
103
- platformAssistantId: "asst-123",
103
+ cloudAssistantId: "asst-123",
104
104
  fetch: mock(async () => {
105
105
  return new Response(
106
106
  JSON.stringify({
@@ -117,7 +117,7 @@ function setupDefaults(): void {
117
117
  provider: "google",
118
118
  baseUrl: "https://gmail.googleapis.com/gmail/v1/users/me",
119
119
  authorizeUrl: "https://accounts.google.com/o/oauth2/v2/auth",
120
- managedServiceConfigKey: null,
120
+ cloudServiceConfigKey: null,
121
121
  };
122
122
  mockConnection = {
123
123
  id: "conn-1",
@@ -131,7 +131,7 @@ function setupDefaults(): void {
131
131
  mockAccessToken = "tok-valid";
132
132
  seedServiceModes({ "google-oauth": "managed" });
133
133
  mockConnections = undefined;
134
- mockPlatformClient = makeMockClient();
134
+ mockCloudClient = makeMockClient();
135
135
  syncManualTokenCalls = [];
136
136
  }
137
137
 
@@ -144,37 +144,37 @@ describe("resolveOAuthConnection", () => {
144
144
  setupDefaults();
145
145
  });
146
146
 
147
- test("returns BYOOAuthConnection when provider has no managedServiceConfigKey", async () => {
147
+ test("returns BYOOAuthConnection when provider has no cloudServiceConfigKey", async () => {
148
148
  const result = await resolveOAuthConnection("google");
149
149
  expect(result).toBeInstanceOf(BYOOAuthConnection);
150
150
  expect(result.id).toBe("conn-1");
151
151
  expect(result.provider).toBe("google");
152
152
  });
153
153
 
154
- test("returns PlatformOAuthConnection when managed mode is active", async () => {
155
- mockProvider!.managedServiceConfigKey = "google-oauth";
154
+ test("returns CloudOAuthConnection when managed mode is active", async () => {
155
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
156
156
 
157
157
  const result = await resolveOAuthConnection("google");
158
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
158
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
159
159
  expect(result.id).toBe("google");
160
160
  expect(result.provider).toBe("google");
161
161
  expect(result.accountInfo).toBeNull();
162
162
  });
163
163
 
164
- test("passes account through to PlatformOAuthConnection", async () => {
165
- mockProvider!.managedServiceConfigKey = "google-oauth";
164
+ test("passes account through to CloudOAuthConnection", async () => {
165
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
166
166
 
167
167
  const result = await resolveOAuthConnection("google", {
168
168
  account: "user@example.com",
169
169
  });
170
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
170
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
171
171
  expect(result.accountInfo).toBe("user@example.com");
172
172
  });
173
173
 
174
174
  test("managed path falls back to displayed account label when account_identifier does not match", async () => {
175
- mockProvider!.managedServiceConfigKey = "google-oauth";
175
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
176
176
  const fetchPaths: string[] = [];
177
- mockPlatformClient = {
177
+ mockCloudClient = {
178
178
  ...makeMockClient(),
179
179
  fetch: mock(async (path: string) => {
180
180
  fetchPaths.push(path);
@@ -199,7 +199,7 @@ describe("resolveOAuthConnection", () => {
199
199
  account: "alice@example.com",
200
200
  });
201
201
 
202
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
202
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
203
203
  expect(result.accountInfo).toBe("alice@example.com");
204
204
  expect(fetchPaths).toEqual([
205
205
  "/v1/assistants/asst-123/oauth/connections/?provider=google&status=ACTIVE&account_identifier=alice%40example.com",
@@ -207,19 +207,19 @@ describe("resolveOAuthConnection", () => {
207
207
  ]);
208
208
  });
209
209
 
210
- test("returns PlatformOAuthConnection when GitHub is in managed mode", async () => {
210
+ test("returns CloudOAuthConnection when GitHub is in managed mode", async () => {
211
211
  mockProvider!.provider = "github";
212
- mockProvider!.managedServiceConfigKey = "github-oauth";
212
+ mockProvider!.cloudServiceConfigKey = "github-oauth";
213
213
  seedServiceModes({ "google-oauth": "managed", "github-oauth": "managed" });
214
214
 
215
215
  const result = await resolveOAuthConnection("github");
216
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
216
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
217
217
  expect(result.id).toBe("github");
218
218
  expect(result.provider).toBe("github");
219
219
  });
220
220
 
221
221
  test("returns BYOOAuthConnection when service config mode is your-own", async () => {
222
- mockProvider!.managedServiceConfigKey = "google-oauth";
222
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
223
223
  seedServiceModes({ "google-oauth": "your-own" });
224
224
 
225
225
  const result = await resolveOAuthConnection("google");
@@ -228,21 +228,21 @@ describe("resolveOAuthConnection", () => {
228
228
  });
229
229
 
230
230
  test("managed path does not require a local connection row", async () => {
231
- mockProvider!.managedServiceConfigKey = "google-oauth";
231
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
232
232
  mockConnection = undefined;
233
233
  mockAccessToken = undefined;
234
234
 
235
235
  const result = await resolveOAuthConnection("google");
236
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
236
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
237
237
  });
238
238
 
239
239
  test("managed path ignores clientId option", async () => {
240
- mockProvider!.managedServiceConfigKey = "google-oauth";
240
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
241
241
 
242
242
  const result = await resolveOAuthConnection("google", {
243
243
  clientId: "some-client-id",
244
244
  });
245
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
245
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
246
246
  });
247
247
 
248
248
  test("BYO path narrows by clientId when provided", async () => {
@@ -266,7 +266,7 @@ describe("resolveOAuthConnection", () => {
266
266
  provider: "telegram",
267
267
  baseUrl: "https://api.telegram.org",
268
268
  authorizeUrl: "urn:manual-token",
269
- managedServiceConfigKey: null,
269
+ cloudServiceConfigKey: null,
270
270
  };
271
271
  mockConnection = {
272
272
  id: "conn-telegram",
@@ -310,11 +310,11 @@ describe("resolveOAuthConnection scope-awareness", () => {
310
310
 
311
311
  beforeEach(() => {
312
312
  setupDefaults();
313
- mockProvider!.managedServiceConfigKey = "google-oauth";
313
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
314
314
  });
315
315
 
316
316
  test("managed: rejects a Calendar-only connection when Gmail scope is required", async () => {
317
- mockPlatformClient = clientReturning([
317
+ mockCloudClient = clientReturning([
318
318
  { id: "cal-only", account_label: null, scopes_granted: CALENDAR_ONLY },
319
319
  ]);
320
320
 
@@ -324,18 +324,18 @@ describe("resolveOAuthConnection scope-awareness", () => {
324
324
  });
325
325
 
326
326
  test("managed: resolves when a connection carries the required Gmail scope", async () => {
327
- mockPlatformClient = clientReturning([
327
+ mockCloudClient = clientReturning([
328
328
  { id: "full", account_label: null, scopes_granted: FULL_BUNDLE },
329
329
  ]);
330
330
 
331
331
  const result = await resolveOAuthConnection("google", {
332
332
  requiredScopes: [GMAIL_SCOPE],
333
333
  });
334
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
334
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
335
335
  });
336
336
 
337
337
  test("managed: treats full Gmail access as covering Gmail read access", async () => {
338
- mockPlatformClient = clientReturning([
338
+ mockCloudClient = clientReturning([
339
339
  {
340
340
  id: "full-gmail-access",
341
341
  account_label: null,
@@ -346,19 +346,17 @@ describe("resolveOAuthConnection scope-awareness", () => {
346
346
  const result = await resolveOAuthConnection("google", {
347
347
  requiredScopes: [GMAIL_SCOPE],
348
348
  });
349
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
349
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
350
350
  });
351
351
 
352
352
  test("managed: unknown scope data never blocks (back-compat)", async () => {
353
353
  // Older connections report no scopes_granted — must not be rejected.
354
- mockPlatformClient = clientReturning([
355
- { id: "legacy", account_label: null },
356
- ]);
354
+ mockCloudClient = clientReturning([{ id: "legacy", account_label: null }]);
357
355
 
358
356
  const result = await resolveOAuthConnection("google", {
359
357
  requiredScopes: [GMAIL_SCOPE],
360
358
  });
361
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
359
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
362
360
  });
363
361
 
364
362
  test("managed: prefers a scope-satisfying connection over a narrow one", async () => {
@@ -366,24 +364,24 @@ describe("resolveOAuthConnection scope-awareness", () => {
366
364
  { id: "cal-only", account_label: null, scopes_granted: CALENDAR_ONLY },
367
365
  { id: "full", account_label: null, scopes_granted: FULL_BUNDLE },
368
366
  ]);
369
- mockPlatformClient = fullClient;
367
+ mockCloudClient = fullClient;
370
368
 
371
369
  const result = await resolveOAuthConnection("google", {
372
370
  requiredScopes: [GMAIL_SCOPE],
373
371
  });
374
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
375
- // PlatformOAuthConnection is keyed by provider, so assert resolution
372
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
373
+ // CloudOAuthConnection is keyed by provider, so assert resolution
376
374
  // succeeded (it would have thrown if only the narrow connection matched).
377
375
  expect(result.provider).toBe("google");
378
376
  });
379
377
 
380
378
  test("managed: no requiredScopes preserves prior behavior", async () => {
381
- mockPlatformClient = clientReturning([
379
+ mockCloudClient = clientReturning([
382
380
  { id: "cal-only", account_label: null, scopes_granted: CALENDAR_ONLY },
383
381
  ]);
384
382
 
385
383
  const result = await resolveOAuthConnection("google");
386
- expect(result).toBeInstanceOf(PlatformOAuthConnection);
384
+ expect(result).toBeInstanceOf(CloudOAuthConnection);
387
385
  });
388
386
 
389
387
  test("BYO: rejects when granted scopes are known and missing the requirement", async () => {
@@ -459,8 +457,8 @@ describe("resolveOAuthConnectionWithMeta multi-account visibility", () => {
459
457
  });
460
458
 
461
459
  test("managed: multiple connections + no account surfaces ambiguity and the selected label", async () => {
462
- mockProvider!.managedServiceConfigKey = "google-oauth";
463
- mockPlatformClient = clientReturning([
460
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
461
+ mockCloudClient = clientReturning([
464
462
  { id: "conn-personal", account_label: "user@example.com" },
465
463
  { id: "conn-work", account_label: "work@example.com" },
466
464
  ]);
@@ -475,8 +473,8 @@ describe("resolveOAuthConnectionWithMeta multi-account visibility", () => {
475
473
  });
476
474
 
477
475
  test("managed: account passed disambiguates and clears the warning", async () => {
478
- mockProvider!.managedServiceConfigKey = "google-oauth";
479
- mockPlatformClient = clientReturning([
476
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
477
+ mockCloudClient = clientReturning([
480
478
  { id: "conn-work", account_label: "work@example.com" },
481
479
  ]);
482
480
 
@@ -488,8 +486,8 @@ describe("resolveOAuthConnectionWithMeta multi-account visibility", () => {
488
486
  });
489
487
 
490
488
  test("managed: single connection is never ambiguous", async () => {
491
- mockProvider!.managedServiceConfigKey = "google-oauth";
492
- mockPlatformClient = clientReturning([
489
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
490
+ mockCloudClient = clientReturning([
493
491
  { id: "conn-only", account_label: "user@example.com" },
494
492
  ]);
495
493
 
@@ -632,8 +630,8 @@ describe("no-match error lists available accounts", () => {
632
630
  });
633
631
 
634
632
  test("managed: names the provider's active accounts when the requested account misses", async () => {
635
- mockProvider!.managedServiceConfigKey = "google-oauth";
636
- mockPlatformClient = clientReturning([
633
+ mockProvider!.cloudServiceConfigKey = "google-oauth";
634
+ mockCloudClient = clientReturning([
637
635
  { id: "conn-personal", account_label: "user@example.com" },
638
636
  { id: "conn-work", account_label: "other@example.org" },
639
637
  ]);
@@ -758,29 +756,29 @@ describe("resolveEffectiveBaseUrl", () => {
758
756
  });
759
757
  });
760
758
 
761
- describe("platformProxyBaseUrl", () => {
759
+ describe("cloudProxyBaseUrl", () => {
762
760
  test("forwards a concrete seed base URL", () => {
763
- expect(platformProxyBaseUrl("https://api.figma.com")).toBe(
761
+ expect(cloudProxyBaseUrl("https://api.figma.com")).toBe(
764
762
  "https://api.figma.com",
765
763
  );
766
764
  });
767
765
 
768
- test("withholds a templated base URL so the platform fills it", () => {
766
+ test("withholds a templated base URL so the cloud fills it", () => {
769
767
  // Shopify's host and QuickBooks' realm are pinned to the connection on
770
- // the platform. Forwarding the unfilled template would fail the proxy's
771
- // allowlist check and shadow the platform's own default.
772
- expect(platformProxyBaseUrl("https://{tenant_host}")).toBeUndefined();
768
+ // the cloud. Forwarding the unfilled template would fail the proxy's
769
+ // allowlist check and shadow the cloud's own default.
770
+ expect(cloudProxyBaseUrl("https://{tenant_host}")).toBeUndefined();
773
771
  expect(
774
- platformProxyBaseUrl(
772
+ cloudProxyBaseUrl(
775
773
  "https://quickbooks.api.intuit.com/v3/company/{realm_id}",
776
774
  ),
777
775
  ).toBeUndefined();
778
776
  });
779
777
 
780
778
  test("treats a missing base URL as no override", () => {
781
- expect(platformProxyBaseUrl(undefined)).toBeUndefined();
782
- expect(platformProxyBaseUrl(null)).toBeUndefined();
783
- expect(platformProxyBaseUrl("")).toBeUndefined();
779
+ expect(cloudProxyBaseUrl(undefined)).toBeUndefined();
780
+ expect(cloudProxyBaseUrl(null)).toBeUndefined();
781
+ expect(cloudProxyBaseUrl("")).toBeUndefined();
784
782
  });
785
783
  });
786
784
 
@@ -1,17 +1,17 @@
1
+ import { CadetCloudClient } from "../cloud/client.js";
1
2
  import { getConfig } from "../config/loader.js";
2
3
  import {
3
4
  getServiceMode,
4
5
  type Services,
5
6
  ServicesSchema,
6
7
  } from "../config/schemas/services.js";
7
- import { CadetPlatformClient } from "../platform/client.js";
8
8
  import { getLogger } from "../util/logger.js";
9
9
  import { BYOOAuthConnection, type BYOTokenHeader } from "./byo-connection.js";
10
+ import { CloudOAuthConnection } from "./cloud-connection.js";
10
11
  import type { OAuthConnection } from "./connection.js";
11
12
  import { getConnectionAccessTokenResult } from "./credential-token-resolver.js";
12
13
  import { syncManualTokenConnection } from "./manual-token-connection.js";
13
14
  import { getActiveConnections, getProvider } from "./oauth-store.js";
14
- import { PlatformOAuthConnection } from "./platform-connection.js";
15
15
  import { scopeDifference } from "./scope-utils.js";
16
16
 
17
17
  const log = getLogger("connection-resolver");
@@ -68,7 +68,7 @@ export interface OAuthConnectionResolution {
68
68
  * Maps to the `provider_key` primary key in the `oauth_providers` table.
69
69
  * @param options.clientId - Optional OAuth app client ID. When multiple BYO
70
70
  * apps exist for the same provider, narrows the connection lookup to the
71
- * app matching this client ID. Ignored for managed providers.
71
+ * app matching this client ID. Ignored for cloud providers.
72
72
  * @param options.account - Optional account identifier to disambiguate
73
73
  * multi-account connections.
74
74
  */
@@ -87,8 +87,8 @@ export async function resolveOAuthConnection(
87
87
  * Resolve an OAuthConnection along with the account that served it and whether
88
88
  * the selection was ambiguous.
89
89
  *
90
- * Managed providers (where the service config `mode` is `"managed"`) are
91
- * routed through the platform proxy with no local state required.
90
+ * Cloud providers (where the service config `mode` is `"managed"`) are
91
+ * routed through the cloud proxy with no local state required.
92
92
  *
93
93
  * BYO providers resolve from the local SQLite oauth-store and require an
94
94
  * active connection row and a stored access token.
@@ -99,18 +99,18 @@ export async function resolveOAuthConnectionWithMeta(
99
99
  ): Promise<OAuthConnectionResolution> {
100
100
  const { clientId, account, requiredScopes } = options ?? {};
101
101
  const providerRow = getProvider(provider);
102
- const managedKey = providerRow?.managedServiceConfigKey;
102
+ const managedKey = providerRow?.cloudServiceConfigKey;
103
103
 
104
104
  if (managedKey && managedKey in ServicesSchema.shape) {
105
105
  const services: Services = getConfig().services;
106
106
  if (getServiceMode(services, managedKey as keyof Services) === "managed") {
107
- const client = await CadetPlatformClient.create();
108
- if (!client || !client.platformAssistantId) {
107
+ const client = await CadetCloudClient.create();
108
+ if (!client || !client.cloudAssistantId) {
109
109
  const detail = !client
110
110
  ? "missing platform prerequisites"
111
111
  : "missing assistant ID";
112
112
  throw new Error(
113
- `Platform-managed connection for "${provider}" cannot be created: ${detail}. ` +
113
+ `Cloud connection for "${provider}" cannot be created: ${detail}. ` +
114
114
  `Log in to Cadet Cloud or switch to using your own OAuth app.`,
115
115
  );
116
116
  }
@@ -122,7 +122,7 @@ export async function resolveOAuthConnectionWithMeta(
122
122
  requiredScopes,
123
123
  });
124
124
 
125
- const connection = new PlatformOAuthConnection({
125
+ const connection = new CloudOAuthConnection({
126
126
  id: provider,
127
127
  provider,
128
128
  externalId: provider,
@@ -130,9 +130,9 @@ export async function resolveOAuthConnectionWithMeta(
130
130
  client,
131
131
  connectionId: resolution.id,
132
132
  // A templated base URL (`https://{tenant_host}`, `.../{realm_id}`) is
133
- // filled in by the platform from what it pinned to the connection;
133
+ // filled in by the cloud from what it pinned to the connection;
134
134
  // sent as-is it would fail the proxy's allowlist and shadow that.
135
- baseUrl: platformProxyBaseUrl(providerRow?.baseUrl),
135
+ baseUrl: cloudProxyBaseUrl(providerRow?.baseUrl),
136
136
  });
137
137
  return {
138
138
  connection,
@@ -321,15 +321,15 @@ function hostMatchesPattern(host: string, pattern: string): boolean {
321
321
  }
322
322
 
323
323
  /**
324
- * The base URL a managed connection sends to the platform proxy, or
324
+ * The base URL a cloud connection sends to the cloud proxy, or
325
325
  * `undefined` to let the proxy use the provider's configured default.
326
326
  *
327
- * Per-tenant and per-realm providers seed a template the platform fills from
327
+ * Per-tenant and per-realm providers seed a template the cloud fills from
328
328
  * the connection (`{tenant_host}`, `{realm_id}`). Forwarding the unfilled
329
329
  * template would fail the proxy's allowlist check, so those fall through to
330
- * the platform's own default.
330
+ * the cloud's own default.
331
331
  */
332
- export function platformProxyBaseUrl(
332
+ export function cloudProxyBaseUrl(
333
333
  seedBaseUrl: string | null | undefined,
334
334
  ): string | undefined {
335
335
  if (!seedBaseUrl || /\{[a-z_]+\}/.test(seedBaseUrl)) {
@@ -403,7 +403,7 @@ function parseConnectionMetadata(
403
403
  // ---------------------------------------------------------------------------
404
404
 
405
405
  interface ResolvePlatformConnectionIdOptions {
406
- client: CadetPlatformClient;
406
+ client: CadetCloudClient;
407
407
  provider: string;
408
408
  account?: string;
409
409
  requiredScopes?: string[];
@@ -412,7 +412,7 @@ interface ResolvePlatformConnectionIdOptions {
412
412
  interface PlatformConnectionEntry {
413
413
  id: string;
414
414
  account_label?: string | null;
415
- /** Scopes the platform actually granted this connection. May be absent for
415
+ /** Scopes the cloud actually granted this connection. May be absent for
416
416
  * older connections or providers that don't report scopes. */
417
417
  scopes_granted?: string[] | null;
418
418
  /** Provider-supplied values the connection is scoped by (QuickBooks'
@@ -437,11 +437,11 @@ function platformConnectionLabel(entry: PlatformConnectionEntry): string {
437
437
  }
438
438
 
439
439
  /**
440
- * Fetch active cloud connections for a managed provider by calling the
440
+ * Fetch active cloud connections for a cloud provider by calling the
441
441
  * List Connections endpoint.
442
442
  */
443
443
  async function fetchPlatformConnections(options: {
444
- client: CadetPlatformClient;
444
+ client: CadetCloudClient;
445
445
  provider: string;
446
446
  accountIdentifier?: string;
447
447
  }): Promise<PlatformConnectionEntry[]> {
@@ -453,7 +453,7 @@ async function fetchPlatformConnections(options: {
453
453
  params.set("account_identifier", accountIdentifier);
454
454
  }
455
455
 
456
- const path = `/v1/assistants/${client.platformAssistantId}/oauth/connections/?${params.toString()}`;
456
+ const path = `/v1/assistants/${client.cloudAssistantId}/oauth/connections/?${params.toString()}`;
457
457
  const response = await client.fetch(path);
458
458
 
459
459
  if (!response.ok) {
@@ -475,7 +475,7 @@ async function fetchPlatformConnections(options: {
475
475
  }
476
476
 
477
477
  /**
478
- * Fetch the platform-side connection ID for a managed provider by calling
478
+ * Fetch the cloud-side connection ID for a cloud provider by calling
479
479
  * the List Connections endpoint.
480
480
  */
481
481
  async function resolvePlatformConnectionId(
@@ -8,7 +8,7 @@ export interface OAuthConnectionRequest {
8
8
  * where rebuilding {@link OAuthConnectionRequest.query} would reorder
9
9
  * interleaved repeated keys, rewrite `%20` as `+`, and give a valueless flag
10
10
  * an `=`. An empty one falls through to `query`. Honored by BYO connections;
11
- * a managed connection sends `query` to the platform proxy, which rebuilds
11
+ * a cloud connection sends `query` to the cloud proxy, which rebuilds
12
12
  * it.
13
13
  */
14
14
  rawQuery?: string;