@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
@@ -11,15 +11,14 @@
11
11
  import { afterEach, describe, expect, spyOn, test } from "bun:test";
12
12
 
13
13
  const loader = await import("../config/loader.js");
14
- const registration =
15
- await import("../inbound/platform-callback-registration.js");
14
+ const registration = await import("../inbound/cloud-callback-registration.js");
16
15
  const { resolveWebhookUrl } = await import("../plugin-api/webhook-url.js");
17
16
  const { runInPluginContext } =
18
17
  await import("../plugins/plugin-execution-context.js");
19
18
 
20
19
  describe("resolveWebhookUrl", () => {
21
20
  afterEach(() => {
22
- delete process.env.IS_PLATFORM;
21
+ delete process.env.IS_CLOUD;
23
22
  });
24
23
  test("composes the plugin's namespaced path and delegates the tier choice", async () => {
25
24
  const spy = spyOn(registration, "resolveCallbackUrl").mockResolvedValue(
@@ -79,7 +78,7 @@ describe("resolveWebhookUrl", () => {
79
78
  });
80
79
 
81
80
  test("gives routes that share a slug distinct registration types", async () => {
82
- // The platform keys a callback route by type, so a collision has the
81
+ // The cloud keys a callback route by type, so a collision has the
83
82
  // second registration replace the first. `events-v1` and `events_v1`
84
83
  // slugify identically.
85
84
  const spy = spyOn(registration, "resolveCallbackUrl").mockResolvedValue(
@@ -153,7 +152,7 @@ describe("resolveWebhookUrl", () => {
153
152
  // The Tunnel forwards the request path verbatim and the gateway
154
153
  // admits it only when it matches a claimed path byte for byte. A trailing
155
154
  // slash on this URL would be rejected before the gateway ever saw it.
156
- process.env.IS_PLATFORM = "true";
155
+ process.env.IS_CLOUD = "true";
157
156
  const configSpy = spyOn(loader, "getConfig").mockReturnValue({
158
157
  ingress: { publicBaseUrl: "https://tunnel.mycadet.ai/assistant-abc" },
159
158
  } as ReturnType<typeof loader.getConfig>);
@@ -49,6 +49,7 @@ const DEFAULTS_ABS = join(process.cwd(), DEFAULTS_REL);
49
49
  */
50
50
  const BASELINE: Record<string, readonly string[]> = {
51
51
  channel: ["../../types.js", "../injector-order.js"],
52
+ "cloud-hosted": ["node:fs/promises", "node:path"],
52
53
  compaction: [
53
54
  "../../../config/loader.js",
54
55
  "../../../config/schemas/compaction.js",
@@ -105,11 +106,6 @@ const BASELINE: Record<string, readonly string[]> = {
105
106
  "../../../../config/assistant-feature-flags.js",
106
107
  "../../../../config/default-profile-catalog.js",
107
108
  "../../../../config/loader.js",
108
- // Sibling of the already-sanctioned memory-v3-gate: `memoryTier()` is
109
- // defined as fully derived from that module's predicates, and the stats
110
- // route reports both (`graph_supported` is exactly `tier === "v3"`).
111
- // Re-deriving the tier inside the plugin would reintroduce exactly the
112
- // drift the shared module exists to prevent. No plugin-api equivalent.
113
109
  "../../../../config/memory-tier.js",
114
110
  "../../../../config/memory-v3-gate.js",
115
111
  "../../../../config/schema.js",
@@ -117,11 +113,6 @@ const BASELINE: Record<string, readonly string[]> = {
117
113
  "../../../../config/skill-state.js",
118
114
  "../../../../config/skills.js",
119
115
  "../../../../config/types.js",
120
- // Same host module the retrospective job couples to (the `../../../`
121
- // entry below): the sweep job and v2 router warm the guardian-delivery
122
- // cache before their sync `resolveUserName` reads so worker-process
123
- // prompts address the guardian instead of the default profile. No
124
- // plugin-api equivalent.
125
116
  "../../../../contacts/guardian-delivery-reader.js",
126
117
  "../../../../context/token-estimator.js",
127
118
  "../../../../daemon/conversation-error.js",
@@ -131,8 +122,6 @@ const BASELINE: Record<string, readonly string[]> = {
131
122
  "../../../../daemon/embedding-reconcile.js",
132
123
  "../../../../daemon/trust-context.js",
133
124
  "../../../../daemon/turn-latency-sub-spans.js",
134
- // mcp-setup capability cards list configured server names from the
135
- // workspace mcp.json document. No plugin-api equivalent.
136
125
  "../../../../mcp/workspace-mcp-config.js",
137
126
  "../../../../notifications/background-failure-signal.js",
138
127
  "../../../../persistence/checkpoints.js",
@@ -154,7 +143,7 @@ const BASELINE: Record<string, readonly string[]> = {
154
143
  "../../../../prompts/persona-resolver.js",
155
144
  "../../../../prompts/system-prompt.js",
156
145
  "../../../../prompts/template-detection.js",
157
- "../../../../providers/platform-proxy/context.js",
146
+ "../../../../providers/cloud-proxy/context.js",
158
147
  "../../../../runtime/assistant-event-hub.js",
159
148
  "../../../../runtime/auth/route-policy.js",
160
149
  "../../../../runtime/background-job-runner.js",
@@ -164,15 +153,15 @@ const BASELINE: Record<string, readonly string[]> = {
164
153
  "../../../../security/secret-scanner.js",
165
154
  "../../../../skills/catalog-cache.js",
166
155
  "../../../../telemetry/watchdog-events-store.js",
167
- "../../../../tools/skills/delete-managed.js",
156
+ "../../../../tools/skills/delete-cloud.js",
168
157
  "../../../../util/json.js",
169
158
  "../../../../util/logger.js",
170
159
  "../../../../util/platform.js",
171
160
  "../../../api/remember-tool.js",
172
161
  "../../../channels/types.js",
162
+ "../../../config/cloud-rehydration.js",
173
163
  "../../../config/loader.js",
174
164
  "../../../config/memory-v3-gate.js",
175
- "../../../config/platform-rehydration.js",
176
165
  "../../../config/schema.js",
177
166
  "../../../config/schemas/memory.js",
178
167
  "../../../config/types.js",
@@ -181,9 +170,6 @@ const BASELINE: Record<string, readonly string[]> = {
181
170
  "../../../context/strip-injections.js",
182
171
  "../../../context/token-estimator.js",
183
172
  "../../../conversations/job-handlers/summarization.js",
184
- // The standalone memory worker hosts real agent conversations, so its
185
- // entry point starts the same eviction sweep the daemon starts at
186
- // startup. No plugin-api equivalent.
187
173
  "../../../daemon/conversation-evictor.js",
188
174
  "../../../daemon/date-context.js",
189
175
  "../../../daemon/disk-pressure-background-gate.js",
@@ -196,8 +182,6 @@ const BASELINE: Record<string, readonly string[]> = {
196
182
  "../../../daemon/trust-context.js",
197
183
  "../../../home/job-handlers/conversation-starters.js",
198
184
  "../../../media/job-handlers/media-processing.js",
199
- // The skill-update receipt job announces a burst through the
200
- // notification pipeline's single entry point. No plugin-api equivalent.
201
185
  "../../../notifications/emit-signal.js",
202
186
  "../../../permissions/types.js",
203
187
  "../../../persistence/auto-analysis-constants.js",
@@ -219,15 +203,7 @@ const BASELINE: Record<string, readonly string[]> = {
219
203
  "../../../persistence/job-handlers/message-lexical.js",
220
204
  "../../../persistence/job-utils.js",
221
205
  "../../../persistence/jobs-store.js",
222
- // The retrospective cursor is a `(createdAt, id)` bound that must keep
223
- // working after its message row is deleted. The resolver lives beside
224
- // the persistence after-reads it also drives, so the plugin's
225
- // accounting imports it rather than re-deriving the bound. No
226
- // plugin-api equivalent.
227
206
  "../../../persistence/message-cursor.js",
228
- // Named any-state `createdAt` lookup the cursor bookkeeping uses for
229
- // forks and the timestamp backfill; the messages-read boundary guard
230
- // requires the read to live in persistence. No plugin-api equivalent.
231
207
  "../../../persistence/message-reads.js",
232
208
  "../../../persistence/raw-query.js",
233
209
  "../../../persistence/schema/index.js",
@@ -258,10 +234,6 @@ const BASELINE: Record<string, readonly string[]> = {
258
234
  "../../../util/worker-memory.js",
259
235
  "../../../util/worker-process.js",
260
236
  "../../types.js",
261
- // The memory jobs worker runs as its own OS process and hosts real agent
262
- // conversations, so it registers the host's default-plugin hook and
263
- // injector surface at startup (hooks only, no init hooks). Host-owned
264
- // composition with no plugin-api equivalent.
265
237
  "../../worker-plugin-surface.js",
266
238
  "../injection-presence.js",
267
239
  "../injector-order.js",
@@ -277,18 +249,15 @@ const BASELINE: Record<string, readonly string[]> = {
277
249
  "yaml",
278
250
  "zod",
279
251
  ],
280
- "platform-hosted": ["node:fs/promises", "node:path"],
281
- // Host-internal surface snapshot and task_progress parser. UI surfaces
282
- // stay host-owned, so there is no plugin-api equivalent.
283
- "task-progress": [
284
- "../../../../daemon/conversation-surface-snapshots.js",
285
- "../../../../runtime/task-progress.js",
286
- ],
287
252
  session: [
288
253
  "../../../config/loader.js",
289
254
  "../../types.js",
290
255
  "../injector-order.js",
291
256
  ],
257
+ "task-progress": [
258
+ "../../../../daemon/conversation-surface-snapshots.js",
259
+ "../../../../runtime/task-progress.js",
260
+ ],
292
261
  "title-generate": [
293
262
  "../../../../config/loader.js",
294
263
  "../../../../persistence/conversation-crud.js",
@@ -114,11 +114,11 @@ const BASELINE: Record<string, readonly string[]> = {
114
114
  "src/runtime/routes/retrospective-routes.ts",
115
115
  "src/runtime/routes/secret-routes.ts",
116
116
  "src/schedule/scheduler.ts",
117
- "src/skills/managed-store.ts",
117
+ "src/skills/cloud-store.ts",
118
118
  "src/skills/uninstall.ts",
119
119
  "src/tools/filesystem/write.ts",
120
120
  "src/tools/skills/find-similar-skills.ts",
121
- "src/tools/skills/scaffold-managed.ts",
121
+ "src/tools/skills/scaffold-cloud.ts",
122
122
  "src/tools/tool-manifest.ts",
123
123
  "src/workflows/leaf-runner.ts",
124
124
  ],
@@ -1,7 +1,7 @@
1
1
  import { beforeEach, describe, expect, mock, test } from "bun:test";
2
2
 
3
3
  import type { Services } from "../config/schemas/services.js";
4
- import { PLATFORM_PROVIDER_META } from "../providers/platform-proxy/constants.js";
4
+ import { PLATFORM_PROVIDER_META } from "../providers/cloud-proxy/constants.js";
5
5
  import { credentialKey } from "../security/credential-key.js";
6
6
  import { useMemorySecureKeyMap } from "./helpers/secure-keys.js";
7
7
 
@@ -103,16 +103,16 @@ const defaultWebSearchService: Services["web-search"] = {
103
103
  };
104
104
 
105
105
  mock.module("../config/env.js", () => ({
106
- getPlatformBaseUrl: () => mockPlatformBaseUrl,
107
- getPlatformAssistantId: () => mockPlatformAssistantId,
106
+ getCloudBaseUrl: () => mockCloudBaseUrl,
107
+ getCloudAssistantId: () => mockCloudAssistantId,
108
108
  }));
109
109
 
110
110
  // The REAL secure-keys module pinned to a live memory backend; managed
111
111
  // credentials are seeded under their real credentialKey lookups.
112
112
  const secureKeys = useMemorySecureKeyMap();
113
113
 
114
- mock.module("../platform/feature-gate.js", () => ({
115
- arePlatformFeaturesEnabled: () => true,
114
+ mock.module("../cloud/feature-gate.js", () => ({
115
+ areCloudFeaturesEnabled: () => true,
116
116
  }));
117
117
 
118
118
  import { LLMSchema } from "../config/schemas/llm.js";
@@ -176,13 +176,12 @@ const MANAGED_FALLBACK_PROVIDERS: string[] = [
176
176
  "typesafe",
177
177
  ];
178
178
 
179
- let mockPlatformBaseUrl = "";
180
- let mockPlatformAssistantId = "";
179
+ let mockCloudBaseUrl = "";
180
+ let mockCloudAssistantId = "";
181
181
 
182
- function enableManagedProxy() {
183
- mockPlatformBaseUrl = PLATFORM_BASE;
184
- mockPlatformAssistantId = PLATFORM_ASSISTANT_ID;
185
- secureKeys.set(credentialKey("cadet", "platform_base_url"), PLATFORM_BASE);
182
+ function enableCloudProxy() {
183
+ mockCloudBaseUrl = PLATFORM_BASE;
184
+ mockCloudAssistantId = PLATFORM_ASSISTANT_ID;
186
185
  secureKeys.set(
187
186
  credentialKey("cadet", "platform_assistant_id"),
188
187
  PLATFORM_ASSISTANT_ID,
@@ -190,10 +189,9 @@ function enableManagedProxy() {
190
189
  secureKeys.set(credentialKey("cadet", "assistant_api_key"), MANAGED_API_KEY);
191
190
  }
192
191
 
193
- function disableManagedProxy() {
194
- mockPlatformBaseUrl = "";
195
- mockPlatformAssistantId = "";
196
- secureKeys.delete(credentialKey("cadet", "platform_base_url"));
192
+ function disableCloudProxy() {
193
+ mockCloudBaseUrl = "";
194
+ mockCloudAssistantId = "";
197
195
  secureKeys.delete(credentialKey("cadet", "platform_assistant_id"));
198
196
  secureKeys.delete(credentialKey("cadet", "assistant_api_key"));
199
197
  }
@@ -253,7 +251,7 @@ const sampleTools: ToolDefinition[] = [
253
251
  // ---------------------------------------------------------------------------
254
252
 
255
253
  beforeEach(() => {
256
- disableManagedProxy();
254
+ disableCloudProxy();
257
255
  clearUserKeys();
258
256
  lastGeminiConstructorOpts = null;
259
257
  lastGeminiGenerateContentStreamParams = null;
@@ -265,12 +263,12 @@ beforeEach(() => {
265
263
  setConfig("services", {});
266
264
  });
267
265
 
268
- describe("managed proxy integration — credential precedence", () => {
266
+ describe("cloud proxy integration — credential precedence", () => {
269
267
  describe("user keys present → providers use direct connections (not proxy)", () => {
270
268
  test.each(DIRECT_OR_MANAGED_PROVIDER_KEYS)(
271
269
  "%s routes via user-key when user key is provided regardless of managed context",
272
270
  async (provider: string) => {
273
- enableManagedProxy();
271
+ enableCloudProxy();
274
272
  setUserKeysFor(provider);
275
273
  await initializeProviders(makeProvidersConfig(provider, "test-model"));
276
274
  expect(listProviders()).toContain(provider);
@@ -279,7 +277,7 @@ describe("managed proxy integration — credential precedence", () => {
279
277
  );
280
278
 
281
279
  test("all five configured providers route via user-key when user keys exist", async () => {
282
- enableManagedProxy();
280
+ enableCloudProxy();
283
281
  setUserKeysFor(...DIRECT_OR_MANAGED_PROVIDER_KEYS);
284
282
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
285
283
  const registered = listProviders();
@@ -290,7 +288,7 @@ describe("managed proxy integration — credential precedence", () => {
290
288
  });
291
289
 
292
290
  test("user keys still route via user-key when managed context is disabled", async () => {
293
- disableManagedProxy();
291
+ disableCloudProxy();
294
292
  setUserKeysFor(...DIRECT_OR_MANAGED_PROVIDER_KEYS);
295
293
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
296
294
  const registered = listProviders();
@@ -301,35 +299,35 @@ describe("managed proxy integration — credential precedence", () => {
301
299
  });
302
300
  });
303
301
 
304
- describe("user keys absent + managed context available → providers use managed proxy", () => {
302
+ describe("user keys absent + managed context available → providers use cloud proxy", () => {
305
303
  test.each(MANAGED_FALLBACK_PROVIDERS)(
306
- "%s routes via managed-proxy when no user key",
304
+ "%s routes via cloud-proxy when no user key",
307
305
  async (provider: string) => {
308
- enableManagedProxy();
306
+ enableCloudProxy();
309
307
  clearUserKeys();
310
308
  await initializeProviders(
311
309
  makeProvidersConfig("anthropic", "test-model"),
312
310
  );
313
311
  expect(listProviders()).toContain(provider);
314
- expect(getProviderRoutingSource(provider)).toBe("managed-proxy");
312
+ expect(getProviderRoutingSource(provider)).toBe("cloud-proxy");
315
313
  },
316
314
  );
317
315
 
318
316
  test("managed bootstrap registers every managed-routable catalog provider", async () => {
319
- enableManagedProxy();
317
+ enableCloudProxy();
320
318
  clearUserKeys();
321
319
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
322
320
  expect([...listProviders()].sort()).toEqual(
323
321
  [...MANAGED_FALLBACK_PROVIDERS].sort(),
324
322
  );
325
323
  for (const provider of MANAGED_FALLBACK_PROVIDERS) {
326
- expect(getProviderRoutingSource(provider)).toBe("managed-proxy");
324
+ expect(getProviderRoutingSource(provider)).toBe("cloud-proxy");
327
325
  }
328
326
  expect(getProviderRoutingSource("openrouter")).toBeUndefined();
329
327
  });
330
328
 
331
329
  test("managed typesafe sends System One through the typesafe proxy path with the assistant key", async () => {
332
- enableManagedProxy();
330
+ enableCloudProxy();
333
331
  clearUserKeys();
334
332
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
335
333
 
@@ -367,7 +365,7 @@ describe("managed proxy integration — credential precedence", () => {
367
365
  });
368
366
 
369
367
  test("managed anthropic uses anthropic proxy path", async () => {
370
- enableManagedProxy();
368
+ enableCloudProxy();
371
369
  clearUserKeys();
372
370
  await initializeProviders(
373
371
  makeProvidersConfig("anthropic", "claude-opus-4-6"),
@@ -383,7 +381,7 @@ describe("managed proxy integration — credential precedence", () => {
383
381
  });
384
382
 
385
383
  test("managed openai uses openai proxy path", async () => {
386
- enableManagedProxy();
384
+ enableCloudProxy();
387
385
  clearUserKeys();
388
386
  await initializeProviders(makeProvidersConfig("openai", "gpt-4o"));
389
387
 
@@ -397,7 +395,7 @@ describe("managed proxy integration — credential precedence", () => {
397
395
  });
398
396
 
399
397
  test("managed gemini uses gemini proxy path", async () => {
400
- enableManagedProxy();
398
+ enableCloudProxy();
401
399
  clearUserKeys();
402
400
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
403
401
 
@@ -410,7 +408,7 @@ describe("managed proxy integration — credential precedence", () => {
410
408
  });
411
409
 
412
410
  test("managed gemini receives attribution headers outside request JSON", async () => {
413
- enableManagedProxy();
411
+ enableCloudProxy();
414
412
  clearUserKeys();
415
413
  setConfig("llm", {
416
414
  profiles: {
@@ -467,7 +465,7 @@ describe("managed proxy integration — credential precedence", () => {
467
465
  });
468
466
 
469
467
  test("managed gemini omits attribution headers without callSite", async () => {
470
- enableManagedProxy();
468
+ enableCloudProxy();
471
469
  clearUserKeys();
472
470
  await initializeProviders(
473
471
  makeProvidersConfig("gemini", "gemini-3.1-pro"),
@@ -492,7 +490,7 @@ describe("managed proxy integration — credential precedence", () => {
492
490
  test.each(DIRECT_OR_MANAGED_PROVIDER_KEYS)(
493
491
  "%s is NOT registered when no user key and no managed context",
494
492
  async (provider: string) => {
495
- disableManagedProxy();
493
+ disableCloudProxy();
496
494
  clearUserKeys();
497
495
  await initializeProviders(
498
496
  makeProvidersConfig("anthropic", "test-model"),
@@ -503,53 +501,53 @@ describe("managed proxy integration — credential precedence", () => {
503
501
  );
504
502
 
505
503
  test("registry is empty when no keys and no managed context (non-ollama primary)", async () => {
506
- disableManagedProxy();
504
+ disableCloudProxy();
507
505
  clearUserKeys();
508
506
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
509
507
  expect(listProviders()).toEqual([]);
510
508
  });
511
509
  });
512
510
 
513
- describe("mixed: some user keys + managed fallback fills gaps", () => {
514
- test("user key for anthropic routes direct and managed fallback fills openai, gemini, and fireworks", async () => {
515
- enableManagedProxy();
511
+ describe("mixed: some user keys + cloud fallback fills gaps", () => {
512
+ test("user key for anthropic routes direct and cloud fallback fills openai, gemini, and fireworks", async () => {
513
+ enableCloudProxy();
516
514
  setUserKeysFor("anthropic");
517
515
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
518
516
  const registered = listProviders();
519
517
  expect(registered).toContain("anthropic");
520
518
  expect(getProviderRoutingSource("anthropic")).toBe("user-key");
521
519
  expect(registered).toContain("openai");
522
- expect(getProviderRoutingSource("openai")).toBe("managed-proxy");
520
+ expect(getProviderRoutingSource("openai")).toBe("cloud-proxy");
523
521
  expect(registered).toContain("gemini");
524
- expect(getProviderRoutingSource("gemini")).toBe("managed-proxy");
522
+ expect(getProviderRoutingSource("gemini")).toBe("cloud-proxy");
525
523
  expect(registered).toContain("fireworks");
526
- expect(getProviderRoutingSource("fireworks")).toBe("managed-proxy");
524
+ expect(getProviderRoutingSource("fireworks")).toBe("cloud-proxy");
527
525
  expect(registered).not.toContain("openrouter");
528
526
  expect(getProviderRoutingSource("openrouter")).toBeUndefined();
529
527
  });
530
528
 
531
- test("user key for openai routes direct while anthropic, gemini, and fireworks still bootstrap via managed proxy", async () => {
532
- enableManagedProxy();
529
+ test("user key for openai routes direct while anthropic, gemini, and fireworks still bootstrap via cloud proxy", async () => {
530
+ enableCloudProxy();
533
531
  setUserKeysFor("openai");
534
532
  await initializeProviders(makeProvidersConfig("openai", "test-model"));
535
533
  const registered = listProviders();
536
534
  expect(registered).toContain("openai");
537
535
  expect(getProviderRoutingSource("openai")).toBe("user-key");
538
536
  expect(registered).toContain("anthropic");
539
- expect(getProviderRoutingSource("anthropic")).toBe("managed-proxy");
537
+ expect(getProviderRoutingSource("anthropic")).toBe("cloud-proxy");
540
538
  expect(registered).toContain("gemini");
541
- expect(getProviderRoutingSource("gemini")).toBe("managed-proxy");
539
+ expect(getProviderRoutingSource("gemini")).toBe("cloud-proxy");
542
540
  expect(registered).toContain("fireworks");
543
- expect(getProviderRoutingSource("fireworks")).toBe("managed-proxy");
541
+ expect(getProviderRoutingSource("fireworks")).toBe("cloud-proxy");
544
542
  expect(registered).not.toContain("openrouter");
545
543
  expect(getProviderRoutingSource("openrouter")).toBeUndefined();
546
544
  });
547
545
  });
548
546
  });
549
547
 
550
- describe("managed proxy integration — managed web search routing", () => {
551
- test("managed Fireworks/Kimi tool call completes through the platform Brave proxy", async () => {
552
- enableManagedProxy();
548
+ describe("cloud proxy integration — managed web search routing", () => {
549
+ test("managed Fireworks/Kimi tool call completes through the cloud Brave proxy", async () => {
550
+ enableCloudProxy();
553
551
  clearUserKeys();
554
552
  setConfig("services", { "web-search": MANAGED_NATIVE_WEB_SEARCH });
555
553
 
@@ -565,9 +563,9 @@ describe("managed proxy integration — managed web search routing", () => {
565
563
  web: {
566
564
  results: [
567
565
  {
568
- title: "Platform Result",
566
+ title: "Cloud Result",
569
567
  url: "https://example.com/platform-result",
570
- description: "Returned by the managed Brave proxy.",
568
+ description: "Returned by the cloud Brave proxy.",
571
569
  age: "1 day ago",
572
570
  },
573
571
  ],
@@ -619,12 +617,12 @@ describe("managed proxy integration — managed web search routing", () => {
619
617
  );
620
618
 
621
619
  expect(result.isError).toBe(false);
622
- expect(result.content).toContain("Platform Result");
620
+ expect(result.content).toContain("Cloud Result");
623
621
  expect(result.activityMetadata?.webSearch?.provider).toBe("brave");
624
622
  expect(result.activityMetadata?.webSearch?.resultCount).toBe(1);
625
623
 
626
624
  expect(fetchUrls).toEqual([
627
- `${PLATFORM_BASE}/v1/assistants/${PLATFORM_ASSISTANT_ID}/managed-search-proxy/brave/`,
625
+ `${PLATFORM_BASE}/v1/assistants/${PLATFORM_ASSISTANT_ID}/cloud-search-proxy/brave/`,
628
626
  ]);
629
627
  } finally {
630
628
  globalThis.fetch = originalFetch;
@@ -632,23 +630,23 @@ describe("managed proxy integration — managed web search routing", () => {
632
630
  });
633
631
  });
634
632
 
635
- describe("managed proxy integration — ollama exclusion", () => {
636
- test("ollama is never registered via managed proxy fallback", async () => {
637
- enableManagedProxy();
633
+ describe("cloud proxy integration — ollama exclusion", () => {
634
+ test("ollama is never registered via cloud proxy fallback", async () => {
635
+ enableCloudProxy();
638
636
  clearUserKeys();
639
637
  await initializeProviders(makeProvidersConfig("anthropic", "test-model"));
640
638
  expect(listProviders()).not.toContain("ollama");
641
639
  });
642
640
 
643
641
  test("ollama registers only when explicitly configured as provider", async () => {
644
- enableManagedProxy();
642
+ enableCloudProxy();
645
643
  clearUserKeys();
646
644
  await initializeProviders(makeProvidersConfig("ollama", "test-model"));
647
645
  expect(listProviders()).toContain("ollama");
648
646
  });
649
647
 
650
648
  test("ollama registers with explicit API key", async () => {
651
- enableManagedProxy();
649
+ enableCloudProxy();
652
650
  const ollamaKey = credentialKey("ollama", "api_key");
653
651
  secureKeys.set(ollamaKey, "ollama-key");
654
652
  userKeyNames.push(ollamaKey);
@@ -665,13 +663,13 @@ describe("managed proxy integration — ollama exclusion", () => {
665
663
  });
666
664
 
667
665
  describe("config mode flip → provider reinit", () => {
668
- test("re-running initializeProviders after managed→your-own flip switches gemini from managed-proxy to user-key", async () => {
669
- // Phase 1: managed mode without user key → gemini registered as managed-proxy.
666
+ test("re-running initializeProviders after managed→your-own flip switches gemini from cloud-proxy to user-key", async () => {
667
+ // Phase 1: managed mode without user key → gemini registered as cloud-proxy.
670
668
  // This is the pre-patch state before PATCH /v1/config is called.
671
- enableManagedProxy();
669
+ enableCloudProxy();
672
670
  clearUserKeys();
673
671
  await initializeProviders(makeProvidersConfig("gemini", "gemini-2.5-pro"));
674
- expect(getProviderRoutingSource("gemini")).toBe("managed-proxy");
672
+ expect(getProviderRoutingSource("gemini")).toBe("cloud-proxy");
675
673
 
676
674
  // Phase 2: user has now saved a key (POST /v1/secrets), then PATCHed config
677
675
  // to mode=your-own. handlePatchConfig calls initializeProviders(getConfig())
@@ -681,22 +679,22 @@ describe("config mode flip → provider reinit", () => {
681
679
  expect(getProviderRoutingSource("gemini")).toBe("user-key");
682
680
  });
683
681
 
684
- test("without reinit after config patch, gemini source remains stale managed-proxy", async () => {
682
+ test("without reinit after config patch, gemini source remains stale cloud-proxy", async () => {
685
683
  // Demonstrates the bug: if initializeProviders is NOT called after saving
686
- // config, the routing source stays managed-proxy even after mode flip.
687
- enableManagedProxy();
684
+ // config, the routing source stays cloud-proxy even after mode flip.
685
+ enableCloudProxy();
688
686
  clearUserKeys();
689
687
  await initializeProviders(makeProvidersConfig("gemini", "gemini-2.5-pro"));
690
- expect(getProviderRoutingSource("gemini")).toBe("managed-proxy");
688
+ expect(getProviderRoutingSource("gemini")).toBe("cloud-proxy");
691
689
 
692
690
  // Flip mode but do NOT re-initialize providers (simulates skipping reinit).
693
691
  setUserKeysFor("gemini");
694
- // Source stays managed-proxy because initializeProviders was not called.
695
- expect(getProviderRoutingSource("gemini")).toBe("managed-proxy");
692
+ // Source stays cloud-proxy because initializeProviders was not called.
693
+ expect(getProviderRoutingSource("gemini")).toBe("cloud-proxy");
696
694
  });
697
695
  });
698
696
 
699
- describe("managed proxy integration — constants integrity", () => {
697
+ describe("cloud proxy integration — constants integrity", () => {
700
698
  test("anthropic, openai, gemini, fireworks, together, and cadet have metadata with managed=true and a proxyPath", () => {
701
699
  for (const provider of [
702
700
  "anthropic",
@@ -744,15 +742,15 @@ describe("managed proxy integration — constants integrity", () => {
744
742
  );
745
743
  });
746
744
 
747
- test("cadet routes through the platform runtime-proxy path", () => {
748
- // The proxy path is the platform's wire contract — renamed in
749
- // coordination with the platform deploy, not here.
745
+ test("cadet routes through the cloud runtime-proxy path", () => {
746
+ // The proxy path is the cloud's wire contract — renamed in
747
+ // coordination with the cloud deploy, not here.
750
748
  expect(PLATFORM_PROVIDER_META.cadet.proxyPath).toBe(
751
749
  "/v1/runtime-proxy/cadet",
752
750
  );
753
751
  });
754
752
 
755
- test("openrouter is not managed proxy capable", () => {
753
+ test("openrouter is not cloud proxy capable", () => {
756
754
  expect(PLATFORM_PROVIDER_META.openrouter.managed).toBe(false);
757
755
  expect(PLATFORM_PROVIDER_META.openrouter.proxyPath).toBeUndefined();
758
756
  });
@@ -342,7 +342,7 @@ describe("ProviderCommitMessageGenerator", () => {
342
342
  provider: mockProvider,
343
343
  configuredProviderName: "cadet",
344
344
  };
345
- const commitMsg = "fix: managed-route commit";
345
+ const commitMsg = "fix: cloud-route commit";
346
346
  mockSendMessage.mockResolvedValueOnce(makeSuccessResponse(commitMsg));
347
347
  const gen = getCommitMessageGenerator();
348
348
  const result = await gen.generateCommitMessage(baseContext, {
@@ -2,7 +2,7 @@
2
2
  * Boot-time provider_connection backfill: an existing user connection for
3
3
  * the entry's provider must win over the mode-derived default.
4
4
  *
5
- * On managed (platform-hosted) installs the mode default is the billed
5
+ * On managed (cloud-hosted) installs the mode default is the billed
6
6
  * `cadet` connection — stamping it onto a connection-less BYOK-intent
7
7
  * profile permanently routes the user's own-key setup through managed
8
8
  * billing. On your-own installs the mode default creates a parallel
@@ -27,7 +27,7 @@ import {
27
27
 
28
28
  await initializeDb();
29
29
 
30
- const originalIsPlatform = process.env.IS_PLATFORM;
30
+ const originalIsPlatform = process.env.IS_CLOUD;
31
31
 
32
32
  function seedConfig(profiles: Record<string, unknown>): void {
33
33
  writeFileSync(
@@ -49,14 +49,14 @@ beforeEach(() => {
49
49
 
50
50
  afterEach(() => {
51
51
  if (originalIsPlatform === undefined) {
52
- delete process.env.IS_PLATFORM;
52
+ delete process.env.IS_CLOUD;
53
53
  } else {
54
- process.env.IS_PLATFORM = originalIsPlatform;
54
+ process.env.IS_CLOUD = originalIsPlatform;
55
55
  }
56
56
  });
57
57
 
58
58
  test("managed mode prefers an existing user connection over the cadet default", () => {
59
- process.env.IS_PLATFORM = "true";
59
+ process.env.IS_CLOUD = "true";
60
60
  const created = createConnection(getDb(), {
61
61
  name: "anthropic-personal",
62
62
  provider: "anthropic",
@@ -71,7 +71,7 @@ test("managed mode prefers an existing user connection over the cadet default",
71
71
  });
72
72
 
73
73
  test("managed mode still stamps cadet when no user connection exists", () => {
74
- process.env.IS_PLATFORM = "true";
74
+ process.env.IS_CLOUD = "true";
75
75
  seedConfig({ byok: { provider: "anthropic", model: "claude-fable-5" } });
76
76
 
77
77
  runProviderConnectionsBackfill(getDb());
@@ -80,7 +80,7 @@ test("managed mode still stamps cadet when no user connection exists", () => {
80
80
  });
81
81
 
82
82
  test("managed-owned entries keep the cadet stamp even when a user connection exists", () => {
83
- process.env.IS_PLATFORM = "true";
83
+ process.env.IS_CLOUD = "true";
84
84
  const created = createConnection(getDb(), {
85
85
  name: "anthropic-personal",
86
86
  provider: "anthropic",
@@ -118,7 +118,7 @@ test("managed-owned entries keep the cadet stamp even when a user connection exi
118
118
  });
119
119
 
120
120
  test("routing-identity providers are never stamped with a connection", () => {
121
- process.env.IS_PLATFORM = "true";
121
+ process.env.IS_CLOUD = "true";
122
122
  seedConfig({
123
123
  managedRoute: { provider: "cadet", model: "claude-fable-5" },
124
124
  subscription: { provider: "chatgpt", model: "gpt-5.5" },
@@ -131,7 +131,7 @@ test("routing-identity providers are never stamped with a connection", () => {
131
131
  });
132
132
 
133
133
  test("your-own mode reuses a custom-named connection instead of creating -personal", () => {
134
- delete process.env.IS_PLATFORM;
134
+ delete process.env.IS_CLOUD;
135
135
  const created = createConnection(getDb(), {
136
136
  name: "my-anthropic",
137
137
  provider: "anthropic",