@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
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * These routes provide higher-level credential operations (list with metadata,
5
5
  * inspect, reveal, set, delete, status) that compose the lower-level secret
6
- * storage primitives with metadata, OAuth connections, and platform-managed
6
+ * storage primitives with metadata, OAuth connections, and cloud-managed
7
7
  * credential catalogs.
8
8
  *
9
9
  * POST /v1/credentials/list — list all credentials with metadata
@@ -19,9 +19,9 @@ import { z } from "zod";
19
19
  import { AcpCredentialFormatError } from "../../acp/acp-credentials.js";
20
20
  import { isAssistantFeatureFlagEnabled } from "../../config/assistant-feature-flags.js";
21
21
  import {
22
- fetchManagedCatalog,
23
- type ManagedCredentialDescriptor,
24
- } from "../../credential-execution/managed-catalog.js";
22
+ type CloudCredentialDescriptor,
23
+ fetchCloudCatalog,
24
+ } from "../../credential-execution/cloud-catalog.js";
25
25
  import { buildForChatSentinel } from "../../daemon/chat-credential-redaction.js";
26
26
  import { invalidateEmailReadinessForByoCredential } from "../../email/byo-email-credential.js";
27
27
  import {
@@ -53,17 +53,17 @@ import {
53
53
  import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
54
54
  import { recordForChatMint } from "../for-chat-mint-registry.js";
55
55
  import { recordRevealSuccess } from "../reveal-success-registry.js";
56
+ import {
57
+ isPlatformCloudCredential,
58
+ type PlatformCloudCredentialAction,
59
+ platformCloudCredentialRefusal,
60
+ } from "./cloud-credentials.js";
56
61
  import {
57
62
  assertCredentialNotInUse,
58
63
  invalidateConnectionsAfterCredentialDelete,
59
64
  } from "./credential-in-use.js";
60
65
  import { InjectionTemplateSchema } from "./credential-prompt-routes.js";
61
66
  import { BadRequestError, ForbiddenError, InternalError } from "./errors.js";
62
- import {
63
- isPlatformManagedCredential,
64
- type PlatformManagedCredentialAction,
65
- platformManagedCredentialRefusal,
66
- } from "./platform-managed-credentials.js";
67
67
  import type { RouteDefinition, RouteHandlerArgs } from "./types.js";
68
68
 
69
69
  // ---------------------------------------------------------------------------
@@ -134,8 +134,8 @@ function buildCredentialOutput(
134
134
  return output;
135
135
  }
136
136
 
137
- function buildManagedCredentialOutput(
138
- descriptor: ManagedCredentialDescriptor,
137
+ function buildCloudCredentialOutput(
138
+ descriptor: CloudCredentialDescriptor,
139
139
  ): Record<string, unknown> {
140
140
  return {
141
141
  source: "platform",
@@ -162,10 +162,10 @@ interface CredentialLookup {
162
162
  /**
163
163
  * Resolve a credential lookup from service+field or UUID.
164
164
  * Throws BadRequestError when neither is provided or the UUID is not found,
165
- * and ForbiddenError for a credential the platform owns.
165
+ * and ForbiddenError for a credential the cloud owns.
166
166
  *
167
167
  * Every read handler that returns credential material (inspect, reveal)
168
- * resolves through here, so the platform-managed refusal sits at the single
168
+ * resolves through here, so the cloud-managed refusal sits at the single
169
169
  * point they share and cannot drift apart from the list filter.
170
170
  */
171
171
  function resolveCredentialLookup(
@@ -205,24 +205,24 @@ function resolveCredentialLookup(
205
205
  }
206
206
 
207
207
  /**
208
- * Refuse any use of a credential the platform provisions for itself, whatever
208
+ * Refuse any use of a credential the cloud provisions for itself, whatever
209
209
  * the calling principal. Reads are refused because the API key spends
210
210
  * inference on Cadet's account. Writes are refused because they are a read
211
- * by another name: repointing `cadet:platform_base_url` sends the next
212
- * platform call, bearing that same key, to a host of the writer's choosing.
211
+ * they are owned by the cloud's own provisioning; a hand-set key or
212
+ * identity id would silently misroute or impersonate every platform call.
213
213
  *
214
- * The platform's own provisioning does not come through here. It writes over
214
+ * The cloud's own provisioning does not come through here. It writes over
215
215
  * `POST /v1/secrets` (Django to vembda to the pod), as does the CLI and the
216
216
  * local-mode connect flow in the web client.
217
217
  */
218
218
  function assertNotPlatformManaged(
219
219
  service: string,
220
220
  field: string,
221
- action: PlatformManagedCredentialAction,
221
+ action: PlatformCloudCredentialAction,
222
222
  ): void {
223
- if (isPlatformManagedCredential(service, field)) {
223
+ if (isPlatformCloudCredential(service, field)) {
224
224
  throw new ForbiddenError(
225
- platformManagedCredentialRefusal(service, field, action),
225
+ platformCloudCredentialRefusal(service, field, action),
226
226
  );
227
227
  }
228
228
  }
@@ -245,7 +245,7 @@ async function handleCredentialsList({ body }: RouteHandlerArgs) {
245
245
  // Platform-provisioned credentials are not the user's to act on, so they
246
246
  // never become a Settings row (and never a click-to-reveal).
247
247
  let allMetadata = live.records.filter(
248
- (m) => !isPlatformManagedCredential(m.service, m.field),
248
+ (m) => !isPlatformCloudCredential(m.service, m.field),
249
249
  );
250
250
 
251
251
  if (search) {
@@ -290,9 +290,9 @@ async function handleCredentialsList({ body }: RouteHandlerArgs) {
290
290
  }),
291
291
  );
292
292
 
293
- // Fetch platform-managed credentials (best-effort).
294
- const managedResult = await fetchManagedCatalog();
295
- let managedCredentials: Record<string, unknown>[] = [];
293
+ // Fetch cloud credentials (best-effort).
294
+ const managedResult = await fetchCloudCatalog();
295
+ let cloudCredentials: Record<string, unknown>[] = [];
296
296
  if (managedResult.ok && managedResult.descriptors.length > 0) {
297
297
  let descriptors = managedResult.descriptors;
298
298
  if (search) {
@@ -304,10 +304,10 @@ async function handleCredentialsList({ body }: RouteHandlerArgs) {
304
304
  (d.accountInfo ?? "").toLowerCase().includes(query),
305
305
  );
306
306
  }
307
- managedCredentials = descriptors.map(buildManagedCredentialOutput);
307
+ cloudCredentials = descriptors.map(buildCloudCredentialOutput);
308
308
  }
309
309
 
310
- return { credentials, managedCredentials };
310
+ return { credentials, cloudCredentials };
311
311
  }
312
312
 
313
313
  async function handleCredentialsInspect({ body }: RouteHandlerArgs) {
@@ -625,7 +625,7 @@ export const ROUTES: RouteDefinition[] = [
625
625
  },
626
626
  summary: "List all credentials with metadata",
627
627
  description:
628
- "Return credentials from the live credential vault, with OAuth connection info and platform-managed credentials. Fails if the vault is unreachable.",
628
+ "Return credentials from the live credential vault, with OAuth connection info and cloud credentials. Fails if the vault is unreachable.",
629
629
  tags: ["credentials"],
630
630
  requestBody: z.object({
631
631
  search: z.string().optional().describe("Filter by substring match"),
@@ -634,9 +634,7 @@ export const ROUTES: RouteDefinition[] = [
634
634
  credentials: z
635
635
  .array(z.unknown())
636
636
  .describe("Local credentials with metadata"),
637
- managedCredentials: z
638
- .array(z.unknown())
639
- .describe("Platform-managed credentials"),
637
+ cloudCredentials: z.array(z.unknown()).describe("Cloud credentials"),
640
638
  }),
641
639
  handler: handleCredentialsList,
642
640
  },
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * The dedicated PUT exists because the generic config write paths parse
9
9
  * `llm.default` as a partial fragment — a provider the matrix cannot
10
- * implement is silently dropped or clamped to the managed column on the next
10
+ * implement is silently dropped or clamped to the cloud column on the next
11
11
  * reparse instead of rejected. This route strict-parses and fails loudly.
12
12
  *
13
13
  * Availability is reported, never enforced: a dangling connection pin is a
@@ -14,7 +14,7 @@ import { ROUTES } from "./desktop-setup-routes.js";
14
14
  import { NotFoundError } from "./errors.js";
15
15
 
16
16
  const originalContainerized = process.env.IS_CONTAINERIZED;
17
- const originalPlatform = process.env.IS_PLATFORM;
17
+ const originalPlatform = process.env.IS_CLOUD;
18
18
  const status = spyOn(desktopDependencies, "getStatus");
19
19
 
20
20
  afterAll(() => {
@@ -23,7 +23,7 @@ afterAll(() => {
23
23
 
24
24
  beforeEach(() => {
25
25
  process.env.IS_CONTAINERIZED = "true";
26
- process.env.IS_PLATFORM = "true";
26
+ process.env.IS_CLOUD = "true";
27
27
  status.mockReturnValue({ state: "ready" });
28
28
  });
29
29
 
@@ -34,9 +34,9 @@ afterEach(() => {
34
34
  process.env.IS_CONTAINERIZED = originalContainerized;
35
35
  }
36
36
  if (originalPlatform === undefined) {
37
- delete process.env.IS_PLATFORM;
37
+ delete process.env.IS_CLOUD;
38
38
  } else {
39
- process.env.IS_PLATFORM = originalPlatform;
39
+ process.env.IS_CLOUD = originalPlatform;
40
40
  }
41
41
  setOverridesForTesting({});
42
42
  status.mockClear();
@@ -62,7 +62,7 @@ describe("desktop setup route feature gate", () => {
62
62
  });
63
63
 
64
64
  test(`${route.method} rejects self-hosted Docker assistants without inspecting dependencies`, () => {
65
- process.env.IS_PLATFORM = "false";
65
+ process.env.IS_CLOUD = "false";
66
66
  setOverridesForTesting({ "assistant-desktop": true });
67
67
  expect(() => route.handler({})).toThrow(NotFoundError);
68
68
  expect(status).not.toHaveBeenCalled();
@@ -23,7 +23,7 @@ export const ROUTES: RouteDefinition[] = ["GET", "POST"].map((method) => ({
23
23
  handler: () => {
24
24
  if (!isVirtualDesktopEnabled()) {
25
25
  throw new NotFoundError(
26
- "Virtual desktop is available only on enabled platform-hosted assistants",
26
+ "Virtual desktop is available only on enabled cloud-hosted assistants",
27
27
  );
28
28
  }
29
29
  const status = desktopDependencies.getStatus();
@@ -7,14 +7,9 @@
7
7
 
8
8
  import { z } from "zod";
9
9
 
10
+ import { CadetCloudClient } from "../../cloud/client.js";
10
11
  import { getApexDomain } from "../../config/env.js";
11
- import {
12
- getConfig,
13
- loadRawConfig,
14
- saveRawConfig,
15
- setNestedValue,
16
- } from "../../config/loader.js";
17
- import { CadetPlatformClient } from "../../platform/client.js";
12
+ import { getConfig, setConfigSection } from "../../config/loader.js";
18
13
  import { getLogger } from "../../util/logger.js";
19
14
  import { LOCAL_PRINCIPALS } from "../auth/route-policy.js";
20
15
  import { BadRequestError, RouteError, UnauthorizedError } from "./errors.js";
@@ -53,14 +48,14 @@ const DomainVerificationStatusResponseSchema = z.object({
53
48
 
54
49
  // ── Helpers ───────────────────────────────────────────────────────────
55
50
 
56
- async function requireClient(): Promise<CadetPlatformClient> {
57
- const client = await CadetPlatformClient.create();
51
+ async function requireClient(): Promise<CadetCloudClient> {
52
+ const client = await CadetCloudClient.create();
58
53
  if (!client) {
59
54
  throw new UnauthorizedError(
60
55
  "Platform credentials not configured. Run: assistant cloud connect",
61
56
  );
62
57
  }
63
- if (!client.platformAssistantId) {
58
+ if (!client.cloudAssistantId) {
64
59
  throw new UnauthorizedError(
65
60
  "Assistant ID not configured. Run: assistant cloud connect",
66
61
  );
@@ -69,10 +64,10 @@ async function requireClient(): Promise<CadetPlatformClient> {
69
64
  }
70
65
 
71
66
  async function fetchDomains(
72
- client: CadetPlatformClient,
67
+ client: CadetCloudClient,
73
68
  ): Promise<DomainListResponse> {
74
69
  const response = await client.fetch(
75
- `/v1/assistants/${client.platformAssistantId}/domains/`,
70
+ `/v1/assistants/${client.cloudAssistantId}/domains/`,
76
71
  );
77
72
 
78
73
  if (!response.ok) {
@@ -106,7 +101,7 @@ async function handleDomainRegister({ body = {} }: RouteHandlerArgs) {
106
101
  }
107
102
 
108
103
  const response = await client.fetch(
109
- `/v1/assistants/${client.platformAssistantId}/domains/`,
104
+ `/v1/assistants/${client.cloudAssistantId}/domains/`,
110
105
  {
111
106
  method: "POST",
112
107
  headers: { "Content-Type": "application/json" },
@@ -140,9 +135,10 @@ async function handleDomainRegister({ body = {} }: RouteHandlerArgs) {
140
135
  const registeredSubdomain =
141
136
  data.subdomain ?? data.domain?.replace(`.${apexDomain}`, "") ?? subdomain;
142
137
  if (registeredSubdomain) {
143
- const raw = loadRawConfig();
144
- setNestedValue(raw, "platform.subdomain", registeredSubdomain);
145
- saveRawConfig(raw);
138
+ setConfigSection("cloud", {
139
+ ...getConfig().cloud,
140
+ subdomain: registeredSubdomain,
141
+ });
146
142
  }
147
143
 
148
144
  return data;
@@ -160,10 +156,8 @@ async function handleDomainStatus(_args: RouteHandlerArgs) {
160
156
  const first = domains[0];
161
157
  const sub = first.subdomain ?? first.domain?.replace(`.${apexDomain}`, "");
162
158
  if (sub) {
163
- if (getConfig().platform.subdomain !== sub) {
164
- const raw = loadRawConfig();
165
- setNestedValue(raw, "platform.subdomain", sub);
166
- saveRawConfig(raw);
159
+ if (getConfig().cloud.subdomain !== sub) {
160
+ setConfigSection("cloud", { ...getConfig().cloud, subdomain: sub });
167
161
  }
168
162
  }
169
163
  }
@@ -190,7 +184,7 @@ async function handleDomainVerificationStatus({ body = {} }: RouteHandlerArgs) {
190
184
  }
191
185
 
192
186
  const response = await client.fetch(
193
- `/v1/assistants/${client.platformAssistantId}/domains/${encodeURIComponent(domain_id)}/verification-status/`,
187
+ `/v1/assistants/${client.cloudAssistantId}/domains/${encodeURIComponent(domain_id)}/verification-status/`,
194
188
  );
195
189
 
196
190
  if (!response.ok) {
@@ -7,6 +7,7 @@
7
7
 
8
8
  import { z } from "zod";
9
9
 
10
+ import { CadetCloudClient } from "../../cloud/client.js";
10
11
  import { getReadinessService } from "../../daemon/handlers/config-channels.js";
11
12
  import { markdownToEmailHtml } from "../../email/html-renderer.js";
12
13
  import {
@@ -14,7 +15,6 @@ import {
14
15
  listEmailAddresses,
15
16
  type RegisteredEmailAddress,
16
17
  } from "../../email/registered-inbox.js";
17
- import { CadetPlatformClient } from "../../platform/client.js";
18
18
  import { LOCAL_PRINCIPALS } from "../auth/route-policy.js";
19
19
  import {
20
20
  BadRequestError,
@@ -26,14 +26,14 @@ import type { RouteDefinition, RouteHandlerArgs } from "./types.js";
26
26
 
27
27
  // ── Helpers ───────────────────────────────────────────────────────────
28
28
 
29
- async function requireClient(): Promise<CadetPlatformClient> {
30
- const client = await CadetPlatformClient.create();
29
+ async function requireClient(): Promise<CadetCloudClient> {
30
+ const client = await CadetCloudClient.create();
31
31
  if (!client) {
32
32
  throw new UnauthorizedError(
33
33
  "Platform credentials not configured. Run: assistant cloud connect",
34
34
  );
35
35
  }
36
- if (!client.platformAssistantId) {
36
+ if (!client.cloudAssistantId) {
37
37
  throw new UnauthorizedError(
38
38
  "Assistant ID not configured. Run: assistant cloud connect",
39
39
  );
@@ -48,7 +48,7 @@ async function handleEmailRegister({ body = {} }: RouteHandlerArgs) {
48
48
  const client = await requireClient();
49
49
 
50
50
  const response = await client.fetch(
51
- `/v1/assistants/${client.platformAssistantId}/email-addresses/`,
51
+ `/v1/assistants/${client.cloudAssistantId}/email-addresses/`,
52
52
  {
53
53
  method: "POST",
54
54
  headers: { "Content-Type": "application/json" },
@@ -92,10 +92,10 @@ function invalidateEmailReadinessState(): void {
92
92
 
93
93
  /**
94
94
  * The registered addresses, or the route-appropriate error: a listing
95
- * failure maps to LIST_FAILED with the platform's status when it sent one.
95
+ * failure maps to LIST_FAILED with the cloud's status when it sent one.
96
96
  */
97
97
  async function requireEmailAddressList(
98
- client: CadetPlatformClient,
98
+ client: CadetCloudClient,
99
99
  ): Promise<RegisteredEmailAddress[]> {
100
100
  const list = await listEmailAddresses(client);
101
101
  if (!list.ok) {
@@ -119,7 +119,7 @@ async function handleEmailUnregister(_args: RouteHandlerArgs) {
119
119
  const target = addresses[0];
120
120
 
121
121
  const deleteResponse = await client.fetch(
122
- `/v1/assistants/${client.platformAssistantId}/email-addresses/${target.id}/`,
122
+ `/v1/assistants/${client.cloudAssistantId}/email-addresses/${target.id}/`,
123
123
  { method: "DELETE" },
124
124
  );
125
125
 
@@ -153,7 +153,7 @@ async function handleEmailStatus(_args: RouteHandlerArgs) {
153
153
  const target = addresses[0];
154
154
 
155
155
  const statusResponse = await client.fetch(
156
- `/v1/assistants/${client.platformAssistantId}/email-addresses/${target.id}/status/`,
156
+ `/v1/assistants/${client.cloudAssistantId}/email-addresses/${target.id}/status/`,
157
157
  );
158
158
 
159
159
  if (!statusResponse.ok) {
@@ -198,7 +198,7 @@ async function handleEmailList({ queryParams = {} }: RouteHandlerArgs) {
198
198
  }
199
199
 
200
200
  const qs = params.toString();
201
- const path = `/v1/assistants/${client.platformAssistantId}/emails/${qs ? `?${qs}` : ""}`;
201
+ const path = `/v1/assistants/${client.cloudAssistantId}/emails/${qs ? `?${qs}` : ""}`;
202
202
  const response = await client.fetch(path);
203
203
 
204
204
  if (!response.ok) {
@@ -222,7 +222,7 @@ async function handleEmailDownload({ queryParams = {} }: RouteHandlerArgs) {
222
222
  const { messageId } = queryParams;
223
223
 
224
224
  const response = await client.fetch(
225
- `/v1/assistants/${client.platformAssistantId}/emails/${messageId}/`,
225
+ `/v1/assistants/${client.cloudAssistantId}/emails/${messageId}/`,
226
226
  );
227
227
 
228
228
  if (!response.ok) {
@@ -344,7 +344,7 @@ async function handleEmailAttachmentList({
344
344
  const { messageId } = queryParams;
345
345
 
346
346
  const response = await client.fetch(
347
- `/v1/assistants/${client.platformAssistantId}/emails/${messageId}/attachments/`,
347
+ `/v1/assistants/${client.cloudAssistantId}/emails/${messageId}/attachments/`,
348
348
  );
349
349
 
350
350
  if (!response.ok) {
@@ -370,7 +370,7 @@ async function handleEmailAttachmentGet({
370
370
  const { messageId, attachmentId } = queryParams;
371
371
 
372
372
  const response = await client.fetch(
373
- `/v1/assistants/${client.platformAssistantId}/emails/${messageId}/attachments/${attachmentId}/download/`,
373
+ `/v1/assistants/${client.cloudAssistantId}/emails/${messageId}/attachments/${attachmentId}/download/`,
374
374
  );
375
375
 
376
376
  if (!response.ok) {
@@ -14,7 +14,7 @@ export class RouteError extends Error {
14
14
  * Optional structured payload surfaced to clients in the standard
15
15
  * error envelope as `error.details`. Use sparingly — only when the
16
16
  * client genuinely needs machine-readable context beyond `code` and
17
- * `message` (e.g. mirroring a platform-side response shape).
17
+ * `message` (e.g. mirroring a cloud-side response shape).
18
18
  */
19
19
  readonly details?: unknown;
20
20
 
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The tunnel is the gateway's outbound public-ingress transport. It is only
5
5
  * used to tunnel inbound Twilio webhooks and live voice/audio WebSockets to
6
- * this assistant — it plays no part in cloud credentials or the managed
6
+ * this assistant — it plays no part in cloud credentials or the cloud
7
7
  * LLM proxy. The handler reads the live status from the gateway over the local
8
8
  * IPC socket, so the assistant does not need gateway signing material.
9
9
  *
@@ -7,7 +7,7 @@ import { totalmem } from "node:os";
7
7
 
8
8
  import { z } from "zod";
9
9
 
10
- import { getIsPlatform } from "../../config/env-registry.js";
10
+ import { getIsCloud } from "../../config/env-registry.js";
11
11
  import { getDbMigrationReadiness } from "../../daemon/daemon-readiness.js";
12
12
  import { parseIdentityFields } from "../../daemon/handlers/identity.js";
13
13
  import { getProfilerRuntimeStatus } from "../../daemon/profiler-run-store.js";
@@ -59,7 +59,7 @@ function getMemoryInfo(): MemoryInfo {
59
59
  try {
60
60
  const bytesToMb = (b: number) =>
61
61
  Math.round((b / (1024 * 1024)) * 100) / 100;
62
- // In platform-managed mode the daemon shares its Node process with whatever
62
+ // In cloud-managed mode the daemon shares its Node process with whatever
63
63
  // the container is doing as a whole; `process.memoryUsage().rss` only sees
64
64
  // this process's resident set, which understates the container footprint
65
65
  // operators care about. Read the cgroup usage file directly so /v1/health
@@ -67,7 +67,7 @@ function getMemoryInfo(): MemoryInfo {
67
67
  // can't be sampled, fall back to the cgroup usage (if any) before reporting 0
68
68
  // — the metric is best-effort and must never fail the probe.
69
69
  const currentBytes =
70
- (getIsPlatform() ? getContainerMemoryUsageBytes() : null) ??
70
+ (getIsCloud() ? getContainerMemoryUsageBytes() : null) ??
71
71
  sampleProcessRssBytes() ??
72
72
  getContainerMemoryUsageBytes() ??
73
73
  0;
@@ -421,7 +421,7 @@ export async function handleChannelInbound({
421
421
  // Canonicalize the sender identity so all trust lookups, member matching,
422
422
  // and guardian binding comparisons use a normalized form. Phone-like
423
423
  // channels (voice, whatsapp) are normalized to E.164; non-phone
424
- // channels pass through the platform-stable ID unchanged.
424
+ // channels pass through the cloud-stable ID unchanged.
425
425
  const canonicalSenderId = rawSenderId
426
426
  ? canonicalizeInboundIdentity(sourceChannel, rawSenderId)
427
427
  : null;
@@ -128,7 +128,7 @@ export interface AclEnforcementParams {
128
128
  */
129
129
  isCallbackInteraction: boolean;
130
130
  /**
131
- * The platform named no actor for this event (the id is a channel's
131
+ * The cloud named no actor for this event (the id is a channel's
132
132
  * synthetic system identity). There is no identity claim to enforce, so
133
133
  * the ACL neither resolves a member nor denies: the family stage that
134
134
  * consumes such an event applies it only to a row the daemon already
@@ -204,7 +204,7 @@ describe("tryTranscribeAudioAttachments", () => {
204
204
  const audio = makeAudioAttachment("a1");
205
205
  mockAttachments = [audio];
206
206
  const managedMessage =
207
- "Managed speech needs a working Cadet Cloud connection — reconnect with 'assistant cloud connect'.";
207
+ "Cloud speech needs a working Cadet Cloud connection — reconnect with 'assistant cloud connect'.";
208
208
  mockTranscriber = {
209
209
  providerId: "cadet",
210
210
  boundaryId: "daemon-batch",
@@ -43,6 +43,7 @@ import { ROUTES as CHANNEL_SEND_ROUTES } from "./channel-send-routes.js";
43
43
  import { ROUTES as CHANNEL_VERIFICATION_ROUTES } from "./channel-verification-routes.js";
44
44
  import { ROUTES as CHATGPT_SUBSCRIPTION_AUTH_ROUTES } from "./chatgpt-subscription-auth-routes.js";
45
45
  import { ROUTES as CLIENT_ROUTES } from "./client-routes.js";
46
+ import { ROUTES as PLATFORM_ROUTES } from "./cloud-routes.js";
46
47
  import { ROUTES as COMPOSER_SETTINGS_ROUTES } from "./composer-settings-routes.js";
47
48
  import { ROUTES as CONSOLIDATION_ROUTES } from "./consolidation-routes.js";
48
49
  import { CONTACT_PROMPT_ROUTES } from "./contact-prompt-routes.js";
@@ -126,7 +127,6 @@ import { ROUTES as OAUTH_PROVIDERS_ROUTES } from "./oauth-providers.js";
126
127
  import { ROUTES as OAUTH_PROXY_GRANT_ROUTES } from "./oauth-proxy-grant-routes.js";
127
128
  import { ROUTES as OAUTH_PROXY_ROUTES } from "./oauth-proxy-routes.js";
128
129
  import { ROUTES as ONBOARDING_CHECKIN_ROUTES } from "./onboarding-checkin-routes.js";
129
- import { ROUTES as PLATFORM_ROUTES } from "./platform-routes.js";
130
130
  import { ROUTES as PLAYGROUND_ROUTES } from "./playground/index.js";
131
131
  import { ROUTES as PLUGINS_ROUTES } from "./plugins-routes.js";
132
132
  import { ROUTES as PROFILER_ROUTES } from "./profiler-routes.js";
@@ -13,7 +13,7 @@
13
13
  * identically.
14
14
  */
15
15
 
16
- import { getManagedUpstream } from "../../providers/cadet-model-routing.js";
16
+ import { getCloudUpstream } from "../../providers/cadet-model-routing.js";
17
17
  import { ROUTING_IDENTITY_PROVIDERS } from "../../providers/inference/auth.js";
18
18
  import type { ConnectionAvailability } from "../../providers/inference/connection-availability.js";
19
19
  import { cadetConnectionAvailability } from "../../providers/inference/connection-availability.js";
@@ -54,7 +54,7 @@ export function verifyProfileCommand(name: string): string {
54
54
 
55
55
  function managedAlternative(model: string, repair: ProfileRepairHint): string {
56
56
  const served =
57
- "this model is served by your signed-in Cadet-managed route (no API key needed)";
57
+ "this model is served by your signed-in Cadet Cloud route (no API key needed)";
58
58
  const quotedModel = shellQuote(model);
59
59
  switch (repair.kind) {
60
60
  case "create":
@@ -89,8 +89,8 @@ function byoSequence(provider: string): string {
89
89
 
90
90
  /**
91
91
  * Build the repair guidance for an unavailable selection: the exact
92
- * Cadet-managed alternative when the model is managed-routable and the
93
- * managed route is usable; otherwise key collection alone when a connection
92
+ * Cadet Cloud alternative when the model is managed-routable and the
93
+ * cloud route is usable; otherwise key collection alone when a connection
94
94
  * already exists and only its credential is missing, or the full
95
95
  * bring-your-own-key sequence when there is no connection at all.
96
96
  */
@@ -109,7 +109,7 @@ async function repairGuidance(
109
109
  if (ROUTING_IDENTITY_PROVIDERS.has(provider)) {
110
110
  return `Sign in to the "${provider}" route in Settings → Models & Services, or pick a profile backed by a provider API key, then retry.`;
111
111
  }
112
- if (model && getManagedUpstream(model) !== null) {
112
+ if (model && getCloudUpstream(model) !== null) {
113
113
  const managed = await cadetConnectionAvailability();
114
114
  if (managed.status === "ok") {
115
115
  return managedAlternative(model, repair);
@@ -12,7 +12,7 @@
12
12
  * the model must be in the catalog (unless `allowUnlisted`), a referenced
13
13
  * connection must exist, and the resulting profile must be able to dispatch
14
14
  * (unless `allowUnavailable`). Writes reuse the shared config-write plumbing
15
- * (`commitConfigWrite` + the managed-profile guards), so a CLI-created profile
15
+ * (`commitConfigWrite` + the cloud-profile guards), so a CLI-created profile
16
16
  * is completed/materialized identically to a UI-created one.
17
17
  */
18
18
 
@@ -62,8 +62,8 @@ import {
62
62
  import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
63
63
  import {
64
64
  commitConfigWrite,
65
- normalizeManagedProfileWrites,
66
- rejectManagedProfileDeletion,
65
+ normalizeCloudProfileWrites,
66
+ rejectCloudProfileDeletion,
67
67
  } from "./conversation-query-routes.js";
68
68
  import { BadRequestError, ConflictError, NotFoundError } from "./errors.js";
69
69
  import {
@@ -656,7 +656,7 @@ async function handleCreateProfile({ body = {} }: RouteHandlerArgs) {
656
656
  profiles[name] = entry;
657
657
  // Defensive: for a user-owned name this is a no-op; it re-asserts the
658
658
  // managed-name protection at the shared write choke point.
659
- normalizeManagedProfileWrites({ llm: { profiles: { [name]: entry } } });
659
+ normalizeCloudProfileWrites({ llm: { profiles: { [name]: entry } } });
660
660
 
661
661
  await commitConfigWrite(raw, "create inference profile");
662
662
 
@@ -698,14 +698,14 @@ async function handleUpdateProfile({
698
698
  if (!existing) {
699
699
  if (MANAGED_PROFILE_NAMES.has(name)) {
700
700
  throw new BadRequestError(
701
- `Cannot edit managed profile "${name}". Managed profiles are read-only; duplicate to a custom profile to customize.`,
701
+ `Cannot edit cloud profile "${name}". Cloud profiles are read-only; duplicate to a custom profile to customize.`,
702
702
  );
703
703
  }
704
704
  throw new NotFoundError(`Profile "${name}" not found.`);
705
705
  }
706
706
  if (MANAGED_PROFILE_NAMES.has(name) && existing.source === "managed") {
707
707
  throw new BadRequestError(
708
- `Cannot edit managed profile "${name}". Managed profiles are read-only; duplicate to a custom profile to customize.`,
708
+ `Cannot edit cloud profile "${name}". Cloud profiles are read-only; duplicate to a custom profile to customize.`,
709
709
  );
710
710
  }
711
711
 
@@ -799,7 +799,7 @@ async function handleUpdateProfile({
799
799
  }
800
800
 
801
801
  profiles[name] = merged;
802
- normalizeManagedProfileWrites({ llm: { profiles: { [name]: merged } } });
802
+ normalizeCloudProfileWrites({ llm: { profiles: { [name]: merged } } });
803
803
 
804
804
  await commitConfigWrite(raw, "update inference profile");
805
805
 
@@ -834,10 +834,10 @@ async function handleDeleteProfile({ pathParams = {} }: RouteHandlerArgs) {
834
834
  const llm = asPlainObject(raw.llm);
835
835
  const profiles = asPlainObject(llm?.profiles);
836
836
 
837
- // Reject deletion of a managed default with a clear message before the
837
+ // Reject deletion of a cloud default with a clear message before the
838
838
  // existence check, so `delete balanced` explains itself even when the
839
839
  // managed stub is on disk.
840
- rejectManagedProfileDeletion({ llm: { profiles: { [name]: null } } });
840
+ rejectCloudProfileDeletion({ llm: { profiles: { [name]: null } } });
841
841
 
842
842
  if (!profiles || profiles[name] === undefined) {
843
843
  throw new NotFoundError(`Profile "${name}" not found.`);
@@ -997,7 +997,7 @@ export const ROUTES: RouteDefinition[] = [
997
997
  additionalResponses: {
998
998
  "400": {
999
999
  description:
1000
- "Invalid fields, a profile that cannot serve requests, or attempt to edit a managed profile",
1000
+ "Invalid fields, a profile that cannot serve requests, or attempt to edit a cloud profile",
1001
1001
  },
1002
1002
  "404": { description: "Profile not found" },
1003
1003
  },
@@ -1018,7 +1018,7 @@ export const ROUTES: RouteDefinition[] = [
1018
1018
  pathParams: [{ name: "name", description: "Profile name" }],
1019
1019
  responseBody: z.object({ ok: z.literal(true), name: z.string() }),
1020
1020
  additionalResponses: {
1021
- "400": { description: "Attempt to delete a managed profile" },
1021
+ "400": { description: "Attempt to delete a cloud profile" },
1022
1022
  "404": { description: "Profile not found" },
1023
1023
  "409": {
1024
1024
  description: