@mycadet/assistant 0.12.7 → 0.12.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (892) hide show
  1. package/README.md +1 -1
  2. package/docs/activation-funnel-telemetry.md +6 -6
  3. package/docs/cadet-doctor.md +7 -7
  4. package/docs/desktop-browser-cli.md +7 -7
  5. package/docs/skills.md +2 -2
  6. package/docs/voice-input-diagnostics.md +1 -1
  7. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
  8. package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
  9. package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
  10. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +1 -1
  11. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  12. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  13. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  14. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  15. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  16. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  17. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  18. package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
  19. package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
  20. package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
  21. package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
  22. package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
  23. package/node_modules/@mycadet/environments/src/types.ts +6 -6
  24. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +1 -1
  25. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  26. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  27. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  28. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  29. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  30. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  31. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  32. package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
  33. package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
  34. package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
  35. package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
  36. package/node_modules/@mycadet/service-contracts/package.json +1 -1
  37. package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  38. package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  39. package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  40. package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  41. package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  42. package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  43. package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  44. package/openapi.yaml +6815 -794
  45. package/package.json +2 -2
  46. package/scripts/build-test-fixtures.ts +1 -1
  47. package/scripts/probe-skill-retrieval.ts +1 -1
  48. package/scripts/sync-llm-catalog.ts +2 -2
  49. package/scripts/voice-ttft-spike.ts +2 -2
  50. package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
  51. package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
  52. package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
  53. package/src/__tests__/anthropic-provider.test.ts +2 -2
  54. package/src/__tests__/available-skills.test.ts +11 -12
  55. package/src/__tests__/avatar-identity-sync.test.ts +1 -1
  56. package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
  57. package/src/__tests__/call-domain.test.ts +1 -1
  58. package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
  59. package/src/__tests__/catalog-files.test.ts +10 -10
  60. package/src/__tests__/catalog-install-normalize.test.ts +3 -3
  61. package/src/__tests__/channel-availability-routes.test.ts +8 -8
  62. package/src/__tests__/channel-readiness-routes.test.ts +4 -4
  63. package/src/__tests__/channel-readiness-service.test.ts +14 -14
  64. package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
  65. package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
  66. package/src/__tests__/checker.test.ts +6 -6
  67. package/src/__tests__/clawhub.test.ts +1 -1
  68. package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
  69. package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
  70. package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
  71. package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
  72. package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +60 -60
  73. package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
  74. package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
  75. package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
  76. package/src/__tests__/compaction-events.test.ts +7 -5
  77. package/src/__tests__/config-loader-backfill.test.ts +65 -65
  78. package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
  79. package/src/__tests__/config-loader-corrupt.test.ts +1 -1
  80. package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
  81. package/src/__tests__/config-schema.test.ts +3 -3
  82. package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
  83. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
  84. package/src/__tests__/config-watcher.test.ts +1 -1
  85. package/src/__tests__/contacts-write.test.ts +1 -1
  86. package/src/__tests__/conversation-agent-loop.test.ts +2 -2
  87. package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
  88. package/src/__tests__/conversation-error.test.ts +45 -45
  89. package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
  90. package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
  91. package/src/__tests__/conversation-skill-tools.test.ts +7 -8
  92. package/src/__tests__/conversation-slash.test.ts +2 -2
  93. package/src/__tests__/conversation-speed-override.test.ts +8 -10
  94. package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
  95. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
  96. package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
  97. package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
  98. package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
  99. package/src/__tests__/credential-health-service.test.ts +27 -41
  100. package/src/__tests__/credential-routes.test.ts +85 -165
  101. package/src/__tests__/credential-security-invariants.test.ts +6 -7
  102. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  103. package/src/__tests__/date-context.test.ts +1 -1
  104. package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
  105. package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
  106. package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
  107. package/src/__tests__/disk-usage.test.ts +3 -3
  108. package/src/__tests__/email-invite-adapter.test.ts +5 -5
  109. package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
  110. package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
  111. package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
  112. package/src/__tests__/fallback-breaker.test.ts +7 -7
  113. package/src/__tests__/feature-flag-test-helpers.ts +106 -0
  114. package/src/__tests__/gateway-flag-listener.test.ts +1 -1
  115. package/src/__tests__/gemini-image-service.test.ts +2 -2
  116. package/src/__tests__/gemini-provider.test.ts +5 -5
  117. package/src/__tests__/get-skill-detail-audit.test.ts +9 -8
  118. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  119. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
  120. package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
  121. package/src/__tests__/image-credentials.test.ts +13 -13
  122. package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
  123. package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
  124. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
  125. package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
  126. package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
  127. package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
  128. package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
  129. package/src/__tests__/input-repairs.test.ts +1 -1
  130. package/src/__tests__/install-skill-routing.test.ts +10 -8
  131. package/src/__tests__/integration-status.test.ts +5 -5
  132. package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
  133. package/src/__tests__/invite-routes-http.test.ts +1 -1
  134. package/src/__tests__/llm-catalog-parity.test.ts +5 -7
  135. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
  136. package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
  137. package/src/__tests__/llm-resolver.test.ts +1 -1
  138. package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
  139. package/src/__tests__/llm-usage-store.test.ts +1 -1
  140. package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
  141. package/src/__tests__/mcp-abort-signal.test.ts +2 -2
  142. package/src/__tests__/mcp-client-auth.test.ts +2 -2
  143. package/src/__tests__/mcp-tool-annotations-risk.test.ts +2 -2
  144. package/src/__tests__/media-generate-image.test.ts +30 -30
  145. package/src/__tests__/memory-config-file-parity.test.ts +6 -6
  146. package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
  147. package/src/__tests__/migration-import-commit-http.test.ts +1 -1
  148. package/src/__tests__/mtime-cache.test.ts +2 -2
  149. package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
  150. package/src/__tests__/notification-deep-link.test.ts +40 -40
  151. package/src/__tests__/oauth-apps-routes.test.ts +3 -3
  152. package/src/__tests__/oauth-cli.test.ts +9 -9
  153. package/src/__tests__/oauth-commands-routes.test.ts +16 -16
  154. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
  155. package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
  156. package/src/__tests__/oauth-providers-routes.test.ts +12 -12
  157. package/src/__tests__/oauth-store.test.ts +1 -1
  158. package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
  159. package/src/__tests__/onboarding-persona-write.test.ts +2 -2
  160. package/src/__tests__/openai-image-service.test.ts +2 -2
  161. package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
  162. package/src/__tests__/openai-responses-provider.test.ts +1 -1
  163. package/src/__tests__/path-policy.test.ts +4 -4
  164. package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
  165. package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
  166. package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
  167. package/src/__tests__/plugin-api-provider.test.ts +1 -1
  168. package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
  169. package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
  170. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
  171. package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
  172. package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
  173. package/src/__tests__/provider-connections-backfill.test.ts +9 -9
  174. package/src/__tests__/provider-error-scenarios.test.ts +8 -8
  175. package/src/__tests__/provider-registry-ollama.test.ts +1 -1
  176. package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
  177. package/src/__tests__/registry.test.ts +3 -3
  178. package/src/__tests__/requests-mock.ts +972 -0
  179. package/src/__tests__/resolve-trust-class.test.ts +1 -1
  180. package/src/__tests__/resource-pressure-guard.test.ts +6 -6
  181. package/src/__tests__/resource-pressure-routes.test.ts +5 -5
  182. package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
  183. package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
  184. package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
  185. package/src/__tests__/schedule-store.test.ts +1 -1
  186. package/src/__tests__/search-skills-unified.test.ts +9 -7
  187. package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
  188. package/src/__tests__/secret-routes-scrub.test.ts +2 -59
  189. package/src/__tests__/secure-keys.test.ts +1 -1
  190. package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
  191. package/src/__tests__/skill-load-tool.test.ts +1 -1
  192. package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
  193. package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
  194. package/src/__tests__/skill-tool-factory.test.ts +1 -1
  195. package/src/__tests__/skills-file-content-endpoint.test.ts +12 -12
  196. package/src/__tests__/skills-files-catalog-fallback.test.ts +9 -9
  197. package/src/__tests__/skills.test.ts +1 -1
  198. package/src/__tests__/slim-skill-category.test.ts +11 -9
  199. package/src/__tests__/stt-stream-session.test.ts +3 -3
  200. package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
  201. package/src/__tests__/subagent-disposal.test.ts +5 -5
  202. package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
  203. package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
  204. package/src/__tests__/subagent-manager-notify.test.ts +5 -5
  205. package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
  206. package/src/__tests__/system-prompt.test.ts +1 -1
  207. package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
  208. package/src/__tests__/telegram-config.test.ts +16 -16
  209. package/src/__tests__/telephony-tts-guard.test.ts +13 -13
  210. package/src/__tests__/test-preload.ts +17 -7
  211. package/src/__tests__/tool-audit.test.ts +1 -1
  212. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
  213. package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
  214. package/src/__tests__/turn-events-store.test.ts +1 -1
  215. package/src/__tests__/twilio-routes.test.ts +2 -1
  216. package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
  217. package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
  218. package/src/__tests__/validate-input.test.ts +5 -5
  219. package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
  220. package/src/__tests__/voice-config-update.test.ts +15 -15
  221. package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
  222. package/src/__tests__/web-search.test.ts +340 -859
  223. package/src/__tests__/workspace-git-service.test.ts +1 -1
  224. package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
  225. package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
  226. package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
  227. package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
  228. package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
  229. package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
  230. package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
  231. package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
  232. package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
  233. package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
  234. package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
  235. package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
  236. package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
  237. package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
  238. package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
  239. package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
  240. package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
  241. package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
  242. package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
  243. package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
  244. package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
  245. package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
  246. package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
  247. package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
  248. package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
  249. package/src/api/events/cloud-disconnected.ts +21 -0
  250. package/src/api/events/host-bash.ts +1 -1
  251. package/src/api/events/host-cu.ts +1 -1
  252. package/src/api/events/host-file.ts +1 -1
  253. package/src/api/events/notification-intent.ts +1 -1
  254. package/src/api/events/{show-platform-login.ts → show-cloud-login.ts} +3 -5
  255. package/src/api/index.ts +11 -11
  256. package/src/api/responses/home.ts +1 -1
  257. package/src/api/surfaces.ts +4 -4
  258. package/src/approvals/guardian-request-resolvers.ts +2 -2
  259. package/src/avatar/accent-backfill.ts +1 -1
  260. package/src/avatar/identity-avatar.ts +1 -1
  261. package/src/avatar/notification-avatar.test.ts +2 -2
  262. package/src/avatar/notification-avatar.ts +2 -2
  263. package/src/avatar/resvg-lazy.test.ts +1 -1
  264. package/src/avatar/resvg-lazy.ts +3 -3
  265. package/src/avatar/sync-avatar.test.ts +76 -76
  266. package/src/avatar/sync-avatar.ts +15 -15
  267. package/src/avatar/traits-png-sync.ts +1 -1
  268. package/src/background-wake/background-wake-routes.test.ts +39 -39
  269. package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
  270. package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
  271. package/src/background-wake/publisher.ts +4 -4
  272. package/src/background-wake/wake-intent-hooks.test.ts +3 -3
  273. package/src/calls/__tests__/call-controller.test.ts +2 -2
  274. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
  275. package/src/calls/call-domain.ts +1 -1
  276. package/src/calls/resolve-call-tts-provider.ts +6 -6
  277. package/src/calls/telephony-credential-preflight.ts +3 -3
  278. package/src/calls/telephony-tts-capability.ts +5 -6
  279. package/src/calls/tts-call-strategy.ts +1 -1
  280. package/src/calls/voice-escalation-judge.ts +1 -1
  281. package/src/calls/voice-ingress-preflight.ts +4 -4
  282. package/src/cli/bundled-modules.ts +1 -1
  283. package/src/cli/commands/__tests__/apps.test.ts +18 -53
  284. package/src/cli/commands/__tests__/plugins.test.ts +13 -13
  285. package/src/cli/commands/__tests__/tts.test.ts +1 -1
  286. package/src/cli/commands/auth.help.ts +3 -3
  287. package/src/cli/commands/auth.ts +2 -4
  288. package/src/cli/commands/browser.help.ts +2 -2
  289. package/src/cli/commands/channels/index.help.ts +2 -2
  290. package/src/cli/commands/channels/index.ts +1 -1
  291. package/src/cli/commands/channels/send.ts +1 -1
  292. package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
  293. package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
  294. package/src/cli/commands/cloud/connect.ts +2 -2
  295. package/src/cli/commands/cloud/credits-format.ts +1 -1
  296. package/src/cli/commands/cloud/index.help.ts +35 -35
  297. package/src/cli/commands/config.ts +1 -1
  298. package/src/cli/commands/credentials.ts +10 -12
  299. package/src/cli/commands/domain.ts +1 -1
  300. package/src/cli/commands/email.help.ts +1 -1
  301. package/src/cli/commands/email.ts +2 -2
  302. package/src/cli/commands/gateway.help.ts +1 -1
  303. package/src/cli/commands/gateway.ts +1 -1
  304. package/src/cli/commands/image-generation.help.ts +1 -1
  305. package/src/cli/commands/inference-providers.ts +1 -1
  306. package/src/cli/commands/inference.help.ts +2 -2
  307. package/src/cli/commands/memory/index.help.ts +1 -1
  308. package/src/cli/commands/oauth/connect.test.ts +2 -2
  309. package/src/cli/commands/oauth/connect.ts +1 -1
  310. package/src/cli/commands/oauth/index.help.ts +5 -5
  311. package/src/cli/commands/oauth/providers.ts +2 -2
  312. package/src/cli/commands/oauth/shared.ts +3 -3
  313. package/src/cli/commands/plugins.help.ts +2 -3
  314. package/src/cli/commands/plugins.ts +5 -5
  315. package/src/cli/commands/roadmap.help.ts +1 -1
  316. package/src/cli/commands/telemetry.help.ts +2 -2
  317. package/src/cli/commands/telemetry.ts +2 -2
  318. package/src/cli/commands/tts.help.ts +3 -3
  319. package/src/cli/commands/webhooks.help.ts +9 -9
  320. package/src/cli/commands/webhooks.ts +1 -1
  321. package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
  322. package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
  323. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
  324. package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
  325. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
  326. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
  327. package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
  328. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
  329. package/src/cli/lib/bundled-marketplace.json +1 -1
  330. package/src/cli/lib/inspect-plugin.ts +2 -2
  331. package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
  332. package/src/cli/lib/install-from-github.ts +4 -4
  333. package/src/cli/lib/plugin-catalog-cache.ts +7 -7
  334. package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
  335. package/src/cli/lib/plugin-catalog-local.ts +2 -2
  336. package/src/cli/lib/publish-plugin.ts +9 -10
  337. package/src/cli/lib/search-plugins.ts +2 -2
  338. package/src/{platform → cloud}/client.test.ts +85 -86
  339. package/src/{platform → cloud}/client.ts +38 -46
  340. package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
  341. package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
  342. package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
  343. package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
  344. package/src/{platform → cloud}/consent-cache.test.ts +5 -5
  345. package/src/{platform → cloud}/consent-cache.ts +8 -8
  346. package/src/cloud/feature-gate.ts +8 -0
  347. package/src/{platform → cloud}/sync-identity.test.ts +4 -4
  348. package/src/{platform → cloud}/sync-identity.ts +6 -6
  349. package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
  350. package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
  351. package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
  352. package/src/config/__tests__/default-provider.test.ts +4 -4
  353. package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
  354. package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
  355. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
  356. package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
  357. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
  358. package/src/config/__tests__/profile-materialization.test.ts +7 -7
  359. package/src/config/__tests__/seed-default-provider.test.ts +17 -17
  360. package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
  361. package/src/config/__tests__/webhook-routing.test.ts +51 -51
  362. package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
  363. package/src/config/bundled-skills/messaging/SKILL.md +8 -8
  364. package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
  365. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
  366. package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
  367. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
  368. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  369. package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
  370. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
  371. package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
  372. package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
  373. package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
  374. package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
  375. package/src/config/call-site-defaults.ts +6 -6
  376. package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
  377. package/src/config/cloud-rehydration.ts +35 -0
  378. package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
  379. package/src/config/default-profile-catalog.ts +36 -38
  380. package/src/config/default-profile-names.ts +11 -11
  381. package/src/config/default-provider-resolution.ts +2 -2
  382. package/src/config/default-provider.ts +1 -1
  383. package/src/config/env-registry.ts +23 -21
  384. package/src/config/env.ts +33 -46
  385. package/src/config/feature-flag-registry.json +5 -5
  386. package/src/config/inference-profile-validation.ts +1 -1
  387. package/src/config/llm-resolver.ts +9 -10
  388. package/src/config/loader.ts +33 -17
  389. package/src/config/profile-materialization.ts +8 -8
  390. package/src/config/profile-text-generation.test.ts +1 -1
  391. package/src/config/sanitize-for-transfer.ts +1 -1
  392. package/src/config/schema.ts +6 -6
  393. package/src/config/schemas/__tests__/stt.test.ts +2 -2
  394. package/src/config/schemas/call-site-catalog.ts +1 -1
  395. package/src/config/schemas/channels.ts +8 -0
  396. package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
  397. package/src/config/schemas/host-browser.ts +1 -0
  398. package/src/config/schemas/ingress.ts +1 -12
  399. package/src/config/schemas/llm.ts +45 -36
  400. package/src/config/schemas/memory-lifecycle.ts +11 -1
  401. package/src/config/schemas/services.ts +4 -4
  402. package/src/config/schemas/stt.ts +3 -3
  403. package/src/config/schemas/tts.ts +10 -5
  404. package/src/config/schemas/voice.ts +1 -1
  405. package/src/config/seed-inference-profiles.ts +19 -19
  406. package/src/config/skill-state.ts +2 -2
  407. package/src/config/skills.ts +4 -4
  408. package/src/config/sync-gated-profiles.ts +8 -8
  409. package/src/config/webhook-routing.ts +19 -19
  410. package/src/contacts/contacts-write.ts +1 -1
  411. package/src/credential-execution/ces-runtime.ts +6 -6
  412. package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
  413. package/src/credential-execution/prompted-credential.ts +6 -18
  414. package/src/credential-health/credential-health-service.ts +61 -76
  415. package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
  416. package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
  417. package/src/daemon/config-watcher.ts +2 -2
  418. package/src/daemon/conversation-agent-loop.ts +9 -9
  419. package/src/daemon/conversation-error.ts +36 -36
  420. package/src/daemon/conversation-skill-tools.ts +7 -7
  421. package/src/daemon/conversation-surfaces.ts +1 -1
  422. package/src/daemon/conversation-tool-setup.ts +2 -2
  423. package/src/daemon/conversation-turn-finalize.ts +1 -1
  424. package/src/daemon/conversation-workspace.ts +1 -1
  425. package/src/daemon/conversation.ts +1 -1
  426. package/src/daemon/credential-transcript-scrub.ts +21 -35
  427. package/src/daemon/daemon-readiness.ts +1 -1
  428. package/src/daemon/event-loop-watchdog.ts +2 -2
  429. package/src/daemon/handlers/config-ingress.ts +9 -9
  430. package/src/daemon/handlers/config-telegram.ts +6 -6
  431. package/src/daemon/handlers/skills.ts +20 -20
  432. package/src/daemon/host-cu-proxy.ts +1 -1
  433. package/src/daemon/lifecycle.ts +19 -19
  434. package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
  435. package/src/daemon/providers-setup.ts +6 -6
  436. package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
  437. package/src/daemon/resource-pressure-guard.ts +6 -6
  438. package/src/daemon/shutdown-handlers.ts +1 -1
  439. package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
  440. package/src/daemon/trust-context.ts +1 -1
  441. package/src/desktop/desktop-automation-lease.ts +1 -1
  442. package/src/desktop/desktop-browser-endpoint.ts +2 -4
  443. package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
  444. package/src/desktop/desktop-stream-bridge.test.ts +4 -4
  445. package/src/desktop/desktop-stream-bridge.ts +1 -1
  446. package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
  447. package/src/desktop/virtual-desktop-feature.ts +7 -7
  448. package/src/email/byo-email-credential.ts +1 -1
  449. package/src/email/registered-inbox.test.ts +16 -16
  450. package/src/email/registered-inbox.ts +20 -20
  451. package/src/heartbeat/heartbeat-service.ts +1 -1
  452. package/src/hooks/hook-loader.ts +2 -2
  453. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  454. package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
  455. package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
  456. package/src/inbound/oauth-callback-url.ts +6 -6
  457. package/src/inbound/pod-webhook-claim.ts +2 -2
  458. package/src/inbound/public-ingress-urls.ts +3 -3
  459. package/src/inbound/tunnel-probe.ts +21 -15
  460. package/src/inbound/tunnel-webhooks-gate.ts +3 -3
  461. package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
  462. package/src/ipc/__tests__/email-ipc.test.ts +8 -8
  463. package/src/ipc/gateway-client.test.ts +55 -59
  464. package/src/ipc/gateway-flag-listener.ts +3 -3
  465. package/src/ipc/routes/db-proxy.ts +1 -1
  466. package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
  467. package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
  468. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
  469. package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
  470. package/src/live-voice/live-activity-reporter.ts +7 -7
  471. package/src/live-voice/live-voice-credential-preflight.ts +6 -6
  472. package/src/live-voice/live-voice-session.ts +3 -3
  473. package/src/live-voice/live-voice-tts.ts +1 -1
  474. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
  475. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
  476. package/src/mcp/mcp-oauth-provider.ts +2 -2
  477. package/src/media/gemini-image-service.ts +11 -13
  478. package/src/media/image-credentials.ts +9 -9
  479. package/src/media/openai-image-service.ts +1 -1
  480. package/src/media/types.ts +3 -3
  481. package/src/messaging/providers/channel-transport.ts +1 -1
  482. package/src/messaging/providers/discord/transport.ts +1 -1
  483. package/src/messaging/providers/gmail/adapter.ts +1 -1
  484. package/src/messaging/providers/gmail/client.ts +4 -4
  485. package/src/messaging/providers/outlook/adapter.ts +1 -1
  486. package/src/messaging/providers/slack/adapter.ts +1 -1
  487. package/src/messaging/providers/slack/transport.ts +1 -1
  488. package/src/messaging/providers/telegram-bot/transport.ts +1 -1
  489. package/src/monitoring/db-integrity-check.ts +1 -1
  490. package/src/monitoring/db-integrity-sample.ts +2 -2
  491. package/src/monitoring/mount-watch.ts +1 -1
  492. package/src/monitoring/oom-kill-reporter.ts +1 -1
  493. package/src/monitoring/worker.ts +5 -5
  494. package/src/notifications/README.md +2 -2
  495. package/src/notifications/__tests__/broadcaster.test.ts +9 -9
  496. package/src/notifications/__tests__/completion-policy.test.ts +1 -1
  497. package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
  498. package/src/notifications/activity-failed-dedupe.ts +1 -1
  499. package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
  500. package/src/notifications/broadcaster.ts +10 -10
  501. package/src/notifications/decision-engine.ts +1 -1
  502. package/src/notifications/destination-resolver.ts +1 -1
  503. package/src/notifications/emit-signal.ts +6 -6
  504. package/src/notifications/types.ts +2 -2
  505. package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
  506. package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
  507. package/src/oauth/byo-connection.test.ts +2 -2
  508. package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
  509. package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
  510. package/src/oauth/connection-resolver.test.ts +59 -61
  511. package/src/oauth/connection-resolver.ts +22 -22
  512. package/src/oauth/connection.ts +1 -1
  513. package/src/oauth/oauth-store.ts +8 -8
  514. package/src/oauth/provider-serializer.ts +4 -4
  515. package/src/oauth/revoke.ts +1 -1
  516. package/src/oauth/seed-providers.ts +32 -32
  517. package/src/permissions/approval-provenance.ts +1 -1
  518. package/src/permissions/checker.test.ts +18 -16
  519. package/src/permissions/checker.ts +3 -3
  520. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  521. package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
  522. package/src/persistence/embeddings/embedding-backend.ts +13 -13
  523. package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
  524. package/src/persistence/embeddings/embedding-gemini.ts +11 -11
  525. package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
  526. package/src/persistence/jobs-store.ts +1 -1
  527. package/src/persistence/lifecycle-events-store.ts +1 -1
  528. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  529. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  530. package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
  531. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  532. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
  533. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  534. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
  535. package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
  536. package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
  537. package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
  538. package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
  539. package/src/persistence/schema/oauth.ts +1 -1
  540. package/src/plugin-api/index.ts +4 -4
  541. package/src/plugin-api/model-profiles.test.ts +1 -1
  542. package/src/plugin-api/model-profiles.ts +1 -1
  543. package/src/plugin-api/transcription-session.ts +1 -1
  544. package/src/plugin-api/vision-support.test.ts +1 -1
  545. package/src/plugin-api/webhook-url.ts +12 -12
  546. package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
  547. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
  548. package/src/plugins/defaults/cloud-hosted/package.json +14 -0
  549. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
  550. package/src/plugins/defaults/index.ts +6 -6
  551. package/src/plugins/defaults/main.ts +5 -5
  552. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
  553. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
  554. package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
  555. package/src/plugins/defaults/memory/config.ts +4 -4
  556. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
  557. package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
  558. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
  559. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
  560. package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
  561. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  562. package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
  563. package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
  564. package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
  565. package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
  566. package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
  567. package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
  568. package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
  569. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
  570. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
  571. package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
  572. package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
  573. package/src/plugins/defaults/memory/worker.ts +5 -5
  574. package/src/plugins/defaults/workspace/injectors.ts +2 -2
  575. package/src/plugins/mtime-cache.ts +1 -1
  576. package/src/plugins/source-versions.ts +1 -1
  577. package/src/plugins/types.ts +1 -1
  578. package/src/prompts/__tests__/system-prompt.test.ts +1 -1
  579. package/src/prompts/normalize-onboarding.ts +1 -1
  580. package/src/prompts/persona-resolver.ts +1 -1
  581. package/src/prompts/templates/system-sections.ts +3 -3
  582. package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
  583. package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
  584. package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
  585. package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
  586. package/src/providers/__tests__/inference.test.ts +2 -2
  587. package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
  588. package/src/providers/__tests__/retry-callsite.test.ts +1 -1
  589. package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
  590. package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
  591. package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
  592. package/src/providers/anthropic/client.ts +1 -1
  593. package/src/providers/cadet/client.ts +1 -1
  594. package/src/providers/cadet-model-routing.test.ts +19 -19
  595. package/src/providers/cadet-model-routing.ts +23 -23
  596. package/src/providers/call-site-routing.ts +10 -10
  597. package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
  598. package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
  599. package/src/providers/connection-resolution.ts +43 -43
  600. package/src/providers/fallback-breaker.ts +2 -2
  601. package/src/providers/fetch-provider-catalog.ts +3 -3
  602. package/src/providers/gemini/client.ts +5 -5
  603. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
  604. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
  605. package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
  606. package/src/providers/inference/adapter-factory.ts +35 -35
  607. package/src/providers/inference/auth.ts +10 -10
  608. package/src/providers/inference/backfill.ts +11 -11
  609. package/src/providers/inference/connection-availability.ts +24 -24
  610. package/src/providers/inference/connections.ts +18 -20
  611. package/src/providers/inference/profile-probe.ts +4 -4
  612. package/src/providers/inference/resolve-auth.ts +8 -8
  613. package/src/providers/jev/ask.test.ts +1 -1
  614. package/src/providers/jev/ask.ts +2 -2
  615. package/src/providers/model-catalog.ts +8 -9
  616. package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
  617. package/src/providers/openai/api-error-normalization.ts +2 -2
  618. package/src/providers/provider-availability.ts +4 -4
  619. package/src/providers/provider-env-vars.ts +1 -1
  620. package/src/providers/provider-secret-catalog.ts +1 -1
  621. package/src/providers/registry.ts +20 -20
  622. package/src/providers/retry.ts +26 -26
  623. package/src/providers/routing-identity.ts +10 -10
  624. package/src/providers/search-provider-catalog.ts +2 -2
  625. package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
  626. package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
  627. package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
  628. package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
  629. package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
  630. package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
  631. package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
  632. package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
  633. package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
  634. package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
  635. package/src/providers/speech-to-text/provider-catalog.ts +3 -3
  636. package/src/providers/speech-to-text/resolve.ts +26 -28
  637. package/src/providers/together/client.ts +1 -1
  638. package/src/providers/types.ts +4 -4
  639. package/src/providers/voice-error-copy.ts +1 -1
  640. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
  641. package/src/runtime/agent-wake.ts +1 -1
  642. package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
  643. package/src/runtime/auth/middleware.ts +1 -1
  644. package/src/runtime/auth/scopes.ts +1 -1
  645. package/src/runtime/capabilities.ts +1 -1
  646. package/src/runtime/channel-invite-transports/discord.ts +1 -1
  647. package/src/runtime/channel-invite-transports/email.ts +2 -2
  648. package/src/runtime/channel-readiness-service.ts +15 -13
  649. package/src/runtime/channel-reply-session.test.ts +1 -1
  650. package/src/runtime/channel-reply-session.ts +1 -1
  651. package/src/runtime/http-server.ts +4 -4
  652. package/src/runtime/introduction-policy.ts +4 -4
  653. package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
  654. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
  655. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
  656. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
  657. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
  658. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
  659. package/src/runtime/migrations/migration-transport.ts +3 -3
  660. package/src/runtime/migrations/origin-mode.ts +6 -9
  661. package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
  662. package/src/runtime/migrations/vbundle-importer.ts +4 -4
  663. package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
  664. package/src/runtime/migrations/vbundle-validator.ts +1 -1
  665. package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
  666. package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
  667. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
  668. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +26 -25
  669. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
  670. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
  671. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
  672. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
  673. package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
  674. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  675. package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
  676. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
  677. package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
  678. package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
  679. package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
  680. package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
  681. package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
  682. package/src/runtime/routes/app-management-routes.ts +1 -1
  683. package/src/runtime/routes/attachment-routes.ts +1 -1
  684. package/src/runtime/routes/auth-routes.ts +14 -14
  685. package/src/runtime/routes/avatar-routes.ts +0 -14
  686. package/src/runtime/routes/background-wake-routes.ts +4 -4
  687. package/src/runtime/routes/channel-availability-routes.ts +4 -4
  688. package/src/runtime/routes/client-routes.ts +5 -5
  689. package/src/runtime/routes/cloud-credentials.ts +45 -0
  690. package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +83 -116
  691. package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
  692. package/src/runtime/routes/conversation-query-routes.ts +82 -282
  693. package/src/runtime/routes/credential-routes.ts +28 -30
  694. package/src/runtime/routes/default-provider-routes.ts +1 -1
  695. package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
  696. package/src/runtime/routes/desktop-setup-routes.ts +1 -1
  697. package/src/runtime/routes/domain-routes.ts +15 -21
  698. package/src/runtime/routes/email-routes.ts +13 -13
  699. package/src/runtime/routes/errors.ts +1 -1
  700. package/src/runtime/routes/gateway-status-routes.ts +1 -1
  701. package/src/runtime/routes/identity-routes.ts +3 -3
  702. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  703. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
  704. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
  705. package/src/runtime/routes/index.ts +1 -1
  706. package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
  707. package/src/runtime/routes/inference-profiles-routes.ts +11 -11
  708. package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
  709. package/src/runtime/routes/ingress-status-routes.ts +1 -1
  710. package/src/runtime/routes/integrations/a2a.ts +2 -2
  711. package/src/runtime/routes/integrations/twilio.ts +21 -35
  712. package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
  713. package/src/runtime/routes/live-voice-routes.test.ts +4 -4
  714. package/src/runtime/routes/live-voice-routes.ts +6 -6
  715. package/src/runtime/routes/migration-routes.ts +34 -40
  716. package/src/runtime/routes/oauth-commands-routes.ts +31 -31
  717. package/src/runtime/routes/oauth-providers.ts +5 -5
  718. package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
  719. package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
  720. package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
  721. package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
  722. package/src/runtime/routes/oauth-request-hints.ts +1 -1
  723. package/src/runtime/routes/plugins-routes.ts +9 -9
  724. package/src/runtime/routes/profiler-routes.ts +1 -1
  725. package/src/runtime/routes/ps-routes.ts +4 -0
  726. package/src/runtime/routes/roadmap-routes.ts +18 -20
  727. package/src/runtime/routes/secret-routes.ts +29 -55
  728. package/src/runtime/routes/settings-routes.ts +18 -23
  729. package/src/runtime/routes/telemetry-routes.ts +4 -4
  730. package/src/runtime/routes/tts-routes.ts +4 -4
  731. package/src/runtime/routes/user-route-resolution.ts +1 -1
  732. package/src/runtime/routes/webhook-routes.ts +18 -18
  733. package/src/runtime/routes/workflow-routes.ts +5 -5
  734. package/src/runtime/sync/resource-sync-events.ts +2 -2
  735. package/src/runtime/verification-outbound-actions.ts +4 -4
  736. package/src/schedule/integration-status.ts +6 -6
  737. package/src/schedule/run-script.ts +1 -1
  738. package/src/schedule/schedule-timezone.ts +1 -1
  739. package/src/schedule/worker.ts +5 -5
  740. package/src/security/auth-fallback-events-store.ts +1 -1
  741. package/src/security/oauth2.ts +4 -4
  742. package/src/skills/available-skills.ts +4 -4
  743. package/src/skills/catalog-files.ts +8 -8
  744. package/src/skills/catalog-install.ts +12 -12
  745. package/src/skills/categories-cache.ts +3 -3
  746. package/src/skills/clawhub.ts +1 -1
  747. package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
  748. package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
  749. package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
  750. package/src/skills/inline-command-runner.ts +1 -1
  751. package/src/skills/install-meta.ts +1 -1
  752. package/src/skills/path-classifier.ts +4 -4
  753. package/src/skills/skill-history.ts +4 -4
  754. package/src/skills/skillssh-registry.ts +1 -1
  755. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
  756. package/src/stt/daemon-batch-transcriber.ts +7 -7
  757. package/src/stt/types.ts +3 -3
  758. package/src/subagent/manager.ts +15 -15
  759. package/src/subagent/types.ts +1 -1
  760. package/src/telegram/__tests__/webhook-health.test.ts +16 -16
  761. package/src/telegram/webhook-health.ts +10 -10
  762. package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
  763. package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
  764. package/src/telemetry/config-setting-events-store.ts +1 -1
  765. package/src/telemetry/config-setting-snapshot.ts +1 -1
  766. package/src/telemetry/memory-corpus-size.ts +1 -1
  767. package/src/telemetry/memory-tier-reporter.test.ts +2 -2
  768. package/src/telemetry/memory-tier-reporter.ts +3 -3
  769. package/src/telemetry/telemetry-event-sources.test.ts +2 -2
  770. package/src/telemetry/telemetry-event-sources.ts +9 -9
  771. package/src/telemetry/telemetry-events-outbox.ts +2 -2
  772. package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
  773. package/src/telemetry/telemetry-wire-validation.ts +3 -3
  774. package/src/telemetry/telemetry-wire.generated.ts +1 -1
  775. package/src/telemetry/tool-audit.ts +1 -1
  776. package/src/telemetry/tool-executed-events-store.test.ts +1 -1
  777. package/src/telemetry/trace-collection-policy.ts +4 -4
  778. package/src/telemetry/turn-events-store.ts +1 -1
  779. package/src/telemetry/turn-outcome.ts +1 -1
  780. package/src/telemetry/turn-trace-store.ts +2 -2
  781. package/src/telemetry/types.test.ts +1 -1
  782. package/src/telemetry/types.ts +19 -19
  783. package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
  784. package/src/telemetry/usage-telemetry-reporter.ts +17 -17
  785. package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
  786. package/src/telemetry/watchdog-direct-emit.ts +10 -10
  787. package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
  788. package/src/tools/browser/cdp-client/factory.ts +1 -1
  789. package/src/tools/computer-use/target.ts +2 -2
  790. package/src/tools/credentials/store.ts +6 -15
  791. package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
  792. package/src/tools/network/__tests__/web-search.test.ts +14 -14
  793. package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
  794. package/src/tools/network/web-search.ts +9 -9
  795. package/src/tools/permission-checker.ts +2 -2
  796. package/src/tools/shared/input-misuse.ts +1 -1
  797. package/src/tools/shared/input-repairs.ts +4 -4
  798. package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
  799. package/src/tools/skills/find-similar-skills.test.ts +7 -7
  800. package/src/tools/skills/find-similar-skills.ts +15 -15
  801. package/src/tools/skills/load.ts +6 -6
  802. package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
  803. package/src/tools/skills/skill-script-runner.ts +2 -2
  804. package/src/tools/terminal/safe-env.ts +3 -3
  805. package/src/tools/tool-types.ts +2 -2
  806. package/src/tools/types.ts +2 -2
  807. package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
  808. package/src/tools/workflows/manage-workflows.ts +1 -1
  809. package/src/tools/workspace-tools/loader.ts +1 -1
  810. package/src/tts/__tests__/cadet-provider.test.ts +5 -5
  811. package/src/tts/provider-catalog.ts +1 -1
  812. package/src/tts/providers/cadet-provider.ts +23 -23
  813. package/src/tts/providers/cadet-tts-socket.ts +2 -2
  814. package/src/tts/tts-config-resolver.ts +1 -1
  815. package/src/tts/tts-voice-field.ts +3 -3
  816. package/src/usage/subagent-attribution.ts +1 -1
  817. package/src/util/__tests__/process-table.test.ts +47 -0
  818. package/src/util/canonicalize-identity.ts +1 -1
  819. package/src/util/cgroup-cpu.ts +5 -5
  820. package/src/util/cgroup-memory.ts +2 -2
  821. package/src/util/container-cpu-sampler.ts +4 -4
  822. package/src/util/disk-usage.ts +4 -4
  823. package/src/util/errors.ts +3 -3
  824. package/src/util/oom-priority.ts +1 -1
  825. package/src/util/platform.ts +5 -5
  826. package/src/util/process-table.ts +39 -5
  827. package/src/util/provider-error-patterns.ts +2 -2
  828. package/src/watch/__tests__/watch-retro.test.ts +2 -2
  829. package/src/watch/watch-retro.ts +1 -1
  830. package/src/watcher/__tests__/telemetry.test.ts +2 -2
  831. package/src/watcher/telemetry.ts +1 -1
  832. package/src/windows-compiled-cli.ts +1 -1
  833. package/src/workspace/adaptive-thinking-repair.ts +4 -4
  834. package/src/workspace/byok-default-profile-ensure.ts +7 -7
  835. package/src/workspace/git-service.ts +2 -2
  836. package/src/workspace/migrations/006-services-config.ts +1 -1
  837. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  838. package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
  839. package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
  840. package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
  841. package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
  842. package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
  843. package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
  844. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
  845. package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
  846. package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
  847. package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
  848. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
  849. package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
  850. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
  851. package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
  852. package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
  853. package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
  854. package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
  855. package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
  856. package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
  857. package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
  858. package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
  859. package/src/workspace/migrations/127-backfill-default-provider.ts +4 -4
  860. package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
  861. package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
  862. package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
  863. package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
  864. package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
  865. package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
  866. package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
  867. package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
  868. package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
  869. package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
  870. package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
  871. package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
  872. package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
  873. package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
  874. package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
  875. package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
  876. package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
  877. package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
  878. package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
  879. package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
  880. package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
  881. package/src/workspace/migrations/registry.ts +6 -6
  882. package/src/workspace/top-level-renderer.ts +1 -1
  883. package/src/workspace/turn-commit.ts +2 -2
  884. package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
  885. package/src/__tests__/mock-gateway-ipc.ts +0 -260
  886. package/src/api/events/platform-disconnected.ts +0 -21
  887. package/src/config/platform-rehydration.ts +0 -60
  888. package/src/platform/feature-gate.ts +0 -8
  889. package/src/plugins/defaults/platform-hosted/package.json +0 -14
  890. package/src/runtime/routes/platform-managed-credentials.ts +0 -50
  891. /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
  892. /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mycadet/assistant",
3
- "version": "0.12.7",
3
+ "version": "0.12.8",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {
@@ -20,7 +20,7 @@
20
20
  "probe:skill-retrieval": "bun run scripts/probe-skill-retrieval.ts",
21
21
  "format": "prettier --write .",
22
22
  "format:check": "prettier --check .",
23
- "lint": "bun run lint:skills && bun run lint:openapi && eslint --max-warnings 3033",
23
+ "lint": "bun run lint:skills && bun run lint:openapi && eslint --max-warnings 3006",
24
24
  "lint:unused": "knip --include files,dependencies,unlisted",
25
25
  "lint:circular": "bun run scripts/check-circular-deps.ts",
26
26
  "lint:unused:production": "knip --production --include exports",
@@ -43,7 +43,7 @@ async function buildMigratedFixture(outWorkspaceDir: string): Promise<void> {
43
43
  const buildWorkspace = join(buildRoot, "workspace");
44
44
  mkdirSync(buildWorkspace);
45
45
  process.env.CADET_WORKSPACE_DIR = buildWorkspace;
46
- process.env.CADET_PLATFORM_URL ??= "https://test-cloud.mycadet.ai";
46
+ process.env.CADET_CLOUD_URL ??= "https://test-cloud.mycadet.ai";
47
47
  // Match the preload's env hygiene so migrations never route through a live
48
48
  // credential store while building the fixture.
49
49
  delete process.env.IS_CONTAINERIZED;
@@ -41,7 +41,7 @@ import {
41
41
  DEFAULT_CARD_CHARS,
42
42
  renderSkillCard,
43
43
  } from "../src/plugins/defaults/memory/substrate/skill-content.js";
44
- import { filterSkillsByPlatform } from "../src/skills/platform-compatibility.js";
44
+ import { filterSkillsByPlatform } from "../src/skills/cloud-compatibility.js";
45
45
 
46
46
  interface ProbeOptions {
47
47
  queries: string[];
@@ -121,8 +121,8 @@ function projectProvider(entry: ProviderCatalogEntry): Record<string, unknown> {
121
121
  if (entry.credentialsGuide !== undefined) {
122
122
  projected.credentialsGuide = entry.credentialsGuide;
123
123
  }
124
- if (entry.supportsPlatformAuth !== undefined) {
125
- projected.supportsPlatformAuth = entry.supportsPlatformAuth;
124
+ if (entry.supportsCloudAuth !== undefined) {
125
+ projected.supportsCloudAuth = entry.supportsCloudAuth;
126
126
  }
127
127
  if (entry.featureFlag !== undefined) {
128
128
  projected.featureFlag = entry.featureFlag;
@@ -14,7 +14,7 @@
14
14
  * full-flash cost-optimized, real buildSystemPrompt() + full tool defs
15
15
  * full-quality quality-optimized, full prompt + tools (pre-flag brain)
16
16
  *
17
- * Run with the daemon's environment so the managed connection resolves:
17
+ * Run with the daemon's environment so the cloud connection resolves:
18
18
  * CADET_WORKSPACE_DIR=<daemon workspace> \
19
19
  * bun run scripts/voice-ttft-spike.ts [--trials 3] [--variants a,b]
20
20
  *
@@ -216,7 +216,7 @@ async function main(): Promise<void> {
216
216
  const resolveMs = performance.now() - resolveStart;
217
217
  if (!provider) {
218
218
  console.error(
219
- `${spec.name}: no provider resolved (managed credentials missing? ` +
219
+ `${spec.name}: no provider resolved (cloud credentials missing? ` +
220
220
  `run with the daemon's CADET_WORKSPACE_DIR)`,
221
221
  );
222
222
  continue;
@@ -9,8 +9,8 @@ import { tmpdir } from "node:os";
9
9
  import { join } from "node:path";
10
10
  import { afterEach, beforeEach, describe, expect, test } from "bun:test";
11
11
 
12
- import { repairAdaptiveThinkingOnManagedProfiles } from "../workspace/adaptive-thinking-repair.js";
13
- import { enableAdaptiveThinkingManagedProfilesMigration } from "../workspace/migrations/097-enable-adaptive-thinking-managed-profiles.js";
12
+ import { repairAdaptiveThinkingOnCloudProfiles } from "../workspace/adaptive-thinking-repair.js";
13
+ import { enableAdaptiveThinkingCloudProfilesMigration } from "../workspace/migrations/097-enable-adaptive-thinking-managed-profiles.js";
14
14
  import { recheckAdaptiveThinkingModelImpliedAnthropicMigration } from "../workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.js";
15
15
 
16
16
  const ADAPTIVE = { enabled: true, streamThinking: true };
@@ -53,10 +53,10 @@ function profile(name: string): Record<string, unknown> {
53
53
  // the same logic (migration modules must stay self-contained). Run every
54
54
  // scenario against all of them so the copies can't drift.
55
55
  const implementations: Array<[string, (dir: string) => void]> = [
56
- ["startup repair", repairAdaptiveThinkingOnManagedProfiles],
56
+ ["startup repair", repairAdaptiveThinkingOnCloudProfiles],
57
57
  [
58
58
  "migration 097",
59
- (dir) => enableAdaptiveThinkingManagedProfilesMigration.run(dir),
59
+ (dir) => enableAdaptiveThinkingCloudProfilesMigration.run(dir),
60
60
  ],
61
61
  [
62
62
  "migration 104",
@@ -272,17 +272,17 @@ mock.module("../providers/registry.js", () => ({
272
272
  resolveProviderFromConnection: async () => anthropicStub,
273
273
  }));
274
274
 
275
- import { CADET_MANAGED_CONNECTION_NAME } from "../providers/cadet-model-routing.js";
275
+ import { CADET_CLOUD_CONNECTION_NAME } from "../providers/cadet-model-routing.js";
276
276
 
277
277
  // Connection-aware resolver path: satisfy
278
278
  // `tryResolveProviderForConnectionName` lookups so resolveDefaultProvider
279
279
  // returns a usable provider for any connection name the winning profile
280
- // references. The managed connection must be the platform-auth sentinel row:
281
- // a managed profile routing through anything else resolves to the platform
280
+ // references. The cloud connection must be the cloud-auth sentinel row:
281
+ // a cloud profile routing through anything else resolves to the cloud
282
282
  // instead. Other names behave as personal anthropic connections.
283
283
  mock.module("../providers/inference/connections.js", () => ({
284
284
  getConnection: (_db: unknown, name: string) =>
285
- name === CADET_MANAGED_CONNECTION_NAME
285
+ name === CADET_CLOUD_CONNECTION_NAME
286
286
  ? {
287
287
  id: 1,
288
288
  name,
@@ -106,7 +106,7 @@ describe("AgentLoop subagent billing-header attribution", () => {
106
106
  // GIVEN a conversation stamped as an advisor-consult subagent
107
107
  await seedConversation("conv-loop-advisor", "advisor", "advisor_consult");
108
108
 
109
- // AND a managed-proxy-shaped provider stack (headers forwarded)
109
+ // AND a cloud-proxy-shaped provider stack (headers forwarded)
110
110
  const { provider, configs } = makeRecordingProvider("openai");
111
111
  const wrapped = new RetryProvider(provider, {
112
112
  forwardUsageAttributionHeaders: true,
@@ -2948,10 +2948,10 @@ describe("AnthropicProvider — Cache-Control Characterization", () => {
2948
2948
  });
2949
2949
 
2950
2950
  // ---------------------------------------------------------------------------
2951
- // Tests — Managed Proxy Fallback
2951
+ // Tests — Cloud Proxy Fallback
2952
2952
  // ---------------------------------------------------------------------------
2953
2953
 
2954
- describe("AnthropicProvider — Managed Proxy Fallback", () => {
2954
+ describe("AnthropicProvider — Cloud Proxy Fallback", () => {
2955
2955
  beforeEach(() => {
2956
2956
  lastStreamParams = null;
2957
2957
  _lastStreamOptions = null;
@@ -6,12 +6,13 @@
6
6
  */
7
7
  import { beforeEach, describe, expect, mock, test } from "bun:test";
8
8
 
9
+ import { setOverridesForTesting } from "../__tests__/feature-flag-test-helpers.js";
9
10
  import type { SkillSummary } from "../config/skills.js";
10
- import type { SkillInstallMeta } from "../skills/install-meta.js";
11
11
  import {
12
12
  SKILL_PLATFORM_VALUES,
13
13
  skillPlatformForNodePlatform,
14
- } from "../skills/platform-compatibility.js";
14
+ } from "../skills/cloud-compatibility.js";
15
+ import type { SkillInstallMeta } from "../skills/install-meta.js";
15
16
  import { setConfig } from "./helpers/set-config.js";
16
17
 
17
18
  function makeSummary(overrides: Partial<SkillSummary> = {}): SkillSummary {
@@ -53,12 +54,10 @@ mock.module("../skills/catalog-cache.js", () => ({
53
54
  },
54
55
  }));
55
56
 
56
- // Deterministic flag resolution: only "on-flag" is enabled.
57
- mock.module("../config/assistant-feature-flags.js", () => ({
58
- isAssistantFeatureFlagEnabled: (flagKey: string) => flagKey === "on-flag",
59
- }));
60
-
61
57
  beforeEach(() => {
58
+ // Real flag resolution: only the synthetic "on-flag" key is enabled.
59
+ setOverridesForTesting({ "on-flag": true });
60
+
62
61
  catalogFixture = [];
63
62
  remoteFixture = [];
64
63
  remoteError = null;
@@ -170,9 +169,9 @@ describe("listInstalledSkills", () => {
170
169
  };
171
170
  catalogFixture = [
172
171
  makeSummary({
173
- id: "managed-skill",
172
+ id: "cloud-skill",
174
173
  source: "managed",
175
- directoryPath: "/skills/managed-skill",
174
+ directoryPath: "/skills/cloud-skill",
176
175
  }),
177
176
  makeSummary({
178
177
  id: "workspace-skill",
@@ -182,21 +181,21 @@ describe("listInstalledSkills", () => {
182
181
  makeSummary({ id: "bundled-skill", source: "bundled" }),
183
182
  makeSummary({ id: "plugin-skill", source: "plugin" }),
184
183
  ];
185
- installMetaByDir = { "/skills/managed-skill": meta };
184
+ installMetaByDir = { "/skills/cloud-skill": meta };
186
185
 
187
186
  const { listInstalledSkills } =
188
187
  await import("../skills/available-skills.js");
189
188
  const entries = await listInstalledSkills();
190
189
  const byId = new Map(entries.map((e) => [e.id, e]));
191
190
 
192
- expect(byId.get("managed-skill")!.installMeta).toEqual(meta);
191
+ expect(byId.get("cloud-skill")!.installMeta).toEqual(meta);
193
192
  // Read but absent on disk → null.
194
193
  expect(byId.get("workspace-skill")!.installMeta).toBeNull();
195
194
  // Never read for sources that don't carry install-meta.
196
195
  expect(byId.get("bundled-skill")!.installMeta).toBeUndefined();
197
196
  expect(byId.get("plugin-skill")!.installMeta).toBeUndefined();
198
197
  expect(readInstallMetaCalls.sort()).toEqual([
199
- "/skills/managed-skill",
198
+ "/skills/cloud-skill",
200
199
  "/skills/workspace-skill",
201
200
  ]);
202
201
  });
@@ -1,7 +1,7 @@
1
1
  import { describe, expect, mock, test } from "bun:test";
2
2
 
3
3
  mock.module("../avatar/sync-avatar.js", () => ({
4
- syncAvatarToPlatform: () => {},
4
+ syncAvatarToCloud: () => {},
5
5
  }));
6
6
  mock.module("../telemetry/telemetry-events-outbox.js", () => ({
7
7
  recordTelemetryEvent: () => ({ id: "evt", createdAt: 0 }),
@@ -146,8 +146,8 @@ function expectSecondRunNoop(): void {
146
146
 
147
147
  beforeEach(() => {
148
148
  freshWorkspace();
149
- originalIsPlatform = process.env.IS_PLATFORM;
150
- delete process.env.IS_PLATFORM;
149
+ originalIsPlatform = process.env.IS_CLOUD;
150
+ delete process.env.IS_CLOUD;
151
151
  });
152
152
 
153
153
  afterEach(() => {
@@ -155,9 +155,9 @@ afterEach(() => {
155
155
  rmSync(workspaceDir, { recursive: true, force: true });
156
156
  }
157
157
  if (originalIsPlatform === undefined) {
158
- delete process.env.IS_PLATFORM;
158
+ delete process.env.IS_CLOUD;
159
159
  } else {
160
- process.env.IS_PLATFORM = originalIsPlatform;
160
+ process.env.IS_CLOUD = originalIsPlatform;
161
161
  }
162
162
  });
163
163
 
@@ -423,7 +423,7 @@ describe("ensureByokDefaultProfiles", () => {
423
423
  string,
424
424
  Record<string, unknown>
425
425
  >;
426
- // Migration 097 / repairAdaptiveThinkingOnManagedProfiles stamp thinking
426
+ // Migration 097 / repairAdaptiveThinkingOnCloudProfiles stamp thinking
427
427
  // onto the anthropic-backed managed entries; live BYOK stubs carry it on
428
428
  // balanced and quality-optimized (confirmed on a real workspace).
429
429
  profs["balanced"].thinking = { enabled: true, streamThinking: true };
@@ -733,7 +733,7 @@ describe("ensureByokDefaultProfiles", () => {
733
733
  });
734
734
 
735
735
  test("no-op on platform installs", () => {
736
- process.env.IS_PLATFORM = "true";
736
+ process.env.IS_CLOUD = "true";
737
737
  writeConfig(uneditedByokConfig());
738
738
  const before = readFileSync(configPath(), "utf-8");
739
739
 
@@ -953,7 +953,7 @@ describe("ensureByokDefaultProfiles", () => {
953
953
  expectSecondRunNoop();
954
954
  });
955
955
 
956
- test("a managed-source default entry with body keys is left alone", () => {
956
+ test("a cloud-source default entry with body keys is left alone", () => {
957
957
  writeConfig({
958
958
  llm: {
959
959
  default: {
@@ -55,7 +55,7 @@ useMemorySecureKeys();
55
55
  * async setup that runs after the call session and its lease already exist.
56
56
  */
57
57
  let onResolveCallbackUrl: (() => void) | null = null;
58
- mock.module("../inbound/platform-callback-registration.js", () => ({
58
+ mock.module("../inbound/cloud-callback-registration.js", () => ({
59
59
  resolveCallbackUrl: async (fn: () => string) => {
60
60
  onResolveCallbackUrl?.();
61
61
  return fn();
@@ -3,7 +3,7 @@
3
3
  * connection-less profiles even when the resolved provider matches the
4
4
  * default provider's name.
5
5
  *
6
- * On platform-hosted installs the default transport rides the managed
6
+ * On cloud-hosted installs the default transport rides the cloud
7
7
  * (platform-billed) `cadet` connection while presenting the upstream
8
8
  * provider's name (e.g. "anthropic"). A BYOK profile `{provider:
9
9
  * "anthropic"}` with no explicit `provider_connection` must route through
@@ -69,7 +69,7 @@ const PERSONAL_CONNECTION = {
69
69
  beforeEach(() => {
70
70
  connectionRows = [];
71
71
  // Same provider name as the default transport; no provider_connection on
72
- // the profile — the managed-install shape that must not silently reuse
72
+ // the profile — the cloud-install shape that must not silently reuse
73
73
  // the default transport.
74
74
  setConfig("llm", {
75
75
  default: {
@@ -44,12 +44,12 @@ mock.module("../skills/catalog-install.js", () => ({
44
44
  getRepoSkillsDir: () => mockRepoSkillsDir,
45
45
  }));
46
46
 
47
- let mockPlatformBaseUrl = "https://platform.test";
47
+ let mockCloudBaseUrl = "https://test-cloud.mycadet.ai";
48
48
  mock.module("../config/env.ts", () => ({
49
- getPlatformBaseUrl: () => mockPlatformBaseUrl,
49
+ getCloudBaseUrl: () => mockCloudBaseUrl,
50
50
  }));
51
51
  mock.module("../config/env.js", () => ({
52
- getPlatformBaseUrl: () => mockPlatformBaseUrl,
52
+ getCloudBaseUrl: () => mockCloudBaseUrl,
53
53
  }));
54
54
 
55
55
  // ---------------------------------------------------------------------------
@@ -152,7 +152,7 @@ beforeEach(() => {
152
152
  fetchCalls = [];
153
153
  mockCatalog = [];
154
154
  mockRepoSkillsDir = undefined;
155
- mockPlatformBaseUrl = "https://platform.test";
155
+ mockCloudBaseUrl = "https://platform.test";
156
156
  });
157
157
 
158
158
  afterEach(() => {
@@ -306,7 +306,7 @@ describe("readCatalogSkillFiles (dev mode)", () => {
306
306
 
307
307
  const entries = await readCatalogSkillFiles("my-skill");
308
308
 
309
- // Fall-through should produce the platform response (empty array),
309
+ // Fall-through should produce the cloud response (empty array),
310
310
  // NOT the external directory contents.
311
311
  expect(entries).toEqual([]);
312
312
 
@@ -321,8 +321,8 @@ describe("readCatalogSkillFiles (dev mode)", () => {
321
321
  test("rejects a symlinked skill root for content reads and falls through to platform mode", async () => {
322
322
  // Direct reproduction for `readCatalogSkillFileContent`: with a
323
323
  // symlinked skill root, the dev branch must not read the external
324
- // file. Instead we should fall through to the platform endpoint and
325
- // return whatever the platform says.
324
+ // file. Instead we should fall through to the cloud endpoint and
325
+ // return whatever the cloud says.
326
326
  const root = makeTempSkillsDir();
327
327
  const externalRoot = mkdtempSync(join(tmpdir(), "catalog-files-ext-"));
328
328
  tempDirs.push(externalRoot);
@@ -345,7 +345,7 @@ describe("readCatalogSkillFiles (dev mode)", () => {
345
345
 
346
346
  const entry = await readCatalogSkillFileContent("my-skill", "SKILL.md");
347
347
  expect(entry).not.toBeNull();
348
- // Content must be the platform payload, NOT the external file's
348
+ // Content must be the cloud payload, NOT the external file's
349
349
  // bytes — otherwise the fall-through didn't happen.
350
350
  expect(entry!.content).toBe("PLATFORM_CONTENT");
351
351
  expect(entry!.mimeType).toBe("text/markdown");
@@ -410,7 +410,7 @@ describe("readCatalogSkillFiles (dev mode)", () => {
410
410
  // ---------------------------------------------------------------------------
411
411
 
412
412
  describe("readCatalogSkillFiles (platform mode)", () => {
413
- test("fetches file listing from the platform and maps it", async () => {
413
+ test("fetches file listing from the cloud and maps it", async () => {
414
414
  mockRepoSkillsDir = undefined;
415
415
  mockCatalog = [skill("remote-skill")];
416
416
  installFetchMock(() =>
@@ -801,7 +801,7 @@ describe("readCatalogSkillFileContent (platform mode)", () => {
801
801
  });
802
802
 
803
803
  test("rejects hidden / SKIP_DIRS paths BEFORE making any fetch call", async () => {
804
- // Platform-mode defense in depth: even though the platform endpoint
804
+ // Platform-mode defense in depth: even though the cloud endpoint
805
805
  // would refuse these reads server-side, we must short-circuit in
806
806
  // `readCatalogSkillFileContent` so an attacker cannot use the daemon
807
807
  // as a probe channel (and so we avoid unnecessary network traffic).
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Regression tests for catalog entry normalization in catalog-install.ts.
3
3
  *
4
- * The platform `/v1/skills/` API flattens skill metadata into top-level
4
+ * The cloud `/v1/skills/` API flattens skill metadata into top-level
5
5
  * fields (`category`, `display_name`, `icon`) rather than the nested
6
6
  * `metadata.cadet.*` shape used by the local `catalog.json`. Both
7
7
  * `fetchCatalog` (remote) and `readLocalCatalog` (local file) must produce a
@@ -14,7 +14,7 @@ import { tmpdir } from "node:os";
14
14
  import { join } from "node:path";
15
15
  import { afterEach, describe, expect, test } from "bun:test";
16
16
 
17
- process.env.CADET_PLATFORM_URL = "https://platform.example.com";
17
+ process.env.CADET_CLOUD_URL = "https://platform.example.com";
18
18
 
19
19
  import { fetchCatalog, readLocalCatalog } from "../skills/catalog-install.js";
20
20
 
@@ -40,7 +40,7 @@ function stubFetchJson(payload: unknown): typeof fetch {
40
40
  }
41
41
 
42
42
  describe("fetchCatalog normalization", () => {
43
- test("re-nests the platform's flattened category under metadata.cadet", async () => {
43
+ test("re-nests the cloud's flattened category under metadata.cadet", async () => {
44
44
  globalThis.fetch = stubFetchJson({
45
45
  skills: [
46
46
  {
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * The handler returns a fixed base list (`slack`, `telegram`, `discord`,
5
5
  * `phone`) and
6
- * appends `email` when the platform reports at least one registered email
6
+ * appends `email` when the cloud reports at least one registered email
7
7
  * address for this assistant. Platform failures fall back to base-only.
8
8
  *
9
9
  * Each entry is hydrated with display metadata from `CHANNEL_METADATA`
@@ -23,7 +23,7 @@ import {
23
23
  // Mock state — flipped per-test
24
24
  // ---------------------------------------------------------------------------
25
25
 
26
- let mockPlatformAssistantId: string | null = "assistant-test-id";
26
+ let mockCloudAssistantId: string | null = "assistant-test-id";
27
27
  let mockEmailAddressesResponse: {
28
28
  ok: boolean;
29
29
  status: number;
@@ -36,10 +36,10 @@ let mockEmailAddressesResponse: {
36
36
  let mockFetchThrows = false;
37
37
  const mockSecureKeys = useMemorySecureKeys();
38
38
 
39
- mock.module("../platform/client.js", () => ({
40
- CadetPlatformClient: {
39
+ mock.module("../cloud/client.js", () => ({
40
+ CadetCloudClient: {
41
41
  create: async () => ({
42
- platformAssistantId: mockPlatformAssistantId,
42
+ cloudAssistantId: mockCloudAssistantId,
43
43
  fetch: async (_path: string) => {
44
44
  if (mockFetchThrows) {
45
45
  throw new Error("platform unreachable");
@@ -82,7 +82,7 @@ interface HandlerResult {
82
82
 
83
83
  describe("channels/available", () => {
84
84
  beforeEach(() => {
85
- mockPlatformAssistantId = "assistant-test-id";
85
+ mockCloudAssistantId = "assistant-test-id";
86
86
  mockEmailAddressesResponse = {
87
87
  ok: true,
88
88
  status: 200,
@@ -171,8 +171,8 @@ describe("channels/available", () => {
171
171
  ]);
172
172
  });
173
173
 
174
- test("base list only when no platformAssistantId on client", async () => {
175
- mockPlatformAssistantId = null;
174
+ test("base list only when no cloudAssistantId on client", async () => {
175
+ mockCloudAssistantId = null;
176
176
 
177
177
  const result = (await handler({})) as HandlerResult;
178
178
 
@@ -108,7 +108,7 @@ describe("channel readiness routes — email and WhatsApp probes", () => {
108
108
  expect(ingressCheck!.passed).toBe(false);
109
109
  });
110
110
 
111
- test("ready when the platform reports a registered inbox", async () => {
111
+ test("ready when the cloud reports a registered inbox", async () => {
112
112
  setConfig("ingress", {
113
113
  publicBaseUrl: "https://example.com",
114
114
  enabled: true,
@@ -125,7 +125,7 @@ describe("channel readiness routes — email and WhatsApp probes", () => {
125
125
  });
126
126
 
127
127
  test("platform registration decides the check; local config cannot", async () => {
128
- // Registration lives on the platform. A stray local `email.address`
128
+ // Registration lives on the cloud. A stray local `email.address`
129
129
  // config value (a key nothing writes) must not make an unregistered
130
130
  // inbox pass.
131
131
  setConfig("ingress", {
@@ -143,7 +143,7 @@ describe("channel readiness routes — email and WhatsApp probes", () => {
143
143
  );
144
144
  });
145
145
 
146
- test("not ready when the platform reports no inbox (remote check)", async () => {
146
+ test("not ready when the cloud reports no inbox (remote check)", async () => {
147
147
  setConfig("ingress", {
148
148
  publicBaseUrl: "https://example.com",
149
149
  enabled: true,
@@ -186,7 +186,7 @@ describe("channel readiness routes — email and WhatsApp probes", () => {
186
186
  expect(snapshot.reasons).toHaveLength(0);
187
187
  });
188
188
 
189
- test("a your-own credential decides even when the platform is unreachable", async () => {
189
+ test("a your-own credential decides even when the cloud is unreachable", async () => {
190
190
  setConfig("ingress", {
191
191
  publicBaseUrl: "https://example.com",
192
192
  enabled: true,
@@ -23,19 +23,19 @@ mock.module("../calls/twilio-rest.js", () => ({
23
23
  }));
24
24
 
25
25
  mock.module("../config/env-registry.js", () => ({
26
- getIsPlatform: () => mockGetIsPlatform,
26
+ getIsCloud: () => mockGetIsPlatform,
27
27
  }));
28
28
 
29
29
  // Spread the real module: replacing it wholesale drops the exports peer test
30
30
  // files import from it, which breaks their named-import validation whenever
31
31
  // this mock wins evaluation in a combined run.
32
32
  const actualRegistration =
33
- await import("../inbound/platform-callback-registration.js");
34
- mock.module("../inbound/platform-callback-registration.js", () => ({
33
+ await import("../inbound/cloud-callback-registration.js");
34
+ mock.module("../inbound/cloud-callback-registration.js", () => ({
35
35
  ...actualRegistration,
36
- resolvePlatformCallbackRegistrationContext: async () => ({
36
+ resolveCloudCallbackRegistrationContext: async () => ({
37
37
  isPlatform: mockGetIsPlatform,
38
- platformBaseUrl: "https://cloud.mycadet.ai",
38
+ cloudBaseUrl: "https://cloud.mycadet.ai",
39
39
  assistantId: mockPlatformConnected ? "assistant-123" : "",
40
40
  hasAssistantApiKey: mockPlatformConnected,
41
41
  authHeader: mockPlatformConnected ? "Api-Key secret" : null,
@@ -292,8 +292,8 @@ describe("ChannelReadinessService", () => {
292
292
  });
293
293
  });
294
294
 
295
- test("telegram readiness accepts a platform-connected assistant with no ingress", async () => {
296
- // LUM-2882: `webhooks register telegram` resolves a platform callback URL
295
+ test("telegram readiness accepts a cloud-connected assistant with no ingress", async () => {
296
+ // LUM-2882: `webhooks register telegram` resolves a cloud callback URL
297
297
  // in this configuration, so reporting missing ingress here would hide a
298
298
  // registration that is really in place (or really broken).
299
299
  mockPlatformConnected = true;
@@ -311,7 +311,7 @@ describe("ChannelReadinessService", () => {
311
311
  });
312
312
  });
313
313
 
314
- test("phone readiness accepts a platform-connected assistant with no ingress", async () => {
314
+ test("phone readiness accepts a cloud-connected assistant with no ingress", async () => {
315
315
  mockPlatformConnected = true;
316
316
  mockHasTwilioCredentials = true;
317
317
  setConfig("twilio", { phoneNumber: "+15550123" });
@@ -327,7 +327,7 @@ describe("ChannelReadinessService", () => {
327
327
  });
328
328
  });
329
329
 
330
- test("configured ingress beats the platform-connected fallback", async () => {
330
+ test("configured ingress beats the cloud-connected fallback", async () => {
331
331
  // Any logged-in local assistant holds cloud credentials for the LLM
332
332
  // proxy. Reporting managed routing here would mislabel a webhook that
333
333
  // `webhooks register` resolves to the self-hosted URL.
@@ -347,9 +347,9 @@ describe("ChannelReadinessService", () => {
347
347
  });
348
348
  });
349
349
 
350
- test("explicit ingress opt-out blocks the platform-connected fallback", async () => {
350
+ test("explicit ingress opt-out blocks the cloud-connected fallback", async () => {
351
351
  // Switching ingress off is a decision not to accept inbound webhooks, not
352
- // an invitation to route them through the platform instead.
352
+ // an invitation to route them through the cloud instead.
353
353
  mockPlatformConnected = true;
354
354
  mockSecureKeys[credentialKey("telegram", "bot_token")] = "123:abc";
355
355
  mockSecureKeys[credentialKey("telegram", "webhook_secret")] = "secret";
@@ -365,10 +365,10 @@ describe("ChannelReadinessService", () => {
365
365
  });
366
366
  });
367
367
 
368
- test("email readiness accepts a platform-connected assistant with no ingress", async () => {
369
- // Inbound email arrives through the platform callback route the gateway
368
+ test("email readiness accepts a cloud-connected assistant with no ingress", async () => {
369
+ // Inbound email arrives through the cloud callback route the gateway
370
370
  // registers (`registerEmailCallbackRoute`, the same pattern as Telegram),
371
- // so a platform-connected assistant with no public ingress URL still
371
+ // so a cloud-connected assistant with no public ingress URL still
372
372
  // receives email and must not report missing ingress.
373
373
  mockPlatformConnected = true;
374
374
 
@@ -7,7 +7,7 @@
7
7
  * indicator went green on a channel nobody could reach.
8
8
  *
9
9
  * The classification lives in `checkTelegramWebhookHealth`, which already
10
- * handles error recency and the managed-versus-self-hosted recovery text.
10
+ * handles error recency and the cloud-versus-self-hosted recovery text.
11
11
  * These tests pin how the probe maps its verdicts across three outcomes, not
12
12
  * two: verified pass, hard failure, and the no-evidence statuses that are
13
13
  * neither. A probe that cannot see the answer must not report a fault, and
@@ -20,6 +20,8 @@
20
20
  */
21
21
  import { beforeEach, describe, expect, mock, test } from "bun:test";
22
22
 
23
+ import { setOverridesForTesting } from "../__tests__/feature-flag-test-helpers.js";
24
+
23
25
  // ── Store mock: reads stay pending until the test releases them ──────────
24
26
  // Only reached on the store-fallback path (a ref with no proven value); the
25
27
  // proven path redacts the route-served bytes without touching the store.
@@ -34,12 +36,6 @@ mock.module("../security/secure-keys.js", () => ({
34
36
  }),
35
37
  }));
36
38
 
37
- // Feature flag on regardless of config contents.
38
- mock.module("../config/assistant-feature-flags.js", () => ({
39
- isAssistantFeatureFlagEnabled: (flag: string) =>
40
- flag === "chat-credential-reveal",
41
- }));
42
-
43
39
  mock.module("../config/loader.js", () => ({
44
40
  getConfig: () => ({}),
45
41
  }));
@@ -172,6 +168,9 @@ const REVEAL_TOOL_RESULT = {
172
168
  } as Extract<AgentEvent, { type: "tool_result" }>;
173
169
 
174
170
  beforeEach(() => {
171
+ // Real flag resolution: only chat-credential-reveal is enabled.
172
+ setOverridesForTesting({ "chat-credential-reveal": true });
173
+
175
174
  _resetStreamStateForTesting();
176
175
  _resetRevealSuccessRegistryForTest();
177
176
  resetForChatMintRegistryForTest();
@@ -284,20 +284,20 @@ describe("Permission Checker", () => {
284
284
  expect(result.decision).toBe("prompt");
285
285
  });
286
286
 
287
- test("scaffold_managed_skill high risk → prompt", async () => {
287
+ test("scaffold_cloud_skill high risk → prompt", async () => {
288
288
  mockRisk("high");
289
289
  const result = await check(
290
- "scaffold_managed_skill",
290
+ "scaffold_cloud_skill",
291
291
  { skill_id: "my-skill" },
292
292
  "/tmp",
293
293
  );
294
294
  expect(result.decision).toBe("prompt");
295
295
  });
296
296
 
297
- test("delete_managed_skill high risk → prompt", async () => {
297
+ test("delete_cloud_skill high risk → prompt", async () => {
298
298
  mockRisk("high");
299
299
  const result = await check(
300
- "delete_managed_skill",
300
+ "delete_cloud_skill",
301
301
  { skill_id: "my-skill" },
302
302
  "/tmp",
303
303
  );
@@ -531,9 +531,9 @@ describe("Permission Checker", () => {
531
531
  // High risk, requiring explicit high-risk approval. Reads remain Low.
532
532
 
533
533
  describe("skill source mutation risk escalation (PR 29)", () => {
534
- // Ensure the managed skills directory exists so that symlink-resolved
534
+ // Ensure the cloud skills directory exists so that symlink-resolved
535
535
  // paths (e.g. /private/var on macOS) match between normalizeFilePath
536
- // and getManagedSkillsRoot.
536
+ // and getCloudSkillsRoot.
537
537
  function ensureSkillsDir(): void {
538
538
  mkdirSync(join(checkerTestDir, "skills"), { recursive: true });
539
539
  }