@mycadet/assistant 0.12.9 → 0.12.10

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 (651) hide show
  1. package/Dockerfile +0 -8
  2. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +1 -1
  3. package/openapi.yaml +62 -910
  4. package/package.json +3 -7
  5. package/scripts/build-test-fixtures.ts +1 -1
  6. package/scripts/generate-openapi.ts +22 -6
  7. package/scripts/postinstall.ts +4 -10
  8. package/scripts/run-tests.ts +0 -21
  9. package/src/__tests__/adaptive-thinking-repair.test.ts +19 -57
  10. package/src/__tests__/agent-loop.test.ts +0 -76
  11. package/src/__tests__/anthropic-provider.test.ts +6 -6
  12. package/src/__tests__/assert-not-live-db.ts +1 -1
  13. package/src/__tests__/assistant-id-boundary-guard.test.ts +3 -3
  14. package/src/__tests__/attachments-store-heic-normalize.test.ts +1 -1
  15. package/src/__tests__/attachments-store.test.ts +1 -1
  16. package/src/__tests__/audit-log-rotation.test.ts +1 -1
  17. package/src/__tests__/btw-routes.test.ts +1 -1
  18. package/src/__tests__/byok-default-profile-ensure.test.ts +21 -27
  19. package/src/__tests__/call-conversation-messages.test.ts +0 -5
  20. package/src/__tests__/call-recovery.test.ts +2 -7
  21. package/src/__tests__/call-routes-http.test.ts +0 -12
  22. package/src/__tests__/call-store.test.ts +2 -7
  23. package/src/__tests__/catalog-files.test.ts +7 -5
  24. package/src/__tests__/checker.test.ts +1 -1
  25. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +4 -4
  26. package/src/__tests__/cloud-client-verify-credential.test.ts +0 -4
  27. package/src/__tests__/cloud-credential-catalog-cli.test.ts +14 -14
  28. package/src/__tests__/cloud-profile-guard.test.ts +48 -401
  29. package/src/__tests__/compaction-events.test.ts +2 -2
  30. package/src/__tests__/config-loader-backfill.test.ts +74 -163
  31. package/src/__tests__/config-loader-cloud-defaults.test.ts +11 -11
  32. package/src/__tests__/config-loader-corrupt.test.ts +10 -10
  33. package/src/__tests__/config-loader-quarantine-notice.test.ts +7 -7
  34. package/src/__tests__/config-loader-validation-reset-notice.test.ts +11 -11
  35. package/src/__tests__/config-schema.test.ts +26 -27
  36. package/src/__tests__/config-set-route.test.ts +2 -6
  37. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +28 -300
  38. package/src/__tests__/conversation-agent-loop-overflow.test.ts +39 -246
  39. package/src/__tests__/conversation-agent-loop.test.ts +2 -58
  40. package/src/__tests__/conversation-clear-safety.test.ts +0 -30
  41. package/src/__tests__/conversation-inference-profile-route.test.ts +1 -1
  42. package/src/__tests__/conversation-queue.test.ts +1 -1
  43. package/src/__tests__/conversation-runtime-assembly.test.ts +1 -1
  44. package/src/__tests__/conversation-skill-tools.test.ts +4 -444
  45. package/src/__tests__/conversation-slash-commands.test.ts +1 -1
  46. package/src/__tests__/conversation-store.test.ts +1 -84
  47. package/src/__tests__/conversation-surface-state.test.ts +0 -16
  48. package/src/__tests__/credential-health-service.test.ts +14 -1
  49. package/src/__tests__/credential-record-retire.test.ts +1 -1
  50. package/src/__tests__/credential-record-write-through.test.ts +1 -1
  51. package/src/__tests__/credential-security-invariants.test.ts +0 -145
  52. package/src/__tests__/custom-profile-ensure.test.ts +1 -1
  53. package/src/__tests__/default-profile-catalog-fallback.test.ts +5 -15
  54. package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -2
  55. package/src/__tests__/dictation-profile-store.test.ts +6 -6
  56. package/src/__tests__/disk-usage.test.ts +28 -164
  57. package/src/__tests__/docker-signing-key-bootstrap.test.ts +1 -1
  58. package/src/__tests__/embedding-cloud-proxy-selection.test.ts +1 -1
  59. package/src/__tests__/emit-event-signal.test.ts +1 -1
  60. package/src/__tests__/gateway-client-cloud-outbound.test.ts +3 -3
  61. package/src/__tests__/gateway-only-enforcement.test.ts +1 -1
  62. package/src/__tests__/guardian-dispatch.test.ts +0 -13
  63. package/src/__tests__/helpers/seed-app.ts +1 -1
  64. package/src/__tests__/host-cu-routes-targeted.test.ts +1 -1
  65. package/src/__tests__/host-shell-tool.test.ts +1 -1
  66. package/src/__tests__/identity-routes.test.ts +1 -1
  67. package/src/__tests__/inference-profile-session-handler.test.ts +1 -1
  68. package/src/__tests__/inference-profile-session-ipc.test.ts +1 -1
  69. package/src/__tests__/injector-chain.test.ts +1 -1
  70. package/src/__tests__/injector-config-quarantine-notice.test.ts +1 -1
  71. package/src/__tests__/injector-config-validation-reset-notice.test.ts +1 -1
  72. package/src/__tests__/injector-pkb-v2-silenced.test.ts +1 -1
  73. package/src/__tests__/{platform.test.ts → layout.test.ts} +1 -1
  74. package/src/__tests__/list-all-apps.test.ts +1 -1
  75. package/src/__tests__/live-workspace-guard.test.ts +2 -2
  76. package/src/__tests__/llm-resolver-override-or-default.test.ts +5 -6
  77. package/src/__tests__/llm-resolver.test.ts +7 -7
  78. package/src/__tests__/llm-schema-fallback-profile.test.ts +9 -10
  79. package/src/__tests__/llm-usage-store.test.ts +0 -495
  80. package/src/__tests__/log-export-routes.test.ts +1 -1
  81. package/src/__tests__/mcp-config-secret-boundary.test.ts +12 -53
  82. package/src/__tests__/mcp-list-plugin-servers.test.ts +1 -1
  83. package/src/__tests__/memory-config-file-parity.test.ts +1 -1
  84. package/src/__tests__/memory-v2-static-injector.test.ts +1 -1
  85. package/src/__tests__/messages-read-boundary-guard.test.ts +0 -2
  86. package/src/__tests__/notification-guardian-path.test.ts +0 -7
  87. package/src/__tests__/onboarding-persona-write.test.ts +1 -1
  88. package/src/__tests__/openai-provider.test.ts +8 -8
  89. package/src/__tests__/path-policy.test.ts +1 -1
  90. package/src/__tests__/persona-resolver.test.ts +1 -1
  91. package/src/__tests__/plugin-app-serve-routes.test.ts +1 -1
  92. package/src/__tests__/plugin-effective-enabled-set.test.ts +1 -1
  93. package/src/__tests__/plugin-import-boundary-guard.test.ts +4 -6
  94. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +0 -3
  95. package/src/__tests__/provider-cloud-proxy-integration.test.ts +1 -5
  96. package/src/__tests__/provider-connections-backfill.test.ts +10 -10
  97. package/src/__tests__/prune-old-conversations-job.test.ts +6 -31
  98. package/src/__tests__/resolve-app.test.ts +1 -1
  99. package/src/__tests__/run-due-schedules.test.ts +1 -1
  100. package/src/__tests__/scaffold-managed-skill-tool.test.ts +0 -53
  101. package/src/__tests__/schedule-routes.test.ts +1 -1
  102. package/src/__tests__/schedule-store.test.ts +1 -1
  103. package/src/__tests__/secret-routes-cloud-proxy.test.ts +1 -1
  104. package/src/__tests__/skill-load-plugin-scope.test.ts +1 -1
  105. package/src/__tests__/surface-completion-compaction-boundary.test.ts +1 -1
  106. package/src/__tests__/tool-approval-handler.test.ts +1 -1
  107. package/src/__tests__/tool-audit.test.ts +5 -235
  108. package/src/__tests__/tool-executor-lifecycle-events.test.ts +54 -114
  109. package/src/__tests__/tools-get-route.test.ts +1 -1
  110. package/src/__tests__/turn-outcome-read.test.ts +1 -1
  111. package/src/__tests__/twilio-routes.test.ts +0 -1
  112. package/src/__tests__/usage-attribution.test.ts +0 -31
  113. package/src/__tests__/verification-control-plane-policy.test.ts +3 -10
  114. package/src/__tests__/visible-app-context.test.ts +1 -1
  115. package/src/__tests__/voice-ingress-preflight.test.ts +1 -1
  116. package/src/__tests__/workspace-git-service.test.ts +1 -1
  117. package/src/__tests__/workspace-greetings.test.ts +1 -1
  118. package/src/acp/__tests__/helpers/acp-config-stub.ts +1 -1
  119. package/src/activation/progress-store.ts +1 -1
  120. package/src/activation/turn-hooks.ts +1 -1
  121. package/src/agent/loop.ts +0 -51
  122. package/src/apps/app-store.ts +1 -1
  123. package/src/avatar/__tests__/avatar-store.test.ts +2 -172
  124. package/src/avatar/accent-backfill.ts +1 -1
  125. package/src/avatar/avatar-manifest.ts +1 -1
  126. package/src/avatar/avatar-store.ts +10 -69
  127. package/src/avatar/ensure-raster.ts +1 -1
  128. package/src/avatar/identity-avatar.ts +1 -1
  129. package/src/avatar/sync-avatar.ts +1 -1
  130. package/src/avatar/traits-png-sync.ts +1 -1
  131. package/src/bundler/compiler-tools.ts +1 -1
  132. package/src/bundler/package-resolver.ts +1 -1
  133. package/src/calls/__tests__/call-controller.test.ts +25 -27
  134. package/src/calls/active-call-lease.ts +1 -1
  135. package/src/calls/call-controller.ts +3 -3
  136. package/src/calls/call-domain.ts +4 -8
  137. package/src/calls/call-store.ts +2 -76
  138. package/src/calls/resolve-call-tts-provider.ts +3 -3
  139. package/src/calls/twilio-config.ts +3 -3
  140. package/src/calls/twilio-rest.ts +2 -2
  141. package/src/calls/voice-ingress-preflight.ts +2 -2
  142. package/src/cli/bundled-modules.ts +0 -2
  143. package/src/cli/commands/__tests__/apps.test.ts +1 -1
  144. package/src/cli/commands/__tests__/plugins.test.ts +9 -66
  145. package/src/cli/commands/__tests__/ps.test.ts +67 -0
  146. package/src/cli/commands/auth.help.ts +2 -2
  147. package/src/cli/commands/avatar.ts +1 -1
  148. package/src/cli/commands/changelog.ts +1 -1
  149. package/src/cli/commands/cloud/__tests__/subscription.test.ts +2 -2
  150. package/src/cli/commands/cloud/index.help.ts +1 -1
  151. package/src/cli/commands/cloud/index.ts +2 -2
  152. package/src/cli/commands/db/refresh.ts +1 -1
  153. package/src/cli/commands/db/repair-step-conversation-backfill.ts +1 -1
  154. package/src/cli/commands/db/repair.ts +1 -1
  155. package/src/cli/commands/db/status.ts +1 -1
  156. package/src/cli/commands/inference-profiles.ts +1 -12
  157. package/src/cli/commands/memory/__tests__/memory-v3.test.ts +1 -116
  158. package/src/cli/commands/memory/index.help.ts +1 -43
  159. package/src/cli/commands/memory/memory-v3.ts +0 -64
  160. package/src/cli/commands/plugins.ts +54 -205
  161. package/src/cli/commands/ps.ts +5 -2
  162. package/src/cli/commands/status.ts +1 -1
  163. package/src/cli/index.help.ts +0 -2
  164. package/src/cli/lib/__tests__/inspect-plugin.test.ts +36 -66
  165. package/src/cli/lib/__tests__/install-from-cloud.test.ts +1 -1
  166. package/src/cli/lib/__tests__/install-from-github.test.ts +41 -117
  167. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +2 -185
  168. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +36 -66
  169. package/src/cli/lib/__tests__/plugin-catalog-visibility.test.ts +4 -6
  170. package/src/cli/lib/__tests__/plugin-details.test.ts +113 -96
  171. package/src/cli/lib/__tests__/search-plugins.test.ts +9 -16
  172. package/src/cli/lib/__tests__/uninstall-plugin.test.ts +1 -1
  173. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +38 -15
  174. package/src/cli/lib/diff-plugin.ts +1 -1
  175. package/src/cli/lib/inspect-plugin.ts +13 -97
  176. package/src/cli/lib/install-from-cloud.ts +1 -1
  177. package/src/cli/lib/install-from-github.ts +75 -154
  178. package/src/cli/lib/install-plugin-dependencies.ts +1 -1
  179. package/src/cli/lib/list-installed-plugins.ts +1 -1
  180. package/src/cli/lib/open-browser.ts +1 -1
  181. package/src/cli/lib/plugin-catalog-cache.ts +8 -51
  182. package/src/cli/lib/plugin-catalog-resolve.ts +3 -22
  183. package/src/cli/lib/plugin-details.ts +5 -27
  184. package/src/cli/lib/plugin-marketplace.ts +18 -266
  185. package/src/cli/lib/search-plugins.ts +23 -43
  186. package/src/cli/lib/toggle-plugin.ts +1 -1
  187. package/src/cli/lib/uninstall-plugin.ts +1 -1
  188. package/src/cli/lib/upgrade-plugin.ts +3 -49
  189. package/src/cli/program.ts +1 -3
  190. package/src/cli.ts +1 -1
  191. package/src/cloud/client.ts +0 -6
  192. package/src/cloud/consent-cache.test.ts +22 -201
  193. package/src/cloud/consent-cache.ts +16 -111
  194. package/src/cloud/sync-identity.ts +1 -1
  195. package/src/config/__tests__/chat-settings.test.ts +1 -1
  196. package/src/config/__tests__/cloud-identity.test.ts +15 -2
  197. package/src/config/__tests__/default-plugin-skill-discovery.test.ts +1 -1
  198. package/src/config/__tests__/default-profile-catalog.test.ts +12 -51
  199. package/src/config/__tests__/deployment-context-defaults.test.ts +13 -13
  200. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +4 -4
  201. package/src/config/__tests__/loader-last-known-good.test.ts +9 -9
  202. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +7 -7
  203. package/src/config/__tests__/plugin-resident-skill-discovery.test.ts +1 -1
  204. package/src/config/__tests__/profile-materialization.test.ts +2 -4
  205. package/src/config/__tests__/sync-gated-profiles.test.ts +1 -106
  206. package/src/config/acp-agent-write.ts +1 -1
  207. package/src/config/bundled-skills/settings/tools/open-system-settings.test.ts +1 -1
  208. package/src/config/bundled-skills/settings/tools/open-system-settings.ts +1 -1
  209. package/src/config/call-site-defaults.ts +0 -6
  210. package/src/config/cloud-identity.ts +12 -5
  211. package/src/config/composer-preferences.ts +1 -1
  212. package/src/config/default-profile-catalog.ts +8 -75
  213. package/src/config/default-profile-names.ts +2 -25
  214. package/src/config/env-registry.ts +1 -14
  215. package/src/config/env.ts +8 -6
  216. package/src/config/llm-resolver.ts +1 -2
  217. package/src/config/loader.ts +13 -17
  218. package/src/config/profile-materialization.ts +1 -1
  219. package/src/config/schema.ts +1 -7
  220. package/src/config/schemas/call-site-catalog.ts +0 -7
  221. package/src/config/schemas/llm.ts +22 -27
  222. package/src/config/seed-inference-profiles.ts +16 -17
  223. package/src/config/skills.ts +2 -2
  224. package/src/config/sync-gated-profiles.ts +6 -24
  225. package/src/credential-health/credential-health-service.ts +10 -3
  226. package/src/daemon/approval-generators.ts +3 -3
  227. package/src/daemon/config-watcher.ts +2 -2
  228. package/src/daemon/conversation-agent-loop-handlers.ts +0 -18
  229. package/src/daemon/conversation-agent-loop.ts +6 -97
  230. package/src/daemon/conversation-process.ts +1 -1
  231. package/src/daemon/conversation-skill-tools.ts +4 -72
  232. package/src/daemon/conversation-store.ts +1 -1
  233. package/src/daemon/conversation-surface-state.ts +0 -33
  234. package/src/daemon/conversation-surfaces.ts +1 -86
  235. package/src/daemon/conversation-tool-setup.test.ts +1 -1
  236. package/src/daemon/conversation-tool-setup.ts +0 -23
  237. package/src/daemon/conversation.ts +3 -5
  238. package/src/daemon/daemon-control.ts +3 -3
  239. package/src/daemon/dictation-profile-store.ts +3 -3
  240. package/src/daemon/event-loop-watchdog.test.ts +2 -198
  241. package/src/daemon/event-loop-watchdog.ts +0 -185
  242. package/src/daemon/external-plugins-bootstrap.ts +1 -1
  243. package/src/daemon/first-greeting.ts +1 -1
  244. package/src/daemon/handlers/skills.ts +1 -1
  245. package/src/daemon/host-app-control-proxy.ts +1 -1
  246. package/src/daemon/host-cu-proxy.ts +2 -2
  247. package/src/daemon/identity-helpers.ts +1 -1
  248. package/src/daemon/lifecycle.ts +11 -15
  249. package/src/daemon/main.ts +1 -1
  250. package/src/daemon/now-scratchpad.ts +1 -1
  251. package/src/daemon/process-message.ts +4 -4
  252. package/src/daemon/profiler-run-store.ts +2 -2
  253. package/src/daemon/providers-setup.ts +2 -2
  254. package/src/daemon/shutdown-handlers.ts +0 -10
  255. package/src/daemon/sqlite-corruption-watchdog.test.ts +2 -142
  256. package/src/daemon/sqlite-corruption-watchdog.ts +17 -81
  257. package/src/daemon/tool-side-effects.ts +1 -1
  258. package/src/desktop/desktop-session-manager.ts +1 -1
  259. package/src/desktop/desktop-wallpaper-renderer.ts +1 -1
  260. package/src/heartbeat/heartbeat-service.ts +1 -1
  261. package/src/home/feed-writer.ts +1 -1
  262. package/src/home/home-greeting-cache.ts +1 -1
  263. package/src/home/relationship-state-writer.ts +2 -2
  264. package/src/hooks/__tests__/hook-live-reload.test.ts +1 -1
  265. package/src/hooks/hook-loader.ts +2 -2
  266. package/src/inbound/__tests__/oauth-callback-url.test.ts +2 -2
  267. package/src/inbound/oauth-callback-url.ts +3 -3
  268. package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
  269. package/src/ipc/socket-path.ts +1 -1
  270. package/src/live-voice/__tests__/live-voice-archive.test.ts +1 -1
  271. package/src/live-voice/__tests__/live-voice-vad.test.ts +1 -1
  272. package/src/live-voice/live-voice-session.ts +3 -66
  273. package/src/mcp/__tests__/effective-config.test.ts +1 -1
  274. package/src/mcp/__tests__/mcp-oauth-client-registration.test.ts +2 -2
  275. package/src/mcp/__tests__/mcp-oauth-provider.test.ts +2 -3
  276. package/src/mcp/__tests__/reload-signal-emission.test.ts +1 -1
  277. package/src/mcp/__tests__/reload-signal.test.ts +1 -1
  278. package/src/mcp/__tests__/workspace-mcp-config.test.ts +19 -21
  279. package/src/mcp/reload-signal.ts +1 -1
  280. package/src/mcp/workspace-mcp-config.ts +1 -23
  281. package/src/messaging/draft-store.ts +1 -1
  282. package/src/monitoring/__tests__/active-conversations.test.ts +1 -1
  283. package/src/monitoring/__tests__/page-cache.test.ts +1 -1
  284. package/src/monitoring/__tests__/stall-capture.test.ts +1 -1
  285. package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +1 -1
  286. package/src/monitoring/active-conversations.ts +1 -1
  287. package/src/monitoring/control.ts +1 -1
  288. package/src/monitoring/daemon-boot-time.ts +1 -1
  289. package/src/monitoring/daemon-heartbeat.ts +1 -1
  290. package/src/monitoring/page-cache.ts +1 -1
  291. package/src/monitoring/plugin-auto-update.ts +1 -7
  292. package/src/monitoring/plugin-source-watch.ts +1 -1
  293. package/src/monitoring/recovery/db.ts +1 -1
  294. package/src/monitoring/recovery/inflight-content.ts +1 -1
  295. package/src/monitoring/resource-sampler.ts +3 -14
  296. package/src/monitoring/stall-capture.ts +1 -1
  297. package/src/monitoring/worker.ts +9 -76
  298. package/src/monitoring/workspace-git-heartbeat.ts +1 -1
  299. package/src/oauth/connect-orchestrator.ts +4 -4
  300. package/src/permissions/checker.ts +1 -1
  301. package/src/permissions/workspace-policy.ts +1 -1
  302. package/src/persistence/__tests__/main-db-readonly-probe.ts +27 -52
  303. package/src/persistence/__tests__/message-content-file.test.ts +1 -1
  304. package/src/persistence/__tests__/slow-sync-log.test.ts +0 -2
  305. package/src/persistence/attachments-store.ts +1 -1
  306. package/src/persistence/conversation-crud.ts +1 -38
  307. package/src/persistence/conversation-directories.ts +1 -1
  308. package/src/persistence/conversation-types.ts +0 -8
  309. package/src/persistence/db-async-query.ts +1 -1
  310. package/src/persistence/db-connection.ts +11 -1
  311. package/src/persistence/db-init.ts +1 -1
  312. package/src/persistence/db-maintenance.ts +1 -1
  313. package/src/persistence/embeddings/__tests__/embedding-local-lifecycle.test.ts +1 -1
  314. package/src/persistence/embeddings/embedding-local.ts +4 -4
  315. package/src/persistence/embeddings/embedding-runtime-manager.ts +1 -1
  316. package/src/persistence/embeddings/qdrant-client.ts +1 -1
  317. package/src/persistence/embeddings/qdrant-manager.ts +1 -1
  318. package/src/persistence/job-handlers/__tests__/message-lexical-backfill.test.ts +1 -1
  319. package/src/persistence/job-handlers/__tests__/message-lexical-enqueue.test.ts +1 -1
  320. package/src/persistence/job-handlers/cleanup.ts +8 -17
  321. package/src/persistence/llm-usage-store.ts +2 -229
  322. package/src/persistence/message-content-file.ts +1 -1
  323. package/src/persistence/migrations/209-strip-thinking-from-consolidated.ts +1 -1
  324. package/src/persistence/migrations/222-strip-placeholder-sentinels-from-messages.ts +1 -1
  325. package/src/persistence/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +1 -1
  326. package/src/persistence/migrations/306-rewrite-frontier-profile-pins.test.ts +1 -1
  327. package/src/persistence/migrations/329-move-onboarding-events-to-telemetry-db.test.ts +13 -0
  328. package/src/persistence/migrations/330-move-auth-fallback-events-to-telemetry-db.test.ts +13 -0
  329. package/src/persistence/migrations/331-move-lifecycle-events-to-telemetry-db.test.ts +13 -0
  330. package/src/persistence/migrations/332-move-skill-loaded-events-to-telemetry-db.test.ts +13 -0
  331. package/src/persistence/migrations/333-create-telemetry-events-table.test.ts +7 -4
  332. package/src/persistence/migrations/334-backfill-telemetry-events-outbox.test.ts +13 -0
  333. package/src/persistence/migrations/387-drop-telemetry-tables.ts +51 -0
  334. package/src/persistence/migrations/__tests__/327-create-flush-checkpoints.test.ts +9 -1
  335. package/src/persistence/migrations/__tests__/387-drop-telemetry-tables.test.ts +79 -0
  336. package/src/persistence/migrations/helpers/relocation.ts +1 -1
  337. package/src/persistence/migrations/run-migrations.ts +1 -1
  338. package/src/persistence/migrations/validate-migration-state.ts +1 -1
  339. package/src/persistence/raw-query.ts +1 -29
  340. package/src/persistence/slow-sync-log.ts +0 -23
  341. package/src/persistence/steps.ts +2 -0
  342. package/src/{telemetry → persistence}/tool-audit.ts +6 -121
  343. package/src/plugin-api/index.ts +1 -1
  344. package/src/plugin-api/plugin-name-env.ts +1 -1
  345. package/src/plugins/__tests__/installed-plugin-dirs.test.ts +1 -1
  346. package/src/plugins/collect-source-versions.ts +1 -1
  347. package/src/plugins/defaults/channel/package.json +1 -1
  348. package/src/plugins/defaults/cloud-hosted/package.json +1 -1
  349. package/src/plugins/defaults/compaction/package.json +1 -1
  350. package/src/plugins/defaults/documents/package.json +1 -1
  351. package/src/plugins/defaults/empty-response/package.json +1 -1
  352. package/src/plugins/defaults/exploration-drift/package.json +1 -1
  353. package/src/plugins/defaults/image-fallback/package.json +1 -1
  354. package/src/plugins/defaults/image-recovery/package.json +1 -1
  355. package/src/plugins/defaults/max-tokens-continue/package.json +1 -1
  356. package/src/plugins/defaults/memory/__tests__/db-async-query.test.ts +1 -1
  357. package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +1 -1
  358. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +0 -82
  359. package/src/plugins/defaults/memory/__tests__/memory-retrospective-skill-card.test.ts +0 -41
  360. package/src/plugins/defaults/memory/__tests__/memory-tier-boundary-guard.test.ts +0 -2
  361. package/src/plugins/defaults/memory/memory-retrospective-job.ts +3 -52
  362. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +0 -18
  363. package/src/plugins/defaults/memory/package.json +1 -1
  364. package/src/plugins/defaults/memory/paths.ts +4 -4
  365. package/src/plugins/defaults/memory/src/__tests__/memory-worker-routes.test.ts +1 -1
  366. package/src/plugins/defaults/memory/src/memory-v2-routes.ts +5 -5
  367. package/src/plugins/defaults/memory/src/memory-v3-routes.ts +0 -207
  368. package/src/plugins/defaults/memory/src/memory-worker-routes.ts +1 -1
  369. package/src/plugins/defaults/memory/startup.ts +1 -22
  370. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +2 -253
  371. package/src/plugins/defaults/memory/v3/orchestrate.ts +5 -129
  372. package/src/plugins/defaults/memory/worker-control.ts +1 -1
  373. package/src/plugins/defaults/memory/worker.ts +2 -2
  374. package/src/plugins/defaults/session/package.json +1 -1
  375. package/src/plugins/defaults/surface-completion-nudge/package.json +1 -1
  376. package/src/plugins/defaults/task-progress/package.json +1 -1
  377. package/src/plugins/defaults/task-progress-nudge/package.json +1 -1
  378. package/src/plugins/defaults/title-generate/package.json +1 -1
  379. package/src/plugins/defaults/tool-error/package.json +1 -1
  380. package/src/plugins/defaults/tool-result-truncate/package.json +1 -1
  381. package/src/plugins/defaults/turn-context/package.json +1 -1
  382. package/src/plugins/defaults/workspace/injectors.ts +1 -1
  383. package/src/plugins/defaults/workspace/package.json +1 -1
  384. package/src/plugins/disabled-state.ts +1 -1
  385. package/src/plugins/ensure-plugin-api-shim.ts +1 -1
  386. package/src/plugins/ensure-shared-dep-links.ts +1 -1
  387. package/src/plugins/installed-plugin-dirs.ts +1 -1
  388. package/src/plugins/mcp-servers.ts +7 -9
  389. package/src/plugins/mtime-cache.ts +2 -2
  390. package/src/plugins/source-versions.ts +1 -1
  391. package/src/prompts/bootstrap-cleanup.ts +1 -1
  392. package/src/prompts/persona-resolver.ts +1 -1
  393. package/src/prompts/sections.ts +2 -2
  394. package/src/prompts/system-prompt.ts +10 -42
  395. package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +0 -37
  396. package/src/providers/__tests__/cadet-connection-routing.test.ts +2 -2
  397. package/src/providers/cadet/client.ts +1 -1
  398. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +1 -1
  399. package/src/providers/inference/adapter-factory.ts +1 -1
  400. package/src/providers/inference/backfill.ts +3 -10
  401. package/src/providers/inference/profile-probe.ts +1 -1
  402. package/src/providers/retry.ts +0 -2
  403. package/src/providers/types.ts +0 -7
  404. package/src/providers/usage-tracking.ts +1 -1
  405. package/src/routes/__tests__/route-host.test.ts +1 -1
  406. package/src/routes/control.ts +1 -1
  407. package/src/routes/route-host-client.ts +1 -1
  408. package/src/routes/worker.ts +2 -2
  409. package/src/runtime/agent-wake.ts +1 -1
  410. package/src/runtime/assistant-stream-state.ts +1 -1
  411. package/src/runtime/auth/token-service.ts +1 -1
  412. package/src/runtime/background-job-runner.ts +1 -1
  413. package/src/runtime/middleware/twilio-validation.ts +2 -2
  414. package/src/runtime/routes/__tests__/app-pin-routes.test.ts +1 -1
  415. package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +1 -1
  416. package/src/runtime/routes/__tests__/avatar-state-routes.test.ts +3 -33
  417. package/src/runtime/routes/__tests__/cloud-credits-routes.test.ts +5 -4
  418. package/src/runtime/routes/__tests__/cloud-invoice-routes.test.ts +4 -3
  419. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +59 -287
  420. package/src/runtime/routes/__tests__/default-plugin-routes.test.ts +1 -1
  421. package/src/runtime/routes/__tests__/deprecated-route-context.test.ts +15 -62
  422. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +105 -12
  423. package/src/runtime/routes/__tests__/ingress-status-routes.test.ts +1 -1
  424. package/src/runtime/routes/__tests__/monitoring-routes.test.ts +1 -1
  425. package/src/runtime/routes/__tests__/plugins-routes.test.ts +47 -211
  426. package/src/runtime/routes/__tests__/route-host-worker-routes.test.ts +1 -1
  427. package/src/runtime/routes/__tests__/schedule-routes-disarm-reason.test.ts +1 -1
  428. package/src/runtime/routes/__tests__/schedule-worker-routes.test.ts +1 -1
  429. package/src/runtime/routes/__tests__/user-route-dispatcher-host.test.ts +1 -1
  430. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +1 -1
  431. package/src/runtime/routes/__tests__/user-routes-cli.test.ts +1 -1
  432. package/src/runtime/routes/__tests__/user-routes-notices.test.ts +1 -1
  433. package/src/runtime/routes/__tests__/user-routes-request.test.ts +1 -1
  434. package/src/runtime/routes/app-management-routes.ts +1 -1
  435. package/src/runtime/routes/attachment-routes.ts +1 -1
  436. package/src/runtime/routes/audit-routes.ts +1 -1
  437. package/src/runtime/routes/avatar-routes.ts +3 -10
  438. package/src/runtime/routes/cloud-routes.ts +3 -3
  439. package/src/runtime/routes/content-source-routes.ts +1 -1
  440. package/src/runtime/routes/conversation-query-routes.ts +60 -621
  441. package/src/runtime/routes/conversation-routes.ts +1 -38
  442. package/src/runtime/routes/debug-routes.ts +1 -1
  443. package/src/runtime/routes/deprecated-route-context.ts +5 -61
  444. package/src/runtime/routes/heartbeat-routes.ts +1 -1
  445. package/src/runtime/routes/identity-routes.ts +1 -1
  446. package/src/runtime/routes/index.ts +0 -6
  447. package/src/runtime/routes/inference-profile-session-handler.ts +3 -3
  448. package/src/runtime/routes/inference-profiles-routes.ts +48 -21
  449. package/src/runtime/routes/inference-provider-connection-routes.ts +0 -1
  450. package/src/runtime/routes/llm-call-sites-routes.ts +3 -3
  451. package/src/runtime/routes/log-export/__tests__/installed-inventory.test.ts +1 -1
  452. package/src/runtime/routes/log-export/__tests__/workspace-allowlist-error-contract.test.ts +1 -1
  453. package/src/runtime/routes/log-export/__tests__/workspace-allowlist.test.ts +1 -1
  454. package/src/runtime/routes/log-export/workspace-allowlist.ts +1 -1
  455. package/src/runtime/routes/log-export-routes.ts +17 -15
  456. package/src/runtime/routes/migration-rollback-routes.ts +1 -1
  457. package/src/runtime/routes/migration-routes.ts +2 -3
  458. package/src/runtime/routes/monitoring-routes.ts +2 -2
  459. package/src/runtime/routes/oauth-providers.ts +5 -5
  460. package/src/runtime/routes/plugins-routes.ts +38 -163
  461. package/src/runtime/routes/profiler-routes.ts +1 -1
  462. package/src/runtime/routes/route-host-worker-routes.ts +1 -1
  463. package/src/runtime/routes/sanity-routes.ts +1 -1
  464. package/src/runtime/routes/schedule-routes.ts +1 -1
  465. package/src/runtime/routes/schedule-worker-routes.ts +1 -1
  466. package/src/runtime/routes/settings-routes.ts +1 -1
  467. package/src/runtime/routes/sounds-config-routes.ts +1 -1
  468. package/src/runtime/routes/surface-conversation-resolver.ts +1 -7
  469. package/src/runtime/routes/user-route-dispatcher.ts +1 -3
  470. package/src/runtime/routes/user-route-import.ts +1 -1
  471. package/src/runtime/routes/user-route-resolution.ts +1 -1
  472. package/src/runtime/routes/user-routes-cli.ts +1 -1
  473. package/src/runtime/routes/workspace-commit-routes.ts +1 -1
  474. package/src/runtime/routes/workspace-greetings.ts +1 -1
  475. package/src/runtime/routes/workspace-routes.ts +1 -1
  476. package/src/runtime/routes/workspace-utils.ts +1 -1
  477. package/src/runtime/sync/resource-sync-events.ts +1 -1
  478. package/src/schedule/__tests__/plugin-schedule-declarations.test.ts +1 -1
  479. package/src/schedule/__tests__/plugin-schedule-reconciler.test.ts +1 -1
  480. package/src/schedule/plugin-schedule-availability.ts +1 -1
  481. package/src/schedule/plugin-schedule-declarations.ts +1 -1
  482. package/src/schedule/run-script.ts +1 -1
  483. package/src/schedule/scheduler.ts +1 -11
  484. package/src/schedule/worker-control.ts +1 -1
  485. package/src/schedule/worker.ts +3 -3
  486. package/src/security/oauth2.ts +2 -2
  487. package/src/security/secret-allowlist.ts +1 -1
  488. package/src/signals/cancel.ts +1 -1
  489. package/src/signals/conversation-undo.ts +1 -1
  490. package/src/signals/emit-event.ts +1 -1
  491. package/src/signals/event-stream.ts +1 -1
  492. package/src/signals/user-message.ts +1 -1
  493. package/src/skills/catalog-install.ts +2 -1
  494. package/src/skills/clawhub.ts +1 -1
  495. package/src/skills/cloud-store.ts +1 -1
  496. package/src/skills/path-classifier.ts +1 -1
  497. package/src/skills/skill-history.ts +1 -1
  498. package/src/skills/skillssh-registry.ts +1 -1
  499. package/src/skills/uninstall.ts +1 -1
  500. package/src/skills/workspace-skill-md-signature.ts +1 -1
  501. package/src/subagent/manager.ts +1 -1
  502. package/src/theme/workspace-theme.ts +1 -1
  503. package/src/tools/browser/auth-cache.ts +1 -1
  504. package/src/tools/browser/browser-manager.ts +1 -1
  505. package/src/tools/browser/runtime-check.ts +1 -1
  506. package/src/tools/executor.ts +4 -4
  507. package/src/tools/filesystem/write.ts +1 -1
  508. package/src/tools/permission-checker.ts +2 -51
  509. package/src/tools/run-standalone.ts +1 -1
  510. package/src/tools/skills/format-input-schema.ts +1 -1
  511. package/src/tools/skills/load.ts +1 -1
  512. package/src/tools/skills/scaffold-cloud.ts +0 -32
  513. package/src/tools/terminal/safe-env.ts +1 -2
  514. package/src/tools/terminal/sanitized-bash.ts +1 -1
  515. package/src/tools/terminal/shell.ts +1 -1
  516. package/src/tools/tool-approval-handler.ts +4 -1
  517. package/src/tools/workflows/manage-workflows.ts +2 -2
  518. package/src/tools/workflows/run-workflow.test.ts +1 -1
  519. package/src/tools/workspace-tools/loader.ts +1 -1
  520. package/src/tts/synthesis-stream.ts +2 -2
  521. package/src/usage/attribution.ts +1 -11
  522. package/src/util/browser.ts +1 -1
  523. package/src/util/bun-runtime.ts +2 -1
  524. package/src/util/device-id.ts +1 -1
  525. package/src/util/disk-usage.ts +4 -139
  526. package/src/util/layout.ts +3 -3
  527. package/src/util/logger.ts +1 -1
  528. package/src/util/logs-db-path.ts +1 -1
  529. package/src/util/memory-db-path.ts +1 -1
  530. package/src/util/{platform.ts → os.ts} +5 -30
  531. package/src/util/process-tree.ts +19 -0
  532. package/src/util/sqlite3-runtime.ts +1 -1
  533. package/src/util/telemetry-db-path.ts +1 -1
  534. package/src/watcher/__tests__/engine.test.ts +0 -23
  535. package/src/watcher/engine.ts +0 -7
  536. package/src/windows-compiled-cli.ts +0 -4
  537. package/src/windows-compiled-worker-entry.ts +0 -6
  538. package/src/workflows/leaf-runner.test.ts +1 -1
  539. package/src/workflows/leaf-runner.ts +1 -1
  540. package/src/workflows/library.ts +1 -1
  541. package/src/workspace/adaptive-thinking-repair.ts +5 -24
  542. package/src/workspace/byok-default-profile-ensure.ts +24 -26
  543. package/src/workspace/custom-profile-ensure.ts +2 -2
  544. package/src/workspace/git-service.ts +1 -1
  545. package/src/workspace/hatched-date.ts +1 -1
  546. package/src/workspace/migrations/038-unify-llm-callsite-configs.ts +2 -2
  547. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +1 -1
  548. package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +1 -1
  549. package/src/workspace/migrations/077-seed-memory-router-callsite.ts +1 -1
  550. package/src/workspace/migrations/registry.ts +0 -4
  551. package/src/workspace/turn-commit.ts +1 -1
  552. package/docs/activation-funnel-telemetry.md +0 -324
  553. package/scripts/bundled-plugin-packages.ts +0 -154
  554. package/scripts/generate-bundled-plugin-packages.ts +0 -29
  555. package/src/__tests__/activation-early-marking.test.ts +0 -114
  556. package/src/__tests__/auth-fallback-events-store.test.ts +0 -99
  557. package/src/__tests__/config-get-vision-flag.test.ts +0 -139
  558. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +0 -400
  559. package/src/__tests__/internal-telemetry-routes.test.ts +0 -213
  560. package/src/__tests__/telemetry-routes.test.ts +0 -182
  561. package/src/__tests__/turn-events-store.test.ts +0 -376
  562. package/src/__tests__/ui-channel-variants.test.ts +0 -53
  563. package/src/avatar/__tests__/avatar-changed-telemetry.test.ts +0 -217
  564. package/src/avatar/avatar-changed-telemetry.ts +0 -128
  565. package/src/calls/__tests__/call-funnel-telemetry.test.ts +0 -204
  566. package/src/cli/commands/telemetry.help.ts +0 -27
  567. package/src/cli/commands/telemetry.ts +0 -83
  568. package/src/cli/lib/__tests__/local-plugin-upgrade.test.ts +0 -251
  569. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +0 -113
  570. package/src/cli/lib/__tests__/plugin-marketplace.test.ts +0 -384
  571. package/src/cli/lib/__tests__/plugin-pin-history.test.ts +0 -164
  572. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +0 -228
  573. package/src/cli/lib/bundled-marketplace.json +0 -1575
  574. package/src/cli/lib/bundled-plugin-packages.json +0 -827
  575. package/src/cli/lib/bundled-plugin-packages.ts +0 -87
  576. package/src/cli/lib/plugin-catalog-local.ts +0 -94
  577. package/src/cli/lib/plugin-pin-history.ts +0 -276
  578. package/src/cloud/feature-gate.ts +0 -8
  579. package/src/config/__tests__/cloud-rehydration.test.ts +0 -180
  580. package/src/config/cloud-rehydration.ts +0 -35
  581. package/src/daemon/__tests__/auto-profile-router.test.ts +0 -380
  582. package/src/daemon/auto-profile-router.ts +0 -428
  583. package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +0 -391
  584. package/src/monitoring/__tests__/db-integrity-sample.test.ts +0 -113
  585. package/src/monitoring/__tests__/oom-kill-reporter.test.ts +0 -374
  586. package/src/monitoring/db-integrity-check.ts +0 -163
  587. package/src/monitoring/db-integrity-sample.ts +0 -176
  588. package/src/monitoring/oom-kill-reporter.ts +0 -469
  589. package/src/onboarding/__tests__/onboarding-events-store.test.ts +0 -158
  590. package/src/onboarding/onboarding-events-store.ts +0 -296
  591. package/src/persistence/__tests__/raw-query-telemetry.test.ts +0 -76
  592. package/src/persistence/lifecycle-events-store.test.ts +0 -134
  593. package/src/persistence/lifecycle-events-store.ts +0 -110
  594. package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +0 -76
  595. package/src/plugins/defaults/memory/activation-session-store.ts +0 -50
  596. package/src/plugins/defaults/memory/src/__tests__/memory-v3-gate-stats.test.ts +0 -281
  597. package/src/runtime/routes/auto-profile-routes.ts +0 -83
  598. package/src/runtime/routes/internal-telemetry-routes.ts +0 -142
  599. package/src/runtime/routes/telemetry-routes.ts +0 -274
  600. package/src/security/auth-fallback-events-store.ts +0 -57
  601. package/src/telemetry/__tests__/activation-funnel.test.ts +0 -95
  602. package/src/telemetry/__tests__/config-setting-events-store.test.ts +0 -63
  603. package/src/telemetry/__tests__/config-setting-snapshot.test.ts +0 -143
  604. package/src/telemetry/__tests__/flush-checkpoints.test.ts +0 -56
  605. package/src/telemetry/__tests__/live-voice-funnel.test.ts +0 -174
  606. package/src/telemetry/__tests__/outbox-test-harness.ts +0 -85
  607. package/src/telemetry/__tests__/phone-call-funnel.test.ts +0 -72
  608. package/src/telemetry/__tests__/telemetry-event-fixtures.ts +0 -282
  609. package/src/telemetry/__tests__/watchdog-events-store.test.ts +0 -71
  610. package/src/telemetry/activation-funnel.ts +0 -172
  611. package/src/telemetry/config-setting-events-store.ts +0 -40
  612. package/src/telemetry/config-setting-snapshot.ts +0 -170
  613. package/src/telemetry/flush-checkpoints.ts +0 -70
  614. package/src/telemetry/live-voice-funnel.ts +0 -185
  615. package/src/telemetry/memory-corpus-size.test.ts +0 -120
  616. package/src/telemetry/memory-corpus-size.ts +0 -184
  617. package/src/telemetry/memory-tier-reporter.test.ts +0 -195
  618. package/src/telemetry/memory-tier-reporter.ts +0 -130
  619. package/src/telemetry/phone-call-funnel.ts +0 -144
  620. package/src/telemetry/skill-loaded-events-store.test.ts +0 -93
  621. package/src/telemetry/skill-loaded-events-store.ts +0 -39
  622. package/src/telemetry/telemetry-event-sources.test.ts +0 -223
  623. package/src/telemetry/telemetry-event-sources.ts +0 -597
  624. package/src/telemetry/telemetry-events-outbox.test.ts +0 -375
  625. package/src/telemetry/telemetry-events-outbox.ts +0 -237
  626. package/src/telemetry/telemetry-main-db.ts +0 -48
  627. package/src/telemetry/telemetry-wire-source.json +0 -4
  628. package/src/telemetry/telemetry-wire-validation.test.ts +0 -157
  629. package/src/telemetry/telemetry-wire-validation.ts +0 -162
  630. package/src/telemetry/telemetry-wire.generated.ts +0 -483
  631. package/src/telemetry/tool-executed-events-store.test.ts +0 -210
  632. package/src/telemetry/tool-executed-events-store.ts +0 -102
  633. package/src/telemetry/trace-collection-policy.test.ts +0 -28
  634. package/src/telemetry/trace-collection-policy.ts +0 -30
  635. package/src/telemetry/turn-events-store.ts +0 -216
  636. package/src/telemetry/turn-trace-store.test.ts +0 -884
  637. package/src/telemetry/turn-trace-store.ts +0 -399
  638. package/src/telemetry/types.test.ts +0 -38
  639. package/src/telemetry/types.ts +0 -780
  640. package/src/telemetry/usage-telemetry-reporter.test.ts +0 -3445
  641. package/src/telemetry/usage-telemetry-reporter.ts +0 -566
  642. package/src/telemetry/watchdog-direct-emit.test.ts +0 -112
  643. package/src/telemetry/watchdog-direct-emit.ts +0 -104
  644. package/src/telemetry/watchdog-events-store.ts +0 -31
  645. package/src/tools/ui-surface/channel-variants.ts +0 -52
  646. package/src/watcher/__tests__/telemetry.test.ts +0 -178
  647. package/src/watcher/telemetry.ts +0 -93
  648. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +0 -165
  649. package/src/workspace/migrations/104-recheck-adaptive-thinking-model-implied-anthropic.ts +0 -151
  650. /package/src/{telemetry → persistence}/tool-usage-store.ts +0 -0
  651. /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);