@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
@@ -13,7 +13,7 @@ import type { Command } from "commander";
13
13
 
14
14
  import { cliIpcCall } from "../../ipc/cli-client.js";
15
15
  import { stripAnsiAndControlChars } from "../../util/ansi.js";
16
- import { getWorkspacePluginsDir } from "../../util/platform.js";
16
+ import { getWorkspacePluginsDir } from "../../util/layout.js";
17
17
  import { truncate } from "../../util/truncate.js";
18
18
  import { resolveBundledCliModule } from "../bundled-modules.js";
19
19
  import { yellow } from "../lib/cli-colors.js";
@@ -36,13 +36,13 @@ import {
36
36
  looksLikeGitHubSpec,
37
37
  parseGitHubPluginSpec,
38
38
  } from "../lib/parse-github-plugin-spec.js";
39
+ import { isPluginCatalogEntryVisible } from "../lib/plugin-catalog-visibility.js";
39
40
  import {
40
41
  DEFAULT_PLUGIN_REF,
41
42
  PLUGIN_UPGRADE_STRATEGIES,
42
43
  type PluginUpgradeStrategy,
43
44
  } from "../lib/plugin-constants.js";
44
45
  import type { FingerprintComparison } from "../lib/plugin-fingerprint.js";
45
- import type { PluginPinHistoryEntry } from "../lib/plugin-pin-history.js";
46
46
  import type { PluginScheduleSurface } from "../lib/plugin-surfaces.js";
47
47
  import { runPublish } from "../lib/publish-plugin.js";
48
48
  import { registerCommand } from "../lib/register-command.js";
@@ -71,15 +71,6 @@ const libs = {
71
71
  ) as typeof import("../lib/plugin-catalog-cache.js"),
72
72
  );
73
73
  },
74
- get catalogLocal() {
75
- return resolveBundledCliModule(
76
- "pluginCatalogLocal",
77
- () =>
78
- loadModule(
79
- "../lib/plugin-catalog-local.js",
80
- ) as typeof import("../lib/plugin-catalog-local.js"),
81
- );
82
- },
83
74
  get diff() {
84
75
  return resolveBundledCliModule(
85
76
  "pluginDiff",
@@ -125,15 +116,6 @@ const libs = {
125
116
  ) as typeof import("../lib/list-installed-plugins.js"),
126
117
  );
127
118
  },
128
- get pinHistory() {
129
- return resolveBundledCliModule(
130
- "pluginPinHistory",
131
- () =>
132
- loadModule(
133
- "../lib/plugin-pin-history.js",
134
- ) as typeof import("../lib/plugin-pin-history.js"),
135
- );
136
- },
137
119
  get search() {
138
120
  return resolveBundledCliModule(
139
121
  "pluginSearch",
@@ -232,90 +214,38 @@ export function registerPluginsCommand(program: Command): void {
232
214
  let untrusted = false;
233
215
  if (!direct && !usesMarketplaceGit) {
234
216
  // Platform-managed install serves a verified tarball from the
235
- // pinned commit. With platform features disabled (air-gapped /
236
- // self-hosted) there is no platform to call, so resolve the pin
237
- // from the bundled catalog and install through the GitHub path.
238
- const platformEnabled =
239
- libs.catalogLocal.areCloudFeaturesEnabled();
240
- if (platformEnabled) {
241
- if (!libs.catalogLocal.isPluginCatalogEntryVisible(nameOrUrl)) {
242
- console.error(
243
- `Plugin "${nameOrUrl}" is not in the marketplace catalog.`,
244
- );
245
- process.exitCode = 1;
246
- return;
247
- }
248
- let match;
249
- let catalogResolved = false;
250
- try {
251
- match = (
252
- await libs.catalogCache.getPluginCatalog(
253
- DEFAULT_PLUGIN_REF,
254
- { fetch: globalThis.fetch.bind(globalThis) },
255
- )
256
- ).matches.find((candidate) => candidate.name === nameOrUrl);
257
- catalogResolved = true;
258
- } catch {
259
- // The install endpoint remains authoritative and can succeed
260
- // independently when catalog discovery is unavailable.
261
- }
262
- if (!match && catalogResolved) {
263
- console.error(
264
- `Plugin "${nameOrUrl}" is not in the marketplace catalog.`,
265
- );
266
- process.exitCode = 1;
267
- return;
268
- }
269
- if (match?.source.kind === "local") {
270
- result = await libs.installGitHub.installPlugin(
271
- {
272
- name: nameOrUrl,
273
- force: opts.force,
274
- trustedSource: match.source,
275
- },
276
- { fetch: globalThis.fetch.bind(globalThis), confirmStaged },
277
- );
278
- } else {
279
- result = await libs.installPlatform.installPluginViaPlatform(
280
- { name: nameOrUrl, force: opts.force },
281
- { fetch: globalThis.fetch.bind(globalThis), confirmStaged },
282
- );
283
- }
284
- } else {
285
- const source =
286
- libs.catalogLocal.resolveBundledPluginSource(nameOrUrl);
287
- if (!source) {
288
- console.error(
289
- `Plugin "${nameOrUrl}" is not in the bundled marketplace catalog.`,
290
- );
291
- process.exitCode = 1;
292
- return;
293
- }
294
- if (source.kind === "local") {
295
- result = await libs.installGitHub.installPlugin(
296
- {
297
- name: nameOrUrl,
298
- force: opts.force,
299
- trustedSource: source,
300
- },
301
- { fetch: globalThis.fetch.bind(globalThis), confirmStaged },
302
- );
303
- } else {
304
- result = await libs.installGitHub.installPlugin(
305
- {
306
- name: nameOrUrl,
307
- force: opts.force,
308
- trustedSource: {
309
- owner: source.owner,
310
- repo: source.repo,
311
- rootPath: source.path,
312
- ref: source.ref,
313
- },
314
- },
315
- { fetch: globalThis.fetch.bind(globalThis), confirmStaged },
316
- );
317
- }
217
+ // pinned commit.
218
+ if (!isPluginCatalogEntryVisible(nameOrUrl)) {
219
+ console.error(
220
+ `Plugin "${nameOrUrl}" is not in the marketplace catalog.`,
221
+ );
222
+ process.exitCode = 1;
223
+ return;
224
+ }
225
+ let match;
226
+ let catalogResolved = false;
227
+ try {
228
+ match = (
229
+ await libs.catalogCache.getPluginCatalog(DEFAULT_PLUGIN_REF, {
230
+ fetch: globalThis.fetch.bind(globalThis),
231
+ })
232
+ ).matches.find((candidate) => candidate.name === nameOrUrl);
233
+ catalogResolved = true;
234
+ } catch {
235
+ // The install endpoint remains authoritative and can succeed
236
+ // independently when catalog discovery is unavailable.
237
+ }
238
+ if (!match && catalogResolved) {
239
+ console.error(
240
+ `Plugin "${nameOrUrl}" is not in the marketplace catalog.`,
241
+ );
242
+ process.exitCode = 1;
243
+ return;
318
244
  }
245
+ result = await libs.installPlatform.installPluginViaPlatform(
246
+ { name: nameOrUrl, force: opts.force },
247
+ { fetch: globalThis.fetch.bind(globalThis), confirmStaged },
248
+ );
319
249
  } else {
320
250
  const installOpts = direct
321
251
  ? await resolveDirectInstallOptions(nameOrUrl, opts)
@@ -380,10 +310,7 @@ export function registerPluginsCommand(program: Command): void {
380
310
  process.exitCode = 1;
381
311
  return;
382
312
  }
383
- if (
384
- err instanceof libs.installGitHub.InvalidPluginNameError ||
385
- err instanceof libs.pinHistory.PluginPinHistoryError
386
- ) {
313
+ if (err instanceof libs.installGitHub.InvalidPluginNameError) {
387
314
  console.error(err.message);
388
315
  process.exitCode = 1;
389
316
  return;
@@ -395,51 +322,6 @@ export function registerPluginsCommand(program: Command): void {
395
322
  },
396
323
  );
397
324
 
398
- subcommand(plugins, "versions").action(
399
- async (name: string, opts: { json?: boolean; limit?: string }) => {
400
- let limit: number | undefined;
401
- if (opts.limit !== undefined) {
402
- limit = Number.parseInt(opts.limit, 10);
403
- if (!Number.isInteger(limit) || limit < 1) {
404
- console.error("--limit must be a positive integer.");
405
- process.exitCode = 1;
406
- return;
407
- }
408
- }
409
- try {
410
- const history = await libs.pinHistory.listPinHistory(
411
- name,
412
- { fetch: globalThis.fetch.bind(globalThis) },
413
- limit !== undefined ? { limit } : {},
414
- );
415
-
416
- if (opts.json) {
417
- process.stdout.write(JSON.stringify(history, null, 2) + "\n");
418
- return;
419
- }
420
-
421
- // Logged after the JSON early-return so the logger's stdout
422
- // writes never corrupt --json output.
423
- log.info({ name, count: history.length }, "plugin versions");
424
- for (const line of formatVersions(name, history)) {
425
- console.log(line);
426
- }
427
- } catch (err) {
428
- if (
429
- err instanceof libs.installGitHub.InvalidPluginNameError ||
430
- err instanceof libs.pinHistory.PluginPinHistoryError
431
- ) {
432
- console.error(err.message);
433
- process.exitCode = 1;
434
- return;
435
- }
436
- const message = err instanceof Error ? err.message : String(err);
437
- console.error(`Plugin versions failed: ${message}`);
438
- process.exitCode = 1;
439
- }
440
- },
441
- );
442
-
443
325
  subcommand(plugins, "list").action(
444
326
  (opts: { json?: boolean; all?: boolean }) => {
445
327
  if (opts.all) {
@@ -976,12 +858,19 @@ async function resolveInstallOptions(
976
858
  ): Promise<InstallPluginOptions | null> {
977
859
  const force = opts.force ?? false;
978
860
 
861
+ if (opts.ref) {
862
+ console.error(
863
+ "--ref named a revision of the retired local marketplace manifest; the catalog now lives in Cadet Cloud. Install by GitHub URL instead.",
864
+ );
865
+ return null;
866
+ }
867
+
979
868
  if (!opts.pin) {
980
869
  if (opts.allowUnreviewed) {
981
870
  console.error("--allow-unreviewed only applies together with --pin.");
982
871
  return null;
983
872
  }
984
- return { name, force, ref: opts.ref ?? DEFAULT_PLUGIN_REF };
873
+ return { name, force, ref: DEFAULT_PLUGIN_REF };
985
874
  }
986
875
 
987
876
  const pin = opts.pin.trim();
@@ -991,32 +880,29 @@ async function resolveInstallOptions(
991
880
  );
992
881
  return null;
993
882
  }
994
- if (opts.ref) {
995
- console.error(
996
- "--ref and --pin cannot be combined; --pin already selects the revision.",
997
- );
998
- return null;
999
- }
1000
883
 
1001
884
  if (opts.allowUnreviewed) {
1002
- // Materialize the exact SHA from the plugin's current-manifest repo,
1003
- // bypassing the reviewed-history check. The adapter stub still comes from
885
+ // Materialize the exact SHA from the plugin's current-catalog repo,
886
+ // bypassing the reviewed-pin check. The adapter stub still comes from
1004
887
  // the default ref, so an adapted plugin may not reproduce faithfully.
1005
888
  return { name, force, ref: DEFAULT_PLUGIN_REF, commitOverride: pin };
1006
889
  }
1007
890
 
1008
- const entry = await libs.pinHistory.resolvePinToMarketplaceCommit(name, pin, {
891
+ // Without the old manifest's git history there is no rollback surface: the
892
+ // only reviewed revision of a plugin is the one the live catalog pins now.
893
+ const catalog = await libs.catalogCache.getPluginCatalog(DEFAULT_PLUGIN_REF, {
1009
894
  fetch: globalThis.fetch.bind(globalThis),
1010
895
  });
1011
- if (!entry) {
896
+ const match = catalog.matches.find((candidate) => candidate.name === name);
897
+ if (!match || match.source.kind !== "github" || match.source.ref !== pin) {
1012
898
  console.error(
1013
- `"${pin}" is not a reviewed marketplace pin for "${name}".\n` +
1014
- `Run \`assistant plugins versions ${name}\` to see available pins, ` +
1015
- "or pass --allow-unreviewed to install it anyway.",
899
+ `"${pin}" is not the pin the catalog currently holds for "${name}".\n` +
900
+ "Rolling back to older reviewed pins is no longer supported; " +
901
+ "pass --allow-unreviewed to install it anyway.",
1016
902
  );
1017
903
  return null;
1018
904
  }
1019
- return { name, force, ref: entry.marketplaceCommit };
905
+ return { name, force, ref: DEFAULT_PLUGIN_REF, commitOverride: pin };
1020
906
  }
1021
907
 
1022
908
  /**
@@ -1330,40 +1216,6 @@ async function printDeclaredSchedulesAfterUpgrade(
1330
1216
  }
1331
1217
  }
1332
1218
 
1333
- /**
1334
- * Render a plugin's marketplace-pin history as a table: the pinned commit (short
1335
- * SHA), when it was promoted, and a marker for the pin currently active. An
1336
- * empty history reports that none was found.
1337
- */
1338
- function formatVersions(
1339
- name: string,
1340
- history: readonly PluginPinHistoryEntry[],
1341
- ): string[] {
1342
- if (history.length === 0) {
1343
- return [`No marketplace pin history found for "${name}".`];
1344
- }
1345
- const rows = history.map((entry) => ({
1346
- pin: shortSha(entry.pin),
1347
- promoted: formatTimestamp(entry.promotedAt),
1348
- marker: entry.current ? "(current)" : "",
1349
- }));
1350
- const pinW = Math.max(3, ...rows.map((r) => r.pin.length));
1351
- const promotedW = Math.max(8, ...rows.map((r) => r.promoted.length));
1352
- const pad = (s: string, w: number) => s + " ".repeat(w - s.length);
1353
- const lines = [
1354
- `${pad("PIN", pinW)} ${pad("PROMOTED", promotedW)} `.trimEnd(),
1355
- ];
1356
- for (const r of rows) {
1357
- lines.push(
1358
- `${pad(r.pin, pinW)} ${pad(r.promoted, promotedW)} ${r.marker}`.trimEnd(),
1359
- );
1360
- }
1361
- lines.push("");
1362
- lines.push("Install an older pin with:");
1363
- lines.push(` assistant plugins install ${name} --pin <sha> --force`);
1364
- return lines;
1365
- }
1366
-
1367
1219
  function shortSha(sha: string | null): string {
1368
1220
  return sha ? sha.slice(0, 7) : "—";
1369
1221
  }
@@ -1442,11 +1294,8 @@ function driftLine(changes: FingerprintComparison | null): string {
1442
1294
  return parts.join(", ");
1443
1295
  }
1444
1296
 
1445
- /** Build the display location for a bundled package or GitHub pin. */
1297
+ /** Build the display location for a plugin's GitHub pin. */
1446
1298
  function remoteLocation(remote: PluginRemoteInfo): string {
1447
- if (remote.kind === "local") {
1448
- return `bundled:${remote.path}`;
1449
- }
1450
1299
  const base = `https://github.com/${remote.repo}`;
1451
1300
  return remote.path ? `${base}/tree/${remote.commit}/${remote.path}` : base;
1452
1301
  }
@@ -10,6 +10,7 @@
10
10
  import type { Command } from "commander";
11
11
 
12
12
  import { cliIpcCall, exitFromIpcResult } from "../../ipc/cli-client.js";
13
+ import { truncateCommandLabel } from "../../util/process-tree.js";
13
14
  import { applyCommandHelp } from "../lib/cli-command-help.js";
14
15
  import { registerCommand } from "../lib/register-command.js";
15
16
  import { log } from "../logger.js";
@@ -43,9 +44,11 @@ interface Row {
43
44
  /** Flatten the tree into rows, indenting each name to reflect tree depth. */
44
45
  function flattenEntries(entry: ProcessEntry, depth: number, rows: Row[]): void {
45
46
  rows.push({
46
- name: " ".repeat(depth) + entry.name,
47
+ // Command-derived labels (and the `pid N` info line) are capped at
48
+ // render time: a long label pads every row and stretches the table.
49
+ name: " ".repeat(depth) + truncateCommandLabel(entry.name),
47
50
  origin: entry.origin,
48
- info: entry.info ?? "",
51
+ info: entry.info ? truncateCommandLabel(entry.info) : "",
49
52
  });
50
53
  for (const child of entry.children ?? []) {
51
54
  flattenEntries(child, depth + 1, rows);
@@ -4,7 +4,7 @@ import type { Command } from "commander";
4
4
 
5
5
  import { cliIpcCall } from "../../ipc/cli-client.js";
6
6
  import { getAssistantSocketPath } from "../../ipc/socket-path.js";
7
- import { getWorkspaceDirDisplay } from "../../util/platform.js";
7
+ import { getWorkspaceDirDisplay } from "../../util/layout.js";
8
8
  import { APP_VERSION } from "../../version.js";
9
9
  import { applyCommandHelp } from "../lib/cli-command-help.js";
10
10
  import { registerCommand } from "../lib/register-command.js";
@@ -52,7 +52,6 @@ import { sequenceHelp } from "./commands/sequence.help.js";
52
52
  import { skillsHelp } from "./commands/skills.help.js";
53
53
  import { statusHelp } from "./commands/status.help.js";
54
54
  import { sttHelp } from "./commands/stt.help.js";
55
- import { telemetryHelp } from "./commands/telemetry.help.js";
56
55
  import { toolsHelp } from "./commands/tools.help.js";
57
56
  import { trustHelp } from "./commands/trust.help.js";
58
57
  import { ttsHelp } from "./commands/tts.help.js";
@@ -105,7 +104,6 @@ export const CLI_COMMAND_HELP: readonly CliCommandHelp[] = [
105
104
  skillsHelp,
106
105
  statusHelp,
107
106
  sttHelp,
108
- telemetryHelp,
109
107
  toolsHelp,
110
108
  trustHelp,
111
109
  ttsHelp,
@@ -18,8 +18,8 @@ import {
18
18
  inspectPlugin,
19
19
  PluginInspectNotFoundError,
20
20
  } from "../inspect-plugin.js";
21
+ import { invalidatePluginCatalogCache } from "../plugin-catalog-cache.js";
21
22
  import { computeFingerprint } from "../plugin-fingerprint.js";
22
- import type { PluginCatalog } from "../search-plugins.js";
23
23
 
24
24
  const SHA_A = "a".repeat(40);
25
25
  const SHA_B = "b".repeat(40);
@@ -42,12 +42,12 @@ function manifestWith(name: string, ref: string): unknown {
42
42
  }
43
43
 
44
44
  /**
45
- * Build a `fetch` that serves the marketplace manifest and the GitHub commit
46
- * API. `marketplace: undefined` answers 404 (empty catalog); `fail: true`
47
- * rejects the marketplace request with a network error. `remoteCommitDate`
48
- * seeds the committer date the GitHub commit endpoint returns (its absence
49
- * 404s, so the remote timestamp degrades to `null`). Anything else surfaces a
50
- * 500 so test bugs are loud.
45
+ * Build a `fetch` that serves the plugin catalog (a manifest flattened into
46
+ * cloud rows) and the GitHub commit API. `marketplace: undefined` answers 404
47
+ * (empty catalog); `fail: true` rejects the catalog request with a network
48
+ * error. `remoteCommitDate` is unused by the catalog-backed reader (the cloud
49
+ * catalog carries no commit dates). Anything else surfaces a 500 so test bugs
50
+ * are loud.
51
51
  */
52
52
  function makeFetch(opts: {
53
53
  marketplace?: unknown;
@@ -56,14 +56,33 @@ function makeFetch(opts: {
56
56
  }): FetchLike {
57
57
  return (async (input: RequestInfo | URL) => {
58
58
  const url = typeof input === "string" ? input : input.toString();
59
- if (url.includes("marketplace.json")) {
59
+ if (url.includes("/v1/plugins")) {
60
60
  if (opts.fail) {
61
61
  throw new Error("network down");
62
62
  }
63
63
  if (opts.marketplace === undefined) {
64
- return new Response("not found", { status: 404 });
64
+ return new Response(JSON.stringify({ plugins: [] }), { status: 200 });
65
65
  }
66
- return new Response(JSON.stringify(opts.marketplace), { status: 200 });
66
+ const manifest = opts.marketplace as {
67
+ plugins?: Array<{
68
+ name: string;
69
+ source?: { source: string; repo?: string; ref?: string };
70
+ description?: string;
71
+ category?: string;
72
+ homepage?: string;
73
+ license?: string;
74
+ }>;
75
+ };
76
+ const rows = (manifest.plugins ?? []).map((entry) => ({
77
+ name: entry.name,
78
+ ...(entry.source?.repo ? { repo: entry.source.repo } : {}),
79
+ ...(entry.source?.ref ? { ref: entry.source.ref } : {}),
80
+ description: entry.description,
81
+ category: entry.category,
82
+ homepage: entry.homepage,
83
+ license: entry.license,
84
+ }));
85
+ return new Response(JSON.stringify({ plugins: rows }), { status: 200 });
67
86
  }
68
87
  if (url.includes("api.github.com") && url.includes("/commits/")) {
69
88
  if (opts.remoteCommitDate === undefined) {
@@ -150,6 +169,9 @@ let workspace: string;
150
169
 
151
170
  beforeEach(() => {
152
171
  workspace = mkdtempSync(join(tmpdir(), "inspect-plugin-"));
172
+ invalidatePluginCatalogCache();
173
+ delete process.env.CADET_DISABLE_CLOUD;
174
+ delete process.env.IS_CLOUD;
153
175
  });
154
176
 
155
177
  afterEach(() => {
@@ -196,10 +218,11 @@ describe("inspectPlugin", () => {
196
218
  { fetch, workspacePluginsDir: workspace },
197
219
  );
198
220
 
199
- // THEN the installed timestamp comes from the sidecar and the remote one
200
- // is resolved from GitHub — both as ISO-8601 UTC strings
221
+ // THEN the installed timestamp comes from the sidecar; the cloud catalog
222
+ // carries no commit dates, so the remote side reports the bare SHA
201
223
  expect(result.local?.committedAt).toBe("2026-06-01T12:34:56.000Z");
202
- expect(result.remote?.committedAt).toBe("2026-06-05T08:12:24.000Z");
224
+ expect(result.remote?.committedAt).toBeNull();
225
+ expect(result.remote?.commit).toBe(SHA_B);
203
226
  });
204
227
 
205
228
  test("leaves the remote timestamp null when the commit date cannot be fetched", async () => {
@@ -335,59 +358,6 @@ describe("inspectPlugin", () => {
335
358
  expect(result.local?.description).toBe("Installed copy.");
336
359
  });
337
360
 
338
- test("previews an uninstalled bundled provider offline without fetching GitHub", async () => {
339
- const savedDisablePlatform = process.env.CADET_DISABLE_CLOUD;
340
- const savedIsPlatform = process.env.IS_CLOUD;
341
- process.env.CADET_DISABLE_CLOUD = "true";
342
- delete process.env.IS_CLOUD;
343
- let fetchCalls = 0;
344
- const fetch = (async () => {
345
- fetchCalls += 1;
346
- throw new Error("offline");
347
- }) as FetchLike;
348
- const localCatalog: PluginCatalog = {
349
- ref: "bundled",
350
- matches: [
351
- {
352
- name: "fathom",
353
- path: "local:plugins/mcp-catalog/fathom@1.0.0",
354
- category: "productivity",
355
- source: {
356
- kind: "local",
357
- path: "plugins/mcp-catalog/fathom",
358
- version: "1.0.0",
359
- },
360
- },
361
- ],
362
- };
363
-
364
- try {
365
- const result = await inspectPlugin(
366
- { name: "fathom" },
367
- { fetch, workspacePluginsDir: workspace, localCatalog },
368
- );
369
-
370
- expect(result.status).toBe("not-installed");
371
- expect(result.remote).toMatchObject({
372
- kind: "local",
373
- path: "plugins/mcp-catalog/fathom",
374
- version: "1.0.0",
375
- });
376
- expect(fetchCalls).toBe(0);
377
- } finally {
378
- if (savedDisablePlatform === undefined) {
379
- delete process.env.CADET_DISABLE_CLOUD;
380
- } else {
381
- process.env.CADET_DISABLE_CLOUD = savedDisablePlatform;
382
- }
383
- if (savedIsPlatform === undefined) {
384
- delete process.env.IS_CLOUD;
385
- } else {
386
- process.env.IS_CLOUD = savedIsPlatform;
387
- }
388
- }
389
- });
390
-
391
361
  test("reports remote-unavailable when the marketplace cannot be reached", async () => {
392
362
  // GIVEN an installed plugin and a failing marketplace fetch
393
363
  installPlugin(workspace, "level-up", { sidecar: { commit: SHA_A } });
@@ -30,7 +30,7 @@ import {
30
30
  readInstallMeta,
31
31
  } from "../install-from-github.js";
32
32
 
33
- const PLATFORM = "https://platform.test";
33
+ const PLATFORM = "https://test-cloud.mycadet.ai";
34
34
 
35
35
  // ─── Tar/gzip fixtures ───────────────────────────────────────────────────────
36
36