@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
@@ -22,12 +22,10 @@ import {
22
22
  import type { Message, ToolDefinition } from "../providers/types.js";
23
23
  import type { ActiveSkillEntry } from "../skills/active-skill-tools.js";
24
24
  import { deriveActiveSkills } from "../skills/active-skill-tools.js";
25
- import { getCachedCatalogSync } from "../skills/catalog-cache.js";
26
25
  import { isSkillCompatibleWithCloud } from "../skills/cloud-compatibility.js";
27
- import { readInstallMeta, touchSkillLastUsed } from "../skills/install-meta.js";
26
+ import { touchSkillLastUsed } from "../skills/install-meta.js";
28
27
  import { parseToolManifestFile } from "../skills/tool-manifest.js";
29
28
  import { computeSkillVersionHash } from "../skills/version-hash.js";
30
- import { recordSkillLoadedEvent } from "../telemetry/skill-loaded-events-store.js";
31
29
  import {
32
30
  getTool,
33
31
  getToolOwner,
@@ -35,8 +33,6 @@ import {
35
33
  unregisterSkillTools,
36
34
  } from "../tools/registry.js";
37
35
  import { createSkillToolsFromManifest } from "../tools/skills/skill-tool-factory.js";
38
- import type { UsageAttributionSnapshot } from "../usage/attribution.js";
39
- import { toAttributionColumns } from "../usage/attribution.js";
40
36
  import { getLogger } from "../util/logger.js";
41
37
 
42
38
  const log = getLogger("conversation-skill-tools");
@@ -125,11 +121,6 @@ export interface ProjectSkillToolsOptions {
125
121
  * conversation's resolution; non-plugin skills are unaffected.
126
122
  */
127
123
  effectiveEnabledPluginSet?: Set<string> | null;
128
- /** Telemetry context for skill_loaded events; absent disables recording. */
129
- telemetry?: {
130
- conversationId: string;
131
- attribution: UsageAttributionSnapshot | null;
132
- };
133
124
  }
134
125
 
135
126
  // ---------------------------------------------------------------------------
@@ -160,63 +151,11 @@ function loadManifestForSkill(skill: SkillSummary): SkillToolManifest | null {
160
151
  }
161
152
  }
162
153
 
163
- /**
164
- * Whether a skill is Cadet-produced for `skill_loaded` telemetry purposes:
165
- * bundled skills always are; managed skills only when their install metadata
166
- * records a `cadet` origin (legacy version.json installs are inferred as
167
- * cadet by `readInstallMeta`). All other sources (workspace, extra, plugin)
168
- * never emit.
169
- */
170
- function isCadetProducedSkill(skill: SkillSummary): boolean {
171
- if (skill.source === "bundled") {
172
- return true;
173
- }
174
- if (skill.source === "managed") {
175
- return readInstallMeta(skill.directoryPath)?.origin === "cadet";
176
- }
177
- return false;
178
- }
179
-
180
- /**
181
- * Record a `skill_loaded` telemetry event for a newly-activated Cadet-produced
182
- * skill. Metadata only — never skill output or conversation content.
183
- * `skill_updated_at` comes from the cached merged catalog (sync accessor —
184
- * this runs on the hot tool-projection path). Failures are swallowed at
185
- * debug level: recording must never break tool projection.
186
- */
187
- function recordSkillLoadedTelemetry(
188
- skill: SkillSummary,
189
- telemetry: ProjectSkillToolsOptions["telemetry"],
190
- ): void {
191
- if (!telemetry) {
192
- return;
193
- }
194
- try {
195
- if (!isCadetProducedSkill(skill)) {
196
- return;
197
- }
198
- const catalogEntry = getCachedCatalogSync().find((s) => s.id === skill.id);
199
- recordSkillLoadedEvent({
200
- conversationId: telemetry.conversationId,
201
- skillName: skill.id,
202
- skillUpdatedAt: catalogEntry?.updatedAt,
203
- ...toAttributionColumns(telemetry.attribution),
204
- });
205
- } catch (err) {
206
- log.debug(
207
- { err, skillId: skill.id },
208
- "Failed to record skill_loaded telemetry event (non-fatal)",
209
- );
210
- }
211
- }
212
-
213
154
  /**
214
155
  * Stamp `lastUsedAt` (day-debounced) on a newly-loaded managed skill's
215
- * install metadata. Independent of telemetry consent and the
216
- * `isCadetProducedSkill` gate — those suppress `origin: "custom"` skills,
217
- * which are exactly the assistant-authored skills the usage-based prune must
218
- * track. Only managed skills carry install metadata; bundled, workspace, and
219
- * plugin skills are skipped. Best-effort: the underlying write never throws.
156
+ * install metadata. Only managed skills carry install metadata; bundled,
157
+ * workspace, and plugin skills are skipped. Best-effort: the underlying
158
+ * write never throws.
220
159
  */
221
160
  function stampCloudSkillUsage(skill: SkillSummary): void {
222
161
  if (skill.source !== "managed") {
@@ -439,7 +378,6 @@ export function projectSkillTools(
439
378
  }
440
379
  successfulEntries.set(skillId, NO_TOOLS_VERSION);
441
380
  if (prevHash === undefined) {
442
- recordSkillLoadedTelemetry(skill, options?.telemetry);
443
381
  stampCloudSkillUsage(skill);
444
382
  }
445
383
  continue;
@@ -481,10 +419,6 @@ export function projectSkillTools(
481
419
  // skill_loaded record below) is retried next turn.
482
420
  continue;
483
421
  }
484
- // A first successful registration counts as the load; a manifest-less
485
- // activation gaining a TOOLS.json re-registers, which — like a
486
- // version-hash change — counts as a new load.
487
- recordSkillLoadedTelemetry(skill, options?.telemetry);
488
422
  stampCloudSkillUsage(skill);
489
423
  } else if (prevHash !== currentHash) {
490
424
  // Hash changed — unregister stale tools, then re-register with new definitions
@@ -504,8 +438,6 @@ export function projectSkillTools(
504
438
  // Don't add to successfulEntries — will be cleaned up as transiently-failed
505
439
  continue;
506
440
  }
507
- // A version change that re-registers counts as a new skill load.
508
- recordSkillLoadedTelemetry(skill, options?.telemetry);
509
441
  stampCloudSkillUsage(skill);
510
442
  } else {
511
443
  // Hash unchanged — filter to only tools that are actually registered
@@ -28,7 +28,7 @@ import {
28
28
  import { RateLimitProvider } from "../providers/ratelimit.js";
29
29
  import { listProviders } from "../providers/registry.js";
30
30
  import { getSubagentManager } from "../subagent/index.js";
31
- import { getSandboxWorkingDir } from "../util/platform.js";
31
+ import { getSandboxWorkingDir } from "../util/layout.js";
32
32
  import { Conversation } from "./conversation.js";
33
33
  import { conversationEventSink } from "./conversation-event-sink.js";
34
34
  import {
@@ -12,10 +12,6 @@ import {
12
12
  type SurfaceType,
13
13
  SurfaceTypeSchema,
14
14
  } from "../api/surfaces.js";
15
- import {
16
- type ActivationMomentParam,
17
- isActivationMomentParam,
18
- } from "../telemetry/activation-funnel.js";
19
15
  import { isPlainObject } from "../util/object.js";
20
16
 
21
17
  /** Action snapshot stored with a surface (style stays a loose string). */
@@ -48,14 +44,6 @@ export type SurfaceStateEntry = {
48
44
  data: SurfaceDataByType[K];
49
45
  title?: string;
50
46
  actions?: StoredSurfaceAction[];
51
- /**
52
- * Activation-rail telemetry tag (daemon-only). When the model tags a
53
- * `ui_show` surface as an activation funnel moment, the token is captured
54
- * here so the milestone can be recorded deterministically when the user
55
- * commits the surface (`handleSurfaceAction`). Never forwarded to the
56
- * client.
57
- */
58
- activationMoment?: ActivationMomentParam;
59
47
  };
60
48
  }[SurfaceType];
61
49
 
@@ -70,12 +58,6 @@ export type CurrentTurnSurface = {
70
58
  display?: string;
71
59
  persistent?: boolean;
72
60
  toolCallId?: string;
73
- /**
74
- * Commit-timing activation-rail tag (daemon-only). Carried through to the
75
- * persisted `ui_surface` history block so it survives a reload — never sent
76
- * to the client.
77
- */
78
- activationMoment?: ActivationMomentParam;
79
61
  /**
80
62
  * Completion stamped when the user answers the surface before this turn's
81
63
  * message lands. The snapshot is the only record of the surface at that
@@ -170,18 +152,6 @@ export function parseStoredActions(
170
152
  });
171
153
  }
172
154
 
173
- /**
174
- * The daemon-only commit-timing activation tag from a persisted block,
175
- * validated and dropped if malformed. This field never reaches the client.
176
- */
177
- export function parseActivationMomentTag(
178
- value: unknown,
179
- ): ActivationMomentParam | undefined {
180
- return typeof value === "string" && isActivationMomentParam(value)
181
- ? value
182
- : undefined;
183
- }
184
-
185
155
  /**
186
156
  * Map a persisted `ui_surface` history block to a live `surfaceState` entry.
187
157
  * The block is untyped JSON from the messages table: both `surfaceType` and
@@ -209,13 +179,10 @@ export function restoreSurfaceStateEntry(
209
179
  typeof b.surfaceType === "string" && b.surfaceType.trim().length > 0
210
180
  ? b.surfaceType
211
181
  : "dynamic_page";
212
- const activationMoment = parseActivationMomentTag(b.activationMoment);
213
-
214
182
  return {
215
183
  surfaceType,
216
184
  data: coerceSurfaceDataRecord(b.data),
217
185
  title: typeof b.title === "string" ? b.title : undefined,
218
186
  actions: parseStoredActions(b.actions),
219
- ...(activationMoment ? { activationMoment } : {}),
220
187
  } as SurfaceStateEntry;
221
188
  }
@@ -30,12 +30,10 @@ import {
30
30
  } from "../apps/app-store.js";
31
31
  import { executeDesktopComputerUse } from "../desktop/desktop-computer-use.js";
32
32
  import { canUseVirtualDesktop } from "../desktop/virtual-desktop-feature.js";
33
- import { recordActivationEvent } from "../onboarding/onboarding-events-store.js";
34
33
  import {
35
34
  getMessages,
36
35
  updateMessageContent,
37
36
  } from "../persistence/conversation-crud.js";
38
- import { isActivationSession } from "../plugins/defaults/memory/activation-session-store.js";
39
37
  import {
40
38
  assistantEventHub,
41
39
  broadcastMessage,
@@ -50,12 +48,6 @@ import type {
50
48
  InteractiveUiRequest,
51
49
  InteractiveUiResult,
52
50
  } from "../runtime/interactive-ui-types.js";
53
- import {
54
- activationMomentEmitsAtShow,
55
- type ActivationMomentParam,
56
- activationStepNameForMomentParam,
57
- isActivationMomentParam,
58
- } from "../telemetry/activation-funnel.js";
59
51
  import { resolveAppId } from "../tools/apps/resolve-app-id.js";
60
52
  import { formatDesktopAppRequired } from "../tools/capability-offer.js";
61
53
  import { POINT_AT_PROXY_TOOL } from "../tools/computer-use/skill-proxy-bridge.js";
@@ -1837,53 +1829,6 @@ function getRequestedSurfaceCompletionSummary(
1837
1829
  * when the surface renders) and the commit-time path (the other moments,
1838
1830
  * recorded when the user commits the surface).
1839
1831
  */
1840
- function recordActivationMoment(
1841
- ctx: Conversation,
1842
- moment: ActivationMomentParam,
1843
- ): void {
1844
- try {
1845
- if (!isActivationSession(ctx.conversationId)) {
1846
- return;
1847
- }
1848
- recordActivationEvent({
1849
- stepName: activationStepNameForMomentParam(moment),
1850
- sessionId: ctx.conversationId,
1851
- });
1852
- } catch (err) {
1853
- log.warn(
1854
- { err, conversationId: ctx.conversationId, moment },
1855
- "Failed to record activation moment",
1856
- );
1857
- }
1858
- }
1859
-
1860
- /**
1861
- * Best-effort activation-funnel emission on a user surface commit.
1862
- *
1863
- * When the committed surface carries a commit-timing `activationMoment` tag,
1864
- * record the corresponding funnel milestone. Show-timing moments
1865
- * (`first_wow_executed`) are recorded at render time in `surfaceProxyResolver`
1866
- * and are NOT stored on `surfaceState`, so they never reach this path. The tag
1867
- * is cleared after the first record so re-entrant or repeated commits on the
1868
- * same surface do not double-emit (and the deterministic `daemon_event_id`
1869
- * collapses any cross-surface duplicate downstream anyway).
1870
- *
1871
- * Must be called only from terminal-commit paths (user clicked an action /
1872
- * submitted / selected-and-committed), NOT from intermediate non-terminal
1873
- * events (`selection_changed` / `content_changed` / `state_update`).
1874
- */
1875
- function maybeEmitActivationMoment(ctx: Conversation, surfaceId: string): void {
1876
- const stored = ctx.surfaceState.get(surfaceId);
1877
- const moment = stored?.activationMoment;
1878
- if (!moment) {
1879
- return;
1880
- }
1881
- // Clear the tag first so this can fire at most once per surface even if the
1882
- // commit path is re-entered.
1883
- stored.activationMoment = undefined;
1884
- recordActivationMoment(ctx, moment);
1885
- }
1886
-
1887
1832
  /** The action result for an enqueue the message queue refused. */
1888
1833
  const QUEUE_FULL_RESULT: SurfaceActionResult = {
1889
1834
  accepted: false,
@@ -2081,7 +2026,6 @@ export async function handleSurfaceAction(
2081
2026
  // — record an activation milestone if tagged. Must run before
2082
2027
  // `cleanupStandaloneSurface` clears the surface state.
2083
2028
  if (!isCancellation) {
2084
- maybeEmitActivationMoment(ctx, surfaceId);
2085
2029
  }
2086
2030
 
2087
2031
  // Cleanup and resolve — order matters: cleanup clears the timer
@@ -2174,7 +2118,6 @@ export async function handleSurfaceAction(
2174
2118
  // Launching a child conversation is a terminal user commit — record an
2175
2119
  // activation milestone if tagged. The helper clears the tag after firing,
2176
2120
  // so the other commit-path call sites below can't double-emit.
2177
- maybeEmitActivationMoment(ctx, surfaceId);
2178
2121
  return { accepted: true, conversationId };
2179
2122
  }
2180
2123
 
@@ -2347,7 +2290,6 @@ export async function handleSurfaceAction(
2347
2290
  // surface was tagged (best-effort, no-op otherwise). Deferred until after
2348
2291
  // the rejection check so a queue-full click doesn't over-report a moment
2349
2292
  // (and the one-shot tag stays intact for the user's retry).
2350
- maybeEmitActivationMoment(ctx, surfaceId);
2351
2293
 
2352
2294
  maybeCompleteSurfaceAfterAction(ctx, surfaceId, actionId, mergedData, {
2353
2295
  liveSurfaceType: stored?.surfaceType,
@@ -2603,7 +2545,6 @@ export async function handleSurfaceAction(
2603
2545
  // surface was tagged (best-effort, no-op otherwise). Deferred until after the
2604
2546
  // rejection check so a queue-full click doesn't over-report a moment (and the
2605
2547
  // one-shot tag stays intact for the user's retry).
2606
- maybeEmitActivationMoment(ctx, surfaceId);
2607
2548
 
2608
2549
  maybeCompleteSurfaceAfterAction(ctx, surfaceId, actionId, mergedData, {
2609
2550
  liveSurfaceType: pending.surfaceType,
@@ -3706,37 +3647,14 @@ export async function surfaceProxyResolver(
3706
3647
  ...(a.data ? { data: a.data } : {}),
3707
3648
  }));
3708
3649
 
3709
- // Optional activation-rail telemetry tag. Daemon-only metadata: validated
3710
- // and ignored if invalid; never forwarded to the client.
3711
- const activationMoment =
3712
- typeof input.activation_moment === "string" &&
3713
- isActivationMomentParam(input.activation_moment)
3714
- ? input.activation_moment
3715
- : undefined;
3716
-
3717
- // Show-timing moments (`first_wow_executed`) record the instant the surface
3718
- // renders — a display-only result/`work_result` card may never be committed,
3719
- // so a commit-time emit would never fire. We record now and do NOT store the
3720
- // tag, so the commit path won't double-emit. Commit-timing moments are
3721
- // stored and recorded when the user commits the surface (see
3722
- // `handleSurfaceAction` → `maybeEmitActivationMoment`).
3723
- const storeTagForCommit =
3724
- activationMoment !== undefined &&
3725
- !activationMomentEmitsAtShow(activationMoment);
3726
-
3727
3650
  // Track surface state for ui_update merging (includes actions so we can
3728
3651
  // look up per-action data payloads when the client sends an action back).
3729
3652
  ctx.surfaceState.set(surfaceId, {
3730
3653
  title,
3731
3654
  actions: mappedActions,
3732
- ...(storeTagForCommit ? { activationMoment } : {}),
3733
3655
  ...showPair,
3734
3656
  });
3735
3657
 
3736
- if (activationMoment !== undefined && !storeTagForCommit) {
3737
- recordActivationMoment(ctx, activationMoment);
3738
- }
3739
-
3740
3658
  log.info(
3741
3659
  {
3742
3660
  surfaceId,
@@ -3763,9 +3681,7 @@ export async function surfaceProxyResolver(
3763
3681
  ...showPair,
3764
3682
  });
3765
3683
 
3766
- // Track surface for persistence with the message. The commit-timing
3767
- // activation tag rides along (daemon-only) so it survives history restore;
3768
- // show-timing moments aren't stored here (already recorded at render).
3684
+ // Track surface for persistence with the message.
3769
3685
  ctx.currentTurnSurfaces.push({
3770
3686
  surfaceId,
3771
3687
  title,
@@ -3773,7 +3689,6 @@ export async function surfaceProxyResolver(
3773
3689
  display,
3774
3690
  ...(persistent ? { persistent: true } : {}),
3775
3691
  ...(toolUseId ? { toolCallId: toolUseId } : {}),
3776
- ...(storeTagForCommit ? { activationMoment } : {}),
3777
3692
  ...showPair,
3778
3693
  });
3779
3694
 
@@ -3,7 +3,7 @@ import { join } from "node:path";
3
3
  import { afterEach, describe, expect, test } from "bun:test";
4
4
 
5
5
  import { getAllDefaultPlugins } from "../plugins/defaults/index.js";
6
- import { getWorkspacePluginsDir } from "../util/platform.js";
6
+ import { getWorkspacePluginsDir } from "../util/layout.js";
7
7
  import { getEffectiveEnabledPluginSet } from "./conversation-tool-setup.js";
8
8
 
9
9
  const DEFAULT_NAMES = getAllDefaultPlugins().map((p) => p.manifest.name);
@@ -30,7 +30,6 @@ import {
30
30
  } from "../persistence/conversation-tool-surface.js";
31
31
  import { getBindingByConversation } from "../persistence/external-conversation-store.js";
32
32
  import { getAllDefaultPluginNames } from "../plugins/defaults/main.js";
33
- import { isActivationSession } from "../plugins/defaults/memory/activation-session-store.js";
34
33
  import { isPluginDisabled } from "../plugins/disabled-state.js";
35
34
  import type { Message, ToolDefinition } from "../providers/types.js";
36
35
  import { registerConversationSender } from "../tools/browser/browser-screencast.js";
@@ -64,7 +63,6 @@ import {
64
63
  type ToolContext,
65
64
  type ToolExecutionResult,
66
65
  } from "../tools/types.js";
67
- import { injectActivationMomentParam } from "../tools/ui-surface/channel-variants.js";
68
66
  import { loadWorkspaceTools } from "../tools/workspace-tools/loader.js";
69
67
  import {
70
68
  resolveUsageAttribution,
@@ -1198,14 +1196,6 @@ export function createResolveToolsCallback(
1198
1196
  : definition,
1199
1197
  );
1200
1198
  }
1201
- // Activation-rail conversations carry the optional `activation_moment`
1202
- // telemetry param on ui_show. The marker is written before the first
1203
- // tool resolution (see `applyBootstrapTemplate` in system-prompt.ts), so
1204
- // the projected schema is stable for the conversation's lifetime.
1205
- if (isActivationSession(ctx.conversationId)) {
1206
- allBaseDefs = injectActivationMomentParam(allBaseDefs);
1207
- }
1208
-
1209
1199
  const effectivePreactivated = [
1210
1200
  ...DEFAULT_PREACTIVATED_SKILL_IDS,
1211
1201
  ...(ctx.preactivatedSkillIds ?? []),
@@ -1220,19 +1210,6 @@ export function createResolveToolsCallback(
1220
1210
  // Scope plugin-contributed skills to the conversation's per-chat plugin
1221
1211
  // selection (null = no restriction).
1222
1212
  effectiveEnabledPluginSet,
1223
- // skill_loaded telemetry context — resolved per turn so attribution
1224
- // reflects the call site/profile the current turn actually runs on.
1225
- telemetry:
1226
- ctx.conversationId !== undefined
1227
- ? {
1228
- conversationId: ctx.conversationId,
1229
- attribution: resolveConversationAttribution({
1230
- conversationId: ctx.conversationId,
1231
- currentCallSite: ctx.currentCallSite,
1232
- currentTurnOverrideProfile: ctx.currentTurnOverrideProfile,
1233
- }),
1234
- }
1235
- : undefined,
1236
1213
  });
1237
1214
  const turnAllowed = new Set(allBaseDefs.map((d) => d.name));
1238
1215
  for (const name of projection.allowedToolNames) {
@@ -1167,12 +1167,10 @@ export class Conversation {
1167
1167
 
1168
1168
  setOnboardingContext(ctx: OnboardingContext): void {
1169
1169
  this.onboardingContext = ctx;
1170
- // Reseed BOOTSTRAP.md and mark the activation session at the earliest point
1171
- // the conversation knows its bootstrap selection — before the first turn's
1172
- // tool resolution, which `buildSystemPrompt` is too late for. See
1173
- // `applyBootstrapTemplate`.
1170
+ // Reseed BOOTSTRAP.md from the requested onboarding template at the
1171
+ // earliest point the conversation knows its bootstrap selection.
1174
1172
  if (ctx.bootstrapTemplate) {
1175
- applyBootstrapTemplate(ctx.bootstrapTemplate, this.conversationId);
1173
+ applyBootstrapTemplate(ctx.bootstrapTemplate);
1176
1174
  }
1177
1175
  }
1178
1176
 
@@ -14,7 +14,6 @@ import { getIsContainerized } from "../config/env-registry.js";
14
14
  import { loadOrCreateSigningKey } from "../runtime/auth/token-service.js";
15
15
  import { ensureBun } from "../util/bun-runtime.js";
16
16
  import { DaemonError } from "../util/errors.js";
17
- import { getLogger } from "../util/logger.js";
18
17
  import {
19
18
  ensureDataDir,
20
19
  getDaemonStartupLockPath,
@@ -22,7 +21,8 @@ import {
22
21
  getDataDir,
23
22
  getPidPath,
24
23
  getWorkspaceConfigPath,
25
- } from "../util/platform.js";
24
+ } from "../util/layout.js";
25
+ import { getLogger } from "../util/logger.js";
26
26
  import { readRawProcessCommand } from "../util/process-table.js";
27
27
  import { isDaemonCommand } from "../util/worker-ownership.js";
28
28
 
@@ -43,7 +43,7 @@ function isPositiveInteger(v: unknown): v is number {
43
43
 
44
44
  /**
45
45
  * Read daemon timeout values directly from the config JSON file, bypassing
46
- * loadConfig() and its ensureDataDir() side effects.
46
+ * getConfig() and its ensureDataDir() side effects.
47
47
  * Falls back to hardcoded defaults on any error (missing file, malformed JSON,
48
48
  * unexpected shape) so daemon stop/start never fails due to config issues.
49
49
  */
@@ -8,8 +8,8 @@
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import { join } from "node:path";
10
10
 
11
+ import { getWorkspaceDir } from "../util/layout.js";
11
12
  import { getLogger } from "../util/logger.js";
12
- import { getWorkspaceDir } from "../util/platform.js";
13
13
  import { safeStringSlice } from "../util/unicode.js";
14
14
 
15
15
  const log = getLogger("dictation-profile-store");
@@ -262,7 +262,7 @@ function loadFromDisk(): DictationProfilesConfig {
262
262
 
263
263
  // --- Public API ---
264
264
 
265
- export function loadConfig(): DictationProfilesConfig {
265
+ export function getConfig(): DictationProfilesConfig {
266
266
  if (cachedConfig == null) {
267
267
  cachedConfig = loadFromDisk();
268
268
  }
@@ -283,7 +283,7 @@ export function resolveProfile(
283
283
  appName: string,
284
284
  requestProfileId?: string,
285
285
  ): ProfileResolution {
286
- const config = loadConfig();
286
+ const config = getConfig();
287
287
 
288
288
  const enabledProfiles = config.profiles.filter(isProfileEnabled);
289
289
  const profileById = (id: string) => enabledProfiles.find((p) => p.id === id);