@vellumai/assistant 0.10.2-dev.202606250318.5e7cfb0 → 0.10.2

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 (430) hide show
  1. package/bun.lock +0 -20
  2. package/docs/workspace-tools.md +33 -42
  3. package/eslint-rules/cli-no-daemon-internals.js +0 -6
  4. package/node_modules/@vellumai/gateway-client/src/__tests__/trust-verdict-contract.test.ts +0 -31
  5. package/node_modules/@vellumai/gateway-client/src/gateway-ipc-contracts.ts +0 -44
  6. package/node_modules/@vellumai/gateway-client/src/index.ts +0 -14
  7. package/node_modules/@vellumai/gateway-client/src/trust-verdict-contract.ts +0 -17
  8. package/node_modules/@vellumai/service-contracts/package.json +0 -1
  9. package/node_modules/@vellumai/service-contracts/src/index.ts +0 -1
  10. package/openapi.yaml +0 -155
  11. package/package.json +1 -4
  12. package/scripts/test.sh +15 -36
  13. package/src/__tests__/actor-token-service.test.ts +14 -36
  14. package/src/__tests__/agent-loop-override-profile.test.ts +0 -1
  15. package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +0 -2
  16. package/src/__tests__/agent-wake-override-profile.test.ts +0 -2
  17. package/src/__tests__/annotate-activity-metadata.test.ts +0 -2
  18. package/src/__tests__/annotate-risk-options.test.ts +0 -2
  19. package/src/__tests__/approval-cascade.test.ts +0 -2
  20. package/src/__tests__/assistant-attachments.test.ts +0 -42
  21. package/src/__tests__/background-workers-disk-pressure.test.ts +0 -2
  22. package/src/__tests__/btw-routes.test.ts +0 -2
  23. package/src/__tests__/build-persisted-content.test.ts +0 -2
  24. package/src/__tests__/call-controller.test.ts +0 -19
  25. package/src/__tests__/channel-guardian.test.ts +58 -94
  26. package/src/__tests__/channel-reply-delivery.test.ts +0 -2
  27. package/src/__tests__/compaction-events.test.ts +0 -2
  28. package/src/__tests__/compaction.benchmark.test.ts +0 -2
  29. package/src/__tests__/compactor-call-site-logging.test.ts +0 -2
  30. package/src/__tests__/compactor-low-watermark-cut.test.ts +0 -2
  31. package/src/__tests__/compactor-preserved-tail-count.test.ts +0 -2
  32. package/src/__tests__/compactor-summary-call-truncation.test.ts +0 -2
  33. package/src/__tests__/compactor-web-search-strip.test.ts +0 -2
  34. package/src/__tests__/config-loader-backfill.test.ts +10 -123
  35. package/src/__tests__/config-schema.test.ts +0 -1
  36. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +29 -31
  37. package/src/__tests__/contacts-relay-reads.test.ts +15 -13
  38. package/src/__tests__/conversation-abort-tool-results.test.ts +0 -2
  39. package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +0 -2
  40. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +0 -2
  41. package/src/__tests__/conversation-agent-loop-overflow.test.ts +0 -2
  42. package/src/__tests__/conversation-agent-loop.test.ts +0 -134
  43. package/src/__tests__/conversation-analysis-routes.test.ts +0 -2
  44. package/src/__tests__/conversation-app-control-lifecycle.test.ts +0 -2
  45. package/src/__tests__/conversation-confirmation-signals.test.ts +0 -2
  46. package/src/__tests__/conversation-history-web-search.test.ts +0 -2
  47. package/src/__tests__/conversation-load-history-repair.test.ts +0 -2
  48. package/src/__tests__/conversation-load-history-stripped.test.ts +0 -2
  49. package/src/__tests__/conversation-pairing.test.ts +0 -2
  50. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +0 -2
  51. package/src/__tests__/conversation-process-callsite.test.ts +0 -2
  52. package/src/__tests__/conversation-provider-retry-repair.test.ts +0 -2
  53. package/src/__tests__/conversation-queue.test.ts +0 -91
  54. package/src/__tests__/conversation-routes-guardian-reply.test.ts +0 -14
  55. package/src/__tests__/conversation-routes-slash-commands.test.ts +0 -14
  56. package/src/__tests__/conversation-slash-queue.test.ts +0 -2
  57. package/src/__tests__/conversation-slash-unknown.test.ts +0 -2
  58. package/src/__tests__/conversation-speed-override.test.ts +0 -2
  59. package/src/__tests__/conversation-surfaces-task-progress.test.ts +0 -29
  60. package/src/__tests__/conversation-title-service.test.ts +0 -2
  61. package/src/__tests__/conversation-tool-setup-attribution.test.ts +0 -47
  62. package/src/__tests__/conversation-usage.test.ts +0 -2
  63. package/src/__tests__/conversation-workspace-cache-state.test.ts +0 -2
  64. package/src/__tests__/conversation-workspace-injection.test.ts +0 -2
  65. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +0 -2
  66. package/src/__tests__/credential-security-invariants.test.ts +1 -1
  67. package/src/__tests__/db-migration-rollback.test.ts +171 -205
  68. package/src/__tests__/db-test-helpers.ts +4 -5
  69. package/src/__tests__/deterministic-verification-control-plane.test.ts +2 -4
  70. package/src/__tests__/disk-pressure-guard.test.ts +0 -41
  71. package/src/__tests__/dm-persistence.test.ts +0 -2
  72. package/src/__tests__/emit-signal-routing-intent.test.ts +5 -10
  73. package/src/__tests__/events-dev-bypass-actor.test.ts +1 -7
  74. package/src/__tests__/exploration-drift-hook.test.ts +2 -3
  75. package/src/__tests__/filing-service.test.ts +0 -2
  76. package/src/__tests__/guardian-binding-drift-heal.test.ts +10 -75
  77. package/src/__tests__/guardian-dispatch.test.ts +1 -95
  78. package/src/__tests__/guardian-outbound-http.test.ts +0 -13
  79. package/src/__tests__/heartbeat-disk-pressure.test.ts +0 -2
  80. package/src/__tests__/heartbeat-service.test.ts +0 -2
  81. package/src/__tests__/helpers/channel-test-adapter.ts +7 -1
  82. package/src/__tests__/host-app-control-routes.test.ts +30 -24
  83. package/src/__tests__/host-bash-routes.test.ts +41 -31
  84. package/src/__tests__/host-browser-routes.test.ts +32 -26
  85. package/src/__tests__/host-cu-routes-targeted.test.ts +33 -25
  86. package/src/__tests__/host-file-routes-targeted.test.ts +52 -40
  87. package/src/__tests__/host-transfer-routes-targeted.test.ts +43 -31
  88. package/src/__tests__/http-user-message-parity.test.ts +8 -290
  89. package/src/__tests__/inbound-invite-redemption.test.ts +0 -28
  90. package/src/__tests__/inbound-slack-persistence.test.ts +0 -2
  91. package/src/__tests__/invite-redemption-service.test.ts +0 -198
  92. package/src/__tests__/llm-context-normalization.test.ts +0 -105
  93. package/src/__tests__/llm-request-log-error-payload.test.ts +9 -71
  94. package/src/__tests__/llm-usage-store.test.ts +0 -25
  95. package/src/__tests__/mcp-health-check.test.ts +1 -2
  96. package/src/__tests__/media-stream-server-integration.test.ts +0 -127
  97. package/src/__tests__/memory-retrieval-hook.test.ts +0 -2
  98. package/src/__tests__/messaging-send-tool.test.ts +0 -2
  99. package/src/__tests__/migration-import-from-url.test.ts +2 -2
  100. package/src/__tests__/mtime-cache.test.ts +5 -146
  101. package/src/__tests__/native-web-search.test.ts +0 -2
  102. package/src/__tests__/non-member-access-request.test.ts +17 -189
  103. package/src/__tests__/notification-broadcaster.test.ts +0 -4
  104. package/src/__tests__/notification-decision-recipient-context.test.ts +32 -33
  105. package/src/__tests__/notification-deep-link.test.ts +0 -6
  106. package/src/__tests__/notification-guardian-path.test.ts +0 -19
  107. package/src/__tests__/openai-provider.test.ts +12 -22
  108. package/src/__tests__/openai-responses-provider.test.ts +2 -12
  109. package/src/__tests__/outbound-slack-persistence.test.ts +0 -2
  110. package/src/__tests__/pending-interactions-resolved-event.test.ts +4 -7
  111. package/src/__tests__/persistence-secret-redaction.test.ts +0 -2
  112. package/src/__tests__/plugin-bootstrap.test.ts +73 -3
  113. package/src/__tests__/plugin-route-contribution.test.ts +17 -4
  114. package/src/__tests__/plugin-tool-contribution.test.ts +18 -3
  115. package/src/__tests__/plugin-types.test.ts +2 -0
  116. package/src/__tests__/process-message-background-slack.test.ts +0 -2
  117. package/src/__tests__/process-message-display-content.test.ts +0 -2
  118. package/src/__tests__/provider-error-scenarios.test.ts +4 -5
  119. package/src/__tests__/provider-usage-tracking.test.ts +0 -39
  120. package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +0 -2
  121. package/src/__tests__/registry.test.ts +1 -4
  122. package/src/__tests__/relay-server.test.ts +25 -694
  123. package/src/__tests__/runtime-attachment-metadata.test.ts +1 -0
  124. package/src/__tests__/secret-ingress-http.test.ts +0 -14
  125. package/src/__tests__/send-endpoint-busy.test.ts +8 -30
  126. package/src/__tests__/skills.test.ts +0 -44
  127. package/src/__tests__/slack-inbound-verification.test.ts +2 -47
  128. package/src/__tests__/stt-hints.test.ts +13 -44
  129. package/src/__tests__/subagent-detail.test.ts +0 -27
  130. package/src/__tests__/subagent-disposal.test.ts +0 -65
  131. package/src/__tests__/subagent-notify-parent.test.ts +0 -2
  132. package/src/__tests__/subagent-role-registry.test.ts +2 -7
  133. package/src/__tests__/subagent-spawn-tool-fork.test.ts +0 -2
  134. package/src/__tests__/subagent-tools.test.ts +0 -2
  135. package/src/__tests__/suggestion-routes.test.ts +0 -2
  136. package/src/__tests__/title-generate-hook.test.ts +0 -2
  137. package/src/__tests__/tool-executor-lifecycle-events.test.ts +0 -2
  138. package/src/__tests__/tool-executor.test.ts +11 -16
  139. package/src/__tests__/tool-preview-lifecycle.test.ts +0 -2
  140. package/src/__tests__/tool-result-metadata-plumbing.test.ts +0 -2
  141. package/src/__tests__/tool-start-timestamp.test.ts +0 -2
  142. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +10 -10
  143. package/src/__tests__/twilio-routes.test.ts +0 -96
  144. package/src/__tests__/ui-file-upload-surface.test.ts +0 -86
  145. package/src/__tests__/verification-control-plane-policy.test.ts +0 -2
  146. package/src/__tests__/voice-invite-redemption.test.ts +0 -33
  147. package/src/__tests__/web-search-backend-failure.test.ts +0 -2
  148. package/src/__tests__/workspace-migration-remove-hooks.test.ts +35 -14
  149. package/src/__tests__/workspace-tool-loader.test.ts +2 -195
  150. package/src/__tests__/workspace-tools-watcher-flag.test.ts +70 -0
  151. package/src/agent/loop.ts +0 -56
  152. package/src/api/index.ts +1 -19
  153. package/src/api/responses/llm-request-log-entry.ts +0 -29
  154. package/src/api/responses/subagent-detail.ts +0 -17
  155. package/src/api/surfaces.ts +3 -39
  156. package/src/approvals/guardian-request-resolvers.ts +11 -1
  157. package/src/calls/__tests__/relay-setup-router.test.ts +4 -262
  158. package/src/calls/call-domain.ts +3 -3
  159. package/src/calls/guardian-dispatch.ts +8 -10
  160. package/src/calls/inbound-trust-reader.ts +1 -17
  161. package/src/calls/media-stream-server.ts +0 -21
  162. package/src/calls/relay-server.ts +50 -167
  163. package/src/calls/relay-setup-router.ts +7 -37
  164. package/src/calls/relay-verification.ts +4 -4
  165. package/src/calls/stt-hints.ts +12 -9
  166. package/src/calls/twilio-routes.ts +4 -14
  167. package/src/channels/types.ts +20 -10
  168. package/src/cli/commands/__tests__/cache.test.ts +1 -8
  169. package/src/cli/commands/cache.ts +181 -194
  170. package/src/cli/commands/db/__tests__/repair.test.ts +5 -6
  171. package/src/cli/commands/db/status.ts +1 -37
  172. package/src/cli/commands/mcp.ts +218 -252
  173. package/src/cli/commands/memory/index.ts +0 -2
  174. package/src/cli/commands/plugins.ts +3 -75
  175. package/src/cli/lib/__tests__/install-from-github.test.ts +0 -102
  176. package/src/cli/lib/__tests__/list-installed-plugins.test.ts +1 -160
  177. package/src/cli/lib/list-installed-plugins.ts +1 -179
  178. package/src/config/__tests__/sync-gated-profiles.test.ts +3 -11
  179. package/src/config/bundled-skills/contacts/tools/contact-merge.ts +17 -27
  180. package/src/config/bundled-skills/contacts/tools/contact-search.ts +3 -13
  181. package/src/config/bundled-skills/subagent/SKILL.md +1 -1
  182. package/src/config/bundled-skills/subagent/TOOLS.json +1 -1
  183. package/src/config/feature-flag-registry.json +13 -5
  184. package/src/config/loader.ts +5 -38
  185. package/src/config/schemas/__tests__/memory-v3.test.ts +0 -1
  186. package/src/config/schemas/memory-lifecycle.ts +0 -12
  187. package/src/config/schemas/memory-v3.ts +0 -7
  188. package/src/config/schemas/memory.ts +0 -4
  189. package/src/config/schemas/timeouts.ts +0 -8
  190. package/src/config/seed-inference-profiles.ts +11 -21
  191. package/src/config/skills.ts +5 -27
  192. package/src/config/sync-gated-profiles.ts +13 -12
  193. package/src/contacts/contacts-write.ts +0 -3
  194. package/src/daemon/assistant-attachments.ts +4 -27
  195. package/src/daemon/conversation-agent-loop.ts +0 -28
  196. package/src/daemon/conversation-process.ts +16 -35
  197. package/src/daemon/conversation-surfaces.ts +38 -111
  198. package/src/daemon/conversation-tool-setup.ts +16 -50
  199. package/src/daemon/conversation.ts +1 -13
  200. package/src/daemon/disk-pressure-guard.ts +2 -12
  201. package/src/daemon/event-loop-watchdog.ts +1 -28
  202. package/src/daemon/external-plugins-bootstrap.ts +34 -4
  203. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +0 -25
  204. package/src/daemon/handlers/config-a2a.ts +14 -6
  205. package/src/daemon/handlers/config-channels.ts +22 -78
  206. package/src/daemon/handlers/conversations.ts +0 -77
  207. package/src/daemon/lifecycle.ts +0 -4
  208. package/src/daemon/mcp-reload-service.ts +0 -10
  209. package/src/daemon/memory-v2-startup.test.ts +0 -72
  210. package/src/daemon/memory-v2-startup.ts +19 -87
  211. package/src/daemon/message-types/conversations.ts +0 -2
  212. package/src/daemon/message-types/surfaces.ts +12 -12
  213. package/src/daemon/server.ts +4 -0
  214. package/src/daemon/shutdown-handlers.ts +0 -20
  215. package/src/daemon/tool-setup-types.ts +0 -9
  216. package/src/daemon/workspace-tools-watcher.ts +328 -0
  217. package/src/ipc/__tests__/clients-list-ipc.test.ts +1 -1
  218. package/src/ipc/assistant-server.ts +2 -2
  219. package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +0 -1
  220. package/src/mcp/client.ts +1 -15
  221. package/src/mcp/mcp-auth-orchestrator.ts +1 -6
  222. package/src/mcp/mcp-oauth-provider.ts +8 -19
  223. package/src/memory/__tests__/memory-retrospective-job.test.ts +0 -8
  224. package/src/memory/conversation-crud.ts +0 -38
  225. package/src/memory/db-connection.ts +3 -22
  226. package/src/memory/db-init.ts +502 -36
  227. package/src/memory/db-singleton.ts +4 -6
  228. package/src/memory/jobs-worker.ts +0 -58
  229. package/src/memory/llm-request-log-store.ts +1 -26
  230. package/src/memory/llm-usage-store.ts +20 -48
  231. package/src/memory/memory-retrospective-job.ts +8 -9
  232. package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +56 -130
  233. package/src/memory/migrations/__tests__/run-migrations.test.ts +2 -2
  234. package/src/memory/migrations/registry.ts +573 -0
  235. package/src/memory/migrations/run-migrations.ts +6 -90
  236. package/src/memory/migrations/validate-migration-state.ts +66 -101
  237. package/src/memory/schema/conversations.ts +0 -9
  238. package/src/memory/schema/infrastructure.ts +0 -20
  239. package/src/memory/v2/__tests__/cli-command-store.test.ts +0 -25
  240. package/src/memory/v2/__tests__/skill-store.test.ts +0 -80
  241. package/src/memory/v2/cli-command-store.ts +38 -75
  242. package/src/memory/v2/prompts/consolidation.ts +82 -13
  243. package/src/memory/v2/prompts/router.ts +93 -21
  244. package/src/memory/v2/skill-store.ts +31 -68
  245. package/src/notifications/__tests__/broadcaster.test.ts +8 -16
  246. package/src/notifications/__tests__/decision-engine.test.ts +9 -78
  247. package/src/notifications/broadcaster.ts +1 -8
  248. package/src/notifications/decision-engine.ts +7 -15
  249. package/src/notifications/destination-resolver.ts +24 -68
  250. package/src/notifications/emit-signal.ts +14 -39
  251. package/src/permissions/question-prompter.test.ts +1 -1
  252. package/src/permissions/question-prompter.ts +4 -7
  253. package/src/plugin-api/index.ts +6 -6
  254. package/src/plugin-api/types.ts +5 -3
  255. package/src/plugin-api/vision-support.test.ts +4 -28
  256. package/src/plugin-api/vision-support.ts +31 -66
  257. package/src/plugins/defaults/advisor/__tests__/consult.test.ts +0 -161
  258. package/src/plugins/defaults/advisor/consult.ts +6 -110
  259. package/src/plugins/defaults/advisor/steering.ts +2 -14
  260. package/src/plugins/defaults/advisor/tools/advisor.ts +5 -32
  261. package/src/plugins/defaults/exploration-drift/hooks/post-tool-use.ts +1 -2
  262. package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +7 -47
  263. package/src/plugins/defaults/image-fallback/hooks/post-tool-use.ts +11 -10
  264. package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +20 -12
  265. package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +11 -42
  266. package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +3 -33
  267. package/src/plugins/defaults/memory-v3-shadow/__tests__/pool-select.test.ts +4 -48
  268. package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +8 -4
  269. package/src/plugins/defaults/memory-v3-shadow/injector.ts +15 -43
  270. package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +2 -11
  271. package/src/plugins/defaults/memory-v3-shadow/pool-select.ts +13 -77
  272. package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +11 -12
  273. package/src/plugins/mtime-cache.ts +291 -76
  274. package/src/plugins/pipeline.ts +13 -111
  275. package/src/plugins/types.ts +2 -0
  276. package/src/providers/anthropic/client.ts +0 -5
  277. package/src/providers/call-site-routing.ts +0 -4
  278. package/src/providers/model-catalog.ts +0 -16
  279. package/src/providers/openai/__tests__/api-error-detail.test.ts +120 -0
  280. package/src/providers/openai/chat-completions-provider.ts +83 -37
  281. package/src/providers/openai/responses-provider.ts +46 -50
  282. package/src/providers/openrouter/client.ts +0 -5
  283. package/src/providers/provider-send-message.ts +0 -4
  284. package/src/providers/ratelimit.ts +0 -4
  285. package/src/providers/retry.ts +0 -4
  286. package/src/providers/types.ts +0 -9
  287. package/src/providers/usage-tracking.ts +0 -4
  288. package/src/runtime/__tests__/trust-verdict-consumer.test.ts +3 -335
  289. package/src/runtime/access-request-helper.ts +39 -19
  290. package/src/runtime/actor-trust-resolver.ts +2 -2
  291. package/src/runtime/assistant-event-hub.ts +1 -1
  292. package/src/runtime/assistant-stream-state.ts +2 -9
  293. package/src/runtime/auth/require-bound-guardian.ts +11 -21
  294. package/src/runtime/channel-verification-service.ts +31 -56
  295. package/src/runtime/confirmation-request-guardian-bridge.ts +3 -3
  296. package/src/runtime/guardian-vellum-migration.ts +7 -66
  297. package/src/runtime/invite-redemption-service.ts +187 -198
  298. package/src/runtime/local-actor-identity.ts +11 -76
  299. package/src/runtime/pending-interactions.ts +1 -11
  300. package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +5 -56
  301. package/src/runtime/routes/__tests__/channel-verification-routes.test.ts +1 -1
  302. package/src/runtime/routes/__tests__/surface-action-routes.test.ts +0 -187
  303. package/src/runtime/routes/browser-routes.ts +1 -1
  304. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +5 -13
  305. package/src/runtime/routes/channel-verification-routes.ts +3 -3
  306. package/src/runtime/routes/contact-routes.ts +32 -8
  307. package/src/runtime/routes/conversation-cli-routes.ts +5 -4
  308. package/src/runtime/routes/conversation-list-routes.ts +7 -4
  309. package/src/runtime/routes/conversation-query-routes.ts +0 -72
  310. package/src/runtime/routes/conversation-routes.ts +85 -84
  311. package/src/runtime/routes/events-routes.ts +2 -2
  312. package/src/runtime/routes/global-search-routes.ts +1 -3
  313. package/src/runtime/routes/guardian-action-routes.ts +5 -4
  314. package/src/runtime/routes/host-app-control-routes.ts +4 -5
  315. package/src/runtime/routes/host-bash-routes.ts +4 -5
  316. package/src/runtime/routes/host-browser-routes.ts +11 -9
  317. package/src/runtime/routes/host-cu-routes.ts +4 -5
  318. package/src/runtime/routes/host-file-routes.ts +4 -5
  319. package/src/runtime/routes/host-transfer-routes.ts +6 -6
  320. package/src/runtime/routes/http-adapter.ts +1 -1
  321. package/src/runtime/routes/identity-routes.ts +2 -3
  322. package/src/runtime/routes/inbound-message-handler.ts +5 -5
  323. package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +5 -97
  324. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +49 -61
  325. package/src/runtime/routes/inbound-stages/background-dispatch.ts +4 -16
  326. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +7 -7
  327. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +8 -21
  328. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +3 -14
  329. package/src/runtime/routes/index.ts +0 -2
  330. package/src/runtime/routes/llm-context-normalization.ts +0 -83
  331. package/src/runtime/routes/mcp-auth-routes.ts +19 -171
  332. package/src/runtime/routes/migration-rollback-routes.ts +3 -4
  333. package/src/runtime/routes/migration-routes.ts +1 -4
  334. package/src/runtime/routes/subagents-routes.ts +0 -5
  335. package/src/runtime/routes/surface-action-routes.ts +56 -42
  336. package/src/runtime/services/__tests__/conversation-serializer.test.ts +0 -1
  337. package/src/runtime/services/conversation-serializer.ts +9 -7
  338. package/src/runtime/tool-grant-request-helper.ts +3 -3
  339. package/src/runtime/trust-verdict-consumer.ts +9 -85
  340. package/src/runtime/verification-outbound-actions.ts +18 -18
  341. package/src/signals/user-message.ts +0 -16
  342. package/src/subagent/manager.ts +0 -9
  343. package/src/subagent/types.ts +3 -3
  344. package/src/telemetry/types.ts +1 -34
  345. package/src/telemetry/usage-telemetry-reporter.test.ts +2 -3
  346. package/src/telemetry/usage-telemetry-reporter.ts +3 -87
  347. package/src/tools/ask-question/ask-question-tool.test.ts +0 -29
  348. package/src/tools/ask-question/ask-question-tool.ts +0 -13
  349. package/src/tools/executor.ts +4 -4
  350. package/src/tools/registry.ts +0 -18
  351. package/src/tools/shared/filesystem/path-policy.ts +5 -12
  352. package/src/tools/tool-approval-handler.ts +1 -1
  353. package/src/tools/tool-defaults.ts +2 -9
  354. package/src/tools/tool-manifest.ts +0 -3
  355. package/src/tools/types.ts +2 -17
  356. package/src/tools/workspace-tools/loader.ts +244 -348
  357. package/src/util/errors.ts +1 -26
  358. package/src/util/platform.ts +0 -5
  359. package/src/workflows/library.test.ts +0 -140
  360. package/src/workflows/library.ts +28 -82
  361. package/src/workspace/migrations/017-seed-persona-dirs.ts +34 -3
  362. package/src/workspace/migrations/019-scope-journal-to-guardian.ts +24 -3
  363. package/src/workspace/migrations/048-remove-workspace-hooks.ts +66 -14
  364. package/src/workspace/migrations/registry.ts +0 -2
  365. package/node_modules/@vellumai/gateway-client/src/__tests__/guardian-delivery-contract.test.ts +0 -91
  366. package/node_modules/@vellumai/gateway-client/src/guardian-delivery-contract.ts +0 -48
  367. package/node_modules/@vellumai/service-contracts/src/__tests__/channels.test.ts +0 -28
  368. package/node_modules/@vellumai/service-contracts/src/channels.ts +0 -41
  369. package/src/__tests__/code-search-tool.test.ts +0 -585
  370. package/src/__tests__/guardian-expiry-notifier.test.ts +0 -282
  371. package/src/__tests__/mcp-config-secret-boundary.test.ts +0 -390
  372. package/src/__tests__/plugin-pipeline.test.ts +0 -96
  373. package/src/__tests__/sse-actor-principal-guardian-source.test.ts +0 -102
  374. package/src/__tests__/steer-on-enqueue-question.test.ts +0 -181
  375. package/src/__tests__/workspace-migration-111-prune-seeded-callsite-defaults.test.ts +0 -208
  376. package/src/agent/loop-exclusive-tool.test.ts +0 -150
  377. package/src/api/constants/sse-replay.ts +0 -41
  378. package/src/api/events/conversation-notice.ts +0 -26
  379. package/src/approvals/guardian-channel-delivery.ts +0 -30
  380. package/src/approvals/guardian-expiry-notifier.ts +0 -148
  381. package/src/cli/commands/memory/__tests__/worker.test.ts +0 -302
  382. package/src/cli/commands/memory/worker.ts +0 -175
  383. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +0 -143
  384. package/src/config/prune-seeded-callsite-defaults.ts +0 -110
  385. package/src/contacts/__tests__/contacts-write-revoke-relay.test.ts +0 -129
  386. package/src/contacts/__tests__/guardian-delivery-reader.test.ts +0 -312
  387. package/src/contacts/__tests__/member-write-relay.test.ts +0 -202
  388. package/src/contacts/guardian-delivery-reader.ts +0 -223
  389. package/src/contacts/member-write-relay.ts +0 -189
  390. package/src/daemon/conversation-notices.ts +0 -60
  391. package/src/daemon/handlers/__tests__/config-channels.test.ts +0 -225
  392. package/src/hooks/hook-loader.ts +0 -341
  393. package/src/mcp/mcp-header-store.ts +0 -134
  394. package/src/memory/__tests__/301-create-watchdog-events.test.ts +0 -110
  395. package/src/memory/__tests__/prompt-override.test.ts +0 -192
  396. package/src/memory/__tests__/watchdog-events-store.test.ts +0 -161
  397. package/src/memory/migrations/300-add-processing-started-at.ts +0 -30
  398. package/src/memory/migrations/301-create-watchdog-events.ts +0 -45
  399. package/src/memory/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +0 -224
  400. package/src/memory/prompt-override.ts +0 -129
  401. package/src/memory/steps.ts +0 -573
  402. package/src/memory/watchdog-events-store.ts +0 -87
  403. package/src/memory/worker-control.ts +0 -118
  404. package/src/memory/worker-process.ts +0 -72
  405. package/src/notifications/__tests__/connected-channels.test.ts +0 -114
  406. package/src/notifications/__tests__/destination-resolver.test.ts +0 -256
  407. package/src/onboarding/checkin-event.test.ts +0 -222
  408. package/src/onboarding/checkin-event.ts +0 -321
  409. package/src/onboarding/schedule-checkin.ts +0 -190
  410. package/src/plugins/defaults/advisor/__tests__/context-pack-gating.test.ts +0 -106
  411. package/src/plugins/defaults/advisor/__tests__/context-pack.test.ts +0 -60
  412. package/src/plugins/defaults/advisor/context-pack.ts +0 -288
  413. package/src/plugins/defaults/memory-v3-shadow/pool-select.test.ts +0 -146
  414. package/src/plugins/surface-import.ts +0 -121
  415. package/src/providers/openai/__tests__/api-error-normalization.test.ts +0 -321
  416. package/src/providers/openai/api-error-normalization.ts +0 -270
  417. package/src/runtime/__tests__/channel-verification-service.test.ts +0 -133
  418. package/src/runtime/__tests__/guardian-vellum-migration.test.ts +0 -181
  419. package/src/runtime/__tests__/is-guardian-bound-for-channel.test.ts +0 -66
  420. package/src/runtime/__tests__/local-principal-trust.test.ts +0 -164
  421. package/src/runtime/anchored-guardian.test.ts +0 -156
  422. package/src/runtime/anchored-guardian.ts +0 -135
  423. package/src/runtime/auth/__tests__/require-bound-guardian.test.ts +0 -99
  424. package/src/runtime/local-principal-trust.ts +0 -52
  425. package/src/runtime/routes/__tests__/contact-routes.test.ts +0 -212
  426. package/src/runtime/routes/__tests__/global-search-routes.test.ts +0 -93
  427. package/src/runtime/routes/onboarding-checkin-routes.ts +0 -86
  428. package/src/tools/filesystem/search.ts +0 -543
  429. package/src/util/telemetry-db-path.ts +0 -24
  430. package/src/workspace/migrations/111-prune-seeded-callsite-defaults.ts +0 -134
@@ -17,9 +17,6 @@ import { log } from "../logger.js";
17
17
  /** Warn (stderr) when a raw payload exceeds this byte count. */
18
18
  const MAX_PAYLOAD_BYTES = 1_000_000; // 1 MB
19
19
 
20
- /** Standard input file descriptor. */
21
- const STDIN_FD = 0;
22
-
23
20
  // ── TTL parsing ───────────────────────────────────────────────────────
24
21
 
25
22
  const TTL_PATTERN = /^(\d+(?:\.\d+)?)\s*(ms|s|m|h)$/;
@@ -102,11 +99,6 @@ function parseJsonPayload(raw: string, source: string): unknown {
102
99
  * Read JSON payload from stdin when piped. Throws when stdin is a TTY
103
100
  * (no piped input) or when the input is empty/invalid JSON, so the CLI
104
101
  * can surface actionable parse errors.
105
- *
106
- * Reads file descriptor 0 directly rather than reopening the `/dev/stdin`
107
- * path. When the caller is a spawned subprocess whose stdin is a pipe (e.g.
108
- * `Bun.spawn(..., { stdin: "pipe" })`), `open("/dev/stdin")` fails with ENXIO
109
- * because a pipe read-end cannot be reopened by path; the fd is readable.
110
102
  */
111
103
  function readPayloadFromStdin(): unknown {
112
104
  if (process.stdin.isTTY) {
@@ -119,7 +111,7 @@ function readPayloadFromStdin(): unknown {
119
111
 
120
112
  let raw: string;
121
113
  try {
122
- raw = readFileSync(STDIN_FD, "utf-8");
114
+ raw = readFileSync("/dev/stdin", "utf-8");
123
115
  } catch (err) {
124
116
  throw new Error(
125
117
  `Failed to read stdin: ${err instanceof Error ? err.message : String(err)}.\n` +
@@ -181,9 +173,10 @@ export function registerCacheCommand(program: Command): void {
181
173
  transport: "ipc",
182
174
  description: "Interact with the assistant's in-memory key/value cache",
183
175
  build: (cache) => {
184
- cache.addHelpText(
185
- "after",
186
- `
176
+
177
+ cache.addHelpText(
178
+ "after",
179
+ `
187
180
  The cache is a TTL-aware, LRU-evicting in-memory store managed by the
188
181
  running assistant. Data is scoped to the assistant process lifetime and
189
182
  is not persisted across restarts.
@@ -197,33 +190,33 @@ Examples:
197
190
  $ echo '{"result": [1,2,3]}' | assistant cache set --ttl 5m
198
191
  $ assistant cache get my-key
199
192
  $ assistant cache delete my-key`,
200
- );
201
-
202
- // ── set ───────────────────────────────────────────────────────────
203
-
204
- cache
205
- .command("set")
206
- .description("Store a JSON value in the cache")
207
- .option(
208
- "--key <key>",
209
- "Cache key for idempotent upsert. Omit to auto-generate.",
210
- )
211
- .option(
212
- "--ttl <duration>",
213
- "Time-to-live (minimum 1s). Units: ms, s, m, h (e.g. 1000ms, 30s, 5m, 2h). Defaults to 30m if omitted.",
214
- )
215
- .option(
216
- "--value <json>",
217
- "JSON payload to store. Alternative to piping via stdin.",
218
- )
219
- .option(
220
- "--file <path>",
221
- "Path to a file containing the JSON payload. Alternative to piping via stdin.",
222
- )
223
- .option("--json", "Output result as machine-readable JSON.")
224
- .addHelpText(
225
- "after",
226
- `
193
+ );
194
+
195
+ // ── set ───────────────────────────────────────────────────────────
196
+
197
+ cache
198
+ .command("set")
199
+ .description("Store a JSON value in the cache")
200
+ .option(
201
+ "--key <key>",
202
+ "Cache key for idempotent upsert. Omit to auto-generate.",
203
+ )
204
+ .option(
205
+ "--ttl <duration>",
206
+ "Time-to-live (minimum 1s). Units: ms, s, m, h (e.g. 1000ms, 30s, 5m, 2h). Defaults to 30m if omitted.",
207
+ )
208
+ .option(
209
+ "--value <json>",
210
+ "JSON payload to store. Alternative to piping via stdin.",
211
+ )
212
+ .option(
213
+ "--file <path>",
214
+ "Path to a file containing the JSON payload. Alternative to piping via stdin.",
215
+ )
216
+ .option("--json", "Output result as machine-readable JSON.")
217
+ .addHelpText(
218
+ "after",
219
+ `
227
220
  Stores a JSON payload in the cache and prints the assigned key. The payload
228
221
  can be provided via --value, --file, or piped through stdin. If --key is
229
222
  provided, the entry is upserted (created or replaced). If omitted, a new
@@ -247,86 +240,86 @@ Examples:
247
240
  $ assistant cache set --file /tmp/payload.json --key scores --ttl 10m
248
241
  $ echo '{"scores":[98,85,72]}' | assistant cache set
249
242
  $ echo '"simple string"' | assistant cache set --ttl 1h --json`,
250
- )
251
- .action(
252
- async (opts: {
253
- key?: string;
254
- ttl?: string;
255
- value?: string;
256
- file?: string;
257
- json?: boolean;
258
- }) => {
259
- let data: unknown;
260
- try {
261
- data = resolvePayload(opts);
262
- } catch (err) {
263
- const msg = err instanceof Error ? err.message : String(err);
264
- if (opts.json) {
265
- process.stdout.write(
266
- JSON.stringify({ ok: false, error: msg }) + "\n",
267
- );
268
- } else {
269
- log.error(msg);
270
- }
271
- process.exitCode = 1;
272
- return;
273
- }
274
-
275
- let ttl_ms: number | undefined;
276
- try {
277
- ttl_ms = parseTtl(opts.ttl);
278
- } catch (err) {
279
- const msg = err instanceof Error ? err.message : String(err);
280
- if (opts.json) {
281
- process.stdout.write(
282
- JSON.stringify({ ok: false, error: msg }) + "\n",
283
- );
284
- } else {
285
- log.error(msg);
286
- }
287
- process.exitCode = 1;
288
- return;
289
- }
290
-
291
- const params: Record<string, unknown> = { data };
292
- if (ttl_ms !== undefined) params.ttl_ms = ttl_ms;
293
- if (opts.key) params.key = opts.key;
294
-
295
- const result = await cliIpcCall<{ key: string }>("cache_set", {
296
- body: params,
297
- });
298
-
299
- if (!result.ok) {
300
- if (opts.json) {
301
- process.stdout.write(
302
- JSON.stringify({ ok: false, error: result.error }) + "\n",
303
- );
304
- } else {
305
- log.error(`Error: ${result.error}`);
306
- }
307
- process.exitCode = 1;
308
- return;
309
- }
310
-
311
- if (opts.json) {
312
- process.stdout.write(
313
- JSON.stringify({ ok: true, key: result.result!.key }) + "\n",
314
- );
315
- } else {
316
- log.info(`Cached with key: ${result.result!.key}`);
317
- }
318
- },
319
- );
243
+ )
244
+ .action(
245
+ async (opts: {
246
+ key?: string;
247
+ ttl?: string;
248
+ value?: string;
249
+ file?: string;
250
+ json?: boolean;
251
+ }) => {
252
+ let data: unknown;
253
+ try {
254
+ data = resolvePayload(opts);
255
+ } catch (err) {
256
+ const msg = err instanceof Error ? err.message : String(err);
257
+ if (opts.json) {
258
+ process.stdout.write(
259
+ JSON.stringify({ ok: false, error: msg }) + "\n",
260
+ );
261
+ } else {
262
+ log.error(msg);
263
+ }
264
+ process.exitCode = 1;
265
+ return;
266
+ }
267
+
268
+ let ttl_ms: number | undefined;
269
+ try {
270
+ ttl_ms = parseTtl(opts.ttl);
271
+ } catch (err) {
272
+ const msg = err instanceof Error ? err.message : String(err);
273
+ if (opts.json) {
274
+ process.stdout.write(
275
+ JSON.stringify({ ok: false, error: msg }) + "\n",
276
+ );
277
+ } else {
278
+ log.error(msg);
279
+ }
280
+ process.exitCode = 1;
281
+ return;
282
+ }
283
+
284
+ const params: Record<string, unknown> = { data };
285
+ if (ttl_ms !== undefined) params.ttl_ms = ttl_ms;
286
+ if (opts.key) params.key = opts.key;
287
+
288
+ const result = await cliIpcCall<{ key: string }>("cache_set", {
289
+ body: params,
290
+ });
291
+
292
+ if (!result.ok) {
293
+ if (opts.json) {
294
+ process.stdout.write(
295
+ JSON.stringify({ ok: false, error: result.error }) + "\n",
296
+ );
297
+ } else {
298
+ log.error(`Error: ${result.error}`);
299
+ }
300
+ process.exitCode = 1;
301
+ return;
302
+ }
320
303
 
321
- // ── get ───────────────────────────────────────────────────────────
304
+ if (opts.json) {
305
+ process.stdout.write(
306
+ JSON.stringify({ ok: true, key: result.result!.key }) + "\n",
307
+ );
308
+ } else {
309
+ log.info(`Cached with key: ${result.result!.key}`);
310
+ }
311
+ },
312
+ );
313
+
314
+ // ── get ───────────────────────────────────────────────────────────
322
315
 
323
- cache
324
- .command("get <key>")
325
- .description("Retrieve a cached value by key")
326
- .option("--json", "Output result as machine-readable JSON.")
327
- .addHelpText(
328
- "after",
329
- `
316
+ cache
317
+ .command("get <key>")
318
+ .description("Retrieve a cached value by key")
319
+ .option("--json", "Output result as machine-readable JSON.")
320
+ .addHelpText(
321
+ "after",
322
+ `
330
323
  Arguments:
331
324
  key The cache key to look up. Run 'assistant cache set' to store a
332
325
  value and receive its key.
@@ -338,52 +331,49 @@ exist or has expired, reports not-found. In --json mode, a miss returns
338
331
  Examples:
339
332
  $ assistant cache get my-key
340
333
  $ assistant cache get my-key --json`,
341
- )
342
- .action(async (key: string, opts: { json?: boolean }) => {
343
- const result = await cliIpcCall<{ data: unknown } | null>(
344
- "cache_get",
345
- {
346
- body: { key },
347
- },
334
+ )
335
+ .action(async (key: string, opts: { json?: boolean }) => {
336
+ const result = await cliIpcCall<{ data: unknown } | null>("cache_get", {
337
+ body: { key },
338
+ });
339
+
340
+ if (!result.ok) {
341
+ if (opts.json) {
342
+ process.stdout.write(
343
+ JSON.stringify({ ok: false, error: result.error }) + "\n",
348
344
  );
349
-
350
- if (!result.ok) {
351
- if (opts.json) {
352
- process.stdout.write(
353
- JSON.stringify({ ok: false, error: result.error }) + "\n",
354
- );
355
- } else {
356
- log.error(`Error: ${result.error}`);
357
- }
358
- process.exitCode = 1;
359
- return;
360
- }
361
-
362
- if (opts.json) {
363
- process.stdout.write(
364
- JSON.stringify({
365
- ok: true,
366
- data: result.result ? result.result.data : null,
367
- }) + "\n",
368
- );
369
- } else {
370
- if (result.result == null) {
371
- log.info(`No cache entry found for key "${key}".`);
372
- } else {
373
- log.info(JSON.stringify(result.result.data, null, 2));
374
- }
375
- }
376
- });
377
-
378
- // ── delete ────────────────────────────────────────────────────────
379
-
380
- cache
381
- .command("delete <key>")
382
- .description("Remove a cached entry by key")
383
- .option("--json", "Output result as machine-readable JSON.")
384
- .addHelpText(
385
- "after",
386
- `
345
+ } else {
346
+ log.error(`Error: ${result.error}`);
347
+ }
348
+ process.exitCode = 1;
349
+ return;
350
+ }
351
+
352
+ if (opts.json) {
353
+ process.stdout.write(
354
+ JSON.stringify({
355
+ ok: true,
356
+ data: result.result ? result.result.data : null,
357
+ }) + "\n",
358
+ );
359
+ } else {
360
+ if (result.result == null) {
361
+ log.info(`No cache entry found for key "${key}".`);
362
+ } else {
363
+ log.info(JSON.stringify(result.result.data, null, 2));
364
+ }
365
+ }
366
+ });
367
+
368
+ // ── delete ────────────────────────────────────────────────────────
369
+
370
+ cache
371
+ .command("delete <key>")
372
+ .description("Remove a cached entry by key")
373
+ .option("--json", "Output result as machine-readable JSON.")
374
+ .addHelpText(
375
+ "after",
376
+ `
387
377
  Arguments:
388
378
  key The cache key to remove. Run 'assistant cache get <key>' to
389
379
  verify a key exists before deleting.
@@ -394,39 +384,36 @@ existed or not, but reports whether an entry was actually removed.
394
384
  Examples:
395
385
  $ assistant cache delete my-key
396
386
  $ assistant cache delete my-key --json`,
397
- )
398
- .action(async (key: string, opts: { json?: boolean }) => {
399
- const result = await cliIpcCall<{ deleted: boolean }>(
400
- "cache_delete",
401
- {
402
- body: { key },
403
- },
387
+ )
388
+ .action(async (key: string, opts: { json?: boolean }) => {
389
+ const result = await cliIpcCall<{ deleted: boolean }>("cache_delete", {
390
+ body: { key },
391
+ });
392
+
393
+ if (!result.ok) {
394
+ if (opts.json) {
395
+ process.stdout.write(
396
+ JSON.stringify({ ok: false, error: result.error }) + "\n",
404
397
  );
405
-
406
- if (!result.ok) {
407
- if (opts.json) {
408
- process.stdout.write(
409
- JSON.stringify({ ok: false, error: result.error }) + "\n",
410
- );
411
- } else {
412
- log.error(`Error: ${result.error}`);
413
- }
414
- process.exitCode = 1;
415
- return;
416
- }
417
-
418
- const deleted = result.result!.deleted;
419
-
420
- if (opts.json) {
421
- process.stdout.write(JSON.stringify({ ok: true, deleted }) + "\n");
422
- } else {
423
- if (deleted) {
424
- log.info(`Deleted cache entry "${key}".`);
425
- } else {
426
- log.info(`No cache entry "${key}" (nothing to delete).`);
427
- }
428
- }
429
- });
398
+ } else {
399
+ log.error(`Error: ${result.error}`);
400
+ }
401
+ process.exitCode = 1;
402
+ return;
403
+ }
404
+
405
+ const deleted = result.result!.deleted;
406
+
407
+ if (opts.json) {
408
+ process.stdout.write(JSON.stringify({ ok: true, deleted }) + "\n");
409
+ } else {
410
+ if (deleted) {
411
+ log.info(`Deleted cache entry "${key}".`);
412
+ } else {
413
+ log.info(`No cache entry "${key}" (nothing to delete).`);
414
+ }
415
+ }
416
+ });
430
417
  },
431
418
  });
432
419
  }
@@ -456,9 +456,6 @@ async function initSchema(): Promise<void> {
456
456
  clearStoredDb("memory");
457
457
  }
458
458
 
459
- // Every test here runs initSchema(), which replays the full production
460
- // migration suite, plus at least one repair pass. On a loaded machine that
461
- // comfortably exceeds bun's 5s per-test default, so each gets a 30s ceiling.
462
459
  describe("assistant db repair — conversation-backfill step", () => {
463
460
  test("backfills a disk-only conversation into SQLite", async () => {
464
461
  await initSchema();
@@ -502,7 +499,7 @@ describe("assistant db repair — conversation-backfill step", () => {
502
499
  } finally {
503
500
  verify.close();
504
501
  }
505
- }, 30_000);
502
+ });
506
503
 
507
504
  test("skips conversations already present (idempotent)", async () => {
508
505
  await initSchema();
@@ -519,6 +516,8 @@ describe("assistant db repair — conversation-backfill step", () => {
519
516
  expect(parsed.steps[1].result.data.recovered).toBe(0);
520
517
  expect(parsed.steps[1].result.data.skipped).toBe(1);
521
518
  expect(parsed.steps[1].result.status).toBe("ok");
519
+ // Two full repair passes (each walks the DB via integrity-check) exceed
520
+ // bun's 5s per-test default, so raise the ceiling to keep CI stable.
522
521
  }, 30_000);
523
522
 
524
523
  test("reports nothing-to-backfill on an empty conversations dir", async () => {
@@ -530,7 +529,7 @@ describe("assistant db repair — conversation-backfill step", () => {
530
529
  expect(parsed.steps[1].result.status).toBe("ok");
531
530
  expect(parsed.steps[1].result.summary).toContain("nothing to backfill");
532
531
  expect(parsed.steps[1].result.data.recovered).toBe(0);
533
- }, 30_000);
532
+ });
534
533
 
535
534
  test("surfaces warnings for malformed meta.json without erroring the step", async () => {
536
535
  await initSchema();
@@ -548,5 +547,5 @@ describe("assistant db repair — conversation-backfill step", () => {
548
547
  w.includes("malformed meta.json"),
549
548
  ),
550
549
  ).toBe(true);
551
- }, 30_000);
550
+ });
552
551
  });
@@ -31,7 +31,6 @@ import type { Command } from "commander";
31
31
  import { getLogsDbPath } from "../../../util/logs-db-path.js";
32
32
  import { getMemoryDbPath } from "../../../util/memory-db-path.js";
33
33
  import { getDbPath } from "../../../util/platform.js";
34
- import { getTelemetryDbPath } from "../../../util/telemetry-db-path.js";
35
34
  import { red } from "../../lib/cli-colors.js";
36
35
  import { shouldOutputJson, writeOutput } from "../../output.js";
37
36
  import {
@@ -100,15 +99,6 @@ interface StatusReport {
100
99
  */
101
100
  memoryFile?: FileFacts;
102
101
  memoryDb?: DbFacts | null;
103
- /**
104
- * The dedicated telemetry database (`assistant-telemetry.db`). Like
105
- * `logsFile` and `memoryFile`, it is omitted from the report until the file
106
- * exists on disk — it is created the first time the daemon opens its
107
- * connection, so a fresh install that has never run the daemon won't have
108
- * one.
109
- */
110
- telemetryFile?: FileFacts;
111
- telemetryDb?: DbFacts | null;
112
102
  }
113
103
 
114
104
  interface MigrationSummary {
@@ -337,13 +327,6 @@ function renderHuman(report: StatusReport): string {
337
327
  out += renderDbBlock(report.memoryFile, report.memoryDb ?? null);
338
328
  }
339
329
 
340
- // The secondary telemetry file is likewise only reported once it exists.
341
- if (report.telemetryFile?.exists) {
342
- out += "\n";
343
- out += "Telemetry database (telemetry event tables)\n";
344
- out += renderDbBlock(report.telemetryFile, report.telemetryDb ?? null);
345
- }
346
-
347
330
  // Cross-database migration summary — the checkpoint ledger lives only in
348
331
  // the main DB, so this is a single block at the end covering all three.
349
332
  out += renderSummary(report.migration);
@@ -426,13 +409,7 @@ function readMigrationSummary(mainDbPath: string): MigrationSummary | null {
426
409
  // No table yet.
427
410
  }
428
411
 
429
- return {
430
- latestKey,
431
- latestUpdatedAtMs,
432
- appliedSteps,
433
- appliedRegistry,
434
- crashed,
435
- };
412
+ return { latestKey, latestUpdatedAtMs, appliedSteps, appliedRegistry, crashed };
436
413
  } finally {
437
414
  db.close();
438
415
  }
@@ -542,17 +519,6 @@ export function registerDbStatus(parent: Command): void {
542
519
  }
543
520
  }
544
521
 
545
- // Same best-effort probe for the dedicated telemetry DB.
546
- const telemetryFile = readFileFacts(getTelemetryDbPath());
547
- let telemetryDb: DbFacts | null = null;
548
- if (telemetryFile.exists) {
549
- try {
550
- telemetryDb = readDbFacts(telemetryFile.path);
551
- } catch {
552
- telemetryDb = null;
553
- }
554
- }
555
-
556
522
  // Cross-database migration summary from the main DB's checkpoint ledger.
557
523
  let migration: MigrationSummary | null = null;
558
524
  try {
@@ -569,8 +535,6 @@ export function registerDbStatus(parent: Command): void {
569
535
  logsDb,
570
536
  memoryFile,
571
537
  memoryDb,
572
- telemetryFile,
573
- telemetryDb,
574
538
  };
575
539
  if (shouldOutputJson(this)) {
576
540
  writeOutput(this, report);