@mycadet/assistant 0.12.7 → 0.12.9

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 (904) 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 +2 -2
  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/package.json +1 -1
  19. package/node_modules/@mycadet/ces-client/src/__tests__/ces-client.test.ts +14 -14
  20. package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
  21. package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
  22. package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
  23. package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
  24. package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
  25. package/node_modules/@mycadet/environments/src/types.ts +6 -6
  26. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +2 -2
  27. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  28. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  29. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  30. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  31. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  32. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  33. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  34. package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
  35. package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
  36. package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
  37. package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
  38. package/node_modules/@mycadet/service-contracts/package.json +2 -2
  39. package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  40. package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  41. package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  42. package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  43. package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  44. package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  45. package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  46. package/openapi.yaml +6804 -799
  47. package/package.json +2 -2
  48. package/scripts/build-test-fixtures.ts +1 -1
  49. package/scripts/probe-skill-retrieval.ts +1 -1
  50. package/scripts/sync-llm-catalog.ts +2 -2
  51. package/scripts/voice-ttft-spike.ts +2 -2
  52. package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
  53. package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
  54. package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
  55. package/src/__tests__/anthropic-provider.test.ts +2 -2
  56. package/src/__tests__/available-skills.test.ts +11 -12
  57. package/src/__tests__/avatar-identity-sync.test.ts +1 -1
  58. package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
  59. package/src/__tests__/call-domain.test.ts +1 -1
  60. package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
  61. package/src/__tests__/catalog-files.test.ts +10 -10
  62. package/src/__tests__/catalog-install-normalize.test.ts +3 -3
  63. package/src/__tests__/channel-availability-routes.test.ts +8 -8
  64. package/src/__tests__/channel-readiness-routes.test.ts +4 -4
  65. package/src/__tests__/channel-readiness-service.test.ts +14 -14
  66. package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
  67. package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
  68. package/src/__tests__/checker.test.ts +6 -6
  69. package/src/__tests__/clawhub.test.ts +1 -1
  70. package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
  71. package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
  72. package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
  73. package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
  74. package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +77 -75
  75. package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
  76. package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
  77. package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
  78. package/src/__tests__/compaction-events.test.ts +7 -5
  79. package/src/__tests__/config-loader-backfill.test.ts +65 -65
  80. package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
  81. package/src/__tests__/config-loader-corrupt.test.ts +1 -1
  82. package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
  83. package/src/__tests__/config-schema.test.ts +3 -3
  84. package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
  85. package/src/__tests__/config-set-route.test.ts +12 -8
  86. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
  87. package/src/__tests__/config-watcher.test.ts +1 -1
  88. package/src/__tests__/contacts-write.test.ts +1 -1
  89. package/src/__tests__/conversation-agent-loop.test.ts +2 -2
  90. package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
  91. package/src/__tests__/conversation-error.test.ts +45 -45
  92. package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
  93. package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
  94. package/src/__tests__/conversation-skill-tools.test.ts +7 -8
  95. package/src/__tests__/conversation-slash.test.ts +2 -2
  96. package/src/__tests__/conversation-speed-override.test.ts +8 -10
  97. package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
  98. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
  99. package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
  100. package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
  101. package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
  102. package/src/__tests__/credential-health-service.test.ts +28 -40
  103. package/src/__tests__/credential-routes.test.ts +85 -165
  104. package/src/__tests__/credential-security-invariants.test.ts +6 -7
  105. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  106. package/src/__tests__/date-context.test.ts +1 -1
  107. package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
  108. package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
  109. package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
  110. package/src/__tests__/disk-usage.test.ts +3 -3
  111. package/src/__tests__/email-invite-adapter.test.ts +5 -5
  112. package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
  113. package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
  114. package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
  115. package/src/__tests__/fallback-breaker.test.ts +7 -7
  116. package/src/__tests__/feature-flag-test-helpers.ts +106 -0
  117. package/src/__tests__/gateway-flag-listener.test.ts +1 -1
  118. package/src/__tests__/gemini-image-service.test.ts +2 -2
  119. package/src/__tests__/gemini-provider.test.ts +5 -5
  120. package/src/__tests__/get-skill-detail-audit.test.ts +134 -288
  121. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  122. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
  123. package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
  124. package/src/__tests__/image-credentials.test.ts +13 -13
  125. package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
  126. package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
  127. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
  128. package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
  129. package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
  130. package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
  131. package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
  132. package/src/__tests__/input-repairs.test.ts +1 -1
  133. package/src/__tests__/install-skill-routing.test.ts +10 -8
  134. package/src/__tests__/integration-status.test.ts +5 -5
  135. package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
  136. package/src/__tests__/invite-routes-http.test.ts +1 -1
  137. package/src/__tests__/llm-catalog-parity.test.ts +5 -7
  138. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
  139. package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
  140. package/src/__tests__/llm-resolver.test.ts +1 -1
  141. package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
  142. package/src/__tests__/llm-usage-store.test.ts +1 -1
  143. package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
  144. package/src/__tests__/mcp-abort-signal.test.ts +1 -2
  145. package/src/__tests__/mcp-client-auth.test.ts +1 -2
  146. package/src/__tests__/mcp-config-secret-boundary.test.ts +44 -40
  147. package/src/__tests__/mcp-tool-annotations-risk.test.ts +1 -2
  148. package/src/__tests__/media-generate-image.test.ts +30 -30
  149. package/src/__tests__/memory-config-file-parity.test.ts +6 -6
  150. package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
  151. package/src/__tests__/migration-import-commit-http.test.ts +1 -1
  152. package/src/__tests__/mtime-cache.test.ts +2 -2
  153. package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
  154. package/src/__tests__/notification-deep-link.test.ts +40 -40
  155. package/src/__tests__/oauth-apps-routes.test.ts +3 -3
  156. package/src/__tests__/oauth-cli.test.ts +9 -9
  157. package/src/__tests__/oauth-commands-routes.test.ts +16 -16
  158. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
  159. package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
  160. package/src/__tests__/oauth-providers-routes.test.ts +12 -12
  161. package/src/__tests__/oauth-store.test.ts +1 -1
  162. package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
  163. package/src/__tests__/onboarding-persona-write.test.ts +2 -2
  164. package/src/__tests__/openai-image-service.test.ts +2 -2
  165. package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
  166. package/src/__tests__/openai-responses-provider.test.ts +1 -1
  167. package/src/__tests__/path-policy.test.ts +4 -4
  168. package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
  169. package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
  170. package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
  171. package/src/__tests__/plugin-api-provider.test.ts +1 -1
  172. package/src/__tests__/plugin-api-store-credential.test.ts +4 -1
  173. package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
  174. package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
  175. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
  176. package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
  177. package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
  178. package/src/__tests__/provider-connections-backfill.test.ts +9 -9
  179. package/src/__tests__/provider-error-scenarios.test.ts +8 -8
  180. package/src/__tests__/provider-registry-ollama.test.ts +1 -1
  181. package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
  182. package/src/__tests__/registry.test.ts +3 -3
  183. package/src/__tests__/requests-mock.ts +972 -0
  184. package/src/__tests__/resolve-trust-class.test.ts +1 -1
  185. package/src/__tests__/resource-pressure-guard.test.ts +6 -6
  186. package/src/__tests__/resource-pressure-routes.test.ts +5 -5
  187. package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
  188. package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
  189. package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
  190. package/src/__tests__/schedule-store.test.ts +1 -1
  191. package/src/__tests__/search-skills-unified.test.ts +9 -7
  192. package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
  193. package/src/__tests__/secret-routes-scrub.test.ts +2 -59
  194. package/src/__tests__/secure-keys.test.ts +1 -1
  195. package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
  196. package/src/__tests__/skill-load-tool.test.ts +1 -1
  197. package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
  198. package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
  199. package/src/__tests__/skill-tool-factory.test.ts +1 -1
  200. package/src/__tests__/skills-file-content-endpoint.test.ts +222 -536
  201. package/src/__tests__/skills-files-catalog-fallback.test.ts +259 -577
  202. package/src/__tests__/skills.test.ts +1 -1
  203. package/src/__tests__/slim-skill-category.test.ts +11 -9
  204. package/src/__tests__/stt-stream-session.test.ts +3 -3
  205. package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
  206. package/src/__tests__/subagent-disposal.test.ts +5 -5
  207. package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
  208. package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
  209. package/src/__tests__/subagent-manager-notify.test.ts +5 -5
  210. package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
  211. package/src/__tests__/system-prompt.test.ts +1 -1
  212. package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
  213. package/src/__tests__/telegram-config.test.ts +16 -16
  214. package/src/__tests__/telephony-tts-guard.test.ts +13 -13
  215. package/src/__tests__/test-preload.ts +17 -7
  216. package/src/__tests__/tool-audit.test.ts +1 -1
  217. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
  218. package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
  219. package/src/__tests__/turn-events-store.test.ts +1 -1
  220. package/src/__tests__/twilio-routes.test.ts +2 -1
  221. package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
  222. package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
  223. package/src/__tests__/validate-input.test.ts +5 -5
  224. package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
  225. package/src/__tests__/voice-config-update.test.ts +15 -15
  226. package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
  227. package/src/__tests__/web-search.test.ts +340 -859
  228. package/src/__tests__/workspace-git-service.test.ts +1 -1
  229. package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
  230. package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
  231. package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
  232. package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
  233. package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
  234. package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
  235. package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
  236. package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
  237. package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
  238. package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
  239. package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
  240. package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
  241. package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
  242. package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
  243. package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
  244. package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
  245. package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
  246. package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
  247. package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
  248. package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
  249. package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
  250. package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
  251. package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
  252. package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
  253. package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
  254. package/src/api/events/cloud-disconnected.ts +21 -0
  255. package/src/api/events/host-bash.ts +1 -1
  256. package/src/api/events/host-cu.ts +1 -1
  257. package/src/api/events/host-file.ts +1 -1
  258. package/src/api/events/notification-intent.ts +1 -1
  259. package/src/api/events/show-cloud-login.ts +18 -0
  260. package/src/api/index.ts +11 -11
  261. package/src/api/responses/home.ts +1 -1
  262. package/src/api/surfaces.ts +4 -4
  263. package/src/approvals/guardian-request-resolvers.ts +2 -2
  264. package/src/avatar/accent-backfill.ts +1 -1
  265. package/src/avatar/identity-avatar.ts +1 -1
  266. package/src/avatar/notification-avatar.test.ts +2 -2
  267. package/src/avatar/notification-avatar.ts +2 -2
  268. package/src/avatar/resvg-lazy.test.ts +1 -1
  269. package/src/avatar/resvg-lazy.ts +3 -3
  270. package/src/avatar/sync-avatar.test.ts +76 -76
  271. package/src/avatar/sync-avatar.ts +15 -15
  272. package/src/avatar/traits-png-sync.ts +1 -1
  273. package/src/background-wake/background-wake-routes.test.ts +39 -39
  274. package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
  275. package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
  276. package/src/background-wake/publisher.ts +4 -4
  277. package/src/background-wake/wake-intent-hooks.test.ts +3 -3
  278. package/src/calls/__tests__/call-controller.test.ts +2 -2
  279. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
  280. package/src/calls/call-domain.ts +1 -1
  281. package/src/calls/resolve-call-tts-provider.ts +6 -6
  282. package/src/calls/telephony-credential-preflight.ts +3 -3
  283. package/src/calls/telephony-tts-capability.ts +5 -6
  284. package/src/calls/tts-call-strategy.ts +1 -1
  285. package/src/calls/voice-escalation-judge.ts +1 -1
  286. package/src/calls/voice-ingress-preflight.ts +4 -4
  287. package/src/cli/bundled-modules.ts +1 -1
  288. package/src/cli/commands/__tests__/apps.test.ts +18 -53
  289. package/src/cli/commands/__tests__/plugins.test.ts +13 -13
  290. package/src/cli/commands/__tests__/tts.test.ts +1 -1
  291. package/src/cli/commands/auth.help.ts +3 -3
  292. package/src/cli/commands/auth.ts +2 -4
  293. package/src/cli/commands/browser.help.ts +2 -2
  294. package/src/cli/commands/channels/index.help.ts +2 -2
  295. package/src/cli/commands/channels/index.ts +1 -1
  296. package/src/cli/commands/channels/send.ts +1 -1
  297. package/src/cli/commands/cloud/__tests__/callback-routes-list.test.ts +2 -2
  298. package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
  299. package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
  300. package/src/cli/commands/cloud/connect.ts +2 -2
  301. package/src/cli/commands/cloud/credits-format.ts +1 -1
  302. package/src/cli/commands/cloud/index.help.ts +35 -35
  303. package/src/cli/commands/cloud/index.ts +1 -1
  304. package/src/cli/commands/config.ts +2 -2
  305. package/src/cli/commands/credentials.ts +10 -12
  306. package/src/cli/commands/domain.ts +1 -1
  307. package/src/cli/commands/email.help.ts +1 -1
  308. package/src/cli/commands/email.ts +2 -2
  309. package/src/cli/commands/gateway.help.ts +1 -1
  310. package/src/cli/commands/gateway.ts +1 -1
  311. package/src/cli/commands/image-generation.help.ts +1 -1
  312. package/src/cli/commands/inference-providers.ts +1 -1
  313. package/src/cli/commands/inference.help.ts +2 -2
  314. package/src/cli/commands/memory/index.help.ts +1 -1
  315. package/src/cli/commands/oauth/connect.test.ts +2 -2
  316. package/src/cli/commands/oauth/connect.ts +1 -1
  317. package/src/cli/commands/oauth/index.help.ts +5 -5
  318. package/src/cli/commands/oauth/providers.ts +2 -2
  319. package/src/cli/commands/oauth/shared.ts +3 -3
  320. package/src/cli/commands/plugins.help.ts +2 -3
  321. package/src/cli/commands/plugins.ts +5 -5
  322. package/src/cli/commands/roadmap.help.ts +1 -1
  323. package/src/cli/commands/telemetry.help.ts +2 -2
  324. package/src/cli/commands/telemetry.ts +2 -2
  325. package/src/cli/commands/tts.help.ts +3 -3
  326. package/src/cli/commands/webhooks.help.ts +9 -9
  327. package/src/cli/commands/webhooks.ts +1 -1
  328. package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
  329. package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
  330. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
  331. package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
  332. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
  333. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
  334. package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
  335. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
  336. package/src/cli/lib/bundled-marketplace.json +1 -1
  337. package/src/cli/lib/inspect-plugin.ts +2 -2
  338. package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
  339. package/src/cli/lib/install-from-github.ts +4 -4
  340. package/src/cli/lib/plugin-catalog-cache.ts +7 -7
  341. package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
  342. package/src/cli/lib/plugin-catalog-local.ts +2 -2
  343. package/src/cli/lib/publish-plugin.ts +9 -10
  344. package/src/cli/lib/search-plugins.ts +2 -2
  345. package/src/{platform → cloud}/client.test.ts +85 -86
  346. package/src/{platform → cloud}/client.ts +38 -46
  347. package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
  348. package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
  349. package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
  350. package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
  351. package/src/{platform → cloud}/consent-cache.test.ts +5 -5
  352. package/src/{platform → cloud}/consent-cache.ts +8 -8
  353. package/src/cloud/feature-gate.ts +8 -0
  354. package/src/{platform → cloud}/sync-identity.test.ts +4 -4
  355. package/src/{platform → cloud}/sync-identity.ts +6 -6
  356. package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
  357. package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
  358. package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
  359. package/src/config/__tests__/default-provider.test.ts +4 -4
  360. package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
  361. package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
  362. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
  363. package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
  364. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
  365. package/src/config/__tests__/profile-materialization.test.ts +7 -7
  366. package/src/config/__tests__/seed-default-provider.test.ts +17 -17
  367. package/src/config/__tests__/substrate-twin-shadowing.test.ts +36 -26
  368. package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
  369. package/src/config/__tests__/webhook-routing.test.ts +51 -51
  370. package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
  371. package/src/config/bundled-skills/messaging/SKILL.md +8 -8
  372. package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
  373. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
  374. package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
  375. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
  376. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  377. package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
  378. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
  379. package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
  380. package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
  381. package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
  382. package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
  383. package/src/config/call-site-defaults.ts +6 -6
  384. package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
  385. package/src/config/cloud-rehydration.ts +35 -0
  386. package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
  387. package/src/config/default-profile-catalog.ts +36 -38
  388. package/src/config/default-profile-names.ts +11 -11
  389. package/src/config/default-provider-resolution.ts +2 -2
  390. package/src/config/default-provider.ts +1 -1
  391. package/src/config/env-registry.ts +21 -26
  392. package/src/config/env.ts +33 -46
  393. package/src/config/feature-flag-registry.json +5 -5
  394. package/src/config/inference-profile-validation.ts +1 -1
  395. package/src/config/llm-resolver.ts +9 -10
  396. package/src/config/loader.ts +33 -17
  397. package/src/config/profile-materialization.ts +8 -8
  398. package/src/config/profile-text-generation.test.ts +1 -1
  399. package/src/config/sanitize-for-transfer.ts +1 -1
  400. package/src/config/schema.ts +6 -6
  401. package/src/config/schemas/__tests__/stt.test.ts +2 -2
  402. package/src/config/schemas/call-site-catalog.ts +1 -1
  403. package/src/config/schemas/channels.ts +8 -0
  404. package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
  405. package/src/config/schemas/host-browser.ts +1 -0
  406. package/src/config/schemas/ingress.ts +29 -10
  407. package/src/config/schemas/llm.ts +36 -36
  408. package/src/config/schemas/memory-lifecycle.ts +11 -1
  409. package/src/config/schemas/services.ts +4 -4
  410. package/src/config/schemas/stt.ts +3 -3
  411. package/src/config/schemas/tts.ts +10 -5
  412. package/src/config/schemas/voice.ts +1 -1
  413. package/src/config/seed-inference-profiles.ts +19 -19
  414. package/src/config/skill-state.ts +2 -2
  415. package/src/config/skills.ts +4 -4
  416. package/src/config/substrate-twin-shadowing.ts +12 -17
  417. package/src/config/sync-gated-profiles.ts +8 -9
  418. package/src/config/webhook-routing.ts +19 -19
  419. package/src/contacts/contacts-write.ts +1 -1
  420. package/src/credential-execution/ces-runtime.ts +6 -6
  421. package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
  422. package/src/credential-execution/prompted-credential.ts +2 -23
  423. package/src/credential-health/credential-health-service.ts +59 -70
  424. package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
  425. package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
  426. package/src/daemon/config-watcher.ts +2 -2
  427. package/src/daemon/conversation-agent-loop.ts +9 -9
  428. package/src/daemon/conversation-error.ts +36 -36
  429. package/src/daemon/conversation-skill-tools.ts +7 -7
  430. package/src/daemon/conversation-surfaces.ts +1 -1
  431. package/src/daemon/conversation-tool-setup.ts +2 -2
  432. package/src/daemon/conversation-turn-finalize.ts +1 -1
  433. package/src/daemon/conversation-workspace.ts +1 -1
  434. package/src/daemon/conversation.ts +1 -1
  435. package/src/daemon/credential-transcript-scrub.ts +32 -35
  436. package/src/daemon/daemon-readiness.ts +1 -1
  437. package/src/daemon/event-loop-watchdog.ts +2 -2
  438. package/src/daemon/handlers/config-ingress.ts +9 -9
  439. package/src/daemon/handlers/config-telegram.ts +6 -6
  440. package/src/daemon/handlers/skills.ts +20 -20
  441. package/src/daemon/host-cu-proxy.ts +1 -1
  442. package/src/daemon/lifecycle.ts +19 -19
  443. package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
  444. package/src/daemon/providers-setup.ts +6 -6
  445. package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
  446. package/src/daemon/resource-pressure-guard.ts +6 -6
  447. package/src/daemon/shutdown-handlers.ts +1 -1
  448. package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
  449. package/src/daemon/trust-context.ts +1 -1
  450. package/src/desktop/desktop-automation-lease.ts +1 -1
  451. package/src/desktop/desktop-browser-endpoint.ts +2 -4
  452. package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
  453. package/src/desktop/desktop-stream-bridge.test.ts +4 -4
  454. package/src/desktop/desktop-stream-bridge.ts +1 -1
  455. package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
  456. package/src/desktop/virtual-desktop-feature.ts +7 -7
  457. package/src/email/byo-email-credential.ts +1 -1
  458. package/src/email/registered-inbox.test.ts +16 -16
  459. package/src/email/registered-inbox.ts +20 -20
  460. package/src/heartbeat/heartbeat-service.ts +1 -1
  461. package/src/hooks/hook-loader.ts +2 -2
  462. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  463. package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
  464. package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
  465. package/src/inbound/oauth-callback-url.ts +6 -6
  466. package/src/inbound/pod-webhook-claim.ts +2 -2
  467. package/src/inbound/public-ingress-urls.ts +3 -3
  468. package/src/inbound/tunnel-probe.ts +21 -15
  469. package/src/inbound/tunnel-webhooks-gate.ts +3 -3
  470. package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
  471. package/src/ipc/__tests__/email-ipc.test.ts +8 -8
  472. package/src/ipc/gateway-client.test.ts +55 -59
  473. package/src/ipc/gateway-flag-listener.ts +3 -3
  474. package/src/ipc/routes/db-proxy.ts +1 -1
  475. package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
  476. package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
  477. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
  478. package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
  479. package/src/live-voice/live-activity-reporter.ts +7 -7
  480. package/src/live-voice/live-voice-credential-preflight.ts +6 -6
  481. package/src/live-voice/live-voice-session.ts +3 -3
  482. package/src/live-voice/live-voice-tts.ts +1 -1
  483. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
  484. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
  485. package/src/mcp/mcp-oauth-provider.ts +2 -2
  486. package/src/media/gemini-image-service.ts +11 -13
  487. package/src/media/image-credentials.ts +9 -9
  488. package/src/media/openai-image-service.ts +1 -1
  489. package/src/media/types.ts +3 -3
  490. package/src/messaging/providers/channel-transport.ts +1 -1
  491. package/src/messaging/providers/discord/transport.ts +1 -1
  492. package/src/messaging/providers/gmail/adapter.ts +1 -1
  493. package/src/messaging/providers/gmail/client.ts +4 -4
  494. package/src/messaging/providers/outlook/adapter.ts +1 -1
  495. package/src/messaging/providers/slack/adapter.ts +1 -1
  496. package/src/messaging/providers/slack/transport.ts +1 -1
  497. package/src/messaging/providers/telegram-bot/transport.ts +1 -1
  498. package/src/monitoring/db-integrity-check.ts +1 -1
  499. package/src/monitoring/db-integrity-sample.ts +2 -2
  500. package/src/monitoring/mount-watch.ts +1 -1
  501. package/src/monitoring/oom-kill-reporter.ts +1 -1
  502. package/src/monitoring/worker.ts +5 -5
  503. package/src/notifications/README.md +2 -2
  504. package/src/notifications/__tests__/broadcaster.test.ts +9 -9
  505. package/src/notifications/__tests__/completion-policy.test.ts +1 -1
  506. package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
  507. package/src/notifications/activity-failed-dedupe.ts +1 -1
  508. package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
  509. package/src/notifications/broadcaster.ts +10 -10
  510. package/src/notifications/decision-engine.ts +1 -1
  511. package/src/notifications/destination-resolver.ts +1 -1
  512. package/src/notifications/emit-signal.ts +6 -6
  513. package/src/notifications/types.ts +2 -2
  514. package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
  515. package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
  516. package/src/oauth/byo-connection.test.ts +2 -2
  517. package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
  518. package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
  519. package/src/oauth/connection-resolver.test.ts +59 -61
  520. package/src/oauth/connection-resolver.ts +22 -22
  521. package/src/oauth/connection.ts +1 -1
  522. package/src/oauth/oauth-store.ts +8 -8
  523. package/src/oauth/provider-serializer.ts +4 -4
  524. package/src/oauth/revoke.ts +1 -1
  525. package/src/oauth/seed-providers.ts +32 -32
  526. package/src/permissions/approval-provenance.ts +1 -1
  527. package/src/permissions/checker.test.ts +18 -16
  528. package/src/permissions/checker.ts +3 -3
  529. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  530. package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
  531. package/src/persistence/embeddings/embedding-backend.ts +13 -13
  532. package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
  533. package/src/persistence/embeddings/embedding-gemini.ts +11 -11
  534. package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
  535. package/src/persistence/jobs-store.ts +1 -1
  536. package/src/persistence/lifecycle-events-store.ts +1 -1
  537. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  538. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  539. package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
  540. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  541. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
  542. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  543. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
  544. package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
  545. package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
  546. package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
  547. package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
  548. package/src/persistence/schema/oauth.ts +1 -1
  549. package/src/plugin-api/index.ts +4 -4
  550. package/src/plugin-api/model-profiles.test.ts +1 -1
  551. package/src/plugin-api/model-profiles.ts +1 -1
  552. package/src/plugin-api/transcription-session.ts +1 -1
  553. package/src/plugin-api/vision-support.test.ts +1 -1
  554. package/src/plugin-api/webhook-url.ts +12 -12
  555. package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
  556. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
  557. package/src/plugins/defaults/cloud-hosted/package.json +14 -0
  558. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
  559. package/src/plugins/defaults/index.ts +6 -6
  560. package/src/plugins/defaults/main.ts +5 -5
  561. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
  562. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
  563. package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
  564. package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +5 -0
  565. package/src/plugins/defaults/memory/config.ts +4 -4
  566. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
  567. package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
  568. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
  569. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
  570. package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
  571. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  572. package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
  573. package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
  574. package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
  575. package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
  576. package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
  577. package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
  578. package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
  579. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
  580. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
  581. package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
  582. package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
  583. package/src/plugins/defaults/memory/worker.ts +5 -5
  584. package/src/plugins/defaults/workspace/injectors.ts +2 -2
  585. package/src/plugins/mtime-cache.ts +1 -1
  586. package/src/plugins/source-versions.ts +1 -1
  587. package/src/plugins/types.ts +1 -1
  588. package/src/prompts/__tests__/system-prompt.test.ts +1 -1
  589. package/src/prompts/normalize-onboarding.ts +1 -1
  590. package/src/prompts/persona-resolver.ts +1 -1
  591. package/src/prompts/templates/system-sections.ts +3 -3
  592. package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
  593. package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
  594. package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
  595. package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
  596. package/src/providers/__tests__/inference.test.ts +2 -2
  597. package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
  598. package/src/providers/__tests__/retry-callsite.test.ts +1 -1
  599. package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
  600. package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
  601. package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
  602. package/src/providers/anthropic/client.ts +1 -1
  603. package/src/providers/cadet/client.ts +1 -1
  604. package/src/providers/cadet-model-routing.test.ts +19 -19
  605. package/src/providers/cadet-model-routing.ts +23 -23
  606. package/src/providers/call-site-routing.ts +10 -10
  607. package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
  608. package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
  609. package/src/providers/connection-resolution.ts +43 -43
  610. package/src/providers/fallback-breaker.ts +2 -2
  611. package/src/providers/fetch-provider-catalog.ts +3 -3
  612. package/src/providers/gemini/client.ts +5 -5
  613. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
  614. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
  615. package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
  616. package/src/providers/inference/adapter-factory.ts +35 -35
  617. package/src/providers/inference/auth.ts +10 -10
  618. package/src/providers/inference/backfill.ts +11 -11
  619. package/src/providers/inference/connection-availability.ts +24 -24
  620. package/src/providers/inference/connections.ts +18 -20
  621. package/src/providers/inference/profile-probe.ts +4 -4
  622. package/src/providers/inference/resolve-auth.ts +8 -8
  623. package/src/providers/jev/ask.test.ts +1 -1
  624. package/src/providers/jev/ask.ts +2 -2
  625. package/src/providers/model-catalog.ts +8 -9
  626. package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
  627. package/src/providers/openai/api-error-normalization.ts +2 -2
  628. package/src/providers/provider-availability.ts +4 -4
  629. package/src/providers/provider-env-vars.ts +1 -1
  630. package/src/providers/provider-secret-catalog.ts +1 -1
  631. package/src/providers/registry.ts +20 -20
  632. package/src/providers/retry.ts +26 -26
  633. package/src/providers/routing-identity.ts +10 -10
  634. package/src/providers/search-provider-catalog.ts +2 -2
  635. package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
  636. package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
  637. package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
  638. package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
  639. package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
  640. package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
  641. package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
  642. package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
  643. package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
  644. package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
  645. package/src/providers/speech-to-text/provider-catalog.ts +3 -3
  646. package/src/providers/speech-to-text/resolve.ts +26 -28
  647. package/src/providers/together/client.ts +1 -1
  648. package/src/providers/types.ts +4 -4
  649. package/src/providers/voice-error-copy.ts +1 -1
  650. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
  651. package/src/runtime/agent-wake.ts +1 -1
  652. package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
  653. package/src/runtime/auth/middleware.ts +1 -1
  654. package/src/runtime/auth/scopes.ts +1 -1
  655. package/src/runtime/capabilities.ts +1 -1
  656. package/src/runtime/channel-invite-transports/discord.ts +1 -1
  657. package/src/runtime/channel-invite-transports/email.ts +2 -2
  658. package/src/runtime/channel-readiness-service.ts +15 -13
  659. package/src/runtime/channel-reply-session.test.ts +1 -1
  660. package/src/runtime/channel-reply-session.ts +1 -1
  661. package/src/runtime/http-server.ts +4 -4
  662. package/src/runtime/introduction-policy.ts +4 -4
  663. package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
  664. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
  665. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
  666. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
  667. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
  668. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
  669. package/src/runtime/migrations/migration-transport.ts +3 -3
  670. package/src/runtime/migrations/origin-mode.ts +6 -9
  671. package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
  672. package/src/runtime/migrations/vbundle-importer.ts +4 -4
  673. package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
  674. package/src/runtime/migrations/vbundle-validator.ts +1 -1
  675. package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
  676. package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
  677. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
  678. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +126 -82
  679. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
  680. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
  681. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
  682. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
  683. package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
  684. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  685. package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
  686. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
  687. package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
  688. package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
  689. package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
  690. package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
  691. package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
  692. package/src/runtime/routes/app-management-routes.ts +1 -1
  693. package/src/runtime/routes/attachment-routes.ts +1 -1
  694. package/src/runtime/routes/auth-routes.ts +14 -14
  695. package/src/runtime/routes/avatar-routes.ts +0 -14
  696. package/src/runtime/routes/background-wake-routes.ts +4 -4
  697. package/src/runtime/routes/channel-availability-routes.ts +4 -4
  698. package/src/runtime/routes/client-routes.ts +5 -5
  699. package/src/runtime/routes/cloud-credentials.ts +45 -0
  700. package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +86 -119
  701. package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
  702. package/src/runtime/routes/conversation-query-routes.ts +345 -667
  703. package/src/runtime/routes/credential-routes.ts +28 -30
  704. package/src/runtime/routes/default-provider-routes.ts +1 -1
  705. package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
  706. package/src/runtime/routes/desktop-setup-routes.ts +1 -1
  707. package/src/runtime/routes/domain-routes.ts +15 -21
  708. package/src/runtime/routes/email-routes.ts +13 -13
  709. package/src/runtime/routes/errors.ts +1 -1
  710. package/src/runtime/routes/gateway-status-routes.ts +1 -1
  711. package/src/runtime/routes/identity-routes.ts +3 -3
  712. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  713. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
  714. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
  715. package/src/runtime/routes/index.ts +1 -1
  716. package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
  717. package/src/runtime/routes/inference-profiles-routes.ts +11 -11
  718. package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
  719. package/src/runtime/routes/ingress-status-routes.ts +1 -1
  720. package/src/runtime/routes/integrations/a2a.ts +2 -2
  721. package/src/runtime/routes/integrations/twilio.ts +21 -35
  722. package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
  723. package/src/runtime/routes/live-voice-routes.test.ts +4 -4
  724. package/src/runtime/routes/live-voice-routes.ts +6 -6
  725. package/src/runtime/routes/migration-routes.ts +34 -40
  726. package/src/runtime/routes/oauth-commands-routes.ts +31 -31
  727. package/src/runtime/routes/oauth-providers.ts +5 -5
  728. package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
  729. package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
  730. package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
  731. package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
  732. package/src/runtime/routes/oauth-request-hints.ts +1 -1
  733. package/src/runtime/routes/plugins-routes.ts +9 -9
  734. package/src/runtime/routes/profiler-routes.ts +1 -1
  735. package/src/runtime/routes/ps-routes.ts +4 -0
  736. package/src/runtime/routes/roadmap-routes.ts +18 -20
  737. package/src/runtime/routes/secret-routes.ts +20 -61
  738. package/src/runtime/routes/settings-routes.ts +18 -23
  739. package/src/runtime/routes/telemetry-routes.ts +4 -4
  740. package/src/runtime/routes/tts-routes.ts +4 -4
  741. package/src/runtime/routes/user-route-resolution.ts +1 -1
  742. package/src/runtime/routes/webhook-routes.ts +18 -18
  743. package/src/runtime/routes/workflow-routes.ts +5 -5
  744. package/src/runtime/sync/resource-sync-events.ts +2 -2
  745. package/src/runtime/verification-outbound-actions.ts +4 -4
  746. package/src/schedule/integration-status.ts +6 -6
  747. package/src/schedule/run-script.ts +1 -1
  748. package/src/schedule/schedule-timezone.ts +1 -1
  749. package/src/schedule/worker.ts +5 -5
  750. package/src/security/auth-fallback-events-store.ts +1 -1
  751. package/src/security/oauth2.ts +4 -4
  752. package/src/skills/available-skills.ts +4 -4
  753. package/src/skills/catalog-files.ts +8 -8
  754. package/src/skills/catalog-install.ts +12 -12
  755. package/src/skills/categories-cache.ts +3 -3
  756. package/src/skills/clawhub.ts +1 -1
  757. package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
  758. package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
  759. package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
  760. package/src/skills/inline-command-runner.ts +1 -1
  761. package/src/skills/install-meta.ts +1 -1
  762. package/src/skills/path-classifier.ts +4 -4
  763. package/src/skills/skill-history.ts +4 -4
  764. package/src/skills/skillssh-registry.ts +1 -1
  765. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
  766. package/src/stt/daemon-batch-transcriber.ts +7 -7
  767. package/src/stt/types.ts +3 -3
  768. package/src/subagent/manager.ts +15 -15
  769. package/src/subagent/types.ts +1 -1
  770. package/src/telegram/__tests__/webhook-health.test.ts +16 -16
  771. package/src/telegram/webhook-health.ts +10 -10
  772. package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
  773. package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
  774. package/src/telemetry/config-setting-events-store.ts +1 -1
  775. package/src/telemetry/config-setting-snapshot.ts +1 -1
  776. package/src/telemetry/memory-corpus-size.ts +1 -1
  777. package/src/telemetry/memory-tier-reporter.test.ts +2 -2
  778. package/src/telemetry/memory-tier-reporter.ts +3 -3
  779. package/src/telemetry/telemetry-event-sources.test.ts +2 -2
  780. package/src/telemetry/telemetry-event-sources.ts +9 -9
  781. package/src/telemetry/telemetry-events-outbox.ts +2 -2
  782. package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
  783. package/src/telemetry/telemetry-wire-validation.ts +3 -3
  784. package/src/telemetry/telemetry-wire.generated.ts +1 -1
  785. package/src/telemetry/tool-audit.ts +1 -1
  786. package/src/telemetry/tool-executed-events-store.test.ts +1 -1
  787. package/src/telemetry/trace-collection-policy.ts +4 -4
  788. package/src/telemetry/turn-events-store.ts +1 -1
  789. package/src/telemetry/turn-outcome.ts +1 -1
  790. package/src/telemetry/turn-trace-store.ts +2 -2
  791. package/src/telemetry/types.test.ts +1 -1
  792. package/src/telemetry/types.ts +19 -19
  793. package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
  794. package/src/telemetry/usage-telemetry-reporter.ts +17 -17
  795. package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
  796. package/src/telemetry/watchdog-direct-emit.ts +10 -10
  797. package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
  798. package/src/tools/browser/cdp-client/factory.ts +1 -1
  799. package/src/tools/computer-use/target.ts +2 -2
  800. package/src/tools/credentials/store.ts +2 -20
  801. package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
  802. package/src/tools/network/__tests__/web-search.test.ts +14 -14
  803. package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
  804. package/src/tools/network/web-search.ts +9 -9
  805. package/src/tools/permission-checker.ts +2 -2
  806. package/src/tools/shared/input-misuse.ts +1 -1
  807. package/src/tools/shared/input-repairs.ts +4 -4
  808. package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
  809. package/src/tools/skills/find-similar-skills.test.ts +7 -7
  810. package/src/tools/skills/find-similar-skills.ts +15 -15
  811. package/src/tools/skills/load.ts +6 -6
  812. package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
  813. package/src/tools/skills/skill-script-runner.ts +2 -2
  814. package/src/tools/terminal/safe-env.ts +3 -3
  815. package/src/tools/tool-types.ts +2 -2
  816. package/src/tools/types.ts +2 -2
  817. package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
  818. package/src/tools/workflows/manage-workflows.ts +1 -1
  819. package/src/tools/workspace-tools/loader.ts +1 -1
  820. package/src/tts/__tests__/cadet-provider.test.ts +5 -5
  821. package/src/tts/provider-catalog.ts +1 -1
  822. package/src/tts/providers/cadet-provider.ts +23 -23
  823. package/src/tts/providers/cadet-tts-socket.ts +2 -2
  824. package/src/tts/tts-config-resolver.ts +1 -1
  825. package/src/tts/tts-voice-field.ts +3 -3
  826. package/src/usage/subagent-attribution.ts +1 -1
  827. package/src/util/__tests__/process-table.test.ts +47 -0
  828. package/src/util/canonicalize-identity.ts +1 -1
  829. package/src/util/cgroup-cpu.ts +5 -5
  830. package/src/util/cgroup-memory.ts +2 -2
  831. package/src/util/container-cpu-sampler.ts +4 -4
  832. package/src/util/disk-usage.ts +4 -4
  833. package/src/util/errors.ts +3 -3
  834. package/src/util/layout.ts +479 -0
  835. package/src/util/oom-priority.ts +1 -1
  836. package/src/util/platform.ts +12 -468
  837. package/src/util/process-table.ts +39 -5
  838. package/src/util/provider-error-patterns.ts +2 -2
  839. package/src/watch/__tests__/watch-retro.test.ts +2 -2
  840. package/src/watch/watch-retro.ts +1 -1
  841. package/src/watcher/__tests__/telemetry.test.ts +2 -2
  842. package/src/watcher/telemetry.ts +1 -1
  843. package/src/windows-compiled-cli.ts +1 -1
  844. package/src/workspace/adaptive-thinking-repair.ts +4 -4
  845. package/src/workspace/byok-default-profile-ensure.ts +7 -7
  846. package/src/workspace/git-service.ts +2 -2
  847. package/src/workspace/migrations/006-services-config.ts +1 -1
  848. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  849. package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
  850. package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
  851. package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
  852. package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
  853. package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
  854. package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
  855. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
  856. package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
  857. package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
  858. package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
  859. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
  860. package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
  861. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
  862. package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
  863. package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
  864. package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
  865. package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
  866. package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
  867. package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
  868. package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
  869. package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
  870. package/src/workspace/migrations/127-backfill-default-provider.ts +6 -6
  871. package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
  872. package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
  873. package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
  874. package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
  875. package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
  876. package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
  877. package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
  878. package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
  879. package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
  880. package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
  881. package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
  882. package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
  883. package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
  884. package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
  885. package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
  886. package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
  887. package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
  888. package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
  889. package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
  890. package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
  891. package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
  892. package/src/workspace/migrations/registry.ts +6 -6
  893. package/src/workspace/top-level-renderer.ts +1 -1
  894. package/src/workspace/turn-commit.ts +2 -2
  895. package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
  896. package/src/__tests__/mock-gateway-ipc.ts +0 -260
  897. package/src/api/events/platform-disconnected.ts +0 -21
  898. package/src/api/events/show-platform-login.ts +0 -20
  899. package/src/config/platform-rehydration.ts +0 -60
  900. package/src/platform/feature-gate.ts +0 -8
  901. package/src/plugins/defaults/platform-hosted/package.json +0 -14
  902. package/src/runtime/routes/platform-managed-credentials.ts +0 -50
  903. /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
  904. /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
@@ -1,5 +1,6 @@
1
1
  import { beforeEach, describe, expect, mock, test } from "bun:test";
2
2
 
3
+ import { setOverridesForTesting } from "../__tests__/feature-flag-test-helpers.js";
3
4
  import {
4
5
  BadRequestError,
5
6
  ForbiddenError,
@@ -17,7 +18,6 @@ let syncRejects: boolean;
17
18
  let disconnectedProviders: string[];
18
19
  let credentialIdCounter: number;
19
20
  let scrubbedValues: string[];
20
- let scrubRejects: boolean;
21
21
  let liveRecordsUnreachable: boolean;
22
22
 
23
23
  function metaKey(service: string, field: string): string {
@@ -37,11 +37,6 @@ mock.module("../runtime/auth/route-policy.js", () => ({
37
37
  ACTOR_PRINCIPALS: [],
38
38
  }));
39
39
 
40
- let chatCredentialRevealFlag = false;
41
- mock.module("../config/assistant-feature-flags.js", () => ({
42
- isAssistantFeatureFlagEnabled: (key: string) =>
43
- key === "chat-credential-reveal" && chatCredentialRevealFlag,
44
- }));
45
40
  mock.module("../config/loader.js", () => ({
46
41
  getConfig: () => ({}),
47
42
  }));
@@ -117,16 +112,13 @@ mock.module("../oauth/oauth-store.js", () => ({
117
112
  }),
118
113
  }));
119
114
 
120
- mock.module("../credential-execution/managed-catalog.js", () => ({
121
- fetchManagedCatalog: mock(async () => ({ ok: true, descriptors: [] })),
115
+ mock.module("../credential-execution/cloud-catalog.js", () => ({
116
+ fetchCloudCatalog: mock(async () => ({ ok: true, descriptors: [] })),
122
117
  }));
123
118
 
124
119
  mock.module("../daemon/credential-transcript-scrub.js", () => ({
125
120
  scrubStoredCredentialFromTranscripts: mock(async (value: string) => {
126
121
  scrubbedValues.push(value);
127
- if (scrubRejects) {
128
- throw new Error("transcript sweep failed");
129
- }
130
122
  return { dbMessagesScrubbed: 0, residentMessagesScrubbed: 0 };
131
123
  }),
132
124
  }));
@@ -179,7 +171,7 @@ type ListResponse = {
179
171
  scrubbedValue: string;
180
172
  hasSecret: boolean;
181
173
  }>;
182
- managedCredentials: unknown[];
174
+ cloudCredentials: unknown[];
183
175
  };
184
176
  type DeleteResponse = {
185
177
  service: string;
@@ -199,11 +191,10 @@ describe("credentials routes", () => {
199
191
  disconnectedProviders = [];
200
192
  credentialIdCounter = 0;
201
193
  scrubbedValues = [];
202
- scrubRejects = false;
203
194
  liveRecordsUnreachable = false;
204
195
  _resetRevealSuccessRegistryForTest();
205
196
  resetForChatMintRegistryForTest();
206
- chatCredentialRevealFlag = false;
197
+ setOverridesForTesting({ "chat-credential-reveal": false });
207
198
  });
208
199
 
209
200
  describe("credentials_reveal", () => {
@@ -341,7 +332,7 @@ describe("credentials routes", () => {
341
332
  });
342
333
 
343
334
  test("a direct local forChat reveal returns the sentinel, records the mint, and no plaintext proof", async () => {
344
- chatCredentialRevealFlag = true;
335
+ setOverridesForTesting({ "chat-credential-reveal": true });
345
336
  secureStore.set(seedKey("vercel", "api_token"), SECRET_VALUE);
346
337
  openRevealProofWindow();
347
338
  const watermark = currentRevealSuccessWatermark();
@@ -376,7 +367,7 @@ describe("credentials routes", () => {
376
367
  });
377
368
 
378
369
  test("a gateway-proxied forChat reveal returns the sentinel but records no mint", async () => {
379
- chatCredentialRevealFlag = true;
370
+ setOverridesForTesting({ "chat-credential-reveal": true });
380
371
  secureStore.set(seedKey("vercel", "api_token"), SECRET_VALUE);
381
372
 
382
373
  const result = (await revealRoute!.handler({
@@ -400,7 +391,7 @@ describe("credentials routes", () => {
400
391
  // Direct terminal use (outside any conversation's tool shell) has no
401
392
  // nonce to forward. The reveal works, but neither registry records —
402
393
  // there is no conversation whose transcript could spend the record.
403
- chatCredentialRevealFlag = true;
394
+ setOverridesForTesting({ "chat-credential-reveal": true });
404
395
  secureStore.set(seedKey("vercel", "api_token"), SECRET_VALUE);
405
396
  openRevealProofWindow();
406
397
  const watermark = currentRevealSuccessWatermark();
@@ -421,7 +412,7 @@ describe("credentials routes", () => {
421
412
  });
422
413
 
423
414
  test("a forChat reveal with no principal header records no mint (fails closed)", async () => {
424
- chatCredentialRevealFlag = true;
415
+ setOverridesForTesting({ "chat-credential-reveal": true });
425
416
  secureStore.set(seedKey("vercel", "api_token"), SECRET_VALUE);
426
417
 
427
418
  const result = (await revealRoute!.handler({
@@ -622,57 +613,6 @@ describe("credentials routes", () => {
622
613
  expect(scrubbedValues).toEqual([SECRET_VALUE]);
623
614
  });
624
615
 
625
- test("non-secret cadet cloud fields are stored but never scrubbed", async () => {
626
- /**
627
- * Platform identity ids are benign UUIDs that legitimately appear in
628
- * transcripts; scrubbing them would redact ordinary conversation
629
- * content. Shares the exemption with the /v1/secrets credential branch
630
- * via isNonSecretPlatformField.
631
- *
632
- * `platform_base_url` carries the same exemption but is not settable
633
- * here: it decides which host receives the platform API key, so the
634
- * credentials API refuses it (see the platform-managed suite).
635
- */
636
- for (const field of [
637
- "platform_assistant_id",
638
- "platform_organization_id",
639
- "platform_user_id",
640
- ]) {
641
- const result = (await setRoute!.handler({
642
- body: {
643
- service: "cadet",
644
- field,
645
- value: "0198f4c2-1111-2222-3333-444455556666",
646
- },
647
- })) as SetResponse;
648
- expect(result.service).toBe("cadet");
649
- }
650
-
651
- expect(scrubbedValues).toEqual([]);
652
- });
653
-
654
- test("the set still succeeds when the transcript scrub rejects", async () => {
655
- /**
656
- * The scrub is post-store hygiene: the credential IS stored, so a
657
- * scrub failure is logged and must stay invisible to the caller.
658
- */
659
- // GIVEN a scrub that rejects
660
- scrubRejects = true;
661
-
662
- // WHEN a credential is stored
663
- const result = (await setRoute!.handler({
664
- body: { service: "vercel", field: "api_token", value: SECRET_VALUE },
665
- })) as SetResponse;
666
-
667
- // THEN the route still returns success and the secret is persisted
668
- expect(result.service).toBe("vercel");
669
- expect(result.credentialId).toBe("cred-1");
670
- expect(secureStore.get(seedKey("vercel", "api_token"))).toBe(
671
- SECRET_VALUE,
672
- );
673
- expect(scrubbedValues).toEqual([SECRET_VALUE]);
674
- });
675
-
676
616
  test("leaves a non-ACP service unaffected by the OAuth-field guard", async () => {
677
617
  /**
678
618
  * The guard is scoped to the ACP service; the same field name on another
@@ -858,16 +798,15 @@ describe("credentials routes", () => {
858
798
  });
859
799
  });
860
800
 
861
- describe("platform-managed credentials", () => {
801
+ describe("cloud credentials", () => {
862
802
  const PLATFORM_KEY = "vk-platform-provisioned-key";
863
- const PLATFORM_BASE_URL = "https://platform.example";
864
803
 
865
804
  /**
866
- * The platform provisions the pod's own credentials by POSTing them to
805
+ * The cloud provisions the pod's own credentials by POSTing them to
867
806
  * `/v1/secrets` as `credential` entries, which land in the same secure
868
807
  * store and metadata table as a user's own credentials.
869
808
  */
870
- function seedPlatformCredential(field: string, value: string): string {
809
+ function seedCloudCredential(field: string, value: string): string {
871
810
  // The secure store speaks the REAL credentialKey format; the metadata
872
811
  // mock keeps its own service:field addressing.
873
812
  secureStore.set(seedKey("cadet", field), value);
@@ -886,9 +825,8 @@ describe("credentials routes", () => {
886
825
  }
887
826
 
888
827
  test("the listing omits cloud credentials and keeps the user's own", async () => {
889
- // GIVEN the platform's provisioned credentials alongside a user's
890
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
891
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
828
+ // GIVEN the cloud's provisioned credentials alongside a user's
829
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
892
830
  await setRoute!.handler({
893
831
  body: { service: "vercel", field: "api_token", value: SECRET_VALUE },
894
832
  });
@@ -903,12 +841,12 @@ describe("credentials routes", () => {
903
841
  expect(JSON.stringify(result)).not.toContain(PLATFORM_KEY);
904
842
  });
905
843
 
906
- test("reveal refuses the platform API key for every principal", async () => {
844
+ test("reveal refuses the cloud API key for every principal", async () => {
907
845
  /**
908
846
  * Both farming paths land on this handler: the assistant's own tool
909
847
  * shell arrives as `local`, a Settings click as `user`.
910
848
  */
911
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
849
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
912
850
 
913
851
  for (const principal of ["local", "user", "svc_gateway"]) {
914
852
  await expect(
@@ -921,7 +859,7 @@ describe("credentials routes", () => {
921
859
  });
922
860
 
923
861
  test("reveal refuses a cloud credential looked up by UUID", async () => {
924
- const credentialId = seedPlatformCredential(
862
+ const credentialId = seedCloudCredential(
925
863
  "assistant_api_key",
926
864
  PLATFORM_KEY,
927
865
  );
@@ -935,75 +873,67 @@ describe("credentials routes", () => {
935
873
  });
936
874
 
937
875
  test("inspect refuses cloud credentials", async () => {
938
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
939
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
876
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
940
877
 
941
- for (const field of ["assistant_api_key", "platform_base_url"]) {
942
- await expect(
943
- inspectRoute!.handler({
944
- body: { service: "cadet", field },
945
- }),
946
- ).rejects.toThrow(ForbiddenError);
947
- }
878
+ await expect(
879
+ inspectRoute!.handler({
880
+ body: { service: "cadet", field: "assistant_api_key" },
881
+ }),
882
+ ).rejects.toThrow(ForbiddenError);
948
883
  });
949
884
 
950
885
  test("set refuses cloud credentials", async () => {
951
886
  /**
952
- * A write is a read by another name: repointing `platform_base_url`
953
- * sends the next platform call, bearing the API key, to a host the
954
- * writer chose. The platform's own provisioning does not come through
887
+ * The cloud key is owned by the cloud's own provisioning; a
888
+ * hand-set key would spend Cadet's inference budget on a caller the
889
+ * writer chose. The cloud's own provisioning does not come through
955
890
  * this route; it writes over `POST /v1/secrets`.
956
891
  */
957
- for (const field of ["assistant_api_key", "platform_base_url"]) {
958
- await expect(
959
- setRoute!.handler({
960
- body: { service: "cadet", field, value: "https://attacker.test" },
961
- }),
962
- ).rejects.toThrow(ForbiddenError);
963
- }
892
+ await expect(
893
+ setRoute!.handler({
894
+ body: {
895
+ service: "cadet",
896
+ field: "assistant_api_key",
897
+ value: "attacker-key",
898
+ },
899
+ }),
900
+ ).rejects.toThrow(ForbiddenError);
964
901
 
965
902
  expect(secureStore.has(seedKey("cadet", "assistant_api_key"))).toBe(
966
903
  false,
967
904
  );
968
- expect(secureStore.has(seedKey("cadet", "platform_base_url"))).toBe(
969
- false,
970
- );
971
905
  });
972
906
 
973
907
  test("set does not overwrite an already-provisioned cloud credential", async () => {
974
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
908
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
975
909
 
976
910
  await expect(
977
911
  setRoute!.handler({
978
912
  body: {
979
913
  service: "cadet",
980
- field: "platform_base_url",
981
- value: "https://attacker.test",
914
+ field: "assistant_api_key",
915
+ value: "attacker-key",
982
916
  },
983
917
  }),
984
918
  ).rejects.toThrow(/owned by Cadet Cloud/);
985
919
 
986
- expect(secureStore.get(seedKey("cadet", "platform_base_url"))).toBe(
987
- PLATFORM_BASE_URL,
920
+ expect(secureStore.get(seedKey("cadet", "assistant_api_key"))).toBe(
921
+ PLATFORM_KEY,
988
922
  );
989
923
  });
990
924
 
991
925
  test("delete refuses cloud credentials", async () => {
992
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
993
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
926
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
994
927
 
995
- for (const field of ["assistant_api_key", "platform_base_url"]) {
996
- await expect(
997
- deleteRoute!.handler({ body: { service: "cadet", field } }),
998
- ).rejects.toThrow(ForbiddenError);
999
- }
928
+ await expect(
929
+ deleteRoute!.handler({
930
+ body: { service: "cadet", field: "assistant_api_key" },
931
+ }),
932
+ ).rejects.toThrow(ForbiddenError);
1000
933
 
1001
934
  expect(secureStore.get(seedKey("cadet", "assistant_api_key"))).toBe(
1002
935
  PLATFORM_KEY,
1003
936
  );
1004
- expect(secureStore.get(seedKey("cadet", "platform_base_url"))).toBe(
1005
- PLATFORM_BASE_URL,
1006
- );
1007
937
  });
1008
938
 
1009
939
  test("a user credential is still writable and deletable", async () => {
@@ -1023,7 +953,7 @@ describe("credentials routes", () => {
1023
953
  });
1024
954
 
1025
955
  test("a user credential still inspects and reveals", async () => {
1026
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
956
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1027
957
  await setRoute!.handler({
1028
958
  body: { service: "vercel", field: "api_token", value: SECRET_VALUE },
1029
959
  });
@@ -1041,16 +971,15 @@ describe("credentials routes", () => {
1041
971
  });
1042
972
  });
1043
973
 
1044
- describe("platform-managed credentials", () => {
974
+ describe("cloud credentials", () => {
1045
975
  const PLATFORM_KEY = "vk-platform-provisioned-key";
1046
- const PLATFORM_BASE_URL = "https://platform.example";
1047
976
 
1048
977
  /**
1049
- * The platform provisions the pod's own credentials by POSTing them to
978
+ * The cloud provisions the pod's own credentials by POSTing them to
1050
979
  * `/v1/secrets` as `credential` entries, which land in the same secure
1051
980
  * store and metadata table as a user's own credentials.
1052
981
  */
1053
- function seedPlatformCredential(field: string, value: string): string {
982
+ function seedCloudCredential(field: string, value: string): string {
1054
983
  // The secure store speaks the REAL credentialKey format; the metadata
1055
984
  // mock keeps its own service:field addressing.
1056
985
  secureStore.set(seedKey("cadet", field), value);
@@ -1069,9 +998,8 @@ describe("credentials routes", () => {
1069
998
  }
1070
999
 
1071
1000
  test("the listing omits cloud credentials and keeps the user's own", async () => {
1072
- // GIVEN the platform's provisioned credentials alongside a user's
1073
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
1074
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
1001
+ // GIVEN the cloud's provisioned credentials alongside a user's
1002
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1075
1003
  await setRoute!.handler({
1076
1004
  body: { service: "vercel", field: "api_token", value: SECRET_VALUE },
1077
1005
  });
@@ -1086,12 +1014,12 @@ describe("credentials routes", () => {
1086
1014
  expect(JSON.stringify(result)).not.toContain(PLATFORM_KEY);
1087
1015
  });
1088
1016
 
1089
- test("reveal refuses the platform API key for every principal", async () => {
1017
+ test("reveal refuses the cloud API key for every principal", async () => {
1090
1018
  /**
1091
1019
  * Both farming paths land on this handler: the assistant's own tool
1092
1020
  * shell arrives as `local`, a Settings click as `user`.
1093
1021
  */
1094
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
1022
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1095
1023
 
1096
1024
  for (const principal of ["local", "user", "svc_gateway"]) {
1097
1025
  await expect(
@@ -1104,7 +1032,7 @@ describe("credentials routes", () => {
1104
1032
  });
1105
1033
 
1106
1034
  test("reveal refuses a cloud credential looked up by UUID", async () => {
1107
- const credentialId = seedPlatformCredential(
1035
+ const credentialId = seedCloudCredential(
1108
1036
  "assistant_api_key",
1109
1037
  PLATFORM_KEY,
1110
1038
  );
@@ -1118,75 +1046,67 @@ describe("credentials routes", () => {
1118
1046
  });
1119
1047
 
1120
1048
  test("inspect refuses cloud credentials", async () => {
1121
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
1122
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
1049
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1123
1050
 
1124
- for (const field of ["assistant_api_key", "platform_base_url"]) {
1125
- await expect(
1126
- inspectRoute!.handler({
1127
- body: { service: "cadet", field },
1128
- }),
1129
- ).rejects.toThrow(ForbiddenError);
1130
- }
1051
+ await expect(
1052
+ inspectRoute!.handler({
1053
+ body: { service: "cadet", field: "assistant_api_key" },
1054
+ }),
1055
+ ).rejects.toThrow(ForbiddenError);
1131
1056
  });
1132
1057
 
1133
1058
  test("set refuses cloud credentials", async () => {
1134
1059
  /**
1135
- * A write is a read by another name: repointing `platform_base_url`
1136
- * sends the next platform call, bearing the API key, to a host the
1137
- * writer chose. The platform's own provisioning does not come through
1060
+ * The cloud key is owned by the cloud's own provisioning; a
1061
+ * hand-set key would spend Cadet's inference budget on a caller the
1062
+ * writer chose. The cloud's own provisioning does not come through
1138
1063
  * this route; it writes over `POST /v1/secrets`.
1139
1064
  */
1140
- for (const field of ["assistant_api_key", "platform_base_url"]) {
1141
- await expect(
1142
- setRoute!.handler({
1143
- body: { service: "cadet", field, value: "https://attacker.test" },
1144
- }),
1145
- ).rejects.toThrow(ForbiddenError);
1146
- }
1065
+ await expect(
1066
+ setRoute!.handler({
1067
+ body: {
1068
+ service: "cadet",
1069
+ field: "assistant_api_key",
1070
+ value: "attacker-key",
1071
+ },
1072
+ }),
1073
+ ).rejects.toThrow(ForbiddenError);
1147
1074
 
1148
1075
  expect(secureStore.has(seedKey("cadet", "assistant_api_key"))).toBe(
1149
1076
  false,
1150
1077
  );
1151
- expect(secureStore.has(seedKey("cadet", "platform_base_url"))).toBe(
1152
- false,
1153
- );
1154
1078
  });
1155
1079
 
1156
1080
  test("set does not overwrite an already-provisioned cloud credential", async () => {
1157
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
1081
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1158
1082
 
1159
1083
  await expect(
1160
1084
  setRoute!.handler({
1161
1085
  body: {
1162
1086
  service: "cadet",
1163
- field: "platform_base_url",
1164
- value: "https://attacker.test",
1087
+ field: "assistant_api_key",
1088
+ value: "attacker-key",
1165
1089
  },
1166
1090
  }),
1167
1091
  ).rejects.toThrow(/owned by Cadet Cloud/);
1168
1092
 
1169
- expect(secureStore.get(seedKey("cadet", "platform_base_url"))).toBe(
1170
- PLATFORM_BASE_URL,
1093
+ expect(secureStore.get(seedKey("cadet", "assistant_api_key"))).toBe(
1094
+ PLATFORM_KEY,
1171
1095
  );
1172
1096
  });
1173
1097
 
1174
1098
  test("delete refuses cloud credentials", async () => {
1175
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
1176
- seedPlatformCredential("platform_base_url", PLATFORM_BASE_URL);
1099
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1177
1100
 
1178
- for (const field of ["assistant_api_key", "platform_base_url"]) {
1179
- await expect(
1180
- deleteRoute!.handler({ body: { service: "cadet", field } }),
1181
- ).rejects.toThrow(ForbiddenError);
1182
- }
1101
+ await expect(
1102
+ deleteRoute!.handler({
1103
+ body: { service: "cadet", field: "assistant_api_key" },
1104
+ }),
1105
+ ).rejects.toThrow(ForbiddenError);
1183
1106
 
1184
1107
  expect(secureStore.get(seedKey("cadet", "assistant_api_key"))).toBe(
1185
1108
  PLATFORM_KEY,
1186
1109
  );
1187
- expect(secureStore.get(seedKey("cadet", "platform_base_url"))).toBe(
1188
- PLATFORM_BASE_URL,
1189
- );
1190
1110
  });
1191
1111
 
1192
1112
  test("a user credential is still writable and deletable", async () => {
@@ -1206,7 +1126,7 @@ describe("credentials routes", () => {
1206
1126
  });
1207
1127
 
1208
1128
  test("a user credential still inspects and reveals", async () => {
1209
- seedPlatformCredential("assistant_api_key", PLATFORM_KEY);
1129
+ seedCloudCredential("assistant_api_key", PLATFORM_KEY);
1210
1130
  await setRoute!.handler({
1211
1131
  body: { service: "vercel", field: "api_token", value: SECRET_VALUE },
1212
1132
  });
@@ -179,8 +179,8 @@ describe("Invariant 2: no generic plaintext secret read API", () => {
179
179
  "runtime/routes/inference-provider-connection-routes.ts", // connection delete removes its dedicated per-connection key slot (deleteSecureKeyAsync only; no reads)
180
180
  "daemon/handlers/config-slack-channel.ts", // Slack channel config credential management
181
181
  "daemon/handlers/config-discord-channel.ts", // Discord channel bot token management
182
- "providers/platform-proxy/context.ts", // managed proxy API key lookup for provider initialization
183
- "platform/client.ts", // platform client credential store fallback for standalone CLI auth
182
+ "providers/cloud-proxy/context.ts", // cloud proxy API key lookup for provider initialization
183
+ "cloud/client.ts", // cloud client credential store fallback for standalone CLI auth
184
184
  "mcp/mcp-header-store.ts", // MCP static auth header persistence (credential store CRUD + legacy migration)
185
185
  "mcp/mcp-oauth-provider.ts", // MCP OAuth token/client/discovery persistence
186
186
  "messaging/providers/slack/auth.ts", // canonical Slack auth resolver (bot/user token lookup for adapter + routes)
@@ -211,8 +211,8 @@ describe("Invariant 2: no generic plaintext secret read API", () => {
211
211
  "persistence/llm-request-log-source-clickhouse.ts", // ClickHouse read source — lazy lookup of clickhouse:url + clickhouse:password + cadet:platform_assistant_id for self-scoped mirror reads
212
212
  "persistence/llm-request-log-sink-clickhouse.ts", // ClickHouse write sink — lazy lookup of clickhouse:url + clickhouse:password + cadet:platform_assistant_id for self-scoped log writes
213
213
  "persistence/compaction-log-store-clickhouse.ts", // ClickHouse compaction log writer — lazy lookup of clickhouse:url + clickhouse:password + cadet:platform_assistant_id for self-scoped event writes
214
- "config/platform-identity.ts", // assistant API key lookup for platform identity validate
215
- "config/platform-rehydration.ts", // startup rehydration of platform base URL from the credential store and ids from platform validate
214
+ "config/cloud-identity.ts", // assistant API key lookup for platform identity validate
215
+ "config/cloud-rehydration.ts", // startup rehydration of platform base URL from the credential store and ids from platform validate
216
216
  "workspace/migrations/006-services-config.ts", // services config migration reads provider API keys
217
217
  "workspace/migrations/018-rekey-compound-credential-keys.ts", // re-key compound credential storage keys
218
218
  "daemon/conversation-process.ts", // masked provider key display
@@ -223,14 +223,13 @@ describe("Invariant 2: no generic plaintext secret read API", () => {
223
223
  "runtime/routes/credential-prompt-routes.ts", // Route for secure credential prompt (stores secret via setSecureKeyAsync)
224
224
  "runtime/routes/credential-routes.ts", // CLI credential management routes (CLI-migrated to IPC)
225
225
  "runtime/routes/sanity-routes.ts", // Sanity connect/discover routes (reads stored api_token from credential store)
226
- "runtime/routes/platform-routes.ts", // CLI platform connect/disconnect/status routes (CLI-migrated to IPC)
226
+ "runtime/routes/cloud-routes.ts", // CLI platform connect/disconnect/status routes (CLI-migrated to IPC)
227
227
  "runtime/routes/roadmap-routes.ts", // signs public-roadmap calls with the assistant API key (outbound Authorization header only; the value never reaches a response, a log, or the CLI process)
228
- "inbound/platform-callback-registration.ts", // managed credential lookup for platform base URL and API key
228
+ "inbound/cloud-callback-registration.ts", // managed API key lookup for callback registration
229
229
  "tts/providers/elevenlabs-provider.ts", // ElevenLabs TTS API key lookup
230
230
  "tts/providers/deepgram-provider.ts", // Deepgram TTS API key lookup
231
231
  "tts/providers/xai-provider.ts", // xAI TTS API key lookup
232
232
  "credential-health/credential-health-service.ts", // credential health check reads access tokens for liveness pings
233
- "runtime/routes/avatar-routes.ts", // avatar generate route reads platform_base_url from credential store
234
233
  "cli/commands/keys.ts", // CLI provider key management
235
234
  "cli/commands/oauth/connect.ts", // CLI OAuth connect stored-secret verification
236
235
  "runtime/routes/identity-routes.ts", // health/readyz endpoint checks CES connectivity via getCesClient
@@ -80,7 +80,7 @@ describe("ensureCompleteCustomProfiles", () => {
80
80
  expect(saved.provider_connection).toBeUndefined();
81
81
  });
82
82
 
83
- test("inherits the cadet managed connection only onto managed-routable providers", () => {
83
+ test("inherits the cadet cloud connection only onto managed-routable providers", () => {
84
84
  writeConfig({
85
85
  llm: {
86
86
  default: { ...distinctiveDefault, provider_connection: "cadet" },
@@ -1,6 +1,6 @@
1
1
  import { describe, expect, test } from "bun:test";
2
2
 
3
- import { UiConfigSchema } from "../config/schemas/platform.js";
3
+ import { UiConfigSchema } from "../config/schemas/cloud.js";
4
4
  import {
5
5
  canonicalizeTimeZone,
6
6
  extractUserTimeZoneFromRecall,
@@ -9,8 +9,8 @@
9
9
  * upstream than its primary, so an outage at the primary's provider can
10
10
  * be served by the backup.
11
11
  * - Probe coverage: every backup model is a catalog member of its upstream
12
- * provider, which is what feeds the platform's model liveness probe.
13
- * - Scoping: backups exist for the managed column only. A BYOK or chatgpt
12
+ * provider, which is what feeds the cloud's model liveness probe.
13
+ * - Scoping: backups exist for the cloud column only. A BYOK or chatgpt
14
14
  * default provider materializes no backup profiles, and its primaries
15
15
  * carry no `fallbackProfile` pointers.
16
16
  * - The effective catalog parses under `LLMSchema` (exercising the
@@ -38,7 +38,7 @@ import {
38
38
  FALLBACK_PROFILE_BY_KEY,
39
39
  } from "../config/default-profile-names.js";
40
40
  import { LLMSchema, type ProfileEntry } from "../config/schemas/llm.js";
41
- import { getManagedUpstream } from "../providers/cadet-model-routing.js";
41
+ import { getCloudUpstream } from "../providers/cadet-model-routing.js";
42
42
  import { isModelInCatalog } from "../providers/model-catalog.js";
43
43
 
44
44
  const cadet = { provider: "cadet" as const };
@@ -76,12 +76,12 @@ describe("fallbackProfile pointers on the cadet column", () => {
76
76
  });
77
77
 
78
78
  describe("cross-provider rule", () => {
79
- test("every backup dispatches through a different managed upstream than its primary", () => {
79
+ test("every backup dispatches through a different cloud upstream than its primary", () => {
80
80
  for (const key of DEFAULT_PROFILE_KEYS) {
81
81
  const primary = CODE_DEFAULT_PROFILE_ENTRIES[key];
82
82
  const backup = CODE_DEFAULT_PROFILE_ENTRIES[FALLBACK_PROFILE_BY_KEY[key]];
83
- const primaryUpstream = getManagedUpstream(primary.model as string);
84
- const backupUpstream = getManagedUpstream(backup.model as string);
83
+ const primaryUpstream = getCloudUpstream(primary.model as string);
84
+ const backupUpstream = getCloudUpstream(backup.model as string);
85
85
  expect(primaryUpstream).not.toBeNull();
86
86
  expect(backupUpstream).not.toBeNull();
87
87
  expect(backupUpstream).not.toBe(primaryUpstream);
@@ -91,7 +91,7 @@ describe("cross-provider rule", () => {
91
91
  test("every backup model is a catalog member of its upstream (liveness-probe coverage)", () => {
92
92
  for (const key of BACKUP_PROFILE_KEYS) {
93
93
  const model = CODE_DEFAULT_PROFILE_ENTRIES[key].model as string;
94
- const upstream = getManagedUpstream(model);
94
+ const upstream = getCloudUpstream(model);
95
95
  expect(upstream).not.toBeNull();
96
96
  expect(isModelInCatalog(upstream as string, model)).toBe(true);
97
97
  }
@@ -99,7 +99,7 @@ describe("cross-provider rule", () => {
99
99
  });
100
100
 
101
101
  describe("managed-column-only scoping", () => {
102
- test("the managed column materializes the backups after the primaries", () => {
102
+ test("the cloud column materializes the backups after the primaries", () => {
103
103
  const effective = getEffectiveProfilesForProvider(
104
104
  LLMSchema.parse({ default: cadet }),
105
105
  );
@@ -158,10 +158,10 @@ describe("managed-column-only scoping", () => {
158
158
  }
159
159
  });
160
160
 
161
- test("a persisted managed stub does not resurrect a backup off the managed column", () => {
162
- // A `config get` -> `config set` round-trip on a managed install can
161
+ test("a persisted managed stub does not resurrect a backup off the cloud column", () => {
162
+ // A `config get` -> `config set` round-trip on a cloud install can
163
163
  // leave a thin managed stub for a backup in `llm.profiles`
164
- // (`normalizeManagedProfileWrites`). The stub is the workspace's slot for
164
+ // (`normalizeCloudProfileWrites`). The stub is the workspace's slot for
165
165
  // a code-owned body, not a profile, so once the column has no body behind
166
166
  // it the name must stop being listed rather than resolve to a
167
167
  // providerless entry the pickers would offer and `LLMSchema` would
@@ -183,7 +183,7 @@ describe("managed-column-only scoping", () => {
183
183
  }),
184
184
  ).toBeUndefined();
185
185
  }
186
- // The managed column still has a body for the stub to stand for.
186
+ // The cloud column still has a body for the stub to stand for.
187
187
  expect(
188
188
  getEffectiveProfilesForProvider(
189
189
  LLMSchema.parse({ profiles: workspace, default: cadet }),
@@ -191,7 +191,7 @@ describe("managed-column-only scoping", () => {
191
191
  ).toBe(CODE_DEFAULT_PROFILE_ENTRIES["balanced-backup"]?.model);
192
192
  });
193
193
 
194
- test("a user-owned entry under a backup name stays listed off the managed column", () => {
194
+ test("a user-owned entry under a backup name stays listed off the cloud column", () => {
195
195
  // Nothing code-owned resolves there, so the entry is simply a profile of
196
196
  // that name and keeps its own body.
197
197
  const workspace: Record<string, ProfileEntry> = {
@@ -234,7 +234,7 @@ describe("effective-profile machinery", () => {
234
234
  test("a workspace entry never overlays a backup, whatever its source", () => {
235
235
  // Backups are code-owned (`CODE_OWNED_PROFILE_NAMES`), so unlike the
236
236
  // primaries they take no workspace overlay at all: not the usual
237
- // label/status/topP whitelist from a managed stub, and not a user-owned
237
+ // label/status/topP whitelist from a cloud stub, and not a user-owned
238
238
  // shadow. Disabling a backup through a hand-edited config would strand
239
239
  // the primary's fallback exactly when it is needed.
240
240
  for (const source of ["managed", "user"] as const) {
@@ -263,7 +263,7 @@ describe("effective-profile machinery", () => {
263
263
 
264
264
  test("backup profiles are delete-protected like the other managed defaults", () => {
265
265
  // Membership in these sets is what wires the route-level deletion
266
- // rejection (`rejectManagedProfileDeletion`, `handleCreateProfile`) and
266
+ // rejection (`rejectCloudProfileDeletion`, `handleCreateProfile`) and
267
267
  // the commitConfigWrite invariant guard
268
268
  // (`assertInvariantProfilesPreserved`).
269
269
  for (const key of BACKUP_PROFILE_KEYS) {