@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
@@ -17,7 +17,7 @@ import {
17
17
  initFeatureFlagOverrides,
18
18
  refreshOverridesFromGateway,
19
19
  } from "../config/assistant-feature-flags.js";
20
- import { rehydrateCloudCredentials } from "../config/cloud-rehydration.js";
20
+ import { ensureCloudIdentityIds } from "../config/cloud-identity.js";
21
21
  import { getConfig } from "../config/loader.js";
22
22
  import { startConversationEvictor } from "../daemon/conversation-evictor.js";
23
23
  import { stopMcpServerManager } from "../mcp/manager.js";
@@ -26,8 +26,8 @@ import { resetDb } from "../persistence/db-connection.js";
26
26
  import { registerWorkerPluginSurface } from "../plugins/worker-plugin-surface.js";
27
27
  import { disableStreamSeqStamping } from "../runtime/assistant-stream-state.js";
28
28
  import { initializeTools } from "../tools/registry.js";
29
+ import { getScheduleWorkerPidPath, getSignalsDir } from "../util/layout.js";
29
30
  import { getLogger } from "../util/logger.js";
30
- import { getScheduleWorkerPidPath, getSignalsDir } from "../util/platform.js";
31
31
  import {
32
32
  cleanupWorkerPidFile,
33
33
  startWorkerPidFileGuard,
@@ -145,7 +145,7 @@ async function main(): Promise<void> {
145
145
  // the persisted platform environment instead of the CADET_ENVIRONMENT
146
146
  // default — otherwise valid credentials are sent to the wrong platform and
147
147
  // rejected for both inference and background-wake requests.
148
- await rehydrateCloudCredentials();
148
+ await ensureCloudIdentityIds();
149
149
 
150
150
  // This process is the sole runner of schedule execution and hosts real agent
151
151
  // conversations (wake, execute, and workflow modes), so it needs the default
@@ -782,10 +782,10 @@ export async function startOAuth2Flow(
782
782
  try {
783
783
  // Dynamic imports required here to avoid circular dependencies with
784
784
  // config/loader → security → oauth2 module chains.
785
- const { loadConfig } = await import("../config/loader.js");
785
+ const { getConfig } = await import("../config/loader.js");
786
786
  const { getPublicBaseUrl } =
787
787
  await import("../inbound/public-ingress-urls.js");
788
- getPublicBaseUrl(loadConfig());
788
+ getPublicBaseUrl(getConfig());
789
789
  hasPublicUrl = true;
790
790
  } catch {
791
791
  // No public URL configured
@@ -17,8 +17,8 @@ import { readFileSync } from "node:fs";
17
17
  import { join } from "node:path";
18
18
 
19
19
  import { pathExists } from "../util/fs.js";
20
+ import { getDataDir } from "../util/layout.js";
20
21
  import { getLogger } from "../util/logger.js";
21
- import { getDataDir } from "../util/platform.js";
22
22
 
23
23
  const log = getLogger("secret-allowlist");
24
24
 
@@ -15,8 +15,8 @@ import { touchConversation } from "../daemon/conversation-evictor.js";
15
15
  import { findConversation } from "../daemon/conversation-registry.js";
16
16
  import { getSubagentManager } from "../subagent/index.js";
17
17
  import { createAbortReason } from "../util/abort-reasons.js";
18
+ import { getSignalsDir } from "../util/layout.js";
18
19
  import { getLogger } from "../util/logger.js";
19
- import { getSignalsDir } from "../util/platform.js";
20
20
 
21
21
  const log = getLogger("signal:cancel");
22
22
 
@@ -14,8 +14,8 @@ import { join } from "node:path";
14
14
 
15
15
  import { getIsContainerized } from "../config/env-registry.js";
16
16
  import { undoLastMessage } from "../daemon/handlers/conversations.js";
17
+ import { getSignalsDir } from "../util/layout.js";
17
18
  import { getLogger } from "../util/logger.js";
18
- import { getSignalsDir } from "../util/platform.js";
19
19
 
20
20
  const log = getLogger("signal:conversation-undo");
21
21
 
@@ -17,8 +17,8 @@ import { join } from "node:path";
17
17
 
18
18
  import type { AssistantEvent } from "../api/index.js";
19
19
  import { broadcastMessage } from "../runtime/assistant-event-hub.js";
20
+ import { getSignalsDir } from "../util/layout.js";
20
21
  import { getLogger } from "../util/logger.js";
21
- import { getSignalsDir } from "../util/platform.js";
22
22
 
23
23
  const log = getLogger("signal:emit-event");
24
24
 
@@ -26,7 +26,7 @@ import { join } from "node:path";
26
26
 
27
27
  import type { AssistantEventEnvelope } from "../api/index.js";
28
28
  import { getIsContainerized } from "../config/env-registry.js";
29
- import { getSignalsDir } from "../util/platform.js";
29
+ import { getSignalsDir } from "../util/layout.js";
30
30
 
31
31
  // ── Write side (daemon) ──────────────────────────────────────────────
32
32
 
@@ -38,8 +38,8 @@ import {
38
38
  } from "../persistence/attachments-store.js";
39
39
  import { getOrCreateConversation as getOrCreateConversationKey } from "../persistence/conversation-key-store.js";
40
40
  import { checkIngressForSecrets } from "../security/secret-ingress.js";
41
+ import { getSignalsDir } from "../util/layout.js";
41
42
  import { getLogger } from "../util/logger.js";
42
- import { getSignalsDir } from "../util/platform.js";
43
43
 
44
44
  const log = getLogger("signal:user-message");
45
45
 
@@ -23,8 +23,9 @@ import {
23
23
  import { getCloudBaseUrl } from "../config/env.js";
24
24
  import { loadSkillCatalog } from "../config/skills.js";
25
25
  import { isBunVirtualPath } from "../util/bundled-asset.js";
26
+ import { getWorkspaceSkillsDir } from "../util/layout.js";
26
27
  import { getLogger } from "../util/logger.js";
27
- import { addToPathEnv, getWorkspaceSkillsDir } from "../util/platform.js";
28
+ import { addToPathEnv } from "../util/os.js";
28
29
  import {
29
30
  isSkillCompatibleWithCloud,
30
31
  normalizeSkillPlatforms,
@@ -1,8 +1,8 @@
1
1
  import { existsSync, readdirSync, readFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
 
4
+ import { getWorkspaceSkillsDir } from "../util/layout.js";
4
5
  import { getLogger } from "../util/logger.js";
5
- import { getWorkspaceSkillsDir } from "../util/platform.js";
6
6
  import {
7
7
  computeSkillHash,
8
8
  readInstallMeta,
@@ -17,9 +17,9 @@ import { stringify as stringifyYaml } from "yaml";
17
17
  import { parseFrontmatter } from "../config/skills.js";
18
18
  import { deleteSkillCapabilityNode } from "../plugins/defaults/memory/graph/capability-seed.js";
19
19
  import { isDeniedBasename } from "../tools/shared/filesystem/path-policy.js";
20
+ import { getWorkspaceDir, getWorkspaceSkillsDir } from "../util/layout.js";
20
21
  import { getLogger } from "../util/logger.js";
21
22
  import { isPlainObject } from "../util/object.js";
22
- import { getWorkspaceDir, getWorkspaceSkillsDir } from "../util/platform.js";
23
23
  import { parseFrontmatterFields } from "./frontmatter.js";
24
24
  import { writeInstallMeta } from "./install-meta.js";
25
25
 
@@ -2,7 +2,7 @@ import { existsSync, realpathSync } from "node:fs";
2
2
  import { basename, dirname, normalize, resolve, sep } from "node:path";
3
3
 
4
4
  import { getBundledSkillsDir } from "../config/skills.js";
5
- import { getWorkspaceSkillsDir } from "../util/platform.js";
5
+ import { getWorkspaceSkillsDir } from "../util/layout.js";
6
6
 
7
7
  /**
8
8
  * Returns the cloud skills root directory. Managed skills are user-installed
@@ -40,8 +40,8 @@
40
40
  // requires to be side-effect-free, so observing history must never be the
41
41
  // thing that brings a repository into existence.
42
42
 
43
+ import { getWorkspaceDir } from "../util/layout.js";
43
44
  import { getLogger } from "../util/logger.js";
44
- import { getWorkspaceDir } from "../util/platform.js";
45
45
  import { getWorkspaceGitService } from "../workspace/git-service.js";
46
46
  import { validateCloudSkillId } from "./cloud-store.js";
47
47
 
@@ -1,7 +1,7 @@
1
1
  import { existsSync, rmSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
- import { getWorkspaceSkillsDir } from "../util/platform.js";
4
+ import { getWorkspaceSkillsDir } from "../util/layout.js";
5
5
  import {
6
6
  commitStagedSkillInstall,
7
7
  createSkillInstallStagingDir,
@@ -2,7 +2,7 @@ import { existsSync, rmSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
4
  import { deleteSkillCapabilityNode } from "../plugins/defaults/memory/graph/capability-seed.js";
5
- import { getWorkspaceSkillsDir } from "../util/platform.js";
5
+ import { getWorkspaceSkillsDir } from "../util/layout.js";
6
6
 
7
7
  /**
8
8
  * Remove a locally-installed skill: delete its workspace directory and prune
@@ -1,7 +1,7 @@
1
1
  import { existsSync, readdirSync, statSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
- import { getWorkspaceSkillsDir } from "../util/platform.js";
4
+ import { getWorkspaceSkillsDir } from "../util/layout.js";
5
5
 
6
6
  /**
7
7
  * Cheap change detector for workspace skill capability cards: the sorted set
@@ -36,8 +36,8 @@ import { RateLimitProvider } from "../providers/ratelimit.js";
36
36
  import { listProviders } from "../providers/registry.js";
37
37
  import type { Message, TextContent } from "../providers/types.js";
38
38
  import { createAbortReason } from "../util/abort-reasons.js";
39
+ import { getSandboxWorkingDir } from "../util/layout.js";
39
40
  import { getLogger } from "../util/logger.js";
40
- import { getSandboxWorkingDir } from "../util/platform.js";
41
41
  import { sleep } from "../util/retry.js";
42
42
  import { injectMessageIntoParent } from "./notify.js";
43
43
  import {
@@ -30,7 +30,7 @@ import { join } from "node:path";
30
30
 
31
31
  import { z } from "zod";
32
32
 
33
- import { getWorkspaceDir } from "../util/platform.js";
33
+ import { getWorkspaceDir } from "../util/layout.js";
34
34
 
35
35
  /** Workspace-relative path clients and the config watcher both key on. */
36
36
  export const WORKSPACE_THEME_RELATIVE_PATH = "ui/theme.json";
@@ -1,8 +1,8 @@
1
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
+ import { getDataDir } from "../../util/layout.js";
4
5
  import { getLogger } from "../../util/logger.js";
5
- import { getDataDir } from "../../util/platform.js";
6
6
 
7
7
  const log = getLogger("auth-cache");
8
8
 
@@ -1,8 +1,8 @@
1
1
  import { existsSync, mkdirSync } from "node:fs";
2
2
  import { isAbsolute, join, relative, resolve } from "node:path";
3
3
 
4
+ import { getDataDir } from "../../util/layout.js";
4
5
  import { getLogger } from "../../util/logger.js";
5
- import { getDataDir } from "../../util/platform.js";
6
6
  import { authSessionCache } from "./auth-cache.js";
7
7
  import type { CdpClientKind } from "./cdp-client/types.js";
8
8
  import type { ExtractedCredential } from "./network-recording-types.js";
@@ -2,8 +2,8 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
4
  import { ensureBun } from "../../util/bun-runtime.js";
5
+ import { getExternalDir } from "../../util/layout.js";
5
6
  import { getLogger } from "../../util/logger.js";
6
- import { getExternalDir } from "../../util/platform.js";
7
7
 
8
8
  const log = getLogger("runtime-check");
9
9
 
@@ -12,15 +12,15 @@ import {
12
12
  type RiskClassificationWithMeta,
13
13
  } from "../permissions/checker.js";
14
14
  import { PermissionPrompter } from "../permissions/prompter.js";
15
+ import {
16
+ recordToolError,
17
+ recordToolExecuted,
18
+ } from "../persistence/tool-audit.js";
15
19
  import {
16
20
  runInPluginContext,
17
21
  runOutsidePluginContext,
18
22
  } from "../plugins/plugin-execution-context.js";
19
23
  import { TokenExpiredError } from "../security/token-manager.js";
20
- import {
21
- recordToolError,
22
- recordToolExecuted,
23
- } from "../telemetry/tool-audit.js";
24
24
  import { PermissionDeniedError, ToolError } from "../util/errors.js";
25
25
  import { pathExists, safeStatSync } from "../util/fs.js";
26
26
  import { truncateForLog } from "../util/logger.js";
@@ -5,8 +5,8 @@ import { z } from "zod";
5
5
  import { getAppsDir } from "../../apps/app-store.js";
6
6
  import { RiskLevel } from "../../permissions/types.js";
7
7
  import { enqueuePkbIndexJob } from "../../plugins/defaults/memory/v1/jobs/embed-pkb-file.js";
8
+ import { getWorkspaceDir } from "../../util/layout.js";
8
9
  import { getLogger } from "../../util/logger.js";
9
- import { getWorkspaceDir } from "../../util/platform.js";
10
10
  import { throwIfCancelled } from "../shared/abort.js";
11
11
  import { FileSystemOps } from "../shared/filesystem/file-ops-service.js";
12
12
  import { formatWriteSummary } from "../shared/filesystem/format-diff.js";
@@ -23,14 +23,8 @@ import type {
23
23
  RiskThreshold,
24
24
  } from "../permissions/types.js";
25
25
  import { RiskLevel } from "../permissions/types.js";
26
+ import { recordToolDenied } from "../persistence/tool-audit.js";
26
27
  import { resolveCapabilities } from "../runtime/capabilities.js";
27
- import {
28
- type PermissionPromptOutcome,
29
- type PermissionPromptTelemetry,
30
- recordToolDenied,
31
- recordToolPermissionDecided,
32
- recordToolPermissionPrompted,
33
- } from "../telemetry/tool-audit.js";
34
28
  import { getLogger } from "../util/logger.js";
35
29
  import { resolveExecutionTarget } from "./execution-target.js";
36
30
  import { getHostShell } from "./host-shell.js";
@@ -389,26 +383,6 @@ export class PermissionChecker {
389
383
  persistentDecisionsAllowed: !context.requireFreshApproval,
390
384
  };
391
385
 
392
- // Grouping dimensions shared by this prompt and its decision, so the
393
- // two series can be diffed by risk and by access preset without
394
- // parsing anything out of the event name.
395
- const promptTelemetry: PermissionPromptTelemetry = {
396
- toolName: name,
397
- riskLevel,
398
- riskThreshold,
399
- surface: context.executionChannel,
400
- conversationId: context.conversationId,
401
- };
402
- // An already-aborted signal makes the prompter return without
403
- // registering or sending a confirmation request, so nothing reaches
404
- // the user and neither half of the pair is recorded. `prompt()` reads
405
- // the same signal synchronously on entry, with no await in between, so
406
- // this check and its check always agree.
407
- const promptIsSurfaced = context.signal?.aborted !== true;
408
- if (promptIsSurfaced) {
409
- recordToolPermissionPrompted(promptTelemetry);
410
- }
411
-
412
386
  let response: Awaited<ReturnType<PermissionPrompter["prompt"]>>;
413
387
  try {
414
388
  response = await this.prompter.prompt(
@@ -430,35 +404,12 @@ export class PermissionChecker {
430
404
  } catch (err) {
431
405
  // The prompter rejected rather than resolved: it was disposed while
432
406
  // this prompt was outstanding (client disconnect, conversation
433
- // teardown). Nobody answered, so the prompt is abandoned.
434
- if (promptIsSurfaced) {
435
- recordToolPermissionDecided(promptTelemetry, "abandoned");
436
- }
407
+ // teardown).
437
408
  throw err;
438
409
  }
439
410
 
440
411
  const decision = response.decision;
441
412
 
442
- // A prompt that ends without a human answer is abandoned, not denied.
443
- // The daemon resolves a timeout, a superseding user message, and a
444
- // turn abort to `deny` so the agent loop stops, but none of the three
445
- // is a decision the user made.
446
- let outcome: PermissionPromptOutcome;
447
- if (
448
- response.wasTimeout === true ||
449
- response.wasSystemCancel === true ||
450
- response.wasAbort === true
451
- ) {
452
- outcome = "abandoned";
453
- } else if (decision === "deny") {
454
- outcome = "deny";
455
- } else {
456
- outcome = "allow";
457
- }
458
- if (promptIsSurfaced) {
459
- recordToolPermissionDecided(promptTelemetry, outcome);
460
- }
461
-
462
413
  if (decision === "deny") {
463
414
  const contextualDenial =
464
415
  typeof response.decisionContext === "string"
@@ -18,7 +18,7 @@
18
18
  import { v4 as uuid } from "uuid";
19
19
 
20
20
  import { PermissionPrompter } from "../permissions/prompter.js";
21
- import { getWorkspaceDir } from "../util/platform.js";
21
+ import { getWorkspaceDir } from "../util/layout.js";
22
22
  import { ToolExecutor } from "./executor.js";
23
23
  import { resolveTool } from "./registry.js";
24
24
  import type { ToolContext } from "./types.js";
@@ -1,4 +1,4 @@
1
- import { getWorkspaceDirDisplay } from "../../util/platform.js";
1
+ import { getWorkspaceDirDisplay } from "../../util/layout.js";
2
2
 
3
3
  /** Preserve nested fields and alternatives when disclosing a skill's input. */
4
4
  export function formatSkillInputSchema(schema: object): string {
@@ -27,8 +27,8 @@ import {
27
27
  import { renderInlineCommands } from "../../skills/inline-command-render.js";
28
28
  import { parseToolManifestFile } from "../../skills/tool-manifest.js";
29
29
  import { computeSkillVersionHash } from "../../skills/version-hash.js";
30
+ import { getWorkspaceDirDisplay } from "../../util/layout.js";
30
31
  import { getLogger } from "../../util/logger.js";
31
- import { getWorkspaceDirDisplay } from "../../util/platform.js";
32
32
  import { supportsClientOsForSkillTool } from "../client-os.js";
33
33
  import type {
34
34
  ToolContext,
@@ -16,16 +16,12 @@ import {
16
16
  getCloudSkillDir,
17
17
  } from "../../skills/cloud-store.js";
18
18
  import { readInstallMeta } from "../../skills/install-meta.js";
19
- import { recordWatchdogEvent } from "../../telemetry/watchdog-events-store.js";
20
19
  import { getLogger } from "../../util/logger.js";
21
20
  import { throwIfCancelled } from "../shared/abort.js";
22
21
  import type { ToolContext, ToolExecutionResult } from "../types.js";
23
22
 
24
23
  const log = getLogger("scaffold-cloud-skill");
25
24
 
26
- /** Watchdog check_name for the per-creation skill-authoring counter. */
27
- const SKILL_AUTHORED_CHECK_NAME = "skill_authored";
28
-
29
25
  /** Strip embedded newlines/carriage returns to prevent YAML frontmatter injection. */
30
26
  function sanitizeFrontmatterValue(value: string): string {
31
27
  return value.replace(/[\r\n]+/g, " ").trim();
@@ -92,10 +88,6 @@ function normalizeOptionalStringArray(
92
88
  return { value: normalized };
93
89
  }
94
90
 
95
- /** Watchdog check_name counted when a receipt entry could not be recorded. */
96
- const SKILL_UPDATE_RECEIPT_RECORD_FAILED_CHECK_NAME =
97
- "skill_update_receipt_record_failed";
98
-
99
91
  /**
100
92
  * Record that a background pass changed a skill the user already has.
101
93
  *
@@ -166,15 +158,6 @@ function recordBackgroundSkillUpdate(args: {
166
158
  },
167
159
  "skill update receipt recording failed; the skill write stands and no receipt will name this update",
168
160
  );
169
- try {
170
- recordWatchdogEvent({
171
- checkName: SKILL_UPDATE_RECEIPT_RECORD_FAILED_CHECK_NAME,
172
- value: 1,
173
- });
174
- } catch {
175
- // recordWatchdogEvent already no-ops on opt-out and a missing
176
- // telemetry DB; anything past that is not worth surfacing here.
177
- }
178
161
  }
179
162
  }
180
163
 
@@ -499,21 +482,6 @@ export async function executeScaffoldCloudSkill(
499
482
  // customer or procedure), and watchdog events are metadata-only with no
500
483
  // deletion-redaction tie to the source conversation. Never throws: a
501
484
  // telemetry failure must not fail a scaffold that already succeeded.
502
- if (!managedSkillExistedBefore) {
503
- try {
504
- recordWatchdogEvent({
505
- checkName: SKILL_AUTHORED_CHECK_NAME,
506
- value: 1,
507
- detail: {
508
- authored_by: fromRetrospective ? "retrospective" : "user",
509
- },
510
- });
511
- } catch {
512
- // recordWatchdogEvent already no-ops on opt-out and a missing
513
- // telemetry DB; anything past that is not worth surfacing here.
514
- }
515
- }
516
-
517
485
  // A background pass changed a skill that already existed. Creates announce
518
486
  // themselves through the skill card below; updates land on the skill-update
519
487
  // receipt that announces the whole burst. Covers an explicit
@@ -15,7 +15,7 @@ import {
15
15
  } from "@mycadet/environments/shell";
16
16
 
17
17
  import { getGatewayInternalBaseUrl } from "../../config/env.js";
18
- import { getDataDir, getWorkspaceDir } from "../../util/platform.js";
18
+ import { getDataDir, getWorkspaceDir } from "../../util/layout.js";
19
19
 
20
20
  export const SAFE_ENV_VARS = [
21
21
  "PATH",
@@ -41,7 +41,6 @@ export const SAFE_ENV_VARS = [
41
41
  "CADET_SLOW_SYNC_THRESHOLD_MS",
42
42
  "CADET_SLOW_QUERY_THRESHOLD_MS",
43
43
  "CADET_DEVICE_ID",
44
- "CADET_DISABLE_CLOUD",
45
44
  "CADET_ENVIRONMENT",
46
45
  "CADET_TEST_LOG_LEVEL",
47
46
 
@@ -15,7 +15,7 @@ import {
15
15
  terminateProcessTree,
16
16
  watchShellProcessStart,
17
17
  } from "../../util/host-process.js";
18
- import { getWorkspaceDir } from "../../util/platform.js";
18
+ import { getWorkspaceDir } from "../../util/layout.js";
19
19
  import { SHELL_DID_NOT_START_MESSAGE } from "../shared/shell-output.js";
20
20
  import { buildSanitizedEnv } from "./safe-env.js";
21
21
 
@@ -16,8 +16,8 @@ import {
16
16
  terminateProcessTree,
17
17
  watchShellProcessStart,
18
18
  } from "../../util/host-process.js";
19
+ import { getDataDir } from "../../util/layout.js";
19
20
  import { getLogger } from "../../util/logger.js";
20
- import { getDataDir } from "../../util/platform.js";
21
21
  import type { CompletedBackgroundTool } from "../background-tool-registry.js";
22
22
  import {
23
23
  generateBackgroundToolId,
@@ -26,6 +26,10 @@ import {
26
26
  isOutOfWorkspaceFileInvocation,
27
27
  isWorkspaceWriteTool,
28
28
  } from "../permissions/workspace-policy.js";
29
+ import {
30
+ recordToolDenied,
31
+ recordToolError,
32
+ } from "../persistence/tool-audit.js";
29
33
  import {
30
34
  boundUnparseableToolArgs,
31
35
  isUnparseableToolArgs,
@@ -38,7 +42,6 @@ import {
38
42
  import { createOrReuseToolGrantRequest } from "../runtime/tool-grant-request-helper.js";
39
43
  import { redactSecrets } from "../security/secret-scanner.js";
40
44
  import { computeToolApprovalDigest } from "../security/tool-approval-digest.js";
41
- import { recordToolDenied, recordToolError } from "../telemetry/tool-audit.js";
42
45
  import { getLogger } from "../util/logger.js";
43
46
  import { resolveExecutionTarget } from "./execution-target.js";
44
47
  import { safeTimeoutMs } from "./execution-timeout.js";
@@ -16,7 +16,7 @@
16
16
  import { z } from "zod";
17
17
 
18
18
  import { getConversationProfilesForProvider } from "../../config/default-profile-catalog.js";
19
- import { loadConfig } from "../../config/loader.js";
19
+ import { getConfig } from "../../config/loader.js";
20
20
  import { callerOwnsWorkflowRun } from "../../workflows/capabilities.js";
21
21
  import type { WorkflowRun } from "../../workflows/journal-store.js";
22
22
  import { getWorkflowRunManager } from "../../workflows/run-manager.js";
@@ -198,7 +198,7 @@ export async function executeManageWorkflows(
198
198
  // Mirror the `config/llm/profiles` route: sorted profile names plus the
199
199
  // workspace-wide active profile. Read-only — leaves use this to pick a
200
200
  // valid `profile` for `run_workflow` (an unknown profile throws).
201
- const { llm } = loadConfig();
201
+ const { llm } = getConfig();
202
202
  // A workflow leaf runs chat turns, so this is the conversation view,
203
203
  // which leaves out the cloud Jev profile.
204
204
  const profiles = getConversationProfilesForProvider(llm);
@@ -61,7 +61,7 @@ function makeContext(): Parameters<typeof executeRunWorkflow>[1] {
61
61
 
62
62
  beforeEach(() => {
63
63
  // `manage_workflows list_profiles` reads the workspace active profile via
64
- // loadConfig(); the effective profile names always include the code-catalog
64
+ // getConfig(); the effective profile names always include the code-catalog
65
65
  // defaults, so only the active-profile selection needs seeding.
66
66
  setConfig("llm", { activeProfile: "balanced" });
67
67
  startThrows = null;
@@ -80,8 +80,8 @@ import { existsSync, readdirSync, statSync } from "node:fs";
80
80
  import { readFile } from "node:fs/promises";
81
81
  import { extname, join } from "node:path";
82
82
 
83
+ import { getWorkspaceToolsDir } from "../../util/layout.js";
83
84
  import { getLogger } from "../../util/logger.js";
84
- import { getWorkspaceToolsDir } from "../../util/platform.js";
85
85
  import { isProviderSafeToolName } from "../provider-tool-name.js";
86
86
  import {
87
87
  getCoreToolOverride,
@@ -12,7 +12,7 @@ import {
12
12
  type CallAudioFormat,
13
13
  createStreamingEntry,
14
14
  } from "../calls/audio-store.js";
15
- import { loadConfig } from "../config/loader.js";
15
+ import { getConfig } from "../config/loader.js";
16
16
  import { getPublicBaseUrl } from "../inbound/public-ingress-urls.js";
17
17
  import type {
18
18
  TtsProvider,
@@ -245,7 +245,7 @@ export function createAudioStoreSink(
245
245
  ): AudioStoreSink {
246
246
  const createEntry = options.createEntry ?? createStreamingEntry;
247
247
  const handle = createEntry(options.format);
248
- const baseUrl = getPublicBaseUrl(loadConfig());
248
+ const baseUrl = getPublicBaseUrl(getConfig());
249
249
  const url = `${baseUrl}/v1/audio/${handle.audioId}`;
250
250
 
251
251
  let playUrlSent = false;
@@ -10,15 +10,11 @@ import { safeStringSlice } from "../util/unicode.js";
10
10
 
11
11
  const MAX_METADATA_VALUE_LENGTH = 128;
12
12
 
13
- /** `profileSource` reported for a turn whose profile the Auto router chose. */
14
- export const AUTO_PROFILE_SOURCE = "auto";
15
-
16
13
  export type UsageAttributionProfileSource =
17
14
  | "call_site"
18
15
  | "conversation"
19
16
  | "active"
20
17
  | "default"
21
- | typeof AUTO_PROFILE_SOURCE
22
18
  | "unknown";
23
19
 
24
20
  export interface UsageAttributionInput {
@@ -237,13 +233,7 @@ function appliedProfileFromWinnerSelection(
237
233
  call_site: "call_site",
238
234
  default: "default",
239
235
  } as const;
240
- // An override the Auto router chose is reported as its own source: the
241
- // applied profile is the routed arm, so without this a routed turn would
242
- // be indistinguishable from a user who pinned that arm.
243
- const profileSource =
244
- selection.source === "override" && input.overrideProfileOrigin === "auto"
245
- ? AUTO_PROFILE_SOURCE
246
- : sourceBySelection[selection.source];
236
+ const profileSource = sourceBySelection[selection.source];
247
237
  return {
248
238
  appliedProfile: selection.profileName,
249
239
  profileSource,
@@ -1,8 +1,8 @@
1
1
  import { mkdirSync, writeFileSync } from "node:fs";
2
2
  import { join } from "node:path";
3
3
 
4
+ import { getSignalsDir } from "./layout.js";
4
5
  import { getLogger } from "./logger.js";
5
- import { getSignalsDir } from "./platform.js";
6
6
 
7
7
  const log = getLogger("browser");
8
8
 
@@ -21,8 +21,9 @@ import {
21
21
  import { arch, homedir, platform } from "node:os";
22
22
  import { basename, join } from "node:path";
23
23
 
24
+ import { getBinDir } from "./layout.js";
24
25
  import { getLogger } from "./logger.js";
25
- import { getBinDir, isWindows } from "./platform.js";
26
+ import { isWindows } from "./os.js";
26
27
 
27
28
  const log = getLogger("bun-runtime");
28
29
 
@@ -22,8 +22,8 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
22
22
  import { join } from "node:path";
23
23
 
24
24
  import { getDeviceIdOverride } from "../config/env-registry.js";
25
+ import { getWorkspaceDir } from "./layout.js";
25
26
  import { getLogger } from "./logger.js";
26
- import { getWorkspaceDir } from "./platform.js";
27
27
 
28
28
  const log = getLogger("device-id");
29
29