@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mycadet/assistant",
3
- "version": "0.12.9",
3
+ "version": "0.12.11",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "exports": {
@@ -20,15 +20,11 @@
20
20
  "probe:skill-retrieval": "bun run scripts/probe-skill-retrieval.ts",
21
21
  "format": "prettier --write .",
22
22
  "format:check": "prettier --check .",
23
- "lint": "bun run lint:skills && bun run lint:openapi && eslint --max-warnings 2956",
23
+ "lint": "bun run lint:skills && bun run lint:openapi && eslint --max-warnings 2863",
24
24
  "lint:unused": "knip --include files,dependencies,unlisted",
25
25
  "lint:circular": "bun run scripts/check-circular-deps.ts",
26
26
  "lint:unused:production": "knip --production --include exports",
27
- "sync:bundled-catalog": "cd .. && bun run meta/sync-bundled-copies.ts && bun run assistant/scripts/generate-bundled-plugin-packages.ts",
28
- "pretypecheck": "bun run sync:bundled-catalog",
29
- "typecheck": "bunx tsc --noEmit",
30
- "pretypecheck:fast": "bun run sync:bundled-catalog",
31
- "typecheck:fast": "bunx tsgo --noEmit",
27
+ "typecheck": "bunx tsgo --noEmit",
32
28
  "test": "bun run scripts/run-tests.ts",
33
29
  "test:coverage": "COVERAGE=true bun run scripts/run-tests.ts",
34
30
  "test:stable": "EXCLUDE_EXPERIMENTAL=true bun run scripts/run-tests.ts",
@@ -52,7 +52,7 @@ async function buildMigratedFixture(outWorkspaceDir: string): Promise<void> {
52
52
  const { initializeDb } = await import("../src/persistence/db-init.js");
53
53
  const { getSqlite, getLogsSqlite, getMemorySqlite, getTelemetrySqlite } =
54
54
  await import("../src/persistence/db-connection.js");
55
- const { getDbPath } = await import("../src/util/platform.js");
55
+ const { getDbPath } = await import("../src/util/layout.js");
56
56
  const { getLogsDbPath } = await import("../src/util/logs-db-path.js");
57
57
  const { getMemoryDbPath } = await import("../src/util/memory-db-path.js");
58
58
  const { getTelemetryDbPath } =
@@ -31,13 +31,29 @@ import type {
31
31
  import { createDocument } from "zod-openapi";
32
32
 
33
33
  import { ROUTES } from "../src/runtime/routes/index.js";
34
- import { jsonValueSchema } from "../src/telemetry/telemetry-wire.generated.js";
35
34
 
36
- // The recursive wire JSON-value schema (`claims`/`suggestions` item type) must
37
- // be hoisted into a named component so it can `$ref` itself; without a
38
- // registered id zod-openapi falls back to an anonymous `__schema0`. Name it
39
- // explicitly so the spec + generated SDK read as `TelemetryJsonValue`.
40
- z.globalRegistry.add(jsonValueSchema, { id: "TelemetryJsonValue" });
35
+ // The recursive JSON-value schema (`claims`/`suggestions` item type) must be
36
+ // hoisted into a named component so it can `$ref` itself; without a registered
37
+ // id zod-openapi falls back to an anonymous `__schema0`. Name it explicitly so
38
+ // the spec + generated SDK read as `JsonValue`.
39
+ type JsonValue =
40
+ | string
41
+ | number
42
+ | boolean
43
+ | null
44
+ | JsonValue[]
45
+ | { [key: string]: JsonValue };
46
+ const jsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>
47
+ z.union([
48
+ z.string(),
49
+ z.number(),
50
+ z.boolean(),
51
+ z.null(),
52
+ z.array(jsonValueSchema),
53
+ z.record(z.string(), jsonValueSchema),
54
+ ]),
55
+ );
56
+ z.globalRegistry.add(jsonValueSchema, { id: "JsonValue" });
41
57
 
42
58
  const ROOT = resolve(import.meta.dir, "..");
43
59
  const OUTPUT_PATH = join(ROOT, "openapi.yaml");
@@ -19,15 +19,9 @@ if (!run("git", ["config", "core.hooksPath"])) {
19
19
  run("git", ["config", "core.hooksPath", ".githooks"]);
20
20
  }
21
21
 
22
+ // Keep the bundled feature-flag registry copies in sync with the canonical
23
+ // source on fresh installs.
22
24
  const syncScript = join(repoRoot, "meta", "sync-bundled-copies.ts");
23
- if (existsSync(syncScript) && run(process.execPath, ["run", syncScript])) {
24
- run(process.execPath, [
25
- "run",
26
- join(
27
- repoRoot,
28
- "assistant",
29
- "scripts",
30
- "generate-bundled-plugin-packages.ts",
31
- ),
32
- ]);
25
+ if (existsSync(syncScript)) {
26
+ run(process.execPath, ["run", syncScript]);
33
27
  }
@@ -8,7 +8,6 @@
8
8
  * experimental file lists, and the pre-migrated DB fixture.
9
9
  */
10
10
 
11
- import { existsSync } from "node:fs";
12
11
  import { basename } from "node:path";
13
12
 
14
13
  import { runIsolatedTests } from "@mycadet/shared/scripts/run-isolated-tests";
@@ -46,27 +45,7 @@ const KNOWN_BROKEN_FILES = new Set<string>([
46
45
  "src/workflows/sandbox-cpu-guard-asyncify.test.ts",
47
46
  ]);
48
47
 
49
- // Ensure generated catalog inputs exist before tests. Locally, postinstall may
50
- // not run in worktrees that share node_modules, so the static JSON imports can
51
- // otherwise be missing.
52
- function syncBundledCatalog(): void {
53
- if (!existsSync("../meta/sync-bundled-copies.ts")) {
54
- return;
55
- }
56
- const result = Bun.spawnSync(["bun", "run", "sync:bundled-catalog"], {
57
- stdout: "ignore",
58
- stderr: "pipe",
59
- windowsHide: true,
60
- });
61
- if (result.exitCode !== 0) {
62
- throw new Error(
63
- `Failed to generate bundled catalog inputs: ${result.stderr.toString()}`,
64
- );
65
- }
66
- }
67
-
68
48
  await runIsolatedTests({
69
- setup: syncBundledCatalog,
70
49
  filter: (file) => {
71
50
  const base = basename(file);
72
51
  // Always exclude benchmark files — run them with `bun run test:bench`.
@@ -10,8 +10,6 @@ import { join } from "node:path";
10
10
  import { afterEach, beforeEach, describe, expect, test } from "bun:test";
11
11
 
12
12
  import { repairAdaptiveThinkingOnCloudProfiles } from "../workspace/adaptive-thinking-repair.js";
13
- import { enableAdaptiveThinkingCloudProfilesMigration } from "../workspace/migrations/097-enable-adaptive-thinking-managed-profiles.js";
14
- import { recheckAdaptiveThinkingModelImpliedAnthropicMigration } from "../workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.js";
15
13
 
16
14
  const ADAPTIVE = { enabled: true, streamThinking: true };
17
15
 
@@ -49,30 +47,14 @@ function profile(name: string): Record<string, unknown> {
49
47
  return profiles[name] as Record<string, unknown>;
50
48
  }
51
49
 
52
- // The startup repair, migration 097, and migration 104 keep frozen copies of
53
- // the same logic (migration modules must stay self-contained). Run every
54
- // scenario against all of them so the copies can't drift.
55
- const implementations: Array<[string, (dir: string) => void]> = [
56
- ["startup repair", repairAdaptiveThinkingOnCloudProfiles],
57
- [
58
- "migration 097",
59
- (dir) => enableAdaptiveThinkingCloudProfilesMigration.run(dir),
60
- ],
61
- [
62
- "migration 104",
63
- (dir) => recheckAdaptiveThinkingModelImpliedAnthropicMigration.run(dir),
64
- ],
65
- ];
66
-
67
- describe.each(implementations)("%s", (_label, run) => {
50
+ describe("repairAdaptiveThinkingOnCloudProfiles", () => {
68
51
  test("patches managed Anthropic profiles missing thinking", () => {
69
52
  writeConfig({
70
53
  llm: {
71
54
  default: { provider: "anthropic", model: "claude-sonnet-4-6" },
72
55
  profiles: {
73
- balanced: { source: "managed", provider: "anthropic" },
56
+ balanced: { provider: "anthropic" },
74
57
  "quality-optimized": {
75
- source: "managed",
76
58
  provider: "anthropic",
77
59
  thinking: { enabled: false },
78
60
  },
@@ -80,14 +62,14 @@ describe.each(implementations)("%s", (_label, run) => {
80
62
  },
81
63
  });
82
64
 
83
- run(workspaceDir);
65
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
84
66
 
85
67
  expect(profile("balanced").thinking).toEqual(ADAPTIVE);
86
68
  expect(profile("quality-optimized").thinking).toEqual(ADAPTIVE);
87
69
  });
88
70
 
89
- test("skips source-less empty shells when llm.default.provider is non-Anthropic", () => {
90
- // Migration 052 seeds empty {} shells (no source, no provider) on legacy
71
+ test("skips empty shells when llm.default.provider is non-Anthropic", () => {
72
+ // Migration 052 seeds empty {} shells (no provider) on legacy
91
73
  // non-Anthropic workspaces. They inherit the non-Anthropic provider from
92
74
  // llm.default and must stay off the Anthropic-specific repair.
93
75
  writeConfig({
@@ -100,13 +82,13 @@ describe.each(implementations)("%s", (_label, run) => {
100
82
  },
101
83
  });
102
84
 
103
- run(workspaceDir);
85
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
104
86
 
105
87
  expect(profile("balanced")).toEqual({});
106
88
  expect(profile("quality-optimized")).toEqual({});
107
89
  });
108
90
 
109
- test("treats absent llm.default.provider as Anthropic for source-less profiles", () => {
91
+ test("treats absent llm.default.provider as Anthropic", () => {
110
92
  writeConfig({
111
93
  llm: {
112
94
  default: { model: "claude-sonnet-4-6" },
@@ -116,7 +98,7 @@ describe.each(implementations)("%s", (_label, run) => {
116
98
  },
117
99
  });
118
100
 
119
- run(workspaceDir);
101
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
120
102
 
121
103
  expect(profile("balanced").thinking).toEqual(ADAPTIVE);
122
104
  });
@@ -131,30 +113,27 @@ describe.each(implementations)("%s", (_label, run) => {
131
113
  },
132
114
  });
133
115
 
134
- run(workspaceDir);
116
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
135
117
 
136
118
  expect(profile("balanced").thinking).toEqual(ADAPTIVE);
137
119
  });
138
120
 
139
- test("patches source-less profiles pinning a known Claude model under a non-Anthropic default", () => {
140
- // A managed/source-less profile that omits `provider` but pins a known
141
- // Claude model is Anthropic via the resolver's model-implied provider, even
142
- // when llm.default.provider is non-Anthropic. It must still get adaptive
121
+ test("patches profiles pinning a known Claude model under a non-Anthropic default", () => {
122
+ // A profile that omits `provider` but pins a known Claude model is
123
+ // Anthropic via the resolver's model-implied provider, even when
124
+ // llm.default.provider is non-Anthropic. It must still get adaptive
143
125
  // thinking rather than being skipped.
144
126
  writeConfig({
145
127
  llm: {
146
128
  default: { provider: "gemini", model: "gemini-2.5-pro" },
147
129
  profiles: {
148
130
  balanced: { model: "claude-sonnet-4-6" },
149
- "quality-optimized": {
150
- source: "managed",
151
- model: "claude-opus-4-8",
152
- },
131
+ "quality-optimized": { model: "claude-opus-4-8" },
153
132
  },
154
133
  },
155
134
  });
156
135
 
157
- run(workspaceDir);
136
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
158
137
 
159
138
  expect(profile("balanced").thinking).toEqual(ADAPTIVE);
160
139
  expect(profile("quality-optimized").thinking).toEqual(ADAPTIVE);
@@ -170,41 +149,24 @@ describe.each(implementations)("%s", (_label, run) => {
170
149
  },
171
150
  });
172
151
 
173
- run(workspaceDir);
174
-
175
- expect(profile("balanced").thinking).toBeUndefined();
176
- });
177
-
178
- test("skips source: user profiles", () => {
179
- writeConfig({
180
- llm: {
181
- default: { provider: "anthropic" },
182
- profiles: {
183
- balanced: { source: "user", provider: "anthropic" },
184
- },
185
- },
186
- });
187
-
188
- run(workspaceDir);
152
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
189
153
 
190
154
  expect(profile("balanced").thinking).toBeUndefined();
191
155
  });
192
156
 
193
157
  test("is idempotent when thinking is already enabled", () => {
194
- const config = {
158
+ writeConfig({
195
159
  llm: {
196
160
  default: { provider: "anthropic" },
197
161
  profiles: {
198
162
  balanced: {
199
- source: "managed",
200
163
  thinking: { enabled: true, streamThinking: false },
201
164
  },
202
165
  },
203
166
  },
204
- };
205
- writeConfig(config);
167
+ });
206
168
 
207
- run(workspaceDir);
169
+ repairAdaptiveThinkingOnCloudProfiles(workspaceDir);
208
170
 
209
171
  expect(profile("balanced").thinking).toEqual({
210
172
  enabled: true,
@@ -181,82 +181,6 @@ describe("AgentLoop", () => {
181
181
  expect(calls[1].options?.config?.overrideProfile).toBe("quality-optimized");
182
182
  });
183
183
 
184
- test("the auto origin follows the routed override and drops once a switch replaces it", async () => {
185
- const toolCallId = "tool-1";
186
- const { provider, calls } = createMockProvider([
187
- toolUseResponse(toolCallId, "read_file", { path: "/tmp/test.txt" }),
188
- textResponse("done"),
189
- ]);
190
- let overrideProfile = "quality-optimized";
191
- const loop = new AgentLoop({
192
- provider: provider,
193
- systemPrompt: "system",
194
- conversationId: "test-conversation",
195
- tools: dummyTools,
196
- toolExecutor: async () => {
197
- // A confirmed profile session mid-turn: the user's pick, not Auto's.
198
- overrideProfile = "cost-optimized";
199
- return { content: "ok", isError: false };
200
- },
201
- });
202
-
203
- await loop.run({
204
- messages: [userMessage],
205
- onEvent: collectEvents([]),
206
- trust: { sourceChannel: "cadet", trustClass: "unknown" },
207
- requestId: "req-1",
208
- callSite: "mainAgent",
209
- overrideProfile: "quality-optimized",
210
- overrideProfileOrigin: "auto",
211
- resolveOverrideProfile: () => overrideProfile,
212
- });
213
-
214
- expect(calls).toHaveLength(2);
215
- expect(calls[0].options?.config?.overrideProfile).toBe("quality-optimized");
216
- expect(calls[0].options?.config?.overrideProfileOrigin).toBe("auto");
217
- expect(calls[1].options?.config?.overrideProfile).toBe("cost-optimized");
218
- expect(calls[1].options?.config?.overrideProfileOrigin).toBeUndefined();
219
- });
220
-
221
- test("a pre-model-call hook keeps the auto origin unless it changes the profile", async () => {
222
- let hookProfile: string | null | undefined;
223
- registerPlugin({
224
- manifest: { name: "profile-hook", version: "0.0.1" },
225
- hooks: {
226
- "pre-model-call": async (ctx) =>
227
- hookProfile === undefined
228
- ? ctx
229
- : { ...ctx, modelProfile: hookProfile },
230
- },
231
- });
232
- const run = async () => {
233
- const { provider, calls } = createMockProvider([textResponse("ok")]);
234
- const loop = new AgentLoop({
235
- provider: provider,
236
- systemPrompt: "system",
237
- conversationId: "test-conversation",
238
- tools: dummyTools,
239
- });
240
- await loop.run({
241
- messages: [userMessage],
242
- onEvent: collectEvents([]),
243
- trust: { sourceChannel: "cadet", trustClass: "unknown" },
244
- requestId: "req-1",
245
- callSite: "mainAgent",
246
- overrideProfile: "quality-optimized",
247
- overrideProfileOrigin: "auto",
248
- });
249
- return calls[0].options?.config;
250
- };
251
-
252
- hookProfile = undefined;
253
- expect((await run())?.overrideProfileOrigin).toBe("auto");
254
- hookProfile = "cost-optimized";
255
- expect((await run())?.overrideProfileOrigin).toBeUndefined();
256
- hookProfile = null;
257
- expect((await run())?.overrideProfileOrigin).toBeUndefined();
258
- });
259
-
260
184
  test("re-resolves max input tokens before truncating tool results", async () => {
261
185
  const toolCallId = "tool-1";
262
186
  const toolOutput = "x".repeat(2_500);
@@ -2960,13 +2960,13 @@ describe("AnthropicProvider — Cloud Proxy Fallback", () => {
2960
2960
 
2961
2961
  test("constructor passes baseURL to Anthropic SDK when provided", () => {
2962
2962
  new AnthropicProvider("managed-key", "claude-sonnet-4-6", {
2963
- baseURL: "https://platform.example.com/v1/runtime-proxy/anthropic",
2963
+ baseURL: "https://test-cloud.mycadet.ai/v1/runtime-proxy/anthropic",
2964
2964
  });
2965
2965
 
2966
2966
  expect(lastConstructorArgs).not.toBeNull();
2967
2967
  expect(lastConstructorArgs!.apiKey).toBe("managed-key");
2968
2968
  expect(lastConstructorArgs!.baseURL).toBe(
2969
- "https://platform.example.com/v1/runtime-proxy/anthropic",
2969
+ "https://test-cloud.mycadet.ai/v1/runtime-proxy/anthropic",
2970
2970
  );
2971
2971
  });
2972
2972
 
@@ -2980,7 +2980,7 @@ describe("AnthropicProvider — Cloud Proxy Fallback", () => {
2980
2980
 
2981
2981
  test("managed mode provider preserves tool-pairing behavior", async () => {
2982
2982
  const provider = new AnthropicProvider("managed-key", "claude-sonnet-4-6", {
2983
- baseURL: "https://platform.example.com/v1/runtime-proxy/anthropic",
2983
+ baseURL: "https://test-cloud.mycadet.ai/v1/runtime-proxy/anthropic",
2984
2984
  });
2985
2985
 
2986
2986
  const messages: Message[] = [
@@ -3003,7 +3003,7 @@ describe("AnthropicProvider — Cloud Proxy Fallback", () => {
3003
3003
 
3004
3004
  test("managed mode provider preserves cache-control behavior", async () => {
3005
3005
  const provider = new AnthropicProvider("managed-key", "claude-sonnet-4-6", {
3006
- baseURL: "https://platform.example.com/v1/runtime-proxy/anthropic",
3006
+ baseURL: "https://test-cloud.mycadet.ai/v1/runtime-proxy/anthropic",
3007
3007
  });
3008
3008
 
3009
3009
  await provider.sendMessage([userMsg("Hi")], {
@@ -3286,13 +3286,13 @@ describe("OpenRouterProvider — Anthropic dispatch", () => {
3286
3286
  "ast-key",
3287
3287
  "anthropic/claude-opus-4.6",
3288
3288
  {
3289
- baseURL: "https://platform.example.com/v1/runtime-proxy/openrouter/v1",
3289
+ baseURL: "https://test-cloud.mycadet.ai/v1/runtime-proxy/openrouter/v1",
3290
3290
  },
3291
3291
  );
3292
3292
  await provider.sendMessage([userMsg("hi")]);
3293
3293
 
3294
3294
  expect(lastConstructorArgs).toMatchObject({
3295
- baseURL: "https://platform.example.com/v1/runtime-proxy/openrouter",
3295
+ baseURL: "https://test-cloud.mycadet.ai/v1/runtime-proxy/openrouter",
3296
3296
  });
3297
3297
  });
3298
3298
 
@@ -22,7 +22,7 @@
22
22
  * No source-module imports — only node stdlib. Helpers in `__tests__/`
23
23
  * must not import from `src/` (see assistant/AGENTS.md). Callers pass
24
24
  * the resolved `dbPath` in so this file stays decoupled from
25
- * `src/util/platform.ts`.
25
+ * `src/util/layout.ts`.
26
26
  */
27
27
 
28
28
  import { realpathSync, rmSync } from "node:fs";
@@ -110,8 +110,8 @@ describe("assistant ID boundary", () => {
110
110
  const repoRoot = getRepoRoot();
111
111
 
112
112
  // Scan all daemon/runtime source directories for any reference to
113
- // normalizeAssistantId. The function is defined in util/platform.ts for
114
- // gateway use — it must not appear in daemon scoping modules.
113
+ // normalizeAssistantId. The function is deleted — it must not be
114
+ // reintroduced in daemon scoping modules.
115
115
  let grepOutput = "";
116
116
  try {
117
117
  grepOutput = execFileSync(
@@ -134,7 +134,7 @@ describe("assistant ID boundary", () => {
134
134
  const message = [
135
135
  "Found daemon/runtime source files that reference `normalizeAssistantId`.",
136
136
  "Daemon code should use the `DAEMON_INTERNAL_ASSISTANT_ID` constant instead.",
137
- "The `normalizeAssistantId` function is for gateway/platform use only (defined in util/platform.ts).",
137
+ "The `normalizeAssistantId` function is deleted and must not be reintroduced.",
138
138
  "",
139
139
  "Violations:",
140
140
  ...violations.map((f) => ` - ${f}`),
@@ -75,7 +75,7 @@ import {
75
75
  ROUTES,
76
76
  } from "../runtime/routes/attachment-routes.js";
77
77
  import type { RouteHandlerArgs } from "../runtime/routes/types.js";
78
- import { getWorkspaceDir } from "../util/platform.js";
78
+ import { getWorkspaceDir } from "../util/layout.js";
79
79
  import { fakeHeifHeaderBytes, PNG_1PX_BYTES } from "./heic-fixture.js";
80
80
 
81
81
  const uploadRoute = ROUTES.find((r) => r.operationId === "attachment_upload")!;
@@ -34,7 +34,7 @@ import { getDb } from "../persistence/db-connection.js";
34
34
  import { initializeDb } from "../persistence/db-init.js";
35
35
  import { rawGet, rawRun } from "../persistence/raw-query.js";
36
36
  import { mediaSourceBytes } from "../providers/media-resolve.js";
37
- import { getConversationsDir } from "../util/platform.js";
37
+ import { getConversationsDir } from "../util/layout.js";
38
38
  import { setConfig } from "./helpers/set-config.js";
39
39
 
40
40
  // Disable memory so addMessage skips background indexing of test messages.
@@ -9,7 +9,7 @@ import { initializeDb } from "../persistence/db-init.js";
9
9
  import {
10
10
  getRecentInvocations,
11
11
  rotateToolInvocations,
12
- } from "../telemetry/tool-usage-store.js";
12
+ } from "../persistence/tool-usage-store.js";
13
13
  import { resetDbForTesting } from "./db-test-helpers.js";
14
14
 
15
15
  // ---------------------------------------------------------------------------
@@ -119,7 +119,7 @@ import {
119
119
  ServiceUnavailableError,
120
120
  } from "../runtime/routes/errors.js";
121
121
  import type { RouteHandlerArgs } from "../runtime/routes/types.js";
122
- import { getWorkspaceDir } from "../util/platform.js";
122
+ import { getWorkspaceDir } from "../util/layout.js";
123
123
  import { setConfig } from "./helpers/set-config.js";
124
124
 
125
125
  // ---------------------------------------------------------------------------