@vellumai/assistant 0.4.26 → 0.4.29

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 (1301) hide show
  1. package/.env.example +2 -2
  2. package/AGENTS.md +5 -0
  3. package/ARCHITECTURE.md +169 -69
  4. package/Dockerfile +1 -1
  5. package/README.md +111 -112
  6. package/bun.lock +0 -3
  7. package/docs/architecture/integrations.md +0 -1
  8. package/docs/architecture/memory.md +100 -63
  9. package/docs/error-handling.md +71 -0
  10. package/docs/runbook-trusted-contacts.md +10 -9
  11. package/docs/trusted-contact-access.md +48 -46
  12. package/package.json +3 -3
  13. package/scripts/compare-benchmarks.sh +12 -5
  14. package/scripts/ipc/check-swift-decoder-drift.ts +3 -0
  15. package/scripts/test.sh +89 -5
  16. package/src/__tests__/__snapshots__/ipc-snapshot.test.ts.snap +46 -0
  17. package/src/__tests__/access-request-decision.test.ts +0 -1
  18. package/src/__tests__/account-registry.test.ts +1 -1
  19. package/src/__tests__/actor-token-service.test.ts +36 -23
  20. package/src/__tests__/agent-loop-thinking.test.ts +29 -13
  21. package/src/__tests__/agent-loop.test.ts +2 -1
  22. package/src/__tests__/app-builder-tool-scripts.test.ts +1 -1
  23. package/src/__tests__/approval-routes-http.test.ts +2 -2
  24. package/src/__tests__/asset-materialize-tool.test.ts +7 -7
  25. package/src/__tests__/asset-search-tool.test.ts +7 -7
  26. package/src/__tests__/browser-fill-credential.test.ts +1 -1
  27. package/src/__tests__/bundled-skill-retrieval-guard.test.ts +217 -0
  28. package/src/__tests__/call-controller.test.ts +99 -69
  29. package/src/__tests__/call-start-guardian-guard.test.ts +1 -1
  30. package/src/__tests__/channel-approval-routes.test.ts +113 -70
  31. package/src/__tests__/channel-guardian.test.ts +173 -282
  32. package/src/__tests__/channel-readiness-service.test.ts +6 -2
  33. package/src/__tests__/channel-reply-delivery.test.ts +2 -2
  34. package/src/__tests__/channel-retry-sweep.test.ts +14 -14
  35. package/src/__tests__/checker.test.ts +12 -31
  36. package/src/__tests__/claude-code-tool-profiles.test.ts +1 -1
  37. package/src/__tests__/commit-message-enrichment-service.test.ts +67 -59
  38. package/src/__tests__/compaction.benchmark.test.ts +6 -2
  39. package/src/__tests__/computer-use-tools.test.ts +1 -1
  40. package/src/__tests__/config-schema.test.ts +66 -7
  41. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +29 -29
  42. package/src/__tests__/contacts-tools.test.ts +63 -2
  43. package/src/__tests__/context-overflow-approval.test.ts +141 -0
  44. package/src/__tests__/context-overflow-policy.test.ts +171 -0
  45. package/src/__tests__/context-overflow-reducer.test.ts +533 -0
  46. package/src/__tests__/context-window-manager.test.ts +97 -0
  47. package/src/__tests__/conversation-attention-telegram.test.ts +38 -46
  48. package/src/__tests__/conversation-pairing.test.ts +2 -2
  49. package/src/__tests__/conversation-routes-guardian-reply.test.ts +214 -10
  50. package/src/__tests__/conversation-routes.test.ts +4 -7
  51. package/src/__tests__/credential-broker-browser-fill.test.ts +13 -2
  52. package/src/__tests__/credential-security-e2e.test.ts +1 -1
  53. package/src/__tests__/credential-security-invariants.test.ts +1 -1
  54. package/src/__tests__/credential-vault-unit.test.ts +1 -1
  55. package/src/__tests__/credential-vault.test.ts +11 -8
  56. package/src/__tests__/daemon-lifecycle.test.ts +2 -2
  57. package/src/__tests__/daemon-server-session-init.test.ts +6 -6
  58. package/src/__tests__/delete-managed-skill-tool.test.ts +1 -1
  59. package/src/__tests__/deterministic-verification-control-plane.test.ts +2 -2
  60. package/src/__tests__/emit-signal-routing-intent.test.ts +4 -0
  61. package/src/__tests__/encrypted-store.test.ts +10 -7
  62. package/src/__tests__/ephemeral-permissions.test.ts +3 -3
  63. package/src/__tests__/file-edit-tool.test.ts +1 -1
  64. package/src/__tests__/file-read-tool.test.ts +1 -1
  65. package/src/__tests__/file-write-tool.test.ts +1 -1
  66. package/src/__tests__/fixtures/credential-security-fixtures.ts +87 -64
  67. package/src/__tests__/fixtures/media-reuse-fixtures.ts +37 -31
  68. package/src/__tests__/fixtures/mock-signup-server.ts +171 -115
  69. package/src/__tests__/fixtures/proxy-fixtures.ts +39 -39
  70. package/src/__tests__/followup-tools.test.ts +1 -1
  71. package/src/__tests__/gateway-only-guard.test.ts +3 -0
  72. package/src/__tests__/guardian-actions-endpoint.test.ts +543 -1
  73. package/src/__tests__/guardian-control-plane-policy.test.ts +15 -15
  74. package/src/__tests__/guardian-dispatch.test.ts +79 -1
  75. package/src/__tests__/guardian-grant-minting.test.ts +14 -14
  76. package/src/__tests__/guardian-outbound-http.test.ts +1 -2
  77. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +0 -41
  78. package/src/__tests__/guardian-routing-invariants.test.ts +2 -5
  79. package/src/__tests__/guardian-routing-state.test.ts +36 -52
  80. package/src/__tests__/guardian-verification-intent-routing.test.ts +4 -6
  81. package/src/__tests__/guardian-verify-setup-skill-regression.test.ts +2 -2
  82. package/src/__tests__/handle-user-message-secret-resume.test.ts +39 -1
  83. package/src/__tests__/handlers-cu-observation-blob.test.ts +21 -10
  84. package/src/__tests__/handlers-telegram-config.test.ts +14 -14
  85. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +23 -2
  86. package/src/__tests__/headless-browser-interactions.test.ts +1 -1
  87. package/src/__tests__/headless-browser-navigate.test.ts +1 -1
  88. package/src/__tests__/headless-browser-read-tools.test.ts +1 -1
  89. package/src/__tests__/headless-browser-snapshot.test.ts +1 -1
  90. package/src/__tests__/heartbeat-service.test.ts +45 -2
  91. package/src/__tests__/host-file-edit-tool.test.ts +1 -1
  92. package/src/__tests__/host-file-read-tool.test.ts +1 -1
  93. package/src/__tests__/host-file-write-tool.test.ts +1 -1
  94. package/src/__tests__/host-shell-tool.test.ts +1 -1
  95. package/src/__tests__/inbound-invite-redemption.test.ts +16 -18
  96. package/src/__tests__/ingress-reconcile.test.ts +2 -2
  97. package/src/__tests__/ingress-routes-http.test.ts +2 -1
  98. package/src/__tests__/integrations-cli.test.ts +256 -0
  99. package/src/__tests__/intent-routing.test.ts +4 -5
  100. package/src/__tests__/invite-redemption-service.test.ts +4 -3
  101. package/src/__tests__/ipc-snapshot.test.ts +28 -0
  102. package/src/__tests__/managed-skill-lifecycle.test.ts +1 -1
  103. package/src/__tests__/mcp-cli.test.ts +136 -57
  104. package/src/__tests__/mcp-client-auth.test.ts +95 -0
  105. package/src/__tests__/media-generate-image.test.ts +2 -2
  106. package/src/__tests__/media-reuse-story.e2e.test.ts +8 -8
  107. package/src/__tests__/memory-regressions.test.ts +6 -6
  108. package/src/__tests__/messaging-send-tool.test.ts +1 -1
  109. package/src/__tests__/migration-cross-version-compatibility.test.ts +1855 -0
  110. package/src/__tests__/migration-export-http.test.ts +540 -0
  111. package/src/__tests__/migration-import-commit-http.test.ts +823 -0
  112. package/src/__tests__/migration-import-preflight-http.test.ts +755 -0
  113. package/src/__tests__/migration-parity-persistence.test.ts +1854 -0
  114. package/src/__tests__/migration-transport.test.ts +904 -0
  115. package/src/__tests__/migration-validate-http.test.ts +698 -0
  116. package/src/__tests__/migration-wizard.test.ts +1289 -0
  117. package/src/__tests__/non-member-access-request.test.ts +17 -17
  118. package/src/__tests__/notification-decision-strategy.test.ts +110 -2
  119. package/src/__tests__/notification-deep-link.test.ts +18 -0
  120. package/src/__tests__/notification-guardian-path.test.ts +0 -1
  121. package/src/__tests__/oauth2-gateway-transport.test.ts +1 -1
  122. package/src/__tests__/playbook-execution.test.ts +1 -1
  123. package/src/__tests__/playbook-tools.test.ts +1 -1
  124. package/src/__tests__/provider-streaming.benchmark.test.ts +3 -1
  125. package/src/__tests__/proxy-approval-callback.test.ts +1 -1
  126. package/src/__tests__/qdrant-manager.test.ts +40 -11
  127. package/src/__tests__/rebind-secrets-screen.test.ts +839 -0
  128. package/src/__tests__/recording-handler.test.ts +2 -2
  129. package/src/__tests__/recording-intent-handler.test.ts +3 -3
  130. package/src/__tests__/recording-state-machine.test.ts +2 -2
  131. package/src/__tests__/relay-server.test.ts +506 -227
  132. package/src/__tests__/reminder-store.test.ts +8 -0
  133. package/src/__tests__/reminder.test.ts +8 -0
  134. package/src/__tests__/{resolve-guardian-trust-class.test.ts → resolve-trust-class.test.ts} +11 -17
  135. package/src/__tests__/scaffold-managed-skill-tool.test.ts +1 -1
  136. package/src/__tests__/schedule-tools.test.ts +1 -1
  137. package/src/__tests__/script-proxy-certs.test.ts +1 -1
  138. package/src/__tests__/script-proxy-connect-tunnel.test.ts +2 -3
  139. package/src/__tests__/script-proxy-decision-trace.test.ts +2 -2
  140. package/src/__tests__/script-proxy-http-forwarder.test.ts +1 -1
  141. package/src/__tests__/script-proxy-injection-runtime.test.ts +5 -5
  142. package/src/__tests__/script-proxy-mitm-handler.test.ts +4 -4
  143. package/src/__tests__/script-proxy-policy-runtime.test.ts +2 -2
  144. package/src/__tests__/script-proxy-policy.test.ts +2 -2
  145. package/src/__tests__/script-proxy-session-manager.test.ts +4 -7
  146. package/src/__tests__/script-proxy-session-runtime.test.ts +1 -6
  147. package/src/__tests__/secret-onetime-send.test.ts +4 -4
  148. package/src/__tests__/secret-scanner-executor.test.ts +2 -2
  149. package/src/__tests__/send-endpoint-busy.test.ts +11 -9
  150. package/src/__tests__/send-notification-tool.test.ts +2 -2
  151. package/src/__tests__/session-abort-tool-results.test.ts +17 -2
  152. package/src/__tests__/session-agent-loop.test.ts +456 -35
  153. package/src/__tests__/session-confirmation-signals.test.ts +3 -2
  154. package/src/__tests__/session-conflict-gate.test.ts +20 -3
  155. package/src/__tests__/session-init.benchmark.test.ts +2 -2
  156. package/src/__tests__/session-load-history-repair.test.ts +7 -7
  157. package/src/__tests__/session-pre-run-repair.test.ts +17 -2
  158. package/src/__tests__/session-profile-injection.test.ts +20 -3
  159. package/src/__tests__/session-provider-retry-repair.test.ts +86 -6
  160. package/src/__tests__/session-queue.test.ts +33 -18
  161. package/src/__tests__/session-runtime-assembly.test.ts +147 -1
  162. package/src/__tests__/session-runtime-workspace.test.ts +40 -0
  163. package/src/__tests__/session-slash-known.test.ts +21 -3
  164. package/src/__tests__/session-slash-queue.test.ts +17 -2
  165. package/src/__tests__/session-slash-unknown.test.ts +17 -2
  166. package/src/__tests__/session-surfaces-deselection.test.ts +208 -0
  167. package/src/__tests__/session-workspace-cache-state.test.ts +2 -2
  168. package/src/__tests__/session-workspace-injection.test.ts +17 -2
  169. package/src/__tests__/session-workspace-tool-tracking.test.ts +17 -2
  170. package/src/__tests__/shell-credential-ref.test.ts +1 -1
  171. package/src/__tests__/shell-tool-proxy-mode.test.ts +1 -1
  172. package/src/__tests__/skill-load-feature-flag.test.ts +1 -1
  173. package/src/__tests__/skill-load-tool.test.ts +1 -1
  174. package/src/__tests__/skill-script-runner-host.test.ts +1 -1
  175. package/src/__tests__/skill-script-runner-sandbox.test.ts +1 -1
  176. package/src/__tests__/skill-script-runner.test.ts +1 -1
  177. package/src/__tests__/skill-tool-factory.test.ts +1 -1
  178. package/src/__tests__/slack-skill.test.ts +3 -2
  179. package/src/__tests__/subagent-tools.test.ts +3 -3
  180. package/src/__tests__/swarm-recursion.test.ts +1 -1
  181. package/src/__tests__/swarm-session-integration.test.ts +1 -1
  182. package/src/__tests__/swarm-tool.test.ts +1 -1
  183. package/src/__tests__/task-management-tools.test.ts +1 -1
  184. package/src/__tests__/task-tools.test.ts +1 -1
  185. package/src/__tests__/terminal-tools.test.ts +1 -1
  186. package/src/__tests__/test-support/browser-skill-harness.ts +39 -27
  187. package/src/__tests__/test-support/computer-use-skill-harness.ts +14 -14
  188. package/src/__tests__/tool-approval-handler.test.ts +15 -15
  189. package/src/__tests__/tool-execution-abort-cleanup.test.ts +1 -1
  190. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +1 -1
  191. package/src/__tests__/tool-executor-lifecycle-events.test.ts +2 -2
  192. package/src/__tests__/tool-executor-shell-integration.test.ts +1 -1
  193. package/src/__tests__/tool-executor.test.ts +23 -182
  194. package/src/__tests__/tool-grant-request-escalation.test.ts +11 -11
  195. package/src/__tests__/tool-permission-simulate-handler.test.ts +4 -4
  196. package/src/__tests__/transfer-progress-screen.test.ts +1180 -0
  197. package/src/__tests__/trust-context-guards.test.ts +25 -29
  198. package/src/__tests__/trusted-contact-approval-notifier.test.ts +23 -21
  199. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +37 -40
  200. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +29 -25
  201. package/src/__tests__/trusted-contact-multichannel.test.ts +25 -24
  202. package/src/__tests__/trusted-contact-verification.test.ts +63 -77
  203. package/src/__tests__/turn-commit.test.ts +18 -18
  204. package/src/__tests__/twilio-provider.test.ts +7 -7
  205. package/src/__tests__/validation-results-screen.test.ts +1107 -0
  206. package/src/__tests__/view-image-tool.test.ts +1 -1
  207. package/src/__tests__/voice-invite-redemption.test.ts +3 -2
  208. package/src/__tests__/voice-scoped-grant-consumer.test.ts +12 -12
  209. package/src/__tests__/voice-session-bridge.test.ts +24 -24
  210. package/src/agent/attachments.ts +3 -1
  211. package/src/agent/loop.ts +13 -13
  212. package/src/agent/message-types.ts +13 -7
  213. package/src/amazon/cart.ts +59 -32
  214. package/src/amazon/checkout.ts +25 -14
  215. package/src/amazon/client.ts +68 -48
  216. package/src/amazon/product-details.ts +3 -3
  217. package/src/amazon/request-extractor.ts +46 -31
  218. package/src/amazon/search.ts +6 -4
  219. package/src/amazon/session.ts +33 -24
  220. package/src/approvals/AGENTS.md +26 -0
  221. package/src/approvals/approval-primitive.ts +87 -64
  222. package/src/approvals/guardian-decision-primitive.ts +172 -81
  223. package/src/approvals/guardian-request-resolvers.ts +262 -155
  224. package/src/autonomy/autonomy-resolver.ts +7 -5
  225. package/src/autonomy/autonomy-store.ts +34 -19
  226. package/src/autonomy/disposition-mapper.ts +5 -5
  227. package/src/autonomy/index.ts +6 -6
  228. package/src/autonomy/types.ts +7 -3
  229. package/src/browser-extension-relay/client.ts +50 -19
  230. package/src/browser-extension-relay/protocol.ts +11 -11
  231. package/src/browser-extension-relay/server.ts +45 -20
  232. package/src/bundler/app-bundler.ts +75 -50
  233. package/src/bundler/bundle-scanner.ts +145 -41
  234. package/src/bundler/bundle-signer.ts +16 -14
  235. package/src/bundler/signature-verifier.ts +36 -33
  236. package/src/calls/call-constants.ts +10 -3
  237. package/src/calls/call-controller.ts +473 -214
  238. package/src/calls/call-conversation-messages.ts +25 -15
  239. package/src/calls/call-domain.ts +401 -148
  240. package/src/calls/call-pointer-message-composer.ts +26 -21
  241. package/src/calls/call-pointer-messages.ts +52 -28
  242. package/src/calls/call-recovery.ts +53 -37
  243. package/src/calls/call-state-machine.ts +37 -7
  244. package/src/calls/call-state.ts +35 -13
  245. package/src/calls/call-store.ts +165 -77
  246. package/src/calls/elevenlabs-client.ts +39 -20
  247. package/src/calls/guardian-action-sweep.ts +42 -24
  248. package/src/calls/guardian-dispatch.ts +79 -56
  249. package/src/calls/guardian-question-copy.ts +28 -23
  250. package/src/calls/relay-server.ts +1121 -532
  251. package/src/calls/speaker-identification.ts +21 -15
  252. package/src/calls/twilio-config.ts +34 -17
  253. package/src/calls/twilio-provider.ts +108 -55
  254. package/src/calls/twilio-rest.ts +212 -100
  255. package/src/calls/twilio-routes.ts +165 -92
  256. package/src/calls/types.ts +55 -7
  257. package/src/calls/voice-quality.ts +6 -4
  258. package/src/calls/voice-session-bridge.ts +181 -133
  259. package/src/channels/config.ts +17 -13
  260. package/src/channels/types.ts +38 -10
  261. package/src/cli/amazon.ts +333 -227
  262. package/src/cli/config-commands.ts +236 -146
  263. package/src/cli/core-commands.ts +403 -329
  264. package/src/cli/email-guardrails.ts +38 -19
  265. package/src/cli/email.ts +207 -153
  266. package/src/cli/influencer.ts +58 -56
  267. package/src/cli/integrations.ts +362 -0
  268. package/src/cli/ipc-client.ts +24 -19
  269. package/src/cli/map.ts +176 -129
  270. package/src/cli/mcp.ts +260 -152
  271. package/src/cli/sequence.ts +165 -107
  272. package/src/cli/twitter.ts +302 -218
  273. package/src/cli.ts +418 -279
  274. package/src/commands/cc-command-registry.ts +52 -27
  275. package/src/config/agent-schema.ts +217 -134
  276. package/src/config/assistant-feature-flags.ts +23 -18
  277. package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +19 -0
  278. package/src/config/bundled-skills/app-builder/tools/app-create.ts +7 -4
  279. package/src/config/bundled-skills/app-builder/tools/app-delete.ts +6 -3
  280. package/src/config/bundled-skills/app-builder/tools/app-file-edit.ts +7 -4
  281. package/src/config/bundled-skills/app-builder/tools/app-file-list.ts +6 -3
  282. package/src/config/bundled-skills/app-builder/tools/app-file-read.ts +6 -3
  283. package/src/config/bundled-skills/app-builder/tools/app-file-write.ts +7 -4
  284. package/src/config/bundled-skills/app-builder/tools/app-list.ts +6 -3
  285. package/src/config/bundled-skills/app-builder/tools/app-query.ts +6 -3
  286. package/src/config/bundled-skills/app-builder/tools/app-update.ts +6 -3
  287. package/src/config/bundled-skills/browser/tools/browser-click.ts +5 -2
  288. package/src/config/bundled-skills/browser/tools/browser-close.ts +5 -2
  289. package/src/config/bundled-skills/browser/tools/browser-extract.ts +5 -2
  290. package/src/config/bundled-skills/browser/tools/browser-fill-credential.ts +5 -2
  291. package/src/config/bundled-skills/browser/tools/browser-hover.ts +5 -2
  292. package/src/config/bundled-skills/browser/tools/browser-navigate.ts +5 -2
  293. package/src/config/bundled-skills/browser/tools/browser-press-key.ts +5 -2
  294. package/src/config/bundled-skills/browser/tools/browser-screenshot.ts +5 -2
  295. package/src/config/bundled-skills/browser/tools/browser-scroll.ts +5 -2
  296. package/src/config/bundled-skills/browser/tools/browser-select-option.ts +5 -2
  297. package/src/config/bundled-skills/browser/tools/browser-snapshot.ts +5 -2
  298. package/src/config/bundled-skills/browser/tools/browser-type.ts +5 -2
  299. package/src/config/bundled-skills/browser/tools/browser-wait-for-download.ts +13 -6
  300. package/src/config/bundled-skills/browser/tools/browser-wait-for.ts +5 -2
  301. package/src/config/bundled-skills/claude-code/TOOLS.json +4 -0
  302. package/src/config/bundled-skills/claude-code/tools/claude-code.ts +5 -2
  303. package/src/config/bundled-skills/computer-use/SKILL.md +2 -2
  304. package/src/config/bundled-skills/computer-use/tools/computer-use-click.ts +6 -3
  305. package/src/config/bundled-skills/computer-use/tools/computer-use-done.ts +6 -3
  306. package/src/config/bundled-skills/computer-use/tools/computer-use-double-click.ts +10 -3
  307. package/src/config/bundled-skills/computer-use/tools/computer-use-drag.ts +6 -3
  308. package/src/config/bundled-skills/computer-use/tools/computer-use-key.ts +6 -3
  309. package/src/config/bundled-skills/computer-use/tools/computer-use-open-app.ts +6 -3
  310. package/src/config/bundled-skills/computer-use/tools/computer-use-request-control.ts +10 -3
  311. package/src/config/bundled-skills/computer-use/tools/computer-use-respond.ts +6 -3
  312. package/src/config/bundled-skills/computer-use/tools/computer-use-right-click.ts +10 -3
  313. package/src/config/bundled-skills/computer-use/tools/computer-use-run-applescript.ts +10 -3
  314. package/src/config/bundled-skills/computer-use/tools/computer-use-scroll.ts +6 -3
  315. package/src/config/bundled-skills/computer-use/tools/computer-use-type-text.ts +6 -3
  316. package/src/config/bundled-skills/computer-use/tools/computer-use-wait.ts +6 -3
  317. package/src/config/bundled-skills/configure-settings/SKILL.md +28 -14
  318. package/src/config/bundled-skills/contacts/SKILL.md +446 -15
  319. package/src/config/bundled-skills/contacts/tools/contact-merge.ts +99 -20
  320. package/src/config/bundled-skills/contacts/tools/contact-search.ts +74 -17
  321. package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +89 -26
  322. package/src/config/bundled-skills/document/tools/document-create.ts +5 -2
  323. package/src/config/bundled-skills/document/tools/document-update.ts +5 -2
  324. package/src/config/bundled-skills/doordash/doordash-cli.ts +17 -7
  325. package/src/config/bundled-skills/email-setup/SKILL.md +9 -9
  326. package/src/config/bundled-skills/followups/tools/followup-create.ts +5 -2
  327. package/src/config/bundled-skills/followups/tools/followup-list.ts +5 -2
  328. package/src/config/bundled-skills/followups/tools/followup-resolve.ts +5 -2
  329. package/src/config/bundled-skills/google-calendar/calendar-client.ts +44 -32
  330. package/src/config/bundled-skills/google-calendar/tools/calendar-check-availability.ts +11 -5
  331. package/src/config/bundled-skills/google-calendar/tools/calendar-create-event.ts +13 -7
  332. package/src/config/bundled-skills/google-calendar/tools/calendar-get-event.ts +11 -5
  333. package/src/config/bundled-skills/google-calendar/tools/calendar-list-events.ts +13 -7
  334. package/src/config/bundled-skills/google-calendar/tools/calendar-rsvp.ts +28 -12
  335. package/src/config/bundled-skills/google-calendar/tools/shared.ts +6 -4
  336. package/src/config/bundled-skills/google-calendar/types.ts +3 -3
  337. package/src/config/bundled-skills/guardian-verify-setup/SKILL.md +46 -24
  338. package/src/config/bundled-skills/image-studio/tools/media-generate-image.ts +36 -19
  339. package/src/config/bundled-skills/knowledge-graph/tools/graph-query.ts +60 -35
  340. package/src/config/bundled-skills/mcp-setup/SKILL.md +75 -0
  341. package/src/config/bundled-skills/media-processing/SKILL.md +55 -15
  342. package/src/config/bundled-skills/media-processing/TOOLS.json +20 -2
  343. package/src/config/bundled-skills/media-processing/__tests__/concurrency-pool.test.ts +12 -10
  344. package/src/config/bundled-skills/media-processing/__tests__/cost-tracker.test.ts +34 -19
  345. package/src/config/bundled-skills/media-processing/__tests__/preprocess.test.ts +82 -66
  346. package/src/config/bundled-skills/media-processing/services/audio-transcribe.ts +148 -0
  347. package/src/config/bundled-skills/media-processing/services/concurrency-pool.ts +1 -1
  348. package/src/config/bundled-skills/media-processing/services/cost-tracker.ts +8 -3
  349. package/src/config/bundled-skills/media-processing/services/gemini-map.ts +117 -53
  350. package/src/config/bundled-skills/media-processing/services/gemini-video.ts +273 -0
  351. package/src/config/bundled-skills/media-processing/services/preprocess.ts +185 -97
  352. package/src/config/bundled-skills/media-processing/services/processing-pipeline.ts +32 -27
  353. package/src/config/bundled-skills/media-processing/services/reduce.ts +101 -24
  354. package/src/config/bundled-skills/media-processing/tools/analyze-keyframes.ts +121 -55
  355. package/src/config/bundled-skills/media-processing/tools/extract-keyframes.ts +58 -24
  356. package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +177 -91
  357. package/src/config/bundled-skills/media-processing/tools/ingest-media.ts +98 -70
  358. package/src/config/bundled-skills/media-processing/tools/media-diagnostics.ts +59 -19
  359. package/src/config/bundled-skills/media-processing/tools/media-status.ts +26 -10
  360. package/src/config/bundled-skills/media-processing/tools/query-media-events.ts +29 -14
  361. package/src/config/bundled-skills/messaging/SKILL.md +7 -5
  362. package/src/config/bundled-skills/messaging/TOOLS.json +7 -7
  363. package/src/config/bundled-skills/messaging/tools/gmail-archive-by-query.ts +31 -13
  364. package/src/config/bundled-skills/messaging/tools/gmail-archive.ts +16 -10
  365. package/src/config/bundled-skills/messaging/tools/gmail-batch-label.ts +18 -9
  366. package/src/config/bundled-skills/messaging/tools/gmail-download-attachment.ts +23 -16
  367. package/src/config/bundled-skills/messaging/tools/gmail-draft.ts +28 -12
  368. package/src/config/bundled-skills/messaging/tools/gmail-filters.ts +41 -21
  369. package/src/config/bundled-skills/messaging/tools/gmail-follow-up.ts +44 -23
  370. package/src/config/bundled-skills/messaging/tools/gmail-forward.ts +73 -33
  371. package/src/config/bundled-skills/messaging/tools/gmail-label.ts +15 -9
  372. package/src/config/bundled-skills/messaging/tools/gmail-list-attachments.ts +22 -14
  373. package/src/config/bundled-skills/messaging/tools/gmail-outreach-scan.ts +99 -50
  374. package/src/config/bundled-skills/messaging/tools/gmail-send-draft.ts +14 -8
  375. package/src/config/bundled-skills/messaging/tools/gmail-send-with-attachments.ts +63 -44
  376. package/src/config/bundled-skills/messaging/tools/gmail-sender-digest.ts +90 -46
  377. package/src/config/bundled-skills/messaging/tools/gmail-summarize-thread.ts +43 -22
  378. package/src/config/bundled-skills/messaging/tools/gmail-trash.ts +15 -9
  379. package/src/config/bundled-skills/messaging/tools/gmail-triage.ts +51 -22
  380. package/src/config/bundled-skills/messaging/tools/gmail-unsubscribe.ts +62 -26
  381. package/src/config/bundled-skills/messaging/tools/gmail-vacation.ts +34 -19
  382. package/src/config/bundled-skills/messaging/tools/google-contacts.ts +32 -16
  383. package/src/config/bundled-skills/messaging/tools/messaging-analyze-activity.ts +10 -4
  384. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +91 -47
  385. package/src/config/bundled-skills/messaging/tools/messaging-archive-by-sender.ts +21 -9
  386. package/src/config/bundled-skills/messaging/tools/messaging-auth-test.ts +9 -3
  387. package/src/config/bundled-skills/messaging/tools/messaging-draft.ts +30 -17
  388. package/src/config/bundled-skills/messaging/tools/messaging-list-conversations.ts +10 -4
  389. package/src/config/bundled-skills/messaging/tools/messaging-mark-read.ts +14 -6
  390. package/src/config/bundled-skills/messaging/tools/messaging-read.ts +16 -5
  391. package/src/config/bundled-skills/messaging/tools/messaging-reply.ts +63 -36
  392. package/src/config/bundled-skills/messaging/tools/messaging-search.ts +10 -4
  393. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +30 -12
  394. package/src/config/bundled-skills/messaging/tools/messaging-sender-digest.ts +48 -29
  395. package/src/config/bundled-skills/messaging/tools/scan-result-store.ts +20 -6
  396. package/src/config/bundled-skills/messaging/tools/send-notification.ts +1 -1
  397. package/src/config/bundled-skills/messaging/tools/sequence-analytics.ts +59 -22
  398. package/src/config/bundled-skills/messaging/tools/sequence-cancel.ts +13 -7
  399. package/src/config/bundled-skills/messaging/tools/sequence-create.ts +27 -12
  400. package/src/config/bundled-skills/messaging/tools/sequence-delete.ts +14 -6
  401. package/src/config/bundled-skills/messaging/tools/sequence-enroll.ts +30 -11
  402. package/src/config/bundled-skills/messaging/tools/sequence-enrollment-list.ts +16 -8
  403. package/src/config/bundled-skills/messaging/tools/sequence-get.ts +31 -13
  404. package/src/config/bundled-skills/messaging/tools/sequence-import.ts +38 -22
  405. package/src/config/bundled-skills/messaging/tools/sequence-list.ts +16 -7
  406. package/src/config/bundled-skills/messaging/tools/sequence-pause.ts +29 -10
  407. package/src/config/bundled-skills/messaging/tools/sequence-resume.ts +16 -8
  408. package/src/config/bundled-skills/messaging/tools/sequence-update.ts +35 -16
  409. package/src/config/bundled-skills/messaging/tools/shared.ts +26 -12
  410. package/src/config/bundled-skills/notifications/tools/send-notification.ts +69 -34
  411. package/src/config/bundled-skills/notifications/tools/shared.ts +1 -1
  412. package/src/config/bundled-skills/phone-calls/SKILL.md +46 -48
  413. package/src/config/bundled-skills/phone-calls/tools/call-end.ts +1 -1
  414. package/src/config/bundled-skills/phone-calls/tools/call-start.ts +1 -1
  415. package/src/config/bundled-skills/phone-calls/tools/call-status.ts +1 -1
  416. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +91 -51
  417. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +30 -16
  418. package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +66 -27
  419. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +89 -42
  420. package/src/config/bundled-skills/public-ingress/SKILL.md +26 -19
  421. package/src/config/bundled-skills/reminder/tools/reminder-cancel.ts +5 -2
  422. package/src/config/bundled-skills/reminder/tools/reminder-create.ts +5 -2
  423. package/src/config/bundled-skills/reminder/tools/reminder-list.ts +5 -2
  424. package/src/config/bundled-skills/schedule/tools/schedule-create.ts +5 -2
  425. package/src/config/bundled-skills/schedule/tools/schedule-delete.ts +5 -2
  426. package/src/config/bundled-skills/schedule/tools/schedule-list.ts +5 -2
  427. package/src/config/bundled-skills/schedule/tools/schedule-update.ts +5 -2
  428. package/src/config/bundled-skills/screen-recording/SKILL.md +11 -3
  429. package/src/config/bundled-skills/self-upgrade/SKILL.md +9 -8
  430. package/src/config/bundled-skills/slack/TOOLS.json +33 -15
  431. package/src/config/bundled-skills/slack/tools/shared.ts +7 -5
  432. package/src/config/bundled-skills/slack/tools/slack-add-reaction.ts +11 -5
  433. package/src/config/bundled-skills/slack/tools/slack-channel-details.ts +11 -5
  434. package/src/config/bundled-skills/slack/tools/slack-configure-channels.ts +46 -16
  435. package/src/config/bundled-skills/slack/tools/slack-delete-message.ts +11 -5
  436. package/src/config/bundled-skills/slack/tools/slack-edit-message.ts +28 -0
  437. package/src/config/bundled-skills/slack/tools/slack-leave-channel.ts +12 -6
  438. package/src/config/bundled-skills/sms-setup/SKILL.md +5 -8
  439. package/src/config/bundled-skills/subagent/tools/subagent-abort.ts +5 -2
  440. package/src/config/bundled-skills/subagent/tools/subagent-message.ts +5 -2
  441. package/src/config/bundled-skills/subagent/tools/subagent-read.ts +5 -2
  442. package/src/config/bundled-skills/subagent/tools/subagent-spawn.ts +5 -2
  443. package/src/config/bundled-skills/subagent/tools/subagent-status.ts +5 -2
  444. package/src/config/bundled-skills/tasks/tools/task-delete.ts +5 -2
  445. package/src/config/bundled-skills/tasks/tools/task-list-add.ts +5 -2
  446. package/src/config/bundled-skills/tasks/tools/task-list-remove.ts +5 -2
  447. package/src/config/bundled-skills/tasks/tools/task-list-show.ts +5 -2
  448. package/src/config/bundled-skills/tasks/tools/task-list-update.ts +5 -2
  449. package/src/config/bundled-skills/tasks/tools/task-list.ts +5 -2
  450. package/src/config/bundled-skills/tasks/tools/task-queue-run.ts +5 -2
  451. package/src/config/bundled-skills/tasks/tools/task-run.ts +5 -2
  452. package/src/config/bundled-skills/tasks/tools/task-save.ts +5 -2
  453. package/src/config/bundled-skills/telegram-setup/SKILL.md +7 -8
  454. package/src/config/bundled-skills/transcribe/tools/transcribe-media.ts +232 -127
  455. package/src/config/bundled-skills/twilio-setup/SKILL.md +7 -12
  456. package/src/config/bundled-skills/twitter/SKILL.md +19 -2
  457. package/src/config/bundled-skills/voice-setup/SKILL.md +5 -5
  458. package/src/config/bundled-skills/watcher/tools/watcher-create.ts +5 -2
  459. package/src/config/bundled-skills/watcher/tools/watcher-delete.ts +5 -2
  460. package/src/config/bundled-skills/watcher/tools/watcher-digest.ts +5 -2
  461. package/src/config/bundled-skills/watcher/tools/watcher-list.ts +5 -2
  462. package/src/config/bundled-skills/watcher/tools/watcher-update.ts +5 -2
  463. package/src/config/bundled-skills/weather/tools/get-weather.ts +5 -2
  464. package/src/config/calls-schema.ts +108 -63
  465. package/src/config/computer-use-prompt.ts +7 -7
  466. package/src/config/core-schema.ts +239 -155
  467. package/src/config/defaults.ts +2 -2
  468. package/src/config/elevenlabs-schema.ts +15 -15
  469. package/src/config/env-registry.ts +33 -33
  470. package/src/config/feature-flag-registry.json +31 -7
  471. package/src/config/loader.ts +118 -58
  472. package/src/config/mcp-schema.ts +29 -15
  473. package/src/config/memory-schema.ts +434 -229
  474. package/src/config/notifications-schema.ts +4 -4
  475. package/src/config/sandbox-schema.ts +2 -2
  476. package/src/config/schema.ts +12 -2
  477. package/src/config/skill-state.ts +27 -15
  478. package/src/config/skills-schema.ts +72 -23
  479. package/src/config/skills.ts +303 -143
  480. package/src/config/system-prompt.ts +25 -6
  481. package/src/config/types.ts +1 -1
  482. package/src/config/update-bulletin-format.ts +3 -3
  483. package/src/config/update-bulletin-state.ts +15 -6
  484. package/src/config/update-bulletin-template-path.ts +8 -4
  485. package/src/config/update-bulletin.ts +33 -14
  486. package/src/config/user-reference.ts +8 -8
  487. package/src/contacts/contact-events.ts +21 -0
  488. package/src/contacts/contact-store.ts +622 -100
  489. package/src/contacts/contacts-write.ts +287 -0
  490. package/src/contacts/index.ts +13 -4
  491. package/src/contacts/startup-migration.ts +21 -0
  492. package/src/contacts/types.ts +47 -2
  493. package/src/context/token-estimator.ts +54 -31
  494. package/src/context/tool-result-truncation.ts +41 -7
  495. package/src/context/window-manager.ts +225 -120
  496. package/src/daemon/approval-generators.ts +83 -55
  497. package/src/daemon/approved-devices-store.ts +33 -20
  498. package/src/daemon/assistant-attachments.ts +134 -98
  499. package/src/daemon/auth-manager.ts +17 -15
  500. package/src/daemon/classifier.ts +117 -46
  501. package/src/daemon/computer-use-session.ts +316 -187
  502. package/src/daemon/config-watcher.ts +91 -44
  503. package/src/daemon/connection-policy.ts +18 -10
  504. package/src/daemon/context-overflow-approval.ts +48 -0
  505. package/src/daemon/context-overflow-policy.ts +50 -0
  506. package/src/daemon/context-overflow-reducer.ts +300 -0
  507. package/src/daemon/daemon-control.ts +79 -51
  508. package/src/daemon/date-context.ts +119 -69
  509. package/src/daemon/dictation-profile-store.ts +94 -48
  510. package/src/daemon/dictation-text-processing.ts +33 -12
  511. package/src/daemon/doordash-steps.ts +92 -49
  512. package/src/daemon/guardian-action-generators.ts +62 -46
  513. package/src/daemon/guardian-verification-intent.ts +31 -18
  514. package/src/daemon/handlers/apps.ts +257 -111
  515. package/src/daemon/handlers/avatar.ts +20 -15
  516. package/src/daemon/handlers/computer-use.ts +82 -39
  517. package/src/daemon/handlers/config-channels.ts +146 -69
  518. package/src/daemon/handlers/config-heartbeat.ts +114 -59
  519. package/src/daemon/handlers/config-inbox.ts +277 -106
  520. package/src/daemon/handlers/config-ingress.ts +127 -55
  521. package/src/daemon/handlers/config-integrations.ts +145 -88
  522. package/src/daemon/handlers/config-model.ts +58 -22
  523. package/src/daemon/handlers/config-platform.ts +40 -16
  524. package/src/daemon/handlers/config-scheduling.ts +109 -48
  525. package/src/daemon/handlers/config-slack-channel.ts +67 -35
  526. package/src/daemon/handlers/config-slack.ts +21 -20
  527. package/src/daemon/handlers/config-telegram.ts +100 -70
  528. package/src/daemon/handlers/config-tools.ts +103 -55
  529. package/src/daemon/handlers/config-trust.ts +50 -20
  530. package/src/daemon/handlers/config.ts +72 -24
  531. package/src/daemon/handlers/contacts.ts +163 -0
  532. package/src/daemon/handlers/diagnostics.ts +90 -48
  533. package/src/daemon/handlers/documents.ts +74 -46
  534. package/src/daemon/handlers/guardian-actions.ts +118 -71
  535. package/src/daemon/handlers/home-base.ts +19 -16
  536. package/src/daemon/handlers/identity.ts +65 -45
  537. package/src/daemon/handlers/index.ts +78 -54
  538. package/src/daemon/handlers/misc.ts +664 -234
  539. package/src/daemon/handlers/navigate-settings.ts +14 -11
  540. package/src/daemon/handlers/oauth-connect.ts +48 -35
  541. package/src/daemon/handlers/open-bundle-handler.ts +31 -24
  542. package/src/daemon/handlers/pairing.ts +51 -25
  543. package/src/daemon/handlers/publish.ts +55 -33
  544. package/src/daemon/handlers/recording.ts +378 -162
  545. package/src/daemon/handlers/sessions.ts +923 -423
  546. package/src/daemon/handlers/shared.ts +202 -117
  547. package/src/daemon/handlers/signing.ts +25 -6
  548. package/src/daemon/handlers/subagents.ts +117 -56
  549. package/src/daemon/handlers/twitter-auth.ts +70 -49
  550. package/src/daemon/handlers/work-items.ts +264 -112
  551. package/src/daemon/handlers/workspace-files.ts +27 -20
  552. package/src/daemon/handlers.ts +2 -2
  553. package/src/daemon/history-repair.ts +16 -15
  554. package/src/daemon/identity-helpers.ts +4 -4
  555. package/src/daemon/install-cli-launchers.ts +33 -22
  556. package/src/daemon/ipc-blob-store.ts +38 -24
  557. package/src/daemon/ipc-contract/apps.ts +61 -49
  558. package/src/daemon/ipc-contract/computer-use.ts +47 -37
  559. package/src/daemon/ipc-contract/contacts.ts +69 -0
  560. package/src/daemon/ipc-contract/diagnostics.ts +14 -14
  561. package/src/daemon/ipc-contract/documents.ts +8 -8
  562. package/src/daemon/ipc-contract/guardian-actions.ts +4 -4
  563. package/src/daemon/ipc-contract/inbox.ts +16 -16
  564. package/src/daemon/ipc-contract/integrations.ts +57 -44
  565. package/src/daemon/ipc-contract/memory.ts +3 -5
  566. package/src/daemon/ipc-contract/messages.ts +95 -69
  567. package/src/daemon/ipc-contract/notifications.ts +10 -6
  568. package/src/daemon/ipc-contract/pairing.ts +8 -8
  569. package/src/daemon/ipc-contract/schedules.ts +20 -20
  570. package/src/daemon/ipc-contract/sessions.ts +88 -57
  571. package/src/daemon/ipc-contract/settings.ts +12 -7
  572. package/src/daemon/ipc-contract/shared.ts +9 -7
  573. package/src/daemon/ipc-contract/skills.ts +46 -26
  574. package/src/daemon/ipc-contract/subagents.ts +9 -9
  575. package/src/daemon/ipc-contract/trust.ts +11 -11
  576. package/src/daemon/ipc-contract/work-items.ts +33 -28
  577. package/src/daemon/ipc-contract/workspace.ts +28 -21
  578. package/src/daemon/ipc-contract-inventory.json +8 -0
  579. package/src/daemon/ipc-contract-inventory.ts +29 -26
  580. package/src/daemon/ipc-contract.ts +111 -44
  581. package/src/daemon/ipc-handler.ts +27 -19
  582. package/src/daemon/ipc-protocol.ts +22 -12
  583. package/src/daemon/ipc-validate.ts +91 -46
  584. package/src/daemon/lifecycle.ts +25 -1
  585. package/src/daemon/main.ts +10 -8
  586. package/src/daemon/media-visibility-policy.ts +3 -1
  587. package/src/daemon/pairing-store.ts +72 -40
  588. package/src/daemon/providers-setup.ts +35 -25
  589. package/src/daemon/recording-executor.ts +37 -30
  590. package/src/daemon/recording-intent-fallback.ts +58 -28
  591. package/src/daemon/recording-intent.ts +71 -61
  592. package/src/daemon/ride-shotgun-handler.ts +201 -121
  593. package/src/daemon/seed-files.ts +28 -17
  594. package/src/daemon/server.ts +23 -14
  595. package/src/daemon/session-agent-loop-handlers.ts +261 -135
  596. package/src/daemon/session-agent-loop.ts +795 -253
  597. package/src/daemon/session-attachments.ts +104 -39
  598. package/src/daemon/session-conflict-gate.ts +72 -28
  599. package/src/daemon/session-dynamic-profile.ts +36 -22
  600. package/src/daemon/session-error.ts +50 -45
  601. package/src/daemon/session-evictor.ts +17 -10
  602. package/src/daemon/session-history.ts +201 -89
  603. package/src/daemon/session-lifecycle.ts +79 -42
  604. package/src/daemon/session-media-retry.ts +89 -41
  605. package/src/daemon/session-memory.ts +77 -55
  606. package/src/daemon/session-messaging.ts +261 -111
  607. package/src/daemon/session-notifiers.ts +57 -45
  608. package/src/daemon/session-process.ts +370 -154
  609. package/src/daemon/session-queue-manager.ts +30 -13
  610. package/src/daemon/session-runtime-assembly.ts +61 -15
  611. package/src/daemon/session-skill-tools.ts +84 -36
  612. package/src/daemon/session-slash.ts +178 -113
  613. package/src/daemon/session-surfaces.ts +498 -211
  614. package/src/daemon/session-tool-setup.ts +22 -17
  615. package/src/daemon/session-usage.ts +26 -13
  616. package/src/daemon/session-workspace.ts +7 -4
  617. package/src/daemon/session.ts +18 -19
  618. package/src/daemon/shutdown-handlers.ts +36 -33
  619. package/src/daemon/tls-certs.ts +90 -57
  620. package/src/daemon/tool-side-effects.ts +97 -65
  621. package/src/daemon/trace-emitter.ts +8 -7
  622. package/src/daemon/video-thumbnail.ts +55 -25
  623. package/src/daemon/watch-handler.ts +164 -86
  624. package/src/email/provider.ts +1 -1
  625. package/src/email/providers/agentmail.ts +87 -45
  626. package/src/email/providers/index.ts +19 -14
  627. package/src/email/service.ts +52 -24
  628. package/src/email/types.ts +2 -2
  629. package/src/errors.ts +1 -1
  630. package/src/events/bus.ts +30 -10
  631. package/src/events/domain-events.ts +19 -13
  632. package/src/events/index.ts +6 -6
  633. package/src/events/tool-audit-listener.ts +34 -20
  634. package/src/events/tool-domain-event-publisher.ts +22 -20
  635. package/src/events/tool-metrics-listener.ts +26 -21
  636. package/src/events/tool-notification-listener.ts +5 -5
  637. package/src/events/tool-profiling-listener.ts +33 -23
  638. package/src/events/tool-trace-listener.ts +70 -46
  639. package/src/export/formatter.ts +38 -32
  640. package/src/followups/followup-store.ts +43 -36
  641. package/src/followups/index.ts +2 -2
  642. package/src/followups/types.ts +1 -1
  643. package/src/gallery/default-gallery.ts +37 -34
  644. package/src/gallery/gallery-manifest.ts +9 -9
  645. package/src/heartbeat/heartbeat-service.ts +59 -37
  646. package/src/home-base/app-link-store.ts +14 -12
  647. package/src/home-base/bootstrap.ts +14 -8
  648. package/src/home-base/prebuilt/seed.ts +35 -26
  649. package/src/home-base/prebuilt-home-base-updater.ts +14 -8
  650. package/src/hooks/cli.ts +56 -43
  651. package/src/hooks/config.ts +27 -14
  652. package/src/hooks/discovery.ts +53 -33
  653. package/src/hooks/manager.ts +50 -26
  654. package/src/hooks/runner.ts +35 -29
  655. package/src/hooks/templates.ts +38 -15
  656. package/src/hooks/types.ts +13 -13
  657. package/src/inbound/platform-callback-registration.ts +21 -15
  658. package/src/inbound/public-ingress-urls.ts +9 -6
  659. package/src/index.ts +20 -19
  660. package/src/influencer/client.ts +269 -108
  661. package/src/instrument.ts +3 -1
  662. package/src/logfire.ts +64 -39
  663. package/src/mcp/client.ts +107 -55
  664. package/src/mcp/manager.ts +45 -18
  665. package/src/mcp/mcp-oauth-provider.ts +114 -62
  666. package/src/media/gemini-image-service.ts +28 -21
  667. package/src/memory/account-store.ts +16 -9
  668. package/src/memory/admin.ts +87 -57
  669. package/src/memory/app-git-service.ts +77 -47
  670. package/src/memory/app-store.ts +151 -77
  671. package/src/memory/attachments-store.ts +123 -53
  672. package/src/memory/canonical-guardian-store.ts +190 -48
  673. package/src/memory/channel-delivery-store.ts +5 -5
  674. package/src/memory/channel-guardian-store.ts +31 -16
  675. package/src/memory/checkpoints.ts +14 -7
  676. package/src/memory/clarification-resolver.ts +219 -104
  677. package/src/memory/conflict-intent.ts +74 -23
  678. package/src/memory/conflict-policy.ts +20 -7
  679. package/src/memory/conflict-store.ts +144 -94
  680. package/src/memory/contradiction-checker.ts +257 -132
  681. package/src/memory/conversation-attention-store.ts +72 -32
  682. package/src/memory/conversation-bootstrap.ts +28 -0
  683. package/src/memory/conversation-crud.ts +12 -5
  684. package/src/memory/conversation-display-order-migration.ts +7 -7
  685. package/src/memory/conversation-key-store.ts +18 -13
  686. package/src/memory/conversation-queries.ts +130 -52
  687. package/src/memory/conversation-store.ts +43 -26
  688. package/src/memory/conversation-title-service.ts +89 -66
  689. package/src/memory/db-init.ts +90 -2
  690. package/src/memory/db.ts +10 -3
  691. package/src/memory/delivery-channels.ts +12 -6
  692. package/src/memory/delivery-crud.ts +26 -12
  693. package/src/memory/delivery-status.ts +19 -16
  694. package/src/memory/embedding-backend.ts +205 -77
  695. package/src/memory/embedding-gemini.ts +23 -10
  696. package/src/memory/embedding-local.ts +89 -44
  697. package/src/memory/embedding-ollama.ts +25 -13
  698. package/src/memory/embedding-openai.ts +20 -11
  699. package/src/memory/embedding-runtime-manager.ts +163 -90
  700. package/src/memory/entity-extractor.ts +185 -123
  701. package/src/memory/external-conversation-store.ts +30 -12
  702. package/src/memory/fingerprint.ts +2 -2
  703. package/src/memory/fts-reconciler.ts +57 -28
  704. package/src/memory/guardian-action-store.ts +162 -100
  705. package/src/memory/guardian-approvals.ts +63 -129
  706. package/src/memory/guardian-rate-limits.ts +20 -9
  707. package/src/memory/guardian-verification.ts +82 -35
  708. package/src/memory/indexer.ts +96 -55
  709. package/src/memory/ingress-invite-store.ts +28 -169
  710. package/src/memory/items-extractor.ts +313 -157
  711. package/src/memory/job-handlers/backfill.ts +116 -63
  712. package/src/memory/job-handlers/cleanup.ts +64 -41
  713. package/src/memory/job-handlers/conflict.ts +90 -49
  714. package/src/memory/job-handlers/embedding.ts +32 -17
  715. package/src/memory/job-handlers/extraction.ts +58 -33
  716. package/src/memory/job-handlers/index-maintenance.ts +31 -17
  717. package/src/memory/job-handlers/media-processing.ts +65 -24
  718. package/src/memory/job-handlers/summarization.ts +186 -128
  719. package/src/memory/job-utils.ts +100 -57
  720. package/src/memory/jobs-store.ts +235 -142
  721. package/src/memory/jobs-worker.ts +167 -83
  722. package/src/memory/llm-request-log-store.ts +13 -11
  723. package/src/memory/llm-usage-store.ts +35 -26
  724. package/src/memory/media-store.ts +151 -44
  725. package/src/memory/message-content.ts +28 -18
  726. package/src/memory/migrations/001-job-deferrals.ts +11 -5
  727. package/src/memory/migrations/002-tool-invocations-fk.ts +14 -6
  728. package/src/memory/migrations/003-memory-fts-backfill.ts +11 -5
  729. package/src/memory/migrations/004-entity-relation-dedup.ts +17 -11
  730. package/src/memory/migrations/005-fingerprint-scope-unique.ts +36 -21
  731. package/src/memory/migrations/006-scope-salted-fingerprints.ts +35 -20
  732. package/src/memory/migrations/007-assistant-id-to-self.ts +40 -27
  733. package/src/memory/migrations/008-remove-assistant-id-columns.ts +58 -36
  734. package/src/memory/migrations/009-llm-usage-events-drop-assistant-id.ts +36 -22
  735. package/src/memory/migrations/010-ext-conv-bindings-channel-chat-unique.ts +21 -11
  736. package/src/memory/migrations/011-call-sessions-provider-sid-dedup.ts +30 -15
  737. package/src/memory/migrations/012-call-sessions-add-initiated-from.ts +4 -2
  738. package/src/memory/migrations/013-guardian-action-tables.ts +29 -11
  739. package/src/memory/migrations/014-backfill-inbox-thread-state.ts +35 -21
  740. package/src/memory/migrations/015-drop-active-search-index.ts +17 -11
  741. package/src/memory/migrations/016-memory-segments-indexes.ts +7 -3
  742. package/src/memory/migrations/017-memory-items-indexes.ts +4 -2
  743. package/src/memory/migrations/018-remaining-table-indexes.ts +13 -5
  744. package/src/memory/migrations/019-notification-tables-schema-migration.ts +34 -20
  745. package/src/memory/migrations/020-rename-macos-ios-channel-to-vellum.ts +87 -53
  746. package/src/memory/migrations/021-conversation-status-indexes.ts +7 -3
  747. package/src/memory/migrations/022-add-origin-interface.ts +4 -2
  748. package/src/memory/migrations/023-memory-item-sources-indexes.ts +4 -2
  749. package/src/memory/migrations/024-embedding-vector-blob.ts +34 -18
  750. package/src/memory/migrations/025-messages-fts-backfill.ts +11 -5
  751. package/src/memory/migrations/026-guardian-verification-sessions.ts +80 -14
  752. package/src/memory/migrations/026a-embeddings-nullable-vector-json.ts +42 -26
  753. package/src/memory/migrations/027-notification-delivery-pairing-columns.ts +22 -8
  754. package/src/memory/migrations/027a-guardian-bootstrap-token.ts +11 -3
  755. package/src/memory/migrations/028-call-session-mode.ts +13 -3
  756. package/src/memory/migrations/028-notification-delivery-client-ack.ts +22 -8
  757. package/src/memory/migrations/029-channel-inbound-delivered-segments.ts +7 -3
  758. package/src/memory/migrations/030-guardian-action-followup.ts +46 -8
  759. package/src/memory/migrations/030-guardian-verification-purpose.ts +4 -2
  760. package/src/memory/migrations/031-conversations-thread-type-index.ts +4 -2
  761. package/src/memory/migrations/032-guardian-delivery-conversation-index.ts +4 -2
  762. package/src/memory/migrations/032-notification-delivery-thread-decision.ts +22 -8
  763. package/src/memory/migrations/033-scoped-approval-grants.ts +1 -1
  764. package/src/memory/migrations/034-guardian-action-tool-metadata.ts +15 -3
  765. package/src/memory/migrations/035-guardian-action-supersession.ts +15 -3
  766. package/src/memory/migrations/036-normalize-phone-identities.ts +101 -87
  767. package/src/memory/migrations/037-voice-invite-columns.ts +22 -4
  768. package/src/memory/migrations/038-actor-token-records.ts +5 -9
  769. package/src/memory/migrations/039-actor-refresh-token-records.ts +7 -13
  770. package/src/memory/migrations/100-core-tables.ts +1 -1
  771. package/src/memory/migrations/101-watchers-and-logs.ts +1 -1
  772. package/src/memory/migrations/103-complex-migrations.ts +9 -9
  773. package/src/memory/migrations/104-core-indexes.ts +188 -64
  774. package/src/memory/migrations/105-contacts-and-triage.ts +28 -10
  775. package/src/memory/migrations/106-call-sessions.ts +58 -16
  776. package/src/memory/migrations/107-followups.ts +16 -6
  777. package/src/memory/migrations/108-tasks-and-work-items.ts +43 -11
  778. package/src/memory/migrations/109-external-conversation-bindings.ts +11 -5
  779. package/src/memory/migrations/110-channel-guardian.ts +48 -10
  780. package/src/memory/migrations/111-media-assets.ts +52 -18
  781. package/src/memory/migrations/112-assistant-inbox.ts +32 -12
  782. package/src/memory/migrations/113-late-migrations.ts +12 -12
  783. package/src/memory/migrations/114-notifications.ts +28 -12
  784. package/src/memory/migrations/115-sequences.ts +10 -4
  785. package/src/memory/migrations/116-messages-fts.ts +1 -1
  786. package/src/memory/migrations/117-conversation-attention.ts +16 -6
  787. package/src/memory/migrations/118-reminder-routing-intent.ts +7 -3
  788. package/src/memory/migrations/119-schema-indexes-and-columns.ts +35 -15
  789. package/src/memory/migrations/120-fk-cascade-rebuilds.ts +36 -17
  790. package/src/memory/migrations/121-canonical-guardian-requests.ts +25 -9
  791. package/src/memory/migrations/122-canonical-guardian-requester-chat-id.ts +11 -3
  792. package/src/memory/migrations/123-canonical-guardian-deliveries-destination-index.ts +4 -2
  793. package/src/memory/migrations/124-voice-invite-display-metadata.ts +15 -3
  794. package/src/memory/migrations/125-guardian-principal-id-columns.ts +22 -4
  795. package/src/memory/migrations/126-backfill-guardian-principal-id.ts +174 -126
  796. package/src/memory/migrations/127-guardian-principal-id-not-null.ts +58 -42
  797. package/src/memory/migrations/128-contacts-role-principal.ts +26 -0
  798. package/src/memory/migrations/129-contact-channels-access-fields.ts +105 -0
  799. package/src/memory/migrations/130-contact-channels-type-ext-chat-id-index.ts +15 -0
  800. package/src/memory/migrations/131-drop-legacy-member-guardian-tables.ts +134 -0
  801. package/src/memory/migrations/132-contacts-assistant-id.ts +21 -0
  802. package/src/memory/migrations/index.ts +82 -73
  803. package/src/memory/migrations/registry.ts +53 -37
  804. package/src/memory/migrations/validate-migration-state.ts +73 -46
  805. package/src/memory/profile-compiler.ts +58 -24
  806. package/src/memory/published-pages-store.ts +12 -16
  807. package/src/memory/qdrant-circuit-breaker.ts +28 -20
  808. package/src/memory/qdrant-client.ts +99 -63
  809. package/src/memory/qdrant-manager.ts +89 -57
  810. package/src/memory/query-builder.ts +9 -7
  811. package/src/memory/raw-query.ts +63 -14
  812. package/src/memory/recall-cache.ts +15 -8
  813. package/src/memory/retrieval-budget.ts +0 -1
  814. package/src/memory/retriever.ts +385 -192
  815. package/src/memory/schema-migration.ts +1 -1
  816. package/src/memory/schema.ts +44 -56
  817. package/src/memory/scoped-approval-grants.ts +99 -45
  818. package/src/memory/search/entity.ts +102 -40
  819. package/src/memory/search/formatting.ts +70 -52
  820. package/src/memory/search/lexical.ts +82 -43
  821. package/src/memory/search/ranking.ts +103 -39
  822. package/src/memory/search/semantic.ts +59 -35
  823. package/src/memory/search/types.ts +8 -8
  824. package/src/memory/segmenter.ts +20 -12
  825. package/src/memory/shared-app-links-store.ts +21 -16
  826. package/src/memory/task-memory-cleanup.ts +18 -8
  827. package/src/memory/tool-usage-store.ts +27 -19
  828. package/src/memory/validation.ts +4 -2
  829. package/src/messaging/activity-analyzer.ts +7 -7
  830. package/src/messaging/draft-store.ts +13 -10
  831. package/src/messaging/email-classifier.ts +73 -37
  832. package/src/messaging/index.ts +3 -3
  833. package/src/messaging/outreach-classifier.ts +76 -38
  834. package/src/messaging/provider-types.ts +2 -4
  835. package/src/messaging/provider.ts +37 -8
  836. package/src/messaging/providers/gmail/adapter.ts +183 -66
  837. package/src/messaging/providers/gmail/client.ts +3 -1
  838. package/src/messaging/providers/gmail/mime-builder.ts +21 -19
  839. package/src/messaging/providers/gmail/people-client.ts +22 -9
  840. package/src/messaging/providers/gmail/types.ts +6 -6
  841. package/src/messaging/providers/slack/adapter.ts +93 -43
  842. package/src/messaging/providers/slack/client.ts +100 -41
  843. package/src/messaging/providers/slack/types.ts +6 -0
  844. package/src/messaging/providers/sms/adapter.ts +76 -40
  845. package/src/messaging/providers/sms/client.ts +4 -4
  846. package/src/messaging/providers/telegram-bot/adapter.ts +52 -30
  847. package/src/messaging/providers/telegram-bot/client.ts +7 -7
  848. package/src/messaging/providers/whatsapp/adapter.ts +58 -31
  849. package/src/messaging/providers/whatsapp/client.ts +4 -4
  850. package/src/messaging/registry.ts +9 -5
  851. package/src/messaging/style-analyzer.ts +69 -39
  852. package/src/messaging/thread-summarizer.ts +101 -53
  853. package/src/messaging/triage-engine.ts +111 -82
  854. package/src/messaging/types.ts +10 -10
  855. package/src/migrations/config-merge.ts +18 -10
  856. package/src/migrations/data-layout.ts +35 -22
  857. package/src/migrations/data-merge.ts +17 -7
  858. package/src/migrations/hooks-merge.ts +43 -16
  859. package/src/migrations/index.ts +6 -6
  860. package/src/migrations/log.ts +9 -5
  861. package/src/migrations/skills-merge.ts +17 -7
  862. package/src/migrations/workspace-layout.ts +39 -25
  863. package/src/notifications/AGENTS.md +5 -0
  864. package/src/notifications/adapters/macos.ts +21 -14
  865. package/src/notifications/adapters/sms.ts +28 -15
  866. package/src/notifications/adapters/telegram.ts +24 -15
  867. package/src/notifications/broadcaster.ts +108 -52
  868. package/src/notifications/conversation-pairing.ts +64 -29
  869. package/src/notifications/copy-composer.ts +165 -95
  870. package/src/notifications/decision-engine.ts +353 -147
  871. package/src/notifications/decisions-store.ts +26 -10
  872. package/src/notifications/deliveries-store.ts +23 -13
  873. package/src/notifications/destination-resolver.ts +42 -24
  874. package/src/notifications/deterministic-checks.ts +78 -27
  875. package/src/notifications/emit-signal.ts +83 -45
  876. package/src/notifications/events-store.ts +13 -7
  877. package/src/notifications/guardian-question-mode.ts +125 -75
  878. package/src/notifications/preference-extractor.ts +85 -53
  879. package/src/notifications/preference-summary.ts +31 -18
  880. package/src/notifications/preferences-store.ts +29 -18
  881. package/src/notifications/runtime-dispatch.ts +22 -12
  882. package/src/notifications/signal.ts +4 -4
  883. package/src/notifications/thread-candidates.ts +59 -23
  884. package/src/notifications/thread-seed-composer.ts +45 -27
  885. package/src/notifications/types.ts +19 -10
  886. package/src/oauth/connect-orchestrator.ts +105 -54
  887. package/src/oauth/connect-types.ts +3 -3
  888. package/src/oauth/provider-profiles.ts +80 -59
  889. package/src/oauth/scope-policy.ts +5 -2
  890. package/src/oauth/token-persistence.ts +58 -24
  891. package/src/outbound-proxy/certs.ts +284 -0
  892. package/src/outbound-proxy/config.ts +94 -0
  893. package/src/outbound-proxy/connect-tunnel.ts +84 -0
  894. package/src/outbound-proxy/health.ts +62 -0
  895. package/src/outbound-proxy/host-pattern-match.ts +67 -0
  896. package/src/outbound-proxy/http-forwarder.ts +162 -0
  897. package/src/outbound-proxy/index.ts +80 -0
  898. package/src/outbound-proxy/logging.ts +193 -0
  899. package/src/outbound-proxy/mitm-handler.ts +292 -0
  900. package/src/outbound-proxy/policy.ts +172 -0
  901. package/src/outbound-proxy/router.ts +64 -0
  902. package/src/outbound-proxy/server.ts +145 -0
  903. package/src/outbound-proxy/types.ts +150 -0
  904. package/src/permissions/checker.ts +481 -189
  905. package/src/permissions/defaults.ts +135 -108
  906. package/src/permissions/prompter.ts +53 -27
  907. package/src/permissions/secret-prompter.ts +21 -15
  908. package/src/permissions/shell-identity.ts +47 -16
  909. package/src/permissions/trust-store.ts +185 -73
  910. package/src/permissions/types.ts +22 -12
  911. package/src/permissions/workspace-policy.ts +47 -38
  912. package/src/playbooks/index.ts +10 -2
  913. package/src/playbooks/playbook-compiler.ts +30 -24
  914. package/src/playbooks/types.ts +11 -8
  915. package/src/providers/anthropic/client.ts +325 -168
  916. package/src/providers/failover.ts +57 -22
  917. package/src/providers/fireworks/client.ts +9 -5
  918. package/src/providers/gemini/client.ts +61 -39
  919. package/src/providers/model-intents.ts +40 -33
  920. package/src/providers/ollama/client.ts +7 -7
  921. package/src/providers/openai/client.ts +106 -68
  922. package/src/providers/openrouter/client.ts +9 -5
  923. package/src/providers/provider-send-message.ts +59 -27
  924. package/src/providers/ratelimit.ts +25 -8
  925. package/src/providers/registry.ts +86 -38
  926. package/src/providers/retry.ts +84 -36
  927. package/src/providers/stream-timeout.ts +5 -3
  928. package/src/providers/types.ts +7 -6
  929. package/src/runtime/AGENTS.md +42 -0
  930. package/src/runtime/access-request-helper.ts +118 -68
  931. package/src/runtime/actor-refresh-token-store.ts +21 -16
  932. package/src/runtime/actor-token-store.ts +25 -18
  933. package/src/runtime/actor-trust-resolver.ts +183 -80
  934. package/src/runtime/approval-conversation-turn.ts +39 -26
  935. package/src/runtime/approval-message-composer.ts +116 -84
  936. package/src/runtime/assistant-event-hub.ts +25 -6
  937. package/src/runtime/assistant-event.ts +4 -4
  938. package/src/runtime/assistant-scope.ts +1 -1
  939. package/src/runtime/auth/__tests__/guard-tests.test.ts +36 -14
  940. package/src/runtime/auth/context.ts +8 -7
  941. package/src/runtime/auth/credential-service.ts +60 -38
  942. package/src/runtime/auth/external-assistant-id.ts +16 -8
  943. package/src/runtime/auth/index.ts +23 -16
  944. package/src/runtime/auth/route-policy.ts +170 -104
  945. package/src/runtime/auth/scopes.ts +22 -29
  946. package/src/runtime/auth/subject.ts +19 -13
  947. package/src/runtime/auth/token-service.ts +3 -3
  948. package/src/runtime/auth/types.ts +23 -23
  949. package/src/runtime/channel-approval-parser.ts +37 -14
  950. package/src/runtime/channel-approval-types.ts +12 -4
  951. package/src/runtime/channel-approvals.ts +41 -23
  952. package/src/runtime/channel-guardian-service.ts +144 -103
  953. package/src/runtime/channel-invite-transport.ts +4 -2
  954. package/src/runtime/channel-invite-transports/telegram.ts +16 -10
  955. package/src/runtime/channel-invite-transports/voice.ts +7 -7
  956. package/src/runtime/channel-readiness-service.ts +139 -90
  957. package/src/runtime/channel-readiness-types.ts +4 -2
  958. package/src/runtime/channel-reply-delivery.ts +21 -11
  959. package/src/runtime/channel-retry-sweep.ts +111 -62
  960. package/src/runtime/confirmation-request-guardian-bridge.ts +73 -54
  961. package/src/runtime/gateway-client.ts +86 -53
  962. package/src/runtime/guardian-action-conversation-turn.ts +34 -18
  963. package/src/runtime/guardian-action-followup-executor.ts +115 -45
  964. package/src/runtime/guardian-action-grant-minter.ts +40 -24
  965. package/src/runtime/guardian-action-message-composer.ts +105 -84
  966. package/src/runtime/guardian-decision-types.ts +28 -13
  967. package/src/runtime/guardian-outbound-actions.ts +9 -0
  968. package/src/runtime/guardian-reply-router.ts +274 -145
  969. package/src/runtime/guardian-vellum-migration.ts +38 -24
  970. package/src/runtime/guardian-verification-templates.ts +8 -11
  971. package/src/runtime/http-router.ts +175 -0
  972. package/src/runtime/http-server.ts +931 -669
  973. package/src/runtime/http-types.ts +2 -2
  974. package/src/runtime/ingress-service.ts +182 -89
  975. package/src/runtime/invite-redemption-service.ts +211 -134
  976. package/src/runtime/invite-redemption-templates.ts +18 -11
  977. package/src/runtime/local-actor-identity.ts +73 -55
  978. package/src/runtime/middleware/auth.ts +25 -14
  979. package/src/runtime/middleware/error-handler.ts +15 -11
  980. package/src/runtime/middleware/rate-limiter.ts +23 -17
  981. package/src/runtime/middleware/request-logger.ts +4 -4
  982. package/src/runtime/middleware/twilio-validation.ts +29 -20
  983. package/src/runtime/migrations/migration-transport.ts +575 -0
  984. package/src/runtime/migrations/migration-wizard.ts +715 -0
  985. package/src/runtime/migrations/rebind-secrets-screen.ts +351 -0
  986. package/src/runtime/migrations/transfer-progress-screen.ts +321 -0
  987. package/src/runtime/migrations/validation-results-screen.ts +467 -0
  988. package/src/runtime/migrations/vbundle-builder.ts +295 -0
  989. package/src/runtime/migrations/vbundle-import-analyzer.ts +212 -0
  990. package/src/runtime/migrations/vbundle-importer.ts +339 -0
  991. package/src/runtime/migrations/vbundle-validator.ts +356 -0
  992. package/src/runtime/pending-interactions.ts +16 -7
  993. package/src/runtime/routes/access-request-decision.ts +73 -52
  994. package/src/runtime/routes/app-routes.ts +56 -38
  995. package/src/runtime/routes/approval-routes.ts +165 -74
  996. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +930 -0
  997. package/src/runtime/routes/approval-strategies/guardian-legacy-fallback-strategy.ts +82 -0
  998. package/src/runtime/routes/approval-strategies/guardian-text-engine-strategy.ts +151 -0
  999. package/src/runtime/routes/attachment-routes.ts +59 -48
  1000. package/src/runtime/routes/brain-graph-routes.ts +85 -69
  1001. package/src/runtime/routes/call-routes.ts +79 -38
  1002. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +10 -10
  1003. package/src/runtime/routes/channel-delivery-routes.ts +19 -14
  1004. package/src/runtime/routes/channel-guardian-routes.ts +3 -3
  1005. package/src/runtime/routes/channel-inbound-routes.ts +2 -2
  1006. package/src/runtime/routes/channel-readiness-routes.ts +12 -6
  1007. package/src/runtime/routes/channel-route-shared.ts +33 -25
  1008. package/src/runtime/routes/channel-routes.ts +4 -6
  1009. package/src/runtime/routes/contact-routes.ts +205 -16
  1010. package/src/runtime/routes/conversation-attention-routes.ts +57 -28
  1011. package/src/runtime/routes/conversation-routes.ts +321 -174
  1012. package/src/runtime/routes/debug-routes.ts +14 -10
  1013. package/src/runtime/routes/events-routes.ts +90 -57
  1014. package/src/runtime/routes/global-search-routes.ts +266 -0
  1015. package/src/runtime/routes/guardian-action-routes.ts +147 -56
  1016. package/src/runtime/routes/guardian-approval-interception.ts +255 -880
  1017. package/src/runtime/routes/guardian-approval-prompt.ts +40 -24
  1018. package/src/runtime/routes/guardian-approval-reply-helpers.ts +135 -0
  1019. package/src/runtime/routes/guardian-bootstrap-routes.ts +55 -36
  1020. package/src/runtime/routes/guardian-expiry-sweep.ts +63 -37
  1021. package/src/runtime/routes/guardian-refresh-routes.ts +40 -19
  1022. package/src/runtime/routes/identity-routes.ts +71 -42
  1023. package/src/runtime/routes/inbound-conversation.ts +17 -11
  1024. package/src/runtime/routes/inbound-message-handler.ts +278 -1460
  1025. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +658 -0
  1026. package/src/runtime/routes/inbound-stages/background-dispatch.ts +492 -0
  1027. package/src/runtime/routes/inbound-stages/bootstrap-intercept.ts +214 -0
  1028. package/src/runtime/routes/inbound-stages/edit-intercept.ts +116 -0
  1029. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +167 -0
  1030. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +185 -0
  1031. package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +132 -0
  1032. package/src/runtime/routes/inbound-stages/verification-intercept.ts +340 -0
  1033. package/src/runtime/routes/ingress-routes.ts +34 -23
  1034. package/src/runtime/routes/integration-routes.ts +60 -21
  1035. package/src/runtime/routes/migration-routes.ts +434 -0
  1036. package/src/runtime/routes/pairing-routes.ts +157 -79
  1037. package/src/runtime/routes/secret-routes.ts +6 -2
  1038. package/src/runtime/routes/twilio-routes.ts +443 -249
  1039. package/src/runtime/tool-grant-request-helper.ts +36 -27
  1040. package/src/runtime/{guardian-context-resolver.ts → trust-context-resolver.ts} +29 -41
  1041. package/src/schedule/integration-status.ts +44 -9
  1042. package/src/schedule/recurrence-engine.ts +47 -24
  1043. package/src/schedule/recurrence-types.ts +12 -7
  1044. package/src/schedule/schedule-store.ts +166 -83
  1045. package/src/schedule/scheduler.ts +26 -22
  1046. package/src/security/encrypted-store.ts +68 -38
  1047. package/src/security/keychain.ts +183 -120
  1048. package/src/security/oauth-callback-registry.ts +3 -3
  1049. package/src/security/oauth2.ts +226 -138
  1050. package/src/security/redaction.ts +24 -24
  1051. package/src/security/secret-allowlist.ts +46 -21
  1052. package/src/security/secret-ingress.ts +15 -7
  1053. package/src/security/secret-scanner.ts +193 -104
  1054. package/src/security/secure-keys.ts +9 -3
  1055. package/src/security/token-manager.ts +99 -40
  1056. package/src/security/tool-approval-digest.ts +3 -3
  1057. package/src/sequence/analytics.ts +52 -27
  1058. package/src/sequence/engine.ts +135 -72
  1059. package/src/sequence/guardrails.ts +32 -20
  1060. package/src/sequence/importer.ts +75 -37
  1061. package/src/sequence/reply-matcher.ts +36 -18
  1062. package/src/sequence/store.ts +137 -75
  1063. package/src/sequence/types.ts +30 -16
  1064. package/src/services/published-app-updater.ts +26 -16
  1065. package/src/services/vercel-deploy.ts +19 -15
  1066. package/src/skills/active-skill-tools.ts +3 -3
  1067. package/src/skills/clawhub.ts +178 -90
  1068. package/src/skills/include-graph.ts +24 -17
  1069. package/src/skills/managed-store.ts +89 -42
  1070. package/src/skills/path-classifier.ts +10 -10
  1071. package/src/skills/remote-skill-policy.ts +31 -22
  1072. package/src/skills/slash-commands.ts +36 -30
  1073. package/src/skills/tool-manifest.ts +60 -31
  1074. package/src/skills/version-hash.ts +25 -15
  1075. package/src/slack/slack-webhook.ts +19 -15
  1076. package/src/subagent/index.ts +4 -8
  1077. package/src/subagent/manager.ts +119 -69
  1078. package/src/subagent/types.ts +9 -12
  1079. package/src/swarm/backend-claude-code.ts +124 -45
  1080. package/src/swarm/checkpoint.ts +36 -16
  1081. package/src/swarm/graph-utils.ts +1 -3
  1082. package/src/swarm/index.ts +38 -19
  1083. package/src/swarm/limits.ts +13 -4
  1084. package/src/swarm/orchestrator.ts +108 -57
  1085. package/src/swarm/plan-validator.ts +23 -17
  1086. package/src/swarm/router-planner.ts +51 -22
  1087. package/src/swarm/router-prompts.ts +4 -1
  1088. package/src/swarm/synthesizer.ts +26 -18
  1089. package/src/swarm/types.ts +14 -4
  1090. package/src/swarm/worker-backend.ts +36 -26
  1091. package/src/swarm/worker-prompts.ts +13 -9
  1092. package/src/swarm/worker-runner.ts +40 -34
  1093. package/src/tasks/candidate-store.ts +14 -6
  1094. package/src/tasks/ephemeral-permissions.ts +9 -5
  1095. package/src/tasks/task-compiler.ts +41 -38
  1096. package/src/tasks/task-runner.ts +54 -26
  1097. package/src/tasks/task-scheduler.ts +1 -1
  1098. package/src/tasks/task-store.ts +20 -7
  1099. package/src/tasks/tool-sanitizer.ts +3 -3
  1100. package/src/tools/apps/definitions.ts +23 -15
  1101. package/src/tools/apps/executors.ts +118 -37
  1102. package/src/tools/apps/open-proxy.ts +5 -5
  1103. package/src/tools/apps/registry.ts +2 -2
  1104. package/src/tools/assets/materialize.ts +59 -41
  1105. package/src/tools/assets/search.ts +86 -48
  1106. package/src/tools/browser/api-map.ts +52 -36
  1107. package/src/tools/browser/auth-cache.ts +21 -18
  1108. package/src/tools/browser/auth-detector.ts +43 -28
  1109. package/src/tools/browser/auto-navigate.ts +149 -68
  1110. package/src/tools/browser/browser-execution.ts +9 -3
  1111. package/src/tools/browser/headless-browser.ts +287 -150
  1112. package/src/tools/browser/jit-auth.ts +37 -21
  1113. package/src/tools/browser/network-recorder.ts +138 -56
  1114. package/src/tools/browser/recording-store.ts +22 -15
  1115. package/src/tools/browser/runtime-check.ts +8 -5
  1116. package/src/tools/browser/x-auto-navigate.ts +88 -47
  1117. package/src/tools/calls/call-end.ts +9 -6
  1118. package/src/tools/calls/call-start.ts +30 -20
  1119. package/src/tools/calls/call-status.ts +8 -5
  1120. package/src/tools/claude-code/claude-code.ts +301 -165
  1121. package/src/tools/computer-use/definitions.ts +159 -130
  1122. package/src/tools/computer-use/registry.ts +2 -2
  1123. package/src/tools/computer-use/request-computer-control.ts +21 -13
  1124. package/src/tools/computer-use/skill-proxy-bridge.ts +1 -1
  1125. package/src/tools/credentials/account-registry.ts +52 -35
  1126. package/src/tools/credentials/broker-types.ts +1 -1
  1127. package/src/tools/credentials/broker.ts +97 -55
  1128. package/src/tools/credentials/domain-policy.ts +5 -2
  1129. package/src/tools/credentials/host-pattern-match.ts +15 -8
  1130. package/src/tools/credentials/metadata-store.ts +93 -43
  1131. package/src/tools/credentials/policy-types.ts +5 -2
  1132. package/src/tools/credentials/policy-validate.ts +21 -14
  1133. package/src/tools/credentials/post-connect-hooks.ts +18 -7
  1134. package/src/tools/credentials/resolve.ts +11 -10
  1135. package/src/tools/credentials/selection.ts +30 -25
  1136. package/src/tools/credentials/tool-policy.ts +5 -2
  1137. package/src/tools/credentials/vault.ts +452 -183
  1138. package/src/tools/document/document-tool.ts +23 -17
  1139. package/src/tools/document/editor-template.ts +12 -7
  1140. package/src/tools/execution-target.ts +13 -10
  1141. package/src/tools/execution-timeout.ts +6 -5
  1142. package/src/tools/executor.ts +141 -74
  1143. package/src/tools/filesystem/edit.ts +82 -45
  1144. package/src/tools/filesystem/fuzzy-match.ts +70 -32
  1145. package/src/tools/filesystem/read.ts +46 -28
  1146. package/src/tools/filesystem/view-image.ts +86 -42
  1147. package/src/tools/filesystem/write.ts +53 -32
  1148. package/src/tools/followups/followup_create.ts +43 -17
  1149. package/src/tools/followups/followup_list.ts +28 -13
  1150. package/src/tools/followups/followup_resolve.ts +9 -6
  1151. package/src/tools/guardian-control-plane-policy.ts +15 -14
  1152. package/src/tools/host-filesystem/edit.ts +77 -42
  1153. package/src/tools/host-filesystem/read.ts +52 -33
  1154. package/src/tools/host-filesystem/write.ts +50 -29
  1155. package/src/tools/host-terminal/host-shell.ts +97 -61
  1156. package/src/tools/mcp/mcp-tool-factory.ts +21 -14
  1157. package/src/tools/memory/definitions.ts +60 -28
  1158. package/src/tools/memory/handlers.ts +149 -77
  1159. package/src/tools/memory/register.ts +39 -16
  1160. package/src/tools/network/__tests__/web-search.test.ts +236 -177
  1161. package/src/tools/network/domain-normalize.ts +13 -9
  1162. package/src/tools/network/script-proxy/__tests__/logging.test.ts +193 -123
  1163. package/src/tools/network/script-proxy/__tests__/policy.test.ts +225 -127
  1164. package/src/tools/network/script-proxy/index.ts +1 -17
  1165. package/src/tools/network/script-proxy/session-manager.ts +151 -84
  1166. package/src/tools/network/url-safety.ts +56 -34
  1167. package/src/tools/network/web-fetch.ts +273 -155
  1168. package/src/tools/network/web-search.ts +166 -81
  1169. package/src/tools/permission-checker.ts +6 -25
  1170. package/src/tools/policy-context.ts +8 -5
  1171. package/src/tools/registry.ts +73 -46
  1172. package/src/tools/reminder/reminder-store.ts +65 -44
  1173. package/src/tools/reminder/reminder.ts +76 -35
  1174. package/src/tools/schedule/create.ts +44 -21
  1175. package/src/tools/schedule/delete.ts +8 -5
  1176. package/src/tools/schedule/list.ts +39 -19
  1177. package/src/tools/schedule/update.ts +49 -26
  1178. package/src/tools/secret-detection-handler.ts +130 -49
  1179. package/src/tools/sensitive-output-placeholders.ts +15 -8
  1180. package/src/tools/shared/filesystem/edit-engine.ts +45 -14
  1181. package/src/tools/shared/filesystem/errors.ts +18 -18
  1182. package/src/tools/shared/filesystem/file-ops-service.ts +59 -32
  1183. package/src/tools/shared/filesystem/format-diff.ts +21 -11
  1184. package/src/tools/shared/filesystem/path-policy.ts +17 -13
  1185. package/src/tools/shared/filesystem/size-guard.ts +8 -4
  1186. package/src/tools/shared/filesystem/types.ts +2 -2
  1187. package/src/tools/shared/shell-output.ts +4 -3
  1188. package/src/tools/side-effects.ts +36 -28
  1189. package/src/tools/skills/delete-managed.ts +30 -17
  1190. package/src/tools/skills/load.ts +88 -46
  1191. package/src/tools/skills/sandbox-runner.ts +62 -46
  1192. package/src/tools/skills/scaffold-managed.ts +98 -48
  1193. package/src/tools/skills/script-contract.ts +5 -2
  1194. package/src/tools/skills/skill-script-runner.ts +29 -13
  1195. package/src/tools/skills/skill-tool-factory.ts +20 -10
  1196. package/src/tools/subagent/abort.ts +10 -4
  1197. package/src/tools/subagent/message.ts +14 -8
  1198. package/src/tools/subagent/read.ts +20 -11
  1199. package/src/tools/subagent/spawn.ts +14 -6
  1200. package/src/tools/subagent/status.ts +7 -4
  1201. package/src/tools/swarm/delegate.ts +75 -49
  1202. package/src/tools/system/avatar-generator.ts +46 -33
  1203. package/src/tools/system/navigate-settings.ts +29 -19
  1204. package/src/tools/system/open-system-settings.ts +30 -20
  1205. package/src/tools/system/request-permission.ts +59 -44
  1206. package/src/tools/system/version.ts +27 -16
  1207. package/src/tools/system/voice-config.ts +116 -53
  1208. package/src/tools/tasks/index.ts +8 -8
  1209. package/src/tools/tasks/task-delete.ts +61 -22
  1210. package/src/tools/tasks/task-list.ts +23 -11
  1211. package/src/tools/tasks/task-run.ts +41 -16
  1212. package/src/tools/tasks/task-save.ts +27 -10
  1213. package/src/tools/tasks/work-item-enqueue.ts +114 -48
  1214. package/src/tools/tasks/work-item-list.ts +20 -10
  1215. package/src/tools/tasks/work-item-remove.ts +49 -15
  1216. package/src/tools/tasks/work-item-run.ts +34 -13
  1217. package/src/tools/tasks/work-item-update.ts +84 -31
  1218. package/src/tools/terminal/backends/native.ts +64 -35
  1219. package/src/tools/terminal/backends/types.ts +6 -2
  1220. package/src/tools/terminal/parser.ts +200 -125
  1221. package/src/tools/terminal/safe-env.ts +27 -21
  1222. package/src/tools/terminal/sandbox-diagnostics.ts +31 -13
  1223. package/src/tools/terminal/sandbox.ts +10 -6
  1224. package/src/tools/terminal/shell.ts +124 -68
  1225. package/src/tools/tool-approval-handler.ts +193 -138
  1226. package/src/tools/types.ts +43 -23
  1227. package/src/tools/ui-surface/definitions.ts +124 -89
  1228. package/src/tools/ui-surface/registry.ts +2 -2
  1229. package/src/tools/watch/screen-watch.ts +50 -32
  1230. package/src/tools/watch/watch-state.ts +41 -15
  1231. package/src/tools/watcher/create.ts +37 -15
  1232. package/src/tools/watcher/delete.ts +9 -6
  1233. package/src/tools/watcher/digest.ts +10 -6
  1234. package/src/tools/watcher/list.ts +37 -14
  1235. package/src/tools/watcher/update.ts +33 -18
  1236. package/src/tools/weather/service.ts +331 -174
  1237. package/src/twitter/client.ts +261 -138
  1238. package/src/twitter/oauth-client.ts +17 -13
  1239. package/src/twitter/router.ts +51 -23
  1240. package/src/twitter/session.ts +27 -18
  1241. package/src/types/qrcode.d.ts +6 -3
  1242. package/src/usage/actors.ts +16 -16
  1243. package/src/usage/types.ts +3 -3
  1244. package/src/util/bundled-asset.ts +10 -6
  1245. package/src/util/canonicalize-identity.ts +11 -4
  1246. package/src/util/clipboard.ts +7 -7
  1247. package/src/util/content-id.ts +3 -3
  1248. package/src/util/debounce.ts +3 -2
  1249. package/src/util/diff.ts +55 -33
  1250. package/src/util/errors.ts +26 -26
  1251. package/src/util/fs.ts +8 -2
  1252. package/src/util/log-redact.ts +12 -12
  1253. package/src/util/logger.ts +112 -51
  1254. package/src/util/network-info.ts +13 -5
  1255. package/src/util/object.ts +4 -2
  1256. package/src/util/phone.ts +4 -4
  1257. package/src/util/platform.ts +80 -58
  1258. package/src/util/pricing.ts +49 -31
  1259. package/src/util/retry.ts +18 -7
  1260. package/src/util/row-mapper.ts +7 -4
  1261. package/src/util/silently.ts +7 -4
  1262. package/src/util/spawn.ts +48 -0
  1263. package/src/util/spinner.ts +9 -7
  1264. package/src/util/time.ts +16 -3
  1265. package/src/util/truncate.ts +1 -1
  1266. package/src/util/voice-code.ts +6 -4
  1267. package/src/util/xml.ts +5 -1
  1268. package/src/version.ts +12 -8
  1269. package/src/watcher/engine.ts +71 -44
  1270. package/src/watcher/provider-registry.ts +1 -1
  1271. package/src/watcher/providers/github.ts +40 -23
  1272. package/src/watcher/providers/gmail.ts +59 -38
  1273. package/src/watcher/providers/google-calendar.ts +62 -48
  1274. package/src/watcher/providers/linear.ts +219 -150
  1275. package/src/watcher/providers/slack.ts +93 -27
  1276. package/src/watcher/watcher-store.ts +75 -55
  1277. package/src/work-items/work-item-runner.ts +62 -29
  1278. package/src/work-items/work-item-store.ts +137 -47
  1279. package/src/workspace/commit-message-enrichment-service.ts +65 -25
  1280. package/src/workspace/commit-message-provider.ts +14 -12
  1281. package/src/workspace/git-service.ts +355 -239
  1282. package/src/workspace/heartbeat-service.ts +74 -37
  1283. package/src/workspace/provider-commit-message-generator.ts +95 -70
  1284. package/src/workspace/top-level-renderer.ts +10 -8
  1285. package/src/workspace/top-level-scanner.ts +9 -3
  1286. package/src/workspace/turn-commit.ts +63 -36
  1287. package/src/__tests__/ingress-member-store.test.ts +0 -294
  1288. package/src/__tests__/script-proxy-router.test.ts +0 -215
  1289. package/src/config/bundled-skills/trusted-contacts/SKILL.md +0 -372
  1290. package/src/memory/guardian-bindings.ts +0 -158
  1291. package/src/memory/ingress-member-store.ts +0 -352
  1292. package/src/tools/network/script-proxy/__tests__/router.test.ts +0 -77
  1293. package/src/tools/network/script-proxy/certs.ts +0 -7
  1294. package/src/tools/network/script-proxy/connect-tunnel.ts +0 -1
  1295. package/src/tools/network/script-proxy/http-forwarder.ts +0 -2
  1296. package/src/tools/network/script-proxy/logging.ts +0 -12
  1297. package/src/tools/network/script-proxy/mitm-handler.ts +0 -2
  1298. package/src/tools/network/script-proxy/policy.ts +0 -4
  1299. package/src/tools/network/script-proxy/router.ts +0 -2
  1300. package/src/tools/network/script-proxy/server.ts +0 -5
  1301. package/src/tools/network/script-proxy/types.ts +0 -19
@@ -1,117 +1,181 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
 
3
- const VALID_MEMORY_EMBEDDING_PROVIDERS = ['auto', 'local', 'openai', 'gemini', 'ollama'] as const;
3
+ const VALID_MEMORY_EMBEDDING_PROVIDERS = [
4
+ "auto",
5
+ "local",
6
+ "openai",
7
+ "gemini",
8
+ "ollama",
9
+ ] as const;
4
10
  const VALID_MEMORY_ITEM_KINDS = [
5
- 'preference', 'profile', 'project', 'decision', 'todo',
6
- 'fact', 'constraint', 'relationship', 'event', 'opinion', 'instruction', 'style',
11
+ "preference",
12
+ "profile",
13
+ "project",
14
+ "decision",
15
+ "todo",
16
+ "fact",
17
+ "constraint",
18
+ "relationship",
19
+ "event",
20
+ "opinion",
21
+ "instruction",
22
+ "style",
7
23
  ] as const;
8
24
 
9
25
  const DEFAULT_CONFLICTABLE_KINDS = [
10
- 'preference', 'profile', 'constraint', 'instruction', 'style',
26
+ "preference",
27
+ "profile",
28
+ "constraint",
29
+ "instruction",
30
+ "style",
11
31
  ] as const;
12
32
 
13
- const VALID_QDRANT_QUANTIZATION = ['scalar', 'none'] as const;
33
+ const VALID_QDRANT_QUANTIZATION = ["scalar", "none"] as const;
14
34
 
15
35
  export const MemoryEmbeddingsConfigSchema = z.object({
16
36
  required: z
17
- .boolean({ error: 'memory.embeddings.required must be a boolean' })
37
+ .boolean({ error: "memory.embeddings.required must be a boolean" })
18
38
  .default(true),
19
39
  provider: z
20
40
  .enum(VALID_MEMORY_EMBEDDING_PROVIDERS, {
21
- error: `memory.embeddings.provider must be one of: ${VALID_MEMORY_EMBEDDING_PROVIDERS.join(', ')}`,
41
+ error: `memory.embeddings.provider must be one of: ${VALID_MEMORY_EMBEDDING_PROVIDERS.join(
42
+ ", ",
43
+ )}`,
22
44
  })
23
- .default('auto'),
45
+ .default("auto"),
24
46
  localModel: z
25
- .string({ error: 'memory.embeddings.localModel must be a string' })
26
- .default('Xenova/bge-small-en-v1.5'),
47
+ .string({ error: "memory.embeddings.localModel must be a string" })
48
+ .default("Xenova/bge-small-en-v1.5"),
27
49
  openaiModel: z
28
- .string({ error: 'memory.embeddings.openaiModel must be a string' })
29
- .default('text-embedding-3-small'),
50
+ .string({ error: "memory.embeddings.openaiModel must be a string" })
51
+ .default("text-embedding-3-small"),
30
52
  geminiModel: z
31
- .string({ error: 'memory.embeddings.geminiModel must be a string' })
32
- .default('gemini-embedding-001'),
53
+ .string({ error: "memory.embeddings.geminiModel must be a string" })
54
+ .default("gemini-embedding-001"),
33
55
  ollamaModel: z
34
- .string({ error: 'memory.embeddings.ollamaModel must be a string' })
35
- .default('nomic-embed-text'),
56
+ .string({ error: "memory.embeddings.ollamaModel must be a string" })
57
+ .default("nomic-embed-text"),
36
58
  });
37
59
 
38
60
  export const QdrantConfigSchema = z.object({
39
61
  url: z
40
- .string({ error: 'memory.qdrant.url must be a string' })
41
- .default('http://127.0.0.1:6333'),
62
+ .string({ error: "memory.qdrant.url must be a string" })
63
+ .default("http://127.0.0.1:6333"),
42
64
  collection: z
43
- .string({ error: 'memory.qdrant.collection must be a string' })
44
- .default('memory'),
65
+ .string({ error: "memory.qdrant.collection must be a string" })
66
+ .default("memory"),
45
67
  vectorSize: z
46
- .number({ error: 'memory.qdrant.vectorSize must be a number' })
47
- .int('memory.qdrant.vectorSize must be an integer')
48
- .positive('memory.qdrant.vectorSize must be a positive integer')
68
+ .number({ error: "memory.qdrant.vectorSize must be a number" })
69
+ .int("memory.qdrant.vectorSize must be an integer")
70
+ .positive("memory.qdrant.vectorSize must be a positive integer")
49
71
  .default(384),
50
72
  onDisk: z
51
- .boolean({ error: 'memory.qdrant.onDisk must be a boolean' })
73
+ .boolean({ error: "memory.qdrant.onDisk must be a boolean" })
52
74
  .default(true),
53
75
  quantization: z
54
76
  .enum(VALID_QDRANT_QUANTIZATION, {
55
- error: `memory.qdrant.quantization must be one of: ${VALID_QDRANT_QUANTIZATION.join(', ')}`,
77
+ error: `memory.qdrant.quantization must be one of: ${VALID_QDRANT_QUANTIZATION.join(
78
+ ", ",
79
+ )}`,
56
80
  })
57
- .default('scalar'),
81
+ .default("scalar"),
58
82
  });
59
83
 
60
84
  export const MemoryRerankingConfigSchema = z.object({
61
85
  enabled: z
62
- .boolean({ error: 'memory.retrieval.reranking.enabled must be a boolean' })
86
+ .boolean({ error: "memory.retrieval.reranking.enabled must be a boolean" })
63
87
  .default(false),
64
88
  modelIntent: z
65
- .enum(['latency-optimized', 'quality-optimized', 'vision-optimized'], {
66
- error: 'memory.retrieval.reranking.modelIntent must be a valid model intent',
89
+ .enum(["latency-optimized", "quality-optimized", "vision-optimized"], {
90
+ error:
91
+ "memory.retrieval.reranking.modelIntent must be a valid model intent",
67
92
  })
68
- .default('latency-optimized'),
93
+ .default("latency-optimized"),
69
94
  topK: z
70
- .number({ error: 'memory.retrieval.reranking.topK must be a number' })
71
- .int('memory.retrieval.reranking.topK must be an integer')
72
- .positive('memory.retrieval.reranking.topK must be a positive integer')
95
+ .number({ error: "memory.retrieval.reranking.topK must be a number" })
96
+ .int("memory.retrieval.reranking.topK must be an integer")
97
+ .positive("memory.retrieval.reranking.topK must be a positive integer")
73
98
  .default(20),
74
99
  });
75
100
 
76
101
  export const MemoryDynamicBudgetConfigSchema = z.object({
77
102
  enabled: z
78
- .boolean({ error: 'memory.retrieval.dynamicBudget.enabled must be a boolean' })
103
+ .boolean({
104
+ error: "memory.retrieval.dynamicBudget.enabled must be a boolean",
105
+ })
79
106
  .default(true),
80
107
  minInjectTokens: z
81
- .number({ error: 'memory.retrieval.dynamicBudget.minInjectTokens must be a number' })
82
- .int('memory.retrieval.dynamicBudget.minInjectTokens must be an integer')
83
- .positive('memory.retrieval.dynamicBudget.minInjectTokens must be a positive integer')
108
+ .number({
109
+ error: "memory.retrieval.dynamicBudget.minInjectTokens must be a number",
110
+ })
111
+ .int("memory.retrieval.dynamicBudget.minInjectTokens must be an integer")
112
+ .positive(
113
+ "memory.retrieval.dynamicBudget.minInjectTokens must be a positive integer",
114
+ )
84
115
  .default(1200),
85
116
  maxInjectTokens: z
86
- .number({ error: 'memory.retrieval.dynamicBudget.maxInjectTokens must be a number' })
87
- .int('memory.retrieval.dynamicBudget.maxInjectTokens must be an integer')
88
- .positive('memory.retrieval.dynamicBudget.maxInjectTokens must be a positive integer')
117
+ .number({
118
+ error: "memory.retrieval.dynamicBudget.maxInjectTokens must be a number",
119
+ })
120
+ .int("memory.retrieval.dynamicBudget.maxInjectTokens must be an integer")
121
+ .positive(
122
+ "memory.retrieval.dynamicBudget.maxInjectTokens must be a positive integer",
123
+ )
89
124
  .default(10000),
90
125
  targetHeadroomTokens: z
91
- .number({ error: 'memory.retrieval.dynamicBudget.targetHeadroomTokens must be a number' })
92
- .int('memory.retrieval.dynamicBudget.targetHeadroomTokens must be an integer')
93
- .positive('memory.retrieval.dynamicBudget.targetHeadroomTokens must be a positive integer')
126
+ .number({
127
+ error:
128
+ "memory.retrieval.dynamicBudget.targetHeadroomTokens must be a number",
129
+ })
130
+ .int(
131
+ "memory.retrieval.dynamicBudget.targetHeadroomTokens must be an integer",
132
+ )
133
+ .positive(
134
+ "memory.retrieval.dynamicBudget.targetHeadroomTokens must be a positive integer",
135
+ )
94
136
  .default(10000),
95
137
  });
96
138
 
97
139
  export const MemoryEarlyTerminationConfigSchema = z.object({
98
140
  enabled: z
99
- .boolean({ error: 'memory.retrieval.earlyTermination.enabled must be a boolean' })
141
+ .boolean({
142
+ error: "memory.retrieval.earlyTermination.enabled must be a boolean",
143
+ })
100
144
  .default(true),
101
145
  minCandidates: z
102
- .number({ error: 'memory.retrieval.earlyTermination.minCandidates must be a number' })
103
- .int('memory.retrieval.earlyTermination.minCandidates must be an integer')
104
- .positive('memory.retrieval.earlyTermination.minCandidates must be a positive integer')
146
+ .number({
147
+ error: "memory.retrieval.earlyTermination.minCandidates must be a number",
148
+ })
149
+ .int("memory.retrieval.earlyTermination.minCandidates must be an integer")
150
+ .positive(
151
+ "memory.retrieval.earlyTermination.minCandidates must be a positive integer",
152
+ )
105
153
  .default(20),
106
154
  minHighConfidence: z
107
- .number({ error: 'memory.retrieval.earlyTermination.minHighConfidence must be a number' })
108
- .int('memory.retrieval.earlyTermination.minHighConfidence must be an integer')
109
- .positive('memory.retrieval.earlyTermination.minHighConfidence must be a positive integer')
155
+ .number({
156
+ error:
157
+ "memory.retrieval.earlyTermination.minHighConfidence must be a number",
158
+ })
159
+ .int(
160
+ "memory.retrieval.earlyTermination.minHighConfidence must be an integer",
161
+ )
162
+ .positive(
163
+ "memory.retrieval.earlyTermination.minHighConfidence must be a positive integer",
164
+ )
110
165
  .default(10),
111
166
  confidenceThreshold: z
112
- .number({ error: 'memory.retrieval.earlyTermination.confidenceThreshold must be a number' })
113
- .min(0, 'memory.retrieval.earlyTermination.confidenceThreshold must be >= 0')
114
- .max(1, 'memory.retrieval.earlyTermination.confidenceThreshold must be <= 1')
167
+ .number({
168
+ error:
169
+ "memory.retrieval.earlyTermination.confidenceThreshold must be a number",
170
+ })
171
+ .min(
172
+ 0,
173
+ "memory.retrieval.earlyTermination.confidenceThreshold must be >= 0",
174
+ )
175
+ .max(
176
+ 1,
177
+ "memory.retrieval.earlyTermination.confidenceThreshold must be <= 1",
178
+ )
115
179
  .default(0.7),
116
180
  });
117
181
 
@@ -122,299 +186,440 @@ export const MemoryEarlyTerminationConfigSchema = z.object({
122
186
  */
123
187
  const MemoryFreshnessConfigSchema = z.object({
124
188
  enabled: z
125
- .boolean({ error: 'memory.retrieval.freshness.enabled must be a boolean' })
189
+ .boolean({ error: "memory.retrieval.freshness.enabled must be a boolean" })
126
190
  .default(true),
127
- maxAgeDays: z.object({
128
- fact: z
129
- .number({ error: 'memory.retrieval.freshness.maxAgeDays.fact must be a number' })
130
- .nonnegative('memory.retrieval.freshness.maxAgeDays.fact must be non-negative')
131
- .default(0),
132
- preference: z
133
- .number({ error: 'memory.retrieval.freshness.maxAgeDays.preference must be a number' })
134
- .nonnegative('memory.retrieval.freshness.maxAgeDays.preference must be non-negative')
135
- .default(0),
136
- behavior: z
137
- .number({ error: 'memory.retrieval.freshness.maxAgeDays.behavior must be a number' })
138
- .nonnegative('memory.retrieval.freshness.maxAgeDays.behavior must be non-negative')
139
- .default(90),
140
- event: z
141
- .number({ error: 'memory.retrieval.freshness.maxAgeDays.event must be a number' })
142
- .nonnegative('memory.retrieval.freshness.maxAgeDays.event must be non-negative')
143
- .default(30),
144
- opinion: z
145
- .number({ error: 'memory.retrieval.freshness.maxAgeDays.opinion must be a number' })
146
- .nonnegative('memory.retrieval.freshness.maxAgeDays.opinion must be non-negative')
147
- .default(60),
148
- }).default({ fact: 0, preference: 0, behavior: 90, event: 30, opinion: 60 }),
191
+ maxAgeDays: z
192
+ .object({
193
+ fact: z
194
+ .number({
195
+ error: "memory.retrieval.freshness.maxAgeDays.fact must be a number",
196
+ })
197
+ .nonnegative(
198
+ "memory.retrieval.freshness.maxAgeDays.fact must be non-negative",
199
+ )
200
+ .default(0),
201
+ preference: z
202
+ .number({
203
+ error:
204
+ "memory.retrieval.freshness.maxAgeDays.preference must be a number",
205
+ })
206
+ .nonnegative(
207
+ "memory.retrieval.freshness.maxAgeDays.preference must be non-negative",
208
+ )
209
+ .default(0),
210
+ behavior: z
211
+ .number({
212
+ error:
213
+ "memory.retrieval.freshness.maxAgeDays.behavior must be a number",
214
+ })
215
+ .nonnegative(
216
+ "memory.retrieval.freshness.maxAgeDays.behavior must be non-negative",
217
+ )
218
+ .default(90),
219
+ event: z
220
+ .number({
221
+ error: "memory.retrieval.freshness.maxAgeDays.event must be a number",
222
+ })
223
+ .nonnegative(
224
+ "memory.retrieval.freshness.maxAgeDays.event must be non-negative",
225
+ )
226
+ .default(30),
227
+ opinion: z
228
+ .number({
229
+ error:
230
+ "memory.retrieval.freshness.maxAgeDays.opinion must be a number",
231
+ })
232
+ .nonnegative(
233
+ "memory.retrieval.freshness.maxAgeDays.opinion must be non-negative",
234
+ )
235
+ .default(60),
236
+ })
237
+ .default({ fact: 0, preference: 0, behavior: 90, event: 30, opinion: 60 }),
149
238
  staleDecay: z
150
- .number({ error: 'memory.retrieval.freshness.staleDecay must be a number' })
151
- .min(0, 'memory.retrieval.freshness.staleDecay must be >= 0')
152
- .max(1, 'memory.retrieval.freshness.staleDecay must be <= 1')
239
+ .number({ error: "memory.retrieval.freshness.staleDecay must be a number" })
240
+ .min(0, "memory.retrieval.freshness.staleDecay must be >= 0")
241
+ .max(1, "memory.retrieval.freshness.staleDecay must be <= 1")
153
242
  .default(0.5),
154
243
  reinforcementShieldDays: z
155
- .number({ error: 'memory.retrieval.freshness.reinforcementShieldDays must be a number' })
156
- .nonnegative('memory.retrieval.freshness.reinforcementShieldDays must be non-negative')
244
+ .number({
245
+ error:
246
+ "memory.retrieval.freshness.reinforcementShieldDays must be a number",
247
+ })
248
+ .nonnegative(
249
+ "memory.retrieval.freshness.reinforcementShieldDays must be non-negative",
250
+ )
157
251
  .default(7),
158
252
  });
159
253
 
160
254
  export const MemoryRetrievalConfigSchema = z.object({
161
255
  lexicalTopK: z
162
- .number({ error: 'memory.retrieval.lexicalTopK must be a number' })
163
- .int('memory.retrieval.lexicalTopK must be an integer')
164
- .positive('memory.retrieval.lexicalTopK must be a positive integer')
256
+ .number({ error: "memory.retrieval.lexicalTopK must be a number" })
257
+ .int("memory.retrieval.lexicalTopK must be an integer")
258
+ .positive("memory.retrieval.lexicalTopK must be a positive integer")
165
259
  .default(80),
166
260
  semanticTopK: z
167
- .number({ error: 'memory.retrieval.semanticTopK must be a number' })
168
- .int('memory.retrieval.semanticTopK must be an integer')
169
- .positive('memory.retrieval.semanticTopK must be a positive integer')
261
+ .number({ error: "memory.retrieval.semanticTopK must be a number" })
262
+ .int("memory.retrieval.semanticTopK must be an integer")
263
+ .positive("memory.retrieval.semanticTopK must be a positive integer")
170
264
  .default(40),
171
265
  maxInjectTokens: z
172
- .number({ error: 'memory.retrieval.maxInjectTokens must be a number' })
173
- .int('memory.retrieval.maxInjectTokens must be an integer')
174
- .positive('memory.retrieval.maxInjectTokens must be a positive integer')
266
+ .number({ error: "memory.retrieval.maxInjectTokens must be a number" })
267
+ .int("memory.retrieval.maxInjectTokens must be an integer")
268
+ .positive("memory.retrieval.maxInjectTokens must be a positive integer")
175
269
  .default(10000),
176
270
  injectionFormat: z
177
- .enum(['markdown', 'structured_v1'], { error: 'memory.retrieval.injectionFormat must be "markdown" or "structured_v1"' })
178
- .default('markdown'),
271
+ .enum(["markdown", "structured_v1"], {
272
+ error:
273
+ 'memory.retrieval.injectionFormat must be "markdown" or "structured_v1"',
274
+ })
275
+ .default("markdown"),
179
276
  injectionStrategy: z
180
- .enum(['prepend_user_block', 'separate_context_message'], {
181
- error: 'memory.retrieval.injectionStrategy must be "prepend_user_block" or "separate_context_message"',
277
+ .enum(["prepend_user_block", "separate_context_message"], {
278
+ error:
279
+ 'memory.retrieval.injectionStrategy must be "prepend_user_block" or "separate_context_message"',
182
280
  })
183
- .default('prepend_user_block'),
184
- reranking: MemoryRerankingConfigSchema.default(MemoryRerankingConfigSchema.parse({})),
185
- freshness: MemoryFreshnessConfigSchema.default(MemoryFreshnessConfigSchema.parse({})),
281
+ .default("prepend_user_block"),
282
+ reranking: MemoryRerankingConfigSchema.default(
283
+ MemoryRerankingConfigSchema.parse({}),
284
+ ),
285
+ freshness: MemoryFreshnessConfigSchema.default(
286
+ MemoryFreshnessConfigSchema.parse({}),
287
+ ),
186
288
  scopePolicy: z
187
- .enum(['allow_global_fallback', 'strict'], {
188
- error: 'memory.retrieval.scopePolicy must be "allow_global_fallback" or "strict"',
289
+ .enum(["allow_global_fallback", "strict"], {
290
+ error:
291
+ 'memory.retrieval.scopePolicy must be "allow_global_fallback" or "strict"',
189
292
  })
190
- .default('allow_global_fallback'),
191
- dynamicBudget: MemoryDynamicBudgetConfigSchema.default(MemoryDynamicBudgetConfigSchema.parse({})),
192
- earlyTermination: MemoryEarlyTerminationConfigSchema.default(MemoryEarlyTerminationConfigSchema.parse({})),
293
+ .default("allow_global_fallback"),
294
+ dynamicBudget: MemoryDynamicBudgetConfigSchema.default(
295
+ MemoryDynamicBudgetConfigSchema.parse({}),
296
+ ),
297
+ earlyTermination: MemoryEarlyTerminationConfigSchema.default(
298
+ MemoryEarlyTerminationConfigSchema.parse({}),
299
+ ),
193
300
  });
194
301
 
195
302
  export const MemorySegmentationConfigSchema = z.object({
196
303
  targetTokens: z
197
- .number({ error: 'memory.segmentation.targetTokens must be a number' })
198
- .int('memory.segmentation.targetTokens must be an integer')
199
- .positive('memory.segmentation.targetTokens must be a positive integer')
304
+ .number({ error: "memory.segmentation.targetTokens must be a number" })
305
+ .int("memory.segmentation.targetTokens must be an integer")
306
+ .positive("memory.segmentation.targetTokens must be a positive integer")
200
307
  .default(450),
201
308
  overlapTokens: z
202
- .number({ error: 'memory.segmentation.overlapTokens must be a number' })
203
- .int('memory.segmentation.overlapTokens must be an integer')
204
- .nonnegative('memory.segmentation.overlapTokens must be a non-negative integer')
309
+ .number({ error: "memory.segmentation.overlapTokens must be a number" })
310
+ .int("memory.segmentation.overlapTokens must be an integer")
311
+ .nonnegative(
312
+ "memory.segmentation.overlapTokens must be a non-negative integer",
313
+ )
205
314
  .default(60),
206
315
  });
207
316
 
208
317
  export const MemoryJobsConfigSchema = z.object({
209
318
  workerConcurrency: z
210
- .number({ error: 'memory.jobs.workerConcurrency must be a number' })
211
- .int('memory.jobs.workerConcurrency must be an integer')
212
- .positive('memory.jobs.workerConcurrency must be a positive integer')
319
+ .number({ error: "memory.jobs.workerConcurrency must be a number" })
320
+ .int("memory.jobs.workerConcurrency must be an integer")
321
+ .positive("memory.jobs.workerConcurrency must be a positive integer")
213
322
  .default(2),
214
323
  batchSize: z
215
- .number({ error: 'memory.jobs.batchSize must be a number' })
216
- .int('memory.jobs.batchSize must be an integer')
217
- .positive('memory.jobs.batchSize must be a positive integer')
324
+ .number({ error: "memory.jobs.batchSize must be a number" })
325
+ .int("memory.jobs.batchSize must be an integer")
326
+ .positive("memory.jobs.batchSize must be a positive integer")
218
327
  .default(10),
219
328
  stalledJobTimeoutMs: z
220
- .number({ error: 'memory.jobs.stalledJobTimeoutMs must be a number' })
221
- .int('memory.jobs.stalledJobTimeoutMs must be an integer')
222
- .positive('memory.jobs.stalledJobTimeoutMs must be a positive integer')
329
+ .number({ error: "memory.jobs.stalledJobTimeoutMs must be a number" })
330
+ .int("memory.jobs.stalledJobTimeoutMs must be an integer")
331
+ .positive("memory.jobs.stalledJobTimeoutMs must be a positive integer")
223
332
  .default(30 * 60 * 1000),
224
333
  });
225
334
 
226
335
  export const MemoryRetentionConfigSchema = z.object({
227
336
  keepRawForever: z
228
- .boolean({ error: 'memory.retention.keepRawForever must be a boolean' })
337
+ .boolean({ error: "memory.retention.keepRawForever must be a boolean" })
229
338
  .default(true),
230
339
  });
231
340
 
232
341
  export const MemoryCleanupConfigSchema = z.object({
233
342
  enabled: z
234
- .boolean({ error: 'memory.cleanup.enabled must be a boolean' })
343
+ .boolean({ error: "memory.cleanup.enabled must be a boolean" })
235
344
  .default(true),
236
345
  enqueueIntervalMs: z
237
- .number({ error: 'memory.cleanup.enqueueIntervalMs must be a number' })
238
- .int('memory.cleanup.enqueueIntervalMs must be an integer')
239
- .positive('memory.cleanup.enqueueIntervalMs must be a positive integer')
346
+ .number({ error: "memory.cleanup.enqueueIntervalMs must be a number" })
347
+ .int("memory.cleanup.enqueueIntervalMs must be an integer")
348
+ .positive("memory.cleanup.enqueueIntervalMs must be a positive integer")
240
349
  .default(6 * 60 * 60 * 1000),
241
350
  resolvedConflictRetentionMs: z
242
- .number({ error: 'memory.cleanup.resolvedConflictRetentionMs must be a number' })
243
- .int('memory.cleanup.resolvedConflictRetentionMs must be an integer')
244
- .positive('memory.cleanup.resolvedConflictRetentionMs must be a positive integer')
351
+ .number({
352
+ error: "memory.cleanup.resolvedConflictRetentionMs must be a number",
353
+ })
354
+ .int("memory.cleanup.resolvedConflictRetentionMs must be an integer")
355
+ .positive(
356
+ "memory.cleanup.resolvedConflictRetentionMs must be a positive integer",
357
+ )
245
358
  .default(30 * 24 * 60 * 60 * 1000),
246
359
  supersededItemRetentionMs: z
247
- .number({ error: 'memory.cleanup.supersededItemRetentionMs must be a number' })
248
- .int('memory.cleanup.supersededItemRetentionMs must be an integer')
249
- .positive('memory.cleanup.supersededItemRetentionMs must be a positive integer')
360
+ .number({
361
+ error: "memory.cleanup.supersededItemRetentionMs must be a number",
362
+ })
363
+ .int("memory.cleanup.supersededItemRetentionMs must be an integer")
364
+ .positive(
365
+ "memory.cleanup.supersededItemRetentionMs must be a positive integer",
366
+ )
250
367
  .default(30 * 24 * 60 * 60 * 1000),
251
368
  conversationRetentionDays: z
252
- .number({ error: 'memory.cleanup.conversationRetentionDays must be a number' })
253
- .int('memory.cleanup.conversationRetentionDays must be an integer')
254
- .nonnegative('memory.cleanup.conversationRetentionDays must be non-negative')
369
+ .number({
370
+ error: "memory.cleanup.conversationRetentionDays must be a number",
371
+ })
372
+ .int("memory.cleanup.conversationRetentionDays must be an integer")
373
+ .nonnegative(
374
+ "memory.cleanup.conversationRetentionDays must be non-negative",
375
+ )
255
376
  .default(90),
256
377
  });
257
378
 
258
379
  export const MemoryExtractionConfigSchema = z.object({
259
380
  useLLM: z
260
- .boolean({ error: 'memory.extraction.useLLM must be a boolean' })
381
+ .boolean({ error: "memory.extraction.useLLM must be a boolean" })
261
382
  .default(true),
262
383
  modelIntent: z
263
- .enum(['latency-optimized', 'quality-optimized', 'vision-optimized'], {
264
- error: 'memory.extraction.modelIntent must be a valid model intent',
384
+ .enum(["latency-optimized", "quality-optimized", "vision-optimized"], {
385
+ error: "memory.extraction.modelIntent must be a valid model intent",
265
386
  })
266
- .default('latency-optimized'),
387
+ .default("latency-optimized"),
267
388
  extractFromAssistant: z
268
- .boolean({ error: 'memory.extraction.extractFromAssistant must be a boolean' })
389
+ .boolean({
390
+ error: "memory.extraction.extractFromAssistant must be a boolean",
391
+ })
269
392
  .default(true),
270
393
  });
271
394
 
272
395
  export const MemoryEntityConfigSchema = z.object({
273
396
  enabled: z
274
- .boolean({ error: 'memory.entity.enabled must be a boolean' })
397
+ .boolean({ error: "memory.entity.enabled must be a boolean" })
275
398
  .default(true),
276
399
  modelIntent: z
277
- .enum(['latency-optimized', 'quality-optimized', 'vision-optimized'], {
278
- error: 'memory.entity.modelIntent must be a valid model intent',
400
+ .enum(["latency-optimized", "quality-optimized", "vision-optimized"], {
401
+ error: "memory.entity.modelIntent must be a valid model intent",
402
+ })
403
+ .default("latency-optimized"),
404
+ extractRelations: z
405
+ .object({
406
+ enabled: z
407
+ .boolean({
408
+ error: "memory.entity.extractRelations.enabled must be a boolean",
409
+ })
410
+ .default(true),
411
+ backfillBatchSize: z
412
+ .number({
413
+ error:
414
+ "memory.entity.extractRelations.backfillBatchSize must be a number",
415
+ })
416
+ .int(
417
+ "memory.entity.extractRelations.backfillBatchSize must be an integer",
418
+ )
419
+ .positive(
420
+ "memory.entity.extractRelations.backfillBatchSize must be a positive integer",
421
+ )
422
+ .default(200),
279
423
  })
280
- .default('latency-optimized'),
281
- extractRelations: z.object({
282
- enabled: z
283
- .boolean({ error: 'memory.entity.extractRelations.enabled must be a boolean' })
284
- .default(true),
285
- backfillBatchSize: z
286
- .number({ error: 'memory.entity.extractRelations.backfillBatchSize must be a number' })
287
- .int('memory.entity.extractRelations.backfillBatchSize must be an integer')
288
- .positive('memory.entity.extractRelations.backfillBatchSize must be a positive integer')
289
- .default(200),
290
- }).default({ enabled: true, backfillBatchSize: 200 }),
291
- relationRetrieval: z.object({
292
- enabled: z
293
- .boolean({ error: 'memory.entity.relationRetrieval.enabled must be a boolean' })
294
- .default(true),
295
- maxSeedEntities: z
296
- .number({ error: 'memory.entity.relationRetrieval.maxSeedEntities must be a number' })
297
- .int('memory.entity.relationRetrieval.maxSeedEntities must be an integer')
298
- .positive('memory.entity.relationRetrieval.maxSeedEntities must be a positive integer')
299
- .default(8),
300
- maxNeighborEntities: z
301
- .number({ error: 'memory.entity.relationRetrieval.maxNeighborEntities must be a number' })
302
- .int('memory.entity.relationRetrieval.maxNeighborEntities must be an integer')
303
- .positive('memory.entity.relationRetrieval.maxNeighborEntities must be a positive integer')
304
- .default(20),
305
- maxEdges: z
306
- .number({ error: 'memory.entity.relationRetrieval.maxEdges must be a number' })
307
- .int('memory.entity.relationRetrieval.maxEdges must be an integer')
308
- .positive('memory.entity.relationRetrieval.maxEdges must be a positive integer')
309
- .default(40),
310
- neighborScoreMultiplier: z
311
- .number({ error: 'memory.entity.relationRetrieval.neighborScoreMultiplier must be a number' })
312
- .gt(0, 'memory.entity.relationRetrieval.neighborScoreMultiplier must be > 0')
313
- .lte(1, 'memory.entity.relationRetrieval.neighborScoreMultiplier must be <= 1')
314
- .default(0.7),
315
- maxDepth: z
316
- .number({ error: 'memory.entity.relationRetrieval.maxDepth must be a number' })
317
- .int('memory.entity.relationRetrieval.maxDepth must be an integer')
318
- .positive('memory.entity.relationRetrieval.maxDepth must be a positive integer')
319
- .default(3),
320
- depthDecay: z
321
- .boolean({ error: 'memory.entity.relationRetrieval.depthDecay must be a boolean' })
322
- .default(true),
323
- }).default({
324
- enabled: true,
325
- maxSeedEntities: 8,
326
- maxNeighborEntities: 20,
327
- maxEdges: 40,
328
- neighborScoreMultiplier: 0.7,
329
- maxDepth: 3,
330
- depthDecay: true,
331
- }),
424
+ .default({ enabled: true, backfillBatchSize: 200 }),
425
+ relationRetrieval: z
426
+ .object({
427
+ enabled: z
428
+ .boolean({
429
+ error: "memory.entity.relationRetrieval.enabled must be a boolean",
430
+ })
431
+ .default(true),
432
+ maxSeedEntities: z
433
+ .number({
434
+ error:
435
+ "memory.entity.relationRetrieval.maxSeedEntities must be a number",
436
+ })
437
+ .int(
438
+ "memory.entity.relationRetrieval.maxSeedEntities must be an integer",
439
+ )
440
+ .positive(
441
+ "memory.entity.relationRetrieval.maxSeedEntities must be a positive integer",
442
+ )
443
+ .default(8),
444
+ maxNeighborEntities: z
445
+ .number({
446
+ error:
447
+ "memory.entity.relationRetrieval.maxNeighborEntities must be a number",
448
+ })
449
+ .int(
450
+ "memory.entity.relationRetrieval.maxNeighborEntities must be an integer",
451
+ )
452
+ .positive(
453
+ "memory.entity.relationRetrieval.maxNeighborEntities must be a positive integer",
454
+ )
455
+ .default(20),
456
+ maxEdges: z
457
+ .number({
458
+ error: "memory.entity.relationRetrieval.maxEdges must be a number",
459
+ })
460
+ .int("memory.entity.relationRetrieval.maxEdges must be an integer")
461
+ .positive(
462
+ "memory.entity.relationRetrieval.maxEdges must be a positive integer",
463
+ )
464
+ .default(40),
465
+ neighborScoreMultiplier: z
466
+ .number({
467
+ error:
468
+ "memory.entity.relationRetrieval.neighborScoreMultiplier must be a number",
469
+ })
470
+ .gt(
471
+ 0,
472
+ "memory.entity.relationRetrieval.neighborScoreMultiplier must be > 0",
473
+ )
474
+ .lte(
475
+ 1,
476
+ "memory.entity.relationRetrieval.neighborScoreMultiplier must be <= 1",
477
+ )
478
+ .default(0.7),
479
+ maxDepth: z
480
+ .number({
481
+ error: "memory.entity.relationRetrieval.maxDepth must be a number",
482
+ })
483
+ .int("memory.entity.relationRetrieval.maxDepth must be an integer")
484
+ .positive(
485
+ "memory.entity.relationRetrieval.maxDepth must be a positive integer",
486
+ )
487
+ .default(3),
488
+ depthDecay: z
489
+ .boolean({
490
+ error: "memory.entity.relationRetrieval.depthDecay must be a boolean",
491
+ })
492
+ .default(true),
493
+ })
494
+ .default({
495
+ enabled: true,
496
+ maxSeedEntities: 8,
497
+ maxNeighborEntities: 20,
498
+ maxEdges: 40,
499
+ neighborScoreMultiplier: 0.7,
500
+ maxDepth: 3,
501
+ depthDecay: true,
502
+ }),
332
503
  });
333
504
 
334
505
  export const MemoryConflictsConfigSchema = z.object({
335
506
  enabled: z
336
- .boolean({ error: 'memory.conflicts.enabled must be a boolean' })
507
+ .boolean({ error: "memory.conflicts.enabled must be a boolean" })
337
508
  .default(true),
338
509
  gateMode: z
339
- .enum(['soft'], { error: 'memory.conflicts.gateMode must be "soft"' })
340
- .default('soft'),
510
+ .enum(["soft"], { error: 'memory.conflicts.gateMode must be "soft"' })
511
+ .default("soft"),
341
512
  reaskCooldownTurns: z
342
- .number({ error: 'memory.conflicts.reaskCooldownTurns must be a number' })
343
- .int('memory.conflicts.reaskCooldownTurns must be an integer')
344
- .positive('memory.conflicts.reaskCooldownTurns must be a positive integer')
513
+ .number({ error: "memory.conflicts.reaskCooldownTurns must be a number" })
514
+ .int("memory.conflicts.reaskCooldownTurns must be an integer")
515
+ .positive("memory.conflicts.reaskCooldownTurns must be a positive integer")
345
516
  .default(3),
346
517
  resolverLlmTimeoutMs: z
347
- .number({ error: 'memory.conflicts.resolverLlmTimeoutMs must be a number' })
348
- .int('memory.conflicts.resolverLlmTimeoutMs must be an integer')
349
- .positive('memory.conflicts.resolverLlmTimeoutMs must be a positive integer')
518
+ .number({ error: "memory.conflicts.resolverLlmTimeoutMs must be a number" })
519
+ .int("memory.conflicts.resolverLlmTimeoutMs must be an integer")
520
+ .positive(
521
+ "memory.conflicts.resolverLlmTimeoutMs must be a positive integer",
522
+ )
350
523
  .default(12000),
351
524
  relevanceThreshold: z
352
- .number({ error: 'memory.conflicts.relevanceThreshold must be a number' })
353
- .min(0, 'memory.conflicts.relevanceThreshold must be >= 0')
354
- .max(1, 'memory.conflicts.relevanceThreshold must be <= 1')
525
+ .number({ error: "memory.conflicts.relevanceThreshold must be a number" })
526
+ .min(0, "memory.conflicts.relevanceThreshold must be >= 0")
527
+ .max(1, "memory.conflicts.relevanceThreshold must be <= 1")
355
528
  .default(0.3),
356
529
  askOnIrrelevantTurns: z
357
- .boolean({ error: 'memory.conflicts.askOnIrrelevantTurns must be a boolean' })
530
+ .boolean({
531
+ error: "memory.conflicts.askOnIrrelevantTurns must be a boolean",
532
+ })
358
533
  .default(false),
359
534
  conflictableKinds: z
360
535
  .array(
361
536
  z.enum(VALID_MEMORY_ITEM_KINDS, {
362
- error: `memory.conflicts.conflictableKinds entries must be one of: ${VALID_MEMORY_ITEM_KINDS.join(', ')}`,
537
+ error: `memory.conflicts.conflictableKinds entries must be one of: ${VALID_MEMORY_ITEM_KINDS.join(
538
+ ", ",
539
+ )}`,
363
540
  }),
364
541
  )
365
- .nonempty({ message: 'memory.conflicts.conflictableKinds must not be empty' })
542
+ .nonempty({
543
+ message: "memory.conflicts.conflictableKinds must not be empty",
544
+ })
366
545
  .default([...DEFAULT_CONFLICTABLE_KINDS]),
367
546
  });
368
547
 
369
548
  export const MemoryProfileConfigSchema = z.object({
370
549
  enabled: z
371
- .boolean({ error: 'memory.profile.enabled must be a boolean' })
550
+ .boolean({ error: "memory.profile.enabled must be a boolean" })
372
551
  .default(true),
373
552
  maxInjectTokens: z
374
- .number({ error: 'memory.profile.maxInjectTokens must be a number' })
375
- .int('memory.profile.maxInjectTokens must be an integer')
376
- .positive('memory.profile.maxInjectTokens must be a positive integer')
553
+ .number({ error: "memory.profile.maxInjectTokens must be a number" })
554
+ .int("memory.profile.maxInjectTokens must be an integer")
555
+ .positive("memory.profile.maxInjectTokens must be a positive integer")
377
556
  .default(800),
378
557
  });
379
558
 
380
559
  export const MemorySummarizationConfigSchema = z.object({
381
560
  useLLM: z
382
- .boolean({ error: 'memory.summarization.useLLM must be a boolean' })
561
+ .boolean({ error: "memory.summarization.useLLM must be a boolean" })
383
562
  .default(true),
384
563
  modelIntent: z
385
- .enum(['latency-optimized', 'quality-optimized', 'vision-optimized'], {
386
- error: 'memory.summarization.modelIntent must be a valid model intent',
564
+ .enum(["latency-optimized", "quality-optimized", "vision-optimized"], {
565
+ error: "memory.summarization.modelIntent must be a valid model intent",
387
566
  })
388
- .default('latency-optimized'),
567
+ .default("latency-optimized"),
389
568
  });
390
569
 
391
570
  export const MemoryConfigSchema = z.object({
392
571
  enabled: z
393
- .boolean({ error: 'memory.enabled must be a boolean' })
572
+ .boolean({ error: "memory.enabled must be a boolean" })
394
573
  .default(true),
395
- embeddings: MemoryEmbeddingsConfigSchema.default(MemoryEmbeddingsConfigSchema.parse({})),
574
+ embeddings: MemoryEmbeddingsConfigSchema.default(
575
+ MemoryEmbeddingsConfigSchema.parse({}),
576
+ ),
396
577
  qdrant: QdrantConfigSchema.default(QdrantConfigSchema.parse({})),
397
- retrieval: MemoryRetrievalConfigSchema.default(MemoryRetrievalConfigSchema.parse({})),
398
- segmentation: MemorySegmentationConfigSchema.default(MemorySegmentationConfigSchema.parse({})),
578
+ retrieval: MemoryRetrievalConfigSchema.default(
579
+ MemoryRetrievalConfigSchema.parse({}),
580
+ ),
581
+ segmentation: MemorySegmentationConfigSchema.default(
582
+ MemorySegmentationConfigSchema.parse({}),
583
+ ),
399
584
  jobs: MemoryJobsConfigSchema.default(MemoryJobsConfigSchema.parse({})),
400
- retention: MemoryRetentionConfigSchema.default(MemoryRetentionConfigSchema.parse({})),
401
- cleanup: MemoryCleanupConfigSchema.default(MemoryCleanupConfigSchema.parse({})),
402
- extraction: MemoryExtractionConfigSchema.default(MemoryExtractionConfigSchema.parse({})),
403
- summarization: MemorySummarizationConfigSchema.default(MemorySummarizationConfigSchema.parse({})),
585
+ retention: MemoryRetentionConfigSchema.default(
586
+ MemoryRetentionConfigSchema.parse({}),
587
+ ),
588
+ cleanup: MemoryCleanupConfigSchema.default(
589
+ MemoryCleanupConfigSchema.parse({}),
590
+ ),
591
+ extraction: MemoryExtractionConfigSchema.default(
592
+ MemoryExtractionConfigSchema.parse({}),
593
+ ),
594
+ summarization: MemorySummarizationConfigSchema.default(
595
+ MemorySummarizationConfigSchema.parse({}),
596
+ ),
404
597
  entity: MemoryEntityConfigSchema.default(MemoryEntityConfigSchema.parse({})),
405
- conflicts: MemoryConflictsConfigSchema.default(MemoryConflictsConfigSchema.parse({})),
406
- profile: MemoryProfileConfigSchema.default(MemoryProfileConfigSchema.parse({})),
598
+ conflicts: MemoryConflictsConfigSchema.default(
599
+ MemoryConflictsConfigSchema.parse({}),
600
+ ),
601
+ profile: MemoryProfileConfigSchema.default(
602
+ MemoryProfileConfigSchema.parse({}),
603
+ ),
407
604
  });
408
605
 
409
- export type MemoryEmbeddingsConfig = z.infer<typeof MemoryEmbeddingsConfigSchema>;
606
+ export type MemoryEmbeddingsConfig = z.infer<
607
+ typeof MemoryEmbeddingsConfigSchema
608
+ >;
410
609
  export type MemoryRerankingConfig = z.infer<typeof MemoryRerankingConfigSchema>;
411
610
  export type MemoryRetrievalConfig = z.infer<typeof MemoryRetrievalConfigSchema>;
412
- export type MemorySegmentationConfig = z.infer<typeof MemorySegmentationConfigSchema>;
611
+ export type MemorySegmentationConfig = z.infer<
612
+ typeof MemorySegmentationConfigSchema
613
+ >;
413
614
  export type MemoryJobsConfig = z.infer<typeof MemoryJobsConfigSchema>;
414
615
  export type MemoryRetentionConfig = z.infer<typeof MemoryRetentionConfigSchema>;
415
616
  export type MemoryCleanupConfig = z.infer<typeof MemoryCleanupConfigSchema>;
416
- export type MemoryExtractionConfig = z.infer<typeof MemoryExtractionConfigSchema>;
417
- export type MemorySummarizationConfig = z.infer<typeof MemorySummarizationConfigSchema>;
617
+ export type MemoryExtractionConfig = z.infer<
618
+ typeof MemoryExtractionConfigSchema
619
+ >;
620
+ export type MemorySummarizationConfig = z.infer<
621
+ typeof MemorySummarizationConfigSchema
622
+ >;
418
623
  export type MemoryEntityConfig = z.infer<typeof MemoryEntityConfigSchema>;
419
624
  export type MemoryConflictsConfig = z.infer<typeof MemoryConflictsConfigSchema>;
420
625
  export type MemoryProfileConfig = z.infer<typeof MemoryProfileConfigSchema>;