@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
@@ -2,12 +2,12 @@
2
2
  * Tests for UsageTelemetryReporter.
3
3
  *
4
4
  * Covers the authenticated send path (and the skip behavior when credentials
5
- * are absent or the platform is disabled), watermark advancement, error
5
+ * are absent or the cloud is disabled), watermark advancement, error
6
6
  * handling, batch recursion, device ID resolution, and payload shape.
7
7
  */
8
8
  import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
9
9
 
10
- import type { ConsentState } from "../platform/consent-cache.js";
10
+ import type { ConsentState } from "../cloud/consent-cache.js";
11
11
 
12
12
  // ---------------------------------------------------------------------------
13
13
  // Module mocks (must precede production imports)
@@ -60,23 +60,23 @@ mock.module("./turn-events-store.js", () => ({
60
60
  queryUnreportedTurnEvents: mockQueryUnreportedTurnEvents,
61
61
  }));
62
62
 
63
- let mockPlatformClient: Record<string, unknown> | null = null;
63
+ let mockCloudClient: Record<string, unknown> | null = null;
64
64
 
65
- mock.module("../platform/client.js", () => ({
66
- CadetPlatformClient: {
67
- create: async () => mockPlatformClient,
65
+ mock.module("../cloud/client.js", () => ({
66
+ CadetCloudClient: {
67
+ create: async () => mockCloudClient,
68
68
  },
69
69
  }));
70
70
 
71
- const mockGetPlatformBaseUrl = mock(() => "https://cloud.mycadet.ai");
71
+ const mockGetCloudBaseUrl = mock(() => "https://cloud.mycadet.ai");
72
72
 
73
73
  const mockGetPlatformOrganizationId = mock(() => "");
74
74
  const mockGetPlatformUserId = mock(() => "");
75
75
 
76
76
  mock.module("../config/env.js", () => ({
77
- getPlatformBaseUrl: mockGetPlatformBaseUrl,
78
- getPlatformOrganizationId: mockGetPlatformOrganizationId,
79
- getPlatformUserId: mockGetPlatformUserId,
77
+ getCloudBaseUrl: mockGetCloudBaseUrl,
78
+ getCloudOrganizationId: mockGetPlatformOrganizationId,
79
+ getCloudUserId: mockGetPlatformUserId,
80
80
  // Re-export anything else the module might import transitively
81
81
  str: () => undefined,
82
82
  num: () => undefined,
@@ -105,7 +105,7 @@ const mockGetCachedShareDiagnostics = mock(() => false);
105
105
  // cases override it with old/empty values.
106
106
  const mockGetCachedShareDiagnosticsVersion = mock(() => "2999-01-01");
107
107
 
108
- mock.module("../platform/consent-cache.js", () => ({
108
+ mock.module("../cloud/consent-cache.js", () => ({
109
109
  getRawShareAnalytics: mockGetRawShareAnalytics,
110
110
  getCachedShareDiagnostics: mockGetCachedShareDiagnostics,
111
111
  getCachedShareDiagnosticsVersion: mockGetCachedShareDiagnosticsVersion,
@@ -362,9 +362,9 @@ beforeEach(() => {
362
362
  mockQueryUnreportedTurnEvents.mockReturnValue([]);
363
363
  getDb().delete(toolInvocations).run();
364
364
  getTelemetryDb()!.delete(telemetryEvents).run();
365
- delete process.env.CADET_DISABLE_PLATFORM;
366
- delete process.env.IS_PLATFORM;
367
- mockGetPlatformBaseUrl.mockReset();
365
+ delete process.env.CADET_DISABLE_CLOUD;
366
+ delete process.env.IS_CLOUD;
367
+ mockGetCloudBaseUrl.mockReset();
368
368
  mockGetDeviceId.mockReset();
369
369
  mockGetDeviceId.mockReturnValue("test-device-id");
370
370
  mockGetPlatformOrganizationId.mockReset();
@@ -374,7 +374,7 @@ beforeEach(() => {
374
374
 
375
375
  // Defaults
376
376
  mockGetFlushCheckpoint.mockReturnValue(null);
377
- mockGetPlatformBaseUrl.mockReturnValue("https://cloud.mycadet.ai");
377
+ mockGetCloudBaseUrl.mockReturnValue("https://cloud.mycadet.ai");
378
378
 
379
379
  mockFetch = mock(() =>
380
380
  Promise.resolve(new Response('{"accepted":0}', { status: 200 })),
@@ -384,19 +384,19 @@ beforeEach(() => {
384
384
  // Default to an authenticated client whose fetch delegates to the mockFetch
385
385
  // spy, so the existing payload/body assertions keep working. The reporter
386
386
  // sends authenticated-only; tests that exercise the no-credentials path
387
- // override this with `mockPlatformClient = null`.
388
- mockPlatformClient = {
387
+ // override this with `mockCloudClient = null`.
388
+ mockCloudClient = {
389
389
  baseUrl: "https://test.mycadet.ai",
390
390
  assistantApiKey: "test-key",
391
- platformAssistantId: "asst-123",
391
+ cloudAssistantId: "asst-123",
392
392
  fetch: (path: string, init?: RequestInit) => mockFetch(path, init),
393
393
  };
394
394
  });
395
395
 
396
396
  afterEach(() => {
397
397
  globalThis.fetch = originalFetch;
398
- delete process.env.CADET_DISABLE_PLATFORM;
399
- delete process.env.IS_PLATFORM;
398
+ delete process.env.CADET_DISABLE_CLOUD;
399
+ delete process.env.IS_CLOUD;
400
400
  });
401
401
 
402
402
  // ---------------------------------------------------------------------------
@@ -408,10 +408,10 @@ describe("UsageTelemetryReporter", () => {
408
408
  const clientFetchMock = mock(async (_path: string, _init?: RequestInit) => {
409
409
  return new Response('{"accepted":2}', { status: 200 });
410
410
  });
411
- mockPlatformClient = {
411
+ mockCloudClient = {
412
412
  baseUrl: "https://test.mycadet.ai",
413
413
  assistantApiKey: "test-key",
414
- platformAssistantId: "asst-123",
414
+ cloudAssistantId: "asst-123",
415
415
  fetch: clientFetchMock,
416
416
  };
417
417
  const events = [makeUsageEvent(), makeUsageEvent()];
@@ -430,7 +430,7 @@ describe("UsageTelemetryReporter", () => {
430
430
  test("flush is skipped when no platform credentials are available", async () => {
431
431
  // Authenticated-only: with no client, nothing is sent and the watermark is
432
432
  // left intact so the backlog ships once credentials resolve.
433
- mockPlatformClient = null;
433
+ mockCloudClient = null;
434
434
 
435
435
  const events = [makeUsageEvent()];
436
436
  mockQueryUnreportedUsageEvents.mockReturnValue(events);
@@ -445,11 +445,11 @@ describe("UsageTelemetryReporter", () => {
445
445
  expect(watermarkCalls.length).toBe(0);
446
446
  });
447
447
 
448
- test("flush is skipped when CADET_DISABLE_PLATFORM is set in local mode", async () => {
449
- // The platform-disabled toggle suppresses the send. Unlike the opt-out
448
+ test("flush is skipped when CADET_DISABLE_CLOUD is set in local mode", async () => {
449
+ // The cloud-disabled toggle suppresses the send. Unlike the opt-out
450
450
  // branch, watermarks are NOT advanced, so the backlog ships once the flag
451
451
  // is cleared.
452
- process.env.CADET_DISABLE_PLATFORM = "true";
452
+ process.env.CADET_DISABLE_CLOUD = "true";
453
453
 
454
454
  const events = [makeUsageEvent()];
455
455
  mockQueryUnreportedUsageEvents.mockReturnValue(events);
@@ -464,12 +464,12 @@ describe("UsageTelemetryReporter", () => {
464
464
  expect(mockSetFlushCheckpoint).not.toHaveBeenCalled();
465
465
  });
466
466
 
467
- test("CADET_DISABLE_PLATFORM is ignored when IS_PLATFORM is set (managed mode)", async () => {
468
- // Platform-managed assistants always connect to the platform; an inherited
469
- // CADET_DISABLE_PLATFORM must not suppress telemetry for them (matches
470
- // arePlatformFeaturesEnabled / CadetPlatformClient.create()).
471
- process.env.IS_PLATFORM = "true";
472
- process.env.CADET_DISABLE_PLATFORM = "true";
467
+ test("CADET_DISABLE_CLOUD is ignored when IS_CLOUD is set (managed mode)", async () => {
468
+ // Cloud assistants always connect to the cloud; an inherited
469
+ // CADET_DISABLE_CLOUD must not suppress telemetry for them (matches
470
+ // areCloudFeaturesEnabled / CadetCloudClient.create()).
471
+ process.env.IS_CLOUD = "true";
472
+ process.env.CADET_DISABLE_CLOUD = "true";
473
473
 
474
474
  const events = [makeUsageEvent()];
475
475
  mockQueryUnreportedUsageEvents.mockReturnValue(events);
@@ -677,7 +677,7 @@ describe("UsageTelemetryReporter", () => {
677
677
  mockGetRawShareAnalytics.mockReturnValue(true);
678
678
 
679
679
  // no-credentials: authenticated-only, no platform client resolved.
680
- mockPlatformClient = null;
680
+ mockCloudClient = null;
681
681
  expect(await reporter.flush()).toEqual({
682
682
  flushed: false,
683
683
  reason: "no-credentials",
@@ -1230,7 +1230,7 @@ describe("UsageTelemetryReporter", () => {
1230
1230
  test("omits the trace when the accepted consent version predates the disclosure threshold (share_diagnostics on)", async () => {
1231
1231
  mockGetCachedShareDiagnostics.mockReturnValue(true);
1232
1232
  // Consent recorded under an older version that never disclosed trace
1233
- // collection → gate closed, mirroring the platform ingest gate.
1233
+ // collection → gate closed, mirroring the cloud ingest gate.
1234
1234
  mockGetCachedShareDiagnosticsVersion.mockReturnValue("2000-01-01");
1235
1235
  mockQueryUnreportedUsageEvents.mockReturnValue([]);
1236
1236
  mockQueryUnreportedTurnEvents.mockReturnValue(singleTurnEvent());
@@ -1836,12 +1836,12 @@ describe("UsageTelemetryReporter", () => {
1836
1836
  });
1837
1837
 
1838
1838
  test("platform disabled takes precedence over consent off — watermarks NOT advanced", async () => {
1839
- // CADET_DISABLE_PLATFORM keeps the consent cache false (the consent
1840
- // refresh can't create a platform client), so both gates would fire. The
1839
+ // CADET_DISABLE_CLOUD keeps the consent cache false (the consent
1840
+ // refresh can't create a cloud client), so both gates would fire. The
1841
1841
  // platform-disabled gate runs first and returns without advancing
1842
1842
  // watermarks, preserving the backlog until the flag is cleared — a
1843
1843
  // deployment toggle must not be treated as a privacy opt-out.
1844
- process.env.CADET_DISABLE_PLATFORM = "true";
1844
+ process.env.CADET_DISABLE_CLOUD = "true";
1845
1845
  mockGetRawShareAnalytics.mockReturnValue(false);
1846
1846
  const events = [makeUsageEvent()];
1847
1847
  mockQueryUnreportedUsageEvents.mockReturnValue(events);
@@ -1913,7 +1913,7 @@ describe("UsageTelemetryReporter", () => {
1913
1913
  // `APP_VERSION` directly until their respective follow-ups land.
1914
1914
  // Nullable llm_usage cases (legacy rows from before migration 267 ran)
1915
1915
  // fall back to the running binary's `APP_VERSION` rather than emitting
1916
- // explicit `null` — under the platform contract a present-but-null
1916
+ // explicit `null` — under the cloud contract a present-but-null
1917
1917
  // per-event value would override the envelope, and we'd rather have a
1918
1918
  // concrete version than no version.
1919
1919
  // -------------------------------------------------------------------------
@@ -1960,7 +1960,7 @@ describe("UsageTelemetryReporter", () => {
1960
1960
  );
1961
1961
  // No explicit null on the wire — the running binary's APP_VERSION is
1962
1962
  // stamped instead so a present-but-null value can't override the
1963
- // envelope under the platform's per-event-wins contract.
1963
+ // envelope under the cloud's per-event-wins contract.
1964
1964
  expect(body.events[0].assistant_version).toBe("1.2.3-test");
1965
1965
  });
1966
1966
 
@@ -1969,7 +1969,7 @@ describe("UsageTelemetryReporter", () => {
1969
1969
  // don't yet carry a per-event version. Until the follow-up migration
1970
1970
  // adds a column to `messages`, we stamp the running binary's
1971
1971
  // APP_VERSION instead of explicit null — matches what the envelope
1972
- // would have provided but per-event so it survives the platform
1972
+ // would have provided but per-event so it survives the cloud
1973
1973
  // contract that treats present per-event values as winning over the
1974
1974
  // envelope.
1975
1975
  mockQueryUnreportedUsageEvents.mockReturnValue([]);
@@ -2978,7 +2978,7 @@ describe("UsageTelemetryReporter", () => {
2978
2978
  });
2979
2979
 
2980
2980
  test("acknowledge is NOT called when platform credentials are missing", async () => {
2981
- mockPlatformClient = null;
2981
+ mockCloudClient = null;
2982
2982
  const { source, acknowledge, pending } = makeAckSource("fake_ack", [
2983
2983
  "row-1",
2984
2984
  ]);
@@ -3315,7 +3315,7 @@ describe("UsageTelemetryReporter", () => {
3315
3315
  });
3316
3316
 
3317
3317
  test("expired rows are pruned even when the flush skips for platform-disabled", async () => {
3318
- process.env.CADET_DISABLE_PLATFORM = "true";
3318
+ process.env.CADET_DISABLE_CLOUD = "true";
3319
3319
  seedExpiredAndFreshRows();
3320
3320
  const reporter = new UsageTelemetryReporter(
3321
3321
  [outboxSource(OUTBOX_NAME)],
@@ -20,16 +20,16 @@
20
20
  * processes open read-write; each instance only touches its own sources'
21
21
  * cursors, so the split shares no flush state.
22
22
  *
23
- * Authenticated-only: events are sent via the managed proxy context
23
+ * Authenticated-only: events are sent via the cloud proxy context
24
24
  * (Api-Key header). When no cloud credentials are available, or when
25
- * platform features are disabled (CADET_DISABLE_PLATFORM in local mode), the
25
+ * platform features are disabled (CADET_DISABLE_CLOUD in local mode), the
26
26
  * flush is skipped and retried next cycle.
27
27
  */
28
28
 
29
- import { getPlatformOrganizationId, getPlatformUserId } from "../config/env.js";
30
- import { CadetPlatformClient } from "../platform/client.js";
31
- import { getRawShareAnalytics } from "../platform/consent-cache.js";
32
- import { arePlatformFeaturesEnabled } from "../platform/feature-gate.js";
29
+ import { CadetCloudClient } from "../cloud/client.js";
30
+ import { getRawShareAnalytics } from "../cloud/consent-cache.js";
31
+ import { areCloudFeaturesEnabled } from "../cloud/feature-gate.js";
32
+ import { getCloudOrganizationId, getCloudUserId } from "../config/env.js";
33
33
  import { getDeviceId } from "../util/device-id.js";
34
34
  import { getLogger } from "../util/logger.js";
35
35
  import { APP_VERSION } from "../version.js";
@@ -71,8 +71,8 @@ const TELEMETRY_PATH = "/v1/telemetry/ingest/";
71
71
 
72
72
  /**
73
73
  * Outcome of a {@link UsageTelemetryReporter.flush} call. `flushed: true` means
74
- * at least one batch reached the platform (2xx). `sent` is the count the daemon
75
- * POSTed; `persisted` is the count the platform confirmed written; `dropped` is
74
+ * at least one batch reached the cloud (2xx). `sent` is the count the daemon
75
+ * POSTed; `persisted` is the count the cloud confirmed written; `dropped` is
76
76
  * `sent - persisted` — folding server-side drops (opt-out, unauthenticated) and
77
77
  * events silently skipped at ingest validation (unknown/invalid type) into one
78
78
  * "did not land" number. `flushed: false` carries a kebab-case skip reason.
@@ -257,7 +257,7 @@ export class UsageTelemetryReporter {
257
257
 
258
258
  start(): void {
259
259
  // Delay the first flush to allow the credential infrastructure (CES
260
- // handshake) to complete. Without this delay, CadetPlatformClient.create()
260
+ // handshake) to complete. Without this delay, CadetCloudClient.create()
261
261
  // returns null because the credential backend hasn't resolved yet, causing
262
262
  // the initial flush to be skipped (we send authenticated-only); the
263
263
  // delay lets credentials resolve so the first flush can actually ship.
@@ -338,12 +338,12 @@ export class UsageTelemetryReporter {
338
338
  }
339
339
  }
340
340
 
341
- // Skip when platform features are disabled (CADET_DISABLE_PLATFORM in
342
- // local mode; the flag is ignored when IS_PLATFORM is set, matching
343
- // CadetPlatformClient.create()). Watermarks are NOT advanced here: this
341
+ // Skip when platform features are disabled (CADET_DISABLE_CLOUD in
342
+ // local mode; the flag is ignored when IS_CLOUD is set, matching
343
+ // CadetCloudClient.create()). Watermarks are NOT advanced here: this
344
344
  // is a deployment/local-mode toggle, not a privacy opt-out, so the unsent
345
345
  // backlog ships once the flag is cleared.
346
- if (!arePlatformFeaturesEnabled()) {
346
+ if (!areCloudFeaturesEnabled()) {
347
347
  return settle("disabled");
348
348
  }
349
349
 
@@ -377,7 +377,7 @@ export class UsageTelemetryReporter {
377
377
  return settle("unknown-consent");
378
378
  }
379
379
 
380
- // Respect a confirmed opt-out: if the platform owner declined
380
+ // Respect a confirmed opt-out: if the cloud owner declined
381
381
  // `share_analytics` consent, skip the flush and advance watermarks so
382
382
  // events recorded during the opt-out window are never sent
383
383
  // retroactively. The daemon runs the reporter even when opted out
@@ -468,7 +468,7 @@ export class UsageTelemetryReporter {
468
468
  // Resolve auth context. We send authenticated-only: if no platform
469
469
  // credentials are available yet, skip without advancing watermarks so the
470
470
  // backlog ships on a later cycle once credentials resolve.
471
- const client = await CadetPlatformClient.create();
471
+ const client = await CadetCloudClient.create();
472
472
  if (!client) {
473
473
  log.debug(
474
474
  {
@@ -501,8 +501,8 @@ export class UsageTelemetryReporter {
501
501
  // the server would silently drop; the batch is POSTed unchanged.
502
502
  validateWireEvents(typedEvents, log);
503
503
 
504
- const organizationId = getPlatformOrganizationId() || undefined;
505
- const userId = getPlatformUserId() || undefined;
504
+ const organizationId = getCloudOrganizationId() || undefined;
505
+ const userId = getCloudUserId() || undefined;
506
506
  const payload = {
507
507
  device_id: getDeviceId(),
508
508
  assistant_version: APP_VERSION,
@@ -8,22 +8,22 @@
8
8
  */
9
9
  import { beforeEach, describe, expect, mock, test } from "bun:test";
10
10
 
11
- import type { ConsentState } from "../platform/consent-cache.js";
11
+ import type { ConsentState } from "../cloud/consent-cache.js";
12
12
 
13
13
  let shareAnalytics: ConsentState = true;
14
- mock.module("../platform/consent-cache.js", () => ({
14
+ mock.module("../cloud/consent-cache.js", () => ({
15
15
  getRawShareAnalytics: () => shareAnalytics,
16
16
  }));
17
17
 
18
18
  let platformEnabled = true;
19
- mock.module("../platform/feature-gate.js", () => ({
20
- arePlatformFeaturesEnabled: () => platformEnabled,
19
+ mock.module("../cloud/feature-gate.js", () => ({
20
+ areCloudFeaturesEnabled: () => platformEnabled,
21
21
  }));
22
22
 
23
23
  const fetchCalls: Array<{ path: string; body: string }> = [];
24
24
  let clientAvailable = true;
25
- mock.module("../platform/client.js", () => ({
26
- CadetPlatformClient: {
25
+ mock.module("../cloud/client.js", () => ({
26
+ CadetCloudClient: {
27
27
  create: async () =>
28
28
  clientAvailable
29
29
  ? {
@@ -36,9 +36,9 @@ mock.module("../platform/client.js", () => ({
36
36
  },
37
37
  }));
38
38
 
39
- import { setPlatformOrganizationId, setPlatformUserId } from "../config/env.js";
40
- setPlatformOrganizationId("org-1");
41
- setPlatformUserId("user-1");
39
+ import { setCloudOrganizationId, setCloudUserId } from "../config/env.js";
40
+ setCloudOrganizationId("org-1");
41
+ setCloudUserId("user-1");
42
42
 
43
43
  mock.module("../util/device-id.js", () => ({
44
44
  getDeviceId: () => "device-xyz",
@@ -9,7 +9,7 @@
9
9
  * damage it is reporting, and the store's `recordWatchdogEvent` drags the whole
10
10
  * `db-connection` graph in behind it.
11
11
  *
12
- * This helper POSTs the event straight to the platform ingest instead. It is
12
+ * This helper POSTs the event straight to the cloud ingest instead. It is
13
13
  * best-effort: opt-out, missing credentials (early boot, before the CES
14
14
  * handshake), platform-disabled, and HTTP failures all no-op. No retry — a lost
15
15
  * event is acceptable for a rare, high-signal check. Deduped downstream on
@@ -18,10 +18,10 @@
18
18
 
19
19
  import { v4 as uuid } from "uuid";
20
20
 
21
- import { getPlatformOrganizationId, getPlatformUserId } from "../config/env.js";
22
- import { CadetPlatformClient } from "../platform/client.js";
23
- import { getRawShareAnalytics } from "../platform/consent-cache.js";
24
- import { arePlatformFeaturesEnabled } from "../platform/feature-gate.js";
21
+ import { CadetCloudClient } from "../cloud/client.js";
22
+ import { getRawShareAnalytics } from "../cloud/consent-cache.js";
23
+ import { areCloudFeaturesEnabled } from "../cloud/feature-gate.js";
24
+ import { getCloudOrganizationId, getCloudUserId } from "../config/env.js";
25
25
  import { getDeviceId } from "../util/device-id.js";
26
26
  import { getLogger } from "../util/logger.js";
27
27
  import { APP_VERSION } from "../version.js";
@@ -34,7 +34,7 @@ const log = getLogger("watchdog-direct-emit");
34
34
  const TELEMETRY_INGEST_PATH = "/v1/telemetry/ingest/";
35
35
 
36
36
  /**
37
- * POST one `watchdog` event directly to the platform, bypassing the SQLite
37
+ * POST one `watchdog` event directly to the cloud, bypassing the SQLite
38
38
  * buffer. Honors a confirmed `share_analytics` opt-out and the
39
39
  * platform-features gate. An unknown consent state emits: this path reports
40
40
  * SQLite corruption and has no outbox to defer into, and platform ingest
@@ -52,13 +52,13 @@ export async function emitWatchdogEventDirect(
52
52
  if (getRawShareAnalytics() === false) {
53
53
  return;
54
54
  }
55
- if (!arePlatformFeaturesEnabled()) {
55
+ if (!areCloudFeaturesEnabled()) {
56
56
  return;
57
57
  }
58
58
 
59
59
  // Authenticated-only. Null before the CES handshake resolves credentials;
60
60
  // the event is simply dropped (no durable backlog to retry from).
61
- const client = await CadetPlatformClient.create();
61
+ const client = await CadetCloudClient.create();
62
62
  if (!client) {
63
63
  return;
64
64
  }
@@ -77,8 +77,8 @@ export async function emitWatchdogEventDirect(
77
77
  // would silently drop the event; the POST proceeds unchanged.
78
78
  validateWireEvents([event], log);
79
79
 
80
- const organizationId = getPlatformOrganizationId() || undefined;
81
- const userId = getPlatformUserId() || undefined;
80
+ const organizationId = getCloudOrganizationId() || undefined;
81
+ const userId = getCloudUserId() || undefined;
82
82
  const resp = await client.fetch(TELEMETRY_INGEST_PATH, {
83
83
  method: "POST",
84
84
  headers: { "Content-Type": "application/json" },
@@ -293,7 +293,7 @@ const SKILL_TOOLS: GuardedTool[] = [
293
293
  proxied("screen_point_at"),
294
294
 
295
295
  {
296
- name: "scaffold_managed_skill",
296
+ name: "scaffold_cloud_skill",
297
297
  input: {
298
298
  skill_id: "guard-skill",
299
299
  name: "Guard Skill",
@@ -302,7 +302,7 @@ const SKILL_TOOLS: GuardedTool[] = [
302
302
  activation_hints: ["guard"],
303
303
  },
304
304
  },
305
- { name: "delete_managed_skill", input: { skill_id: "guard-skill" } },
305
+ { name: "delete_cloud_skill", input: { skill_id: "guard-skill" } },
306
306
  { name: "find_similar_skills", input: { goal: "do a thing" } },
307
307
 
308
308
  {
@@ -1268,7 +1268,7 @@ function extractCdpError(
1268
1268
  * `BrowserBackend.send`. Converts thrown CdpErrors back into a
1269
1269
  * `CdpResult` envelope with an `error` payload so the manager does
1270
1270
  * not need to know about our thrown-error convention, then the
1271
- * envelope is unwrapped again on the way out of the managed client.
1271
+ * envelope is unwrapped again on the way out of the cloud client.
1272
1272
  *
1273
1273
  * The per-command `command.sessionId` (populated by the manager from
1274
1274
  * a session's opaque `targetId`) is intentionally not forwarded to
@@ -1,5 +1,5 @@
1
1
  import {
2
- isVirtualDesktopPlatform,
2
+ isVirtualDesktopCloud,
3
3
  shouldUseVirtualDesktop,
4
4
  } from "../../desktop/virtual-desktop-feature.js";
5
5
  import type { ExecutionTarget } from "../tool-types.js";
@@ -13,7 +13,7 @@ export function computerUseTarget(
13
13
  input.target ??
14
14
  (input.target_client_id === undefined &&
15
15
  context &&
16
- shouldUseVirtualDesktop(context, isVirtualDesktopPlatform())
16
+ shouldUseVirtualDesktop(context, isVirtualDesktopCloud())
17
17
  ? "assistant-desktop"
18
18
  : "connected-computer");
19
19
  if (target !== "connected-computer" && target !== "assistant-desktop") {
@@ -131,28 +131,10 @@ export async function storeCredentialValue(
131
131
  );
132
132
  }
133
133
 
134
- // The stored plaintext may already sit in recent transcripts: the user
135
- // message that pasted it, the persisted tool_use input, the tool result
136
- // echoing the command. This is the scrub seam, not setSecureKeyAsync, which
137
- // also fires on OAuth refresh rotations and MCP header writes whose values
138
- // never transited a transcript.
139
134
  if (!input.skipTranscriptScrub) {
140
- const { isNonSecretPlatformField, scrubStoredCredentialFromTranscripts } =
135
+ const { scrubStoredCredentialFromTranscripts } =
141
136
  await import("../../daemon/credential-transcript-scrub.js");
142
- if (!isNonSecretPlatformField(service, field)) {
143
- try {
144
- const scrubbed = await scrubStoredCredentialFromTranscripts(value);
145
- log.info(
146
- { service, field, ...scrubbed },
147
- "Credential stored; scrubbed value from recent transcripts",
148
- );
149
- } catch (err) {
150
- log.warn(
151
- { err, service, field },
152
- "Credential stored, but transcript scrub failed",
153
- );
154
- }
155
- }
137
+ await scrubStoredCredentialFromTranscripts(value, { service, field });
156
138
  }
157
139
 
158
140
  const metadata = upsertCredentialMetadata(service, field, {
@@ -1,24 +1,24 @@
1
1
  import { afterEach, beforeEach, describe, expect, mock, test } from "bun:test";
2
2
 
3
- interface MockPlatformClient {
4
- platformAssistantId: string;
3
+ interface MockCloudClient {
4
+ cloudAssistantId: string;
5
5
  fetch: ReturnType<typeof mock>;
6
6
  }
7
7
 
8
- let mockClient: MockPlatformClient | null = null;
8
+ let mockClient: MockCloudClient | null = null;
9
9
 
10
- mock.module("../../../platform/client.js", () => ({
11
- CadetPlatformClient: {
10
+ mock.module("../../../cloud/client.js", () => ({
11
+ CadetCloudClient: {
12
12
  create: async () => mockClient,
13
13
  },
14
14
  }));
15
15
 
16
- import { callManagedSearchProxy } from "../managed-search-proxy.js";
16
+ import { callManagedSearchProxy } from "../cloud-search-proxy.js";
17
17
 
18
18
  describe("callManagedSearchProxy", () => {
19
19
  beforeEach(() => {
20
20
  mockClient = {
21
- platformAssistantId: "asst-123",
21
+ cloudAssistantId: "asst-123",
22
22
  fetch: mock(async () => {
23
23
  return new Response(
24
24
  JSON.stringify({
@@ -36,7 +36,7 @@ describe("callManagedSearchProxy", () => {
36
36
  mockClient = null;
37
37
  });
38
38
 
39
- test("posts to the managed search proxy endpoint for the assistant and provider", async () => {
39
+ test("posts to the cloud search proxy endpoint for the assistant and provider", async () => {
40
40
  await callManagedSearchProxy("brave", {
41
41
  method: "GET",
42
42
  path: "/res/v1/web/search",
@@ -44,12 +44,12 @@ describe("callManagedSearchProxy", () => {
44
44
 
45
45
  expect(mockClient!.fetch).toHaveBeenCalledTimes(1);
46
46
  expect(mockClient!.fetch.mock.calls[0][0]).toBe(
47
- "/v1/assistants/asst-123/managed-search-proxy/brave/",
47
+ "/v1/assistants/asst-123/cloud-search-proxy/brave/",
48
48
  );
49
49
  });
50
50
 
51
51
  test("encodes URL path segments", async () => {
52
- mockClient!.platformAssistantId = "asst/123";
52
+ mockClient!.cloudAssistantId = "asst/123";
53
53
 
54
54
  await callManagedSearchProxy("brave", {
55
55
  method: "GET",
@@ -57,11 +57,11 @@ describe("callManagedSearchProxy", () => {
57
57
  });
58
58
 
59
59
  expect(mockClient!.fetch.mock.calls[0][0]).toBe(
60
- "/v1/assistants/asst%2F123/managed-search-proxy/brave/",
60
+ "/v1/assistants/asst%2F123/cloud-search-proxy/brave/",
61
61
  );
62
62
  });
63
63
 
64
- test("sends the platform contract request envelope", async () => {
64
+ test("sends the cloud contract request envelope", async () => {
65
65
  await callManagedSearchProxy("brave", {
66
66
  method: "GET",
67
67
  path: "/res/v1/web/search",
@@ -173,7 +173,7 @@ describe("callManagedSearchProxy", () => {
173
173
  test("returns a typed platform error for non-2xx platform responses", async () => {
174
174
  mockClient!.fetch = mock(async () => {
175
175
  return new Response(
176
- JSON.stringify({ detail: "unsupported managed search provider" }),
176
+ JSON.stringify({ detail: "unsupported cloud search provider" }),
177
177
  {
178
178
  status: 400,
179
179
  headers: {
@@ -197,9 +197,9 @@ describe("callManagedSearchProxy", () => {
197
197
  "content-type": "application/json",
198
198
  "x-platform-request-id": "platform-req-123",
199
199
  },
200
- body: { detail: "unsupported managed search provider" },
200
+ body: { detail: "unsupported cloud search provider" },
201
201
  message:
202
- "Managed search proxy returned status 400: unsupported managed search provider",
202
+ "Cloud search proxy returned status 400: unsupported cloud search provider",
203
203
  });
204
204
  });
205
205
 
@@ -224,7 +224,7 @@ describe("callManagedSearchProxy", () => {
224
224
  "content-type": "application/json",
225
225
  },
226
226
  body: { detail: "Insufficient balance" },
227
- message: "Managed search proxy returned status 402: Insufficient balance",
227
+ message: "Cloud search proxy returned status 402: Insufficient balance",
228
228
  });
229
229
  });
230
230
 
@@ -239,12 +239,12 @@ describe("callManagedSearchProxy", () => {
239
239
  expect(result).toEqual({
240
240
  ok: false,
241
241
  kind: "unavailable",
242
- message: "Managed search proxy is unavailable in this environment.",
242
+ message: "Cloud search proxy is unavailable in this environment.",
243
243
  });
244
244
  });
245
245
 
246
246
  test("returns unavailable when platform assistant ID is missing", async () => {
247
- mockClient!.platformAssistantId = "";
247
+ mockClient!.cloudAssistantId = "";
248
248
 
249
249
  const result = await callManagedSearchProxy("brave", {
250
250
  method: "GET",
@@ -255,7 +255,7 @@ describe("callManagedSearchProxy", () => {
255
255
  ok: false,
256
256
  kind: "unavailable",
257
257
  message:
258
- "Managed search proxy is unavailable: platform assistant ID is missing.",
258
+ "Cloud search proxy is unavailable: platform assistant ID is missing.",
259
259
  });
260
260
  });
261
261
 
@@ -276,7 +276,7 @@ describe("callManagedSearchProxy", () => {
276
276
  ok: false,
277
277
  kind: "invalid-response",
278
278
  body: { ok: true },
279
- message: "Managed search proxy returned an invalid response envelope.",
279
+ message: "Cloud search proxy returned an invalid response envelope.",
280
280
  });
281
281
  });
282
282
  });