@mycadet/assistant 0.12.9 → 0.12.10

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 (651) hide show
  1. package/Dockerfile +0 -8
  2. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +1 -1
  3. package/openapi.yaml +62 -910
  4. package/package.json +3 -7
  5. package/scripts/build-test-fixtures.ts +1 -1
  6. package/scripts/generate-openapi.ts +22 -6
  7. package/scripts/postinstall.ts +4 -10
  8. package/scripts/run-tests.ts +0 -21
  9. package/src/__tests__/adaptive-thinking-repair.test.ts +19 -57
  10. package/src/__tests__/agent-loop.test.ts +0 -76
  11. package/src/__tests__/anthropic-provider.test.ts +6 -6
  12. package/src/__tests__/assert-not-live-db.ts +1 -1
  13. package/src/__tests__/assistant-id-boundary-guard.test.ts +3 -3
  14. package/src/__tests__/attachments-store-heic-normalize.test.ts +1 -1
  15. package/src/__tests__/attachments-store.test.ts +1 -1
  16. package/src/__tests__/audit-log-rotation.test.ts +1 -1
  17. package/src/__tests__/btw-routes.test.ts +1 -1
  18. package/src/__tests__/byok-default-profile-ensure.test.ts +21 -27
  19. package/src/__tests__/call-conversation-messages.test.ts +0 -5
  20. package/src/__tests__/call-recovery.test.ts +2 -7
  21. package/src/__tests__/call-routes-http.test.ts +0 -12
  22. package/src/__tests__/call-store.test.ts +2 -7
  23. package/src/__tests__/catalog-files.test.ts +7 -5
  24. package/src/__tests__/checker.test.ts +1 -1
  25. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +4 -4
  26. package/src/__tests__/cloud-client-verify-credential.test.ts +0 -4
  27. package/src/__tests__/cloud-credential-catalog-cli.test.ts +14 -14
  28. package/src/__tests__/cloud-profile-guard.test.ts +48 -401
  29. package/src/__tests__/compaction-events.test.ts +2 -2
  30. package/src/__tests__/config-loader-backfill.test.ts +74 -163
  31. package/src/__tests__/config-loader-cloud-defaults.test.ts +11 -11
  32. package/src/__tests__/config-loader-corrupt.test.ts +10 -10
  33. package/src/__tests__/config-loader-quarantine-notice.test.ts +7 -7
  34. package/src/__tests__/config-loader-validation-reset-notice.test.ts +11 -11
  35. package/src/__tests__/config-schema.test.ts +26 -27
  36. package/src/__tests__/config-set-route.test.ts +2 -6
  37. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +28 -300
  38. package/src/__tests__/conversation-agent-loop-overflow.test.ts +39 -246
  39. package/src/__tests__/conversation-agent-loop.test.ts +2 -58
  40. package/src/__tests__/conversation-clear-safety.test.ts +0 -30
  41. package/src/__tests__/conversation-inference-profile-route.test.ts +1 -1
  42. package/src/__tests__/conversation-queue.test.ts +1 -1
  43. package/src/__tests__/conversation-runtime-assembly.test.ts +1 -1
  44. package/src/__tests__/conversation-skill-tools.test.ts +4 -444
  45. package/src/__tests__/conversation-slash-commands.test.ts +1 -1
  46. package/src/__tests__/conversation-store.test.ts +1 -84
  47. package/src/__tests__/conversation-surface-state.test.ts +0 -16
  48. package/src/__tests__/credential-health-service.test.ts +14 -1
  49. package/src/__tests__/credential-record-retire.test.ts +1 -1
  50. package/src/__tests__/credential-record-write-through.test.ts +1 -1
  51. package/src/__tests__/credential-security-invariants.test.ts +0 -145
  52. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  53. package/src/__tests__/default-profile-catalog-fallback.test.ts +5 -15
  54. package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -2
  55. package/src/__tests__/dictation-profile-store.test.ts +6 -6
  56. package/src/__tests__/disk-usage.test.ts +28 -164
  57. package/src/__tests__/docker-signing-key-bootstrap.test.ts +1 -1
  58. package/src/__tests__/embedding-cloud-proxy-selection.test.ts +1 -1
  59. package/src/__tests__/emit-event-signal.test.ts +1 -1
  60. package/src/__tests__/gateway-client-cloud-outbound.test.ts +3 -3
  61. package/src/__tests__/gateway-only-enforcement.test.ts +1 -1
  62. package/src/__tests__/guardian-dispatch.test.ts +0 -13
  63. package/src/__tests__/helpers/seed-app.ts +1 -1
  64. package/src/__tests__/host-cu-routes-targeted.test.ts +1 -1
  65. package/src/__tests__/host-shell-tool.test.ts +1 -1
  66. package/src/__tests__/identity-routes.test.ts +1 -1
  67. package/src/__tests__/inference-profile-session-handler.test.ts +1 -1
  68. package/src/__tests__/inference-profile-session-ipc.test.ts +1 -1
  69. package/src/__tests__/injector-chain.test.ts +1 -1
  70. package/src/__tests__/injector-config-quarantine-notice.test.ts +1 -1
  71. package/src/__tests__/injector-config-validation-reset-notice.test.ts +1 -1
  72. package/src/__tests__/injector-pkb-v2-silenced.test.ts +1 -1
  73. package/src/__tests__/{platform.test.ts → layout.test.ts} +1 -1
  74. package/src/__tests__/list-all-apps.test.ts +1 -1
  75. package/src/__tests__/live-workspace-guard.test.ts +2 -2
  76. package/src/__tests__/llm-resolver-override-or-default.test.ts +5 -6
  77. package/src/__tests__/llm-resolver.test.ts +7 -7
  78. package/src/__tests__/llm-schema-fallback-profile.test.ts +9 -10
  79. package/src/__tests__/llm-usage-store.test.ts +0 -495
  80. package/src/__tests__/log-export-routes.test.ts +1 -1
  81. package/src/__tests__/mcp-config-secret-boundary.test.ts +12 -53
  82. package/src/__tests__/mcp-list-plugin-servers.test.ts +1 -1
  83. package/src/__tests__/memory-config-file-parity.test.ts +1 -1
  84. package/src/__tests__/memory-v2-static-injector.test.ts +1 -1
  85. package/src/__tests__/messages-read-boundary-guard.test.ts +0 -2
  86. package/src/__tests__/notification-guardian-path.test.ts +0 -7
  87. package/src/__tests__/onboarding-persona-write.test.ts +1 -1
  88. package/src/__tests__/openai-provider.test.ts +8 -8
  89. package/src/__tests__/path-policy.test.ts +1 -1
  90. package/src/__tests__/persona-resolver.test.ts +1 -1
  91. package/src/__tests__/plugin-app-serve-routes.test.ts +1 -1
  92. package/src/__tests__/plugin-effective-enabled-set.test.ts +1 -1
  93. package/src/__tests__/plugin-import-boundary-guard.test.ts +4 -6
  94. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +0 -3
  95. package/src/__tests__/provider-cloud-proxy-integration.test.ts +1 -5
  96. package/src/__tests__/provider-connections-backfill.test.ts +10 -10
  97. package/src/__tests__/prune-old-conversations-job.test.ts +6 -31
  98. package/src/__tests__/resolve-app.test.ts +1 -1
  99. package/src/__tests__/run-due-schedules.test.ts +1 -1
  100. package/src/__tests__/scaffold-managed-skill-tool.test.ts +0 -53
  101. package/src/__tests__/schedule-routes.test.ts +1 -1
  102. package/src/__tests__/schedule-store.test.ts +1 -1
  103. package/src/__tests__/secret-routes-cloud-proxy.test.ts +1 -1
  104. package/src/__tests__/skill-load-plugin-scope.test.ts +1 -1
  105. package/src/__tests__/surface-completion-compaction-boundary.test.ts +1 -1
  106. package/src/__tests__/tool-approval-handler.test.ts +1 -1
  107. package/src/__tests__/tool-audit.test.ts +5 -235
  108. package/src/__tests__/tool-executor-lifecycle-events.test.ts +54 -114
  109. package/src/__tests__/tools-get-route.test.ts +1 -1
  110. package/src/__tests__/turn-outcome-read.test.ts +1 -1
  111. package/src/__tests__/twilio-routes.test.ts +0 -1
  112. package/src/__tests__/usage-attribution.test.ts +0 -31
  113. package/src/__tests__/verification-control-plane-policy.test.ts +3 -10
  114. package/src/__tests__/visible-app-context.test.ts +1 -1
  115. package/src/__tests__/voice-ingress-preflight.test.ts +1 -1
  116. package/src/__tests__/workspace-git-service.test.ts +1 -1
  117. package/src/__tests__/workspace-greetings.test.ts +1 -1
  118. package/src/acp/__tests__/helpers/acp-config-stub.ts +1 -1
  119. package/src/activation/progress-store.ts +1 -1
  120. package/src/activation/turn-hooks.ts +1 -1
  121. package/src/agent/loop.ts +0 -51
  122. package/src/apps/app-store.ts +1 -1
  123. package/src/avatar/__tests__/avatar-store.test.ts +2 -172
  124. package/src/avatar/accent-backfill.ts +1 -1
  125. package/src/avatar/avatar-manifest.ts +1 -1
  126. package/src/avatar/avatar-store.ts +10 -69
  127. package/src/avatar/ensure-raster.ts +1 -1
  128. package/src/avatar/identity-avatar.ts +1 -1
  129. package/src/avatar/sync-avatar.ts +1 -1
  130. package/src/avatar/traits-png-sync.ts +1 -1
  131. package/src/bundler/compiler-tools.ts +1 -1
  132. package/src/bundler/package-resolver.ts +1 -1
  133. package/src/calls/__tests__/call-controller.test.ts +25 -27
  134. package/src/calls/active-call-lease.ts +1 -1
  135. package/src/calls/call-controller.ts +3 -3
  136. package/src/calls/call-domain.ts +4 -8
  137. package/src/calls/call-store.ts +2 -76
  138. package/src/calls/resolve-call-tts-provider.ts +3 -3
  139. package/src/calls/twilio-config.ts +3 -3
  140. package/src/calls/twilio-rest.ts +2 -2
  141. package/src/calls/voice-ingress-preflight.ts +2 -2
  142. package/src/cli/bundled-modules.ts +0 -2
  143. package/src/cli/commands/__tests__/apps.test.ts +1 -1
  144. package/src/cli/commands/__tests__/plugins.test.ts +9 -66
  145. package/src/cli/commands/__tests__/ps.test.ts +67 -0
  146. package/src/cli/commands/auth.help.ts +2 -2
  147. package/src/cli/commands/avatar.ts +1 -1
  148. package/src/cli/commands/changelog.ts +1 -1
  149. package/src/cli/commands/cloud/__tests__/subscription.test.ts +2 -2
  150. package/src/cli/commands/cloud/index.help.ts +1 -1
  151. package/src/cli/commands/cloud/index.ts +2 -2
  152. package/src/cli/commands/db/refresh.ts +1 -1
  153. package/src/cli/commands/db/repair-step-conversation-backfill.ts +1 -1
  154. package/src/cli/commands/db/repair.ts +1 -1
  155. package/src/cli/commands/db/status.ts +1 -1
  156. package/src/cli/commands/inference-profiles.ts +1 -12
  157. package/src/cli/commands/memory/__tests__/memory-v3.test.ts +1 -116
  158. package/src/cli/commands/memory/index.help.ts +1 -43
  159. package/src/cli/commands/memory/memory-v3.ts +0 -64
  160. package/src/cli/commands/plugins.ts +54 -205
  161. package/src/cli/commands/ps.ts +5 -2
  162. package/src/cli/commands/status.ts +1 -1
  163. package/src/cli/index.help.ts +0 -2
  164. package/src/cli/lib/__tests__/inspect-plugin.test.ts +36 -66
  165. package/src/cli/lib/__tests__/install-from-cloud.test.ts +1 -1
  166. package/src/cli/lib/__tests__/install-from-github.test.ts +41 -117
  167. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +2 -185
  168. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +36 -66
  169. package/src/cli/lib/__tests__/plugin-catalog-visibility.test.ts +4 -6
  170. package/src/cli/lib/__tests__/plugin-details.test.ts +113 -96
  171. package/src/cli/lib/__tests__/search-plugins.test.ts +9 -16
  172. package/src/cli/lib/__tests__/uninstall-plugin.test.ts +1 -1
  173. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +38 -15
  174. package/src/cli/lib/diff-plugin.ts +1 -1
  175. package/src/cli/lib/inspect-plugin.ts +13 -97
  176. package/src/cli/lib/install-from-cloud.ts +1 -1
  177. package/src/cli/lib/install-from-github.ts +75 -154
  178. package/src/cli/lib/install-plugin-dependencies.ts +1 -1
  179. package/src/cli/lib/list-installed-plugins.ts +1 -1
  180. package/src/cli/lib/open-browser.ts +1 -1
  181. package/src/cli/lib/plugin-catalog-cache.ts +8 -51
  182. package/src/cli/lib/plugin-catalog-resolve.ts +3 -22
  183. package/src/cli/lib/plugin-details.ts +5 -27
  184. package/src/cli/lib/plugin-marketplace.ts +18 -266
  185. package/src/cli/lib/search-plugins.ts +23 -43
  186. package/src/cli/lib/toggle-plugin.ts +1 -1
  187. package/src/cli/lib/uninstall-plugin.ts +1 -1
  188. package/src/cli/lib/upgrade-plugin.ts +3 -49
  189. package/src/cli/program.ts +1 -3
  190. package/src/cli.ts +1 -1
  191. package/src/cloud/client.ts +0 -6
  192. package/src/cloud/consent-cache.test.ts +22 -201
  193. package/src/cloud/consent-cache.ts +16 -111
  194. package/src/cloud/sync-identity.ts +1 -1
  195. package/src/config/__tests__/chat-settings.test.ts +1 -1
  196. package/src/config/__tests__/cloud-identity.test.ts +15 -2
  197. package/src/config/__tests__/default-plugin-skill-discovery.test.ts +1 -1
  198. package/src/config/__tests__/default-profile-catalog.test.ts +12 -51
  199. package/src/config/__tests__/deployment-context-defaults.test.ts +13 -13
  200. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +4 -4
  201. package/src/config/__tests__/loader-last-known-good.test.ts +9 -9
  202. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +7 -7
  203. package/src/config/__tests__/plugin-resident-skill-discovery.test.ts +1 -1
  204. package/src/config/__tests__/profile-materialization.test.ts +2 -4
  205. package/src/config/__tests__/sync-gated-profiles.test.ts +1 -106
  206. package/src/config/acp-agent-write.ts +1 -1
  207. package/src/config/bundled-skills/settings/tools/open-system-settings.test.ts +1 -1
  208. package/src/config/bundled-skills/settings/tools/open-system-settings.ts +1 -1
  209. package/src/config/call-site-defaults.ts +0 -6
  210. package/src/config/cloud-identity.ts +12 -5
  211. package/src/config/composer-preferences.ts +1 -1
  212. package/src/config/default-profile-catalog.ts +8 -75
  213. package/src/config/default-profile-names.ts +2 -25
  214. package/src/config/env-registry.ts +1 -14
  215. package/src/config/env.ts +8 -6
  216. package/src/config/llm-resolver.ts +1 -2
  217. package/src/config/loader.ts +13 -17
  218. package/src/config/profile-materialization.ts +1 -1
  219. package/src/config/schema.ts +1 -7
  220. package/src/config/schemas/call-site-catalog.ts +0 -7
  221. package/src/config/schemas/llm.ts +22 -27
  222. package/src/config/seed-inference-profiles.ts +16 -17
  223. package/src/config/skills.ts +2 -2
  224. package/src/config/sync-gated-profiles.ts +6 -24
  225. package/src/credential-health/credential-health-service.ts +10 -3
  226. package/src/daemon/approval-generators.ts +3 -3
  227. package/src/daemon/config-watcher.ts +2 -2
  228. package/src/daemon/conversation-agent-loop-handlers.ts +0 -18
  229. package/src/daemon/conversation-agent-loop.ts +6 -97
  230. package/src/daemon/conversation-process.ts +1 -1
  231. package/src/daemon/conversation-skill-tools.ts +4 -72
  232. package/src/daemon/conversation-store.ts +1 -1
  233. package/src/daemon/conversation-surface-state.ts +0 -33
  234. package/src/daemon/conversation-surfaces.ts +1 -86
  235. package/src/daemon/conversation-tool-setup.test.ts +1 -1
  236. package/src/daemon/conversation-tool-setup.ts +0 -23
  237. package/src/daemon/conversation.ts +3 -5
  238. package/src/daemon/daemon-control.ts +3 -3
  239. package/src/daemon/dictation-profile-store.ts +3 -3
  240. package/src/daemon/event-loop-watchdog.test.ts +2 -198
  241. package/src/daemon/event-loop-watchdog.ts +0 -185
  242. package/src/daemon/external-plugins-bootstrap.ts +1 -1
  243. package/src/daemon/first-greeting.ts +1 -1
  244. package/src/daemon/handlers/skills.ts +1 -1
  245. package/src/daemon/host-app-control-proxy.ts +1 -1
  246. package/src/daemon/host-cu-proxy.ts +2 -2
  247. package/src/daemon/identity-helpers.ts +1 -1
  248. package/src/daemon/lifecycle.ts +11 -15
  249. package/src/daemon/main.ts +1 -1
  250. package/src/daemon/now-scratchpad.ts +1 -1
  251. package/src/daemon/process-message.ts +4 -4
  252. package/src/daemon/profiler-run-store.ts +2 -2
  253. package/src/daemon/providers-setup.ts +2 -2
  254. package/src/daemon/shutdown-handlers.ts +0 -10
  255. package/src/daemon/sqlite-corruption-watchdog.test.ts +2 -142
  256. package/src/daemon/sqlite-corruption-watchdog.ts +17 -81
  257. package/src/daemon/tool-side-effects.ts +1 -1
  258. package/src/desktop/desktop-session-manager.ts +1 -1
  259. package/src/desktop/desktop-wallpaper-renderer.ts +1 -1
  260. package/src/heartbeat/heartbeat-service.ts +1 -1
  261. package/src/home/feed-writer.ts +1 -1
  262. package/src/home/home-greeting-cache.ts +1 -1
  263. package/src/home/relationship-state-writer.ts +2 -2
  264. package/src/hooks/__tests__/hook-live-reload.test.ts +1 -1
  265. package/src/hooks/hook-loader.ts +2 -2
  266. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  267. package/src/inbound/oauth-callback-url.ts +3 -3
  268. package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
  269. package/src/ipc/socket-path.ts +1 -1
  270. package/src/live-voice/__tests__/live-voice-archive.test.ts +1 -1
  271. package/src/live-voice/__tests__/live-voice-vad.test.ts +1 -1
  272. package/src/live-voice/live-voice-session.ts +3 -66
  273. package/src/mcp/__tests__/effective-config.test.ts +1 -1
  274. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +2 -2
  275. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +2 -3
  276. package/src/mcp/__tests__/reload-signal-emission.test.ts +1 -1
  277. package/src/mcp/__tests__/reload-signal.test.ts +1 -1
  278. package/src/mcp/__tests__/workspace-mcp-config.test.ts +19 -21
  279. package/src/mcp/reload-signal.ts +1 -1
  280. package/src/mcp/workspace-mcp-config.ts +1 -23
  281. package/src/messaging/draft-store.ts +1 -1
  282. package/src/monitoring/__tests__/active-conversations.test.ts +1 -1
  283. package/src/monitoring/__tests__/page-cache.test.ts +1 -1
  284. package/src/monitoring/__tests__/stall-capture.test.ts +1 -1
  285. package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +1 -1
  286. package/src/monitoring/active-conversations.ts +1 -1
  287. package/src/monitoring/control.ts +1 -1
  288. package/src/monitoring/daemon-boot-time.ts +1 -1
  289. package/src/monitoring/daemon-heartbeat.ts +1 -1
  290. package/src/monitoring/page-cache.ts +1 -1
  291. package/src/monitoring/plugin-auto-update.ts +1 -7
  292. package/src/monitoring/plugin-source-watch.ts +1 -1
  293. package/src/monitoring/recovery/db.ts +1 -1
  294. package/src/monitoring/recovery/inflight-content.ts +1 -1
  295. package/src/monitoring/resource-sampler.ts +3 -14
  296. package/src/monitoring/stall-capture.ts +1 -1
  297. package/src/monitoring/worker.ts +9 -76
  298. package/src/monitoring/workspace-git-heartbeat.ts +1 -1
  299. package/src/oauth/connect-orchestrator.ts +4 -4
  300. package/src/permissions/checker.ts +1 -1
  301. package/src/permissions/workspace-policy.ts +1 -1
  302. package/src/persistence/__tests__/main-db-readonly-probe.ts +27 -52
  303. package/src/persistence/__tests__/message-content-file.test.ts +1 -1
  304. package/src/persistence/__tests__/slow-sync-log.test.ts +0 -2
  305. package/src/persistence/attachments-store.ts +1 -1
  306. package/src/persistence/conversation-crud.ts +1 -38
  307. package/src/persistence/conversation-directories.ts +1 -1
  308. package/src/persistence/conversation-types.ts +0 -8
  309. package/src/persistence/db-async-query.ts +1 -1
  310. package/src/persistence/db-connection.ts +11 -1
  311. package/src/persistence/db-init.ts +1 -1
  312. package/src/persistence/db-maintenance.ts +1 -1
  313. package/src/persistence/embeddings/__tests__/embedding-local-lifecycle.test.ts +1 -1
  314. package/src/persistence/embeddings/embedding-local.ts +4 -4
  315. package/src/persistence/embeddings/embedding-runtime-manager.ts +1 -1
  316. package/src/persistence/embeddings/qdrant-client.ts +1 -1
  317. package/src/persistence/embeddings/qdrant-manager.ts +1 -1
  318. package/src/persistence/job-handlers/__tests__/message-lexical-backfill.test.ts +1 -1
  319. package/src/persistence/job-handlers/__tests__/message-lexical-enqueue.test.ts +1 -1
  320. package/src/persistence/job-handlers/cleanup.ts +8 -17
  321. package/src/persistence/llm-usage-store.ts +2 -229
  322. package/src/persistence/message-content-file.ts +1 -1
  323. package/src/persistence/migrations/209-strip-thinking-from-consolidated.ts +1 -1
  324. package/src/persistence/migrations/222-strip-placeholder-sentinels-from-messages.ts +1 -1
  325. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  326. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  327. package/src/persistence/migrations/329-move-onboarding-events-to-telemetry-db.test.ts +13 -0
  328. package/src/persistence/migrations/330-move-auth-fallback-events-to-telemetry-db.test.ts +13 -0
  329. package/src/persistence/migrations/331-move-lifecycle-events-to-telemetry-db.test.ts +13 -0
  330. package/src/persistence/migrations/332-move-skill-loaded-events-to-telemetry-db.test.ts +13 -0
  331. package/src/persistence/migrations/333-create-telemetry-events-table.test.ts +7 -4
  332. package/src/persistence/migrations/334-backfill-telemetry-events-outbox.test.ts +13 -0
  333. package/src/persistence/migrations/387-drop-telemetry-tables.ts +51 -0
  334. package/src/persistence/migrations/__tests__/327-create-flush-checkpoints.test.ts +9 -1
  335. package/src/persistence/migrations/__tests__/387-drop-telemetry-tables.test.ts +79 -0
  336. package/src/persistence/migrations/helpers/relocation.ts +1 -1
  337. package/src/persistence/migrations/run-migrations.ts +1 -1
  338. package/src/persistence/migrations/validate-migration-state.ts +1 -1
  339. package/src/persistence/raw-query.ts +1 -29
  340. package/src/persistence/slow-sync-log.ts +0 -23
  341. package/src/persistence/steps.ts +2 -0
  342. package/src/{telemetry → persistence}/tool-audit.ts +6 -121
  343. package/src/plugin-api/index.ts +1 -1
  344. package/src/plugin-api/plugin-name-env.ts +1 -1
  345. package/src/plugins/__tests__/installed-plugin-dirs.test.ts +1 -1
  346. package/src/plugins/collect-source-versions.ts +1 -1
  347. package/src/plugins/defaults/channel/package.json +1 -1
  348. package/src/plugins/defaults/cloud-hosted/package.json +1 -1
  349. package/src/plugins/defaults/compaction/package.json +1 -1
  350. package/src/plugins/defaults/documents/package.json +1 -1
  351. package/src/plugins/defaults/empty-response/package.json +1 -1
  352. package/src/plugins/defaults/exploration-drift/package.json +1 -1
  353. package/src/plugins/defaults/image-fallback/package.json +1 -1
  354. package/src/plugins/defaults/image-recovery/package.json +1 -1
  355. package/src/plugins/defaults/max-tokens-continue/package.json +1 -1
  356. package/src/plugins/defaults/memory/__tests__/db-async-query.test.ts +1 -1
  357. package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +1 -1
  358. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +0 -82
  359. package/src/plugins/defaults/memory/__tests__/memory-retrospective-skill-card.test.ts +0 -41
  360. package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +0 -2
  361. package/src/plugins/defaults/memory/memory-retrospective-job.ts +3 -52
  362. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +0 -18
  363. package/src/plugins/defaults/memory/package.json +1 -1
  364. package/src/plugins/defaults/memory/paths.ts +4 -4
  365. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  366. package/src/plugins/defaults/memory/src/memory-v2-routes.ts +5 -5
  367. package/src/plugins/defaults/memory/src/memory-v3-routes.ts +0 -207
  368. package/src/plugins/defaults/memory/src/memory-worker-routes.ts +1 -1
  369. package/src/plugins/defaults/memory/startup.ts +1 -22
  370. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +2 -253
  371. package/src/plugins/defaults/memory/v3/orchestrate.ts +5 -129
  372. package/src/plugins/defaults/memory/worker-control.ts +1 -1
  373. package/src/plugins/defaults/memory/worker.ts +2 -2
  374. package/src/plugins/defaults/session/package.json +1 -1
  375. package/src/plugins/defaults/surface-completion-nudge/package.json +1 -1
  376. package/src/plugins/defaults/task-progress/package.json +1 -1
  377. package/src/plugins/defaults/task-progress-nudge/package.json +1 -1
  378. package/src/plugins/defaults/title-generate/package.json +1 -1
  379. package/src/plugins/defaults/tool-error/package.json +1 -1
  380. package/src/plugins/defaults/tool-result-truncate/package.json +1 -1
  381. package/src/plugins/defaults/turn-context/package.json +1 -1
  382. package/src/plugins/defaults/workspace/injectors.ts +1 -1
  383. package/src/plugins/defaults/workspace/package.json +1 -1
  384. package/src/plugins/disabled-state.ts +1 -1
  385. package/src/plugins/ensure-plugin-api-shim.ts +1 -1
  386. package/src/plugins/ensure-shared-dep-links.ts +1 -1
  387. package/src/plugins/installed-plugin-dirs.ts +1 -1
  388. package/src/plugins/mcp-servers.ts +7 -9
  389. package/src/plugins/mtime-cache.ts +2 -2
  390. package/src/plugins/source-versions.ts +1 -1
  391. package/src/prompts/bootstrap-cleanup.ts +1 -1
  392. package/src/prompts/persona-resolver.ts +1 -1
  393. package/src/prompts/sections.ts +2 -2
  394. package/src/prompts/system-prompt.ts +10 -42
  395. package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +0 -37
  396. package/src/providers/__tests__/cadet-connection-routing.test.ts +2 -2
  397. package/src/providers/cadet/client.ts +1 -1
  398. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +1 -1
  399. package/src/providers/inference/adapter-factory.ts +1 -1
  400. package/src/providers/inference/backfill.ts +3 -10
  401. package/src/providers/inference/profile-probe.ts +1 -1
  402. package/src/providers/retry.ts +0 -2
  403. package/src/providers/types.ts +0 -7
  404. package/src/providers/usage-tracking.ts +1 -1
  405. package/src/routes/__tests__/route-host.test.ts +1 -1
  406. package/src/routes/control.ts +1 -1
  407. package/src/routes/route-host-client.ts +1 -1
  408. package/src/routes/worker.ts +2 -2
  409. package/src/runtime/agent-wake.ts +1 -1
  410. package/src/runtime/assistant-stream-state.ts +1 -1
  411. package/src/runtime/auth/token-service.ts +1 -1
  412. package/src/runtime/background-job-runner.ts +1 -1
  413. package/src/runtime/middleware/twilio-validation.ts +2 -2
  414. package/src/runtime/routes/__tests__/app-pin-routes.test.ts +1 -1
  415. package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +1 -1
  416. package/src/runtime/routes/__tests__/avatar-state-routes.test.ts +3 -33
  417. package/src/runtime/routes/__tests__/cloud-credits-routes.test.ts +5 -4
  418. package/src/runtime/routes/__tests__/cloud-invoice-routes.test.ts +4 -3
  419. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +59 -287
  420. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +1 -1
  421. package/src/runtime/routes/__tests__/deprecated-route-context.test.ts +15 -62
  422. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +105 -12
  423. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  424. package/src/runtime/routes/__tests__/monitoring-routes.test.ts +1 -1
  425. package/src/runtime/routes/__tests__/plugins-routes.test.ts +47 -211
  426. package/src/runtime/routes/__tests__/route-host-worker-routes.test.ts +1 -1
  427. package/src/runtime/routes/__tests__/schedule-routes-disarm-reason.test.ts +1 -1
  428. package/src/runtime/routes/__tests__/schedule-worker-routes.test.ts +1 -1
  429. package/src/runtime/routes/__tests__/user-route-dispatcher-host.test.ts +1 -1
  430. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +1 -1
  431. package/src/runtime/routes/__tests__/user-routes-cli.test.ts +1 -1
  432. package/src/runtime/routes/__tests__/user-routes-notices.test.ts +1 -1
  433. package/src/runtime/routes/__tests__/user-routes-request.test.ts +1 -1
  434. package/src/runtime/routes/app-management-routes.ts +1 -1
  435. package/src/runtime/routes/attachment-routes.ts +1 -1
  436. package/src/runtime/routes/audit-routes.ts +1 -1
  437. package/src/runtime/routes/avatar-routes.ts +3 -10
  438. package/src/runtime/routes/cloud-routes.ts +3 -3
  439. package/src/runtime/routes/content-source-routes.ts +1 -1
  440. package/src/runtime/routes/conversation-query-routes.ts +60 -621
  441. package/src/runtime/routes/conversation-routes.ts +1 -38
  442. package/src/runtime/routes/debug-routes.ts +1 -1
  443. package/src/runtime/routes/deprecated-route-context.ts +5 -61
  444. package/src/runtime/routes/heartbeat-routes.ts +1 -1
  445. package/src/runtime/routes/identity-routes.ts +1 -1
  446. package/src/runtime/routes/index.ts +0 -6
  447. package/src/runtime/routes/inference-profile-session-handler.ts +3 -3
  448. package/src/runtime/routes/inference-profiles-routes.ts +48 -21
  449. package/src/runtime/routes/inference-provider-connection-routes.ts +0 -1
  450. package/src/runtime/routes/llm-call-sites-routes.ts +3 -3
  451. package/src/runtime/routes/log-export/__tests__/installed-inventory.test.ts +1 -1
  452. package/src/runtime/routes/log-export/__tests__/workspace-allowlist-error-contract.test.ts +1 -1
  453. package/src/runtime/routes/log-export/__tests__/workspace-allowlist.test.ts +1 -1
  454. package/src/runtime/routes/log-export/workspace-allowlist.ts +1 -1
  455. package/src/runtime/routes/log-export-routes.ts +17 -15
  456. package/src/runtime/routes/migration-rollback-routes.ts +1 -1
  457. package/src/runtime/routes/migration-routes.ts +2 -3
  458. package/src/runtime/routes/monitoring-routes.ts +2 -2
  459. package/src/runtime/routes/oauth-providers.ts +5 -5
  460. package/src/runtime/routes/plugins-routes.ts +38 -163
  461. package/src/runtime/routes/profiler-routes.ts +1 -1
  462. package/src/runtime/routes/route-host-worker-routes.ts +1 -1
  463. package/src/runtime/routes/sanity-routes.ts +1 -1
  464. package/src/runtime/routes/schedule-routes.ts +1 -1
  465. package/src/runtime/routes/schedule-worker-routes.ts +1 -1
  466. package/src/runtime/routes/settings-routes.ts +1 -1
  467. package/src/runtime/routes/sounds-config-routes.ts +1 -1
  468. package/src/runtime/routes/surface-conversation-resolver.ts +1 -7
  469. package/src/runtime/routes/user-route-dispatcher.ts +1 -3
  470. package/src/runtime/routes/user-route-import.ts +1 -1
  471. package/src/runtime/routes/user-route-resolution.ts +1 -1
  472. package/src/runtime/routes/user-routes-cli.ts +1 -1
  473. package/src/runtime/routes/workspace-commit-routes.ts +1 -1
  474. package/src/runtime/routes/workspace-greetings.ts +1 -1
  475. package/src/runtime/routes/workspace-routes.ts +1 -1
  476. package/src/runtime/routes/workspace-utils.ts +1 -1
  477. package/src/runtime/sync/resource-sync-events.ts +1 -1
  478. package/src/schedule/__tests__/plugin-schedule-declarations.test.ts +1 -1
  479. package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1 -1
  480. package/src/schedule/plugin-schedule-availability.ts +1 -1
  481. package/src/schedule/plugin-schedule-declarations.ts +1 -1
  482. package/src/schedule/run-script.ts +1 -1
  483. package/src/schedule/scheduler.ts +1 -11
  484. package/src/schedule/worker-control.ts +1 -1
  485. package/src/schedule/worker.ts +3 -3
  486. package/src/security/oauth2.ts +2 -2
  487. package/src/security/secret-allowlist.ts +1 -1
  488. package/src/signals/cancel.ts +1 -1
  489. package/src/signals/conversation-undo.ts +1 -1
  490. package/src/signals/emit-event.ts +1 -1
  491. package/src/signals/event-stream.ts +1 -1
  492. package/src/signals/user-message.ts +1 -1
  493. package/src/skills/catalog-install.ts +2 -1
  494. package/src/skills/clawhub.ts +1 -1
  495. package/src/skills/cloud-store.ts +1 -1
  496. package/src/skills/path-classifier.ts +1 -1
  497. package/src/skills/skill-history.ts +1 -1
  498. package/src/skills/skillssh-registry.ts +1 -1
  499. package/src/skills/uninstall.ts +1 -1
  500. package/src/skills/workspace-skill-md-signature.ts +1 -1
  501. package/src/subagent/manager.ts +1 -1
  502. package/src/theme/workspace-theme.ts +1 -1
  503. package/src/tools/browser/auth-cache.ts +1 -1
  504. package/src/tools/browser/browser-manager.ts +1 -1
  505. package/src/tools/browser/runtime-check.ts +1 -1
  506. package/src/tools/executor.ts +4 -4
  507. package/src/tools/filesystem/write.ts +1 -1
  508. package/src/tools/permission-checker.ts +2 -51
  509. package/src/tools/run-standalone.ts +1 -1
  510. package/src/tools/skills/format-input-schema.ts +1 -1
  511. package/src/tools/skills/load.ts +1 -1
  512. package/src/tools/skills/scaffold-cloud.ts +0 -32
  513. package/src/tools/terminal/safe-env.ts +1 -2
  514. package/src/tools/terminal/sanitized-bash.ts +1 -1
  515. package/src/tools/terminal/shell.ts +1 -1
  516. package/src/tools/tool-approval-handler.ts +4 -1
  517. package/src/tools/workflows/manage-workflows.ts +2 -2
  518. package/src/tools/workflows/run-workflow.test.ts +1 -1
  519. package/src/tools/workspace-tools/loader.ts +1 -1
  520. package/src/tts/synthesis-stream.ts +2 -2
  521. package/src/usage/attribution.ts +1 -11
  522. package/src/util/browser.ts +1 -1
  523. package/src/util/bun-runtime.ts +2 -1
  524. package/src/util/device-id.ts +1 -1
  525. package/src/util/disk-usage.ts +4 -139
  526. package/src/util/layout.ts +3 -3
  527. package/src/util/logger.ts +1 -1
  528. package/src/util/logs-db-path.ts +1 -1
  529. package/src/util/memory-db-path.ts +1 -1
  530. package/src/util/{platform.ts → os.ts} +5 -30
  531. package/src/util/process-tree.ts +19 -0
  532. package/src/util/sqlite3-runtime.ts +1 -1
  533. package/src/util/telemetry-db-path.ts +1 -1
  534. package/src/watcher/__tests__/engine.test.ts +0 -23
  535. package/src/watcher/engine.ts +0 -7
  536. package/src/windows-compiled-cli.ts +0 -4
  537. package/src/windows-compiled-worker-entry.ts +0 -6
  538. package/src/workflows/leaf-runner.test.ts +1 -1
  539. package/src/workflows/leaf-runner.ts +1 -1
  540. package/src/workflows/library.ts +1 -1
  541. package/src/workspace/adaptive-thinking-repair.ts +5 -24
  542. package/src/workspace/byok-default-profile-ensure.ts +24 -26
  543. package/src/workspace/custom-profile-ensure.ts +2 -2
  544. package/src/workspace/git-service.ts +1 -1
  545. package/src/workspace/hatched-date.ts +1 -1
  546. package/src/workspace/migrations/038-unify-llm-callsite-configs.ts +2 -2
  547. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  548. package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +1 -1
  549. package/src/workspace/migrations/077-seed-memory-router-callsite.ts +1 -1
  550. package/src/workspace/migrations/registry.ts +0 -4
  551. package/src/workspace/turn-commit.ts +1 -1
  552. package/docs/activation-funnel-telemetry.md +0 -324
  553. package/scripts/bundled-plugin-packages.ts +0 -154
  554. package/scripts/generate-bundled-plugin-packages.ts +0 -29
  555. package/src/__tests__/activation-early-marking.test.ts +0 -114
  556. package/src/__tests__/auth-fallback-events-store.test.ts +0 -99
  557. package/src/__tests__/config-get-vision-flag.test.ts +0 -139
  558. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +0 -400
  559. package/src/__tests__/internal-telemetry-routes.test.ts +0 -213
  560. package/src/__tests__/telemetry-routes.test.ts +0 -182
  561. package/src/__tests__/turn-events-store.test.ts +0 -376
  562. package/src/__tests__/ui-channel-variants.test.ts +0 -53
  563. package/src/avatar/__tests__/avatar-changed-telemetry.test.ts +0 -217
  564. package/src/avatar/avatar-changed-telemetry.ts +0 -128
  565. package/src/calls/__tests__/call-funnel-telemetry.test.ts +0 -204
  566. package/src/cli/commands/telemetry.help.ts +0 -27
  567. package/src/cli/commands/telemetry.ts +0 -83
  568. package/src/cli/lib/__tests__/local-plugin-upgrade.test.ts +0 -251
  569. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +0 -113
  570. package/src/cli/lib/__tests__/plugin-marketplace.test.ts +0 -384
  571. package/src/cli/lib/__tests__/plugin-pin-history.test.ts +0 -164
  572. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +0 -228
  573. package/src/cli/lib/bundled-marketplace.json +0 -1575
  574. package/src/cli/lib/bundled-plugin-packages.json +0 -827
  575. package/src/cli/lib/bundled-plugin-packages.ts +0 -87
  576. package/src/cli/lib/plugin-catalog-local.ts +0 -94
  577. package/src/cli/lib/plugin-pin-history.ts +0 -276
  578. package/src/cloud/feature-gate.ts +0 -8
  579. package/src/config/__tests__/cloud-rehydration.test.ts +0 -180
  580. package/src/config/cloud-rehydration.ts +0 -35
  581. package/src/daemon/__tests__/auto-profile-router.test.ts +0 -380
  582. package/src/daemon/auto-profile-router.ts +0 -428
  583. package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +0 -391
  584. package/src/monitoring/__tests__/db-integrity-sample.test.ts +0 -113
  585. package/src/monitoring/__tests__/oom-kill-reporter.test.ts +0 -374
  586. package/src/monitoring/db-integrity-check.ts +0 -163
  587. package/src/monitoring/db-integrity-sample.ts +0 -176
  588. package/src/monitoring/oom-kill-reporter.ts +0 -469
  589. package/src/onboarding/__tests__/onboarding-events-store.test.ts +0 -158
  590. package/src/onboarding/onboarding-events-store.ts +0 -296
  591. package/src/persistence/__tests__/raw-query-telemetry.test.ts +0 -76
  592. package/src/persistence/lifecycle-events-store.test.ts +0 -134
  593. package/src/persistence/lifecycle-events-store.ts +0 -110
  594. package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +0 -76
  595. package/src/plugins/defaults/memory/activation-session-store.ts +0 -50
  596. package/src/plugins/defaults/memory/src/__tests__/memory-v3-gate-stats.test.ts +0 -281
  597. package/src/runtime/routes/auto-profile-routes.ts +0 -83
  598. package/src/runtime/routes/internal-telemetry-routes.ts +0 -142
  599. package/src/runtime/routes/telemetry-routes.ts +0 -274
  600. package/src/security/auth-fallback-events-store.ts +0 -57
  601. package/src/telemetry/__tests__/activation-funnel.test.ts +0 -95
  602. package/src/telemetry/__tests__/config-setting-events-store.test.ts +0 -63
  603. package/src/telemetry/__tests__/config-setting-snapshot.test.ts +0 -143
  604. package/src/telemetry/__tests__/flush-checkpoints.test.ts +0 -56
  605. package/src/telemetry/__tests__/live-voice-funnel.test.ts +0 -174
  606. package/src/telemetry/__tests__/outbox-test-harness.ts +0 -85
  607. package/src/telemetry/__tests__/phone-call-funnel.test.ts +0 -72
  608. package/src/telemetry/__tests__/telemetry-event-fixtures.ts +0 -282
  609. package/src/telemetry/__tests__/watchdog-events-store.test.ts +0 -71
  610. package/src/telemetry/activation-funnel.ts +0 -172
  611. package/src/telemetry/config-setting-events-store.ts +0 -40
  612. package/src/telemetry/config-setting-snapshot.ts +0 -170
  613. package/src/telemetry/flush-checkpoints.ts +0 -70
  614. package/src/telemetry/live-voice-funnel.ts +0 -185
  615. package/src/telemetry/memory-corpus-size.test.ts +0 -120
  616. package/src/telemetry/memory-corpus-size.ts +0 -184
  617. package/src/telemetry/memory-tier-reporter.test.ts +0 -195
  618. package/src/telemetry/memory-tier-reporter.ts +0 -130
  619. package/src/telemetry/phone-call-funnel.ts +0 -144
  620. package/src/telemetry/skill-loaded-events-store.test.ts +0 -93
  621. package/src/telemetry/skill-loaded-events-store.ts +0 -39
  622. package/src/telemetry/telemetry-event-sources.test.ts +0 -223
  623. package/src/telemetry/telemetry-event-sources.ts +0 -597
  624. package/src/telemetry/telemetry-events-outbox.test.ts +0 -375
  625. package/src/telemetry/telemetry-events-outbox.ts +0 -237
  626. package/src/telemetry/telemetry-main-db.ts +0 -48
  627. package/src/telemetry/telemetry-wire-source.json +0 -4
  628. package/src/telemetry/telemetry-wire-validation.test.ts +0 -157
  629. package/src/telemetry/telemetry-wire-validation.ts +0 -162
  630. package/src/telemetry/telemetry-wire.generated.ts +0 -483
  631. package/src/telemetry/tool-executed-events-store.test.ts +0 -210
  632. package/src/telemetry/tool-executed-events-store.ts +0 -102
  633. package/src/telemetry/trace-collection-policy.test.ts +0 -28
  634. package/src/telemetry/trace-collection-policy.ts +0 -30
  635. package/src/telemetry/turn-events-store.ts +0 -216
  636. package/src/telemetry/turn-trace-store.test.ts +0 -884
  637. package/src/telemetry/turn-trace-store.ts +0 -399
  638. package/src/telemetry/types.test.ts +0 -38
  639. package/src/telemetry/types.ts +0 -780
  640. package/src/telemetry/usage-telemetry-reporter.test.ts +0 -3445
  641. package/src/telemetry/usage-telemetry-reporter.ts +0 -566
  642. package/src/telemetry/watchdog-direct-emit.test.ts +0 -112
  643. package/src/telemetry/watchdog-direct-emit.ts +0 -104
  644. package/src/telemetry/watchdog-events-store.ts +0 -31
  645. package/src/tools/ui-surface/channel-variants.ts +0 -52
  646. package/src/watcher/__tests__/telemetry.test.ts +0 -178
  647. package/src/watcher/telemetry.ts +0 -93
  648. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +0 -165
  649. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +0 -151
  650. /package/src/{telemetry → persistence}/tool-usage-store.ts +0 -0
  651. /package/src/{telemetry → persistence}/turn-outcome.ts +0 -0
@@ -1,59 +1,33 @@
1
1
  /**
2
- * Read the curated plugin marketplace manifest from the canonical repo.
2
+ * Shared plugin source schemas and types for catalog-backed installs.
3
3
  *
4
- * The manifest at `plugins/marketplace.json` whitelists reviewed plugins so
5
- * they appear in `assistant plugins search` / the web catalog and become
6
- * installable by name. Its shape extends the Claude Code marketplace manifest
7
- * (https://code.claude.com/docs/en/plugin-marketplaces) with packages embedded
8
- * in the assistant distribution.
4
+ * The old local marketplace manifest (`plugins/marketplace.json`) and its
5
+ * GitHub fetcher are gone: the installable catalog is Cadet Cloud's
6
+ * (`GET /v1/plugins`, see {@link ./plugin-catalog-cloud}). What remains here
7
+ * is the contract every catalog source must satisfy when a name resolves to
8
+ * install coordinates.
9
9
  *
10
- * The manifest is both fetched from the repo at a git ref and bundled into the
11
- * assistant build. GitHub entries may grow without a new release. Local entries
12
- * can only resolve when their exact path and version are embedded in that
13
- * release.
14
- * Every external source pins an explicit `ref` that MUST be a full commit SHA:
15
- * the fetched code is locked to an immutable revision. Tags and branches are
16
- * rejected because they are mutable — an upstream owner could retag/repoint
10
+ * Every external source pins an explicit `ref` that MUST be a full commit
11
+ * SHA: the fetched code is locked to an immutable revision. Tags and branches
12
+ * are rejected because they are mutable — an upstream owner could retag/repoint
17
13
  * them to attacker code that the daemon would then `import()` (the install
18
- * tree is dynamically loaded). A SHA cannot be repointed, so the reviewed
19
- * manifest fully determines what gets executed.
20
- *
21
- * Designed for direct programmatic use with an injected `fetch`, mirroring
22
- * {@link ./search-plugins} and {@link ./install-from-github}.
14
+ * tree is dynamically loaded). A SHA cannot be repointed, so a reviewed
15
+ * catalog fully determines what gets executed.
23
16
  */
24
17
 
25
18
  import { z } from "zod";
26
19
 
27
- import type { FetchLike } from "./fetch-like.js";
28
- import { USER_AGENT } from "./user-agent.js";
29
-
30
- /** Canonical location of the marketplace manifest. */
31
- const MARKETPLACE_SOURCE_OWNER = "vargasjr-dev";
32
- const MARKETPLACE_SOURCE_REPO = "mycadet";
33
- const MARKETPLACE_FILE_PATH = "plugins/marketplace.json";
34
-
35
- /**
36
- * Canonical GitHub coordinates of the marketplace manifest, exported so
37
- * sibling readers (e.g. {@link ./plugin-pin-history}) resolve the same
38
- * `owner/repo:path` rather than re-declaring it.
39
- */
40
- export const MARKETPLACE_MANIFEST_LOCATION = {
41
- owner: MARKETPLACE_SOURCE_OWNER,
42
- repo: MARKETPLACE_SOURCE_REPO,
43
- path: MARKETPLACE_FILE_PATH,
44
- } as const;
45
-
46
20
  // ---------------------------------------------------------------------------
47
- // Manifest schema (subset of the Claude Code marketplace schema)
21
+ // Source schemas (subset of the Claude Code marketplace schema)
48
22
  // ---------------------------------------------------------------------------
49
23
 
50
24
  /** `owner/repo`, kebab/underscore/dot segments — matches GitHub's slug rules. */
51
25
  const REPO_SLUG_RE = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/;
52
26
  /** Install name: a single kebab-case path segment (same rule as the CLI). */
53
- const PLUGIN_NAME_RE = /^[a-z0-9][a-z0-9_-]*$/;
27
+ export const PLUGIN_NAME_RE = /^[a-z0-9][a-z0-9_-]*$/;
54
28
  /**
55
29
  * Full Git commit SHA — 40 hex chars (SHA-1) or 64 (SHA-256). External
56
- * marketplace refs must be a complete object name so the install is pinned to
30
+ * catalog refs must be a complete object name so the install is pinned to
57
31
  * an immutable revision; abbreviated SHAs, tags, and branches are all mutable
58
32
  * or ambiguous and are rejected.
59
33
  */
@@ -78,7 +52,7 @@ export const githubSourceSchema = z.object({
78
52
  /**
79
53
  * Immutable revision to fetch the plugin from. Must be a full commit SHA:
80
54
  * tags and branches are mutable, so allowing them would let an upstream
81
- * owner retarget a curated entry at code the daemon later `import()`s (RCE).
55
+ * owner retarget a curated entry at code the daemon later `import()` (RCE).
82
56
  * A full SHA pins the install to exactly the reviewed bytes.
83
57
  */
84
58
  ref: z
@@ -89,32 +63,7 @@ export const githubSourceSchema = z.object({
89
63
  ),
90
64
  });
91
65
 
92
- /**
93
- * A plugin package shipped inside the assistant distribution. The path is a
94
- * key into the generated bundled-package map, never a path resolved from the
95
- * current working directory.
96
- */
97
- export const localSourceSchema = z.object({
98
- source: z.literal("local"),
99
- path: z
100
- .string()
101
- .regex(/^plugins\/[A-Za-z0-9_.-]+(?:\/[A-Za-z0-9_.-]+)+$/)
102
- .refine(
103
- (path) =>
104
- !path
105
- .split(/[/\\]/)
106
- .some((segment) => segment === "." || segment === ".."),
107
- "path must be a clean bundled-package path",
108
- ),
109
- version: z.string().min(1),
110
- repo: z.never().optional(),
111
- ref: z.never().optional(),
112
- });
113
-
114
- export const marketplaceSourceSchema = z.discriminatedUnion("source", [
115
- githubSourceSchema,
116
- localSourceSchema,
117
- ]);
66
+ export const marketplaceSourceSchema = githubSourceSchema;
118
67
 
119
68
  export const mcpIntegrationSchema = z.object({
120
69
  kind: z.literal("mcp"),
@@ -140,7 +89,7 @@ export const mcpIntegrationSchema = z.object({
140
89
  oauthProvider: z.string().regex(PLUGIN_NAME_RE).optional(),
141
90
  });
142
91
 
143
- const marketplaceEntrySchema = z.object({
92
+ export const marketplaceEntrySchema = z.object({
144
93
  /** Install name. `assistant plugins install <name>` resolves to this entry. */
145
94
  name: z.string().regex(PLUGIN_NAME_RE, "expected a kebab-case install name"),
146
95
  source: marketplaceSourceSchema,
@@ -165,34 +114,6 @@ const marketplaceEntrySchema = z.object({
165
114
  integration: mcpIntegrationSchema.optional(),
166
115
  });
167
116
 
168
- const marketplaceManifestBaseSchema = z.object({
169
- name: z.string(),
170
- owner: z
171
- .object({
172
- name: z.string(),
173
- url: z.string().optional(),
174
- email: z.string().optional(),
175
- })
176
- .optional(),
177
- });
178
-
179
- export const marketplaceManifestSchema = marketplaceManifestBaseSchema.extend({
180
- plugins: z.array(marketplaceEntrySchema),
181
- });
182
-
183
- const fetchedMarketplaceManifestSchema = marketplaceManifestBaseSchema.extend({
184
- plugins: z.array(z.unknown()),
185
- });
186
-
187
- const marketplaceSourceDiscriminatorSchema = z.object({
188
- source: z.object({ source: z.unknown() }),
189
- });
190
-
191
- function readSourceDiscriminator(entry: unknown): unknown {
192
- const parsed = marketplaceSourceDiscriminatorSchema.safeParse(entry);
193
- return parsed.success ? parsed.data.source.source : null;
194
- }
195
-
196
117
  /** A single reviewed plugin entry. */
197
118
  export type MarketplaceEntry = z.infer<typeof marketplaceEntrySchema>;
198
119
 
@@ -207,173 +128,4 @@ export interface ResolvedGitHubPluginSource {
207
128
  readonly ref: string;
208
129
  }
209
130
 
210
- /** Concrete bundled-package coordinates an entry resolves to for install. */
211
- export interface ResolvedLocalPluginSource {
212
- readonly kind: "local";
213
- readonly path: string;
214
- readonly version: string;
215
- }
216
-
217
- export type ResolvedPluginSource =
218
- | ResolvedGitHubPluginSource
219
- | ResolvedLocalPluginSource;
220
-
221
- /** Options controlling which marketplace revision to read. */
222
- export interface FetchMarketplaceOptions {
223
- /** Ref of the canonical repo to read the manifest from. */
224
- readonly ref: string;
225
- }
226
-
227
- /** Dependencies injected by the caller. */
228
- export interface FetchMarketplaceDeps {
229
- /** HTTP client. Production callers pass `globalThis.fetch.bind(globalThis)`. */
230
- readonly fetch: FetchLike;
231
- }
232
-
233
- /**
234
- * The manifest could not be read or did not validate. Distinct from "no
235
- * manifest at this ref" (a missing file is a normal, empty result) — this
236
- * signals an upstream/parse problem the caller must surface.
237
- *
238
- * `transient` distinguishes a retryable upstream hiccup (GitHub rate-limited
239
- * us or returned a 5xx) from a hard failure (a malformed or invalid manifest).
240
- * The catalog is the source of truth for installable plugins, so a transient
241
- * fetch failure should map to a retryable 503 and serve a stale cache, while a
242
- * hard failure surfaces as a real error.
243
- */
244
- export class MarketplaceFetchError extends Error {
245
- /** Whether the failure is a retryable upstream hiccup vs a hard error. */
246
- readonly transient: boolean;
247
- /** Upstream HTTP status, when the failure originated from a response. */
248
- readonly status?: number;
249
- constructor(
250
- message: string,
251
- opts?: { transient?: boolean; status?: number },
252
- ) {
253
- super(message);
254
- this.name = "MarketplaceFetchError";
255
- this.transient = opts?.transient ?? false;
256
- if (opts?.status !== undefined) {
257
- this.status = opts.status;
258
- }
259
- }
260
- }
261
-
262
- /**
263
- * Classify an upstream GitHub status as transient (worth retrying) vs hard.
264
- * A 429 or 5xx is always transient. A 403 is GitHub's unauthenticated
265
- * rate-limit signal only when the remaining-quota header is exhausted — a 403
266
- * without it is a genuine authorization failure and stays hard.
267
- */
268
- function isTransientUpstreamStatus(res: Response): boolean {
269
- if (res.status === 429 || res.status >= 500) {
270
- return true;
271
- }
272
- if (res.status === 403) {
273
- return res.headers.get("x-ratelimit-remaining") === "0";
274
- }
275
- return false;
276
- }
277
-
278
- /**
279
- * Fetch and validate the marketplace manifest, returning its plugin entries.
280
- *
281
- * A missing manifest (HTTP 404) is treated as an empty whitelist — an empty
282
- * catalog is a valid state, not an error. Any other HTTP failure, a non-JSON
283
- * body, or a schema violation throws {@link MarketplaceFetchError}; a
284
- * rate-limit or 5xx is flagged `transient` so the caller can retry.
285
- */
286
- export async function fetchMarketplaceEntries(
287
- deps: FetchMarketplaceDeps,
288
- opts: FetchMarketplaceOptions,
289
- ): Promise<readonly MarketplaceEntry[]> {
290
- const { ref } = opts;
291
- const url =
292
- `https://api.github.com/repos/${MARKETPLACE_SOURCE_OWNER}/${MARKETPLACE_SOURCE_REPO}` +
293
- `/contents/${MARKETPLACE_FILE_PATH}?ref=${encodeURIComponent(ref)}`;
294
-
295
- const res = await deps.fetch(url, {
296
- headers: {
297
- // Ask for the raw file body rather than the base64-wrapped Contents
298
- // envelope, so the response text is the manifest JSON directly.
299
- Accept: "application/vnd.github.raw",
300
- "User-Agent": USER_AGENT,
301
- },
302
- });
303
-
304
- if (res.status === 404) {
305
- return [];
306
- }
307
- if (!res.ok) {
308
- throw new MarketplaceFetchError(
309
- `Marketplace manifest fetch failed for ${MARKETPLACE_FILE_PATH} @ ${ref}: HTTP ${res.status}`,
310
- { transient: isTransientUpstreamStatus(res), status: res.status },
311
- );
312
- }
313
-
314
- let json: unknown;
315
- try {
316
- json = JSON.parse(await res.text());
317
- } catch (err) {
318
- throw new MarketplaceFetchError(
319
- `Marketplace manifest is not valid JSON: ${
320
- err instanceof Error ? err.message : String(err)
321
- }`,
322
- );
323
- }
324
-
325
- const parsed = fetchedMarketplaceManifestSchema.safeParse(json);
326
- if (!parsed.success) {
327
- throw new MarketplaceFetchError(
328
- `Marketplace manifest failed validation: ${parsed.error.message}`,
329
- );
330
- }
331
- const entries: MarketplaceEntry[] = [];
332
- for (const rawEntry of parsed.data.plugins) {
333
- const sourceKind = readSourceDiscriminator(rawEntry);
334
- if (
335
- typeof sourceKind === "string" &&
336
- sourceKind !== "github" &&
337
- sourceKind !== "local"
338
- ) {
339
- continue;
340
- }
341
- const entry = marketplaceEntrySchema.safeParse(rawEntry);
342
- if (!entry.success) {
343
- throw new MarketplaceFetchError(
344
- `Marketplace manifest failed validation: ${entry.error.message}`,
345
- );
346
- }
347
- entries.push(entry.data);
348
- }
349
- return entries;
350
- }
351
-
352
- /**
353
- * Resolve a plugin name to its exact source using the supplied marketplace
354
- * entries. Returns `null` when no entry claims the name.
355
- */
356
- export function resolveMarketplaceSource(
357
- name: string,
358
- entries: readonly MarketplaceEntry[],
359
- ): ResolvedPluginSource | null {
360
- const entry = entries.find((e) => e.name === name);
361
- if (!entry) {
362
- return null;
363
- }
364
- if (entry.source.source === "local") {
365
- return {
366
- kind: "local",
367
- path: entry.source.path,
368
- version: entry.source.version,
369
- };
370
- }
371
- const [owner, repo] = entry.source.repo.split("/", 2) as [string, string];
372
- return {
373
- kind: "github",
374
- owner,
375
- repo,
376
- path: entry.source.path ?? "",
377
- ref: entry.source.ref,
378
- };
379
- }
131
+ export type ResolvedPluginSource = ResolvedGitHubPluginSource;
@@ -2,8 +2,8 @@
2
2
  * Filtering and projection helpers for the installable plugin catalog.
3
3
  *
4
4
  * The catalog itself is resolved by {@link ./plugin-catalog-cache}
5
- * (`getPluginCatalog`), which is platform-first with a bundled offline
6
- * fallback. This module owns the query semantics on top of a resolved
5
+ * (`getPluginCatalog`), which fetches it from Cadet Cloud. This module owns
6
+ * the query semantics on top of a resolved
7
7
  * catalog: compile a pattern, filter entries by name, and project a raw
8
8
  * marketplace entry onto the catalog match shape.
9
9
  *
@@ -24,24 +24,15 @@ export interface SearchPluginsDeps {
24
24
  }
25
25
 
26
26
  /** Where a catalog match comes from. */
27
- export type PluginMatchSource =
28
- | {
29
- readonly kind: "github";
30
- /** `owner/repo` of the external plugin repository. */
31
- readonly repo: string;
32
- /** Directory within the repo, when the plugin is not at the root. */
33
- readonly path?: string;
34
- /** Pinned git ref the plugin is fetched from. */
35
- readonly ref: string;
36
- }
37
- | {
38
- readonly kind: "local";
39
- /** Exact package key in the assistant's embedded plugin bundle. */
40
- readonly path: string;
41
- readonly version: string;
42
- readonly repo?: undefined;
43
- readonly ref?: undefined;
44
- };
27
+ export type PluginMatchSource = {
28
+ readonly kind: "github";
29
+ /** `owner/repo` of the external plugin repository. */
30
+ readonly repo: string;
31
+ /** Directory within the repo, when the plugin is not at the root. */
32
+ readonly path?: string;
33
+ /** Pinned git ref the plugin is fetched from. */
34
+ readonly ref: string;
35
+ };
45
36
 
46
37
  export interface McpPluginIntegration {
47
38
  readonly kind: "mcp";
@@ -149,29 +140,18 @@ export interface PluginCatalog {
149
140
  * Project a marketplace entry onto the catalog match shape, building a
150
141
  * a source-specific locator for display.
151
142
  *
152
- * Shared by the cloud fetcher and bundled reader so all catalog sources
153
- * project entries identically.
143
+ * Shared by the cloud fetcher so all catalog entries project identically.
154
144
  */
155
145
  export function marketplaceMatch(entry: MarketplaceEntry): PluginSearchMatch {
156
- const source: PluginMatchSource =
157
- entry.source.source === "github"
158
- ? {
159
- kind: "github",
160
- repo: entry.source.repo,
161
- path: entry.source.path,
162
- ref: entry.source.ref,
163
- }
164
- : {
165
- kind: "local",
166
- path: entry.source.path,
167
- version: entry.source.version,
168
- };
169
- const locator =
170
- source.kind === "github"
171
- ? `github:${source.repo}${source.path ? `/${source.path}` : ""}@${
172
- source.ref
173
- }`
174
- : `local:${source.path}@${source.version}`;
146
+ const source: PluginMatchSource = {
147
+ kind: "github",
148
+ repo: entry.source.repo,
149
+ path: entry.source.path,
150
+ ref: entry.source.ref,
151
+ };
152
+ const locator = `github:${source.repo}${
153
+ source.path ? `/${source.path}` : ""
154
+ }@${source.ref}`;
175
155
  return {
176
156
  name: entry.name,
177
157
  path: locator,
@@ -190,8 +170,8 @@ export function marketplaceMatch(entry: MarketplaceEntry): PluginSearchMatch {
190
170
  * (first occurrence wins), map via {@link marketplaceMatch}, and return
191
171
  * sorted alphabetically by name.
192
172
  *
193
- * Shared by every catalog source (platform fetcher, bundled reader) so they
194
- * dedupe, project, and order entries identically.
173
+ * Shared by the cloud fetcher so entries dedupe, project, and order
174
+ * identically.
195
175
  */
196
176
  export function projectMarketplaceEntries(
197
177
  entries: Iterable<MarketplaceEntry>,
@@ -26,7 +26,7 @@ import {
26
26
  } from "node:fs";
27
27
  import { join } from "node:path";
28
28
 
29
- import { getWorkspacePluginsDir } from "../../util/platform.js";
29
+ import { getWorkspacePluginsDir } from "../../util/layout.js";
30
30
 
31
31
  const DISABLED_FILE = ".disabled";
32
32
 
@@ -18,7 +18,7 @@ import { runShutdownHook } from "../../hooks/hook-loader.js";
18
18
  import { MESSAGE_KEYS, t } from "../../i18n/index.js";
19
19
  import { isPluginDisabled } from "../../plugins/disabled-state.js";
20
20
  import { PLUGIN_MCP_MANIFEST } from "../../plugins/mcp-servers.js";
21
- import { getWorkspacePluginsDir } from "../../util/platform.js";
21
+ import { getWorkspacePluginsDir } from "../../util/layout.js";
22
22
  import {
23
23
  InvalidPluginNameError,
24
24
  readInstallMeta,
@@ -49,7 +49,7 @@ import { dirname, join } from "node:path";
49
49
 
50
50
  import { runShutdownHook } from "../../hooks/hook-loader.js";
51
51
  import { PRESERVED_ENTRIES } from "../../plugins/plugin-tree-walk.js";
52
- import { getWorkspacePluginsDir } from "../../util/platform.js";
52
+ import { getWorkspacePluginsDir } from "../../util/layout.js";
53
53
  import type { FetchLike } from "./fetch-like.js";
54
54
  import {
55
55
  fetchCommitDate,
@@ -64,7 +64,6 @@ import {
64
64
  finalizeStagedInstall,
65
65
  type GitRunner,
66
66
  installPlugin,
67
- type InstallPluginDeps,
68
67
  isFullCommitSha,
69
68
  materializePluginTree,
70
69
  type PluginFetchSource,
@@ -95,7 +94,6 @@ import {
95
94
  type PluginUpgradeStrategy,
96
95
  } from "./plugin-constants.js";
97
96
  import { computeFingerprint, fingerprintsEqual } from "./plugin-fingerprint.js";
98
- import type { PluginCatalog } from "./search-plugins.js";
99
97
  import { PluginNotInstalledError } from "./uninstall-plugin.js";
100
98
 
101
99
  /**
@@ -169,8 +167,6 @@ export interface UpgradePluginDeps {
169
167
  * upgrades alike; dry runs and no-ops never stage, so it is not invoked.
170
168
  */
171
169
  readonly confirmStaged?: ConfirmStagedInstall;
172
- readonly materializeLocalPackage?: InstallPluginDeps["materializeLocalPackage"];
173
- readonly localCatalog?: PluginCatalog;
174
170
  }
175
171
 
176
172
  /** Result of an upgrade attempt. */
@@ -324,7 +320,6 @@ export async function upgradePlugin(
324
320
  {
325
321
  fetch: deps.fetch,
326
322
  workspacePluginsDir: deps.workspacePluginsDir,
327
- localCatalog: deps.localCatalog,
328
323
  },
329
324
  );
330
325
  } catch (err) {
@@ -381,19 +376,6 @@ export async function upgradePlugin(
381
376
  const toTimestamp = remote.committedAt;
382
377
  const provenanceWasUnknown = inspection.status === "unknown-provenance";
383
378
 
384
- const localSource = local.source;
385
- const sourceChanged =
386
- remote.kind === "local"
387
- ? localSource?.kind !== "local" || localSource.path !== remote.path
388
- : localSource?.kind === "local";
389
- if (sourceChanged) {
390
- throw new PluginNotUpgradableError(
391
- name,
392
- "its marketplace source changed; reinstall explicitly with 'plugins install " +
393
- `${name} --force' to accept the new source`,
394
- );
395
- }
396
-
397
379
  if (inspection.status === "up-to-date") {
398
380
  return {
399
381
  name,
@@ -414,21 +396,6 @@ export async function upgradePlugin(
414
396
 
415
397
  const usesMergeStrategy =
416
398
  strategy === "ours" || strategy === "theirs" || strategy === "assistant";
417
- const canOverwriteCleanBundledInstall =
418
- remote.kind === "local" &&
419
- strategy === "theirs" &&
420
- local.localChanges?.clean === true;
421
-
422
- if (
423
- remote.kind === "local" &&
424
- usesMergeStrategy &&
425
- !canOverwriteCleanBundledInstall
426
- ) {
427
- throw new PluginMergeBaselineError(
428
- name,
429
- "bundled packages do not retain the previous package version needed for a three-way merge",
430
- );
431
- }
432
399
 
433
400
  if (dryRun) {
434
401
  return {
@@ -451,7 +418,7 @@ export async function upgradePlugin(
451
418
  // `ours`/`theirs`/`assistant` carry local edits forward via a three-way
452
419
  // merge; the default `overwrite` discards them and re-installs the pin
453
420
  // wholesale.
454
- if (usesMergeStrategy && remote.kind !== "local") {
421
+ if (usesMergeStrategy) {
455
422
  const [remoteOwner, remoteRepo] = remote.repo.split("/");
456
423
  return mergeUpgrade(
457
424
  {
@@ -480,19 +447,7 @@ export async function upgradePlugin(
480
447
  }
481
448
 
482
449
  const result = await installPlugin(
483
- {
484
- name,
485
- force: true,
486
- ...(remote.kind === "local"
487
- ? {
488
- trustedSource: {
489
- kind: "local" as const,
490
- path: remote.path,
491
- version: remote.version ?? remote.commit,
492
- },
493
- }
494
- : {}),
495
- },
450
+ { name, force: true },
496
451
  {
497
452
  fetch: deps.fetch,
498
453
  workspacePluginsDir: deps.workspacePluginsDir,
@@ -501,7 +456,6 @@ export async function upgradePlugin(
501
456
  runInstallDeps: deps.runInstallDeps,
502
457
  beforeSwap: deps.beforeSwap,
503
458
  confirmStaged: deps.confirmStaged,
504
- materializeLocalPackage: deps.materializeLocalPackage,
505
459
  },
506
460
  );
507
461
 
@@ -3,7 +3,7 @@ import { existsSync } from "node:fs";
3
3
  import { Command } from "commander";
4
4
 
5
5
  import { initFeatureFlagOverrides } from "../config/assistant-feature-flags.js";
6
- import { getWorkspaceDir } from "../util/platform.js";
6
+ import { getWorkspaceDir } from "../util/layout.js";
7
7
  import { APP_VERSION } from "../version.js";
8
8
  import { registerAppsCommand } from "./commands/apps.js";
9
9
  import { registerAttachmentCommand } from "./commands/attachment.js";
@@ -47,7 +47,6 @@ import { registerSequenceCommand } from "./commands/sequence.js";
47
47
  import { registerSkillsCommand } from "./commands/skills.js";
48
48
  import { registerStatusCommand } from "./commands/status.js";
49
49
  import { registerSttCommand } from "./commands/stt.js";
50
- import { registerTelemetryCommand } from "./commands/telemetry.js";
51
50
  import { registerToolsCommand } from "./commands/tools.js";
52
51
  import { registerTrustCommand } from "./commands/trust.js";
53
52
  import { registerTtsCommand } from "./commands/tts.js";
@@ -145,7 +144,6 @@ Examples:
145
144
  registerStatusCommand(program);
146
145
  registerSkillsCommand(program);
147
146
  registerSttCommand(program);
148
- registerTelemetryCommand(program);
149
147
  registerToolsCommand(program);
150
148
  registerTrustCommand(program);
151
149
  registerTtsCommand(program);
package/src/cli.ts CHANGED
@@ -34,7 +34,7 @@ import {
34
34
  watchEventStream,
35
35
  } from "./signals/event-stream.js";
36
36
  import { formatDiff, formatNewFileDiff } from "./util/diff.js";
37
- import { getHistoryPath, getSignalsDir } from "./util/platform.js";
37
+ import { getHistoryPath, getSignalsDir } from "./util/layout.js";
38
38
  import { Spinner } from "./util/spinner.js";
39
39
  import { timeAgo } from "./util/time.js";
40
40
  import { truncate } from "./util/truncate.js";
@@ -12,7 +12,6 @@ import { resolveCloudProxyContext } from "../providers/cloud-proxy/context.js";
12
12
  import { credentialKey } from "../security/credential-key.js";
13
13
  import { getSecureKeyAsync } from "../security/secure-keys.js";
14
14
  import { getLogger } from "../util/logger.js";
15
- import { areCloudFeaturesEnabled } from "./feature-gate.js";
16
15
 
17
16
  const log = getLogger("cloud-client");
18
17
 
@@ -54,11 +53,6 @@ interface CloudClientConfig {
54
53
  * key). The assistant ID is resolved but not required.
55
54
  */
56
55
  async function resolveCloudClientConfig(): Promise<CloudClientConfig | null> {
57
- if (!areCloudFeaturesEnabled()) {
58
- log.debug("platform features disabled -- returning null");
59
- return null;
60
- }
61
-
62
56
  const ctx = await resolveCloudProxyContext();
63
57
 
64
58
  const baseUrl = ctx.enabled ? ctx.cloudBaseUrl : "";