@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
@@ -1,52 +1,47 @@
1
1
  /**
2
- * Subprocess probe for the resource monitor's main-DB posture: telemetry
3
- * queries route through the dedicated read-only connection, writes through
4
- * it fail loudly, and the telemetry DB stays writable. Spawned by
5
- * `main-db-readonly.test.ts` with CADET_WORKSPACE_DIR pointing at a fresh
6
- * temp workspace, so the process-scoped posture and connection singletons
7
- * never leak into the test runner process.
2
+ * Subprocess probe for the main DB's read-only connection posture — the
3
+ * resource monitor's shape: reads through the dedicated read-only connection
4
+ * work, writes through it fail loudly instead of contending for the write
5
+ * lock. Spawned by `main-db-readonly.test.ts` with CADET_WORKSPACE_DIR
6
+ * pointing at a fresh temp workspace, so the process-scoped posture and
7
+ * connection singletons never leak into the test runner process.
8
8
  *
9
9
  * Exits 0 and prints READONLY_PROBE_OK when every assertion holds; any
10
10
  * failure throws and exits non-zero.
11
11
  */
12
12
 
13
- import {
14
- getFlushCheckpoint,
15
- setFlushCheckpoint,
16
- } from "../../telemetry/flush-checkpoints.js";
17
- import { useReadOnlyMainDbForTelemetry } from "../../telemetry/telemetry-main-db.js";
18
- import {
19
- getMainDbReadOnly,
20
- getTelemetryDb,
21
- resetDb,
22
- } from "../db-connection.js";
13
+ import { getMainDbReadOnly } from "../db-connection.js";
23
14
  import { initializeDb } from "../db-init.js";
24
- import { queryUnreportedUsageEvents } from "../llm-usage-store.js";
25
- import { memoryCheckpoints, telemetryEvents } from "../schema/index.js";
15
+ import { conversations } from "../schema/index.js";
26
16
 
27
- // Create the schema over the normal read-write connections, then reopen
28
- // with the monitor's posture: telemetry main-DB reads go through the
29
- // dedicated read-only connection; the telemetry DB stays read-write.
17
+ // Create the schema over the normal read-write connection, then exercise the
18
+ // monitor's separate read-only connection against the same file.
30
19
  await initializeDb();
31
- resetDb();
32
- useReadOnlyMainDbForTelemetry();
33
20
 
34
- // Telemetry store queries work over the read-only main connection.
35
- const rows = queryUnreportedUsageEvents(0, undefined, 10);
36
- if (!Array.isArray(rows) || rows.length !== 0) {
37
- throw new Error(`expected empty usage query, got ${JSON.stringify(rows)}`);
38
- }
39
-
40
- // Writes through the read-only connection fail loudly.
41
21
  const readOnlyDb = getMainDbReadOnly();
42
22
  if (!readOnlyDb) {
43
23
  throw new Error("read-only main DB connection unavailable");
44
24
  }
25
+
26
+ // Reads work over the read-only connection.
27
+ const rows = readOnlyDb.select().from(conversations).all();
28
+ if (!Array.isArray(rows) || rows.length !== 0) {
29
+ throw new Error(
30
+ `expected empty conversations read, got ${JSON.stringify(rows)}`,
31
+ );
32
+ }
33
+
34
+ // Writes through the read-only connection fail loudly.
45
35
  let writeError: unknown;
46
36
  try {
47
37
  readOnlyDb
48
- .insert(memoryCheckpoints)
49
- .values({ key: "readonly-probe", value: "1", updatedAt: Date.now() })
38
+ .insert(conversations)
39
+ .values({
40
+ id: "readonly-probe",
41
+ title: "readonly probe",
42
+ createdAt: Date.now(),
43
+ updatedAt: Date.now(),
44
+ })
50
45
  .run();
51
46
  } catch (err) {
52
47
  writeError = err;
@@ -57,24 +52,4 @@ if (!writeError || !/readonly/i.test(String(writeError))) {
57
52
  );
58
53
  }
59
54
 
60
- // The telemetry DB stays writable: flush state and event rows.
61
- setFlushCheckpoint("telemetry:readonly-probe:last_reported_at", "123");
62
- if (getFlushCheckpoint("telemetry:readonly-probe:last_reported_at") !== "123") {
63
- throw new Error("flush checkpoint round-trip failed");
64
- }
65
- const telemetryDb = getTelemetryDb();
66
- if (!telemetryDb) {
67
- throw new Error("telemetry DB unavailable");
68
- }
69
- telemetryDb
70
- .insert(telemetryEvents)
71
- .values({
72
- id: "readonly-probe-row",
73
- name: "config_setting",
74
- createdAt: Date.now(),
75
- conversationId: null,
76
- payload: '{"type":"config_setting"}',
77
- })
78
- .run();
79
-
80
55
  console.log("READONLY_PROBE_OK");
@@ -11,7 +11,7 @@ import { describe, expect, test } from "bun:test";
11
11
 
12
12
  import { contentBlockArraySchema } from "../../providers/content-block-schema.js";
13
13
  import type { ContentBlock } from "../../providers/types.js";
14
- import { getWorkspaceDir } from "../../util/platform.js";
14
+ import { getWorkspaceDir } from "../../util/layout.js";
15
15
  import {
16
16
  appendContentDeltas,
17
17
  foldContentDeltas,
@@ -6,7 +6,6 @@ import {
6
6
  markSection,
7
7
  reportSlowSync,
8
8
  resetSectionTrailForTests,
9
- SLOW_SYNC_CHECK_NAME,
10
9
  SLOW_SYNC_THRESHOLD_MS,
11
10
  timeSyncSection,
12
11
  traceAsyncSection,
@@ -15,7 +14,6 @@ import {
15
14
  describe("slow-sync-log", () => {
16
15
  test("threshold default is a positive number", () => {
17
16
  expect(SLOW_SYNC_THRESHOLD_MS).toBeGreaterThan(0);
18
- expect(SLOW_SYNC_CHECK_NAME).toBe("slow_sync_operation");
19
17
  });
20
18
 
21
19
  test("timeSyncSection returns the section's value and runs it once", () => {
@@ -26,8 +26,8 @@ import {
26
26
  normalizeImageBytes,
27
27
  sniffImageFileMimeType,
28
28
  } from "../util/image-conversion.js";
29
+ import { getWorkspaceDir } from "../util/layout.js";
29
30
  import { getLogger } from "../util/logger.js";
30
- import { getWorkspaceDir } from "../util/platform.js";
31
31
  import { getConversationAttachmentsDirPath } from "./conversation-directories.js";
32
32
  import { getDb } from "./db-connection.js";
33
33
  import { rawAll, rawGet, rawRun } from "./raw-query.js";
@@ -52,9 +52,9 @@ import { getCurrentSeq } from "../runtime/assistant-stream-state.js";
52
52
  import { publishConversationListAndMetadataChanged } from "../runtime/sync/resource-sync-events.js";
53
53
  import { publishSyncInvalidation } from "../runtime/sync/sync-publisher.js";
54
54
  import { UserError } from "../util/errors.js";
55
+ import { getConversationsDir } from "../util/layout.js";
55
56
  import { getLogger } from "../util/logger.js";
56
57
  import { getLogsDbPath } from "../util/logs-db-path.js";
57
- import { getConversationsDir } from "../util/platform.js";
58
58
  import { createRowMapper, parseJsonNullable } from "../util/row-mapper.js";
59
59
  import {
60
60
  isRetryableSqliteError,
@@ -128,7 +128,6 @@ import {
128
128
  enqueueLexicalIndexForMessage,
129
129
  enqueuePurgeConversationLexical,
130
130
  } from "./job-handlers/message-lexical.js";
131
- import { buildLifecycleTelemetryEvent } from "./lifecycle-events-store.js";
132
131
  import { resolveMessageContentBlocks } from "./message-content-file.js";
133
132
  import {
134
133
  loadMessageBound,
@@ -143,7 +142,6 @@ import {
143
142
  rawLogsRun,
144
143
  rawMemoryRun,
145
144
  rawRun,
146
- rawTelemetryRun,
147
145
  } from "./raw-query.js";
148
146
  import {
149
147
  attachments,
@@ -4245,17 +4243,6 @@ export async function clearAll(): Promise<{
4245
4243
  }
4246
4244
  };
4247
4245
 
4248
- // Pending skill_loaded rows live in the telemetry_events outbox on the
4249
- // dedicated telemetry connection. Redact them FIRST, before any destructive
4250
- // delete: unshipped skill events reference conversations this wipe must
4251
- // redact, so a telemetry failure must abort the clear-all while the
4252
- // workspace is still fully intact — never after memory state is already
4253
- // gone.
4254
- rawTelemetryRun(
4255
- "conversation:clearAll:skillLoadedEvents",
4256
- "DELETE FROM telemetry_events WHERE name = 'skill_loaded'",
4257
- );
4258
-
4259
4246
  // Delete in dependency order. The cascade handles tool_invocations. memory_jobs,
4260
4247
  // memory_segments, memory_embeddings, and memory_summaries each live on a
4261
4248
  // dedicated connection; clear them there rather than through a main-DB sqlite3
@@ -4310,30 +4297,6 @@ export async function clearAll(): Promise<{
4310
4297
  // orphan sweep reclaims those rows on the next memory boot.
4311
4298
  await runHook(HOOKS.CONVERSATIONS_CLEARED, {});
4312
4299
 
4313
- // Record audit event into the telemetry_events outbox (consent-bypassing);
4314
- // the trail persists platform-side once flushed. Best-effort: the
4315
- // destructive deletes above already completed, so telemetry degradation
4316
- // must not turn a finished wipe into a failure or skip the cleanup below.
4317
- try {
4318
- const auditEventId = uuid();
4319
- const auditEventAt = Date.now();
4320
- rawTelemetryRun(
4321
- "conversation:clearAll:auditEvent",
4322
- `INSERT INTO telemetry_events (id, name, created_at, conversation_id, payload) VALUES (?, 'lifecycle', ?, NULL, ?)`,
4323
- auditEventId,
4324
- auditEventAt,
4325
- JSON.stringify(
4326
- buildLifecycleTelemetryEvent(
4327
- auditEventId,
4328
- "conversations_clear_all",
4329
- auditEventAt,
4330
- ),
4331
- ),
4332
- );
4333
- } catch (err) {
4334
- log.warn({ err }, "clearAll: failed to record audit event");
4335
- }
4336
-
4337
4300
  // Drop the whole lexical (Qdrant) collection — a "delete all" leaves no ids
4338
4301
  // to key per-message cleanup on. AWAITED so the drop completes before
4339
4302
  // clear-all returns and writes resume — a message created right after must
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
- import { getConversationsDir } from "../util/platform.js";
4
+ import { getConversationsDir } from "../util/layout.js";
5
5
 
6
6
  function getConversationDirTimestamp(createdAtMs: number): string {
7
7
  return new Date(createdAtMs).toISOString().replace(/:/g, "-");
@@ -163,14 +163,6 @@ export function isSystemCardMetadata(
163
163
  */
164
164
  export const NO_RESPONSE_MESSAGE_KIND = "no_response";
165
165
 
166
- /**
167
- * Metadata key on an assistant row from a turn that ran on the Auto profile:
168
- * the default profile key the router picked for the turn. Projected to
169
- * `ConversationMessage.autoRoutedProfile` so clients can show which profile
170
- * answered. Absent on every other row.
171
- */
172
- export const AUTO_ROUTED_PROFILE_METADATA_KEY = "autoRoutedProfile";
173
-
174
166
  /**
175
167
  * Shared predicate for the deliberate-silence marker, mirroring
176
168
  * {@link isSystemCardMetadata} so display merging, transcript rendering, and
@@ -29,8 +29,8 @@
29
29
  import { spawn } from "node:child_process";
30
30
  import { Database } from "bun:sqlite";
31
31
 
32
+ import { getDbPath } from "../util/layout.js";
32
33
  import { getLogger } from "../util/logger.js";
33
- import { getDbPath } from "../util/platform.js";
34
34
  import { findSqlite3 } from "../util/sqlite3-runtime.js";
35
35
  import { getSqlite, SQLITE_BUSY_TIMEOUT_MS } from "./db-connection.js";
36
36
 
@@ -5,9 +5,9 @@ import { Database } from "bun:sqlite";
5
5
  import { canonicalizePathThroughExistingParent } from "@mycadet/environments/test-path-guard";
6
6
  import { drizzle } from "drizzle-orm/bun-sqlite";
7
7
 
8
+ import { ensureDataDir, getDbPath } from "../util/layout.js";
8
9
  import { getLogsDbPath } from "../util/logs-db-path.js";
9
10
  import { getMemoryDbPath } from "../util/memory-db-path.js";
10
- import { ensureDataDir, getDbPath } from "../util/platform.js";
11
11
  import { getTelemetryDbPath } from "../util/telemetry-db-path.js";
12
12
  import { clearStoredDb, getStoredDb, setStoredDb } from "./db-singleton.js";
13
13
  import * as schema from "./schema/index.js";
@@ -323,3 +323,13 @@ export function resetDb(): void {
323
323
  clearStoredDb("memory");
324
324
  clearStoredDb("telemetry");
325
325
  }
326
+
327
+ /**
328
+ * Close only the telemetry connection. Migration 387 deletes the telemetry
329
+ * database file outright; closing its handle first lets that unlink succeed
330
+ * on platforms that lock open files, without disturbing the other dedicated
331
+ * connections the way the broader `resetDb()` would.
332
+ */
333
+ export function closeTelemetryDb(): void {
334
+ clearStoredDb("telemetry");
335
+ }
@@ -1,7 +1,7 @@
1
1
  import { existsSync } from "node:fs";
2
2
 
3
+ import { getDbPath } from "../util/layout.js";
3
4
  import { getLogger } from "../util/logger.js";
4
- import { getDbPath } from "../util/platform.js";
5
5
  import { runAsyncSqlite } from "./db-async-query.js";
6
6
  import { getDb, getSqliteFrom } from "./db-connection.js";
7
7
  import { runMigrationSteps } from "./migrations/run-migrations.js";
@@ -1,8 +1,8 @@
1
1
  import { statSync } from "node:fs";
2
2
 
3
3
  import { getConfig } from "../config/loader.js";
4
+ import { getDbPath } from "../util/layout.js";
4
5
  import { getLogger } from "../util/logger.js";
5
- import { getDbPath } from "../util/platform.js";
6
6
  import { sweepOrphanedWatchTimelineEntries } from "../watch/watch-timeline.js";
7
7
  import { pruneRuns } from "../workflows/journal-store.js";
8
8
  import { getMemoryCheckpoint, setMemoryCheckpoint } from "./checkpoints.js";
@@ -14,7 +14,7 @@ import { tmpdir } from "node:os";
14
14
  import { join } from "node:path";
15
15
  import { afterEach, describe, expect, test } from "bun:test";
16
16
 
17
- import { getEmbedWorkerPidPath } from "../../../util/platform.js";
17
+ import { getEmbedWorkerPidPath } from "../../../util/layout.js";
18
18
  import {
19
19
  classifyWorkerOwnership,
20
20
  listWorkerProcesses,
@@ -10,15 +10,15 @@ import { join } from "node:path";
10
10
  import type { Subprocess } from "bun";
11
11
 
12
12
  import { getIsContainerized } from "../../config/env-registry.js";
13
+ import {
14
+ getEmbeddingModelsDir,
15
+ getEmbedWorkerPidPath,
16
+ } from "../../util/layout.js";
13
17
  import { getLogger } from "../../util/logger.js";
14
18
  import {
15
19
  setOomScoreAdj,
16
20
  WORKER_OOM_SCORE_ADJ,
17
21
  } from "../../util/oom-priority.js";
18
- import {
19
- getEmbeddingModelsDir,
20
- getEmbedWorkerPidPath,
21
- } from "../../util/platform.js";
22
22
  import { isProcessAlive } from "../../util/process-liveness.js";
23
23
  import { PromiseGuard } from "../../util/promise-guard.js";
24
24
  import { workerComputeEnv } from "../../util/worker-compute.js";
@@ -26,8 +26,8 @@ import { arch, platform } from "node:os";
26
26
  import { join } from "node:path";
27
27
 
28
28
  import { ensureBun, findBun } from "../../util/bun-runtime.js";
29
+ import { getEmbeddingModelsDir } from "../../util/layout.js";
29
30
  import { getLogger } from "../../util/logger.js";
30
- import { getEmbeddingModelsDir } from "../../util/platform.js";
31
31
  import { PromiseGuard } from "../../util/promise-guard.js";
32
32
 
33
33
  const log = getLogger("embedding-runtime-manager");
@@ -7,8 +7,8 @@ import { v4 as uuid } from "uuid";
7
7
 
8
8
  import { getQdrantHttpPortEnv, getQdrantUrlEnv } from "../../config/env.js";
9
9
  import type { AssistantConfig } from "../../config/types.js";
10
+ import { getDataDir } from "../../util/layout.js";
10
11
  import { getLogger } from "../../util/logger.js";
11
- import { getDataDir } from "../../util/platform.js";
12
12
 
13
13
  const log = getLogger("qdrant-client");
14
14
 
@@ -16,12 +16,12 @@ import { dirname, join } from "node:path";
16
16
  import type { Subprocess } from "bun";
17
17
 
18
18
  import { getQdrantReadyzTimeoutMs, getQdrantUrlEnv } from "../../config/env.js";
19
+ import { getDataDir } from "../../util/layout.js";
19
20
  import { getLogger } from "../../util/logger.js";
20
21
  import {
21
22
  setOomScoreAdj,
22
23
  WORKER_OOM_SCORE_ADJ,
23
24
  } from "../../util/oom-priority.js";
24
- import { getDataDir } from "../../util/platform.js";
25
25
 
26
26
  const log = getLogger("qdrant-manager");
27
27
 
@@ -71,7 +71,7 @@ import type {
71
71
  RouteDefinition,
72
72
  RouteHandlerArgs,
73
73
  } from "../../../runtime/routes/types.js";
74
- import { getWorkspacePluginsDir } from "../../../util/platform.js";
74
+ import { getWorkspacePluginsDir } from "../../../util/layout.js";
75
75
  import {
76
76
  deleteMemoryCheckpoint,
77
77
  isLexicalBackfillComplete,
@@ -39,7 +39,7 @@ import {
39
39
  loadRawConfig,
40
40
  saveRawConfig,
41
41
  } from "../../../config/loader.js";
42
- import { getWorkspacePluginsDir } from "../../../util/platform.js";
42
+ import { getWorkspacePluginsDir } from "../../../util/layout.js";
43
43
  import { getMemoryDb } from "../../db-connection.js";
44
44
  import { initializeDb } from "../../db-init.js";
45
45
  import { memoryJobs } from "../../schema/index.js";
@@ -1,14 +1,14 @@
1
1
  import type { AssistantConfig } from "../../config/types.js";
2
2
  import { HOOKS } from "../../plugin-api/constants.js";
3
3
  import { runHook } from "../../plugins/pipeline.js";
4
- import { rotateToolInvocations } from "../../telemetry/tool-usage-store.js";
5
4
  import { getLogger } from "../../util/logger.js";
6
5
  import { getLogsDbPath } from "../../util/logs-db-path.js";
7
6
  import { purgeConversationSegments } from "../conversation-crud.js";
8
7
  import { runAsyncSqlite } from "../db-async-query.js";
9
8
  import { getDb } from "../db-connection.js";
10
9
  import { enqueueMemoryJob, type MemoryJob } from "../jobs-store.js";
11
- import { rawAll, rawLogsRun, rawRun, rawTelemetryRun } from "../raw-query.js";
10
+ import { rawAll, rawLogsRun, rawRun } from "../raw-query.js";
11
+ import { rotateToolInvocations } from "../tool-usage-store.js";
12
12
 
13
13
  const log = getLogger("memory-jobs-worker");
14
14
 
@@ -161,9 +161,8 @@ function parseDeletedCount(stdout: string | undefined): number {
161
161
  * Tables with onDelete cascade on conversation FK (memory_segments,
162
162
  * conversation_keys, channel_inbound_events, message_runs, call_sessions,
163
163
  * external_conversation_bindings) are handled automatically. Tables without
164
- * cascade (messages, tool_invocations, plus llm_request_logs and
165
- * conversation-scoped telemetry_events rows on their dedicated connections)
166
- * are deleted explicitly before removing the conversation row.
164
+ * cascade (messages, tool_invocations, plus llm_request_logs) are deleted
165
+ * explicitly before removing the conversation row.
167
166
  */
168
167
  export function pruneOldConversationsJob(
169
168
  job: MemoryJob,
@@ -211,23 +210,15 @@ export function pruneOldConversationsJob(
211
210
  return;
212
211
  }
213
212
 
214
- // Non-cascading tables. llm_request_logs and conversation-scoped
215
- // telemetry_events rows live in the dedicated logs/telemetry
216
- // connections, so they are deleted there (outside this main-DB
217
- // transaction). Both run before the main-DB deletes: a failure leaves
218
- // the conversation row in place so the prune retries — unshipped
219
- // telemetry events must never outlive their pruned conversation and
220
- // flush later.
213
+ // Non-cascading tables. llm_request_logs lives in the dedicated logs
214
+ // connection, so it is deleted there (outside this main-DB
215
+ // transaction), before the main-DB deletes: a failure leaves the
216
+ // conversation row in place so the prune retries.
221
217
  rawLogsRun(
222
218
  "cleanup:pruneOldConversations:logs",
223
219
  `DELETE FROM llm_request_logs WHERE conversation_id = ?`,
224
220
  id,
225
221
  );
226
- rawTelemetryRun(
227
- "cleanup:pruneOldConversations:telemetry",
228
- `DELETE FROM telemetry_events WHERE conversation_id = ?`,
229
- id,
230
- );
231
222
  rawRun(
232
223
  "cleanup:pruneOldConversations:toolInv",
233
224
  `DELETE FROM tool_invocations WHERE conversation_id = ?`,