@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,19 +11,19 @@
11
11
 
12
12
  import { beforeEach, describe, expect, mock, test } from "bun:test";
13
13
 
14
+ import type { CadetCloudClient } from "../../../cloud/client.js";
15
+ import {
16
+ CloudOAuthConnection,
17
+ CredentialRequiredError,
18
+ InsufficientBalanceError,
19
+ ProviderUnreachableError,
20
+ } from "../../../oauth/cloud-connection.js";
14
21
  import type {
15
22
  OAuthConnection,
16
23
  OAuthConnectionRequest,
17
24
  OAuthConnectionResponse,
18
25
  } from "../../../oauth/connection.js";
19
26
  import { decodeOAuthResponseBytes } from "../../../oauth/connection.js";
20
- import {
21
- CredentialRequiredError,
22
- InsufficientBalanceError,
23
- PlatformOAuthConnection,
24
- ProviderUnreachableError,
25
- } from "../../../oauth/platform-connection.js";
26
- import type { CadetPlatformClient } from "../../../platform/client.js";
27
27
  import { resolveScopeProfile } from "../../auth/scopes.js";
28
28
  import type { AuthContext } from "../../auth/types.js";
29
29
  import { routeDefinitionsToHTTPRoutes } from "../http-adapter.js";
@@ -70,29 +70,29 @@ const byoConnection: OAuthConnection = {
70
70
  };
71
71
 
72
72
  /**
73
- * A real managed connection over a stub platform, for the paths whose behavior
74
- * lives inside `PlatformOAuthConnection` rather than in the route.
73
+ * A real cloud connection over a stub platform, for the paths whose behavior
74
+ * lives inside `CloudOAuthConnection` rather than in the route.
75
75
  */
76
76
  function realManagedConnection(
77
77
  fetchImpl: (path: string, init?: RequestInit) => Promise<Response>,
78
- ): PlatformOAuthConnection {
79
- return new PlatformOAuthConnection({
78
+ ): CloudOAuthConnection {
79
+ return new CloudOAuthConnection({
80
80
  id: "conn-managed",
81
81
  provider: "stripe_link",
82
82
  externalId: "ext-1",
83
83
  accountInfo: null,
84
84
  connectionId: "platform-conn-1",
85
85
  client: {
86
- platformAssistantId: "asst-1",
86
+ cloudAssistantId: "asst-1",
87
87
  fetch: fetchImpl,
88
- } as unknown as CadetPlatformClient,
88
+ } as unknown as CadetCloudClient,
89
89
  });
90
90
  }
91
91
 
92
- /** Satisfies the route's `instanceof PlatformOAuthConnection` check. */
92
+ /** Satisfies the route's `instanceof CloudOAuthConnection` check. */
93
93
  function managedConnection(): OAuthConnection {
94
94
  return Object.assign(
95
- Object.create(PlatformOAuthConnection.prototype) as OAuthConnection,
95
+ Object.create(CloudOAuthConnection.prototype) as OAuthConnection,
96
96
  {
97
97
  id: "conn-managed",
98
98
  provider: "stripe_link",
@@ -145,15 +145,15 @@ mock.module("../../../oauth/connection-resolver.js", () => ({
145
145
 
146
146
  // Spread the real module so the rest of the import graph keeps its env
147
147
  // readers; only the two auth-bypass readings are pinned. They move
148
- // independently: DISABLE_HTTP_AUTH is set on any host, the platform-managed
148
+ // independently: DISABLE_HTTP_AUTH is set on any host, the cloud-managed
149
149
  // bypass only on a vembda pod.
150
150
  let httpAuthDisabled = false;
151
- let platformAuthBypass = false;
151
+ let cloudAuthBypass = false;
152
152
  const env = await import("../../../config/env.js");
153
153
  mock.module("../../../config/env.js", () => ({
154
154
  ...env,
155
155
  isHttpAuthDisabled: () => httpAuthDisabled,
156
- isPlatformAuthBypassActive: () => platformAuthBypass,
156
+ isCloudAuthBypassActive: () => cloudAuthBypass,
157
157
  }));
158
158
 
159
159
  const { handleOAuthProxy, ROUTES } = await import("../oauth-proxy-routes.js");
@@ -271,7 +271,7 @@ function requireCaptured(): OAuthConnectionRequest {
271
271
 
272
272
  beforeEach(() => {
273
273
  httpAuthDisabled = false;
274
- platformAuthBypass = false;
274
+ cloudAuthBypass = false;
275
275
  captured = undefined;
276
276
  upstreamBytes = undefined;
277
277
  requestError = undefined;
@@ -322,7 +322,7 @@ describe("path and query fidelity", () => {
322
322
  const req = requireCaptured();
323
323
  // Byte-exact for a provider that signs the query it receives.
324
324
  expect(req.rawQuery).toBe("?a=1&b=2&a=3&q=x%20y&flag");
325
- // The parsed form is all a managed connection can send.
325
+ // The parsed form is all a cloud connection can send.
326
326
  expect(req.query).toEqual({ a: ["1", "3"], b: "2", q: "x y", flag: "" });
327
327
  });
328
328
 
@@ -364,7 +364,7 @@ describe("method passthrough", () => {
364
364
  expect((await response.arrayBuffer()).byteLength).toBe(0);
365
365
  });
366
366
 
367
- test("rejects HEAD against a managed connection", async () => {
367
+ test("rejects HEAD against a cloud connection", async () => {
368
368
  resolution = { ...resolution, connection: managedConnection() };
369
369
 
370
370
  const response = await callProxy({ method: "HEAD" });
@@ -391,7 +391,7 @@ describe("write safety", () => {
391
391
  });
392
392
  }
393
393
 
394
- test("a managed write is not replayed after a 502", async () => {
394
+ test("a cloud write is not replayed after a 502", async () => {
395
395
  let attempts = 0;
396
396
  resolution = {
397
397
  ...resolution,
@@ -403,7 +403,7 @@ describe("write safety", () => {
403
403
 
404
404
  const response = await callProxy({ method: "POST", body: "{}" });
405
405
 
406
- // The platform answers 502 only after calling the provider, so a replay
406
+ // The cloud answers 502 only after calling the provider, so a replay
407
407
  // could land the write twice.
408
408
  expect(attempts).toBe(1);
409
409
  expect(response.status).toBe(502);
@@ -564,7 +564,7 @@ describe("header handling", () => {
564
564
  ["GET", "Stripe-Version"],
565
565
  ["GET", "X-Custom-Option"],
566
566
  ]) {
567
- test(`rejects managed ${method} with ${name} before the platform call`, async () => {
567
+ test(`rejects managed ${method} with ${name} before the cloud call`, async () => {
568
568
  let attempts = 0;
569
569
  resolution.connection = realManagedConnection(async () => {
570
570
  attempts++;
@@ -930,18 +930,18 @@ describe("grant binding", () => {
930
930
  expect(resolverCalls).toHaveLength(0);
931
931
  });
932
932
 
933
- test("a platform-managed pod skips the comparison it has no subject for", async () => {
933
+ test("a cloud-managed pod skips the comparison it has no subject for", async () => {
934
934
  // The pod's daemon discards the token and synthesizes a context, so the
935
935
  // grant's subject never reaches the handler.
936
936
  httpAuthDisabled = true;
937
- platformAuthBypass = true;
937
+ cloudAuthBypass = true;
938
938
 
939
939
  const response = await callProxy({ subject: "actor:self:dev-bypass" });
940
940
 
941
941
  expect(response.status).toBe(200);
942
942
  });
943
943
 
944
- test("DISABLE_HTTP_AUTH off a platform pod still binds the grant", async () => {
944
+ test("DISABLE_HTTP_AUTH off a cloud pod still binds the grant", async () => {
945
945
  httpAuthDisabled = true;
946
946
 
947
947
  const response = await callProxy({ subject: "actor:self:dev-bypass" });
@@ -119,7 +119,7 @@ import {
119
119
  type UpgradePluginOptions,
120
120
  } from "../../../cli/lib/upgrade-plugin.js";
121
121
 
122
- // Spy on the route logger so tests can assert that a platform-catalog outage
122
+ // Spy on the route logger so tests can assert that a cloud-catalog outage
123
123
  // is recorded before it is mapped to a client 503. The catalog fetcher and the
124
124
  // transport adapters swallow the failure otherwise (`RouteError` → wire error,
125
125
  // no capture), so the log line is the only trace an operator gets — assert it.
@@ -1626,8 +1626,8 @@ describe("POST /v1/plugins/install", () => {
1626
1626
  // The default (no-pin) path reads the same gated catalog `search`
1627
1627
  // advertises and installs from a trusted pre-resolved source — no direct
1628
1628
  // `plugins/marketplace.json` fetch (the pin/marketplace path is untouched).
1629
- const prev = process.env.CADET_DISABLE_PLATFORM;
1630
- process.env.CADET_DISABLE_PLATFORM = "true";
1629
+ const prev = process.env.CADET_DISABLE_CLOUD;
1630
+ process.env.CADET_DISABLE_CLOUD = "true";
1631
1631
  try {
1632
1632
  installSpy.mockImplementation(async (opts) => trustedInstallResult(opts));
1633
1633
 
@@ -1660,9 +1660,9 @@ describe("POST /v1/plugins/install", () => {
1660
1660
  });
1661
1661
  } finally {
1662
1662
  if (prev === undefined) {
1663
- delete process.env.CADET_DISABLE_PLATFORM;
1663
+ delete process.env.CADET_DISABLE_CLOUD;
1664
1664
  } else {
1665
- process.env.CADET_DISABLE_PLATFORM = prev;
1665
+ process.env.CADET_DISABLE_CLOUD = prev;
1666
1666
  }
1667
1667
  }
1668
1668
  });
@@ -22,8 +22,8 @@ mock.module("../../../util/process-tree.js", () => ({
22
22
  },
23
23
  buildProcessTree: (_procs: ProcInfo[], rootPid: number): ProcTreeNode => ({
24
24
  pid: rootPid,
25
- name: "assistant.ts",
26
- command: "bun run assistant.ts",
25
+ name: "daemon-main",
26
+ command: "bun run /app/daemon/main.ts",
27
27
  origin: "workspace",
28
28
  children: [
29
29
  {
@@ -81,7 +81,9 @@ describe("ps route handler", () => {
81
81
 
82
82
  expect(processes).toHaveLength(1);
83
83
  const root = processes[0];
84
- expect(root.name).toBe("assistant.ts");
84
+ // The route must surface the daemon's node as "assistant", not the
85
+ // entry-script name the tree builder derives ("daemon-main").
86
+ expect(root.name).toBe("assistant");
85
87
  expect(root.status).toBe("running");
86
88
  expect(root.info).toBe(`pid ${process.pid}`);
87
89
  expect(root.children).toHaveLength(2);
@@ -9,14 +9,14 @@ import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
9
9
  import { UnprocessableEntityError } from "../errors.js";
10
10
  import type { RouteDefinition } from "../types.js";
11
11
 
12
- let platformBaseUrl = "https://cloud.mycadet.ai";
12
+ let cloudBaseUrl = "https://cloud.mycadet.ai";
13
13
 
14
14
  // Spread the real module: replacing it wholesale strips the other exports the
15
15
  // route graph pulls in.
16
16
  const actualEnv = await import("../../../config/env.js");
17
17
  mock.module("../../../config/env.js", () => ({
18
18
  ...actualEnv,
19
- getPlatformBaseUrl: () => platformBaseUrl,
19
+ getCloudBaseUrl: () => cloudBaseUrl,
20
20
  }));
21
21
 
22
22
  import { useMemorySecureKeys } from "../../../__tests__/helpers/secure-keys.js";
@@ -90,7 +90,7 @@ const UPSTREAM_ITEM = {
90
90
 
91
91
  beforeEach(() => {
92
92
  secureKeys[ASSISTANT_API_KEY] = "assistant-key";
93
- platformBaseUrl = "https://cloud.mycadet.ai";
93
+ cloudBaseUrl = "https://cloud.mycadet.ai";
94
94
  calls = [];
95
95
  process.env.CADET_MARKETING_URL = "https://marketing.test";
96
96
  process.env.CADET_WEB_URL = "https://web.test";
@@ -113,8 +113,8 @@ describe("which deployment the roadmap calls reach", () => {
113
113
  expect(calls[0].url).toBe("https://marketing.mycadet.ai/v1/roadmap");
114
114
  });
115
115
 
116
- // The deployment is judged by the platform that issued the key, never by
117
- // CADET_ENVIRONMENT: unset, that variable means dev to getPlatformBaseUrl
116
+ // The deployment is judged by the cloud that issued the key, never by
117
+ // CADET_ENVIRONMENT: unset, that variable means dev to getCloudBaseUrl
118
118
  // and local to every launcher, so trusting it would let exactly the assistant
119
119
  // with no label post to the real roadmap.
120
120
  test.each([
@@ -124,7 +124,7 @@ describe("which deployment the roadmap calls reach", () => {
124
124
  ])(
125
125
  "an unconfigured %s assistant refuses to touch the public roadmap",
126
126
  async (baseUrl) => {
127
- platformBaseUrl = baseUrl;
127
+ cloudBaseUrl = baseUrl;
128
128
  delete process.env.CADET_MARKETING_URL;
129
129
  delete process.env.CADET_ENVIRONMENT;
130
130
  stubFetch({ items: [], total: 0 });
@@ -135,7 +135,7 @@ describe("which deployment the roadmap calls reach", () => {
135
135
  );
136
136
 
137
137
  test("CADET_ENVIRONMENT=production does not by itself unlock the real roadmap", async () => {
138
- platformBaseUrl = "https://dev-cloud.mycadet.ai";
138
+ cloudBaseUrl = "https://dev-cloud.mycadet.ai";
139
139
  delete process.env.CADET_MARKETING_URL;
140
140
  process.env.CADET_ENVIRONMENT = "production";
141
141
  stubFetch({ items: [], total: 0 });
@@ -146,7 +146,7 @@ describe("which deployment the roadmap calls reach", () => {
146
146
 
147
147
  test("item links point at the deployment the item was read from", async () => {
148
148
  // Labelled staging, but authenticating against production: the link has to
149
- // follow the platform, or it points at a staging page for a real item.
149
+ // follow the cloud, or it points at a staging page for a real item.
150
150
  process.env.CADET_ENVIRONMENT = "staging";
151
151
  delete process.env.CADET_WEB_URL;
152
152
  delete process.env.CADET_MARKETING_URL;
@@ -160,7 +160,7 @@ describe("which deployment the roadmap calls reach", () => {
160
160
  // A self-hosted platform is not in the seed table, so nothing is known about
161
161
  // it: naming its roadmap API says nothing about where its items are rendered.
162
162
  test("a self-hosted deployment must name its web origin too", async () => {
163
- platformBaseUrl = "https://platform.self-hosted.example";
163
+ cloudBaseUrl = "https://platform.self-hosted.example";
164
164
  delete process.env.CADET_WEB_URL;
165
165
  stubFetch({ items: [], total: 0 });
166
166
 
@@ -169,7 +169,7 @@ describe("which deployment the roadmap calls reach", () => {
169
169
  });
170
170
 
171
171
  test("a self-hosted deployment works once both endpoints are named", async () => {
172
- platformBaseUrl = "https://platform.self-hosted.example";
172
+ cloudBaseUrl = "https://platform.self-hosted.example";
173
173
  stubFetch({ items: [UPSTREAM_ITEM], total: 1 });
174
174
 
175
175
  const result = (await list({})) as { items: { url: string }[] };
@@ -178,7 +178,7 @@ describe("which deployment the roadmap calls reach", () => {
178
178
  expect(result.items[0].url).toBe("https://web.test/roadmap/dark-mode");
179
179
  });
180
180
 
181
- test("a platform change mid-flight cannot fail a create that already published", async () => {
181
+ test("a cloud change mid-flight cannot fail a create that already published", async () => {
182
182
  delete process.env.CADET_MARKETING_URL;
183
183
  delete process.env.CADET_WEB_URL;
184
184
  globalThis.fetch = (async (
@@ -186,9 +186,9 @@ describe("which deployment the roadmap calls reach", () => {
186
186
  _init?: RequestInit,
187
187
  ): Promise<Response> => {
188
188
  // The item is published. Only now is the assistant repointed at a
189
- // platform with no roadmap deployment, as a concurrent
190
- // `platform_base_url` write would do.
191
- platformBaseUrl = "https://platform.self-hosted.example";
189
+ // platform with no roadmap deployment, as a concurrent cloud base
190
+ // URL change would do.
191
+ cloudBaseUrl = "https://platform.self-hosted.example";
192
192
  return new Response(
193
193
  JSON.stringify({
194
194
  slug: "dark-mode",
@@ -207,7 +207,7 @@ describe("which deployment the roadmap calls reach", () => {
207
207
  });
208
208
 
209
209
  test("a named endpoint is honored on any deployment", async () => {
210
- platformBaseUrl = "https://dev-cloud.mycadet.ai";
210
+ cloudBaseUrl = "https://dev-cloud.mycadet.ai";
211
211
  stubFetch({ items: [], total: 0 });
212
212
 
213
213
  await list({});
@@ -10,7 +10,7 @@ import { InternalError, UnprocessableEntityError } from "../errors.js";
10
10
  let isPlatform = false;
11
11
  let tunnelWebhooksEnabled = false;
12
12
  let config: Record<string, unknown> = {};
13
- let platformContextEnabled = false;
13
+ let cloudContextEnabled = false;
14
14
  let registerCallbackRouteError: Error | undefined;
15
15
 
16
16
  let localWebhookRouteRegistered = true;
@@ -34,7 +34,7 @@ const registerLocalWebhookRouteMock = mock(
34
34
  const actualEnvRegistry = await import("../../../config/env-registry.js");
35
35
  mock.module("../../../config/env-registry.js", () => ({
36
36
  ...actualEnvRegistry,
37
- getIsPlatform: () => isPlatform,
37
+ getIsCloud: () => isPlatform,
38
38
  }));
39
39
 
40
40
  const actualLoader = await import("../../../config/loader.js");
@@ -50,16 +50,16 @@ mock.module("../../../inbound/tunnel-webhooks-gate.js", () => ({
50
50
  isTunnelWebhooksEnabled: () => tunnelWebhooksEnabled,
51
51
  }));
52
52
 
53
- mock.module("../../../inbound/platform-callback-registration.js", () => ({
53
+ mock.module("../../../inbound/cloud-callback-registration.js", () => ({
54
54
  registerCallbackRoute: registerCallbackRouteMock,
55
55
  registerLocalWebhookRoute: registerLocalWebhookRouteMock,
56
- resolvePlatformCallbackRegistrationContext: async () => ({
56
+ resolveCloudCallbackRegistrationContext: async () => ({
57
57
  isPlatform,
58
- platformBaseUrl: "https://cloud.mycadet.ai",
59
- assistantId: platformContextEnabled ? "assistant-123" : "",
60
- hasAssistantApiKey: platformContextEnabled,
61
- authHeader: platformContextEnabled ? "Api-Key secret" : null,
62
- enabled: platformContextEnabled,
58
+ cloudBaseUrl: "https://cloud.mycadet.ai",
59
+ assistantId: cloudContextEnabled ? "assistant-123" : "",
60
+ hasAssistantApiKey: cloudContextEnabled,
61
+ authHeader: cloudContextEnabled ? "Api-Key secret" : null,
62
+ enabled: cloudContextEnabled,
63
63
  }),
64
64
  }));
65
65
 
@@ -77,16 +77,16 @@ describe("webhooks_register callback URL resolution", () => {
77
77
  isPlatform = false;
78
78
  tunnelWebhooksEnabled = false;
79
79
  config = {};
80
- platformContextEnabled = false;
80
+ cloudContextEnabled = false;
81
81
  registerCallbackRouteError = undefined;
82
82
  localWebhookRouteRegistered = true;
83
83
  registerCallbackRouteMock.mockClear();
84
84
  registerLocalWebhookRouteMock.mockClear();
85
85
  });
86
86
 
87
- test("platform pods register with the platform gateway", async () => {
87
+ test("cloud pods register with the cloud gateway", async () => {
88
88
  isPlatform = true;
89
- platformContextEnabled = true;
89
+ cloudContextEnabled = true;
90
90
 
91
91
  expect(await register({ type: "telegram" })).toEqual({
92
92
  callbackUrl: "https://tunnel.mycadet.ai/assistant-123/webhooks/telegram",
@@ -97,10 +97,10 @@ describe("webhooks_register callback URL resolution", () => {
97
97
  expect(registerLocalWebhookRouteMock).not.toHaveBeenCalled();
98
98
  });
99
99
 
100
- // The bug: a local assistant that IS connected to the platform used to fall
100
+ // The bug: a local assistant that IS connected to the cloud used to fall
101
101
  // through to the self-hosted branch and 422 when it had no public ingress.
102
- test("platform-connected local assistant with no ingress gets the platform callback URL", async () => {
103
- platformContextEnabled = true;
102
+ test("platform-connected local assistant with no ingress gets the cloud callback URL", async () => {
103
+ cloudContextEnabled = true;
104
104
 
105
105
  expect(await register({ type: "telegram" })).toEqual({
106
106
  callbackUrl: "https://tunnel.mycadet.ai/assistant-123/webhooks/telegram",
@@ -118,7 +118,7 @@ describe("webhooks_register callback URL resolution", () => {
118
118
  test("tunnel-webhooks on: a pod claims the subpath and uses the published URL", async () => {
119
119
  isPlatform = true;
120
120
  tunnelWebhooksEnabled = true;
121
- platformContextEnabled = true;
121
+ cloudContextEnabled = true;
122
122
  config = {
123
123
  ingress: { publicBaseUrl: "https://tunnel.mycadet.ai/assistant-123" },
124
124
  };
@@ -137,10 +137,10 @@ describe("webhooks_register callback URL resolution", () => {
137
137
  expect(registerCallbackRouteMock).not.toHaveBeenCalled();
138
138
  });
139
139
 
140
- test("tunnel-webhooks on: a refused claim falls back to the platform", async () => {
140
+ test("tunnel-webhooks on: a refused claim falls back to the cloud", async () => {
141
141
  isPlatform = true;
142
142
  tunnelWebhooksEnabled = true;
143
- platformContextEnabled = true;
143
+ cloudContextEnabled = true;
144
144
  localWebhookRouteRegistered = false;
145
145
  config = {
146
146
  ingress: { publicBaseUrl: "https://tunnel.mycadet.ai/assistant-123" },
@@ -153,10 +153,10 @@ describe("webhooks_register callback URL resolution", () => {
153
153
  expect(registerLocalWebhookRouteMock).toHaveBeenCalled();
154
154
  });
155
155
 
156
- test("tunnel-webhooks on: a pod with no published URL still registers with the platform", async () => {
156
+ test("tunnel-webhooks on: a pod with no published URL still registers with the cloud", async () => {
157
157
  isPlatform = true;
158
158
  tunnelWebhooksEnabled = true;
159
- platformContextEnabled = true;
159
+ cloudContextEnabled = true;
160
160
 
161
161
  expect(await register({ type: "telegram" })).toMatchObject({
162
162
  callbackUrl: "https://tunnel.mycadet.ai/assistant-123/webhooks/telegram",
@@ -165,10 +165,10 @@ describe("webhooks_register callback URL resolution", () => {
165
165
  expect(registerLocalWebhookRouteMock).not.toHaveBeenCalled();
166
166
  });
167
167
 
168
- test("tunnel-webhooks on: a pod with ingress disabled falls back to the platform", async () => {
168
+ test("tunnel-webhooks on: a pod with ingress disabled falls back to the cloud", async () => {
169
169
  isPlatform = true;
170
170
  tunnelWebhooksEnabled = true;
171
- platformContextEnabled = true;
171
+ cloudContextEnabled = true;
172
172
  config = { ingress: { enabled: false } };
173
173
 
174
174
  expect(await register({ type: "telegram" })).toMatchObject({
@@ -199,7 +199,7 @@ describe("webhooks_register callback URL resolution", () => {
199
199
  // A logged-in local assistant holds platform credentials for the LLM proxy,
200
200
  // so credential presence must not override an explicitly configured tunnel.
201
201
  test("a configured publicBaseUrl wins over platform connectivity", async () => {
202
- platformContextEnabled = true;
202
+ cloudContextEnabled = true;
203
203
  config = { ingress: { publicBaseUrl: "https://abc.ngrok.io" } };
204
204
 
205
205
  expect(await register({ type: "telegram" })).toMatchObject({
@@ -214,7 +214,7 @@ describe("webhooks_register callback URL resolution", () => {
214
214
  // a tunneled platform-connected assistant already resolves to a stable
215
215
  // platform-owned URL through the ingress tier.
216
216
  test("a Tunnel-managed publicBaseUrl resolves through the ingress tier", async () => {
217
- platformContextEnabled = true;
217
+ cloudContextEnabled = true;
218
218
  config = {
219
219
  ingress: {
220
220
  publicBaseUrl: "https://tunnel.mycadet.ai/assistant-123",
@@ -231,8 +231,8 @@ describe("webhooks_register callback URL resolution", () => {
231
231
  });
232
232
  });
233
233
 
234
- test("explicitly disabled ingress is not routed around via the platform", async () => {
235
- platformContextEnabled = true;
234
+ test("explicitly disabled ingress is not routed around via the cloud", async () => {
235
+ cloudContextEnabled = true;
236
236
  config = { ingress: { enabled: false } };
237
237
 
238
238
  await expect(register({ type: "telegram" })).rejects.toBeInstanceOf(
@@ -241,8 +241,8 @@ describe("webhooks_register callback URL resolution", () => {
241
241
  expect(registerCallbackRouteMock).not.toHaveBeenCalled();
242
242
  });
243
243
 
244
- test("the source identifier is forwarded to the platform registration", async () => {
245
- platformContextEnabled = true;
244
+ test("the source identifier is forwarded to the cloud registration", async () => {
245
+ cloudContextEnabled = true;
246
246
 
247
247
  await register({ type: "telegram", source: "@my_bot" });
248
248
 
@@ -254,7 +254,7 @@ describe("webhooks_register callback URL resolution", () => {
254
254
  });
255
255
 
256
256
  test("a failed platform registration surfaces as a 500", async () => {
257
- platformContextEnabled = true;
257
+ cloudContextEnabled = true;
258
258
  registerCallbackRouteError = new Error(
259
259
  "Platform callback route registration failed (HTTP 502)",
260
260
  );
@@ -265,7 +265,7 @@ describe("webhooks_register callback URL resolution", () => {
265
265
  });
266
266
 
267
267
  test("a missing platform registration context surfaces as a 422", async () => {
268
- platformContextEnabled = true;
268
+ cloudContextEnabled = true;
269
269
  registerCallbackRouteError = new Error(
270
270
  "Platform callbacks not available — missing platform registration context",
271
271
  );
@@ -276,7 +276,7 @@ describe("webhooks_register callback URL resolution", () => {
276
276
  });
277
277
 
278
278
  test("a path override replaces the derived webhook path", async () => {
279
- platformContextEnabled = true;
279
+ cloudContextEnabled = true;
280
280
 
281
281
  expect(
282
282
  await register({ type: "custom", path: "webhooks/my-provider" }),
@@ -528,7 +528,7 @@ async function importBundle(
528
528
  let bundleBytes: Uint8Array;
529
529
  const contentType = headers["content-type"] ?? "";
530
530
  if (contentType.includes("multipart/form-data")) {
531
- // Reconstruct a Request to use the platform's multipart parser
531
+ // Reconstruct a Request to use the cloud's multipart parser
532
532
  const syntheticReq = new Request("http://localhost", {
533
533
  method: "POST",
534
534
  headers: { "content-type": contentType },
@@ -207,7 +207,7 @@ async function handleMultipartUpload(
207
207
  );
208
208
  }
209
209
 
210
- // Reconstruct a Request to use the platform's multipart parser.
210
+ // Reconstruct a Request to use the cloud's multipart parser.
211
211
  const syntheticReq = new Request("http://localhost", {
212
212
  method: "POST",
213
213
  headers: { "content-type": headers["content-type"] ?? "" },
@@ -7,17 +7,17 @@
7
7
  import { z } from "zod";
8
8
 
9
9
  import {
10
- getPlatformAssistantId,
11
- getPlatformBaseUrl,
12
- getPlatformOrganizationId,
13
- getPlatformUserId,
10
+ getCloudAssistantId,
11
+ getCloudBaseUrl,
12
+ getCloudOrganizationId,
13
+ getCloudUserId,
14
14
  } from "../../config/env.js";
15
- import { resolveManagedProxyContext } from "../../providers/platform-proxy/context.js";
15
+ import { resolveCloudProxyContext } from "../../providers/cloud-proxy/context.js";
16
16
  import { ACTOR_PRINCIPALS } from "../auth/route-policy.js";
17
17
  import type { RouteDefinition, RouteHandlerArgs } from "./types.js";
18
18
 
19
19
  interface AuthInfoResult {
20
- platformUrl: string | null;
20
+ cloudUrl: string | null;
21
21
  assistantId: string | null;
22
22
  organizationId: string | null;
23
23
  userId: string | null;
@@ -28,16 +28,16 @@ interface AuthInfoResult {
28
28
  async function handleAuthInfo(
29
29
  _args: RouteHandlerArgs,
30
30
  ): Promise<AuthInfoResult> {
31
- const ctx = await resolveManagedProxyContext();
31
+ const ctx = await resolveCloudProxyContext();
32
32
 
33
- const platformUrl = getPlatformBaseUrl();
34
- const assistantId = getPlatformAssistantId();
35
- const organizationId = getPlatformOrganizationId();
36
- const userId = getPlatformUserId();
33
+ const cloudUrl = getCloudBaseUrl();
34
+ const assistantId = getCloudAssistantId();
35
+ const organizationId = getCloudOrganizationId();
36
+ const userId = getCloudUserId();
37
37
  const authenticated = ctx.enabled;
38
38
 
39
39
  const result: AuthInfoResult = {
40
- platformUrl: platformUrl || null,
40
+ cloudUrl: cloudUrl || null,
41
41
  assistantId: assistantId || null,
42
42
  organizationId: organizationId || null,
43
43
  userId: userId || null,
@@ -45,7 +45,7 @@ async function handleAuthInfo(
45
45
  };
46
46
 
47
47
  if (!authenticated) {
48
- result.message = !platformUrl
48
+ result.message = !cloudUrl
49
49
  ? "Platform URL not configured. Run assistant config set platform.baseUrl <url>"
50
50
  : "Assistant API key not found. Store one with: assistant keys set credential/cadet/assistant_api_key <key>";
51
51
  }
@@ -67,7 +67,7 @@ export const ROUTES: RouteDefinition[] = [
67
67
  "Returns platform identity and authentication status for this assistant.",
68
68
  tags: ["auth"],
69
69
  responseBody: z.object({
70
- platformUrl: z.string().nullable(),
70
+ cloudUrl: z.string().nullable(),
71
71
  assistantId: z.string().nullable(),
72
72
  organizationId: z.string().nullable(),
73
73
  userId: z.string().nullable(),
@@ -32,9 +32,6 @@ import {
32
32
  ensureAvatarRasterPath,
33
33
  } from "../../avatar/ensure-raster.js";
34
34
  import type { CharacterTraits } from "../../avatar/traits-png-sync.js";
35
- import { setPlatformBaseUrl } from "../../config/env.js";
36
- import { credentialKey } from "../../security/credential-key.js";
37
- import { getSecureKeyAsync } from "../../security/secure-keys.js";
38
35
  import { detectMediaType } from "../../tools/shared/filesystem/image-read.js";
39
36
  import { generateAvatarImage } from "../../tools/system/avatar-generator.js";
40
37
  import { getLogger } from "../../util/logger.js";
@@ -178,17 +175,6 @@ async function handleGenerateAvatar({ body, headers }: RouteHandlerArgs) {
178
175
  throw new BadRequestError("description is required");
179
176
  }
180
177
 
181
- // Rehydrate platform base URL from credential store
182
- try {
183
- const key = credentialKey("cadet", "platform_base_url");
184
- const persisted = await getSecureKeyAsync(key);
185
- if (persisted) {
186
- setPlatformBaseUrl(persisted);
187
- }
188
- } catch {
189
- // Non-fatal
190
- }
191
-
192
178
  const result = await generateAvatarImage(description);
193
179
  if (result.isError || !result.pngBuffer) {
194
180
  throw new ServiceUnavailableError(result.content);
@@ -20,7 +20,7 @@ import type { RouteDefinition, RouteHandlerArgs } from "./types.js";
20
20
  /** The scheduler and heartbeat surface the drain-due lease needs. */
21
21
  type BackgroundWakeRuntime = {
22
22
  scheduler: Pick<SchedulerHandle, "runOnce" | "runDueWorkOnce">;
23
- heartbeat: Pick<HeartbeatService, "nextRunAt" | "runManagedWakeIfDue">;
23
+ heartbeat: Pick<HeartbeatService, "nextRunAt" | "runCloudWakeIfDue">;
24
24
  };
25
25
 
26
26
  const PREPARE_SLEEP_DEFER_WINDOW_MS = 60_000;
@@ -127,7 +127,7 @@ function parseDrainDueBody(body: Record<string, unknown>): DrainDueRequest {
127
127
 
128
128
  async function defaultRenewWakeLease(leaseId: string): Promise<unknown> {
129
129
  const { renewBackgroundWakeLease } =
130
- await import("../../background-wake/platform-client.js");
130
+ await import("../../background-wake/cloud-client.js");
131
131
  return renewBackgroundWakeLease(leaseId);
132
132
  }
133
133
 
@@ -135,7 +135,7 @@ async function defaultCompleteWakeLease(
135
135
  args: Parameters<CompleteWakeLease>[0],
136
136
  ): Promise<unknown> {
137
137
  const { completeBackgroundWakeLease } =
138
- await import("../../background-wake/platform-client.js");
138
+ await import("../../background-wake/cloud-client.js");
139
139
  return completeBackgroundWakeLease(args);
140
140
  }
141
141
 
@@ -242,7 +242,7 @@ async function performDrainDue(
242
242
 
243
243
  if (heartbeatDue) {
244
244
  if (hasStartBudget(request.deadlineAt)) {
245
- await runtime.heartbeat.runManagedWakeIfDue({
245
+ await runtime.heartbeat.runCloudWakeIfDue({
246
246
  now,
247
247
  toleranceMs: HEARTBEAT_DUE_TOLERANCE_MS,
248
248
  scheduledFor: request.startedAt,