@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
@@ -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