@mycadet/assistant 0.12.9 → 0.12.11

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 (658) hide show
  1. package/Dockerfile +0 -8
  2. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +1 -1
  3. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +8 -8
  4. package/node_modules/@mycadet/ces-client/node_modules/@mycadet/service-contracts/src/ingress.ts +1 -1
  5. package/node_modules/@mycadet/ces-client/src/http-credentials.ts +18 -1
  6. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +8 -8
  7. package/node_modules/@mycadet/gateway-client/node_modules/@mycadet/service-contracts/src/ingress.ts +1 -1
  8. package/node_modules/@mycadet/service-contracts/src/__tests__/ingress.test.ts +8 -8
  9. package/node_modules/@mycadet/service-contracts/src/ingress.ts +1 -1
  10. package/openapi.yaml +62 -910
  11. package/package.json +3 -7
  12. package/scripts/build-test-fixtures.ts +1 -1
  13. package/scripts/generate-openapi.ts +22 -6
  14. package/scripts/postinstall.ts +4 -10
  15. package/scripts/run-tests.ts +0 -21
  16. package/src/__tests__/adaptive-thinking-repair.test.ts +19 -57
  17. package/src/__tests__/agent-loop.test.ts +0 -76
  18. package/src/__tests__/anthropic-provider.test.ts +6 -6
  19. package/src/__tests__/assert-not-live-db.ts +1 -1
  20. package/src/__tests__/assistant-id-boundary-guard.test.ts +3 -3
  21. package/src/__tests__/attachments-store-heic-normalize.test.ts +1 -1
  22. package/src/__tests__/attachments-store.test.ts +1 -1
  23. package/src/__tests__/audit-log-rotation.test.ts +1 -1
  24. package/src/__tests__/btw-routes.test.ts +1 -1
  25. package/src/__tests__/byok-default-profile-ensure.test.ts +21 -27
  26. package/src/__tests__/call-conversation-messages.test.ts +0 -5
  27. package/src/__tests__/call-recovery.test.ts +2 -7
  28. package/src/__tests__/call-routes-http.test.ts +0 -12
  29. package/src/__tests__/call-store.test.ts +2 -7
  30. package/src/__tests__/catalog-files.test.ts +7 -5
  31. package/src/__tests__/checker.test.ts +1 -1
  32. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +4 -4
  33. package/src/__tests__/cloud-client-verify-credential.test.ts +0 -4
  34. package/src/__tests__/cloud-credential-catalog-cli.test.ts +14 -14
  35. package/src/__tests__/cloud-profile-guard.test.ts +87 -404
  36. package/src/__tests__/compaction-events.test.ts +2 -2
  37. package/src/__tests__/config-loader-backfill.test.ts +74 -163
  38. package/src/__tests__/config-loader-cloud-defaults.test.ts +11 -11
  39. package/src/__tests__/config-loader-corrupt.test.ts +10 -10
  40. package/src/__tests__/config-loader-quarantine-notice.test.ts +7 -7
  41. package/src/__tests__/config-loader-validation-reset-notice.test.ts +11 -11
  42. package/src/__tests__/config-schema.test.ts +26 -27
  43. package/src/__tests__/config-set-route.test.ts +2 -6
  44. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +28 -300
  45. package/src/__tests__/conversation-agent-loop-overflow.test.ts +39 -246
  46. package/src/__tests__/conversation-agent-loop.test.ts +2 -58
  47. package/src/__tests__/conversation-clear-safety.test.ts +0 -30
  48. package/src/__tests__/conversation-inference-profile-route.test.ts +1 -1
  49. package/src/__tests__/conversation-queue.test.ts +1 -1
  50. package/src/__tests__/conversation-runtime-assembly.test.ts +1 -1
  51. package/src/__tests__/conversation-skill-tools.test.ts +4 -444
  52. package/src/__tests__/conversation-slash-commands.test.ts +1 -1
  53. package/src/__tests__/conversation-store.test.ts +1 -84
  54. package/src/__tests__/conversation-surface-state.test.ts +0 -16
  55. package/src/__tests__/credential-health-service.test.ts +14 -1
  56. package/src/__tests__/credential-record-retire.test.ts +1 -1
  57. package/src/__tests__/credential-record-write-through.test.ts +1 -1
  58. package/src/__tests__/credential-security-invariants.test.ts +0 -145
  59. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  60. package/src/__tests__/default-profile-catalog-fallback.test.ts +5 -15
  61. package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -2
  62. package/src/__tests__/dictation-profile-store.test.ts +6 -6
  63. package/src/__tests__/disk-usage.test.ts +28 -164
  64. package/src/__tests__/docker-signing-key-bootstrap.test.ts +1 -1
  65. package/src/__tests__/embedding-cloud-proxy-selection.test.ts +1 -1
  66. package/src/__tests__/emit-event-signal.test.ts +1 -1
  67. package/src/__tests__/gateway-client-cloud-outbound.test.ts +3 -3
  68. package/src/__tests__/gateway-only-enforcement.test.ts +1 -1
  69. package/src/__tests__/guardian-dispatch.test.ts +0 -13
  70. package/src/__tests__/helpers/seed-app.ts +1 -1
  71. package/src/__tests__/host-cu-routes-targeted.test.ts +1 -1
  72. package/src/__tests__/host-shell-tool.test.ts +1 -1
  73. package/src/__tests__/identity-routes.test.ts +1 -1
  74. package/src/__tests__/inference-profile-session-handler.test.ts +1 -1
  75. package/src/__tests__/inference-profile-session-ipc.test.ts +1 -1
  76. package/src/__tests__/injector-chain.test.ts +1 -1
  77. package/src/__tests__/injector-config-quarantine-notice.test.ts +1 -1
  78. package/src/__tests__/injector-config-validation-reset-notice.test.ts +1 -1
  79. package/src/__tests__/injector-pkb-v2-silenced.test.ts +1 -1
  80. package/src/__tests__/{platform.test.ts → layout.test.ts} +1 -1
  81. package/src/__tests__/list-all-apps.test.ts +1 -1
  82. package/src/__tests__/live-workspace-guard.test.ts +2 -2
  83. package/src/__tests__/llm-resolver-override-or-default.test.ts +5 -6
  84. package/src/__tests__/llm-resolver.test.ts +7 -7
  85. package/src/__tests__/llm-schema-fallback-profile.test.ts +9 -10
  86. package/src/__tests__/llm-usage-store.test.ts +0 -495
  87. package/src/__tests__/log-export-routes.test.ts +1 -1
  88. package/src/__tests__/mcp-config-secret-boundary.test.ts +12 -53
  89. package/src/__tests__/mcp-list-plugin-servers.test.ts +1 -1
  90. package/src/__tests__/memory-config-file-parity.test.ts +1 -1
  91. package/src/__tests__/memory-v2-static-injector.test.ts +1 -1
  92. package/src/__tests__/messages-read-boundary-guard.test.ts +0 -2
  93. package/src/__tests__/notification-guardian-path.test.ts +0 -7
  94. package/src/__tests__/onboarding-persona-write.test.ts +1 -1
  95. package/src/__tests__/openai-provider.test.ts +8 -8
  96. package/src/__tests__/path-policy.test.ts +1 -1
  97. package/src/__tests__/persona-resolver.test.ts +1 -1
  98. package/src/__tests__/plugin-app-serve-routes.test.ts +1 -1
  99. package/src/__tests__/plugin-effective-enabled-set.test.ts +1 -1
  100. package/src/__tests__/plugin-import-boundary-guard.test.ts +4 -6
  101. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +0 -3
  102. package/src/__tests__/provider-cloud-proxy-integration.test.ts +1 -5
  103. package/src/__tests__/provider-connections-backfill.test.ts +10 -10
  104. package/src/__tests__/prune-old-conversations-job.test.ts +6 -31
  105. package/src/__tests__/resolve-app.test.ts +1 -1
  106. package/src/__tests__/run-due-schedules.test.ts +1 -1
  107. package/src/__tests__/scaffold-managed-skill-tool.test.ts +0 -53
  108. package/src/__tests__/schedule-routes.test.ts +1 -1
  109. package/src/__tests__/schedule-store.test.ts +1 -1
  110. package/src/__tests__/secret-routes-cloud-proxy.test.ts +1 -1
  111. package/src/__tests__/skill-load-plugin-scope.test.ts +1 -1
  112. package/src/__tests__/surface-completion-compaction-boundary.test.ts +1 -1
  113. package/src/__tests__/tool-approval-handler.test.ts +1 -1
  114. package/src/__tests__/tool-audit.test.ts +5 -235
  115. package/src/__tests__/tool-executor-lifecycle-events.test.ts +54 -114
  116. package/src/__tests__/tools-get-route.test.ts +1 -1
  117. package/src/__tests__/turn-outcome-read.test.ts +1 -1
  118. package/src/__tests__/twilio-routes.test.ts +0 -1
  119. package/src/__tests__/usage-attribution.test.ts +0 -31
  120. package/src/__tests__/verification-control-plane-policy.test.ts +3 -10
  121. package/src/__tests__/visible-app-context.test.ts +1 -1
  122. package/src/__tests__/voice-ingress-preflight.test.ts +1 -1
  123. package/src/__tests__/workspace-git-service.test.ts +1 -1
  124. package/src/__tests__/workspace-greetings.test.ts +1 -1
  125. package/src/acp/__tests__/helpers/acp-config-stub.ts +1 -1
  126. package/src/activation/progress-store.ts +1 -1
  127. package/src/activation/turn-hooks.ts +1 -1
  128. package/src/agent/loop.ts +0 -51
  129. package/src/apps/app-store.ts +1 -1
  130. package/src/avatar/__tests__/avatar-store.test.ts +2 -172
  131. package/src/avatar/accent-backfill.ts +1 -1
  132. package/src/avatar/avatar-manifest.ts +1 -1
  133. package/src/avatar/avatar-store.ts +10 -69
  134. package/src/avatar/ensure-raster.ts +1 -1
  135. package/src/avatar/identity-avatar.ts +1 -1
  136. package/src/avatar/sync-avatar.ts +1 -1
  137. package/src/avatar/traits-png-sync.ts +1 -1
  138. package/src/bundler/compiler-tools.ts +1 -1
  139. package/src/bundler/package-resolver.ts +1 -1
  140. package/src/calls/__tests__/call-controller.test.ts +25 -27
  141. package/src/calls/active-call-lease.ts +1 -1
  142. package/src/calls/call-controller.ts +3 -3
  143. package/src/calls/call-domain.ts +4 -8
  144. package/src/calls/call-store.ts +2 -76
  145. package/src/calls/resolve-call-tts-provider.ts +3 -3
  146. package/src/calls/twilio-config.ts +3 -3
  147. package/src/calls/twilio-rest.ts +2 -2
  148. package/src/calls/voice-ingress-preflight.ts +2 -2
  149. package/src/cli/bundled-modules.ts +0 -2
  150. package/src/cli/commands/__tests__/apps.test.ts +1 -1
  151. package/src/cli/commands/__tests__/plugins.test.ts +9 -66
  152. package/src/cli/commands/__tests__/ps.test.ts +67 -0
  153. package/src/cli/commands/auth.help.ts +2 -2
  154. package/src/cli/commands/avatar.ts +1 -1
  155. package/src/cli/commands/changelog.ts +1 -1
  156. package/src/cli/commands/cloud/__tests__/subscription.test.ts +2 -2
  157. package/src/cli/commands/cloud/index.help.ts +1 -1
  158. package/src/cli/commands/cloud/index.ts +2 -2
  159. package/src/cli/commands/db/refresh.ts +1 -1
  160. package/src/cli/commands/db/repair-step-conversation-backfill.ts +1 -1
  161. package/src/cli/commands/db/repair.ts +1 -1
  162. package/src/cli/commands/db/status.ts +1 -1
  163. package/src/cli/commands/inference-profiles.ts +1 -12
  164. package/src/cli/commands/memory/__tests__/memory-v3.test.ts +1 -116
  165. package/src/cli/commands/memory/index.help.ts +1 -43
  166. package/src/cli/commands/memory/memory-v3.ts +0 -64
  167. package/src/cli/commands/plugins.ts +54 -205
  168. package/src/cli/commands/ps.ts +5 -2
  169. package/src/cli/commands/status.ts +1 -1
  170. package/src/cli/index.help.ts +0 -2
  171. package/src/cli/lib/__tests__/inspect-plugin.test.ts +36 -66
  172. package/src/cli/lib/__tests__/install-from-cloud.test.ts +1 -1
  173. package/src/cli/lib/__tests__/install-from-github.test.ts +41 -117
  174. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +2 -185
  175. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +36 -66
  176. package/src/cli/lib/__tests__/plugin-catalog-visibility.test.ts +4 -6
  177. package/src/cli/lib/__tests__/plugin-details.test.ts +113 -96
  178. package/src/cli/lib/__tests__/search-plugins.test.ts +9 -16
  179. package/src/cli/lib/__tests__/uninstall-plugin.test.ts +1 -1
  180. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +38 -15
  181. package/src/cli/lib/diff-plugin.ts +1 -1
  182. package/src/cli/lib/inspect-plugin.ts +13 -97
  183. package/src/cli/lib/install-from-cloud.ts +1 -1
  184. package/src/cli/lib/install-from-github.ts +75 -154
  185. package/src/cli/lib/install-plugin-dependencies.ts +1 -1
  186. package/src/cli/lib/list-installed-plugins.ts +1 -1
  187. package/src/cli/lib/open-browser.ts +1 -1
  188. package/src/cli/lib/plugin-catalog-cache.ts +8 -51
  189. package/src/cli/lib/plugin-catalog-resolve.ts +3 -22
  190. package/src/cli/lib/plugin-details.ts +5 -27
  191. package/src/cli/lib/plugin-marketplace.ts +18 -266
  192. package/src/cli/lib/search-plugins.ts +23 -43
  193. package/src/cli/lib/toggle-plugin.ts +1 -1
  194. package/src/cli/lib/uninstall-plugin.ts +1 -1
  195. package/src/cli/lib/upgrade-plugin.ts +3 -49
  196. package/src/cli/program.ts +1 -3
  197. package/src/cli.ts +1 -1
  198. package/src/cloud/client.ts +0 -6
  199. package/src/cloud/consent-cache.test.ts +22 -201
  200. package/src/cloud/consent-cache.ts +16 -111
  201. package/src/cloud/sync-identity.ts +1 -1
  202. package/src/config/__tests__/chat-settings.test.ts +1 -1
  203. package/src/config/__tests__/cloud-identity.test.ts +15 -2
  204. package/src/config/__tests__/default-plugin-skill-discovery.test.ts +1 -1
  205. package/src/config/__tests__/default-profile-catalog.test.ts +12 -51
  206. package/src/config/__tests__/deployment-context-defaults.test.ts +13 -13
  207. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +4 -4
  208. package/src/config/__tests__/loader-last-known-good.test.ts +9 -9
  209. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +7 -7
  210. package/src/config/__tests__/plugin-resident-skill-discovery.test.ts +1 -1
  211. package/src/config/__tests__/profile-materialization.test.ts +2 -4
  212. package/src/config/__tests__/sync-gated-profiles.test.ts +1 -106
  213. package/src/config/acp-agent-write.ts +1 -1
  214. package/src/config/bundled-skills/settings/tools/open-system-settings.test.ts +1 -1
  215. package/src/config/bundled-skills/settings/tools/open-system-settings.ts +1 -1
  216. package/src/config/call-site-defaults.ts +0 -6
  217. package/src/config/cloud-identity.ts +12 -5
  218. package/src/config/composer-preferences.ts +1 -1
  219. package/src/config/default-profile-catalog.ts +8 -75
  220. package/src/config/default-profile-names.ts +2 -25
  221. package/src/config/env-registry.ts +1 -14
  222. package/src/config/env.ts +8 -6
  223. package/src/config/llm-resolver.ts +1 -2
  224. package/src/config/loader.ts +13 -17
  225. package/src/config/profile-materialization.ts +1 -1
  226. package/src/config/schema.ts +1 -7
  227. package/src/config/schemas/call-site-catalog.ts +0 -7
  228. package/src/config/schemas/llm.ts +25 -32
  229. package/src/config/seed-inference-profiles.ts +16 -17
  230. package/src/config/skills.ts +2 -2
  231. package/src/config/sync-gated-profiles.ts +6 -24
  232. package/src/credential-health/credential-health-service.ts +10 -3
  233. package/src/daemon/approval-generators.ts +3 -3
  234. package/src/daemon/config-watcher.ts +2 -2
  235. package/src/daemon/conversation-agent-loop-handlers.ts +0 -18
  236. package/src/daemon/conversation-agent-loop.ts +6 -97
  237. package/src/daemon/conversation-process.ts +1 -1
  238. package/src/daemon/conversation-skill-tools.ts +4 -72
  239. package/src/daemon/conversation-store.ts +1 -1
  240. package/src/daemon/conversation-surface-state.ts +0 -33
  241. package/src/daemon/conversation-surfaces.ts +1 -86
  242. package/src/daemon/conversation-tool-setup.test.ts +1 -1
  243. package/src/daemon/conversation-tool-setup.ts +0 -23
  244. package/src/daemon/conversation.ts +3 -5
  245. package/src/daemon/daemon-control.ts +3 -3
  246. package/src/daemon/dictation-profile-store.ts +3 -3
  247. package/src/daemon/event-loop-watchdog.test.ts +2 -198
  248. package/src/daemon/event-loop-watchdog.ts +0 -185
  249. package/src/daemon/external-plugins-bootstrap.ts +1 -1
  250. package/src/daemon/first-greeting.ts +1 -1
  251. package/src/daemon/handlers/skills.ts +1 -1
  252. package/src/daemon/host-app-control-proxy.ts +1 -1
  253. package/src/daemon/host-cu-proxy.ts +2 -2
  254. package/src/daemon/identity-helpers.ts +1 -1
  255. package/src/daemon/lifecycle.ts +11 -15
  256. package/src/daemon/main.ts +1 -1
  257. package/src/daemon/now-scratchpad.ts +1 -1
  258. package/src/daemon/process-message.ts +4 -4
  259. package/src/daemon/profiler-run-store.ts +2 -2
  260. package/src/daemon/providers-setup.ts +2 -2
  261. package/src/daemon/shutdown-handlers.ts +0 -10
  262. package/src/daemon/sqlite-corruption-watchdog.test.ts +2 -142
  263. package/src/daemon/sqlite-corruption-watchdog.ts +17 -81
  264. package/src/daemon/tool-side-effects.ts +1 -1
  265. package/src/desktop/desktop-session-manager.ts +1 -1
  266. package/src/desktop/desktop-wallpaper-renderer.ts +1 -1
  267. package/src/heartbeat/heartbeat-service.ts +1 -1
  268. package/src/home/feed-writer.ts +1 -1
  269. package/src/home/home-greeting-cache.ts +1 -1
  270. package/src/home/relationship-state-writer.ts +2 -2
  271. package/src/hooks/__tests__/hook-live-reload.test.ts +1 -1
  272. package/src/hooks/hook-loader.ts +2 -2
  273. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  274. package/src/inbound/oauth-callback-url.ts +3 -3
  275. package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
  276. package/src/ipc/socket-path.ts +1 -1
  277. package/src/live-voice/__tests__/live-voice-archive.test.ts +1 -1
  278. package/src/live-voice/__tests__/live-voice-vad.test.ts +1 -1
  279. package/src/live-voice/live-voice-session.ts +3 -66
  280. package/src/mcp/__tests__/effective-config.test.ts +1 -1
  281. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +2 -2
  282. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +2 -3
  283. package/src/mcp/__tests__/reload-signal-emission.test.ts +1 -1
  284. package/src/mcp/__tests__/reload-signal.test.ts +1 -1
  285. package/src/mcp/__tests__/workspace-mcp-config.test.ts +19 -21
  286. package/src/mcp/reload-signal.ts +1 -1
  287. package/src/mcp/workspace-mcp-config.ts +1 -23
  288. package/src/messaging/draft-store.ts +1 -1
  289. package/src/monitoring/__tests__/active-conversations.test.ts +1 -1
  290. package/src/monitoring/__tests__/page-cache.test.ts +1 -1
  291. package/src/monitoring/__tests__/stall-capture.test.ts +1 -1
  292. package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +1 -1
  293. package/src/monitoring/active-conversations.ts +1 -1
  294. package/src/monitoring/control.ts +1 -1
  295. package/src/monitoring/daemon-boot-time.ts +1 -1
  296. package/src/monitoring/daemon-heartbeat.ts +1 -1
  297. package/src/monitoring/page-cache.ts +1 -1
  298. package/src/monitoring/plugin-auto-update.ts +1 -7
  299. package/src/monitoring/plugin-source-watch.ts +1 -1
  300. package/src/monitoring/recovery/db.ts +1 -1
  301. package/src/monitoring/recovery/inflight-content.ts +1 -1
  302. package/src/monitoring/resource-sampler.ts +3 -14
  303. package/src/monitoring/stall-capture.ts +1 -1
  304. package/src/monitoring/worker.ts +9 -76
  305. package/src/monitoring/workspace-git-heartbeat.ts +1 -1
  306. package/src/oauth/connect-orchestrator.ts +4 -4
  307. package/src/permissions/checker.ts +1 -1
  308. package/src/permissions/workspace-policy.ts +1 -1
  309. package/src/persistence/__tests__/main-db-readonly-probe.ts +27 -52
  310. package/src/persistence/__tests__/message-content-file.test.ts +1 -1
  311. package/src/persistence/__tests__/slow-sync-log.test.ts +0 -2
  312. package/src/persistence/attachments-store.ts +1 -1
  313. package/src/persistence/conversation-crud.ts +1 -38
  314. package/src/persistence/conversation-directories.ts +1 -1
  315. package/src/persistence/conversation-types.ts +0 -8
  316. package/src/persistence/db-async-query.ts +1 -1
  317. package/src/persistence/db-connection.ts +11 -1
  318. package/src/persistence/db-init.ts +1 -1
  319. package/src/persistence/db-maintenance.ts +1 -1
  320. package/src/persistence/embeddings/__tests__/embedding-local-lifecycle.test.ts +1 -1
  321. package/src/persistence/embeddings/embedding-local.ts +4 -4
  322. package/src/persistence/embeddings/embedding-runtime-manager.ts +1 -1
  323. package/src/persistence/embeddings/qdrant-client.ts +1 -1
  324. package/src/persistence/embeddings/qdrant-manager.ts +1 -1
  325. package/src/persistence/job-handlers/__tests__/message-lexical-backfill.test.ts +1 -1
  326. package/src/persistence/job-handlers/__tests__/message-lexical-enqueue.test.ts +1 -1
  327. package/src/persistence/job-handlers/cleanup.ts +8 -17
  328. package/src/persistence/llm-usage-store.ts +2 -229
  329. package/src/persistence/message-content-file.ts +1 -1
  330. package/src/persistence/migrations/209-strip-thinking-from-consolidated.ts +1 -1
  331. package/src/persistence/migrations/222-strip-placeholder-sentinels-from-messages.ts +1 -1
  332. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  333. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  334. package/src/persistence/migrations/329-move-onboarding-events-to-telemetry-db.test.ts +13 -0
  335. package/src/persistence/migrations/330-move-auth-fallback-events-to-telemetry-db.test.ts +13 -0
  336. package/src/persistence/migrations/331-move-lifecycle-events-to-telemetry-db.test.ts +13 -0
  337. package/src/persistence/migrations/332-move-skill-loaded-events-to-telemetry-db.test.ts +13 -0
  338. package/src/persistence/migrations/333-create-telemetry-events-table.test.ts +7 -4
  339. package/src/persistence/migrations/334-backfill-telemetry-events-outbox.test.ts +13 -0
  340. package/src/persistence/migrations/387-drop-telemetry-tables.ts +51 -0
  341. package/src/persistence/migrations/__tests__/327-create-flush-checkpoints.test.ts +9 -1
  342. package/src/persistence/migrations/__tests__/387-drop-telemetry-tables.test.ts +79 -0
  343. package/src/persistence/migrations/helpers/relocation.ts +1 -1
  344. package/src/persistence/migrations/run-migrations.ts +1 -1
  345. package/src/persistence/migrations/validate-migration-state.ts +1 -1
  346. package/src/persistence/raw-query.ts +1 -29
  347. package/src/persistence/slow-sync-log.ts +0 -23
  348. package/src/persistence/steps.ts +2 -0
  349. package/src/{telemetry → persistence}/tool-audit.ts +6 -121
  350. package/src/plugin-api/index.ts +1 -1
  351. package/src/plugin-api/plugin-name-env.ts +1 -1
  352. package/src/plugins/__tests__/installed-plugin-dirs.test.ts +1 -1
  353. package/src/plugins/collect-source-versions.ts +1 -1
  354. package/src/plugins/defaults/channel/package.json +1 -1
  355. package/src/plugins/defaults/cloud-hosted/package.json +1 -1
  356. package/src/plugins/defaults/compaction/package.json +1 -1
  357. package/src/plugins/defaults/documents/package.json +1 -1
  358. package/src/plugins/defaults/empty-response/package.json +1 -1
  359. package/src/plugins/defaults/exploration-drift/package.json +1 -1
  360. package/src/plugins/defaults/image-fallback/package.json +1 -1
  361. package/src/plugins/defaults/image-recovery/package.json +1 -1
  362. package/src/plugins/defaults/max-tokens-continue/package.json +1 -1
  363. package/src/plugins/defaults/memory/__tests__/db-async-query.test.ts +1 -1
  364. package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +1 -1
  365. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +0 -82
  366. package/src/plugins/defaults/memory/__tests__/memory-retrospective-skill-card.test.ts +0 -41
  367. package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +0 -2
  368. package/src/plugins/defaults/memory/memory-retrospective-job.ts +3 -52
  369. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +0 -18
  370. package/src/plugins/defaults/memory/package.json +1 -1
  371. package/src/plugins/defaults/memory/paths.ts +4 -4
  372. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  373. package/src/plugins/defaults/memory/src/memory-v2-routes.ts +5 -5
  374. package/src/plugins/defaults/memory/src/memory-v3-routes.ts +0 -207
  375. package/src/plugins/defaults/memory/src/memory-worker-routes.ts +1 -1
  376. package/src/plugins/defaults/memory/startup.ts +1 -22
  377. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +2 -253
  378. package/src/plugins/defaults/memory/v3/orchestrate.ts +5 -129
  379. package/src/plugins/defaults/memory/worker-control.ts +1 -1
  380. package/src/plugins/defaults/memory/worker.ts +2 -2
  381. package/src/plugins/defaults/session/package.json +1 -1
  382. package/src/plugins/defaults/surface-completion-nudge/package.json +1 -1
  383. package/src/plugins/defaults/task-progress/package.json +1 -1
  384. package/src/plugins/defaults/task-progress-nudge/package.json +1 -1
  385. package/src/plugins/defaults/title-generate/package.json +1 -1
  386. package/src/plugins/defaults/tool-error/package.json +1 -1
  387. package/src/plugins/defaults/tool-result-truncate/package.json +1 -1
  388. package/src/plugins/defaults/turn-context/package.json +1 -1
  389. package/src/plugins/defaults/workspace/injectors.ts +1 -1
  390. package/src/plugins/defaults/workspace/package.json +1 -1
  391. package/src/plugins/disabled-state.ts +1 -1
  392. package/src/plugins/ensure-plugin-api-shim.ts +1 -1
  393. package/src/plugins/ensure-shared-dep-links.ts +1 -1
  394. package/src/plugins/installed-plugin-dirs.ts +1 -1
  395. package/src/plugins/mcp-servers.ts +7 -9
  396. package/src/plugins/mtime-cache.ts +2 -2
  397. package/src/plugins/source-versions.ts +1 -1
  398. package/src/prompts/bootstrap-cleanup.ts +1 -1
  399. package/src/prompts/persona-resolver.ts +1 -1
  400. package/src/prompts/sections.ts +2 -2
  401. package/src/prompts/system-prompt.ts +10 -42
  402. package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +0 -37
  403. package/src/providers/__tests__/cadet-connection-routing.test.ts +2 -2
  404. package/src/providers/cadet/client.ts +1 -1
  405. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +1 -1
  406. package/src/providers/inference/adapter-factory.ts +1 -1
  407. package/src/providers/inference/backfill.ts +3 -10
  408. package/src/providers/inference/profile-probe.ts +1 -1
  409. package/src/providers/retry.ts +0 -2
  410. package/src/providers/types.ts +0 -7
  411. package/src/providers/usage-tracking.ts +1 -1
  412. package/src/routes/__tests__/route-host.test.ts +1 -1
  413. package/src/routes/control.ts +1 -1
  414. package/src/routes/route-host-client.ts +1 -1
  415. package/src/routes/worker.ts +2 -2
  416. package/src/runtime/agent-wake.ts +1 -1
  417. package/src/runtime/assistant-stream-state.ts +1 -1
  418. package/src/runtime/auth/token-service.ts +1 -1
  419. package/src/runtime/background-job-runner.ts +1 -1
  420. package/src/runtime/middleware/twilio-validation.ts +2 -2
  421. package/src/runtime/routes/__tests__/app-pin-routes.test.ts +1 -1
  422. package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +1 -1
  423. package/src/runtime/routes/__tests__/avatar-state-routes.test.ts +3 -33
  424. package/src/runtime/routes/__tests__/cloud-credits-routes.test.ts +5 -4
  425. package/src/runtime/routes/__tests__/cloud-invoice-routes.test.ts +4 -3
  426. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +72 -298
  427. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +1 -1
  428. package/src/runtime/routes/__tests__/deprecated-route-context.test.ts +15 -62
  429. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +105 -12
  430. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  431. package/src/runtime/routes/__tests__/monitoring-routes.test.ts +1 -1
  432. package/src/runtime/routes/__tests__/plugins-routes.test.ts +47 -211
  433. package/src/runtime/routes/__tests__/route-host-worker-routes.test.ts +1 -1
  434. package/src/runtime/routes/__tests__/schedule-routes-disarm-reason.test.ts +1 -1
  435. package/src/runtime/routes/__tests__/schedule-worker-routes.test.ts +1 -1
  436. package/src/runtime/routes/__tests__/user-route-dispatcher-host.test.ts +1 -1
  437. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +1 -1
  438. package/src/runtime/routes/__tests__/user-routes-cli.test.ts +1 -1
  439. package/src/runtime/routes/__tests__/user-routes-notices.test.ts +1 -1
  440. package/src/runtime/routes/__tests__/user-routes-request.test.ts +1 -1
  441. package/src/runtime/routes/app-management-routes.ts +1 -1
  442. package/src/runtime/routes/attachment-routes.ts +1 -1
  443. package/src/runtime/routes/audit-routes.ts +1 -1
  444. package/src/runtime/routes/avatar-routes.ts +3 -10
  445. package/src/runtime/routes/cloud-routes.ts +3 -3
  446. package/src/runtime/routes/content-source-routes.ts +1 -1
  447. package/src/runtime/routes/conversation-query-routes.ts +49 -706
  448. package/src/runtime/routes/conversation-routes.ts +1 -38
  449. package/src/runtime/routes/debug-routes.ts +1 -1
  450. package/src/runtime/routes/deprecated-route-context.ts +5 -61
  451. package/src/runtime/routes/heartbeat-routes.ts +1 -1
  452. package/src/runtime/routes/identity-routes.ts +1 -1
  453. package/src/runtime/routes/index.ts +0 -6
  454. package/src/runtime/routes/inference-profile-session-handler.ts +3 -3
  455. package/src/runtime/routes/inference-profiles-routes.ts +48 -21
  456. package/src/runtime/routes/inference-provider-connection-routes.ts +0 -1
  457. package/src/runtime/routes/llm-call-sites-routes.ts +3 -3
  458. package/src/runtime/routes/log-export/__tests__/installed-inventory.test.ts +1 -1
  459. package/src/runtime/routes/log-export/__tests__/workspace-allowlist-error-contract.test.ts +1 -1
  460. package/src/runtime/routes/log-export/__tests__/workspace-allowlist.test.ts +1 -1
  461. package/src/runtime/routes/log-export/workspace-allowlist.ts +1 -1
  462. package/src/runtime/routes/log-export-routes.ts +17 -15
  463. package/src/runtime/routes/migration-rollback-routes.ts +1 -1
  464. package/src/runtime/routes/migration-routes.ts +2 -3
  465. package/src/runtime/routes/monitoring-routes.ts +2 -2
  466. package/src/runtime/routes/oauth-providers.ts +5 -5
  467. package/src/runtime/routes/plugins-routes.ts +38 -163
  468. package/src/runtime/routes/profiler-routes.ts +1 -1
  469. package/src/runtime/routes/route-host-worker-routes.ts +1 -1
  470. package/src/runtime/routes/sanity-routes.ts +1 -1
  471. package/src/runtime/routes/schedule-routes.ts +1 -1
  472. package/src/runtime/routes/schedule-worker-routes.ts +1 -1
  473. package/src/runtime/routes/settings-routes.ts +1 -1
  474. package/src/runtime/routes/sounds-config-routes.ts +1 -1
  475. package/src/runtime/routes/surface-conversation-resolver.ts +1 -7
  476. package/src/runtime/routes/user-route-dispatcher.ts +1 -3
  477. package/src/runtime/routes/user-route-import.ts +1 -1
  478. package/src/runtime/routes/user-route-resolution.ts +1 -1
  479. package/src/runtime/routes/user-routes-cli.ts +1 -1
  480. package/src/runtime/routes/workspace-commit-routes.ts +1 -1
  481. package/src/runtime/routes/workspace-greetings.ts +1 -1
  482. package/src/runtime/routes/workspace-routes.ts +1 -1
  483. package/src/runtime/routes/workspace-utils.ts +1 -1
  484. package/src/runtime/sync/resource-sync-events.ts +1 -1
  485. package/src/schedule/__tests__/plugin-schedule-declarations.test.ts +1 -1
  486. package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1 -1
  487. package/src/schedule/plugin-schedule-availability.ts +1 -1
  488. package/src/schedule/plugin-schedule-declarations.ts +1 -1
  489. package/src/schedule/run-script.ts +1 -1
  490. package/src/schedule/scheduler.ts +1 -11
  491. package/src/schedule/worker-control.ts +1 -1
  492. package/src/schedule/worker.ts +3 -3
  493. package/src/security/oauth2.ts +2 -2
  494. package/src/security/secret-allowlist.ts +1 -1
  495. package/src/signals/cancel.ts +1 -1
  496. package/src/signals/conversation-undo.ts +1 -1
  497. package/src/signals/emit-event.ts +1 -1
  498. package/src/signals/event-stream.ts +1 -1
  499. package/src/signals/user-message.ts +1 -1
  500. package/src/skills/catalog-install.ts +2 -1
  501. package/src/skills/clawhub.ts +1 -1
  502. package/src/skills/cloud-store.ts +1 -1
  503. package/src/skills/path-classifier.ts +1 -1
  504. package/src/skills/skill-history.ts +1 -1
  505. package/src/skills/skillssh-registry.ts +1 -1
  506. package/src/skills/uninstall.ts +1 -1
  507. package/src/skills/workspace-skill-md-signature.ts +1 -1
  508. package/src/subagent/manager.ts +1 -1
  509. package/src/theme/workspace-theme.ts +1 -1
  510. package/src/tools/browser/auth-cache.ts +1 -1
  511. package/src/tools/browser/browser-manager.ts +1 -1
  512. package/src/tools/browser/runtime-check.ts +1 -1
  513. package/src/tools/executor.ts +4 -4
  514. package/src/tools/filesystem/write.ts +1 -1
  515. package/src/tools/permission-checker.ts +2 -51
  516. package/src/tools/run-standalone.ts +1 -1
  517. package/src/tools/skills/format-input-schema.ts +1 -1
  518. package/src/tools/skills/load.ts +1 -1
  519. package/src/tools/skills/scaffold-cloud.ts +0 -32
  520. package/src/tools/terminal/safe-env.ts +1 -2
  521. package/src/tools/terminal/sanitized-bash.ts +1 -1
  522. package/src/tools/terminal/shell.ts +1 -1
  523. package/src/tools/tool-approval-handler.ts +4 -1
  524. package/src/tools/workflows/manage-workflows.ts +2 -2
  525. package/src/tools/workflows/run-workflow.test.ts +1 -1
  526. package/src/tools/workspace-tools/loader.ts +1 -1
  527. package/src/tts/synthesis-stream.ts +2 -2
  528. package/src/usage/attribution.ts +1 -11
  529. package/src/util/browser.ts +1 -1
  530. package/src/util/bun-runtime.ts +2 -1
  531. package/src/util/device-id.ts +1 -1
  532. package/src/util/disk-usage.ts +4 -139
  533. package/src/util/layout.ts +3 -3
  534. package/src/util/logger.ts +1 -1
  535. package/src/util/logs-db-path.ts +1 -1
  536. package/src/util/memory-db-path.ts +1 -1
  537. package/src/util/{platform.ts → os.ts} +5 -30
  538. package/src/util/process-tree.ts +19 -0
  539. package/src/util/sqlite3-runtime.ts +1 -1
  540. package/src/util/telemetry-db-path.ts +1 -1
  541. package/src/watcher/__tests__/engine.test.ts +0 -23
  542. package/src/watcher/engine.ts +0 -7
  543. package/src/windows-compiled-cli.ts +0 -4
  544. package/src/windows-compiled-worker-entry.ts +0 -6
  545. package/src/workflows/leaf-runner.test.ts +1 -1
  546. package/src/workflows/leaf-runner.ts +1 -1
  547. package/src/workflows/library.ts +1 -1
  548. package/src/workspace/adaptive-thinking-repair.ts +5 -24
  549. package/src/workspace/byok-default-profile-ensure.ts +24 -26
  550. package/src/workspace/custom-profile-ensure.ts +2 -2
  551. package/src/workspace/git-service.ts +1 -1
  552. package/src/workspace/hatched-date.ts +1 -1
  553. package/src/workspace/migrations/038-unify-llm-callsite-configs.ts +2 -2
  554. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  555. package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +1 -1
  556. package/src/workspace/migrations/077-seed-memory-router-callsite.ts +1 -1
  557. package/src/workspace/migrations/registry.ts +0 -4
  558. package/src/workspace/turn-commit.ts +1 -1
  559. package/docs/activation-funnel-telemetry.md +0 -324
  560. package/scripts/bundled-plugin-packages.ts +0 -154
  561. package/scripts/generate-bundled-plugin-packages.ts +0 -29
  562. package/src/__tests__/activation-early-marking.test.ts +0 -114
  563. package/src/__tests__/auth-fallback-events-store.test.ts +0 -99
  564. package/src/__tests__/config-get-vision-flag.test.ts +0 -139
  565. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +0 -400
  566. package/src/__tests__/internal-telemetry-routes.test.ts +0 -213
  567. package/src/__tests__/telemetry-routes.test.ts +0 -182
  568. package/src/__tests__/turn-events-store.test.ts +0 -376
  569. package/src/__tests__/ui-channel-variants.test.ts +0 -53
  570. package/src/avatar/__tests__/avatar-changed-telemetry.test.ts +0 -217
  571. package/src/avatar/avatar-changed-telemetry.ts +0 -128
  572. package/src/calls/__tests__/call-funnel-telemetry.test.ts +0 -204
  573. package/src/cli/commands/telemetry.help.ts +0 -27
  574. package/src/cli/commands/telemetry.ts +0 -83
  575. package/src/cli/lib/__tests__/local-plugin-upgrade.test.ts +0 -251
  576. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +0 -113
  577. package/src/cli/lib/__tests__/plugin-marketplace.test.ts +0 -384
  578. package/src/cli/lib/__tests__/plugin-pin-history.test.ts +0 -164
  579. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +0 -228
  580. package/src/cli/lib/bundled-marketplace.json +0 -1575
  581. package/src/cli/lib/bundled-plugin-packages.json +0 -827
  582. package/src/cli/lib/bundled-plugin-packages.ts +0 -87
  583. package/src/cli/lib/plugin-catalog-local.ts +0 -94
  584. package/src/cli/lib/plugin-pin-history.ts +0 -276
  585. package/src/cloud/feature-gate.ts +0 -8
  586. package/src/config/__tests__/cloud-rehydration.test.ts +0 -180
  587. package/src/config/cloud-rehydration.ts +0 -35
  588. package/src/daemon/__tests__/auto-profile-router.test.ts +0 -380
  589. package/src/daemon/auto-profile-router.ts +0 -428
  590. package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +0 -391
  591. package/src/monitoring/__tests__/db-integrity-sample.test.ts +0 -113
  592. package/src/monitoring/__tests__/oom-kill-reporter.test.ts +0 -374
  593. package/src/monitoring/db-integrity-check.ts +0 -163
  594. package/src/monitoring/db-integrity-sample.ts +0 -176
  595. package/src/monitoring/oom-kill-reporter.ts +0 -469
  596. package/src/onboarding/__tests__/onboarding-events-store.test.ts +0 -158
  597. package/src/onboarding/onboarding-events-store.ts +0 -296
  598. package/src/persistence/__tests__/raw-query-telemetry.test.ts +0 -76
  599. package/src/persistence/lifecycle-events-store.test.ts +0 -134
  600. package/src/persistence/lifecycle-events-store.ts +0 -110
  601. package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +0 -76
  602. package/src/plugins/defaults/memory/activation-session-store.ts +0 -50
  603. package/src/plugins/defaults/memory/src/__tests__/memory-v3-gate-stats.test.ts +0 -281
  604. package/src/runtime/routes/auto-profile-routes.ts +0 -83
  605. package/src/runtime/routes/internal-telemetry-routes.ts +0 -142
  606. package/src/runtime/routes/telemetry-routes.ts +0 -274
  607. package/src/security/auth-fallback-events-store.ts +0 -57
  608. package/src/telemetry/__tests__/activation-funnel.test.ts +0 -95
  609. package/src/telemetry/__tests__/config-setting-events-store.test.ts +0 -63
  610. package/src/telemetry/__tests__/config-setting-snapshot.test.ts +0 -143
  611. package/src/telemetry/__tests__/flush-checkpoints.test.ts +0 -56
  612. package/src/telemetry/__tests__/live-voice-funnel.test.ts +0 -174
  613. package/src/telemetry/__tests__/outbox-test-harness.ts +0 -85
  614. package/src/telemetry/__tests__/phone-call-funnel.test.ts +0 -72
  615. package/src/telemetry/__tests__/telemetry-event-fixtures.ts +0 -282
  616. package/src/telemetry/__tests__/watchdog-events-store.test.ts +0 -71
  617. package/src/telemetry/activation-funnel.ts +0 -172
  618. package/src/telemetry/config-setting-events-store.ts +0 -40
  619. package/src/telemetry/config-setting-snapshot.ts +0 -170
  620. package/src/telemetry/flush-checkpoints.ts +0 -70
  621. package/src/telemetry/live-voice-funnel.ts +0 -185
  622. package/src/telemetry/memory-corpus-size.test.ts +0 -120
  623. package/src/telemetry/memory-corpus-size.ts +0 -184
  624. package/src/telemetry/memory-tier-reporter.test.ts +0 -195
  625. package/src/telemetry/memory-tier-reporter.ts +0 -130
  626. package/src/telemetry/phone-call-funnel.ts +0 -144
  627. package/src/telemetry/skill-loaded-events-store.test.ts +0 -93
  628. package/src/telemetry/skill-loaded-events-store.ts +0 -39
  629. package/src/telemetry/telemetry-event-sources.test.ts +0 -223
  630. package/src/telemetry/telemetry-event-sources.ts +0 -597
  631. package/src/telemetry/telemetry-events-outbox.test.ts +0 -375
  632. package/src/telemetry/telemetry-events-outbox.ts +0 -237
  633. package/src/telemetry/telemetry-main-db.ts +0 -48
  634. package/src/telemetry/telemetry-wire-source.json +0 -4
  635. package/src/telemetry/telemetry-wire-validation.test.ts +0 -157
  636. package/src/telemetry/telemetry-wire-validation.ts +0 -162
  637. package/src/telemetry/telemetry-wire.generated.ts +0 -483
  638. package/src/telemetry/tool-executed-events-store.test.ts +0 -210
  639. package/src/telemetry/tool-executed-events-store.ts +0 -102
  640. package/src/telemetry/trace-collection-policy.test.ts +0 -28
  641. package/src/telemetry/trace-collection-policy.ts +0 -30
  642. package/src/telemetry/turn-events-store.ts +0 -216
  643. package/src/telemetry/turn-trace-store.test.ts +0 -884
  644. package/src/telemetry/turn-trace-store.ts +0 -399
  645. package/src/telemetry/types.test.ts +0 -38
  646. package/src/telemetry/types.ts +0 -780
  647. package/src/telemetry/usage-telemetry-reporter.test.ts +0 -3445
  648. package/src/telemetry/usage-telemetry-reporter.ts +0 -566
  649. package/src/telemetry/watchdog-direct-emit.test.ts +0 -112
  650. package/src/telemetry/watchdog-direct-emit.ts +0 -104
  651. package/src/telemetry/watchdog-events-store.ts +0 -31
  652. package/src/tools/ui-surface/channel-variants.ts +0 -52
  653. package/src/watcher/__tests__/telemetry.test.ts +0 -178
  654. package/src/watcher/telemetry.ts +0 -93
  655. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +0 -165
  656. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +0 -151
  657. /package/src/{telemetry → persistence}/tool-usage-store.ts +0 -0
  658. /package/src/{telemetry → persistence}/turn-outcome.ts +0 -0
@@ -12,6 +12,8 @@ import { beforeEach, describe, expect, mock, test } from "bun:test";
12
12
 
13
13
  import { Command } from "commander";
14
14
 
15
+ import { MAX_COMMAND_LABEL_LENGTH } from "../../../util/process-tree.js";
16
+
15
17
  // ---------------------------------------------------------------------------
16
18
  // Mock state
17
19
  // ---------------------------------------------------------------------------
@@ -264,3 +266,68 @@ describe("ps command — failures", () => {
264
266
  expect(exitCode).toBe(1);
265
267
  });
266
268
  });
269
+
270
+ describe("ps command — long labels stay bounded", () => {
271
+ const longName =
272
+ "bun x -y @some/org/deeply-nested-mcp-server --stdio --port 8080 --verbose";
273
+
274
+ test("caps a command-derived name that runs long, keeping head and tail", async () => {
275
+ mockResponse = {
276
+ ok: true,
277
+ result: {
278
+ processes: [{ name: longName, status: "running", origin: "workspace" }],
279
+ },
280
+ };
281
+
282
+ await runPsCommand();
283
+ const line = logLines.find((l) => l.trimStart().startsWith("bun x"))!;
284
+
285
+ // The interpreter survives at the head, the args' tail stays intact ahead
286
+ // of the origin column, and the middle collapses to one ellipsis so no
287
+ // column runs unbounded.
288
+ expect(line).toBeDefined();
289
+ expect(line.trimStart().startsWith(longName.slice(0, 16))).toBe(true);
290
+ expect(line).toContain("--stdio --port 8080 --verbose");
291
+ expect(line).toContain("…");
292
+ // Bounded end to end: capped label + two-space gutter + origin column.
293
+ expect(line.trimStart().length).toBeLessThanOrEqual(
294
+ MAX_COMMAND_LABEL_LENGTH + 2 + "workspace".length,
295
+ );
296
+ });
297
+
298
+ test("keeps the hierarchy indentation on a capped child label", async () => {
299
+ mockResponse = {
300
+ ok: true,
301
+ result: {
302
+ processes: [
303
+ {
304
+ name: "assistant",
305
+ status: "running",
306
+ origin: "workspace",
307
+ children: [
308
+ { name: longName, status: "running", origin: "workspace" },
309
+ ],
310
+ },
311
+ ],
312
+ },
313
+ };
314
+
315
+ await runPsCommand();
316
+ const line = logLines.find((l) => l.trimStart().startsWith("bun x"))!;
317
+ expect(line).toMatch(/^ {2}bun x/);
318
+ });
319
+
320
+ test("leaves short labels untouched", async () => {
321
+ mockResponse = {
322
+ ok: true,
323
+ result: {
324
+ processes: [{ name: "qdrant", status: "running", origin: "workspace" }],
325
+ },
326
+ };
327
+
328
+ await runPsCommand();
329
+ const line = logLines.find((l) => l.trimStart().startsWith("qdrant"))!;
330
+ expect(line).not.toContain("…");
331
+ expect(line.trimStart().startsWith("qdrant")).toBe(true);
332
+ });
333
+ });
@@ -31,8 +31,8 @@ Examples:
31
31
  Fields:
32
32
  cloudUrl The Cadet Cloud base URL this assistant connects to
33
33
  assistantId This assistant's platform UUID
34
- organizationId The organization this assistant belongs to (from CLOUD_ORGANIZATION_ID)
35
- userId The user who owns this assistant (from CLOUD_USER_ID)
34
+ organizationId The organization this assistant belongs to
35
+ userId The user who owns this assistant
36
36
  authenticated Whether all prerequisites for platform authentication are met
37
37
  (platform URL and assistant API key both present)
38
38
 
@@ -4,7 +4,7 @@ import { isAbsolute, join } from "node:path";
4
4
  import type { Command } from "commander";
5
5
 
6
6
  import { cliIpcCall, exitFromIpcResult } from "../../ipc/cli-client.js";
7
- import { getWorkspaceDir } from "../../util/platform.js";
7
+ import { getWorkspaceDir } from "../../util/layout.js";
8
8
  import { applyCommandHelp, subcommand } from "../lib/cli-command-help.js";
9
9
  import { registerCommand } from "../lib/register-command.js";
10
10
  import { log } from "../logger.js";
@@ -22,7 +22,7 @@ import { dirname, join } from "node:path";
22
22
 
23
23
  import type { Command } from "commander";
24
24
 
25
- import { getWorkspaceDir } from "../../util/platform.js";
25
+ import { getWorkspaceDir } from "../../util/layout.js";
26
26
  import { applyCommandHelp, subcommand } from "../lib/cli-command-help.js";
27
27
  import { registerCommand } from "../lib/register-command.js";
28
28
  import { USER_AGENT } from "../lib/user-agent.js";
@@ -18,7 +18,7 @@ describe("assistant cloud subscription", () => {
18
18
  cancelAt: null,
19
19
  selectedCreditTier: "credits_50",
20
20
  package: { key: "super", name: "Super", version: 2, customized: false },
21
- entitlements: { managedEmail: true, phoneNumber: false },
21
+ entitlements: { cloudEmail: true, phoneNumber: false },
22
22
  },
23
23
  };
24
24
  });
@@ -32,7 +32,7 @@ describe("assistant cloud subscription", () => {
32
32
  expect(parsed.planId).toBe("pro");
33
33
  expect(parsed.status).toBe("active");
34
34
  expect(parsed.package.name).toBe("Super");
35
- expect(parsed.entitlements.managedEmail).toBe(true);
35
+ expect(parsed.entitlements.cloudEmail).toBe(true);
36
36
  });
37
37
 
38
38
  test("plain text mode does not emit JSON to stdout", async () => {
@@ -136,7 +136,7 @@ Fields:
136
136
  selectedCreditTier The selected Pro credit bundle tier, or null
137
137
  package The named Pro package pin ({ key, name, version,
138
138
  customized }), or null
139
- entitlements Plan-gated features ({ managedEmail, phoneNumber })
139
+ entitlements Plan-gated features ({ cloudEmail, phoneNumber })
140
140
 
141
141
  For the credit balance (not the plan), use 'assistant cloud credits'. For
142
142
  plan pricing, use 'assistant cloud plans'.
@@ -46,7 +46,7 @@ interface CloudSubscriptionResult {
46
46
  customized: boolean;
47
47
  } | null;
48
48
  entitlements: {
49
- managedEmail: boolean;
49
+ cloudEmail: boolean;
50
50
  phoneNumber: boolean;
51
51
  };
52
52
  }
@@ -187,7 +187,7 @@ export function registerCloudCommand(program: Command): void {
187
187
  log.info(`Credit tier: ${result.selectedCreditTier}`);
188
188
  }
189
189
  const ent: string[] = [];
190
- if (result.entitlements.managedEmail) {
190
+ if (result.entitlements.cloudEmail) {
191
191
  ent.push("managed email");
192
192
  }
193
193
  if (result.entitlements.phoneNumber) {
@@ -20,9 +20,9 @@ import { execFileSync } from "node:child_process";
20
20
 
21
21
  import type { Command } from "commander";
22
22
 
23
+ import { getDbPath } from "../../../util/layout.js";
23
24
  import { getLogsDbPath } from "../../../util/logs-db-path.js";
24
25
  import { getMemoryDbPath } from "../../../util/memory-db-path.js";
25
- import { getDbPath } from "../../../util/platform.js";
26
26
  import { getTelemetryDbPath } from "../../../util/telemetry-db-path.js";
27
27
  import { dim, green, red } from "../../lib/cli-colors.js";
28
28
  import { subcommand } from "../../lib/cli-command-help.js";
@@ -28,7 +28,7 @@ import { Database } from "bun:sqlite";
28
28
  import { eq } from "drizzle-orm";
29
29
  import { drizzle } from "drizzle-orm/bun-sqlite";
30
30
 
31
- import { getWorkspaceDir } from "../../../util/platform.js";
31
+ import { getWorkspaceDir } from "../../../util/layout.js";
32
32
  import type { RepairContext, RepairStep, StepResult } from "./repair-steps.js";
33
33
 
34
34
  /**
@@ -18,7 +18,7 @@ import { existsSync } from "node:fs";
18
18
 
19
19
  import type { Command } from "commander";
20
20
 
21
- import { getDbPath } from "../../../util/platform.js";
21
+ import { getDbPath } from "../../../util/layout.js";
22
22
  import { dim, green, red } from "../../lib/cli-colors.js";
23
23
  import { subcommand } from "../../lib/cli-command-help.js";
24
24
  import { shouldOutputJson, writeOutput } from "../../output.js";
@@ -31,9 +31,9 @@ import { Database } from "bun:sqlite";
31
31
  import type { Command } from "commander";
32
32
 
33
33
  import type { SchemaContractReport } from "../../../persistence/schema-contract.js";
34
+ import { getDbPath } from "../../../util/layout.js";
34
35
  import { getLogsDbPath } from "../../../util/logs-db-path.js";
35
36
  import { getMemoryDbPath } from "../../../util/memory-db-path.js";
36
- import { getDbPath } from "../../../util/platform.js";
37
37
  import { getTelemetryDbPath } from "../../../util/telemetry-db-path.js";
38
38
  import { red } from "../../lib/cli-colors.js";
39
39
  import { subcommand } from "../../lib/cli-command-help.js";
@@ -25,7 +25,6 @@ interface ProfileSummary {
25
25
  provider: string | null;
26
26
  model: string | null;
27
27
  status: "active" | "disabled";
28
- source: "managed" | "user";
29
28
  provider_connection?: string;
30
29
  availability: { status: string; message?: string } | null;
31
30
  /** Static problem with the stored entry itself; absent when it checks out. */
@@ -180,23 +179,13 @@ export function attachProfilesSubcommand(inference: Command): void {
180
179
  return;
181
180
  }
182
181
  renderTable(
183
- [
184
- "NAME",
185
- "LABEL",
186
- "PROVIDER",
187
- "MODEL",
188
- "STATUS",
189
- "SOURCE",
190
- "AVAIL",
191
- "CONFIG",
192
- ],
182
+ ["NAME", "LABEL", "PROVIDER", "MODEL", "STATUS", "AVAIL", "CONFIG"],
193
183
  rows.map((p) => [
194
184
  p.name,
195
185
  p.label ?? "-",
196
186
  p.provider ?? "-",
197
187
  p.model ?? "-",
198
188
  p.status,
199
- p.source,
200
189
  p.availability ? p.availability.status : "-",
201
190
  p.config_issue ? p.config_issue.code : "ok",
202
191
  ]),
@@ -2,12 +2,11 @@
2
2
  * Tests for the `assistant memory v3` CLI subgroup (section-lane model).
3
3
  *
4
4
  * Validates:
5
- * - Subcommand registration (rebuild-index, backfill-sections, gate-stats)
5
+ * - Subcommand registration (rebuild-index, backfill-sections)
6
6
  * under `memory v3`.
7
7
  * - `rebuild-index` and `backfill-sections` route through IPC to the daemon.
8
8
  * - `backfill-sections` passes a long IPC timeout (the one-time full-corpus
9
9
  * embed easily outlasts the default 60s).
10
- * - `gate-stats` calls handleMemoryV3GateStats directly — no daemon required.
11
10
  * - Error paths return a non-zero exit code without throwing.
12
11
  */
13
12
 
@@ -40,47 +39,6 @@ let mockIpcResult: {
40
39
  /** Captured log output for assertion. */
41
40
  let logOutput: string[] = [];
42
41
 
43
- /** Shared fake gate-stats payload used across gate-stats tests. */
44
- const fakeGateStats = {
45
- lookbackDays: 30,
46
- totalRuns: 10,
47
- buckets: [
48
- {
49
- pageCountRange: "0–9",
50
- total: 2,
51
- scored: 1,
52
- passed: 2,
53
- scoredPassRate: 1,
54
- reasons: { dense_pass: 1, dense_disabled: 1 },
55
- },
56
- {
57
- pageCountRange: "10–49",
58
- total: 5,
59
- scored: 4,
60
- passed: 3,
61
- scoredPassRate: 0.75,
62
- reasons: { dense_pass: 3, fail_no_signal: 1 },
63
- },
64
- {
65
- pageCountRange: "50–199",
66
- total: 2,
67
- scored: 2,
68
- passed: 1,
69
- scoredPassRate: 0.5,
70
- reasons: { dense_pass: 1, fail_no_signal: 1 },
71
- },
72
- {
73
- pageCountRange: "200+",
74
- total: 1,
75
- scored: 1,
76
- passed: 0,
77
- scoredPassRate: 0,
78
- reasons: { fail_no_signal: 1 },
79
- },
80
- ],
81
- unknownPageCount: { total: 0, passed: 0, reasons: {} },
82
- };
83
-
84
42
  // ---------------------------------------------------------------------------
85
43
  // Mocks
86
44
  // ---------------------------------------------------------------------------
@@ -111,27 +69,6 @@ mock.module("../../../../util/logger.js", () => ({
111
69
  }));
112
70
 
113
71
  // ---------------------------------------------------------------------------
114
- // gate-stats direct-invocation mocks
115
- // ---------------------------------------------------------------------------
116
-
117
- /** Args captured from the last handleMemoryV3GateStats call. */
118
- let lastGateStatsArgs: { lookbackDays: number; db: unknown } | null = null;
119
-
120
- /** What handleMemoryV3GateStats returns, or an error to throw. */
121
- let gateStatsImpl: (() => unknown) | null = null;
122
-
123
- mock.module(
124
- "../../../../plugins/defaults/memory/src/memory-v3-routes.js",
125
- () => ({
126
- handleMemoryV3GateStats: (lookbackDays: number, db: unknown) => {
127
- lastGateStatsArgs = { lookbackDays, db };
128
- if (gateStatsImpl) {
129
- return gateStatsImpl();
130
- }
131
- return fakeGateStats;
132
- },
133
- }),
134
- );
135
72
 
136
73
  mock.module("../../../../persistence/db-connection.js", () => ({
137
74
  getTelemetrySqlite: () => ({}),
@@ -204,8 +141,6 @@ beforeEach(() => {
204
141
  ok: true,
205
142
  result: { articles: 3, sections: 12, failures: 0 },
206
143
  };
207
- lastGateStatsArgs = null;
208
- gateStatsImpl = null;
209
144
  logOutput = [];
210
145
  process.exitCode = 0;
211
146
  });
@@ -226,7 +161,6 @@ describe("subcommand registration", () => {
226
161
  "backfill-sections",
227
162
  "eval",
228
163
  "eval-tally",
229
- "gate-stats",
230
164
  "rebuild-index",
231
165
  ]);
232
166
  });
@@ -310,52 +244,3 @@ describe("memory v3 backfill-sections", () => {
310
244
  });
311
245
 
312
246
  // ---------------------------------------------------------------------------
313
- // gate-stats (direct invocation — no daemon required)
314
- // ---------------------------------------------------------------------------
315
-
316
- describe("memory v3 gate-stats", () => {
317
- test("calls handleMemoryV3GateStats directly with default lookback (no IPC)", async () => {
318
- const { exitCode } = await runCommand(["memory", "v3", "gate-stats"]);
319
-
320
- expect(exitCode).toBe(0);
321
- // Must NOT have gone through IPC.
322
- expect(lastIpcCall).toBeNull();
323
- // Must have called the handler directly with the default lookback.
324
- expect(lastGateStatsArgs!.lookbackDays).toBe(30);
325
- });
326
-
327
- test("forwards --lookback-days directly to handleMemoryV3GateStats", async () => {
328
- await runCommand(["memory", "v3", "gate-stats", "--lookback-days", "7"]);
329
-
330
- expect(lastIpcCall).toBeNull();
331
- expect(lastGateStatsArgs!.lookbackDays).toBe(7);
332
- });
333
-
334
- test("prints formatted table on success (no --json)", async () => {
335
- await runCommand(["memory", "v3", "gate-stats"]);
336
-
337
- expect(logOutput.some((l) => l.includes("Gate-stats"))).toBe(true);
338
- expect(logOutput.some((l) => l.includes("10–49"))).toBe(true);
339
- expect(logOutput.some((l) => l.includes("75.0%"))).toBe(true);
340
- });
341
-
342
- test("emits raw JSON with --json", async () => {
343
- await runCommand(["memory", "v3", "gate-stats", "--json"]);
344
-
345
- const raw = logOutput.join("");
346
- const parsed = JSON.parse(raw) as typeof fakeGateStats;
347
- expect(parsed.totalRuns).toBe(10);
348
- expect(parsed.buckets).toHaveLength(4);
349
- });
350
-
351
- test("exits with code 1 when handleMemoryV3GateStats throws", async () => {
352
- gateStatsImpl = () => {
353
- throw new Error("telemetry DB locked");
354
- };
355
-
356
- const { exitCode } = await runCommand(["memory", "v3", "gate-stats"]);
357
-
358
- expect(exitCode).toBe(1);
359
- expect(logOutput.some((l) => l.includes("telemetry DB locked"))).toBe(true);
360
- });
361
- });
@@ -600,9 +600,7 @@ safely.
600
600
 
601
601
  Examples:
602
602
  $ assistant memory v3 rebuild-index
603
- $ assistant memory v3 backfill-sections
604
- $ assistant memory v3 gate-stats
605
- $ assistant memory v3 gate-stats --lookback-days 7 --json`,
603
+ $ assistant memory v3 backfill-sections`,
606
604
  subcommands: [
607
605
  {
608
606
  name: "rebuild-index",
@@ -712,46 +710,6 @@ Examples:
712
710
  $ assistant memory v3 eval --snapshot .mv3/snapshot/concepts --staging .mv3/staging --out .mv3/eval
713
711
  $ assistant memory v3 eval --snapshot .mv3/snapshot/concepts --staging .mv3/staging --out .mv3/eval --turns-file .mv3/eval/key.json
714
712
  $ assistant memory v3 eval --snapshot .mv3/snapshot/concepts --staging .mv3/staging --out .mv3/eval --exclude-conversation <migration-conv-id>`,
715
- },
716
- {
717
- name: "gate-stats",
718
- description:
719
- "Show injection gate pass rates bucketed by corpus size (read-only)",
720
- options: [
721
- {
722
- flags: "--lookback-days <n>",
723
- description: "Days of telemetry to aggregate (1–90, default 30)",
724
- defaultValue: "30",
725
- },
726
- {
727
- flags: "--json",
728
- description: "Emit raw JSON instead of a formatted table",
729
- },
730
- ],
731
- helpText: `
732
- Reads the memory v3 injection gate telemetry outbox and prints pass rates
733
- and reason distributions grouped by concept page count bucket
734
- (0–9 / 10–49 / 50–199 / 200+). Scored runs (dense lane was available and
735
- actually weighed scores) are reported separately from pass-open shortcuts
736
- (dense disabled / unavailable / gate threw) so scoredPassRate reflects
737
- only contested gate decisions — the signal relevant for threshold calibration.
738
-
739
- Coverage is limited to runs still pending platform flush. In a healthy system
740
- the outbox holds only the last few minutes to hours of events, so
741
- --lookback-days is an upper bound, not a guarantee; long-window aggregation
742
- lives on the cloud side on top of flushed watchdog events.
743
-
744
- Reads the telemetry database directly — the assistant does not need to be
745
- running.
746
-
747
- Intended use: verify that gate firing rates shift as expected after a
748
- config or threshold change, and check whether the bm25-auto-calibration
749
- flag is worth enabling for large corpora.
750
-
751
- Examples:
752
- $ assistant memory v3 gate-stats
753
- $ assistant memory v3 gate-stats --lookback-days 7
754
- $ assistant memory v3 gate-stats --json | jq '.buckets[] | select(.pageCountRange == "200+")'`,
755
713
  },
756
714
  {
757
715
  name: "eval-tally",
@@ -25,7 +25,6 @@ import type {
25
25
  MemoryEvalTallyResult,
26
26
  } from "../../../plugins/defaults/memory/src/memory-eval-routes.js";
27
27
  import type {
28
- GateStatsResponse,
29
28
  MemoryV3BackfillSectionsResult,
30
29
  MemoryV3RebuildIndexResult,
31
30
  } from "../../../plugins/defaults/memory/src/memory-v3-routes.js";
@@ -53,36 +52,6 @@ function collectRepeatable(value: string, acc: string[]): string[] {
53
52
  return [...acc, value];
54
53
  }
55
54
 
56
- /** Render gate-stats as a human-readable table. */
57
- function formatGateStats(r: GateStatsResponse): string {
58
- const lines: string[] = [
59
- `Gate-stats (last ${r.lookbackDays} day${r.lookbackDays === 1 ? "" : "s"}, ${r.totalRuns} run${r.totalRuns === 1 ? "" : "s"})`,
60
- "",
61
- `Bucket Total Scored Passed ScoredPassRate Top reasons`,
62
- ];
63
- for (const b of r.buckets) {
64
- const rate =
65
- b.scoredPassRate !== null
66
- ? `${(b.scoredPassRate * 100).toFixed(1)}%`
67
- : "n/a";
68
- const topReasons = Object.entries(b.reasons)
69
- .sort(([, a], [, bv]) => (bv as number) - (a as number))
70
- .slice(0, 3)
71
- .map(([k, v]) => `${k}: ${v}`)
72
- .join(", ");
73
- lines.push(
74
- `${b.pageCountRange.padEnd(10)} ${String(b.total).padStart(5)} ${String(b.scored).padStart(6)} ${String(b.passed).padStart(6)} ${rate.padStart(14)} ${topReasons}`,
75
- );
76
- }
77
- if (r.unknownPageCount.total > 0) {
78
- lines.push("");
79
- lines.push(
80
- `Unknown page count: ${r.unknownPageCount.total} total, ${r.unknownPageCount.passed} passed`,
81
- );
82
- }
83
- return lines.join("\n");
84
- }
85
-
86
55
  /**
87
56
  * Read the `turn` ids from a prior run's `key.json` or `packets.json` (both are
88
57
  * arrays of objects carrying a `turn` field). Used to pin `--turns-file` so a
@@ -302,37 +271,4 @@ export function registerMemoryV3Command(memory: Command): void {
302
271
  log.info(formatTally(payload));
303
272
  },
304
273
  );
305
-
306
- // ── gate-stats ────────────────────────────────────────────────────────
307
- // Reads the telemetry DB directly — no daemon required.
308
-
309
- subcommand(v3, "gate-stats").action(
310
- async (opts: { lookbackDays: string; json?: boolean }) => {
311
- const lookbackDays = Number(opts.lookbackDays);
312
- const [{ handleMemoryV3GateStats }, { getTelemetrySqlite }] =
313
- await Promise.all([
314
- import("../../../plugins/defaults/memory/src/memory-v3-routes.js"),
315
- import("../../../persistence/db-connection.js"),
316
- ]);
317
- let payload;
318
- try {
319
- payload = handleMemoryV3GateStats(
320
- Number.isFinite(lookbackDays) ? lookbackDays : 30,
321
- getTelemetrySqlite(),
322
- );
323
- } catch (err) {
324
- log.error(
325
- "Failed to read gate stats: %s",
326
- err instanceof Error ? err.message : String(err),
327
- );
328
- process.exitCode = 1;
329
- return;
330
- }
331
- if (opts.json === true) {
332
- log.info(JSON.stringify(payload, null, 2));
333
- return;
334
- }
335
- log.info(formatGateStats(payload));
336
- },
337
- );
338
274
  }