@vellumai/assistant 0.4.42 → 0.4.44

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 (867) hide show
  1. package/.env.example +1 -6
  2. package/.prettierignore +3 -0
  3. package/ARCHITECTURE.md +140 -403
  4. package/Dockerfile +0 -1
  5. package/README.md +81 -92
  6. package/bun.lock +8 -2
  7. package/docs/architecture/integrations.md +81 -104
  8. package/docs/architecture/memory.md +1 -1
  9. package/docs/architecture/scheduling.md +63 -63
  10. package/docs/architecture/security.md +3 -3
  11. package/docs/runbook-trusted-contacts.md +11 -12
  12. package/docs/trusted-contact-access.md +39 -39
  13. package/package.json +5 -8
  14. package/src/__tests__/access-request-decision.test.ts +4 -4
  15. package/src/__tests__/active-skill-tools.test.ts +49 -34
  16. package/src/__tests__/actor-token-service.test.ts +55 -85
  17. package/src/__tests__/amazon-cdp-integration.test.ts +14 -26
  18. package/src/__tests__/app-bundler.test.ts +14 -368
  19. package/src/__tests__/app-compiler.test.ts +0 -1
  20. package/src/__tests__/app-executors.test.ts +10 -1
  21. package/src/__tests__/approval-hardcoded-copy-guard.test.ts +1 -1
  22. package/src/__tests__/approval-primitive.test.ts +2 -4
  23. package/src/__tests__/approval-routes-http.test.ts +1 -3
  24. package/src/__tests__/asset-materialize-tool.test.ts +1 -4
  25. package/src/__tests__/asset-search-tool.test.ts +1 -4
  26. package/src/__tests__/assistant-attachments.test.ts +23 -0
  27. package/src/__tests__/assistant-feature-flags-integration.test.ts +4 -8
  28. package/src/__tests__/assistant-id-boundary-guard.test.ts +5 -5
  29. package/src/__tests__/attachments-store.test.ts +1 -4
  30. package/src/__tests__/avatar-e2e.test.ts +43 -23
  31. package/src/__tests__/browser-fill-credential.test.ts +1 -1
  32. package/src/__tests__/bundled-asset.test.ts +1 -1
  33. package/src/__tests__/bundled-skill-retrieval-guard.test.ts +2 -9
  34. package/src/__tests__/call-controller.test.ts +4 -8
  35. package/src/__tests__/call-conversation-messages.test.ts +1 -1
  36. package/src/__tests__/call-domain.test.ts +250 -8
  37. package/src/__tests__/call-pointer-message-composer.test.ts +14 -14
  38. package/src/__tests__/call-pointer-messages.test.ts +7 -11
  39. package/src/__tests__/call-recovery.test.ts +47 -0
  40. package/src/__tests__/call-routes-http.test.ts +13 -0
  41. package/src/__tests__/call-start-guardian-guard.test.ts +1 -1
  42. package/src/__tests__/callback-handoff-copy.test.ts +5 -5
  43. package/src/__tests__/canonical-guardian-store.test.ts +3 -3
  44. package/src/__tests__/channel-approval-routes.test.ts +101 -134
  45. package/src/__tests__/channel-approval.test.ts +0 -201
  46. package/src/__tests__/channel-approvals.test.ts +2 -2
  47. package/src/__tests__/channel-delivery-store.test.ts +16 -24
  48. package/src/__tests__/channel-guardian.test.ts +641 -740
  49. package/src/__tests__/channel-invite-transport.test.ts +1 -2
  50. package/src/__tests__/channel-policy.test.ts +9 -12
  51. package/src/__tests__/channel-readiness-service.test.ts +156 -45
  52. package/src/__tests__/channel-reply-delivery.test.ts +3 -3
  53. package/src/__tests__/channel-retry-sweep.test.ts +7 -7
  54. package/src/__tests__/checker.test.ts +41 -35
  55. package/src/__tests__/chrome-cdp.test.ts +57 -17
  56. package/src/__tests__/cli-help-reference-sync.test.ts +26 -0
  57. package/src/__tests__/compaction.benchmark.test.ts +25 -5
  58. package/src/__tests__/computer-use-session-lifecycle.test.ts +1 -1
  59. package/src/__tests__/computer-use-session-working-dir.test.ts +2 -6
  60. package/src/__tests__/computer-use-skill-lifecycle-cleanup.test.ts +1 -1
  61. package/src/__tests__/config-loader-backfill.test.ts +310 -0
  62. package/src/__tests__/config-watcher.test.ts +1 -5
  63. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +3 -5
  64. package/src/__tests__/connection-policy.test.ts +3 -62
  65. package/src/__tests__/contacts-tools.test.ts +0 -2
  66. package/src/__tests__/context-memory-e2e.test.ts +11 -7
  67. package/src/__tests__/context-overflow-policy.test.ts +2 -2
  68. package/src/__tests__/context-window-manager.test.ts +220 -61
  69. package/src/__tests__/conversation-attention-store.test.ts +178 -2
  70. package/src/__tests__/conversation-attention-telegram.test.ts +8 -11
  71. package/src/__tests__/conversation-pairing.test.ts +14 -14
  72. package/src/__tests__/conversation-routes-guardian-reply.test.ts +7 -7
  73. package/src/__tests__/conversation-store.test.ts +2 -2
  74. package/src/__tests__/conversation-unread-route.test.ts +155 -0
  75. package/src/__tests__/credential-metadata-store.test.ts +0 -2
  76. package/src/__tests__/credential-security-invariants.test.ts +10 -16
  77. package/src/__tests__/credentials-cli.test.ts +49 -5
  78. package/src/__tests__/daemon-assistant-events.test.ts +4 -22
  79. package/src/__tests__/db-migration-rollback.test.ts +2 -2
  80. package/src/__tests__/deterministic-verification-control-plane.test.ts +19 -19
  81. package/src/__tests__/dictation-mode-detection.test.ts +1 -1
  82. package/src/__tests__/dynamic-page-surface.test.ts +2 -2
  83. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +2 -6
  84. package/src/__tests__/email-cli.test.ts +12 -12
  85. package/src/__tests__/email-service-config-fallback.test.ts +1 -1
  86. package/src/__tests__/emit-signal-routing-intent.test.ts +3 -18
  87. package/src/__tests__/error-handler-friendly-messages.test.ts +46 -0
  88. package/src/__tests__/event-bus.test.ts +0 -1
  89. package/src/__tests__/followup-tools.test.ts +0 -2
  90. package/src/__tests__/gateway-client-managed-outbound.test.ts +6 -6
  91. package/src/__tests__/gateway-only-enforcement.test.ts +13 -77
  92. package/src/__tests__/gateway-only-guard.test.ts +5 -0
  93. package/src/__tests__/guardian-action-conversation-turn.test.ts +3 -3
  94. package/src/__tests__/guardian-action-followup-executor.test.ts +29 -94
  95. package/src/__tests__/guardian-action-followup-store.test.ts +2 -12
  96. package/src/__tests__/guardian-action-grant-mint-consume.test.ts +48 -194
  97. package/src/__tests__/guardian-action-late-reply.test.ts +12 -12
  98. package/src/__tests__/guardian-action-store.test.ts +2 -2
  99. package/src/__tests__/guardian-action-sweep.test.ts +5 -5
  100. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +1 -3
  101. package/src/__tests__/guardian-dispatch.test.ts +5 -46
  102. package/src/__tests__/guardian-grant-minting.test.ts +5 -44
  103. package/src/__tests__/guardian-outbound-http.test.ts +95 -114
  104. package/src/__tests__/guardian-question-mode.test.ts +1 -4
  105. package/src/__tests__/guardian-routing-invariants.test.ts +5 -13
  106. package/src/__tests__/guardian-routing-state.test.ts +3 -3
  107. package/src/__tests__/guardian-verification-voice-binding.test.ts +64 -7
  108. package/src/__tests__/guardian-verify-setup-skill-regression.test.ts +2 -2
  109. package/src/__tests__/handle-user-message-secret-resume.test.ts +3 -5
  110. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +16 -34
  111. package/src/__tests__/headless-browser-interactions.test.ts +1 -1
  112. package/src/__tests__/headless-browser-navigate.test.ts +1 -1
  113. package/src/__tests__/headless-browser-read-tools.test.ts +1 -1
  114. package/src/__tests__/headless-browser-snapshot.test.ts +1 -1
  115. package/src/__tests__/heartbeat-service.test.ts +1 -1
  116. package/src/__tests__/host-shell-tool.test.ts +3 -12
  117. package/src/__tests__/inbound-invite-redemption.test.ts +2 -2
  118. package/src/__tests__/ingress-url-consistency.test.ts +0 -64
  119. package/src/__tests__/integration-status.test.ts +8 -8
  120. package/src/__tests__/intent-routing.test.ts +9 -13
  121. package/src/__tests__/invite-redemption-service.test.ts +4 -4
  122. package/src/__tests__/invite-routes-http.test.ts +10 -10
  123. package/src/__tests__/llm-usage-store.test.ts +45 -9
  124. package/src/__tests__/local-gateway-health.test.ts +209 -0
  125. package/src/__tests__/managed-avatar-client.test.ts +23 -12
  126. package/src/__tests__/managed-skill-lifecycle.test.ts +1 -2
  127. package/src/__tests__/managed-store.test.ts +29 -12
  128. package/src/__tests__/managed-twitter-guardrails.test.ts +357 -0
  129. package/src/__tests__/mcp-cli.test.ts +1 -1
  130. package/src/__tests__/mcp-health-check.test.ts +1 -1
  131. package/src/__tests__/media-generate-image.test.ts +1 -1
  132. package/src/__tests__/media-reuse-story.e2e.test.ts +1 -4
  133. package/src/__tests__/memory-context-benchmark.benchmark.test.ts +9 -6
  134. package/src/__tests__/memory-regressions.test.ts +1 -166
  135. package/src/__tests__/messaging-send-tool.test.ts +8 -4
  136. package/src/__tests__/migration-export-http.test.ts +2 -2
  137. package/src/__tests__/migration-transport.test.ts +44 -0
  138. package/src/__tests__/non-member-access-request.test.ts +49 -36
  139. package/src/__tests__/notification-broadcaster.test.ts +15 -15
  140. package/src/__tests__/notification-decision-fallback.test.ts +2 -2
  141. package/src/__tests__/notification-decision-strategy.test.ts +4 -4
  142. package/src/__tests__/notification-deep-link.test.ts +3 -3
  143. package/src/__tests__/notification-guardian-path.test.ts +6 -44
  144. package/src/__tests__/notification-routing-intent.test.ts +11 -7
  145. package/src/__tests__/oauth-cli.test.ts +1 -1
  146. package/src/__tests__/onboarding-starter-tasks.test.ts +2 -6
  147. package/src/__tests__/onboarding-template-contract.test.ts +2 -12
  148. package/src/__tests__/platform.test.ts +168 -5
  149. package/src/__tests__/playbook-execution.test.ts +0 -2
  150. package/src/__tests__/playbook-tools.test.ts +0 -2
  151. package/src/__tests__/pricing.test.ts +125 -0
  152. package/src/__tests__/provider-error-scenarios.test.ts +9 -3
  153. package/src/__tests__/provider-fail-open-selection.test.ts +12 -2
  154. package/src/__tests__/recording-handler.test.ts +46 -80
  155. package/src/__tests__/recording-state-machine.test.ts +112 -183
  156. package/src/__tests__/registry.test.ts +1 -1
  157. package/src/__tests__/relay-server.test.ts +69 -71
  158. package/src/__tests__/reminder-store.test.ts +3 -3
  159. package/src/__tests__/request-file-tool.test.ts +2 -2
  160. package/src/__tests__/ride-shotgun-handler.test.ts +2 -33
  161. package/src/__tests__/runtime-attachment-metadata.test.ts +3 -3
  162. package/src/__tests__/runtime-events-sse-parity.test.ts +1 -1
  163. package/src/__tests__/scaffold-managed-skill-tool.test.ts +4 -4
  164. package/src/__tests__/schedule-store.test.ts +13 -4
  165. package/src/__tests__/schedule-tools.test.ts +0 -2
  166. package/src/__tests__/scheduler-recurrence.test.ts +3 -4
  167. package/src/__tests__/scoped-approval-grants.test.ts +3 -5
  168. package/src/__tests__/scoped-grant-security-matrix.test.ts +6 -8
  169. package/src/__tests__/secret-prompt-log-hygiene.test.ts +1 -1
  170. package/src/__tests__/secret-response-routing.test.ts +1 -1
  171. package/src/__tests__/send-endpoint-busy.test.ts +1 -4
  172. package/src/__tests__/sequence-store.test.ts +0 -2
  173. package/src/__tests__/server-history-render.test.ts +2 -199
  174. package/src/__tests__/session-abort-tool-results.test.ts +9 -3
  175. package/src/__tests__/session-agent-loop.test.ts +107 -3
  176. package/src/__tests__/session-confirmation-signals.test.ts +17 -49
  177. package/src/__tests__/session-conflict-gate.test.ts +9 -3
  178. package/src/__tests__/session-init.benchmark.test.ts +22 -13
  179. package/src/__tests__/session-load-history-repair.test.ts +6 -3
  180. package/src/__tests__/session-pre-run-repair.test.ts +9 -3
  181. package/src/__tests__/session-profile-injection.test.ts +9 -3
  182. package/src/__tests__/session-provider-retry-repair.test.ts +10 -4
  183. package/src/__tests__/session-queue.test.ts +10 -4
  184. package/src/__tests__/session-runtime-assembly.test.ts +28 -18
  185. package/src/__tests__/session-skill-tools.test.ts +2 -3
  186. package/src/__tests__/session-slash-known.test.ts +11 -4
  187. package/src/__tests__/session-slash-queue.test.ts +11 -4
  188. package/src/__tests__/session-slash-unknown.test.ts +12 -4
  189. package/src/__tests__/session-surfaces-deselection.test.ts +2 -2
  190. package/src/__tests__/session-surfaces-task-progress.test.ts +3 -3
  191. package/src/__tests__/session-tool-setup-app-refresh.test.ts +1 -1
  192. package/src/__tests__/session-tool-setup-memory-scope.test.ts +1 -1
  193. package/src/__tests__/session-tool-setup-side-effect-flag.test.ts +1 -1
  194. package/src/__tests__/session-usage.test.ts +180 -0
  195. package/src/__tests__/session-workspace-cache-state.test.ts +8 -2
  196. package/src/__tests__/session-workspace-injection.test.ts +8 -2
  197. package/src/__tests__/session-workspace-tool-tracking.test.ts +8 -2
  198. package/src/__tests__/skill-feature-flags-integration.test.ts +5 -11
  199. package/src/__tests__/skill-feature-flags.test.ts +1 -0
  200. package/src/__tests__/skill-include-graph.test.ts +1 -0
  201. package/src/__tests__/skill-load-feature-flag.test.ts +3 -9
  202. package/src/__tests__/skill-load-tool.test.ts +90 -12
  203. package/src/__tests__/skill-projection-feature-flag.test.ts +14 -15
  204. package/src/__tests__/skills-uninstall.test.ts +131 -0
  205. package/src/__tests__/skills.test.ts +32 -16
  206. package/src/__tests__/slack-block-formatting.test.ts +1 -1
  207. package/src/__tests__/slack-channel-config.test.ts +71 -12
  208. package/src/__tests__/slack-inbound-verification.test.ts +7 -7
  209. package/src/__tests__/slack-share-routes.test.ts +1 -1
  210. package/src/__tests__/slack-skill.test.ts +2 -2
  211. package/src/__tests__/slash-commands-catalog.test.ts +1 -0
  212. package/src/__tests__/slash-commands-resolver.test.ts +1 -0
  213. package/src/__tests__/starter-task-flow.test.ts +10 -20
  214. package/src/__tests__/subagent-manager-notify.test.ts +1 -1
  215. package/src/__tests__/subagent-tools.test.ts +2 -2
  216. package/src/__tests__/system-prompt.test.ts +7 -12
  217. package/src/__tests__/task-compiler.test.ts +0 -2
  218. package/src/__tests__/task-management-tools.test.ts +0 -2
  219. package/src/__tests__/task-runner.test.ts +0 -2
  220. package/src/__tests__/task-scheduler.test.ts +2 -2
  221. package/src/__tests__/telegram-bot-username-resolution.test.ts +46 -44
  222. package/src/__tests__/terminal-tools.test.ts +1 -11
  223. package/src/__tests__/thread-seed-composer.test.ts +3 -1
  224. package/src/__tests__/tool-approval-handler.test.ts +5 -7
  225. package/src/__tests__/tool-executor.test.ts +2 -2
  226. package/src/__tests__/tool-grant-request-escalation.test.ts +3 -5
  227. package/src/__tests__/tool-notification-listener.test.ts +1 -1
  228. package/src/__tests__/tool-profiling-listener.test.ts +1 -1
  229. package/src/__tests__/tool-trace-listener.test.ts +1 -2
  230. package/src/__tests__/trace-emitter.test.ts +1 -1
  231. package/src/__tests__/trust-context-guards.test.ts +1 -1
  232. package/src/__tests__/trust-store.test.ts +48 -399
  233. package/src/__tests__/trusted-contact-approval-notifier.test.ts +6 -8
  234. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +5 -7
  235. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +6 -6
  236. package/src/__tests__/trusted-contact-multichannel.test.ts +54 -47
  237. package/src/__tests__/trusted-contact-verification.test.ts +12 -12
  238. package/src/__tests__/twilio-config.test.ts +11 -2
  239. package/src/__tests__/twilio-provider.test.ts +6 -4
  240. package/src/__tests__/twilio-routes.test.ts +408 -86
  241. package/src/__tests__/twitter-platform-proxy-client.test.ts +475 -0
  242. package/src/__tests__/update-bulletin-format.test.ts +1 -1
  243. package/src/__tests__/update-bulletin-state.test.ts +1 -1
  244. package/src/__tests__/update-bulletin.test.ts +4 -8
  245. package/src/__tests__/update-template-contract.test.ts +1 -1
  246. package/src/__tests__/usage-cache-backfill-migration.test.ts +406 -0
  247. package/src/__tests__/usage-routes.test.ts +23 -5
  248. package/src/__tests__/user-reference.test.ts +1 -1
  249. package/src/__tests__/{guardian-control-plane-policy.test.ts → verification-control-plane-policy.test.ts} +142 -170
  250. package/src/__tests__/{guardian-verification-intent-routing.test.ts → verification-session-intent-routing.test.ts} +16 -16
  251. package/src/__tests__/view-image-tool.test.ts +0 -2
  252. package/src/__tests__/voice-ingress-preflight.test.ts +36 -0
  253. package/src/__tests__/voice-invite-redemption.test.ts +18 -18
  254. package/src/__tests__/voice-scoped-grant-consumer.test.ts +7 -7
  255. package/src/__tests__/voice-session-bridge.test.ts +14 -16
  256. package/src/__tests__/workspace-policy.test.ts +1 -1
  257. package/src/approvals/AGENTS.md +4 -4
  258. package/src/approvals/approval-primitive.ts +2 -2
  259. package/src/approvals/guardian-decision-primitive.ts +1 -1
  260. package/src/approvals/guardian-request-resolvers.ts +3 -4
  261. package/src/bundler/app-bundler.ts +29 -217
  262. package/src/calls/active-call-lease.ts +207 -0
  263. package/src/calls/call-constants.ts +0 -7
  264. package/src/calls/call-controller.ts +1 -1
  265. package/src/calls/call-conversation-messages.ts +6 -6
  266. package/src/calls/call-domain.ts +73 -38
  267. package/src/calls/call-pointer-message-composer.ts +6 -6
  268. package/src/calls/call-pointer-messages.ts +14 -13
  269. package/src/calls/call-recovery.ts +2 -0
  270. package/src/calls/call-store.ts +21 -28
  271. package/src/calls/guardian-action-sweep.ts +6 -8
  272. package/src/calls/guardian-dispatch.ts +2 -6
  273. package/src/calls/relay-access-wait.ts +4 -4
  274. package/src/calls/relay-server.ts +69 -80
  275. package/src/calls/relay-setup-router.ts +16 -21
  276. package/src/calls/relay-verification.ts +27 -28
  277. package/src/calls/twilio-config.ts +28 -3
  278. package/src/calls/twilio-provider.ts +5 -5
  279. package/src/calls/twilio-rest.ts +26 -27
  280. package/src/calls/twilio-routes.ts +67 -54
  281. package/src/calls/types.ts +8 -8
  282. package/src/calls/voice-ingress-preflight.ts +110 -0
  283. package/src/calls/voice-session-bridge.ts +7 -7
  284. package/src/channels/config.ts +1 -10
  285. package/src/{config/channel-permission-profiles.ts → channels/permission-profiles.ts} +1 -1
  286. package/src/channels/types.ts +2 -13
  287. package/src/cli/__tests__/notifications.test.ts +1 -1
  288. package/src/{amazon → cli/commands/amazon}/client.ts +99 -42
  289. package/src/cli/{amazon.ts → commands/amazon/index.ts} +14 -54
  290. package/src/{amazon → cli/commands/amazon}/request-extractor.ts +39 -3
  291. package/src/cli/commands/amazon/session.ts +108 -0
  292. package/src/cli/{audit.ts → commands/audit.ts} +2 -4
  293. package/src/cli/{autonomy.ts → commands/autonomy.ts} +1 -3
  294. package/src/cli/commands/browser-relay.ts +520 -0
  295. package/src/cli/commands/channel-verification-sessions.ts +442 -0
  296. package/src/cli/{completions.ts → commands/completions.ts} +1 -3
  297. package/src/cli/{config.ts → commands/config.ts} +3 -5
  298. package/src/cli/{contacts.ts → commands/contacts.ts} +15 -17
  299. package/src/cli/{credentials.ts → commands/credentials.ts} +9 -10
  300. package/src/cli/{default-action.ts → commands/default-action.ts} +3 -3
  301. package/src/cli/{dev.ts → commands/dev.ts} +4 -6
  302. package/src/cli/{doctor.ts → commands/doctor.ts} +36 -60
  303. package/src/cli/{email.ts → commands/email.ts} +2 -2
  304. package/src/cli/{keys.ts → commands/keys.ts} +6 -6
  305. package/src/cli/{map.ts → commands/map.ts} +85 -93
  306. package/src/cli/{mcp.ts → commands/mcp.ts} +5 -7
  307. package/src/cli/{memory.ts → commands/memory.ts} +6 -7
  308. package/src/cli/{notifications.ts → commands/notifications.ts} +8 -10
  309. package/src/cli/{oauth.ts → commands/oauth.ts} +2 -2
  310. package/src/cli/commands/platform.ts +176 -0
  311. package/src/cli/{sequence.ts → commands/sequence.ts} +3 -3
  312. package/src/cli/{sessions.ts → commands/sessions.ts} +32 -52
  313. package/src/cli/commands/skills.ts +498 -0
  314. package/src/cli/{trust.ts → commands/trust.ts} +2 -4
  315. package/src/cli/commands/twitter/__tests__/cli-read-routing.test.ts +345 -0
  316. package/src/cli/commands/twitter/__tests__/cli-routing.test.ts +252 -0
  317. package/src/{__tests__/twitter-oauth-client.test.ts → cli/commands/twitter/__tests__/oauth-client.test.ts} +2 -48
  318. package/src/cli/commands/twitter/index.ts +420 -0
  319. package/src/{twitter → cli/commands/twitter}/oauth-client.ts +1 -35
  320. package/src/cli/commands/twitter/router.ts +351 -0
  321. package/src/cli/commands/twitter/types.ts +30 -0
  322. package/src/cli/db.ts +1 -0
  323. package/src/cli/http-client.ts +87 -0
  324. package/src/cli/logger.ts +6 -0
  325. package/src/cli/main-screen.tsx +4 -3
  326. package/src/cli/output.ts +19 -0
  327. package/src/cli/program.ts +29 -27
  328. package/src/cli/reference.ts +27 -37
  329. package/src/cli.ts +452 -240
  330. package/src/config/assistant-feature-flags.ts +3 -15
  331. package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +3 -6
  332. package/src/config/bundled-skills/agentmail/SKILL.md +4 -4
  333. package/src/config/bundled-skills/amazon/SKILL.md +15 -6
  334. package/src/config/bundled-skills/api-mapping/SKILL.md +4 -4
  335. package/src/config/bundled-skills/app-builder/SKILL.md +4 -9
  336. package/src/config/bundled-skills/app-builder/TOOLS.json +0 -4
  337. package/src/config/bundled-skills/browser/SKILL.md +4 -5
  338. package/src/config/bundled-skills/chatgpt-import/SKILL.md +4 -4
  339. package/src/config/bundled-skills/chatgpt-import/tools/chatgpt-import.ts +1 -1
  340. package/src/config/bundled-skills/claude-code/SKILL.md +4 -4
  341. package/src/config/bundled-skills/cli-discover/SKILL.md +4 -4
  342. package/src/config/bundled-skills/computer-use/SKILL.md +4 -4
  343. package/src/config/bundled-skills/contacts/SKILL.md +23 -77
  344. package/src/config/bundled-skills/deploy-fullstack-vercel/SKILL.md +4 -4
  345. package/src/config/bundled-skills/document/SKILL.md +4 -3
  346. package/src/config/bundled-skills/document-writer/SKILL.md +4 -4
  347. package/src/config/bundled-skills/doordash/SKILL.md +4 -12
  348. package/src/config/bundled-skills/doordash/__tests__/doordash-session.test.ts +1 -90
  349. package/src/config/bundled-skills/doordash/doordash-cli.ts +132 -109
  350. package/src/config/bundled-skills/doordash/lib/session.ts +22 -19
  351. package/src/config/bundled-skills/doordash/lib/shared/platform.ts +26 -9
  352. package/src/config/bundled-skills/elevenlabs-voice/SKILL.md +140 -0
  353. package/src/config/bundled-skills/email-setup/SKILL.md +4 -4
  354. package/src/config/bundled-skills/followups/SKILL.md +4 -3
  355. package/src/config/bundled-skills/frontend-design/SKILL.md +2 -0
  356. package/src/config/bundled-skills/google-calendar/SKILL.md +4 -4
  357. package/src/config/bundled-skills/google-oauth-setup/SKILL.md +4 -6
  358. package/src/config/bundled-skills/guardian-verify-setup/SKILL.md +26 -41
  359. package/src/config/bundled-skills/image-studio/SKILL.md +4 -5
  360. package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +1 -1
  361. package/src/config/bundled-skills/influencer/SKILL.md +19 -19
  362. package/src/{influencer → config/bundled-skills/influencer/scripts}/client.ts +73 -56
  363. package/src/config/bundled-skills/influencer/scripts/influencer.ts +267 -0
  364. package/src/config/bundled-skills/knowledge-graph/SKILL.md +4 -2
  365. package/src/config/bundled-skills/macos-automation/SKILL.md +4 -5
  366. package/src/config/bundled-skills/mcp-setup/SKILL.md +4 -4
  367. package/src/config/bundled-skills/media-processing/SKILL.md +3 -2
  368. package/src/config/bundled-skills/messaging/SKILL.md +6 -33
  369. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +0 -5
  370. package/src/config/bundled-skills/notifications/SKILL.md +4 -4
  371. package/src/config/bundled-skills/notion/SKILL.md +4 -4
  372. package/src/config/bundled-skills/notion-oauth-setup/SKILL.md +4 -5
  373. package/src/config/bundled-skills/oauth-setup/SKILL.md +4 -5
  374. package/src/config/bundled-skills/phone-calls/SKILL.md +24 -458
  375. package/src/config/bundled-skills/phone-calls/references/CONFIG.md +83 -0
  376. package/src/config/bundled-skills/phone-calls/references/TRANSCRIPTS.md +57 -0
  377. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +67 -0
  378. package/src/config/bundled-skills/playbooks/SKILL.md +4 -3
  379. package/src/config/bundled-skills/public-ingress/SKILL.md +65 -14
  380. package/src/config/bundled-skills/reminder/SKILL.md +4 -3
  381. package/src/config/bundled-skills/restaurant-reservation/SKILL.md +4 -6
  382. package/src/config/bundled-skills/schedule/SKILL.md +4 -3
  383. package/src/config/bundled-skills/screen-recording/SKILL.md +4 -3
  384. package/src/config/bundled-skills/self-upgrade/SKILL.md +4 -4
  385. package/src/config/bundled-skills/skills-catalog/SKILL.md +4 -4
  386. package/src/config/bundled-skills/slack/SKILL.md +4 -8
  387. package/src/config/bundled-skills/slack/tools/slack-channel-permissions.ts +1 -1
  388. package/src/config/bundled-skills/slack-app-setup/SKILL.md +66 -88
  389. package/src/config/bundled-skills/slack-digest-setup/SKILL.md +4 -5
  390. package/src/config/bundled-skills/slack-oauth-setup/SKILL.md +4 -5
  391. package/src/config/bundled-skills/start-the-day/SKILL.md +4 -4
  392. package/src/config/bundled-skills/subagent/SKILL.md +4 -3
  393. package/src/config/bundled-skills/tasks/SKILL.md +4 -3
  394. package/src/config/bundled-skills/telegram-setup/SKILL.md +63 -112
  395. package/src/config/bundled-skills/time-based-actions/SKILL.md +4 -3
  396. package/src/config/bundled-skills/transcribe/SKILL.md +4 -3
  397. package/src/config/bundled-skills/twilio-setup/SKILL.md +23 -50
  398. package/src/config/bundled-skills/twitter/SKILL.md +73 -144
  399. package/src/config/bundled-skills/typescript-eval/SKILL.md +4 -4
  400. package/src/config/bundled-skills/vercel-token-setup/SKILL.md +4 -5
  401. package/src/config/bundled-skills/voice-setup/SKILL.md +19 -45
  402. package/src/config/bundled-skills/watcher/SKILL.md +4 -3
  403. package/src/config/env-registry.ts +1 -10
  404. package/src/config/feature-flag-registry.json +8 -16
  405. package/src/config/loader.ts +78 -38
  406. package/src/config/schema.ts +143 -106
  407. package/src/config/schemas/channels.ts +80 -0
  408. package/src/config/schemas/heartbeat.ts +51 -0
  409. package/src/config/schemas/inference.ts +136 -0
  410. package/src/config/schemas/ingress.ts +81 -0
  411. package/src/config/schemas/logging.ts +21 -0
  412. package/src/config/schemas/memory-lifecycle.ts +67 -0
  413. package/src/config/schemas/memory-processing.ts +215 -0
  414. package/src/config/schemas/memory-retrieval.ts +222 -0
  415. package/src/config/schemas/memory-storage.ts +83 -0
  416. package/src/config/schemas/memory.ts +58 -0
  417. package/src/config/schemas/platform.ts +64 -0
  418. package/src/config/schemas/security.ts +54 -0
  419. package/src/config/schemas/swarm.ts +50 -0
  420. package/src/config/schemas/timeouts.ts +47 -0
  421. package/src/config/{agent-schema.ts → schemas/workspace-git.ts} +0 -97
  422. package/src/config/skill-state.ts +3 -13
  423. package/src/config/skills.ts +196 -75
  424. package/src/config/types.ts +1 -20
  425. package/src/contacts/contact-store.ts +12 -49
  426. package/src/contacts/contacts-write.ts +1 -5
  427. package/src/contacts/index.ts +0 -2
  428. package/src/contacts/types.ts +0 -8
  429. package/src/context/window-manager.ts +73 -14
  430. package/src/daemon/assistant-attachments.ts +9 -0
  431. package/src/daemon/computer-use-session.ts +3 -3
  432. package/src/daemon/connection-policy.ts +6 -21
  433. package/src/daemon/context-overflow-policy.ts +1 -1
  434. package/src/daemon/daemon-control.ts +46 -54
  435. package/src/daemon/doordash-steps.ts +1 -1
  436. package/src/daemon/handlers/config-channels.ts +407 -71
  437. package/src/daemon/handlers/config-ingress.ts +17 -85
  438. package/src/daemon/handlers/config-model.ts +145 -123
  439. package/src/daemon/handlers/config-slack-channel.ts +43 -29
  440. package/src/daemon/handlers/config-telegram.ts +32 -27
  441. package/src/daemon/handlers/config-voice.ts +1 -4
  442. package/src/daemon/handlers/dictation.ts +11 -16
  443. package/src/daemon/handlers/identity.ts +5 -6
  444. package/src/daemon/handlers/pairing.ts +5 -13
  445. package/src/daemon/handlers/recording.ts +97 -199
  446. package/src/daemon/handlers/session-history.ts +151 -105
  447. package/src/daemon/handlers/session-user-message.ts +29 -57
  448. package/src/daemon/handlers/sessions.ts +240 -137
  449. package/src/daemon/handlers/shared.ts +62 -95
  450. package/src/daemon/handlers/skills.ts +492 -543
  451. package/src/daemon/lifecycle.ts +155 -55
  452. package/src/daemon/{ipc-contract.ts → message-protocol.ts} +49 -49
  453. package/src/daemon/{ipc-contract → message-types}/apps.ts +0 -25
  454. package/src/daemon/{ipc-contract → message-types}/computer-use.ts +0 -3
  455. package/src/daemon/{ipc-contract → message-types}/diagnostics.ts +0 -16
  456. package/src/daemon/{ipc-contract → message-types}/integrations.ts +30 -20
  457. package/src/daemon/{ipc-contract → message-types}/memory.ts +8 -0
  458. package/src/daemon/{ipc-contract → message-types}/notifications.ts +15 -1
  459. package/src/daemon/{ipc-contract → message-types}/sessions.ts +7 -1
  460. package/src/daemon/{ipc-contract → message-types}/shared.ts +0 -8
  461. package/src/daemon/{ipc-contract → message-types}/surfaces.ts +2 -0
  462. package/src/daemon/{ipc-contract → message-types}/workspace.ts +2 -2
  463. package/src/daemon/providers-setup.ts +0 -5
  464. package/src/daemon/recording-executor.ts +0 -7
  465. package/src/daemon/ride-shotgun-handler.ts +42 -14
  466. package/src/daemon/seed-files.ts +3 -27
  467. package/src/daemon/server.ts +134 -524
  468. package/src/daemon/session-agent-loop-handlers.ts +46 -9
  469. package/src/daemon/session-agent-loop.ts +86 -24
  470. package/src/daemon/session-attachments.ts +1 -1
  471. package/src/daemon/session-error.ts +1 -1
  472. package/src/daemon/session-history.ts +20 -15
  473. package/src/daemon/session-lifecycle.ts +9 -7
  474. package/src/daemon/session-memory.ts +15 -1
  475. package/src/daemon/session-messaging.ts +10 -6
  476. package/src/daemon/session-notifiers.ts +10 -8
  477. package/src/daemon/session-process.ts +34 -25
  478. package/src/daemon/session-queue-manager.ts +1 -1
  479. package/src/daemon/session-runtime-assembly.ts +6 -32
  480. package/src/daemon/session-surfaces.ts +187 -35
  481. package/src/daemon/session-tool-setup.ts +1 -1
  482. package/src/daemon/session-usage.ts +119 -18
  483. package/src/daemon/session.ts +11 -33
  484. package/src/daemon/tool-side-effects.ts +6 -5
  485. package/src/daemon/trace-emitter.ts +1 -1
  486. package/src/daemon/{guardian-verification-intent.ts → verification-session-intent.ts} +16 -16
  487. package/src/daemon/watch-handler.ts +2 -5
  488. package/src/email/service.ts +8 -8
  489. package/src/events/domain-events.ts +0 -1
  490. package/src/events/tool-notification-listener.ts +1 -1
  491. package/src/followups/followup-store.ts +1 -2
  492. package/src/followups/types.ts +0 -6
  493. package/src/heartbeat/heartbeat-service.ts +1 -1
  494. package/src/inbound/platform-callback-registration.ts +1 -1
  495. package/src/inbound/public-ingress-urls.ts +0 -8
  496. package/src/index.ts +12 -0
  497. package/src/mcp/client.ts +1 -1
  498. package/src/mcp/manager.ts +1 -1
  499. package/src/memory/app-store.ts +1 -60
  500. package/src/memory/{guardian-verification.ts → channel-verification-sessions.ts} +110 -93
  501. package/src/memory/conversation-attention-store.ts +154 -0
  502. package/src/memory/conversation-bootstrap.ts +1 -1
  503. package/src/memory/conversation-crud.ts +53 -1
  504. package/src/memory/conversation-display-order-migration.ts +2 -3
  505. package/src/memory/conversation-queries.ts +1 -29
  506. package/src/memory/conversation-title-service.ts +26 -21
  507. package/src/memory/db-connection.ts +1 -8
  508. package/src/memory/db-init.ts +20 -0
  509. package/src/memory/delivery-crud.ts +4 -34
  510. package/src/memory/external-conversation-store.ts +1 -1
  511. package/src/memory/format-recall.ts +47 -0
  512. package/src/memory/guardian-action-store.ts +4 -5
  513. package/src/memory/guardian-rate-limits.ts +0 -3
  514. package/src/memory/invite-store.ts +1 -1
  515. package/src/memory/job-handlers/backfill.ts +9 -2
  516. package/src/memory/job-handlers/extraction.ts +2 -7
  517. package/src/memory/job-handlers/summarization.ts +1 -1
  518. package/src/memory/llm-usage-store.ts +11 -0
  519. package/src/memory/migrations/114-notifications.ts +12 -40
  520. package/src/memory/migrations/140-backfill-usage-cache-accounting.ts +357 -0
  521. package/src/memory/migrations/141-rename-verification-table.ts +55 -0
  522. package/src/memory/migrations/142-rename-verification-session-id-column.ts +32 -0
  523. package/src/memory/migrations/143-rename-guardian-verification-values.ts +48 -0
  524. package/src/memory/migrations/144-rename-voice-to-phone.ts +147 -0
  525. package/src/memory/migrations/index.ts +5 -0
  526. package/src/memory/migrations/registry.ts +30 -0
  527. package/src/memory/qdrant-circuit-breaker.ts +5 -0
  528. package/src/memory/retriever.test.ts +707 -0
  529. package/src/memory/retriever.ts +120 -116
  530. package/src/memory/schema/calls.ts +3 -7
  531. package/src/memory/schema/guardian.ts +2 -2
  532. package/src/memory/schema/infrastructure.ts +0 -8
  533. package/src/memory/search/lexical.ts +4 -1
  534. package/src/memory/search/query-expansion.test.ts +70 -0
  535. package/src/memory/search/query-expansion.ts +118 -0
  536. package/src/memory/search/types.ts +18 -17
  537. package/src/messaging/providers/telegram-bot/adapter.ts +1 -1
  538. package/src/messaging/providers/whatsapp/adapter.ts +1 -4
  539. package/src/messaging/registry.ts +0 -1
  540. package/src/notifications/README.md +13 -22
  541. package/src/notifications/adapters/macos.ts +1 -1
  542. package/src/notifications/conversation-pairing.ts +2 -2
  543. package/src/notifications/copy-composer.ts +2 -2
  544. package/src/notifications/decision-engine.ts +1 -10
  545. package/src/notifications/destination-resolver.ts +2 -3
  546. package/src/notifications/emit-signal.ts +2 -8
  547. package/src/notifications/guardian-question-mode.ts +5 -8
  548. package/src/notifications/signal.ts +1 -2
  549. package/src/notifications/types.ts +1 -1
  550. package/src/oauth/token-persistence.ts +25 -1
  551. package/src/permissions/checker.ts +4 -29
  552. package/src/permissions/defaults.ts +9 -9
  553. package/src/permissions/prompter.ts +1 -1
  554. package/src/permissions/secret-prompter.ts +1 -1
  555. package/src/permissions/shell-identity.ts +1 -1
  556. package/src/permissions/trust-store.ts +13 -76
  557. package/src/permissions/workspace-policy.ts +1 -1
  558. package/src/{config → prompts}/computer-use-prompt.ts +1 -1
  559. package/src/{config → prompts}/system-prompt.ts +44 -26
  560. package/src/{config → prompts}/templates/BOOTSTRAP.md +0 -3
  561. package/src/providers/registry.ts +2 -4
  562. package/src/runtime/AGENTS.md +6 -8
  563. package/src/runtime/access-request-helper.ts +36 -55
  564. package/src/runtime/actor-trust-resolver.ts +1 -24
  565. package/src/runtime/approval-message-composer.ts +6 -2
  566. package/src/runtime/assistant-event.ts +1 -1
  567. package/src/runtime/auth/__tests__/guard-tests.test.ts +1 -0
  568. package/src/runtime/auth/__tests__/ipc-auth-context.test.ts +1 -1
  569. package/src/runtime/auth/__tests__/scopes.test.ts +2 -1
  570. package/src/runtime/auth/__tests__/subject.test.ts +32 -0
  571. package/src/runtime/auth/route-policy.ts +137 -25
  572. package/src/runtime/auth/scopes.ts +1 -0
  573. package/src/runtime/auth/subject.ts +9 -0
  574. package/src/runtime/auth/token-service.ts +12 -1
  575. package/src/runtime/auth/types.ts +1 -1
  576. package/src/runtime/channel-approval-types.ts +1 -1
  577. package/src/runtime/channel-approvals.ts +1 -1
  578. package/src/runtime/channel-invite-transport.ts +0 -2
  579. package/src/runtime/channel-invite-transports/slack.ts +5 -19
  580. package/src/runtime/channel-invite-transports/telegram.ts +17 -34
  581. package/src/runtime/channel-invite-transports/voice.ts +1 -1
  582. package/src/runtime/channel-readiness-service.ts +24 -159
  583. package/src/runtime/channel-readiness-types.ts +5 -1
  584. package/src/runtime/channel-reply-delivery.ts +43 -3
  585. package/src/runtime/channel-retry-sweep.ts +14 -22
  586. package/src/runtime/{channel-guardian-service.ts → channel-verification-service.ts} +50 -53
  587. package/src/runtime/confirmation-request-guardian-bridge.ts +2 -3
  588. package/src/runtime/gateway-client.ts +12 -15
  589. package/src/runtime/guardian-action-followup-executor.ts +8 -73
  590. package/src/runtime/guardian-action-grant-minter.ts +45 -61
  591. package/src/runtime/guardian-action-message-composer.ts +4 -4
  592. package/src/runtime/guardian-reply-router.ts +3 -3
  593. package/src/runtime/http-server.ts +133 -24
  594. package/src/runtime/http-types.ts +44 -1
  595. package/src/runtime/invite-instruction-generator.ts +1 -3
  596. package/src/runtime/invite-redemption-service.ts +5 -5
  597. package/src/runtime/invite-service.ts +7 -7
  598. package/src/runtime/local-actor-identity.ts +28 -2
  599. package/src/runtime/local-gateway-health.ts +275 -0
  600. package/src/runtime/middleware/error-handler.ts +14 -1
  601. package/src/runtime/middleware/twilio-validation.ts +3 -3
  602. package/src/runtime/migrations/migration-transport.ts +18 -3
  603. package/src/runtime/migrations/rebind-secrets-screen.ts +2 -2
  604. package/src/runtime/nl-approval-parser.ts +2 -3
  605. package/src/runtime/routes/access-request-decision.ts +2 -2
  606. package/src/runtime/routes/app-management-routes.ts +918 -0
  607. package/src/runtime/routes/approval-routes.ts +76 -7
  608. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +38 -203
  609. package/src/runtime/routes/brain-graph/brain-graph.html +1845 -0
  610. package/src/runtime/routes/brain-graph-routes.ts +4 -42
  611. package/src/runtime/routes/channel-delivery-routes.ts +5 -4
  612. package/src/runtime/routes/channel-route-shared.ts +1 -3
  613. package/src/runtime/routes/channel-routes.ts +1 -4
  614. package/src/runtime/routes/channel-verification-routes.ts +257 -0
  615. package/src/runtime/routes/computer-use-routes.ts +595 -0
  616. package/src/runtime/routes/contact-routes.ts +1 -317
  617. package/src/runtime/routes/conversation-attention-routes.ts +6 -5
  618. package/src/runtime/routes/conversation-routes.ts +20 -24
  619. package/src/runtime/routes/debug-routes.ts +1 -1
  620. package/src/runtime/routes/diagnostics-routes.ts +890 -0
  621. package/src/runtime/routes/documents-routes.ts +227 -0
  622. package/src/runtime/routes/guardian-approval-interception.ts +25 -48
  623. package/src/runtime/routes/guardian-bootstrap-routes.ts +3 -3
  624. package/src/runtime/routes/guardian-expiry-sweep.ts +2 -2
  625. package/src/runtime/routes/guardian-refresh-routes.ts +11 -6
  626. package/src/runtime/routes/inbound-conversation.ts +3 -10
  627. package/src/runtime/routes/inbound-message-handler.ts +7 -6
  628. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +22 -22
  629. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +44 -0
  630. package/src/runtime/routes/inbound-stages/background-dispatch.ts +140 -22
  631. package/src/runtime/routes/inbound-stages/bootstrap-intercept.ts +4 -4
  632. package/src/runtime/routes/inbound-stages/edit-intercept.ts +5 -5
  633. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +3 -3
  634. package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +4 -4
  635. package/src/runtime/routes/inbound-stages/verification-intercept.ts +13 -14
  636. package/src/runtime/routes/integrations/slack/channel.ts +72 -0
  637. package/src/runtime/routes/{slack-share-routes.ts → integrations/slack/share.ts} +9 -9
  638. package/src/runtime/routes/integrations/telegram.ts +111 -0
  639. package/src/runtime/routes/integrations/twilio.ts +451 -0
  640. package/src/runtime/routes/invite-routes.ts +2 -2
  641. package/src/runtime/routes/pairing-routes.ts +1 -1
  642. package/src/runtime/routes/recording-routes.ts +332 -0
  643. package/src/{daemon/handlers/config-scheduling.ts → runtime/routes/schedule-routes.ts} +91 -106
  644. package/src/runtime/routes/session-management-routes.ts +167 -0
  645. package/src/runtime/routes/session-query-routes.ts +204 -0
  646. package/src/runtime/routes/settings-routes.ts +887 -0
  647. package/src/runtime/routes/skills-routes.ts +266 -0
  648. package/src/runtime/routes/subagents-routes.ts +246 -0
  649. package/src/runtime/routes/surface-action-routes.ts +100 -10
  650. package/src/runtime/routes/surface-content-routes.ts +1 -1
  651. package/src/runtime/routes/work-items-routes.ts +809 -0
  652. package/src/runtime/routes/workspace-routes.test.ts +778 -0
  653. package/src/runtime/routes/workspace-routes.ts +410 -0
  654. package/src/runtime/routes/workspace-utils.ts +88 -0
  655. package/src/runtime/telegram-streaming-delivery.test.ts +597 -0
  656. package/src/runtime/telegram-streaming-delivery.ts +380 -0
  657. package/src/runtime/tool-grant-request-helper.ts +1 -2
  658. package/src/runtime/trust-context-resolver.ts +0 -1
  659. package/src/runtime/{guardian-outbound-actions.ts → verification-outbound-actions.ts} +23 -188
  660. package/src/runtime/verification-rate-limiter.ts +2 -2
  661. package/src/runtime/{guardian-verification-templates.ts → verification-templates.ts} +2 -28
  662. package/src/schedule/integration-status.ts +2 -2
  663. package/src/schedule/schedule-store.ts +7 -9
  664. package/src/sequence/engine.ts +1 -1
  665. package/src/skills/active-skill-tools.ts +0 -8
  666. package/src/skills/clawhub.ts +1 -10
  667. package/src/skills/managed-store.ts +14 -4
  668. package/src/skills/slash-commands.ts +1 -1
  669. package/src/subagent/manager.ts +1 -1
  670. package/src/subagent/types.ts +1 -1
  671. package/src/tasks/SPEC.md +10 -10
  672. package/src/tasks/task-scheduler.ts +1 -1
  673. package/src/telegram/bot-username.ts +13 -0
  674. package/src/tools/AGENTS.md +38 -0
  675. package/src/tools/apps/executors.ts +0 -6
  676. package/src/tools/assets/materialize.ts +1 -1
  677. package/src/tools/assets/search.ts +1 -1
  678. package/src/tools/browser/browser-execution.ts +2 -2
  679. package/src/tools/browser/browser-manager.ts +88 -11
  680. package/src/tools/browser/browser-screencast.ts +1 -1
  681. package/src/tools/browser/headless-browser.ts +0 -17
  682. package/src/tools/browser/jit-auth.ts +1 -1
  683. package/src/tools/browser/recording-store.ts +19 -1
  684. package/src/tools/browser/runtime-check.ts +4 -2
  685. package/src/tools/calls/call-start.ts +3 -3
  686. package/src/tools/credentials/metadata-store.ts +0 -13
  687. package/src/tools/credentials/vault.ts +7 -31
  688. package/src/tools/document/editor-template.ts +10 -8
  689. package/src/tools/followups/followup_create.ts +0 -8
  690. package/src/tools/mcp/mcp-tool-factory.ts +1 -1
  691. package/src/tools/memory/definitions.ts +32 -10
  692. package/src/tools/memory/handlers.test.ts +573 -0
  693. package/src/tools/memory/handlers.ts +222 -65
  694. package/src/tools/memory/register.ts +53 -24
  695. package/src/tools/network/script-proxy/session-manager.ts +1 -12
  696. package/src/tools/schedule/update.ts +0 -8
  697. package/src/tools/skills/load.ts +3 -3
  698. package/src/tools/subagent/read.ts +1 -1
  699. package/src/tools/system/voice-config.ts +2 -14
  700. package/src/tools/terminal/safe-env.ts +5 -18
  701. package/src/tools/tool-approval-handler.ts +4 -4
  702. package/src/tools/tool-manifest.ts +4 -2
  703. package/src/tools/types.ts +1 -1
  704. package/src/tools/{guardian-control-plane-policy.ts → verification-control-plane-policy.ts} +37 -39
  705. package/src/twitter/platform-proxy-client.ts +408 -0
  706. package/src/usage/types.ts +21 -0
  707. package/src/util/canonicalize-identity.ts +2 -6
  708. package/src/util/errors.ts +12 -0
  709. package/src/util/platform.ts +93 -86
  710. package/src/util/pricing.ts +180 -43
  711. package/src/work-items/work-item-runner.ts +1 -1
  712. package/scripts/ipc/check-contract-inventory.ts +0 -107
  713. package/scripts/ipc/check-swift-decoder-drift.ts +0 -184
  714. package/scripts/ipc/generate-swift.ts +0 -528
  715. package/src/__tests__/__snapshots__/ipc-snapshot.test.ts.snap +0 -3043
  716. package/src/__tests__/app-migration.test.ts +0 -148
  717. package/src/__tests__/config-loader-migration.test.ts +0 -85
  718. package/src/__tests__/daemon-lifecycle.test.ts +0 -715
  719. package/src/__tests__/daemon-server-session-init.test.ts +0 -864
  720. package/src/__tests__/guardian-actions-endpoint.test.ts +0 -1452
  721. package/src/__tests__/handlers-add-trust-rule-metadata.test.ts +0 -228
  722. package/src/__tests__/handlers-cu-observation-blob.test.ts +0 -397
  723. package/src/__tests__/handlers-ipc-blob-probe.test.ts +0 -218
  724. package/src/__tests__/handlers-slack-config.test.ts +0 -140
  725. package/src/__tests__/handlers-telegram-config.test.ts +0 -1317
  726. package/src/__tests__/handlers-twitter-config.test.ts +0 -1145
  727. package/src/__tests__/home-base-bootstrap.test.ts +0 -86
  728. package/src/__tests__/ingress-reconcile.test.ts +0 -606
  729. package/src/__tests__/integrations-cli.test.ts +0 -232
  730. package/src/__tests__/ipc-blob-store.test.ts +0 -329
  731. package/src/__tests__/ipc-contract-inventory.test.ts +0 -69
  732. package/src/__tests__/ipc-contract.test.ts +0 -76
  733. package/src/__tests__/ipc-protocol.test.ts +0 -120
  734. package/src/__tests__/ipc-roundtrip.benchmark.test.ts +0 -250
  735. package/src/__tests__/ipc-snapshot.test.ts +0 -2197
  736. package/src/__tests__/ipc-validate.test.ts +0 -471
  737. package/src/__tests__/migration-cli-flows.test.ts +0 -186
  738. package/src/__tests__/migration-ordering.test.ts +0 -267
  739. package/src/__tests__/oauth-connect-handler.test.ts +0 -361
  740. package/src/__tests__/platform-move-helper.test.ts +0 -108
  741. package/src/__tests__/platform-socket-path.test.ts +0 -52
  742. package/src/__tests__/platform-workspace-migration.test.ts +0 -1051
  743. package/src/__tests__/prebuilt-home-base-seed.test.ts +0 -79
  744. package/src/__tests__/recording-intent-handler.test.ts +0 -1155
  745. package/src/__tests__/script-proxy-profile-template-fallback.test.ts +0 -127
  746. package/src/__tests__/sms-messaging-provider.test.ts +0 -156
  747. package/src/__tests__/tool-permission-simulate-handler.test.ts +0 -367
  748. package/src/__tests__/twitter-auth-handler.test.ts +0 -561
  749. package/src/__tests__/twitter-cli-error-shaping.test.ts +0 -224
  750. package/src/__tests__/twitter-cli-routing.test.ts +0 -286
  751. package/src/__tests__/work-item-output.test.ts +0 -150
  752. package/src/amazon/session.ts +0 -58
  753. package/src/cli/channels.ts +0 -51
  754. package/src/cli/influencer.ts +0 -319
  755. package/src/cli/integrations.ts +0 -372
  756. package/src/cli/ipc-client.ts +0 -88
  757. package/src/cli/twitter.ts +0 -1111
  758. package/src/config/bundled-skills/configure-settings/SKILL.md +0 -86
  759. package/src/config/bundled-skills/doordash/lib/shared/ipc.ts +0 -32
  760. package/src/config/bundled-skills/sms-setup/SKILL.md +0 -210
  761. package/src/config/core-schema.ts +0 -434
  762. package/src/config/memory-schema.ts +0 -617
  763. package/src/daemon/auth-manager.ts +0 -106
  764. package/src/daemon/handlers/apps.ts +0 -783
  765. package/src/daemon/handlers/avatar.ts +0 -73
  766. package/src/daemon/handlers/browser.ts +0 -3
  767. package/src/daemon/handlers/computer-use.ts +0 -231
  768. package/src/daemon/handlers/config-dispatch.ts +0 -29
  769. package/src/daemon/handlers/config-heartbeat.ts +0 -299
  770. package/src/daemon/handlers/config-inbox.ts +0 -457
  771. package/src/daemon/handlers/config-integrations.ts +0 -409
  772. package/src/daemon/handlers/config-platform.ts +0 -77
  773. package/src/daemon/handlers/config-slack.ts +0 -41
  774. package/src/daemon/handlers/config-tools.ts +0 -226
  775. package/src/daemon/handlers/config-trust.ts +0 -135
  776. package/src/daemon/handlers/config.ts +0 -64
  777. package/src/daemon/handlers/contacts.ts +0 -193
  778. package/src/daemon/handlers/diagnostics.ts +0 -382
  779. package/src/daemon/handlers/documents.ts +0 -188
  780. package/src/daemon/handlers/guardian-actions.ts +0 -82
  781. package/src/daemon/handlers/home-base.ts +0 -82
  782. package/src/daemon/handlers/index.ts +0 -222
  783. package/src/daemon/handlers/misc.ts +0 -1139
  784. package/src/daemon/handlers/navigate-settings.ts +0 -29
  785. package/src/daemon/handlers/oauth-connect.ts +0 -202
  786. package/src/daemon/handlers/open-bundle-handler.ts +0 -88
  787. package/src/daemon/handlers/publish.ts +0 -176
  788. package/src/daemon/handlers/signing.ts +0 -56
  789. package/src/daemon/handlers/subagents.ts +0 -286
  790. package/src/daemon/handlers/twitter-auth.ts +0 -220
  791. package/src/daemon/handlers/work-items.ts +0 -796
  792. package/src/daemon/handlers/workspace-files.ts +0 -84
  793. package/src/daemon/handlers.ts +0 -16
  794. package/src/daemon/ipc-blob-store.ts +0 -246
  795. package/src/daemon/ipc-contract-inventory.json +0 -348
  796. package/src/daemon/ipc-contract-inventory.ts +0 -202
  797. package/src/daemon/ipc-handler.ts +0 -120
  798. package/src/daemon/ipc-protocol.ts +0 -85
  799. package/src/daemon/ipc-validate.ts +0 -254
  800. package/src/home-base/app-link-store.ts +0 -78
  801. package/src/home-base/bootstrap.ts +0 -74
  802. package/src/home-base/prebuilt/brain-graph.html +0 -1483
  803. package/src/home-base/prebuilt/index.html +0 -702
  804. package/src/home-base/prebuilt/seed-metadata.json +0 -21
  805. package/src/home-base/prebuilt/seed.ts +0 -122
  806. package/src/home-base/prebuilt-home-base-updater.ts +0 -36
  807. package/src/memory/app-migration.ts +0 -114
  808. package/src/memory/channel-delivery-store.ts +0 -40
  809. package/src/memory/channel-guardian-store.ts +0 -83
  810. package/src/memory/conversation-store.ts +0 -102
  811. package/src/memory/schema-migration.ts +0 -38
  812. package/src/messaging/providers/sms/adapter.ts +0 -232
  813. package/src/messaging/providers/sms/client.ts +0 -93
  814. package/src/messaging/providers/sms/types.ts +0 -7
  815. package/src/migrations/config-merge.ts +0 -62
  816. package/src/migrations/data-layout.ts +0 -89
  817. package/src/migrations/data-merge.ts +0 -44
  818. package/src/migrations/hooks-merge.ts +0 -118
  819. package/src/migrations/index.ts +0 -6
  820. package/src/migrations/log.ts +0 -28
  821. package/src/migrations/skills-merge.ts +0 -44
  822. package/src/migrations/workspace-layout.ts +0 -94
  823. package/src/notifications/adapters/sms.ts +0 -94
  824. package/src/runtime/channel-approval-parser.ts +0 -123
  825. package/src/runtime/channel-invite-transports/sms.ts +0 -53
  826. package/src/runtime/routes/approval-strategies/guardian-legacy-fallback-strategy.ts +0 -82
  827. package/src/runtime/routes/integration-routes.ts +0 -381
  828. package/src/runtime/routes/twilio-routes.ts +0 -1251
  829. package/src/twitter/client.ts +0 -979
  830. package/src/twitter/router.ts +0 -131
  831. package/src/twitter/session.ts +0 -54
  832. package/src/util/cookie-session.ts +0 -114
  833. package/src/watcher/providers/slack.ts +0 -282
  834. /package/src/{amazon → cli/commands/amazon}/cart.ts +0 -0
  835. /package/src/{amazon → cli/commands/amazon}/checkout.ts +0 -0
  836. /package/src/{amazon → cli/commands/amazon}/product-details.ts +0 -0
  837. /package/src/{amazon → cli/commands/amazon}/search.ts +0 -0
  838. /package/src/config/{calls-schema.ts → schemas/calls.ts} +0 -0
  839. /package/src/config/{elevenlabs-schema.ts → schemas/elevenlabs.ts} +0 -0
  840. /package/src/config/{mcp-schema.ts → schemas/mcp.ts} +0 -0
  841. /package/src/config/{notifications-schema.ts → schemas/notifications.ts} +0 -0
  842. /package/src/config/{sandbox-schema.ts → schemas/sandbox.ts} +0 -0
  843. /package/src/config/{skills-schema.ts → schemas/skills.ts} +0 -0
  844. /package/src/daemon/{ipc-contract → message-types}/browser.ts +0 -0
  845. /package/src/daemon/{ipc-contract → message-types}/contacts.ts +0 -0
  846. /package/src/daemon/{ipc-contract → message-types}/documents.ts +0 -0
  847. /package/src/daemon/{ipc-contract → message-types}/guardian-actions.ts +0 -0
  848. /package/src/daemon/{ipc-contract → message-types}/inbox.ts +0 -0
  849. /package/src/daemon/{ipc-contract → message-types}/messages.ts +0 -0
  850. /package/src/daemon/{ipc-contract → message-types}/pairing.ts +0 -0
  851. /package/src/daemon/{ipc-contract → message-types}/schedules.ts +0 -0
  852. /package/src/daemon/{ipc-contract → message-types}/settings.ts +0 -0
  853. /package/src/daemon/{ipc-contract → message-types}/skills.ts +0 -0
  854. /package/src/daemon/{ipc-contract → message-types}/subagents.ts +0 -0
  855. /package/src/daemon/{ipc-contract → message-types}/trust.ts +0 -0
  856. /package/src/daemon/{ipc-contract → message-types}/work-items.ts +0 -0
  857. /package/src/{cli/email-guardrails.ts → email/guardrails.ts} +0 -0
  858. /package/src/{config → prompts}/__tests__/build-cli-reference-section.test.ts +0 -0
  859. /package/src/{config → prompts}/templates/IDENTITY.md +0 -0
  860. /package/src/{config → prompts}/templates/SOUL.md +0 -0
  861. /package/src/{config → prompts}/templates/UPDATES.md +0 -0
  862. /package/src/{config → prompts}/templates/USER.md +0 -0
  863. /package/src/{config → prompts}/update-bulletin-format.ts +0 -0
  864. /package/src/{config → prompts}/update-bulletin-state.ts +0 -0
  865. /package/src/{config → prompts}/update-bulletin-template-path.ts +0 -0
  866. /package/src/{config → prompts}/update-bulletin.ts +0 -0
  867. /package/src/{config → prompts}/user-reference.ts +0 -0
@@ -17,8 +17,6 @@ import {
17
17
  validateEnv,
18
18
  } from "../config/env.js";
19
19
  import { loadConfig } from "../config/loader.js";
20
- import { ensurePromptFiles } from "../config/system-prompt.js";
21
- import { syncUpdateBulletinOnStartup } from "../config/update-bulletin.js";
22
20
  import { HeartbeatService } from "../heartbeat/heartbeat-service.js";
23
21
  import { getHookManager } from "../hooks/manager.js";
24
22
  import { installTemplates } from "../hooks/templates.js";
@@ -26,19 +24,25 @@ import { closeSentry, initSentry } from "../instrument.js";
26
24
  import { initLogfire } from "../logfire.js";
27
25
  import { getMcpServerManager } from "../mcp/manager.js";
28
26
  import * as attachmentsStore from "../memory/attachments-store.js";
29
- import * as conversationStore from "../memory/conversation-store.js";
27
+ import {
28
+ deleteMessageById,
29
+ getConversationThreadType,
30
+ getMessages,
31
+ } from "../memory/conversation-crud.js";
30
32
  import { initializeDb } from "../memory/db.js";
31
33
  import { startMemoryJobsWorker } from "../memory/jobs-worker.js";
32
34
  import { initQdrantClient } from "../memory/qdrant-client.js";
33
35
  import { QdrantManager } from "../memory/qdrant-manager.js";
34
36
  import { rotateToolInvocations } from "../memory/tool-usage-store.js";
35
- import { migrateToDataLayout } from "../migrations/data-layout.js";
36
- import { migrateToWorkspaceLayout } from "../migrations/workspace-layout.js";
37
37
  import {
38
38
  emitNotificationSignal,
39
39
  registerBroadcastFn,
40
40
  } from "../notifications/emit-signal.js";
41
+ import { ensurePromptFiles } from "../prompts/system-prompt.js";
42
+ import { syncUpdateBulletinOnStartup } from "../prompts/update-bulletin.js";
43
+ import { buildAssistantEvent } from "../runtime/assistant-event.js";
41
44
  import { assistantEventHub } from "../runtime/assistant-event-hub.js";
45
+ import { DAEMON_INTERNAL_ASSISTANT_ID } from "../runtime/assistant-scope.js";
42
46
  import {
43
47
  initAuthSigningKey,
44
48
  loadOrCreateSigningKey,
@@ -48,13 +52,12 @@ import {
48
52
  import { ensureVellumGuardianBinding } from "../runtime/guardian-vellum-migration.js";
49
53
  import { RuntimeHttpServer } from "../runtime/http-server.js";
50
54
  import { startScheduler } from "../schedule/scheduler.js";
55
+ import { watchSessions } from "../tools/watch/watch-state.js";
51
56
  import { getLogger, initLogger } from "../util/logger.js";
52
57
  import {
53
58
  ensureDataDir,
54
59
  getInterfacesDir,
55
60
  getRootDir,
56
- getSocketPath,
57
- removeSocketFile,
58
61
  } from "../util/platform.js";
59
62
  import {
60
63
  listWorkItems,
@@ -65,10 +68,6 @@ import {
65
68
  createApprovalConversationGenerator,
66
69
  createApprovalCopyGenerator,
67
70
  } from "./approval-generators.js";
68
- import {
69
- hasNoAuthOverride,
70
- hasUngatedNoAuthOverride,
71
- } from "./connection-policy.js";
72
71
  import {
73
72
  cleanupPidFile,
74
73
  cleanupPidFileIfOwner,
@@ -79,17 +78,30 @@ import {
79
78
  createGuardianFollowUpConversationGenerator,
80
79
  } from "./guardian-action-generators.js";
81
80
  import { initPairingHandlers } from "./handlers/pairing.js";
81
+ import {
82
+ cancelGeneration,
83
+ clearAllSessions,
84
+ regenerateResponse,
85
+ renameSession,
86
+ switchSession,
87
+ undoLastMessage,
88
+ } from "./handlers/sessions.js";
82
89
  import { installCliLaunchers } from "./install-cli-launchers.js";
83
- import type { ServerMessage } from "./ipc-protocol.js";
90
+ import type { ServerMessage } from "./message-protocol.js";
84
91
  import {
85
92
  initializeProvidersAndTools,
86
93
  registerMessagingProviders,
87
94
  registerWatcherProviders,
88
95
  } from "./providers-setup.js";
96
+ import {
97
+ handleRideShotgunStart,
98
+ handleRideShotgunStop,
99
+ } from "./ride-shotgun-handler.js";
89
100
  import { seedInterfaceFiles } from "./seed-files.js";
90
101
  import { DaemonServer } from "./server.js";
91
102
  import { initSlashPairingContext } from "./session-slash.js";
92
103
  import { installShutdownHandlers } from "./shutdown-handlers.js";
104
+ import { handleWatchObservation } from "./watch-handler.js";
93
105
 
94
106
  // Re-export public API so existing consumers don't need to change imports
95
107
  export type { StopResult } from "./daemon-control.js";
@@ -113,21 +125,6 @@ export async function runDaemon(): Promise<void> {
113
125
  loadDotEnv();
114
126
  validateEnv();
115
127
 
116
- if (hasUngatedNoAuthOverride()) {
117
- log.warn(
118
- "VELLUM_DAEMON_NOAUTH is set but VELLUM_UNSAFE_AUTH_BYPASS=1 is not — auth bypass is IGNORED and authentication remains enabled. Set VELLUM_UNSAFE_AUTH_BYPASS=1 to confirm the bypass.",
119
- );
120
- } else if (hasNoAuthOverride()) {
121
- log.warn(
122
- "VELLUM_DAEMON_NOAUTH is set — IPC authentication is DISABLED. This should only be used for development or SSH-forwarded sockets. Do not use in production.",
123
- );
124
- }
125
-
126
- // Track whether the IPC socket has been created so we can clean it up
127
- // if init crashes after the socket is bound but before shutdown handlers
128
- // are installed.
129
- let socketCreated = false;
130
-
131
128
  try {
132
129
  // Initialize crash reporting eagerly so early startup failures are
133
130
  // captured. After config loads we check the opt-out flag and call
@@ -136,11 +133,6 @@ export async function runDaemon(): Promise<void> {
136
133
 
137
134
  await initLogfire();
138
135
 
139
- // Migration order matters: first move legacy flat files into the data dir
140
- // structure, then relocate the data dir into the active workspace, and
141
- // finally create any directories that don't yet exist.
142
- migrateToDataLayout();
143
- migrateToWorkspaceLayout();
144
136
  ensureDataDir();
145
137
 
146
138
  // Load (or generate + persist) the auth signing key so tokens survive
@@ -178,7 +170,7 @@ export async function runDaemon(): Promise<void> {
178
170
 
179
171
  // Backfill vellum guardian binding for existing installations
180
172
  try {
181
- ensureVellumGuardianBinding("self");
173
+ ensureVellumGuardianBinding(DAEMON_INTERNAL_ASSISTANT_ID);
182
174
  } catch (err) {
183
175
  log.warn(
184
176
  { err },
@@ -241,13 +233,11 @@ export async function runDaemon(): Promise<void> {
241
233
 
242
234
  await initializeProvidersAndTools(config);
243
235
 
244
- // Start the IPC socket BEFORE Qdrant so that clients can connect
245
- // immediately. Qdrant startup can take 30+ seconds (binary download,
246
- // /readyz polling) which previously blocked the socket from appearing.
247
- log.info("Daemon startup: starting DaemonServer (IPC socket)");
236
+ // Start the DaemonServer (session manager) before Qdrant so HTTP
237
+ // routes can begin accepting requests while Qdrant initializes.
238
+ log.info("Daemon startup: starting DaemonServer");
248
239
  const server = new DaemonServer();
249
240
  await server.start();
250
- socketCreated = true;
251
241
  log.info("Daemon startup: DaemonServer started");
252
242
 
253
243
  // Initialize Qdrant vector store — non-fatal so the daemon stays up without it
@@ -283,8 +273,8 @@ export async function runDaemon(): Promise<void> {
283
273
  registerWatcherProviders();
284
274
  registerMessagingProviders();
285
275
 
286
- // Register the IPC broadcast function for the notification signal pipeline's
287
- // macOS adapter so it can deliver notification_intent messages to desktop clients.
276
+ // Register the broadcast function for the notification signal pipeline's
277
+ // macOS adapter so it can deliver notification_intent messages to clients.
288
278
  registerBroadcastFn((msg) => server.broadcast(msg));
289
279
 
290
280
  const scheduler = startScheduler(
@@ -437,6 +427,126 @@ export async function runDaemon(): Promise<void> {
437
427
  })),
438
428
  },
439
429
  findSession: (sessionId) => server.findSession(sessionId),
430
+ findSessionBySurfaceId: (surfaceId) =>
431
+ server.findSessionBySurfaceId(surfaceId),
432
+ getSkillContext: () => server.getSkillContext(),
433
+ getModelSetContext: () => server.getHandlerContext(),
434
+ sessionManagementDeps: {
435
+ switchSession: (sessionId) =>
436
+ switchSession(sessionId, server.getHandlerContext()),
437
+ renameSession: (sessionId, name) => renameSession(sessionId, name),
438
+ clearAllSessions: () => clearAllSessions(server.getHandlerContext()),
439
+ cancelGeneration: (sessionId) =>
440
+ cancelGeneration(sessionId, server.getHandlerContext()),
441
+ undoLastMessage: (sessionId) =>
442
+ undoLastMessage(sessionId, server.getHandlerContext()),
443
+ regenerateResponse: (sessionId) => {
444
+ let hubChain: Promise<void> = Promise.resolve();
445
+ const sendEvent = (event: ServerMessage) => {
446
+ const ae = buildAssistantEvent(
447
+ DAEMON_INTERNAL_ASSISTANT_ID,
448
+ event,
449
+ sessionId,
450
+ );
451
+ hubChain = (async () => {
452
+ await hubChain;
453
+ try {
454
+ await assistantEventHub.publish(ae);
455
+ } catch (err) {
456
+ log.warn(
457
+ { err },
458
+ "assistant-events hub subscriber threw during regenerate",
459
+ );
460
+ }
461
+ })();
462
+ };
463
+ return regenerateResponse(
464
+ sessionId,
465
+ server.getHandlerContext(),
466
+ sendEvent,
467
+ );
468
+ },
469
+ },
470
+ getComputerUseDeps: () => {
471
+ const ctx = server.getHandlerContext();
472
+ return {
473
+ cuSessions: ctx.cuSessions,
474
+ sharedRequestTimestamps: ctx.sharedRequestTimestamps,
475
+ cuObservationParseSequence: ctx.cuObservationParseSequence,
476
+ handleRideShotgunStart: async (params) => {
477
+ // The handler generates its own watchId/sessionId and
478
+ // sends them via ctx.send as a watch_started message.
479
+ // We intercept send to capture the IDs before they broadcast.
480
+ let capturedWatchId = "";
481
+ let capturedSessionId = "";
482
+ const interceptCtx = {
483
+ ...ctx,
484
+ send: (msg: ServerMessage) => {
485
+ if (
486
+ "type" in msg &&
487
+ msg.type === "watch_started" &&
488
+ "watchId" in msg &&
489
+ "sessionId" in msg
490
+ ) {
491
+ capturedWatchId = (msg as { watchId: string }).watchId;
492
+ capturedSessionId = (msg as { sessionId: string }).sessionId;
493
+ }
494
+ ctx.send(msg);
495
+ },
496
+ };
497
+ await handleRideShotgunStart(
498
+ {
499
+ type: "ride_shotgun_start",
500
+ durationSeconds: params.durationSeconds,
501
+ intervalSeconds: params.intervalSeconds,
502
+ mode: params.mode,
503
+ targetDomain: params.targetDomain,
504
+ navigateDomain: params.navigateDomain,
505
+ autoNavigate: params.autoNavigate,
506
+ },
507
+ interceptCtx,
508
+ );
509
+ return { watchId: capturedWatchId, sessionId: capturedSessionId };
510
+ },
511
+ handleRideShotgunStop: async (watchId) => {
512
+ await handleRideShotgunStop(
513
+ { type: "ride_shotgun_stop", watchId },
514
+ ctx,
515
+ );
516
+ },
517
+ getRideShotgunStatus: (watchId) => {
518
+ const session = watchSessions.get(watchId);
519
+ if (!session) return undefined;
520
+ return {
521
+ status: session.status,
522
+ sessionId: session.sessionId,
523
+ recordingId: session.recordingId,
524
+ savedRecordingPath: session.savedRecordingPath,
525
+ bootstrapFailureReason: session.bootstrapFailureReason,
526
+ };
527
+ },
528
+ handleWatchObservation: async (params) => {
529
+ await handleWatchObservation(
530
+ {
531
+ type: "watch_observation",
532
+ watchId: params.watchId,
533
+ sessionId: params.sessionId,
534
+ ocrText: params.ocrText,
535
+ appName: params.appName,
536
+ windowTitle: params.windowTitle,
537
+ bundleIdentifier: params.bundleIdentifier,
538
+ timestamp: params.timestamp,
539
+ captureIndex: params.captureIndex,
540
+ totalExpected: params.totalExpected,
541
+ },
542
+ ctx,
543
+ );
544
+ },
545
+ };
546
+ },
547
+ getRecordingDeps: () => ({
548
+ getHandlerContext: () => server.getHandlerContext(),
549
+ }),
440
550
  });
441
551
 
442
552
  // Inject voice bridge deps BEFORE attempting to start the HTTP server.
@@ -452,8 +562,7 @@ export async function runDaemon(): Promise<void> {
452
562
  data: a.dataBase64,
453
563
  })),
454
564
  deriveDefaultStrictSideEffects: (conversationId) => {
455
- const threadType =
456
- conversationStore.getConversationThreadType(conversationId);
565
+ const threadType = getConversationThreadType(conversationId);
457
566
  return threadType === "private";
458
567
  },
459
568
  });
@@ -490,13 +599,13 @@ export async function runDaemon(): Promise<void> {
490
599
  // messages array during runAgentLoop.
491
600
  const rollback = async (extraMessageIds?: string[]) => {
492
601
  try {
493
- conversationStore.deleteMessageById(messageId);
602
+ deleteMessageById(messageId);
494
603
  } catch {
495
604
  /* best effort */
496
605
  }
497
606
  for (const id of extraMessageIds ?? []) {
498
607
  try {
499
- conversationStore.deleteMessageById(id);
608
+ deleteMessageById(id);
500
609
  } catch {
501
610
  /* best effort */
502
611
  }
@@ -523,7 +632,7 @@ export async function runDaemon(): Promise<void> {
523
632
  // improvement could tag messages with a per-run correlation
524
633
  // ID so rollback only targets its own output.
525
634
  const preRunMessageIds = new Set(
526
- conversationStore.getMessages(conversationId).map((m) => m.id),
635
+ getMessages(conversationId).map((m) => m.id),
527
636
  );
528
637
 
529
638
  let agentLoopError: string | undefined;
@@ -553,8 +662,7 @@ export async function runDaemon(): Promise<void> {
553
662
  // the pre-run snapshot. This captures all messages added to the
554
663
  // conversation during the loop window, which may include messages
555
664
  // from concurrent pointer events (see over-capture caveat above).
556
- const postRunMessages =
557
- conversationStore.getMessages(conversationId);
665
+ const postRunMessages = getMessages(conversationId);
558
666
  const createdMessageIds = postRunMessages
559
667
  .filter((m) => !preRunMessageIds.has(m.id) && m.id !== messageId)
560
668
  .map((m) => m.id);
@@ -621,7 +729,6 @@ export async function runDaemon(): Promise<void> {
621
729
 
622
730
  void hookManager.trigger("daemon-start", {
623
731
  pid: process.pid,
624
- socketPath: getSocketPath(),
625
732
  });
626
733
 
627
734
  // Download embedding runtime in background (non-blocking).
@@ -697,13 +804,6 @@ export async function runDaemon(): Promise<void> {
697
804
  } catch (err) {
698
805
  log.error({ err }, "Daemon startup failed — cleaning up");
699
806
  cleanupPidFileIfOwner(process.pid);
700
- if (socketCreated) {
701
- try {
702
- removeSocketFile(getSocketPath());
703
- } catch {
704
- // Best-effort socket cleanup
705
- }
706
- }
707
807
  throw err;
708
808
  }
709
809
  }
@@ -1,128 +1,128 @@
1
1
  /**
2
- * IPC Contract -- barrel re-export.
2
+ * Message Protocol -- message types and serialization.
3
3
  *
4
- * All message types are defined in domain files under ./ipc-contract/.
4
+ * All message types are defined in domain files under ./message-types/.
5
5
  * Each domain file exports `_<Domain>ClientMessages` and/or
6
6
  * `_<Domain>ServerMessages` type aliases. This file composes those
7
7
  * into the aggregate ClientMessage and ServerMessage unions.
8
8
  *
9
- * To add a new IPC message type:
9
+ * To add a new message type:
10
10
  * 1. Define its interface in the appropriate domain file.
11
11
  * 2. Add it to that file's _<Domain>ClientMessages or _<Domain>ServerMessages.
12
12
  * No changes needed here unless you're adding an entirely new domain file.
13
13
  */
14
14
 
15
15
  // Re-export domain modules (all individual types remain importable)
16
- export * from "./ipc-contract/apps.js";
17
- export * from "./ipc-contract/browser.js";
18
- export * from "./ipc-contract/computer-use.js";
19
- export * from "./ipc-contract/contacts.js";
20
- export * from "./ipc-contract/diagnostics.js";
21
- export * from "./ipc-contract/documents.js";
22
- export * from "./ipc-contract/guardian-actions.js";
23
- export * from "./ipc-contract/inbox.js";
24
- export * from "./ipc-contract/integrations.js";
25
- export * from "./ipc-contract/memory.js";
26
- export * from "./ipc-contract/messages.js";
27
- export * from "./ipc-contract/notifications.js";
28
- export * from "./ipc-contract/pairing.js";
29
- export * from "./ipc-contract/schedules.js";
30
- export * from "./ipc-contract/sessions.js";
31
- export * from "./ipc-contract/settings.js";
32
- export * from "./ipc-contract/shared.js";
33
- export * from "./ipc-contract/skills.js";
34
- export * from "./ipc-contract/subagents.js";
35
- export * from "./ipc-contract/surfaces.js";
36
- export * from "./ipc-contract/trust.js";
37
- export * from "./ipc-contract/work-items.js";
38
- export * from "./ipc-contract/workspace.js";
16
+ export * from "./message-types/apps.js";
17
+ export * from "./message-types/browser.js";
18
+ export * from "./message-types/computer-use.js";
19
+ export * from "./message-types/contacts.js";
20
+ export * from "./message-types/diagnostics.js";
21
+ export * from "./message-types/documents.js";
22
+ export * from "./message-types/guardian-actions.js";
23
+ export * from "./message-types/inbox.js";
24
+ export * from "./message-types/integrations.js";
25
+ export * from "./message-types/memory.js";
26
+ export * from "./message-types/messages.js";
27
+ export * from "./message-types/notifications.js";
28
+ export * from "./message-types/pairing.js";
29
+ export * from "./message-types/schedules.js";
30
+ export * from "./message-types/sessions.js";
31
+ export * from "./message-types/settings.js";
32
+ export * from "./message-types/shared.js";
33
+ export * from "./message-types/skills.js";
34
+ export * from "./message-types/subagents.js";
35
+ export * from "./message-types/surfaces.js";
36
+ export * from "./message-types/trust.js";
37
+ export * from "./message-types/work-items.js";
38
+ export * from "./message-types/workspace.js";
39
39
 
40
40
  // Import domain-level union aliases for composition
41
41
  import type {
42
42
  _AppsClientMessages,
43
43
  _AppsServerMessages,
44
- } from "./ipc-contract/apps.js";
44
+ } from "./message-types/apps.js";
45
45
  import type {
46
46
  _BrowserClientMessages,
47
47
  _BrowserServerMessages,
48
- } from "./ipc-contract/browser.js";
48
+ } from "./message-types/browser.js";
49
49
  import type {
50
50
  _ComputerUseClientMessages,
51
51
  _ComputerUseServerMessages,
52
- } from "./ipc-contract/computer-use.js";
52
+ } from "./message-types/computer-use.js";
53
53
  import type {
54
54
  _ContactsClientMessages,
55
55
  _ContactsServerMessages,
56
- } from "./ipc-contract/contacts.js";
56
+ } from "./message-types/contacts.js";
57
57
  import type {
58
58
  _DiagnosticsClientMessages,
59
59
  _DiagnosticsServerMessages,
60
- } from "./ipc-contract/diagnostics.js";
60
+ } from "./message-types/diagnostics.js";
61
61
  import type {
62
62
  _DocumentsClientMessages,
63
63
  _DocumentsServerMessages,
64
- } from "./ipc-contract/documents.js";
64
+ } from "./message-types/documents.js";
65
65
  import type {
66
66
  _GuardianActionsClientMessages,
67
67
  _GuardianActionsServerMessages,
68
- } from "./ipc-contract/guardian-actions.js";
68
+ } from "./message-types/guardian-actions.js";
69
69
  import type {
70
70
  _InboxClientMessages,
71
71
  _InboxServerMessages,
72
- } from "./ipc-contract/inbox.js";
72
+ } from "./message-types/inbox.js";
73
73
  import type {
74
74
  _IntegrationsClientMessages,
75
75
  _IntegrationsServerMessages,
76
- } from "./ipc-contract/integrations.js";
77
- import type { _MemoryServerMessages } from "./ipc-contract/memory.js";
76
+ } from "./message-types/integrations.js";
77
+ import type { _MemoryServerMessages } from "./message-types/memory.js";
78
78
  import type {
79
79
  _MessagesClientMessages,
80
80
  _MessagesServerMessages,
81
- } from "./ipc-contract/messages.js";
81
+ } from "./message-types/messages.js";
82
82
  import type {
83
83
  _NotificationsClientMessages,
84
84
  _NotificationsServerMessages,
85
- } from "./ipc-contract/notifications.js";
85
+ } from "./message-types/notifications.js";
86
86
  import type {
87
87
  _PairingClientMessages,
88
88
  _PairingServerMessages,
89
- } from "./ipc-contract/pairing.js";
89
+ } from "./message-types/pairing.js";
90
90
  import type {
91
91
  _SchedulesClientMessages,
92
92
  _SchedulesServerMessages,
93
- } from "./ipc-contract/schedules.js";
93
+ } from "./message-types/schedules.js";
94
94
  import type {
95
95
  _SessionsClientMessages,
96
96
  _SessionsServerMessages,
97
- } from "./ipc-contract/sessions.js";
97
+ } from "./message-types/sessions.js";
98
98
  import type {
99
99
  _SettingsClientMessages,
100
100
  _SettingsServerMessages,
101
- } from "./ipc-contract/settings.js";
101
+ } from "./message-types/settings.js";
102
102
  import type {
103
103
  _SkillsClientMessages,
104
104
  _SkillsServerMessages,
105
- } from "./ipc-contract/skills.js";
105
+ } from "./message-types/skills.js";
106
106
  import type {
107
107
  _SubagentsClientMessages,
108
108
  _SubagentsServerMessages,
109
- } from "./ipc-contract/subagents.js";
109
+ } from "./message-types/subagents.js";
110
110
  import type {
111
111
  _SurfacesClientMessages,
112
112
  _SurfacesServerMessages,
113
- } from "./ipc-contract/surfaces.js";
113
+ } from "./message-types/surfaces.js";
114
114
  import type {
115
115
  _TrustClientMessages,
116
116
  _TrustServerMessages,
117
- } from "./ipc-contract/trust.js";
117
+ } from "./message-types/trust.js";
118
118
  import type {
119
119
  _WorkItemsClientMessages,
120
120
  _WorkItemsServerMessages,
121
- } from "./ipc-contract/work-items.js";
121
+ } from "./message-types/work-items.js";
122
122
  import type {
123
123
  _WorkspaceClientMessages,
124
124
  _WorkspaceServerMessages,
125
- } from "./ipc-contract/workspace.js";
125
+ } from "./message-types/workspace.js";
126
126
 
127
127
  // === SubagentEvent -- defined here because it references ServerMessage ===
128
128
 
@@ -187,7 +187,7 @@ export type ServerMessage =
187
187
 
188
188
  // === Contract schema ===
189
189
 
190
- export interface IPCContractSchema {
190
+ export interface ContractSchema {
191
191
  client: ClientMessage;
192
192
  server: ServerMessage;
193
193
  }
@@ -18,12 +18,6 @@ export interface AppsListRequest {
18
18
  type: "apps_list";
19
19
  }
20
20
 
21
- export interface HomeBaseGetRequest {
22
- type: "home_base_get";
23
- /** If true, daemon ensures a durable Home Base link exists before responding. */
24
- ensureLinked?: boolean;
25
- }
26
-
27
21
  export interface AppOpenRequest {
28
22
  type: "app_open_request";
29
23
  appId: string;
@@ -176,23 +170,6 @@ export interface AppsListResponse {
176
170
  }>;
177
171
  }
178
172
 
179
- export interface HomeBaseGetResponse {
180
- type: "home_base_get_response";
181
- homeBase: {
182
- appId: string;
183
- source: string;
184
- starterTasks: string[];
185
- onboardingTasks: string[];
186
- preview: {
187
- title: string;
188
- subtitle: string;
189
- description: string;
190
- icon: string;
191
- metrics: Array<{ label: string; value: string }>;
192
- };
193
- } | null;
194
- }
195
-
196
173
  export interface SharedAppsListResponse {
197
174
  type: "shared_apps_list_response";
198
175
  apps: Array<{
@@ -361,7 +338,6 @@ export interface AppFilesChanged {
361
338
  export type _AppsClientMessages =
362
339
  | AppDataRequest
363
340
  | AppsListRequest
364
- | HomeBaseGetRequest
365
341
  | AppOpenRequest
366
342
  | SharedAppsListRequest
367
343
  | AppDeleteRequest
@@ -386,7 +362,6 @@ export type _AppsClientMessages =
386
362
  export type _AppsServerMessages =
387
363
  | AppDataResponse
388
364
  | AppsListResponse
389
- | HomeBaseGetResponse
390
365
  | SharedAppsListResponse
391
366
  | AppDeleteResponse
392
367
  | SharedAppDeleteResponse
@@ -2,7 +2,6 @@
2
2
 
3
3
  import type {
4
4
  CommandIntent,
5
- IpcBlobRef,
6
5
  UserMessageAttachment,
7
6
  } from "./shared.js";
8
7
 
@@ -44,8 +43,6 @@ export interface CuObservation {
44
43
  captureDisplayId?: number;
45
44
  executionResult?: string;
46
45
  executionError?: string;
47
- axTreeBlob?: IpcBlobRef;
48
- screenshotBlob?: IpcBlobRef;
49
46
  /** Free-form guidance from the user, injected mid-turn to steer the agent. */
50
47
  userGuidance?: string;
51
48
  }
@@ -14,12 +14,6 @@ export interface EnvVarsRequest {
14
14
  type: "env_vars_request";
15
15
  }
16
16
 
17
- export interface IpcBlobProbe {
18
- type: "ipc_blob_probe";
19
- probeId: string;
20
- nonceSha256: string;
21
- }
22
-
23
17
  export interface DictationRequest {
24
18
  type: "dictation_request";
25
19
  transcription: string;
@@ -41,14 +35,6 @@ export interface EnvVarsResponse {
41
35
  vars: Record<string, string>;
42
36
  }
43
37
 
44
- export interface IpcBlobProbeResult {
45
- type: "ipc_blob_probe_result";
46
- probeId: string;
47
- ok: boolean;
48
- observedNonceSha256?: string;
49
- reason?: string;
50
- }
51
-
52
38
  export interface DictationResponse {
53
39
  type: "dictation_response";
54
40
  text: string;
@@ -63,11 +49,9 @@ export interface DictationResponse {
63
49
  export type _DiagnosticsClientMessages =
64
50
  | DiagnosticsExportRequest
65
51
  | EnvVarsRequest
66
- | IpcBlobProbe
67
52
  | DictationRequest;
68
53
 
69
54
  export type _DiagnosticsServerMessages =
70
55
  | DiagnosticsExportResponse
71
56
  | EnvVarsResponse
72
- | IpcBlobProbeResult
73
57
  | DictationResponse;