@mycadet/assistant 0.12.7 → 0.12.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (904) hide show
  1. package/README.md +1 -1
  2. package/docs/activation-funnel-telemetry.md +6 -6
  3. package/docs/cadet-doctor.md +7 -7
  4. package/docs/desktop-browser-cli.md +7 -7
  5. package/docs/skills.md +2 -2
  6. package/docs/voice-input-diagnostics.md +1 -1
  7. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +2 -2
  8. package/node_modules/@mycadet/avatar-manifest/src/__tests__/notification-avatar.test.ts +1 -1
  9. package/node_modules/@mycadet/avatar-manifest/src/notification-avatar.ts +2 -2
  10. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/package.json +2 -2
  11. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  12. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  13. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  14. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  15. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  16. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  17. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  18. package/node_modules/@mycadet/ces-client/package.json +1 -1
  19. package/node_modules/@mycadet/ces-client/src/__tests__/ces-client.test.ts +14 -14
  20. package/node_modules/@mycadet/ces-client/src/rpc-client.ts +1 -1
  21. package/node_modules/@mycadet/credential-storage/src/oauth-runtime.ts +1 -1
  22. package/node_modules/@mycadet/credential-storage/src/static-credentials.ts +1 -1
  23. package/node_modules/@mycadet/environments/src/seeds.ts +6 -6
  24. package/node_modules/@mycadet/environments/src/shell.test.ts +1 -1
  25. package/node_modules/@mycadet/environments/src/types.ts +6 -6
  26. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/package.json +2 -2
  27. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  28. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  29. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  30. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  31. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  32. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  33. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  34. package/node_modules/@mycadet/gateway-client/src/binding-strength-contract.ts +5 -5
  35. package/node_modules/@mycadet/gateway-client/src/gateway-ipc-contracts.ts +1 -1
  36. package/node_modules/@mycadet/gateway-client/src/inbound-contract.ts +2 -2
  37. package/node_modules/@mycadet/gateway-client/src/outbound-contract.ts +1 -1
  38. package/node_modules/@mycadet/service-contracts/package.json +2 -2
  39. package/node_modules/@mycadet/service-contracts/src/{platform-credential.ts → cloud-credential.ts} +9 -9
  40. package/node_modules/@mycadet/service-contracts/src/handles.ts +3 -3
  41. package/node_modules/@mycadet/service-contracts/src/index.ts +1 -1
  42. package/node_modules/@mycadet/service-contracts/src/ingress.ts +11 -5
  43. package/node_modules/@mycadet/service-contracts/src/remote-web-pairing.ts +1 -1
  44. package/node_modules/@mycadet/service-contracts/src/rpc.ts +14 -14
  45. package/node_modules/@mycadet/service-contracts/src/trust-rules.ts +5 -5
  46. package/openapi.yaml +6804 -799
  47. package/package.json +2 -2
  48. package/scripts/build-test-fixtures.ts +1 -1
  49. package/scripts/probe-skill-retrieval.ts +1 -1
  50. package/scripts/sync-llm-catalog.ts +2 -2
  51. package/scripts/voice-ttft-spike.ts +2 -2
  52. package/src/__tests__/adaptive-thinking-repair.test.ts +4 -4
  53. package/src/__tests__/agent-loop-override-profile.test.ts +4 -4
  54. package/src/__tests__/agent-loop-subagent-billing-headers.test.ts +1 -1
  55. package/src/__tests__/anthropic-provider.test.ts +2 -2
  56. package/src/__tests__/available-skills.test.ts +11 -12
  57. package/src/__tests__/avatar-identity-sync.test.ts +1 -1
  58. package/src/__tests__/byok-default-profile-ensure.test.ts +7 -7
  59. package/src/__tests__/call-domain.test.ts +1 -1
  60. package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +2 -2
  61. package/src/__tests__/catalog-files.test.ts +10 -10
  62. package/src/__tests__/catalog-install-normalize.test.ts +3 -3
  63. package/src/__tests__/channel-availability-routes.test.ts +8 -8
  64. package/src/__tests__/channel-readiness-routes.test.ts +4 -4
  65. package/src/__tests__/channel-readiness-service.test.ts +14 -14
  66. package/src/__tests__/channel-readiness-telegram-remote.test.ts +1 -1
  67. package/src/__tests__/chat-reveal-guard-priming.test.ts +5 -6
  68. package/src/__tests__/checker.test.ts +6 -6
  69. package/src/__tests__/clawhub.test.ts +1 -1
  70. package/src/__tests__/{platform-callback-registration.test.ts → cloud-callback-registration.test.ts} +66 -90
  71. package/src/__tests__/{platform-client-verify-credential.test.ts → cloud-client-verify-credential.test.ts} +14 -14
  72. package/src/__tests__/{managed-credential-catalog-cli.test.ts → cloud-credential-catalog-cli.test.ts} +41 -41
  73. package/src/__tests__/{managed-fallback-dispatch.test.ts → cloud-fallback-dispatch.test.ts} +21 -16
  74. package/src/__tests__/{managed-profile-guard.test.ts → cloud-profile-guard.test.ts} +77 -75
  75. package/src/__tests__/{platform-proxy-context.test.ts → cloud-proxy-context.test.ts} +44 -44
  76. package/src/__tests__/{managed-speech-defaults.test.ts → cloud-speech-defaults.test.ts} +41 -41
  77. package/src/__tests__/{managed-store.test.ts → cloud-store.test.ts} +99 -99
  78. package/src/__tests__/compaction-events.test.ts +7 -5
  79. package/src/__tests__/config-loader-backfill.test.ts +65 -65
  80. package/src/__tests__/config-loader-cloud-defaults.test.ts +373 -0
  81. package/src/__tests__/config-loader-corrupt.test.ts +1 -1
  82. package/src/__tests__/config-loader-validation-reset-notice.test.ts +1 -1
  83. package/src/__tests__/config-schema.test.ts +3 -3
  84. package/src/__tests__/{config-set-platform-guard.test.ts → config-set-cloud-guard.test.ts} +6 -6
  85. package/src/__tests__/config-set-route.test.ts +12 -8
  86. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +0 -8
  87. package/src/__tests__/config-watcher.test.ts +1 -1
  88. package/src/__tests__/contacts-write.test.ts +1 -1
  89. package/src/__tests__/conversation-agent-loop.test.ts +2 -2
  90. package/src/__tests__/conversation-app-control-instantiation.test.ts +18 -18
  91. package/src/__tests__/conversation-error.test.ts +45 -45
  92. package/src/__tests__/conversation-inference-profile-route.test.ts +4 -4
  93. package/src/__tests__/conversation-rendered-delegation-state.test.ts +4 -4
  94. package/src/__tests__/conversation-skill-tools.test.ts +7 -8
  95. package/src/__tests__/conversation-slash.test.ts +2 -2
  96. package/src/__tests__/conversation-speed-override.test.ts +8 -10
  97. package/src/__tests__/conversation-summarize-up-to.test.ts +4 -4
  98. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +1 -1
  99. package/src/__tests__/conversation-wait-for-idle.test.ts +7 -5
  100. package/src/__tests__/credential-execution-api-key-propagation.test.ts +5 -5
  101. package/src/__tests__/{credential-execution-managed-contract.test.ts → credential-execution-cloud-contract.test.ts} +24 -24
  102. package/src/__tests__/credential-health-service.test.ts +28 -40
  103. package/src/__tests__/credential-routes.test.ts +85 -165
  104. package/src/__tests__/credential-security-invariants.test.ts +6 -7
  105. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  106. package/src/__tests__/date-context.test.ts +1 -1
  107. package/src/__tests__/default-profile-catalog-fallback.test.ts +15 -15
  108. package/src/__tests__/delete-managed-skill-tool.test.ts +8 -8
  109. package/src/__tests__/discord-callback-round-trip.test.ts +1 -1
  110. package/src/__tests__/disk-usage.test.ts +3 -3
  111. package/src/__tests__/email-invite-adapter.test.ts +5 -5
  112. package/src/__tests__/{embedding-managed-proxy-selection.test.ts → embedding-cloud-proxy-selection.test.ts} +44 -43
  113. package/src/__tests__/emit-signal-routing-intent.test.ts +13 -15
  114. package/src/__tests__/events-dev-bypass-actor.test.ts +2 -2
  115. package/src/__tests__/fallback-breaker.test.ts +7 -7
  116. package/src/__tests__/feature-flag-test-helpers.ts +106 -0
  117. package/src/__tests__/gateway-flag-listener.test.ts +1 -1
  118. package/src/__tests__/gemini-image-service.test.ts +2 -2
  119. package/src/__tests__/gemini-provider.test.ts +5 -5
  120. package/src/__tests__/get-skill-detail-audit.test.ts +134 -288
  121. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  122. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +5 -5
  123. package/src/__tests__/host-cu-routes-targeted.test.ts +8 -8
  124. package/src/__tests__/image-credentials.test.ts +13 -13
  125. package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +14 -6
  126. package/src/__tests__/inbound-trust-verdict.test.ts +14 -6
  127. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +11 -11
  128. package/src/__tests__/inference-profile-session-handler.test.ts +7 -7
  129. package/src/__tests__/inference-profile-session-ipc.test.ts +5 -5
  130. package/src/__tests__/inference-profile-validation-jev.test.ts +1 -1
  131. package/src/__tests__/init-feature-flag-overrides.test.ts +40 -24
  132. package/src/__tests__/input-repairs.test.ts +1 -1
  133. package/src/__tests__/install-skill-routing.test.ts +10 -8
  134. package/src/__tests__/integration-status.test.ts +5 -5
  135. package/src/__tests__/internal-telemetry-routes.test.ts +3 -3
  136. package/src/__tests__/invite-routes-http.test.ts +1 -1
  137. package/src/__tests__/llm-catalog-parity.test.ts +5 -7
  138. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +2 -2
  139. package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -3
  140. package/src/__tests__/llm-resolver.test.ts +1 -1
  141. package/src/__tests__/llm-schema-fallback-profile.test.ts +25 -19
  142. package/src/__tests__/llm-usage-store.test.ts +1 -1
  143. package/src/__tests__/managed-skill-lifecycle.test.ts +12 -12
  144. package/src/__tests__/mcp-abort-signal.test.ts +1 -2
  145. package/src/__tests__/mcp-client-auth.test.ts +1 -2
  146. package/src/__tests__/mcp-config-secret-boundary.test.ts +44 -40
  147. package/src/__tests__/mcp-tool-annotations-risk.test.ts +1 -2
  148. package/src/__tests__/media-generate-image.test.ts +30 -30
  149. package/src/__tests__/memory-config-file-parity.test.ts +6 -6
  150. package/src/__tests__/migration-export-to-gcs.test.ts +4 -4
  151. package/src/__tests__/migration-import-commit-http.test.ts +1 -1
  152. package/src/__tests__/mtime-cache.test.ts +2 -2
  153. package/src/__tests__/{notification-platform-adapter.test.ts → notification-cloud-adapter.test.ts} +39 -39
  154. package/src/__tests__/notification-deep-link.test.ts +40 -40
  155. package/src/__tests__/oauth-apps-routes.test.ts +3 -3
  156. package/src/__tests__/oauth-cli.test.ts +9 -9
  157. package/src/__tests__/oauth-commands-routes.test.ts +16 -16
  158. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -2
  159. package/src/__tests__/oauth-provider-serializer.test.ts +11 -11
  160. package/src/__tests__/oauth-providers-routes.test.ts +12 -12
  161. package/src/__tests__/oauth-store.test.ts +1 -1
  162. package/src/__tests__/oauth2-gateway-transport.test.ts +3 -3
  163. package/src/__tests__/onboarding-persona-write.test.ts +2 -2
  164. package/src/__tests__/openai-image-service.test.ts +2 -2
  165. package/src/__tests__/openai-responses-cutover-guard.test.ts +2 -2
  166. package/src/__tests__/openai-responses-provider.test.ts +1 -1
  167. package/src/__tests__/path-policy.test.ts +4 -4
  168. package/src/__tests__/personal-memory-auth-bypass.test.ts +1 -1
  169. package/src/__tests__/platform-bash-auto-approve.test.ts +18 -18
  170. package/src/__tests__/plugin-api-model-profiles.test.ts +1 -1
  171. package/src/__tests__/plugin-api-provider.test.ts +1 -1
  172. package/src/__tests__/plugin-api-store-credential.test.ts +4 -1
  173. package/src/__tests__/plugin-api-webhook-url.test.ts +4 -5
  174. package/src/__tests__/plugin-import-boundary-guard.test.ts +8 -39
  175. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -2
  176. package/src/__tests__/{provider-platform-proxy-integration.test.ts → provider-cloud-proxy-integration.test.ts} +70 -72
  177. package/src/__tests__/provider-commit-message-generator.test.ts +1 -1
  178. package/src/__tests__/provider-connections-backfill.test.ts +9 -9
  179. package/src/__tests__/provider-error-scenarios.test.ts +8 -8
  180. package/src/__tests__/provider-registry-ollama.test.ts +1 -1
  181. package/src/__tests__/provider-send-message-override-profile.test.ts +5 -5
  182. package/src/__tests__/registry.test.ts +3 -3
  183. package/src/__tests__/requests-mock.ts +972 -0
  184. package/src/__tests__/resolve-trust-class.test.ts +1 -1
  185. package/src/__tests__/resource-pressure-guard.test.ts +6 -6
  186. package/src/__tests__/resource-pressure-routes.test.ts +5 -5
  187. package/src/__tests__/retry-fallback-escalation.test.ts +5 -5
  188. package/src/__tests__/sanitize-config-for-transfer.test.ts +1 -1
  189. package/src/__tests__/scaffold-managed-skill-tool.test.ts +97 -97
  190. package/src/__tests__/schedule-store.test.ts +1 -1
  191. package/src/__tests__/search-skills-unified.test.ts +9 -7
  192. package/src/__tests__/{secret-routes-platform-proxy.test.ts → secret-routes-cloud-proxy.test.ts} +48 -95
  193. package/src/__tests__/secret-routes-scrub.test.ts +2 -59
  194. package/src/__tests__/secure-keys.test.ts +1 -1
  195. package/src/__tests__/skill-load-plugin-scope.test.ts +2 -2
  196. package/src/__tests__/skill-load-tool.test.ts +1 -1
  197. package/src/__tests__/skill-projection-feature-flag.test.ts +0 -19
  198. package/src/__tests__/skill-projection.benchmark.test.ts +5 -7
  199. package/src/__tests__/skill-tool-factory.test.ts +1 -1
  200. package/src/__tests__/skills-file-content-endpoint.test.ts +222 -536
  201. package/src/__tests__/skills-files-catalog-fallback.test.ts +259 -577
  202. package/src/__tests__/skills.test.ts +1 -1
  203. package/src/__tests__/slim-skill-category.test.ts +11 -9
  204. package/src/__tests__/stt-stream-session.test.ts +3 -3
  205. package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
  206. package/src/__tests__/subagent-disposal.test.ts +5 -5
  207. package/src/__tests__/subagent-fork-notifications.test.ts +4 -4
  208. package/src/__tests__/subagent-fork-spawn.test.ts +5 -5
  209. package/src/__tests__/subagent-manager-notify.test.ts +5 -5
  210. package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -2
  211. package/src/__tests__/system-prompt.test.ts +1 -1
  212. package/src/__tests__/telegram-bot-username-resolution.test.ts +34 -52
  213. package/src/__tests__/telegram-config.test.ts +16 -16
  214. package/src/__tests__/telephony-tts-guard.test.ts +13 -13
  215. package/src/__tests__/test-preload.ts +17 -7
  216. package/src/__tests__/tool-audit.test.ts +1 -1
  217. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +7 -5
  218. package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
  219. package/src/__tests__/turn-events-store.test.ts +1 -1
  220. package/src/__tests__/twilio-routes.test.ts +2 -1
  221. package/src/__tests__/ui-choice-copy-surfaces.test.ts +1 -1
  222. package/src/__tests__/unified-turn-context-client-os.test.ts +1 -1
  223. package/src/__tests__/validate-input.test.ts +5 -5
  224. package/src/__tests__/verification-outbound-delivery.test.ts +1 -1
  225. package/src/__tests__/voice-config-update.test.ts +15 -15
  226. package/src/__tests__/voice-ingress-preflight.test.ts +4 -4
  227. package/src/__tests__/web-search.test.ts +340 -859
  228. package/src/__tests__/workspace-git-service.test.ts +1 -1
  229. package/src/__tests__/workspace-migration-082-backfill-managed-profile-labels.test.ts +12 -12
  230. package/src/__tests__/workspace-migration-087-memory-router-balanced-profile.test.ts +1 -1
  231. package/src/__tests__/workspace-migration-090-memory-router-cost-optimized-profile.test.ts +1 -1
  232. package/src/__tests__/workspace-migration-100-upgrade-quality-profile-to-fable-5.test.ts +1 -1
  233. package/src/__tests__/workspace-migration-103-upgrade-quality-profile-to-opus-4-8.test.ts +1 -1
  234. package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +1 -1
  235. package/src/__tests__/workspace-migration-113-swap-balanced-profile-to-glm-5p2.test.ts +1 -1
  236. package/src/__tests__/workspace-migration-114-swap-quality-profile-to-opus.test.ts +1 -1
  237. package/src/__tests__/workspace-migration-123-swap-quality-profile-to-fable.test.ts +1 -1
  238. package/src/__tests__/workspace-migration-125-repoint-managed-connections-to-cadet.test.ts +3 -3
  239. package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +9 -9
  240. package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +11 -11
  241. package/src/__tests__/workspace-migration-130-speech-mode-to-provider.test.ts +3 -3
  242. package/src/__tests__/workspace-migration-132-web-search-mode-to-provider.test.ts +6 -6
  243. package/src/__tests__/workspace-migration-133-collapse-provider-connections.test.ts +3 -3
  244. package/src/__tests__/workspace-migration-134-image-generation-mode-to-provider.test.ts +6 -6
  245. package/src/__tests__/workspace-migration-136-repair-stale-fireworks-kimi-model-id.test.ts +1 -1
  246. package/src/__tests__/workspace-migration-137-repair-retired-fireworks-minimax-model-id.test.ts +1 -1
  247. package/src/__tests__/workspace-migration-146-repair-retired-fireworks-deepseek-flash-model-id.test.ts +1 -1
  248. package/src/__tests__/workspace-migration-147-rename-colliding-backup-profile-names.test.ts +1 -1
  249. package/src/__tests__/workspace-migration-151-repair-renamed-fireworks-deepseek-pro-model-id.test.ts +1 -1
  250. package/src/__tests__/workspace-migration-152-repair-retired-fireworks-minimax-m2p7-model-id.test.ts +1 -1
  251. package/src/__tests__/workspace-migration-159-rename-colliding-jev-profile-name.test.ts +1 -1
  252. package/src/__tests__/workspace-migration-160-repair-retired-fireworks-model-ids.test.ts +1 -1
  253. package/src/__tests__/workspace-migration-161-repair-retired-fireworks-glm-5p2-model-id.test.ts +1 -1
  254. package/src/api/events/cloud-disconnected.ts +21 -0
  255. package/src/api/events/host-bash.ts +1 -1
  256. package/src/api/events/host-cu.ts +1 -1
  257. package/src/api/events/host-file.ts +1 -1
  258. package/src/api/events/notification-intent.ts +1 -1
  259. package/src/api/events/show-cloud-login.ts +18 -0
  260. package/src/api/index.ts +11 -11
  261. package/src/api/responses/home.ts +1 -1
  262. package/src/api/surfaces.ts +4 -4
  263. package/src/approvals/guardian-request-resolvers.ts +2 -2
  264. package/src/avatar/accent-backfill.ts +1 -1
  265. package/src/avatar/identity-avatar.ts +1 -1
  266. package/src/avatar/notification-avatar.test.ts +2 -2
  267. package/src/avatar/notification-avatar.ts +2 -2
  268. package/src/avatar/resvg-lazy.test.ts +1 -1
  269. package/src/avatar/resvg-lazy.ts +3 -3
  270. package/src/avatar/sync-avatar.test.ts +76 -76
  271. package/src/avatar/sync-avatar.ts +15 -15
  272. package/src/avatar/traits-png-sync.ts +1 -1
  273. package/src/background-wake/background-wake-routes.test.ts +39 -39
  274. package/src/background-wake/{platform-client.test.ts → cloud-client.test.ts} +11 -11
  275. package/src/background-wake/{platform-client.ts → cloud-client.ts} +14 -14
  276. package/src/background-wake/publisher.ts +4 -4
  277. package/src/background-wake/wake-intent-hooks.test.ts +3 -3
  278. package/src/calls/__tests__/call-controller.test.ts +2 -2
  279. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -1
  280. package/src/calls/call-domain.ts +1 -1
  281. package/src/calls/resolve-call-tts-provider.ts +6 -6
  282. package/src/calls/telephony-credential-preflight.ts +3 -3
  283. package/src/calls/telephony-tts-capability.ts +5 -6
  284. package/src/calls/tts-call-strategy.ts +1 -1
  285. package/src/calls/voice-escalation-judge.ts +1 -1
  286. package/src/calls/voice-ingress-preflight.ts +4 -4
  287. package/src/cli/bundled-modules.ts +1 -1
  288. package/src/cli/commands/__tests__/apps.test.ts +18 -53
  289. package/src/cli/commands/__tests__/plugins.test.ts +13 -13
  290. package/src/cli/commands/__tests__/tts.test.ts +1 -1
  291. package/src/cli/commands/auth.help.ts +3 -3
  292. package/src/cli/commands/auth.ts +2 -4
  293. package/src/cli/commands/browser.help.ts +2 -2
  294. package/src/cli/commands/channels/index.help.ts +2 -2
  295. package/src/cli/commands/channels/index.ts +1 -1
  296. package/src/cli/commands/channels/send.ts +1 -1
  297. package/src/cli/commands/cloud/__tests__/callback-routes-list.test.ts +2 -2
  298. package/src/cli/commands/cloud/__tests__/connect.test.ts +1 -1
  299. package/src/cli/commands/cloud/__tests__/disconnect.test.ts +3 -4
  300. package/src/cli/commands/cloud/connect.ts +2 -2
  301. package/src/cli/commands/cloud/credits-format.ts +1 -1
  302. package/src/cli/commands/cloud/index.help.ts +35 -35
  303. package/src/cli/commands/cloud/index.ts +1 -1
  304. package/src/cli/commands/config.ts +2 -2
  305. package/src/cli/commands/credentials.ts +10 -12
  306. package/src/cli/commands/domain.ts +1 -1
  307. package/src/cli/commands/email.help.ts +1 -1
  308. package/src/cli/commands/email.ts +2 -2
  309. package/src/cli/commands/gateway.help.ts +1 -1
  310. package/src/cli/commands/gateway.ts +1 -1
  311. package/src/cli/commands/image-generation.help.ts +1 -1
  312. package/src/cli/commands/inference-providers.ts +1 -1
  313. package/src/cli/commands/inference.help.ts +2 -2
  314. package/src/cli/commands/memory/index.help.ts +1 -1
  315. package/src/cli/commands/oauth/connect.test.ts +2 -2
  316. package/src/cli/commands/oauth/connect.ts +1 -1
  317. package/src/cli/commands/oauth/index.help.ts +5 -5
  318. package/src/cli/commands/oauth/providers.ts +2 -2
  319. package/src/cli/commands/oauth/shared.ts +3 -3
  320. package/src/cli/commands/plugins.help.ts +2 -3
  321. package/src/cli/commands/plugins.ts +5 -5
  322. package/src/cli/commands/roadmap.help.ts +1 -1
  323. package/src/cli/commands/telemetry.help.ts +2 -2
  324. package/src/cli/commands/telemetry.ts +2 -2
  325. package/src/cli/commands/tts.help.ts +3 -3
  326. package/src/cli/commands/webhooks.help.ts +9 -9
  327. package/src/cli/commands/webhooks.ts +1 -1
  328. package/src/cli/lib/__tests__/inspect-plugin.test.ts +8 -8
  329. package/src/cli/lib/__tests__/{install-from-platform.test.ts → install-from-cloud.test.ts} +54 -54
  330. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +18 -18
  331. package/src/cli/lib/__tests__/{plugin-catalog-platform.test.ts → plugin-catalog-cloud.test.ts} +2 -2
  332. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +1 -1
  333. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +9 -9
  334. package/src/cli/lib/__tests__/plugin-details.test.ts +10 -10
  335. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +24 -24
  336. package/src/cli/lib/bundled-marketplace.json +1 -1
  337. package/src/cli/lib/inspect-plugin.ts +2 -2
  338. package/src/cli/lib/{install-from-platform.ts → install-from-cloud.ts} +29 -29
  339. package/src/cli/lib/install-from-github.ts +4 -4
  340. package/src/cli/lib/plugin-catalog-cache.ts +7 -7
  341. package/src/cli/lib/{plugin-catalog-platform.ts → plugin-catalog-cloud.ts} +6 -6
  342. package/src/cli/lib/plugin-catalog-local.ts +2 -2
  343. package/src/cli/lib/publish-plugin.ts +9 -10
  344. package/src/cli/lib/search-plugins.ts +2 -2
  345. package/src/{platform → cloud}/client.test.ts +85 -86
  346. package/src/{platform → cloud}/client.ts +38 -46
  347. package/src/{platform/platform-patch-queue.test.ts → cloud/cloud-patch-queue.test.ts} +6 -9
  348. package/src/{platform/platform-patch-queue.ts → cloud/cloud-patch-queue.ts} +11 -11
  349. package/src/{platform/managed-speech.test.ts → cloud/cloud-speech.test.ts} +19 -19
  350. package/src/{platform/managed-speech.ts → cloud/cloud-speech.ts} +41 -41
  351. package/src/{platform → cloud}/consent-cache.test.ts +5 -5
  352. package/src/{platform → cloud}/consent-cache.ts +8 -8
  353. package/src/cloud/feature-gate.ts +8 -0
  354. package/src/{platform → cloud}/sync-identity.test.ts +4 -4
  355. package/src/{platform → cloud}/sync-identity.ts +6 -6
  356. package/src/config/__tests__/{platform-identity.test.ts → cloud-identity.test.ts} +54 -56
  357. package/src/config/__tests__/{platform-rehydration.test.ts → cloud-rehydration.test.ts} +47 -80
  358. package/src/config/__tests__/default-profile-catalog.test.ts +12 -12
  359. package/src/config/__tests__/default-provider.test.ts +4 -4
  360. package/src/config/__tests__/deployment-context-defaults.test.ts +23 -23
  361. package/src/config/__tests__/{jev-managed-profile.test.ts → jev-cloud-profile.test.ts} +3 -5
  362. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +2 -2
  363. package/src/config/__tests__/loader-last-known-good.test.ts +6 -6
  364. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +2 -2
  365. package/src/config/__tests__/profile-materialization.test.ts +7 -7
  366. package/src/config/__tests__/seed-default-provider.test.ts +17 -17
  367. package/src/config/__tests__/substrate-twin-shadowing.test.ts +36 -26
  368. package/src/config/__tests__/sync-gated-profiles.test.ts +20 -20
  369. package/src/config/__tests__/webhook-routing.test.ts +51 -51
  370. package/src/config/bundled-skills/computer-use/TOOLS.json +12 -12
  371. package/src/config/bundled-skills/messaging/SKILL.md +8 -8
  372. package/src/config/bundled-skills/messaging/TOOLS.json +2 -2
  373. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +1 -1
  374. package/src/config/bundled-skills/messaging/tools/shared.ts +1 -1
  375. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +2 -2
  376. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  377. package/src/config/bundled-skills/settings/tools/shared.ts +1 -1
  378. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +12 -12
  379. package/src/config/bundled-skills/skill-management/SKILL.md +3 -3
  380. package/src/config/bundled-skills/skill-management/TOOLS.json +8 -8
  381. package/src/config/bundled-skills/skill-management/tools/{delete-managed.ts → delete-cloud.ts} +2 -2
  382. package/src/config/bundled-skills/skill-management/tools/{scaffold-managed.ts → scaffold-cloud.ts} +2 -2
  383. package/src/config/call-site-defaults.ts +6 -6
  384. package/src/config/{platform-identity.ts → cloud-identity.ts} +39 -42
  385. package/src/config/cloud-rehydration.ts +35 -0
  386. package/src/config/{managed-speech-defaults.ts → cloud-speech-defaults.ts} +13 -13
  387. package/src/config/default-profile-catalog.ts +36 -38
  388. package/src/config/default-profile-names.ts +11 -11
  389. package/src/config/default-provider-resolution.ts +2 -2
  390. package/src/config/default-provider.ts +1 -1
  391. package/src/config/env-registry.ts +21 -26
  392. package/src/config/env.ts +33 -46
  393. package/src/config/feature-flag-registry.json +5 -5
  394. package/src/config/inference-profile-validation.ts +1 -1
  395. package/src/config/llm-resolver.ts +9 -10
  396. package/src/config/loader.ts +33 -17
  397. package/src/config/profile-materialization.ts +8 -8
  398. package/src/config/profile-text-generation.test.ts +1 -1
  399. package/src/config/sanitize-for-transfer.ts +1 -1
  400. package/src/config/schema.ts +6 -6
  401. package/src/config/schemas/__tests__/stt.test.ts +2 -2
  402. package/src/config/schemas/call-site-catalog.ts +1 -1
  403. package/src/config/schemas/channels.ts +8 -0
  404. package/src/config/schemas/{platform.ts → cloud.ts} +7 -6
  405. package/src/config/schemas/host-browser.ts +1 -0
  406. package/src/config/schemas/ingress.ts +29 -10
  407. package/src/config/schemas/llm.ts +36 -36
  408. package/src/config/schemas/memory-lifecycle.ts +11 -1
  409. package/src/config/schemas/services.ts +4 -4
  410. package/src/config/schemas/stt.ts +3 -3
  411. package/src/config/schemas/tts.ts +10 -5
  412. package/src/config/schemas/voice.ts +1 -1
  413. package/src/config/seed-inference-profiles.ts +19 -19
  414. package/src/config/skill-state.ts +2 -2
  415. package/src/config/skills.ts +4 -4
  416. package/src/config/substrate-twin-shadowing.ts +12 -17
  417. package/src/config/sync-gated-profiles.ts +8 -9
  418. package/src/config/webhook-routing.ts +19 -19
  419. package/src/contacts/contacts-write.ts +1 -1
  420. package/src/credential-execution/ces-runtime.ts +6 -6
  421. package/src/credential-execution/{managed-catalog.ts → cloud-catalog.ts} +24 -24
  422. package/src/credential-execution/prompted-credential.ts +2 -23
  423. package/src/credential-health/credential-health-service.ts +59 -70
  424. package/src/daemon/__tests__/can-spawn-subagents.test.ts +1 -1
  425. package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +4 -4
  426. package/src/daemon/config-watcher.ts +2 -2
  427. package/src/daemon/conversation-agent-loop.ts +9 -9
  428. package/src/daemon/conversation-error.ts +36 -36
  429. package/src/daemon/conversation-skill-tools.ts +7 -7
  430. package/src/daemon/conversation-surfaces.ts +1 -1
  431. package/src/daemon/conversation-tool-setup.ts +2 -2
  432. package/src/daemon/conversation-turn-finalize.ts +1 -1
  433. package/src/daemon/conversation-workspace.ts +1 -1
  434. package/src/daemon/conversation.ts +1 -1
  435. package/src/daemon/credential-transcript-scrub.ts +32 -35
  436. package/src/daemon/daemon-readiness.ts +1 -1
  437. package/src/daemon/event-loop-watchdog.ts +2 -2
  438. package/src/daemon/handlers/config-ingress.ts +9 -9
  439. package/src/daemon/handlers/config-telegram.ts +6 -6
  440. package/src/daemon/handlers/skills.ts +20 -20
  441. package/src/daemon/host-cu-proxy.ts +1 -1
  442. package/src/daemon/lifecycle.ts +19 -19
  443. package/src/daemon/parse-actual-tokens-from-error.ts +3 -3
  444. package/src/daemon/providers-setup.ts +6 -6
  445. package/src/daemon/resource-pressure-guard-lifecycle.ts +1 -1
  446. package/src/daemon/resource-pressure-guard.ts +6 -6
  447. package/src/daemon/shutdown-handlers.ts +1 -1
  448. package/src/daemon/sqlite-corruption-watchdog.ts +3 -3
  449. package/src/daemon/trust-context.ts +1 -1
  450. package/src/desktop/desktop-automation-lease.ts +1 -1
  451. package/src/desktop/desktop-browser-endpoint.ts +2 -4
  452. package/src/desktop/desktop-computer-use-routing.test.ts +6 -6
  453. package/src/desktop/desktop-stream-bridge.test.ts +4 -4
  454. package/src/desktop/desktop-stream-bridge.ts +1 -1
  455. package/src/desktop/{virtual-desktop-platform.test.ts → virtual-desktop-cloud.test.ts} +6 -6
  456. package/src/desktop/virtual-desktop-feature.ts +7 -7
  457. package/src/email/byo-email-credential.ts +1 -1
  458. package/src/email/registered-inbox.test.ts +16 -16
  459. package/src/email/registered-inbox.ts +20 -20
  460. package/src/heartbeat/heartbeat-service.ts +1 -1
  461. package/src/hooks/hook-loader.ts +2 -2
  462. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  463. package/src/inbound/__tests__/tunnel-probe.test.ts +8 -8
  464. package/src/inbound/{platform-callback-registration.ts → cloud-callback-registration.ts} +49 -60
  465. package/src/inbound/oauth-callback-url.ts +6 -6
  466. package/src/inbound/pod-webhook-claim.ts +2 -2
  467. package/src/inbound/public-ingress-urls.ts +3 -3
  468. package/src/inbound/tunnel-probe.ts +21 -15
  469. package/src/inbound/tunnel-webhooks-gate.ts +3 -3
  470. package/src/ipc/__tests__/db-readiness-ipc-gate.test.ts +1 -1
  471. package/src/ipc/__tests__/email-ipc.test.ts +8 -8
  472. package/src/ipc/gateway-client.test.ts +55 -59
  473. package/src/ipc/gateway-flag-listener.ts +3 -3
  474. package/src/ipc/routes/db-proxy.ts +1 -1
  475. package/src/live-voice/__tests__/live-activity-reporter.test.ts +2 -2
  476. package/src/live-voice/__tests__/{live-voice-managed-speech-fallback.test.ts → live-voice-cloud-speech-fallback.test.ts} +15 -15
  477. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +7 -7
  478. package/src/live-voice/__tests__/live-voice-stt.test.ts +1 -1
  479. package/src/live-voice/live-activity-reporter.ts +7 -7
  480. package/src/live-voice/live-voice-credential-preflight.ts +6 -6
  481. package/src/live-voice/live-voice-session.ts +3 -3
  482. package/src/live-voice/live-voice-tts.ts +1 -1
  483. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +4 -4
  484. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +1 -1
  485. package/src/mcp/mcp-oauth-provider.ts +2 -2
  486. package/src/media/gemini-image-service.ts +11 -13
  487. package/src/media/image-credentials.ts +9 -9
  488. package/src/media/openai-image-service.ts +1 -1
  489. package/src/media/types.ts +3 -3
  490. package/src/messaging/providers/channel-transport.ts +1 -1
  491. package/src/messaging/providers/discord/transport.ts +1 -1
  492. package/src/messaging/providers/gmail/adapter.ts +1 -1
  493. package/src/messaging/providers/gmail/client.ts +4 -4
  494. package/src/messaging/providers/outlook/adapter.ts +1 -1
  495. package/src/messaging/providers/slack/adapter.ts +1 -1
  496. package/src/messaging/providers/slack/transport.ts +1 -1
  497. package/src/messaging/providers/telegram-bot/transport.ts +1 -1
  498. package/src/monitoring/db-integrity-check.ts +1 -1
  499. package/src/monitoring/db-integrity-sample.ts +2 -2
  500. package/src/monitoring/mount-watch.ts +1 -1
  501. package/src/monitoring/oom-kill-reporter.ts +1 -1
  502. package/src/monitoring/worker.ts +5 -5
  503. package/src/notifications/README.md +2 -2
  504. package/src/notifications/__tests__/broadcaster.test.ts +9 -9
  505. package/src/notifications/__tests__/completion-policy.test.ts +1 -1
  506. package/src/notifications/__tests__/emit-signal-pipeline-failure.test.ts +4 -4
  507. package/src/notifications/activity-failed-dedupe.ts +1 -1
  508. package/src/notifications/adapters/{platform.ts → cloud.ts} +8 -8
  509. package/src/notifications/broadcaster.ts +10 -10
  510. package/src/notifications/decision-engine.ts +1 -1
  511. package/src/notifications/destination-resolver.ts +1 -1
  512. package/src/notifications/emit-signal.ts +6 -6
  513. package/src/notifications/types.ts +2 -2
  514. package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
  515. package/src/oauth/__tests__/{seed-providers-managed.test.ts → seed-providers-cloud.test.ts} +13 -13
  516. package/src/oauth/byo-connection.test.ts +2 -2
  517. package/src/oauth/{platform-connection.test.ts → cloud-connection.test.ts} +41 -43
  518. package/src/oauth/{platform-connection.ts → cloud-connection.ts} +19 -19
  519. package/src/oauth/connection-resolver.test.ts +59 -61
  520. package/src/oauth/connection-resolver.ts +22 -22
  521. package/src/oauth/connection.ts +1 -1
  522. package/src/oauth/oauth-store.ts +8 -8
  523. package/src/oauth/provider-serializer.ts +4 -4
  524. package/src/oauth/revoke.ts +1 -1
  525. package/src/oauth/seed-providers.ts +32 -32
  526. package/src/permissions/approval-provenance.ts +1 -1
  527. package/src/permissions/checker.test.ts +18 -16
  528. package/src/permissions/checker.ts +3 -3
  529. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  530. package/src/persistence/embeddings/embedding-backend.test.ts +16 -16
  531. package/src/persistence/embeddings/embedding-backend.ts +13 -13
  532. package/src/persistence/embeddings/embedding-gemini.test.ts +9 -12
  533. package/src/persistence/embeddings/embedding-gemini.ts +11 -11
  534. package/src/persistence/embeddings/embedding-runtime-manager.ts +2 -2
  535. package/src/persistence/jobs-store.ts +1 -1
  536. package/src/persistence/lifecycle-events-store.ts +1 -1
  537. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  538. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  539. package/src/persistence/migrations/224-oauth-providers-managed-service-is-paid.ts +1 -1
  540. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  541. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.ts +2 -2
  542. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  543. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.ts +1 -1
  544. package/src/persistence/migrations/351-schedule-skill-script-handoff.ts +1 -1
  545. package/src/persistence/migrations/361-normalize-managed-connection-rows.test.ts +3 -3
  546. package/src/persistence/migrations/361-normalize-managed-connection-rows.ts +7 -7
  547. package/src/persistence/migrations/__tests__/319-remove-legacy-managed-connections.test.ts +2 -2
  548. package/src/persistence/schema/oauth.ts +1 -1
  549. package/src/plugin-api/index.ts +4 -4
  550. package/src/plugin-api/model-profiles.test.ts +1 -1
  551. package/src/plugin-api/model-profiles.ts +1 -1
  552. package/src/plugin-api/transcription-session.ts +1 -1
  553. package/src/plugin-api/vision-support.test.ts +1 -1
  554. package/src/plugin-api/webhook-url.ts +12 -12
  555. package/src/plugins/__tests__/source-fingerprint.test.ts +1 -1
  556. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/__tests__/reengage.test.ts +5 -6
  557. package/src/plugins/defaults/cloud-hosted/package.json +14 -0
  558. package/src/plugins/defaults/{platform-hosted → cloud-hosted}/routes/reengage.ts +3 -3
  559. package/src/plugins/defaults/index.ts +6 -6
  560. package/src/plugins/defaults/main.ts +5 -5
  561. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +5 -5
  562. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +1 -1
  563. package/src/plugins/defaults/memory/__tests__/memory-retrospective-provider-path.test.ts +1 -1
  564. package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +5 -0
  565. package/src/plugins/defaults/memory/config.ts +4 -4
  566. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +2 -2
  567. package/src/plugins/defaults/memory/memory-retrospective-job.ts +7 -7
  568. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +5 -5
  569. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +2 -2
  570. package/src/plugins/defaults/memory/src/__tests__/memory-v2-routes.test.ts +1 -1
  571. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  572. package/src/plugins/defaults/memory/substrate/__tests__/boot-maintenance.test.ts +20 -20
  573. package/src/plugins/defaults/memory/substrate/__tests__/cli-command-store.test.ts +1 -1
  574. package/src/plugins/defaults/memory/substrate/__tests__/skill-store.test.ts +3 -3
  575. package/src/plugins/defaults/memory/substrate/boot-maintenance.ts +17 -17
  576. package/src/plugins/defaults/memory/substrate/cli-command-store.ts +2 -2
  577. package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +1 -1
  578. package/src/plugins/defaults/memory/substrate/skill-store.ts +4 -4
  579. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +3 -3
  580. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -2
  581. package/src/plugins/defaults/memory/v3/maintain-job.ts +10 -10
  582. package/src/plugins/defaults/memory/v3/orchestrate.ts +3 -3
  583. package/src/plugins/defaults/memory/worker.ts +5 -5
  584. package/src/plugins/defaults/workspace/injectors.ts +2 -2
  585. package/src/plugins/mtime-cache.ts +1 -1
  586. package/src/plugins/source-versions.ts +1 -1
  587. package/src/plugins/types.ts +1 -1
  588. package/src/prompts/__tests__/system-prompt.test.ts +1 -1
  589. package/src/prompts/normalize-onboarding.ts +1 -1
  590. package/src/prompts/persona-resolver.ts +1 -1
  591. package/src/prompts/templates/system-sections.ts +3 -3
  592. package/src/providers/__tests__/cadet-connection-routing.test.ts +7 -7
  593. package/src/providers/__tests__/cadet-mismatch-routing.test.ts +12 -12
  594. package/src/providers/__tests__/connection-model-compat.test.ts +2 -2
  595. package/src/providers/__tests__/dispatch-connection-routing.test.ts +10 -10
  596. package/src/providers/__tests__/inference.test.ts +2 -2
  597. package/src/providers/__tests__/preflight-resolved-config.test.ts +16 -16
  598. package/src/providers/__tests__/retry-callsite.test.ts +1 -1
  599. package/src/providers/__tests__/satellite-connection-routing.test.ts +4 -4
  600. package/src/providers/__tests__/search-provider-catalog.test.ts +2 -2
  601. package/src/providers/__tests__/voice-error-copy.test.ts +3 -3
  602. package/src/providers/anthropic/client.ts +1 -1
  603. package/src/providers/cadet/client.ts +1 -1
  604. package/src/providers/cadet-model-routing.test.ts +19 -19
  605. package/src/providers/cadet-model-routing.ts +23 -23
  606. package/src/providers/call-site-routing.ts +10 -10
  607. package/src/providers/{platform-proxy → cloud-proxy}/constants.ts +11 -11
  608. package/src/providers/{platform-proxy → cloud-proxy}/context.ts +26 -26
  609. package/src/providers/connection-resolution.ts +43 -43
  610. package/src/providers/fallback-breaker.ts +2 -2
  611. package/src/providers/fetch-provider-catalog.ts +3 -3
  612. package/src/providers/gemini/client.ts +5 -5
  613. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +3 -3
  614. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +8 -8
  615. package/src/providers/inference/__tests__/base-url-security.test.ts +4 -4
  616. package/src/providers/inference/adapter-factory.ts +35 -35
  617. package/src/providers/inference/auth.ts +10 -10
  618. package/src/providers/inference/backfill.ts +11 -11
  619. package/src/providers/inference/connection-availability.ts +24 -24
  620. package/src/providers/inference/connections.ts +18 -20
  621. package/src/providers/inference/profile-probe.ts +4 -4
  622. package/src/providers/inference/resolve-auth.ts +8 -8
  623. package/src/providers/jev/ask.test.ts +1 -1
  624. package/src/providers/jev/ask.ts +2 -2
  625. package/src/providers/model-catalog.ts +8 -9
  626. package/src/providers/openai/__tests__/api-error-normalization.test.ts +3 -3
  627. package/src/providers/openai/api-error-normalization.ts +2 -2
  628. package/src/providers/provider-availability.ts +4 -4
  629. package/src/providers/provider-env-vars.ts +1 -1
  630. package/src/providers/provider-secret-catalog.ts +1 -1
  631. package/src/providers/registry.ts +20 -20
  632. package/src/providers/retry.ts +26 -26
  633. package/src/providers/routing-identity.ts +10 -10
  634. package/src/providers/search-provider-catalog.ts +2 -2
  635. package/src/providers/speech-to-text/__tests__/{cadet-managed-realtime.test.ts → cadet-cloud-realtime.test.ts} +3 -3
  636. package/src/providers/speech-to-text/__tests__/{cadet-managed.test.ts → cadet-cloud.test.ts} +35 -35
  637. package/src/providers/speech-to-text/__tests__/deepgram-flux-realtime.test.ts +1 -1
  638. package/src/providers/speech-to-text/__tests__/resolve.test.ts +27 -27
  639. package/src/providers/speech-to-text/{cadet-managed-flux-realtime.ts → cadet-cloud-flux-realtime.ts} +6 -8
  640. package/src/providers/speech-to-text/{cadet-managed-realtime.ts → cadet-cloud-realtime.ts} +3 -3
  641. package/src/providers/speech-to-text/{cadet-managed.ts → cadet-cloud.ts} +18 -20
  642. package/src/providers/speech-to-text/cadet-speech-relay-connection.ts +7 -7
  643. package/src/providers/speech-to-text/deepgram-flux-frames.ts +3 -3
  644. package/src/providers/speech-to-text/deepgram-flux-realtime.ts +4 -4
  645. package/src/providers/speech-to-text/provider-catalog.ts +3 -3
  646. package/src/providers/speech-to-text/resolve.ts +26 -28
  647. package/src/providers/together/client.ts +1 -1
  648. package/src/providers/types.ts +4 -4
  649. package/src/providers/voice-error-copy.ts +1 -1
  650. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +10 -10
  651. package/src/runtime/agent-wake.ts +1 -1
  652. package/src/runtime/auth/__tests__/middleware.test.ts +1 -1
  653. package/src/runtime/auth/middleware.ts +1 -1
  654. package/src/runtime/auth/scopes.ts +1 -1
  655. package/src/runtime/capabilities.ts +1 -1
  656. package/src/runtime/channel-invite-transports/discord.ts +1 -1
  657. package/src/runtime/channel-invite-transports/email.ts +2 -2
  658. package/src/runtime/channel-readiness-service.ts +15 -13
  659. package/src/runtime/channel-reply-session.test.ts +1 -1
  660. package/src/runtime/channel-reply-session.ts +1 -1
  661. package/src/runtime/http-server.ts +4 -4
  662. package/src/runtime/introduction-policy.ts +4 -4
  663. package/src/runtime/migrations/__tests__/origin-mode.test.ts +14 -14
  664. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +1 -1
  665. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +2 -2
  666. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +3 -4
  667. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +6 -7
  668. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +1 -1
  669. package/src/runtime/migrations/migration-transport.ts +3 -3
  670. package/src/runtime/migrations/origin-mode.ts +6 -9
  671. package/src/runtime/migrations/vbundle-import-policy.ts +2 -2
  672. package/src/runtime/migrations/vbundle-importer.ts +4 -4
  673. package/src/runtime/migrations/vbundle-streaming-importer.ts +6 -6
  674. package/src/runtime/migrations/vbundle-validator.ts +1 -1
  675. package/src/runtime/routes/__tests__/{platform-credits-routes.test.ts → cloud-credits-routes.test.ts} +9 -9
  676. package/src/runtime/routes/__tests__/{platform-invoice-routes.test.ts → cloud-invoice-routes.test.ts} +13 -13
  677. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +1 -1
  678. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +126 -82
  679. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +5 -5
  680. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +10 -10
  681. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +18 -18
  682. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +18 -16
  683. package/src/runtime/routes/__tests__/inference-send-routes.test.ts +1 -1
  684. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  685. package/src/runtime/routes/__tests__/migration-cadet-metadata-reconcile.test.ts +5 -20
  686. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -22
  687. package/src/runtime/routes/__tests__/oauth-proxy-routes.test.ts +27 -27
  688. package/src/runtime/routes/__tests__/plugins-routes.test.ts +5 -5
  689. package/src/runtime/routes/__tests__/ps-routes.test.ts +5 -3
  690. package/src/runtime/routes/__tests__/roadmap-routes.test.ts +15 -15
  691. package/src/runtime/routes/__tests__/webhook-routes.test.ts +31 -31
  692. package/src/runtime/routes/app-management-routes.ts +1 -1
  693. package/src/runtime/routes/attachment-routes.ts +1 -1
  694. package/src/runtime/routes/auth-routes.ts +14 -14
  695. package/src/runtime/routes/avatar-routes.ts +0 -14
  696. package/src/runtime/routes/background-wake-routes.ts +4 -4
  697. package/src/runtime/routes/channel-availability-routes.ts +4 -4
  698. package/src/runtime/routes/client-routes.ts +5 -5
  699. package/src/runtime/routes/cloud-credentials.ts +45 -0
  700. package/src/runtime/routes/{platform-routes.ts → cloud-routes.ts} +86 -119
  701. package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
  702. package/src/runtime/routes/conversation-query-routes.ts +345 -667
  703. package/src/runtime/routes/credential-routes.ts +28 -30
  704. package/src/runtime/routes/default-provider-routes.ts +1 -1
  705. package/src/runtime/routes/desktop-setup-routes.test.ts +5 -5
  706. package/src/runtime/routes/desktop-setup-routes.ts +1 -1
  707. package/src/runtime/routes/domain-routes.ts +15 -21
  708. package/src/runtime/routes/email-routes.ts +13 -13
  709. package/src/runtime/routes/errors.ts +1 -1
  710. package/src/runtime/routes/gateway-status-routes.ts +1 -1
  711. package/src/runtime/routes/identity-routes.ts +3 -3
  712. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  713. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +1 -1
  714. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +1 -1
  715. package/src/runtime/routes/index.ts +1 -1
  716. package/src/runtime/routes/inference-profile-availability-guard.ts +5 -5
  717. package/src/runtime/routes/inference-profiles-routes.ts +11 -11
  718. package/src/runtime/routes/inference-provider-connection-routes.ts +24 -24
  719. package/src/runtime/routes/ingress-status-routes.ts +1 -1
  720. package/src/runtime/routes/integrations/a2a.ts +2 -2
  721. package/src/runtime/routes/integrations/twilio.ts +21 -35
  722. package/src/runtime/routes/internal-telemetry-routes.ts +2 -2
  723. package/src/runtime/routes/live-voice-routes.test.ts +4 -4
  724. package/src/runtime/routes/live-voice-routes.ts +6 -6
  725. package/src/runtime/routes/migration-routes.ts +34 -40
  726. package/src/runtime/routes/oauth-commands-routes.ts +31 -31
  727. package/src/runtime/routes/oauth-providers.ts +5 -5
  728. package/src/runtime/routes/oauth-proxy-passthrough.test.ts +1 -1
  729. package/src/runtime/routes/oauth-proxy-passthrough.ts +8 -8
  730. package/src/runtime/routes/oauth-proxy-routes.ts +15 -17
  731. package/src/runtime/routes/oauth-request-hints.test.ts +1 -1
  732. package/src/runtime/routes/oauth-request-hints.ts +1 -1
  733. package/src/runtime/routes/plugins-routes.ts +9 -9
  734. package/src/runtime/routes/profiler-routes.ts +1 -1
  735. package/src/runtime/routes/ps-routes.ts +4 -0
  736. package/src/runtime/routes/roadmap-routes.ts +18 -20
  737. package/src/runtime/routes/secret-routes.ts +20 -61
  738. package/src/runtime/routes/settings-routes.ts +18 -23
  739. package/src/runtime/routes/telemetry-routes.ts +4 -4
  740. package/src/runtime/routes/tts-routes.ts +4 -4
  741. package/src/runtime/routes/user-route-resolution.ts +1 -1
  742. package/src/runtime/routes/webhook-routes.ts +18 -18
  743. package/src/runtime/routes/workflow-routes.ts +5 -5
  744. package/src/runtime/sync/resource-sync-events.ts +2 -2
  745. package/src/runtime/verification-outbound-actions.ts +4 -4
  746. package/src/schedule/integration-status.ts +6 -6
  747. package/src/schedule/run-script.ts +1 -1
  748. package/src/schedule/schedule-timezone.ts +1 -1
  749. package/src/schedule/worker.ts +5 -5
  750. package/src/security/auth-fallback-events-store.ts +1 -1
  751. package/src/security/oauth2.ts +4 -4
  752. package/src/skills/available-skills.ts +4 -4
  753. package/src/skills/catalog-files.ts +8 -8
  754. package/src/skills/catalog-install.ts +12 -12
  755. package/src/skills/categories-cache.ts +3 -3
  756. package/src/skills/clawhub.ts +1 -1
  757. package/src/skills/{platform-compatibility.test.ts → cloud-compatibility.test.ts} +7 -7
  758. package/src/skills/{platform-compatibility.ts → cloud-compatibility.ts} +2 -4
  759. package/src/skills/{managed-store.ts → cloud-store.ts} +21 -23
  760. package/src/skills/inline-command-runner.ts +1 -1
  761. package/src/skills/install-meta.ts +1 -1
  762. package/src/skills/path-classifier.ts +4 -4
  763. package/src/skills/skill-history.ts +4 -4
  764. package/src/skills/skillssh-registry.ts +1 -1
  765. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +1 -1
  766. package/src/stt/daemon-batch-transcriber.ts +7 -7
  767. package/src/stt/types.ts +3 -3
  768. package/src/subagent/manager.ts +15 -15
  769. package/src/subagent/types.ts +1 -1
  770. package/src/telegram/__tests__/webhook-health.test.ts +16 -16
  771. package/src/telegram/webhook-health.ts +10 -10
  772. package/src/telemetry/__tests__/config-setting-events-store.test.ts +1 -1
  773. package/src/telemetry/__tests__/outbox-test-harness.ts +2 -2
  774. package/src/telemetry/config-setting-events-store.ts +1 -1
  775. package/src/telemetry/config-setting-snapshot.ts +1 -1
  776. package/src/telemetry/memory-corpus-size.ts +1 -1
  777. package/src/telemetry/memory-tier-reporter.test.ts +2 -2
  778. package/src/telemetry/memory-tier-reporter.ts +3 -3
  779. package/src/telemetry/telemetry-event-sources.test.ts +2 -2
  780. package/src/telemetry/telemetry-event-sources.ts +9 -9
  781. package/src/telemetry/telemetry-events-outbox.ts +2 -2
  782. package/src/telemetry/telemetry-wire-validation.test.ts +1 -1
  783. package/src/telemetry/telemetry-wire-validation.ts +3 -3
  784. package/src/telemetry/telemetry-wire.generated.ts +1 -1
  785. package/src/telemetry/tool-audit.ts +1 -1
  786. package/src/telemetry/tool-executed-events-store.test.ts +1 -1
  787. package/src/telemetry/trace-collection-policy.ts +4 -4
  788. package/src/telemetry/turn-events-store.ts +1 -1
  789. package/src/telemetry/turn-outcome.ts +1 -1
  790. package/src/telemetry/turn-trace-store.ts +2 -2
  791. package/src/telemetry/types.test.ts +1 -1
  792. package/src/telemetry/types.ts +19 -19
  793. package/src/telemetry/usage-telemetry-reporter.test.ts +42 -42
  794. package/src/telemetry/usage-telemetry-reporter.ts +17 -17
  795. package/src/telemetry/watchdog-direct-emit.test.ts +9 -9
  796. package/src/telemetry/watchdog-direct-emit.ts +10 -10
  797. package/src/tools/__tests__/side-effect-abort-guard.test.ts +2 -2
  798. package/src/tools/browser/cdp-client/factory.ts +1 -1
  799. package/src/tools/computer-use/target.ts +2 -2
  800. package/src/tools/credentials/store.ts +2 -20
  801. package/src/tools/network/__tests__/{managed-search-proxy.test.ts → cloud-search-proxy.test.ts} +20 -20
  802. package/src/tools/network/__tests__/web-search.test.ts +14 -14
  803. package/src/tools/network/{managed-search-proxy.ts → cloud-search-proxy.ts} +13 -13
  804. package/src/tools/network/web-search.ts +9 -9
  805. package/src/tools/permission-checker.ts +2 -2
  806. package/src/tools/shared/input-misuse.ts +1 -1
  807. package/src/tools/shared/input-repairs.ts +4 -4
  808. package/src/tools/skills/{delete-managed.ts → delete-cloud.ts} +4 -4
  809. package/src/tools/skills/find-similar-skills.test.ts +7 -7
  810. package/src/tools/skills/find-similar-skills.ts +15 -15
  811. package/src/tools/skills/load.ts +6 -6
  812. package/src/tools/skills/{scaffold-managed.ts → scaffold-cloud.ts} +16 -16
  813. package/src/tools/skills/skill-script-runner.ts +2 -2
  814. package/src/tools/terminal/safe-env.ts +3 -3
  815. package/src/tools/tool-types.ts +2 -2
  816. package/src/tools/types.ts +2 -2
  817. package/src/tools/ui-surface/surface-shape-docs.ts +2 -2
  818. package/src/tools/workflows/manage-workflows.ts +1 -1
  819. package/src/tools/workspace-tools/loader.ts +1 -1
  820. package/src/tts/__tests__/cadet-provider.test.ts +5 -5
  821. package/src/tts/provider-catalog.ts +1 -1
  822. package/src/tts/providers/cadet-provider.ts +23 -23
  823. package/src/tts/providers/cadet-tts-socket.ts +2 -2
  824. package/src/tts/tts-config-resolver.ts +1 -1
  825. package/src/tts/tts-voice-field.ts +3 -3
  826. package/src/usage/subagent-attribution.ts +1 -1
  827. package/src/util/__tests__/process-table.test.ts +47 -0
  828. package/src/util/canonicalize-identity.ts +1 -1
  829. package/src/util/cgroup-cpu.ts +5 -5
  830. package/src/util/cgroup-memory.ts +2 -2
  831. package/src/util/container-cpu-sampler.ts +4 -4
  832. package/src/util/disk-usage.ts +4 -4
  833. package/src/util/errors.ts +3 -3
  834. package/src/util/layout.ts +479 -0
  835. package/src/util/oom-priority.ts +1 -1
  836. package/src/util/platform.ts +12 -468
  837. package/src/util/process-table.ts +39 -5
  838. package/src/util/provider-error-patterns.ts +2 -2
  839. package/src/watch/__tests__/watch-retro.test.ts +2 -2
  840. package/src/watch/watch-retro.ts +1 -1
  841. package/src/watcher/__tests__/telemetry.test.ts +2 -2
  842. package/src/watcher/telemetry.ts +1 -1
  843. package/src/windows-compiled-cli.ts +1 -1
  844. package/src/workspace/adaptive-thinking-repair.ts +4 -4
  845. package/src/workspace/byok-default-profile-ensure.ts +7 -7
  846. package/src/workspace/git-service.ts +2 -2
  847. package/src/workspace/migrations/006-services-config.ts +1 -1
  848. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  849. package/src/workspace/migrations/052-seed-default-inference-profiles.ts +1 -1
  850. package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +1 -1
  851. package/src/workspace/migrations/066-seed-heartbeat-callsite-cost-default.ts +1 -1
  852. package/src/workspace/migrations/082-backfill-managed-profile-labels.ts +4 -4
  853. package/src/workspace/migrations/087-memory-router-balanced-profile.ts +3 -3
  854. package/src/workspace/migrations/090-memory-router-cost-optimized-profile.ts +4 -4
  855. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +5 -5
  856. package/src/workspace/migrations/100-upgrade-quality-profile-to-fable-5.ts +4 -4
  857. package/src/workspace/migrations/101-upgrade-balanced-economy-to-minimax-m3.ts +4 -4
  858. package/src/workspace/migrations/103-upgrade-quality-profile-to-opus-4-8.ts +5 -5
  859. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +1 -1
  860. package/src/workspace/migrations/106-drop-collect-usage-data.ts +1 -1
  861. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +4 -4
  862. package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +11 -11
  863. package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +6 -6
  864. package/src/workspace/migrations/113-swap-balanced-profile-to-glm-5p2.ts +5 -5
  865. package/src/workspace/migrations/114-swap-quality-profile-to-opus.ts +4 -4
  866. package/src/workspace/migrations/115-drop-frontier-profile.ts +5 -5
  867. package/src/workspace/migrations/123-swap-quality-profile-to-fable.ts +5 -5
  868. package/src/workspace/migrations/125-repoint-managed-connections-to-cadet.ts +3 -3
  869. package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +2 -2
  870. package/src/workspace/migrations/127-backfill-default-provider.ts +6 -6
  871. package/src/workspace/migrations/130-speech-mode-to-provider.ts +4 -4
  872. package/src/workspace/migrations/131-drop-web-fetch-mode.ts +1 -1
  873. package/src/workspace/migrations/132-web-search-mode-to-provider.ts +6 -6
  874. package/src/workspace/migrations/133-collapse-provider-connections.ts +3 -3
  875. package/src/workspace/migrations/134-image-generation-mode-to-provider.ts +4 -4
  876. package/src/workspace/migrations/136-repair-stale-fireworks-kimi-model-id.ts +2 -2
  877. package/src/workspace/migrations/137-repair-retired-fireworks-minimax-model-id.ts +2 -2
  878. package/src/workspace/migrations/139-clear-renamed-cost-profile-label.ts +2 -2
  879. package/src/workspace/migrations/141-stt-english-default-to-multilingual.ts +4 -4
  880. package/src/workspace/migrations/144-convert-stranded-subscription-openai-profiles.ts +1 -1
  881. package/src/workspace/migrations/145-collapse-profile-bindings-to-entries.ts +2 -2
  882. package/src/workspace/migrations/146-repair-retired-fireworks-deepseek-flash-model-id.ts +2 -2
  883. package/src/workspace/migrations/148-strip-unsupported-fallback-profiles.ts +2 -2
  884. package/src/workspace/migrations/150-stt-flux-provider-to-model-family.ts +1 -1
  885. package/src/workspace/migrations/151-repair-renamed-fireworks-deepseek-pro-model-id.ts +2 -2
  886. package/src/workspace/migrations/152-repair-retired-fireworks-minimax-m2p7-model-id.ts +2 -2
  887. package/src/workspace/migrations/159-rename-colliding-jev-profile-name.ts +2 -2
  888. package/src/workspace/migrations/160-repair-retired-fireworks-model-ids.ts +2 -2
  889. package/src/workspace/migrations/161-repair-retired-fireworks-glm-5p2-model-id.ts +2 -2
  890. package/src/workspace/migrations/__tests__/141-stt-english-default-to-multilingual.test.ts +1 -1
  891. package/src/workspace/migrations/__tests__/150-stt-flux-provider-to-model-family.test.ts +1 -1
  892. package/src/workspace/migrations/registry.ts +6 -6
  893. package/src/workspace/top-level-renderer.ts +1 -1
  894. package/src/workspace/turn-commit.ts +2 -2
  895. package/src/__tests__/config-loader-platform-defaults.test.ts +0 -606
  896. package/src/__tests__/mock-gateway-ipc.ts +0 -260
  897. package/src/api/events/platform-disconnected.ts +0 -21
  898. package/src/api/events/show-platform-login.ts +0 -20
  899. package/src/config/platform-rehydration.ts +0 -60
  900. package/src/platform/feature-gate.ts +0 -8
  901. package/src/plugins/defaults/platform-hosted/package.json +0 -14
  902. package/src/runtime/routes/platform-managed-credentials.ts +0 -50
  903. /package/src/__tests__/{gateway-client-managed-outbound.test.ts → gateway-client-cloud-outbound.test.ts} +0 -0
  904. /package/src/__tests__/{secure-keys-managed-failover.test.ts → secure-keys-cloud-failover.test.ts} +0 -0
@@ -32,6 +32,7 @@ import { registerPlugin, resetPluginRegistryForTests } from "../registry.js";
32
32
  import { type Plugin, PluginExecutionError } from "../types.js";
33
33
  import { channelInjectors } from "./channel/injectors.js";
34
34
  import channelPkg from "./channel/package.json" with { type: "json" };
35
+ import cloudHostedPkg from "./cloud-hosted/package.json" with { type: "json" };
35
36
  import compactionPkg from "./compaction/package.json" with { type: "json" };
36
37
  import { documentsInjectors } from "./documents/injectors.js";
37
38
  import documentsPkg from "./documents/package.json" with { type: "json" };
@@ -71,7 +72,6 @@ import memoryShutdown from "./memory/hooks/shutdown.js";
71
72
  import memoryUserPromptSubmit from "./memory/hooks/user-prompt-submit.js";
72
73
  import { memoryInjectors } from "./memory/injectors.js";
73
74
  import memoryPkg from "./memory/package.json" with { type: "json" };
74
- import platformHostedPkg from "./platform-hosted/package.json" with { type: "json" };
75
75
  import { sessionInjectors } from "./session/injectors.js";
76
76
  import sessionPkg from "./session/package.json" with { type: "json" };
77
77
  import surfaceCompletionNudgePostModelCall from "./surface-completion-nudge/hooks/post-model-call.js";
@@ -274,15 +274,15 @@ export const defaultSessionPlugin: Plugin = {
274
274
  };
275
275
 
276
276
  /**
277
- * `platform-hosted` — contributes the platform-hosted `/reengage` route. It
277
+ * `cloud-hosted` — contributes the cloud-hosted `/reengage` route. It
278
278
  * ships no hooks, tools, or injectors, so it registers as a manifest only;
279
279
  * the route source is served once the assistant dispatches default-plugin
280
280
  * routes.
281
281
  */
282
- export const defaultPlatformHostedPlugin: Plugin = {
282
+ export const defaultCloudHostedPlugin: Plugin = {
283
283
  manifest: {
284
- name: platformHostedPkg.name,
285
- version: platformHostedPkg.version,
284
+ name: cloudHostedPkg.name,
285
+ version: cloudHostedPkg.version,
286
286
  },
287
287
  };
288
288
 
@@ -459,7 +459,7 @@ export function getAllDefaultPlugins(): readonly Plugin[] {
459
459
  defaultDocumentsPlugin,
460
460
  defaultChannelPlugin,
461
461
  defaultSessionPlugin,
462
- defaultPlatformHostedPlugin,
462
+ defaultCloudHostedPlugin,
463
463
  defaultImageFallbackPlugin,
464
464
  defaultToolResultTruncatePlugin,
465
465
  defaultEmptyResponsePlugin,
@@ -78,8 +78,8 @@ export function isFirstPartyDefaultPlugin(name: string): boolean {
78
78
  }
79
79
 
80
80
  /**
81
- * Manifest name (e.g. `default-platform-hosted`) for a default plugin's
82
- * *directory* name (e.g. `platform-hosted`), or `null` when `<dirName>` is not
81
+ * Manifest name (e.g. `default-cloud-hosted`) for a default plugin's
82
+ * *directory* name (e.g. `cloud-hosted`), or `null` when `<dirName>` is not
83
83
  * a default plugin. Memoized alongside {@link getAllDefaultPluginNames}.
84
84
  *
85
85
  * Default-plugin `.disabled` sentinels are keyed by the manifest name (the CLI
@@ -115,7 +115,7 @@ export function getDefaultPluginManifestName(dirName: string): string | null {
115
115
  * or `null` when `<name>` is not a default plugin's route namespace.
116
116
  *
117
117
  * A default plugin's route namespace is `default-<directory-name>` (e.g.
118
- * `default-platform-hosted`) — the same `default-…` name its `.disabled`
118
+ * `default-cloud-hosted`) — the same `default-…` name its `.disabled`
119
119
  * sentinel and per-chat scoping are keyed by. `<name>` is the namespace: the
120
120
  * `default-` prefix is stripped to recover the source directory, so a name
121
121
  * without the prefix (e.g. the bare directory name) resolves to `null`. The
@@ -140,7 +140,7 @@ export function getDefaultPluginRoutesDir(name: string): string | null {
140
140
 
141
141
  /**
142
142
  * Enumerate default plugins that ship a `routes/` directory, keyed by their
143
- * route namespace (`default-<directory-name>`, e.g. `default-platform-hosted`).
143
+ * route namespace (`default-<directory-name>`, e.g. `default-cloud-hosted`).
144
144
  * Mirrors {@link getDefaultPluginRoutesDir} so route discovery and dispatch
145
145
  * agree on which default plugin routes exist and under which namespace.
146
146
  */
@@ -166,7 +166,7 @@ export function getDefaultPluginRouteRoots(): {
166
166
 
167
167
  /**
168
168
  * Enumerate default plugins that ship a `skills/` directory, keyed by their
169
- * plugin name (`default-<directory-name>`, e.g. `default-platform-hosted`).
169
+ * plugin name (`default-<directory-name>`, e.g. `default-cloud-hosted`).
170
170
  * Each `skillsDir` holds the plugin's resident skills at `<id>/SKILL.md`, the
171
171
  * same layout an installed plugin uses under
172
172
  * `<workspaceDir>/plugins/<name>/skills/`.
@@ -1007,7 +1007,7 @@ describe("memoryRetrospectiveJob", () => {
1007
1007
  ]);
1008
1008
  });
1009
1009
 
1010
- test("scaffold_managed_skill counts as durable work even with zero remembers", async () => {
1010
+ test("scaffold_cloud_skill counts as durable work even with zero remembers", async () => {
1011
1011
  mockWakeResult = { invoked: true, exitReason: "no_tool_calls" };
1012
1012
  messagesByConversationId["fork-conv-1"] = [
1013
1013
  {
@@ -1016,7 +1016,7 @@ describe("memoryRetrospectiveJob", () => {
1016
1016
  {
1017
1017
  type: "tool_use",
1018
1018
  id: "tu-skill-1",
1019
- name: "scaffold_managed_skill",
1019
+ name: "scaffold_cloud_skill",
1020
1020
  input: { name: "deploy-checklist" },
1021
1021
  },
1022
1022
  ]),
@@ -1343,7 +1343,7 @@ describe("memoryRetrospectiveJob", () => {
1343
1343
  const opts = wakeCalls[0]!.opts;
1344
1344
  expect(opts.allowedTools).toEqual([
1345
1345
  "remember",
1346
- "scaffold_managed_skill",
1346
+ "scaffold_cloud_skill",
1347
1347
  "skill_load",
1348
1348
  "find_similar_skills",
1349
1349
  ]);
@@ -2616,7 +2616,7 @@ describe("memoryRetrospectiveJob", () => {
2616
2616
  );
2617
2617
  // None of the skill-authoring directives appear.
2618
2618
  expect(instructionText).not.toContain("find_similar_skills");
2619
- expect(instructionText).not.toContain("scaffold_managed_skill");
2619
+ expect(instructionText).not.toContain("scaffold_cloud_skill");
2620
2620
  expect(instructionText).not.toContain("companion file");
2621
2621
  expect(instructionText).not.toContain("user-authored");
2622
2622
  });
@@ -2631,7 +2631,7 @@ describe("memoryRetrospectiveJob", () => {
2631
2631
  // Available-tools line names the skill-authoring pair; skill-management is
2632
2632
  // preactivated, so no `skill_load` step is instructed.
2633
2633
  expect(instructionText).toContain("find_similar_skills");
2634
- expect(instructionText).toContain("scaffold_managed_skill");
2634
+ expect(instructionText).toContain("scaffold_cloud_skill");
2635
2635
  expect(instructionText).not.toContain("skill_load skill-management");
2636
2636
 
2637
2637
  // Permissive relevance pre-check keyed on actually-executed procedures.
@@ -107,7 +107,7 @@ For everything else in your review window, use the \`remember\` tool on facts, p
107
107
  test("proc-to-skills active: tool line widens and the authoring section is appended", () => {
108
108
  const out = buildForkInstruction(makeArgs({ procToSkillsActive: true }));
109
109
  expect(out).toContain(
110
- "Only `remember`, `find_similar_skills`, and `scaffold_managed_skill` are available for this pass",
110
+ "Only `remember`, `find_similar_skills`, and `scaffold_cloud_skill` are available for this pass",
111
111
  );
112
112
  // skill-management is preactivated for the wake, so the prompt no longer
113
113
  // instructs a `skill_load` step.
@@ -18,7 +18,7 @@
18
18
  * `memory_retrospective_state`: the handler re-reads the fork's persisted
19
19
  * rows (`collectRetrospectiveRunEvidence` → `loadRetrospectiveRunMessages`
20
20
  * → `getMessages`) and only advances when THIS run persisted a durable
21
- * memory-writing `tool_use` (`remember` / `scaffold_managed_skill`) or
21
+ * memory-writing `tool_use` (`remember` / `scaffold_cloud_skill`) or
22
22
  * replied and stopped on its own (a completed no-findings review).
23
23
  */
24
24
 
@@ -209,8 +209,13 @@ interface TierKeyExemption {
209
209
  * tuning when building the graph view.
210
210
  * - `src/memory-v2-routes.ts` (v2) — the v2 tuning routes read and merge
211
211
  * `memory.v2` config directly.
212
+ * - `config/substrate-twin-shadowing.ts` (substrate) — the operator-facing
213
+ * twin detector: it reads substrate PRESENCE so a `memory.v2` write can
214
+ * warn that the twin namespace wins. It never resolves a tunable itself —
215
+ * resolution stays in `substrate/tuning.ts`.
212
216
  */
213
217
  const TIER_KEY_READ_ALLOWLIST: readonly TierKeyExemption[] = [
218
+ { path: "src/config/substrate-twin-shadowing.ts", keys: ["substrate"] },
214
219
  { path: "src/config/loader.ts", keys: ["v3"] },
215
220
  { path: "src/config/memory-v3-gate.ts", keys: ["v2", "v3"] },
216
221
  {
@@ -108,18 +108,18 @@ function deleteLeaf(
108
108
 
109
109
  /**
110
110
  * Deployment-context fill for the memory slice, mirroring the memory entry of
111
- * the host loader's `getDeploymentContextDefaults()`: platform-managed
112
- * assistants (IS_PLATFORM) embed via the managed gemini backend unless the
111
+ * the host loader's `getDeploymentContextDefaults()`: cloud-managed
112
+ * assistants (IS_CLOUD) embed via the cloud gemini backend unless the
113
113
  * provider leaf is explicitly set on disk. Kept local so this module does not
114
114
  * import the host loader (whose partial test mocks would otherwise break the
115
115
  * import); the parity test compares against the real loader under
116
- * IS_PLATFORM, so a divergent fill fails loudly there.
116
+ * IS_CLOUD, so a divergent fill fails loudly there.
117
117
  */
118
118
  function applyDeploymentContextFill(
119
119
  memory: MemoryConfig,
120
120
  raw: Record<string, unknown>,
121
121
  ): void {
122
- if (process.env.IS_PLATFORM !== "true" && process.env.IS_PLATFORM !== "1") {
122
+ if (process.env.IS_CLOUD !== "true" && process.env.IS_CLOUD !== "1") {
123
123
  return;
124
124
  }
125
125
  const rawEmbeddings = raw.embeddings;
@@ -65,7 +65,7 @@ export const SKILL_CARD_MESSAGE_KIND = "skill-authored-card";
65
65
  * Request-origin tag the fork wake stamps onto `ToolContext.requestOrigin`
66
66
  * (via the wake's tool-context pin). The permission checker scopes its
67
67
  * non-interactive skill-authoring auto-grant to this origin, so a retrospective
68
- * pass can call `scaffold_managed_skill` / `find_similar_skills` /
68
+ * pass can call `scaffold_cloud_skill` / `find_similar_skills` /
69
69
  * `skill_load skill-management` without an interactive approval prompt. Matches
70
70
  * the `"memory_retrospective"` member of `TitleOrigin`.
71
71
  */
@@ -73,7 +73,7 @@ export const MEMORY_RETROSPECTIVE_ORIGIN = "memory_retrospective";
73
73
 
74
74
  /**
75
75
  * Bundled skill that provides the retrospective's authoring tools
76
- * (`find_similar_skills`, `scaffold_managed_skill`, and the `skill_load`
76
+ * (`find_similar_skills`, `scaffold_cloud_skill`, and the `skill_load`
77
77
  * target). Preactivated for the fork wake so those tools join the turn's active
78
78
  * set from turn 1, and matched by the permission checker's origin-scoped grant.
79
79
  */
@@ -543,8 +543,8 @@ export async function runForkBasedRetrospective(
543
543
  trustContext: INTERNAL_GUARDIAN_TRUST_CONTEXT,
544
544
  callSite: "memoryRetrospective",
545
545
  // `remember` saves ordinary facts; the skill-authoring trio
546
- // (`scaffold_managed_skill` / `skill_load` / `find_similar_skills`) lets a
547
- // pass author or refine a managed skill from an observed procedure. The
546
+ // (`scaffold_cloud_skill` / `skill_load` / `find_similar_skills`) lets a
547
+ // pass author or refine a cloud skill from an observed procedure. The
548
548
  // allowlist is gated on the same `procToSkillsActive` predicate as the
549
549
  // fork instruction and the checker's origin-scoped grant, so an inactive
550
550
  // install is remember-only — the authoring trio is not even named on the
@@ -552,7 +552,7 @@ export async function runForkBasedRetrospective(
552
552
  allowedTools: procToSkillsActive
553
553
  ? [
554
554
  "remember",
555
- "scaffold_managed_skill",
555
+ "scaffold_cloud_skill",
556
556
  "skill_load",
557
557
  "find_similar_skills",
558
558
  ]
@@ -584,7 +584,7 @@ export async function runForkBasedRetrospective(
584
584
  }
585
585
  : {}),
586
586
  // Preactivate skill-management so its authoring tools (`find_similar_skills`
587
- // / `scaffold_managed_skill` / the `skill_load` target) are in the turn's
587
+ // / `scaffold_cloud_skill` / the `skill_load` target) are in the turn's
588
588
  // active set from turn 1; the checker's origin-scoped grant then makes them
589
589
  // callable without an interactive prompt. Same `procToSkillsActive` gate as
590
590
  // the allowlist above.
@@ -1042,7 +1042,7 @@ async function finalizeSuccessfulRetrospective(args: {
1042
1042
 
1043
1043
  // Skill cards are not a finalize concern: when the run authors a skill, the
1044
1044
  // scaffold executor enqueues the durable `skill_card_insert` delivery job at
1045
- // the creation site (see `executeScaffoldManagedSkill` and
1045
+ // the creation site (see `executeScaffoldCloudSkill` and
1046
1046
  // `memory-retrospective-skill-card.ts`), so the GC below can never destroy
1047
1047
  // the card's inputs.
1048
1048
 
@@ -1246,13 +1246,13 @@ async function extractRetrospectiveRunRemembers(
1246
1246
  /**
1247
1247
  * Tool names whose persisted `tool_use` blocks count as durable memory work
1248
1248
  * for the fail-closed advancement gate: `remember` writes the memory buffer,
1249
- * `scaffold_managed_skill` writes a managed skill. Read-only tools on the
1249
+ * `scaffold_cloud_skill` writes a cloud skill. Read-only tools on the
1250
1250
  * retrospective allowlist (`skill_load`, `find_similar_skills`) deliberately
1251
1251
  * do not qualify: a run that only browsed produced nothing durable.
1252
1252
  */
1253
1253
  const DURABLE_RETROSPECTIVE_TOOLS: ReadonlySet<string> = new Set([
1254
1254
  "remember",
1255
- "scaffold_managed_skill",
1255
+ "scaffold_cloud_skill",
1256
1256
  ]);
1257
1257
 
1258
1258
  /**
@@ -176,7 +176,7 @@ export function buildForkInstruction({
176
176
  : `Your review window starts at ${anchorDescription} and ends just before this instruction message. If you cannot locate that anchoring turn in your visible history (for example, it is behind the compaction summary), fail closed: review only the most recent visible messages after the summary, not the whole conversation.`;
177
177
 
178
178
  const availableToolsLine = procToSkillsActive
179
- ? "Only `remember`, `find_similar_skills`, and `scaffold_managed_skill` are available for this pass — any other tool call will be rejected, so don't attempt one."
179
+ ? "Only `remember`, `find_similar_skills`, and `scaffold_cloud_skill` are available for this pass — any other tool call will be rejected, so don't attempt one."
180
180
  : "Only the `remember` tool is available for this pass — any other tool call will be rejected, so don't attempt one.";
181
181
 
182
182
  const override = loadPromptOverride({
@@ -211,7 +211,7 @@ export function buildForkInstruction({
211
211
  /**
212
212
  * Skill-authoring addendum appended to the fork instruction when
213
213
  * procedural-memory-as-skills is active. Directs the pass to capture a
214
- * genuinely-executed, reusable procedure as a managed skill — but only to
214
+ * genuinely-executed, reusable procedure as a cloud skill — but only to
215
215
  * overwrite or refine a skill it authored, never to overwrite or shadow a
216
216
  * skill of any other source.
217
217
  */
@@ -219,13 +219,13 @@ function buildSkillAuthoringSection(): string {
219
219
  return `
220
220
  ---
221
221
 
222
- If your review window contains a PROCEDURE you actually carried out — a sequence of real \`tool_use\` steps you executed (not merely discussed or planned) that is plausibly worth reusing later — also consider capturing it as a managed skill. Keep this bar low: when in doubt and the procedure looks reusable, author it. If the window contains no executed, reusable procedure, skip this entirely and just \`remember\` as above.
222
+ If your review window contains a PROCEDURE you actually carried out — a sequence of real \`tool_use\` steps you executed (not merely discussed or planned) that is plausibly worth reusing later — also consider capturing it as a cloud skill. Keep this bar low: when in doubt and the procedure looks reusable, author it. If the window contains no executed, reusable procedure, skip this entirely and just \`remember\` as above.
223
223
 
224
224
  When you do capture a procedure:
225
225
 
226
- 1. Deduplicate against existing skills first. Call \`find_similar_skills\` with the procedure's goal as its \`goal\` argument. Each hit carries a \`source\` (bundled, managed, plugin, workspace, or extra), and a managed hit also carries \`author\` (\`"assistant"\` if you authored it, \`"user"\` if a person did, omitted if untagged). You may only overwrite or refine a skill YOU authored: a hit with \`source: "managed"\` AND \`author: "assistant"\`. ANY other hit means the procedure is ALREADY COVERED: a non-managed source (bundled, plugin, workspace, or extra), OR a managed skill that is NOT \`author: "assistant"\` (a person wrote it, or it is untagged). For an ALREADY COVERED hit do not \`overwrite\` it, do not shadow it by creating a skill with its \`skill_id\`, and do not create a near-duplicate. Skip it. Only when a returned skill is one of your own (\`source: "managed"\`, \`author: "assistant"\`) and is the SAME procedure, UPDATE it. Such a hit carries \`current\`: the skill as it is now, in \`scaffold_managed_skill\`'s own argument names. Call \`scaffold_managed_skill\` with that \`skill_id\` and \`overwrite: true\`, rewriting \`body_markdown\` from \`current.body_markdown\` plus what you actually observed in the trace (keep the steps the trace did not contradict; correct or add the ones it did), restate \`current.activation_hints\` (revised only if the procedure's triggers changed; they are the skill's retrieval signal, not something to regenerate) and leave out any other \`current\` field you are not changing (\`emoji\`, \`category\`, \`includes\`, \`avoid_when\`): an omitted field keeps its current value and an empty one clears it, and pass \`change_summary\` (the update is rejected without it): one or two short sentences (under 200 characters) for the person who reads the "Skill updated" notice, naming what you changed and what in the trace prompted it (for example "Added the retry after an expired session and the export endpoint that held steady."). The notice shows nothing else about the change, so name the concrete step, value, or gotcha rather than saying the skill was refined. Only CREATE a new skill (fresh \`skill_id\`) when no existing skill of any source covers the procedure. Bias strongly toward reusing or refining your own skills over spawning near-duplicates.
226
+ 1. Deduplicate against existing skills first. Call \`find_similar_skills\` with the procedure's goal as its \`goal\` argument. Each hit carries a \`source\` (bundled, managed, plugin, workspace, or extra), and a cloud hit also carries \`author\` (\`"assistant"\` if you authored it, \`"user"\` if a person did, omitted if untagged). You may only overwrite or refine a skill YOU authored: a hit with \`source: "managed"\` AND \`author: "assistant"\`. ANY other hit means the procedure is ALREADY COVERED: a non-managed source (bundled, plugin, workspace, or extra), OR a cloud skill that is NOT \`author: "assistant"\` (a person wrote it, or it is untagged). For an ALREADY COVERED hit do not \`overwrite\` it, do not shadow it by creating a skill with its \`skill_id\`, and do not create a near-duplicate. Skip it. Only when a returned skill is one of your own (\`source: "managed"\`, \`author: "assistant"\`) and is the SAME procedure, UPDATE it. Such a hit carries \`current\`: the skill as it is now, in \`scaffold_cloud_skill\`'s own argument names. Call \`scaffold_cloud_skill\` with that \`skill_id\` and \`overwrite: true\`, rewriting \`body_markdown\` from \`current.body_markdown\` plus what you actually observed in the trace (keep the steps the trace did not contradict; correct or add the ones it did), restate \`current.activation_hints\` (revised only if the procedure's triggers changed; they are the skill's retrieval signal, not something to regenerate) and leave out any other \`current\` field you are not changing (\`emoji\`, \`category\`, \`includes\`, \`avoid_when\`): an omitted field keeps its current value and an empty one clears it, and pass \`change_summary\` (the update is rejected without it): one or two short sentences (under 200 characters) for the person who reads the "Skill updated" notice, naming what you changed and what in the trace prompted it (for example "Added the retry after an expired session and the export endpoint that held steady."). The notice shows nothing else about the change, so name the concrete step, value, or gotcha rather than saying the skill was refined. Only CREATE a new skill (fresh \`skill_id\`) when no existing skill of any source covers the procedure. Bias strongly toward reusing or refining your own skills over spawning near-duplicates.
227
227
 
228
- 2. Capture procedure-scoped knowledge alongside the body. Failure modes, gotchas, and cached values you observed in the trace (error signatures and how you recovered, preconditions, IDs/paths/endpoints that held steady) belong in companion files passed via \`scaffold_managed_skill\`'s \`files\` input (for example \`references/failure-modes.md\`), and the SKILL.md body should reference them so a future load surfaces them.
228
+ 2. Capture procedure-scoped knowledge alongside the body. Failure modes, gotchas, and cached values you observed in the trace (error signatures and how you recovered, preconditions, IDs/paths/endpoints that held steady) belong in companion files passed via \`scaffold_cloud_skill\`'s \`files\` input (for example \`references/failure-modes.md\`), and the SKILL.md body should reference them so a future load surfaces them.
229
229
 
230
230
  3. Extract code you actually ran into reusable \`scripts/\` companion files. When the trace shows a script or non-trivial snippet you executed successfully (\`python3\` or \`bun\` — the only runtimes present), save that exact code verbatim as a companion file (for example \`scripts/export-report.py\`) — never a reconstruction of code the trace does not prove ran. When the trace shows the file's absolute path (workspace or /tmp), pass it as the entry's \`copy_from\` instead of re-typing the contents; inline \`content\` only when the code survives nowhere but the trace. Have the body give the literal rerun command anchored with \`{baseDir}\` (for example \`python3 {baseDir}/scripts/export-report.py\`); it resolves to the skill folder on load, and the terminal does not run from there. A stored working script beats re-deriving the code on every future use.
231
231
 
@@ -2,8 +2,8 @@
2
2
  // Memory retrospective — skill-authored card delivery.
3
3
  // ---------------------------------------------------------------------------
4
4
  //
5
- // When a retrospective pass genuinely CREATES a managed skill, the scaffold
6
- // executor (`executeScaffoldManagedSkill`) enqueues a durable
5
+ // When a retrospective pass genuinely CREATES a cloud skill, the scaffold
6
+ // executor (`executeScaffoldCloudSkill`) enqueues a durable
7
7
  // `skill_card_insert` job at the creation site — the executor knows
8
8
  // created-vs-overwrote, the request origin, and the fork-parent source
9
9
  // conversation as facts, so no message archaeology is needed. This module
@@ -80,7 +80,7 @@ describe("memory_v2_list_concept_pages handler", () => {
80
80
  {
81
81
  slug: "people/carol",
82
82
  frontmatter: { edges: ["alice"], ref_files: [], ref_urls: [] },
83
- body: "Carol leads the platform team.\n",
83
+ body: "Carol leads the cloud team.\n",
84
84
  },
85
85
  ];
86
86
  for (const page of pages) {
@@ -155,7 +155,7 @@ describe("memory_worker_status", () => {
155
155
  expect(res).toMatchObject({ status: "not_running" });
156
156
  });
157
157
 
158
- test("surfaces the local embedding backend (the default non-platform provider)", async () => {
158
+ test("surfaces the local embedding backend (the default non-cloud provider)", async () => {
159
159
  backendStatus = {
160
160
  enabled: true,
161
161
  degraded: false,
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * Tests for the boot-maintenance helpers in `boot-maintenance.ts`:
3
3
  *
4
- * - `maybeReseedCapabilitiesAfterManagedCredential`: the secrets route calls
5
- * this when a managed-proxy credential lands, to close the first-boot race
4
+ * - `maybeReseedCapabilitiesAfterCloudCredential`: the secrets route calls
5
+ * this when a cloud-proxy credential lands, to close the first-boot race
6
6
  * where the daemon's startup capability seed (skills + CLI commands) runs
7
- * before the platform provisions the managed embedding credential — the
7
+ * before the cloud provisions the cloud embedding credential — the
8
8
  * seed's embed throws and the synthetic capability pages never reach the
9
9
  * page index. The reseed must fire only when the substrate is active AND the
10
- * managed-proxy prerequisites are now satisfied, so self-hosted / BYOK
11
- * assistants (no managed proxy) are never made to run a doomed embed. When
10
+ * cloud-proxy prerequisites are now satisfied, so self-hosted / BYOK
11
+ * assistants (no cloud proxy) are never made to run a doomed embed. When
12
12
  * v3 is live it then enqueues a `memory_v3_maintain` job so v3 picks up the
13
13
  * capability pages immediately instead of waiting out the 6h maintain
14
14
  * backstop.
@@ -67,8 +67,8 @@ const pageStoreDelegates: {
67
67
  hasConceptPages: async () => true,
68
68
  };
69
69
 
70
- mock.module("../../../../../providers/platform-proxy/context.js", () => ({
71
- hasManagedProxyPrereqs: async () => proxyState.prereqs,
70
+ mock.module("../../../../../providers/cloud-proxy/context.js", () => ({
71
+ hasCloudProxyPrereqs: async () => proxyState.prereqs,
72
72
  }));
73
73
 
74
74
  // `config/memory-v3-gate.js` is deliberately NOT mocked. It is pure (its only
@@ -115,7 +115,7 @@ mock.module("../../../../../daemon/embedding-reconcile.js", () => ({
115
115
 
116
116
  const {
117
117
  maybeRebuildConceptCollection,
118
- maybeReseedCapabilitiesAfterManagedCredential,
118
+ maybeReseedCapabilitiesAfterCloudCredential,
119
119
  } = await import("../boot-maintenance.js");
120
120
 
121
121
  /**
@@ -156,11 +156,11 @@ afterEach(() => {
156
156
  proxyState.prereqs = true;
157
157
  });
158
158
 
159
- describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
160
- test("reseeds both skill and CLI entries when v2 is enabled and managed-proxy prereqs are satisfied", async () => {
159
+ describe("maybeReseedCapabilitiesAfterCloudCredential", () => {
160
+ test("reseeds both skill and CLI entries when v2 is enabled and cloud-proxy prereqs are satisfied", async () => {
161
161
  proxyState.prereqs = true;
162
162
 
163
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV2(true));
163
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV2(true));
164
164
 
165
165
  expect(seedSkill).toHaveBeenCalledTimes(1);
166
166
  expect(seedCli).toHaveBeenCalledTimes(1);
@@ -169,7 +169,7 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
169
169
  test("enqueues a v3 maintain pass after reseeding when v3 is live", async () => {
170
170
  proxyState.prereqs = true;
171
171
 
172
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV3());
172
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV3());
173
173
 
174
174
  expect(enqueueJob).toHaveBeenCalledTimes(1);
175
175
  expect(enqueueJob).toHaveBeenCalledWith("memory_v3_maintain", {});
@@ -178,7 +178,7 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
178
178
  test("reseeds but does not enqueue a v3 maintain pass when v3 is not live", async () => {
179
179
  proxyState.prereqs = true;
180
180
 
181
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV2(true));
181
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV2(true));
182
182
 
183
183
  expect(seedSkill).toHaveBeenCalledTimes(1);
184
184
  expect(seedCli).toHaveBeenCalledTimes(1);
@@ -186,17 +186,17 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
186
186
  });
187
187
 
188
188
  test("no-op when v2 memory is disabled", async () => {
189
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV2(false));
189
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV2(false));
190
190
 
191
191
  expect(seedSkill).not.toHaveBeenCalled();
192
192
  expect(seedCli).not.toHaveBeenCalled();
193
193
  expect(enqueueJob).not.toHaveBeenCalled();
194
194
  });
195
195
 
196
- test("no-op for non-managed assistants (managed-proxy prereqs not satisfied)", async () => {
196
+ test("no-op for non-cloud assistants (cloud-proxy prereqs not satisfied)", async () => {
197
197
  proxyState.prereqs = false;
198
198
 
199
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV2(true));
199
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV2(true));
200
200
 
201
201
  expect(seedSkill).not.toHaveBeenCalled();
202
202
  expect(seedCli).not.toHaveBeenCalled();
@@ -211,7 +211,7 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
211
211
 
212
212
  // Must not reject — the helper contains each seed's failure so a doomed
213
213
  // embed never propagates back to the credential-store caller.
214
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV2(true));
214
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV2(true));
215
215
 
216
216
  expect(seedCli).toHaveBeenCalledTimes(1);
217
217
  });
@@ -222,7 +222,7 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
222
222
  throw new Error('Embedding backend "gemini" is not configured');
223
223
  });
224
224
 
225
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV3());
225
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV3());
226
226
 
227
227
  // The CLI catalog seeded, so v3 must still rebuild its lanes — a single
228
228
  // catalog failure cannot suppress the maintain pass.
@@ -237,7 +237,7 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
237
237
  // the field. The CLI reseed completes normally.
238
238
  seedSkill.mockImplementationOnce(() => new Promise<void>(() => {}));
239
239
 
240
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV3(), {
240
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV3(), {
241
241
  reseedTimeoutMs: 20,
242
242
  });
243
243
 
@@ -258,7 +258,7 @@ describe("maybeReseedCapabilitiesAfterManagedCredential", () => {
258
258
  }),
259
259
  );
260
260
 
261
- await maybeReseedCapabilitiesAfterManagedCredential(configWithV3(), {
261
+ await maybeReseedCapabilitiesAfterCloudCredential(configWithV3(), {
262
262
  reseedTimeoutMs: 10,
263
263
  });
264
264
 
@@ -324,7 +324,7 @@ describe("seedV2CliCommandEntries", () => {
324
324
  });
325
325
 
326
326
  test("populates the cache from the declarative help on the first seed even when the embedding backend is unavailable (cold-start needle resilience)", async () => {
327
- // Cold-start race: the startup seed runs before the managed embedding
327
+ // Cold-start race: the startup seed runs before the cloud embedding
328
328
  // credential is provisioned, so the first `embedWithBackend` throws. The
329
329
  // in-memory cache (read by the v3 needle lane and the page index) must
330
330
  // still populate from the declarative help so CLI commands are
@@ -691,8 +691,8 @@ Write a local article draft.
691
691
  });
692
692
 
693
693
  test("populates the cache from the local catalog on the first seed even when the embedding backend is unavailable (cold-start needle resilience)", async () => {
694
- // Regression: on a brand-new managed assistant the startup seed runs before
695
- // the platform provisions the managed embedding credential, so the very
694
+ // Regression: on a brand-new cloud assistant the startup seed runs before
695
+ // the cloud provisions the cloud embedding credential, so the very
696
696
  // first `embedWithBackend` throws. The in-memory cache (which the v3 needle
697
697
  // lane and the page index read) must still populate from the local catalog
698
698
  // so skills are discoverable from first boot; only the dense Qdrant upsert
@@ -724,7 +724,7 @@ Write a local article draft.
724
724
  });
725
725
 
726
726
  test("surfaces the dense-embed failure to throwOnError callers while still populating the needle cache", async () => {
727
- // The managed-credential reseed and the operator reembed route pass
727
+ // The cloud-credential reseed and the operator reembed route pass
728
728
  // `throwOnError` so they learn the dense lane didn't complete and the
729
729
  // retry/maintain machinery backfills it — but the needle cache is fixed
730
730
  // regardless before the error propagates.
@@ -58,10 +58,10 @@ export function maybeSeedCliCommandCards(config: AssistantConfig): void {
58
58
 
59
59
  /**
60
60
  * Default upper bound on how long
61
- * {@link maybeReseedCapabilitiesAfterManagedCredential} waits for the capability
61
+ * {@link maybeReseedCapabilitiesAfterCloudCredential} waits for the capability
62
62
  * reseeds before enqueuing the v3 maintain pass. The reseeds keep running
63
63
  * detached past this bound — it only stops the barrier from waiting on a wedged
64
- * catalog (a stalled `getCatalog()` or a managed-proxy embed that never
64
+ * catalog (a stalled `getCatalog()` or a cloud-proxy embed that never
65
65
  * returns). A straggler that finishes later re-enqueues maintain.
66
66
  */
67
67
  const RESEED_BARRIER_TIMEOUT_MS = 120_000;
@@ -89,13 +89,13 @@ async function settledWithin(
89
89
  }
90
90
 
91
91
  /**
92
- * Re-seed the v2 skill and CLI-command capability entries once a managed-proxy
92
+ * Re-seed the v2 skill and CLI-command capability entries once a cloud-proxy
93
93
  * credential lands, closing the first-boot race where the daemon's startup seed
94
- * runs before the platform has provisioned the managed embedding credential.
94
+ * runs before the cloud has provisioned the cloud embedding credential.
95
95
  *
96
- * On a brand-new managed assistant the memory worker fires the startup seed
96
+ * On a brand-new cloud assistant the memory worker fires the startup seed
97
97
  * (`maybeSeedCapabilitySkills` / `maybeSeedCliCommandCards`) seconds after
98
- * boot, but the platform pushes `cadet:assistant_api_key` (the credential the
98
+ * boot, but the cloud pushes `cadet:assistant_api_key` (the credential the
99
99
  * managed Gemini embedding backend needs) tens of seconds later. The seed's
100
100
  * `embedWithBackend` call throws `EmbeddingBackendUnavailableError` before the
101
101
  * skill/CLI `entries` cache is replaced, so `listSkillEntries()` /
@@ -105,7 +105,7 @@ async function settledWithin(
105
105
  * the next daemon restart. Re-running the seed when the credential arrives
106
106
  * restores the capability pages without a restart.
107
107
  *
108
- * Gated on the managed-proxy prerequisites now being satisfied (both the
108
+ * Gated on the cloud-proxy prerequisites now being satisfied (both the
109
109
  * platform base URL and the assistant API key present) so a non-managed
110
110
  * credential write — or a partial update that has not yet completed the pair —
111
111
  * does not kick a doomed embed. Idempotent: `seedV2SkillEntries` /
@@ -125,7 +125,7 @@ async function settledWithin(
125
125
  *
126
126
  * The maintain enqueue must NOT be gated on both catalogs settling. The two
127
127
  * embeds are independent, and a single wedged catalog (a stalled `getCatalog()`
128
- * or a managed-proxy embed that never returns) would otherwise block the v3 lane
128
+ * or a cloud-proxy embed that never returns) would otherwise block the v3 lane
129
129
  * rebuild indefinitely, so the catalog that DID seed never reaches the selector.
130
130
  * The barrier is therefore bounded by `reseedTimeoutMs`: maintain is enqueued
131
131
  * once the barrier resolves (the pass is idempotent and reconciles whatever the
@@ -136,7 +136,7 @@ async function settledWithin(
136
136
  * `reseedTimeoutMs` is injectable for tests; production uses
137
137
  * {@link RESEED_BARRIER_TIMEOUT_MS}.
138
138
  */
139
- export async function maybeReseedCapabilitiesAfterManagedCredential(
139
+ export async function maybeReseedCapabilitiesAfterCloudCredential(
140
140
  config: AssistantConfig,
141
141
  opts: { reseedTimeoutMs?: number } = {},
142
142
  ): Promise<void> {
@@ -144,13 +144,13 @@ export async function maybeReseedCapabilitiesAfterManagedCredential(
144
144
  return;
145
145
  }
146
146
 
147
- const { hasManagedProxyPrereqs } =
148
- await import("../../../../providers/platform-proxy/context.js");
149
- if (!(await hasManagedProxyPrereqs())) {
147
+ const { hasCloudProxyPrereqs } =
148
+ await import("../../../../providers/cloud-proxy/context.js");
149
+ if (!(await hasCloudProxyPrereqs())) {
150
150
  return;
151
151
  }
152
152
 
153
- // The managed credential has just landed, so the embedding backend is now
153
+ // The cloud credential has just landed, so the embedding backend is now
154
154
  // reachable. Retry the embedding-identity reconcile to close the
155
155
  // fresh-platform-install-booted-with-Gemini-down case: the first boot defers
156
156
  // (degraded) because the backend probe returns null, and this credential-
@@ -168,7 +168,7 @@ export async function maybeReseedCapabilitiesAfterManagedCredential(
168
168
  } catch (err) {
169
169
  log.warn(
170
170
  { err },
171
- "Embedding-identity reconcile after managed proxy credential update threw — continuing",
171
+ "Embedding-identity reconcile after cloud proxy credential update threw — continuing",
172
172
  );
173
173
  }
174
174
 
@@ -200,12 +200,12 @@ export async function maybeReseedCapabilitiesAfterManagedCredential(
200
200
  seed().then(
201
201
  () =>
202
202
  log.info(
203
- `Memory v2 ${label} entries seeded after managed proxy credential update`,
203
+ `Memory v2 ${label} entries seeded after cloud proxy credential update`,
204
204
  ),
205
205
  (err: unknown) =>
206
206
  log.warn(
207
207
  { err },
208
- `Failed to seed v2 ${label} entries after managed proxy credential update`,
208
+ `Failed to seed v2 ${label} entries after cloud proxy credential update`,
209
209
  ),
210
210
  ),
211
211
  );
@@ -229,7 +229,7 @@ export async function maybeReseedCapabilitiesAfterManagedCredential(
229
229
  } catch (err) {
230
230
  log.warn(
231
231
  { err },
232
- "Failed to enqueue memory_v3_maintain after managed proxy credential update",
232
+ "Failed to enqueue memory_v3_maintain after cloud proxy credential update",
233
233
  );
234
234
  }
235
235
  };
@@ -159,12 +159,12 @@ async function runSeedV2CliCommandEntries(generation: number): Promise<void> {
159
159
 
160
160
  // Sparse (BM25/TF) encoding is computed locally; only the dense vectors
161
161
  // require `embedWithBackend`, which is unconfigured during the cold-start
162
- // window before a managed-proxy embedding credential is provisioned. A
162
+ // window before a cloud-proxy embedding credential is provisioned. A
163
163
  // dense-embed failure is non-fatal to the in-memory cache: the v3 needle
164
164
  // finder lane reads CLI capabilities from `entries` / the page index, NOT
165
165
  // from Qdrant, so the cache is populated from the local Commander tree
166
166
  // regardless of backend state and commands stay discoverable from first
167
- // boot. Only the dense Qdrant upsert is skipped; the managed-credential
167
+ // boot. Only the dense Qdrant upsert is skipped; the cloud-credential
168
168
  // reseed and the v3 maintain pass backfill the dense vectors on recovery.
169
169
  const nextEntries = new Map<string, CliCommandEntry>();
170
170
  let denseVectors: number[][] = [];
@@ -1182,7 +1182,7 @@ export function renderConsolidationPrompt(
1182
1182
  * page index's reports, `{{OVERLONG_SECTIONS_SECTION}}` from the v3 section
1183
1183
  * scan, and the legacy `{{PROC_TO_SKILLS_SECTION}}` always
1184
1184
  * stripped to empty, so a prompt copied from any past bundled source never
1185
- * leaks a raw placeholder, and a customized prompt can opt into the managed
1185
+ * leaks a raw placeholder, and a customized prompt can opt into the cloud
1186
1186
  * sections.
1187
1187
  *
1188
1188
  * The buffer entries and the repair sections do not wait for opt-in: an