@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
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * At the default ref, the catalog entry is resolved from the gated plugin
5
5
  * catalog (the same source search and install-by-name use): these tests run
6
- * with platform features disabled (`CADET_DISABLE_PLATFORM`) so the catalog is
6
+ * with platform features disabled (`CADET_DISABLE_CLOUD`) so the catalog is
7
7
  * the bundled manifest — real plugin names / pinned SHAs, zero network. An
8
8
  * explicit historical `ref` instead reads the GitHub `plugins/marketplace.json`
9
9
  * at that revision (a git lookup, matching pin history / inspect). GitHub is
@@ -15,7 +15,7 @@
15
15
  * - directory listings (`/contents/<path>` → entry array or 404),
16
16
  * - raw file downloads (a listing entry's `download_url`).
17
17
  *
18
- * A separate suite drives the platform-enabled path with a failing catalog
18
+ * A separate suite drives the cloud-enabled path with a failing catalog
19
19
  * fetch to prove the detail view degrades (local + repo fallback) on an outage.
20
20
  */
21
21
 
@@ -143,8 +143,8 @@ function sha16(buf: Buffer): string {
143
143
  }
144
144
 
145
145
  const ORIGINAL_ENV = {
146
- IS_PLATFORM: process.env.IS_PLATFORM,
147
- CADET_DISABLE_PLATFORM: process.env.CADET_DISABLE_PLATFORM,
146
+ IS_CLOUD: process.env.IS_CLOUD,
147
+ CADET_DISABLE_CLOUD: process.env.CADET_DISABLE_CLOUD,
148
148
  };
149
149
 
150
150
  function restoreEnv(): void {
@@ -163,8 +163,8 @@ describe("getPluginDetails (bundled catalog, offline)", () => {
163
163
  beforeEach(() => {
164
164
  workspace = mkdtempSync(join(tmpdir(), "plugin-details-"));
165
165
  invalidatePluginCatalogCache();
166
- process.env.CADET_DISABLE_PLATFORM = "true";
167
- delete process.env.IS_PLATFORM;
166
+ process.env.CADET_DISABLE_CLOUD = "true";
167
+ delete process.env.IS_CLOUD;
168
168
  });
169
169
 
170
170
  afterEach(() => {
@@ -729,7 +729,7 @@ describe("getPluginDetails (bundled catalog, offline)", () => {
729
729
  });
730
730
 
731
731
  describe("getPluginDetails (catalog unavailable, platform enabled)", () => {
732
- // A fetch that always rejects — the platform catalog fetch fails, and no
732
+ // A fetch that always rejects — the cloud catalog fetch fails, and no
733
733
  // GitHub enrichment should be attempted for the degraded cases below.
734
734
  const failingFetch = (async () => {
735
735
  throw new Error("network down");
@@ -738,8 +738,8 @@ describe("getPluginDetails (catalog unavailable, platform enabled)", () => {
738
738
  beforeEach(() => {
739
739
  workspace = mkdtempSync(join(tmpdir(), "plugin-details-"));
740
740
  invalidatePluginCatalogCache();
741
- delete process.env.IS_PLATFORM;
742
- delete process.env.CADET_DISABLE_PLATFORM;
741
+ delete process.env.IS_CLOUD;
742
+ delete process.env.CADET_DISABLE_CLOUD;
743
743
  });
744
744
 
745
745
  afterEach(() => {
@@ -801,7 +801,7 @@ describe("getPluginDetails (catalog unavailable, platform enabled)", () => {
801
801
  }
802
802
 
803
803
  test("404s a not-installed plugin whose only catalog row has a malformed source", async () => {
804
- // GIVEN a platform catalog row pinned to a mutable ref (not a full SHA) —
804
+ // GIVEN a cloud catalog row pinned to a mutable ref (not a full SHA) —
805
805
  // platform rows are not source-validated, so this reaches the detail view;
806
806
  // install-by-name would refuse it
807
807
  const fetch = platformCatalogFetch({
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Install-by-name in disable-platform (air-gapped / self-hosted) mode.
3
3
  *
4
- * With `CADET_DISABLE_PLATFORM=true` there is no platform to serve a verified
4
+ * With `CADET_DISABLE_CLOUD=true` there is no platform to serve a verified
5
5
  * tarball, so `assistant plugins install <name>` resolves the pin from the
6
6
  * bundled marketplace catalog and installs through the trusted GitHub path
7
7
  * (`trustedSource`, which preserves the curated adapter stub) — with zero
8
8
  * platform calls. A name absent from the bundled catalog fails clearly. With
9
- * platform features enabled, the platform install endpoint is used unchanged.
9
+ * platform features enabled, the cloud install endpoint is used unchanged.
10
10
  */
11
11
 
12
12
  import {
@@ -28,7 +28,7 @@ const installPluginCalls: InstallPluginOptions[] = [];
28
28
  const platformInstallCalls: Array<{ name: string; force?: boolean }> = [];
29
29
 
30
30
  const realGithub = await import("../install-from-github.js");
31
- const realPlatform = await import("../install-from-platform.js");
31
+ const realPlatform = await import("../install-from-cloud.js");
32
32
  const realCatalogCache = await import("../plugin-catalog-cache.js");
33
33
  let platformCatalogSource: PluginMatchSource = {
34
34
  kind: "github",
@@ -51,7 +51,7 @@ mock.module("../install-from-github.js", () => ({
51
51
  },
52
52
  }));
53
53
 
54
- mock.module("../install-from-platform.js", () => ({
54
+ mock.module("../install-from-cloud.js", () => ({
55
55
  ...realPlatform,
56
56
  installPluginViaPlatform: async (opts: { name: string; force?: boolean }) => {
57
57
  platformInstallCalls.push(opts);
@@ -104,8 +104,8 @@ async function runInstall(name: string): Promise<void> {
104
104
  }
105
105
 
106
106
  describe("plugins install by name — disable-platform mode", () => {
107
- const savedDisable = process.env.CADET_DISABLE_PLATFORM;
108
- const savedIsPlatform = process.env.IS_PLATFORM;
107
+ const savedDisable = process.env.CADET_DISABLE_CLOUD;
108
+ const savedIsPlatform = process.env.IS_CLOUD;
109
109
  const savedExitCode = process.exitCode;
110
110
 
111
111
  beforeEach(() => {
@@ -123,22 +123,22 @@ describe("plugins install by name — disable-platform mode", () => {
123
123
 
124
124
  afterEach(() => {
125
125
  if (savedDisable === undefined) {
126
- delete process.env.CADET_DISABLE_PLATFORM;
126
+ delete process.env.CADET_DISABLE_CLOUD;
127
127
  } else {
128
- process.env.CADET_DISABLE_PLATFORM = savedDisable;
128
+ process.env.CADET_DISABLE_CLOUD = savedDisable;
129
129
  }
130
130
  if (savedIsPlatform === undefined) {
131
- delete process.env.IS_PLATFORM;
131
+ delete process.env.IS_CLOUD;
132
132
  } else {
133
- process.env.IS_PLATFORM = savedIsPlatform;
133
+ process.env.IS_CLOUD = savedIsPlatform;
134
134
  }
135
135
  process.exitCode = savedExitCode;
136
136
  mock.restore();
137
137
  });
138
138
 
139
139
  test("installs a bundled plugin via the trusted GitHub path with no platform call", async () => {
140
- process.env.CADET_DISABLE_PLATFORM = "true";
141
- delete process.env.IS_PLATFORM;
140
+ process.env.CADET_DISABLE_CLOUD = "true";
141
+ delete process.env.IS_CLOUD;
142
142
 
143
143
  await runInstall(BUNDLED_PLUGIN);
144
144
 
@@ -159,8 +159,8 @@ describe("plugins install by name — disable-platform mode", () => {
159
159
  });
160
160
 
161
161
  test("errors clearly for a name absent from the bundled catalog", async () => {
162
- process.env.CADET_DISABLE_PLATFORM = "true";
163
- delete process.env.IS_PLATFORM;
162
+ process.env.CADET_DISABLE_CLOUD = "true";
163
+ delete process.env.IS_CLOUD;
164
164
  const errSpy = spyOn(console, "error").mockImplementation(() => {});
165
165
 
166
166
  await runInstall("definitely-not-a-real-plugin");
@@ -173,8 +173,8 @@ describe("plugins install by name — disable-platform mode", () => {
173
173
  });
174
174
 
175
175
  test("does not install a feature-gated bundled integration", async () => {
176
- process.env.CADET_DISABLE_PLATFORM = "true";
177
- delete process.env.IS_PLATFORM;
176
+ process.env.CADET_DISABLE_CLOUD = "true";
177
+ delete process.env.IS_CLOUD;
178
178
 
179
179
  await runInstall("gamma");
180
180
 
@@ -183,9 +183,9 @@ describe("plugins install by name — disable-platform mode", () => {
183
183
  expect(process.exitCode).toBe(1);
184
184
  });
185
185
 
186
- test("uses the platform install endpoint when platform features are enabled", async () => {
187
- delete process.env.CADET_DISABLE_PLATFORM;
188
- delete process.env.IS_PLATFORM;
186
+ test("uses the cloud install endpoint when platform features are enabled", async () => {
187
+ delete process.env.CADET_DISABLE_CLOUD;
188
+ delete process.env.IS_CLOUD;
189
189
 
190
190
  await runInstall(BUNDLED_PLUGIN);
191
191
 
@@ -196,8 +196,8 @@ describe("plugins install by name — disable-platform mode", () => {
196
196
  });
197
197
 
198
198
  test("does not install a name absent from a successful platform catalog", async () => {
199
- delete process.env.CADET_DISABLE_PLATFORM;
200
- delete process.env.IS_PLATFORM;
199
+ delete process.env.CADET_DISABLE_CLOUD;
200
+ delete process.env.IS_CLOUD;
201
201
  const errSpy = spyOn(console, "error").mockImplementation(() => {});
202
202
 
203
203
  await runInstall("gamma");
@@ -210,9 +210,9 @@ describe("plugins install by name — disable-platform mode", () => {
210
210
  );
211
211
  });
212
212
 
213
- test("installs a platform-visible local package without the platform tar endpoint", async () => {
214
- delete process.env.CADET_DISABLE_PLATFORM;
215
- delete process.env.IS_PLATFORM;
213
+ test("installs a cloud-visible local package without the cloud tar endpoint", async () => {
214
+ delete process.env.CADET_DISABLE_CLOUD;
215
+ delete process.env.IS_CLOUD;
216
216
  platformCatalogSource = {
217
217
  kind: "local",
218
218
  path: "plugins/mcp-catalog/fathom",
@@ -611,7 +611,7 @@
611
611
  "repo": "vargasjr-dev/cadet-client-qa",
612
612
  "ref": "4f559d865eaa04b68285f8e4fae4a05fc18fe88f"
613
613
  },
614
- "description": "Cross-platform QA rig for mycadet clients: mock the platform backend, boot the real chat UI, and verify feature branches in headless Chromium (web), an iOS simulator, or Electron with screenshot and video proof.",
614
+ "description": "Cross-platform QA rig for mycadet clients: mock the cloud backend, boot the real chat UI, and verify feature branches in headless Chromium (web), an iOS simulator, or Electron with screenshot and video proof.",
615
615
  "category": "developer",
616
616
  "homepage": "https://github.com/vargasjr-dev/cadet-client-qa",
617
617
  "license": "MIT",
@@ -30,7 +30,7 @@ import {
30
30
  readInstalledPlugin,
31
31
  } from "./list-installed-plugins.js";
32
32
  import {
33
- arePlatformFeaturesEnabled,
33
+ areCloudFeaturesEnabled,
34
34
  readBundledLocalPluginCatalog,
35
35
  } from "./plugin-catalog-local.js";
36
36
  import { isPluginCatalogEntryVisible } from "./plugin-catalog-visibility.js";
@@ -348,7 +348,7 @@ export async function inspectPlugin(
348
348
  let remoteError: string | null = null;
349
349
  const installedLocalSource = local?.source?.kind === "local";
350
350
  const useBundledLocalCatalog =
351
- installedLocalSource || (!installed && !arePlatformFeaturesEnabled());
351
+ installedLocalSource || (!installed && !areCloudFeaturesEnabled());
352
352
  try {
353
353
  if (useBundledLocalCatalog) {
354
354
  const catalog = deps.localCatalog ?? readBundledLocalPluginCatalog();
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Install a plugin by name from the platform's public install endpoint.
2
+ * Install a plugin by name from the cloud's public install endpoint.
3
3
  *
4
- * Plugin installs are platform-managed and content flows *through* the platform
4
+ * Plugin installs are cloud-managed and content flows *through* the cloud
5
5
  * (npm-style): the endpoint assembles a `.tgz` of the plugin's files from the
6
6
  * pinned commit, server-side, and serves it as `application/gzip`. The daemon
7
7
  * downloads that tarball, verifies its integrity against the `ETag` sha256,
@@ -21,7 +21,7 @@
21
21
  * {@link ./install-from-github}). The CLI command `assistant plugins install
22
22
  * <name>` calls {@link installPluginViaPlatform}, which resolves production
23
23
  * deps (platform base URL, optional API key, attribution) and delegates to
24
- * {@link installPluginFromPlatform}.
24
+ * {@link installPluginFromCloud}.
25
25
  */
26
26
 
27
27
  import { createHash } from "node:crypto";
@@ -33,7 +33,7 @@ import {
33
33
  MALFORMED_USTAR_SIZE,
34
34
  parseUstarSizeField,
35
35
  } from "../../archive/ustar-size.js";
36
- import { getPlatformBaseUrl } from "../../config/env.js";
36
+ import { getCloudBaseUrl } from "../../config/env.js";
37
37
  import { getExistingDeviceId } from "../../util/device-id.js";
38
38
  import { getWorkspacePluginsDir } from "../../util/platform.js";
39
39
  import { getPluginManifestInstallAction } from "../../util/plugin-manifest.js";
@@ -87,11 +87,11 @@ export class PluginArchiveError extends Error {
87
87
  }
88
88
  }
89
89
 
90
- /** The plugin exceeds the platform's install size cap (HTTP 413). */
90
+ /** The plugin exceeds the cloud's install size cap (HTTP 413). */
91
91
  export class PluginTooLargeError extends Error {
92
92
  constructor(readonly pluginName: string) {
93
93
  super(
94
- `Plugin "${pluginName}" is too large to install (the platform enforces a size cap).`,
94
+ `Plugin "${pluginName}" is too large to install (the cloud enforces a size cap).`,
95
95
  );
96
96
  this.name = "PluginTooLargeError";
97
97
  }
@@ -108,7 +108,7 @@ export class PluginRateLimitedError extends Error {
108
108
  }
109
109
 
110
110
  /** Options controlling which plugin to install and how. */
111
- export interface InstallFromPlatformOptions {
111
+ export interface InstallFromCloudOptions {
112
112
  readonly name: string;
113
113
  /** Overwrite an existing install in place. Preserved on disk until download+verify succeed. */
114
114
  readonly force?: boolean;
@@ -121,11 +121,11 @@ export interface InstallFromPlatformOptions {
121
121
  }
122
122
 
123
123
  /** Dependencies injected by the caller. */
124
- export interface InstallFromPlatformDeps {
124
+ export interface InstallFromCloudDeps {
125
125
  /** HTTP client. Production callers pass `globalThis.fetch.bind(globalThis)`. */
126
126
  readonly fetch: FetchLike;
127
127
  /** Platform base URL (no trailing slash required). */
128
- readonly platformBaseUrl: string;
128
+ readonly cloudBaseUrl: string;
129
129
  /** Assistant API key. When present the install is attributed to the real user/org. */
130
130
  readonly apiKey?: string;
131
131
  /** Override the workspace plugins directory. Falls back to {@link getWorkspacePluginsDir}. */
@@ -160,16 +160,16 @@ const defaultSleep = (ms: number): Promise<void> =>
160
160
  new Promise((r) => setTimeout(r, ms));
161
161
 
162
162
  /**
163
- * Download, verify, and extract a plugin from the platform install endpoint.
163
+ * Download, verify, and extract a plugin from the cloud install endpoint.
164
164
  *
165
165
  * Staging mirrors {@link installPlugin}: the tree is extracted into a sibling
166
166
  * staging dir and only swapped into `<pluginsDir>/<name>` once the download,
167
167
  * integrity check, and extraction all succeed — so a transient failure leaves
168
168
  * a previously installed copy untouched even under `force`.
169
169
  */
170
- export async function installPluginFromPlatform(
171
- opts: InstallFromPlatformOptions,
172
- deps: InstallFromPlatformDeps,
170
+ export async function installPluginFromCloud(
171
+ opts: InstallFromCloudOptions,
172
+ deps: InstallFromCloudDeps,
173
173
  ): Promise<InstallPluginResult> {
174
174
  const name = sanitizePluginName(opts.name);
175
175
  const force = opts.force ?? false;
@@ -240,10 +240,10 @@ export async function installPluginFromPlatform(
240
240
  }
241
241
 
242
242
  /**
243
- * Resolve production deps and install `name` from the platform endpoint.
243
+ * Resolve production deps and install `name` from the cloud endpoint.
244
244
  *
245
245
  * The CLI command `assistant plugins install <name>` calls this. It resolves
246
- * the platform base URL the daemon already uses, sends the assistant API key
246
+ * the cloud base URL the daemon already uses, sends the assistant API key
247
247
  * when one is configured (attributing the install to the real user/org, else
248
248
  * anonymous), and forwards best-effort attribution (`installation_id`,
249
249
  * `assistant_version`).
@@ -252,11 +252,11 @@ export async function installPluginViaPlatform(
252
252
  opts: { name: string; force?: boolean; conversationId?: string },
253
253
  deps: { fetch: FetchLike; confirmStaged?: ConfirmStagedInstall },
254
254
  ): Promise<InstallPluginResult> {
255
- const platformBaseUrl = getPlatformBaseUrl();
255
+ const cloudBaseUrl = getCloudBaseUrl();
256
256
  const apiKey = await resolveAssistantApiKey();
257
257
  const installationId = getExistingDeviceId() ?? undefined;
258
258
 
259
- return installPluginFromPlatform(
259
+ return installPluginFromCloud(
260
260
  {
261
261
  name: opts.name,
262
262
  force: opts.force,
@@ -266,7 +266,7 @@ export async function installPluginViaPlatform(
266
266
  },
267
267
  {
268
268
  fetch: deps.fetch,
269
- platformBaseUrl,
269
+ cloudBaseUrl,
270
270
  ...(apiKey ? { apiKey } : {}),
271
271
  ...(deps.confirmStaged ? { confirmStaged: deps.confirmStaged } : {}),
272
272
  },
@@ -276,12 +276,12 @@ export async function installPluginViaPlatform(
276
276
  /**
277
277
  * Best-effort resolution of the assistant API key through the authorized
278
278
  * platform client (the same credential path `plugins publish` uses); the
279
- * install proceeds anonymously when the daemon isn't connected to the platform.
279
+ * install proceeds anonymously when the daemon isn't connected to the cloud.
280
280
  */
281
281
  async function resolveAssistantApiKey(): Promise<string | undefined> {
282
282
  try {
283
- const { CadetPlatformClient } = await import("../../platform/client.js");
284
- const client = await CadetPlatformClient.create();
283
+ const { CadetCloudClient } = await import("../../cloud/client.js");
284
+ const client = await CadetCloudClient.create();
285
285
  return client?.assistantApiKey || undefined;
286
286
  } catch {
287
287
  return undefined;
@@ -294,12 +294,12 @@ async function resolveAssistantApiKey(): Promise<string | undefined> {
294
294
  */
295
295
  async function downloadInstallArchive(
296
296
  name: string,
297
- opts: InstallFromPlatformOptions,
298
- deps: InstallFromPlatformDeps,
297
+ opts: InstallFromCloudOptions,
298
+ deps: InstallFromCloudDeps,
299
299
  ): Promise<{ body: Buffer; meta: InstallResponseMeta }> {
300
- const url = buildInstallUrl(deps.platformBaseUrl, name, opts);
300
+ const url = buildInstallUrl(deps.cloudBaseUrl, name, opts);
301
301
  const headers: Record<string, string> = {
302
- // The platform (Django) 406s a specific `application/gzip` Accept, so ask
302
+ // The cloud (Django) 406s a specific `application/gzip` Accept, so ask
303
303
  // for anything and sniff the body ourselves (see extractPluginTarball).
304
304
  Accept: "*/*",
305
305
  "User-Agent": USER_AGENT,
@@ -375,11 +375,11 @@ function retryDelayMs(res: Response, attempt: number): number {
375
375
 
376
376
  /** Build the install URL, appending optional attribution query params. */
377
377
  function buildInstallUrl(
378
- platformBaseUrl: string,
378
+ cloudBaseUrl: string,
379
379
  name: string,
380
- opts: InstallFromPlatformOptions,
380
+ opts: InstallFromCloudOptions,
381
381
  ): string {
382
- const base = platformBaseUrl.replace(/\/+$/, "");
382
+ const base = cloudBaseUrl.replace(/\/+$/, "");
383
383
  const url = new URL(
384
384
  `${base}/v1/plugins/${encodeURIComponent(name)}/install/`,
385
385
  );
@@ -463,7 +463,7 @@ function isGzip(buf: Buffer): boolean {
463
463
  /**
464
464
  * Extract a plugin archive into `destDir`, returning the number of regular
465
465
  * files written. The archive is gunzipped when it carries the gzip magic bytes
466
- * and treated as a plain (uncompressed) POSIX tar otherwise — the platform
466
+ * and treated as a plain (uncompressed) POSIX tar otherwise — the cloud
467
467
  * advertises `application/gzip` but may serve either, so the body is sniffed
468
468
  * rather than trusted by content-type. Entries are already plugin-root-relative
469
469
  * (the endpoint re-roots the tarball), so they are extracted as-is — but archive
@@ -592,7 +592,7 @@ export async function installPlugin(
592
592
  * install is left behind; a decline then surfaces as
593
593
  * {@link PluginInstallDeclinedError}. A no-op when no gate was supplied.
594
594
  *
595
- * Shared by {@link installPlugin} and the platform-endpoint install so both
595
+ * Shared by {@link installPlugin} and the cloud-endpoint install so both
596
596
  * abort a declined install the same way.
597
597
  */
598
598
  export async function confirmStagedOrAbort(
@@ -649,7 +649,7 @@ export interface FinalizeStagedInstallParams {
649
649
  * `<pluginsDir>/<name>`. Returns the final install path and the fingerprint that
650
650
  * was recorded.
651
651
  *
652
- * Shared by {@link installPlugin} (fresh materialization), the platform-endpoint
652
+ * Shared by {@link installPlugin} (fresh materialization), the cloud-endpoint
653
653
  * install, and the merge-based `plugins upgrade --strategy` path so all record
654
654
  * identical provenance, install dependencies the same way, and use the same
655
655
  * atomic rm+rename swap. Dependencies land in `<stagingDir>/node_modules/` — a
@@ -821,7 +821,7 @@ export interface InstallMeta {
821
821
  readonly commit: string | null;
822
822
  /**
823
823
  * Integrity digest of the downloaded artifact, when the install came through
824
- * the platform install endpoint (`ETag: "sha256:<hex>"`). Recorded verbatim
824
+ * the cloud install endpoint (`ETag: "sha256:<hex>"`). Recorded verbatim
825
825
  * (including the `sha256:` prefix) as a stable id for caching / dedupe and to
826
826
  * document what was verified. Absent for git-cloned installs, which have no
827
827
  * single artifact to hash.
@@ -1179,7 +1179,7 @@ function normalizeInstalledManifest(
1179
1179
  * (`buildPluginFromDir`) hard-requires a `package.json` validated against
1180
1180
  * `PluginPackageJsonSchema` and silently skips the plugin when it's missing.
1181
1181
  *
1182
- * Used by both the GitHub clone path and the platform tarball path. The
1182
+ * Used by both the GitHub clone path and the cloud tarball path. The
1183
1183
  * synthesized manifest carries the install name and the default
1184
1184
  * `@mycadet/plugin-api` peer dependency range. No foreign-ecosystem
1185
1185
  * manifest data is read: the install name is the only identity we trust
@@ -4,16 +4,16 @@
4
4
  * Platform-first: when platform features are enabled the catalog is fetched
5
5
  * from Cadet Cloud and any fetch failure propagates (fail hard — no
6
6
  * stale-cache smoothing). Successful loads are held per git ref for a short
7
- * TTL. When `CADET_DISABLE_PLATFORM` disables platform features the bundled
7
+ * TTL. When `CADET_DISABLE_CLOUD` disables platform features the bundled
8
8
  * offline manifest is read instead, with zero network calls.
9
9
  */
10
10
 
11
- import { arePlatformFeaturesEnabled } from "../../platform/feature-gate.js";
11
+ import { areCloudFeaturesEnabled } from "../../cloud/feature-gate.js";
12
+ import { fetchPluginCatalogFromPlatform } from "./plugin-catalog-cloud.js";
12
13
  import {
13
14
  readBundledLocalPluginCatalog,
14
15
  readBundledPluginCatalog,
15
16
  } from "./plugin-catalog-local.js";
16
- import { fetchPluginCatalogFromPlatform } from "./plugin-catalog-platform.js";
17
17
  import { filterPluginCatalogByFeatureFlags } from "./plugin-catalog-visibility.js";
18
18
  import type { PluginCatalog, SearchPluginsDeps } from "./search-plugins.js";
19
19
 
@@ -30,9 +30,9 @@ type PluginCatalogLoadDeps = Pick<SearchPluginsDeps, "fetch">;
30
30
  const cache = new Map<string, CacheEntry>();
31
31
 
32
32
  /**
33
- * Add bundled local packages without overriding platform-authoritative rows.
33
+ * Add bundled local packages without overriding cloud-authoritative rows.
34
34
  * A platform row without an integration borrows the bundled row's
35
- * integration of the same name, so an integration the platform omits or
35
+ * integration of the same name, so an integration the cloud omits or
36
36
  * serves malformed never disappears from the catalog.
37
37
  */
38
38
  export function mergePlatformCatalogWithBundledLocals(
@@ -64,7 +64,7 @@ export function mergePlatformCatalogWithBundledLocals(
64
64
  *
65
65
  * With platform features disabled the bundled manifest is returned directly —
66
66
  * an in-memory constant, no network and no TTL. Otherwise the catalog is
67
- * fetched from the platform and, on success, cached per ref for the TTL; a
67
+ * fetched from the cloud and, on success, cached per ref for the TTL; a
68
68
  * fetch failure propagates so the caller can surface it (e.g. map a rate-limit
69
69
  * to 503) — no stale catalog is ever served.
70
70
  */
@@ -72,7 +72,7 @@ async function loadPluginCatalog(
72
72
  ref: string,
73
73
  deps: PluginCatalogLoadDeps,
74
74
  ): Promise<PluginCatalog> {
75
- if (!arePlatformFeaturesEnabled()) {
75
+ if (!areCloudFeaturesEnabled()) {
76
76
  return { ...readBundledPluginCatalog(), ref };
77
77
  }
78
78
 
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Fetch the installable plugin catalog from Cadet Cloud.
3
3
  *
4
- * The platform serves a flattened view of the curated marketplace at
4
+ * The cloud serves a flattened view of the curated marketplace at
5
5
  * `GET {PLATFORM}/v1/plugins/`. Rows are normalized to {@link MarketplaceEntry}
6
6
  * and projected via the shared {@link projectMarketplaceEntries} helper, so a
7
- * catalog sourced from the platform is indistinguishable from one read off
7
+ * catalog sourced from the cloud is indistinguishable from one read off
8
8
  * GitHub.
9
9
  *
10
10
  * Every failure mode (non-2xx, unreachable/aborted, malformed envelope)
@@ -16,7 +16,7 @@
16
16
 
17
17
  import { z } from "zod";
18
18
 
19
- import { getPlatformBaseUrl } from "../../config/env.js";
19
+ import { getCloudBaseUrl } from "../../config/env.js";
20
20
  import { getLogger } from "../../util/logger.js";
21
21
  import {
22
22
  type MarketplaceEntry,
@@ -33,7 +33,7 @@ import { USER_AGENT } from "./user-agent.js";
33
33
  const log = getLogger("plugin-catalog");
34
34
 
35
35
  /**
36
- * One flattened row from the platform catalog. Unknown keys (`id`,
36
+ * One flattened row from the cloud catalog. Unknown keys (`id`,
37
37
  * `display_name`) are accepted and dropped (zod strips them by default).
38
38
  * `integration` is validated separately by {@link integrationSchema}.
39
39
  */
@@ -57,14 +57,14 @@ const platformCatalogSchema = z.object({
57
57
  });
58
58
 
59
59
  /**
60
- * Fetch and project the platform catalog. Rows missing `repo`/`ref` are
60
+ * Fetch and project the cloud catalog. Rows missing `repo`/`ref` are
61
61
  * skipped; the rest are deduped by name and sorted alphabetically.
62
62
  */
63
63
  export async function fetchPluginCatalogFromPlatform(
64
64
  deps: SearchPluginsDeps,
65
65
  opts?: { ref?: string },
66
66
  ): Promise<PluginCatalog> {
67
- const url = `${getPlatformBaseUrl().replace(/\/+$/, "")}/v1/plugins/`;
67
+ const url = `${getCloudBaseUrl().replace(/\/+$/, "")}/v1/plugins/`;
68
68
 
69
69
  let res: Response;
70
70
  try {
@@ -6,7 +6,7 @@
6
6
  * treatment as the feature-flag registry.
7
7
  *
8
8
  * `getPluginCatalog` selects this reader only when platform features are
9
- * disabled (air-gapped / self-hosted, `CADET_DISABLE_PLATFORM=true`). Importing
9
+ * disabled (air-gapped / self-hosted, `CADET_DISABLE_CLOUD=true`). Importing
10
10
  * the JSON directly (resolveJsonModule) inlines it into the bundle, so there is
11
11
  * no filesystem path resolution and the manifest is always present at runtime —
12
12
  * it works identically in dev, Docker, and an npm-packed macOS install.
@@ -30,7 +30,7 @@ import {
30
30
 
31
31
  // Re-exported so `local`-tagged CLI commands can gate on platform features
32
32
  // without importing `platform/` directly (cli/no-daemon-internals allows lib).
33
- export { arePlatformFeaturesEnabled } from "../../platform/feature-gate.js";
33
+ export { areCloudFeaturesEnabled } from "../../cloud/feature-gate.js";
34
34
  export { isPluginCatalogEntryVisible };
35
35
 
36
36
  let memoizedEntries: readonly MarketplaceEntry[] | undefined;
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * `assistant plugins publish` — validate a local plugin, resolve its git
3
- * context, and submit it to the Cadet marketplace catalog via the platform
3
+ * context, and submit it to the Cadet marketplace catalog via the cloud
4
4
  * API.
5
5
  *
6
6
  * The flow mirrors `npm publish`: validate the package locally, resolve the
7
- * version (commit SHA), and POST to a registry endpoint. The platform then
7
+ * version (commit SHA), and POST to a registry endpoint. The cloud then
8
8
  * creates a pull request against `vargasjr-dev/mycadet` using the
9
9
  * Cadet Automation GitHub App.
10
10
  *
@@ -75,7 +75,7 @@ export interface PublishResult {
75
75
 
76
76
  export interface PublishDeps {
77
77
  fetch: typeof globalThis.fetch;
78
- platformBaseUrl: string;
78
+ cloudBaseUrl: string;
79
79
  apiKey: string;
80
80
  }
81
81
 
@@ -324,7 +324,7 @@ export async function postPublishRequest(
324
324
  deps: PublishDeps,
325
325
  ): Promise<PublishResult> {
326
326
  const resp = await deps.fetch(
327
- `${deps.platformBaseUrl.replace(/\/+$/, "")}/v1/plugins/publish/`,
327
+ `${deps.cloudBaseUrl.replace(/\/+$/, "")}/v1/plugins/publish/`,
328
328
  {
329
329
  method: "POST",
330
330
  headers: {
@@ -343,12 +343,12 @@ export async function postPublishRequest(
343
343
  *
344
344
  * Returns `null` when not connected to Cadet Cloud (no API key
345
345
  * or base URL configured). The CLI command uses this to avoid hoisting
346
- * `CadetPlatformClient` into its static import graph; resolving it lazily
346
+ * `CadetCloudClient` into its static import graph; resolving it lazily
347
347
  * keeps that daemon code out of the CLI process until the command needs it.
348
348
  */
349
349
  export async function resolvePlatformDeps(): Promise<PublishDeps | null> {
350
- const { CadetPlatformClient } = await import("../../platform/client.js");
351
- const client = await CadetPlatformClient.create();
350
+ const { CadetCloudClient } = await import("../../cloud/client.js");
351
+ const client = await CadetCloudClient.create();
352
352
  if (!client) {
353
353
  return null;
354
354
  }
@@ -357,8 +357,7 @@ export async function resolvePlatformDeps(): Promise<PublishDeps | null> {
357
357
  // privately, so we use its fetch method directly.
358
358
  return {
359
359
  fetch: globalThis.fetch.bind(globalThis),
360
- platformBaseUrl: (client as unknown as { platformBaseUrl: string })
361
- .platformBaseUrl,
360
+ cloudBaseUrl: (client as unknown as { cloudBaseUrl: string }).cloudBaseUrl,
362
361
  apiKey: (client as unknown as { apiKey: string }).apiKey,
363
362
  };
364
363
  }
@@ -581,7 +580,7 @@ export async function runPublish(
581
580
  }
582
581
  }
583
582
 
584
- // 7. Submit to the platform API
583
+ // 7. Submit to the cloud API
585
584
  const platformDeps = await resolvePlatformDeps();
586
585
  if (!platformDeps) {
587
586
  const msg =
@@ -70,7 +70,7 @@ export interface PluginSearchMatch {
70
70
  readonly description?: string;
71
71
  /**
72
72
  * Plugin icon: a curated emoji from the marketplace entry, or an icon URL
73
- * served by the platform catalog when the plugin ships a bundled image.
73
+ * served by the cloud catalog when the plugin ships a bundled image.
74
74
  */
75
75
  readonly icon?: string;
76
76
  /**
@@ -149,7 +149,7 @@ export interface PluginCatalog {
149
149
  * Project a marketplace entry onto the catalog match shape, building a
150
150
  * a source-specific locator for display.
151
151
  *
152
- * Shared by the platform fetcher and bundled reader so all catalog sources
152
+ * Shared by the cloud fetcher and bundled reader so all catalog sources
153
153
  * project entries identically.
154
154
  */
155
155
  export function marketplaceMatch(entry: MarketplaceEntry): PluginSearchMatch {