@vellumai/assistant 0.7.0 → 0.7.2

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 (989) hide show
  1. package/ARCHITECTURE.md +38 -56
  2. package/Dockerfile +2 -0
  3. package/README.md +3 -4
  4. package/__tests__/permissions/gateway-threshold-reader.test.ts +88 -142
  5. package/bun.lock +29 -26
  6. package/docs/architecture/security.md +38 -16
  7. package/docs/plugins.md +7 -9
  8. package/knip.json +2 -0
  9. package/node_modules/@vellumai/gateway-client/src/index.ts +1 -0
  10. package/node_modules/@vellumai/gateway-client/src/ipc-client.ts +39 -1
  11. package/node_modules/@vellumai/gateway-client/src/types.ts +11 -0
  12. package/node_modules/@vellumai/service-contracts/package.json +2 -0
  13. package/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +4 -0
  14. package/node_modules/@vellumai/service-contracts/src/__tests__/ingress.test.ts +107 -0
  15. package/node_modules/@vellumai/service-contracts/src/index.ts +5 -1
  16. package/node_modules/@vellumai/service-contracts/src/ingress.ts +24 -0
  17. package/node_modules/@vellumai/service-contracts/src/twilio-ingress.ts +84 -0
  18. package/node_modules/@vellumai/skill-host-contracts/__tests__/client.test.ts +1 -5
  19. package/node_modules/@vellumai/skill-host-contracts/src/assistant-event.ts +9 -5
  20. package/node_modules/@vellumai/skill-host-contracts/src/client.ts +10 -16
  21. package/node_modules/@vellumai/skill-host-contracts/src/skill-host.ts +1 -9
  22. package/node_modules/@vellumai/skill-host-contracts/src/tool-types.ts +12 -12
  23. package/node_modules/@vellumai/slack-text/bun.lock +24 -0
  24. package/node_modules/@vellumai/slack-text/package.json +18 -0
  25. package/node_modules/@vellumai/slack-text/src/index.test.ts +153 -0
  26. package/node_modules/@vellumai/slack-text/src/index.ts +235 -0
  27. package/node_modules/@vellumai/slack-text/tsconfig.json +20 -0
  28. package/node_modules/@vellumai/twilio-client/bun.lock +24 -0
  29. package/node_modules/@vellumai/twilio-client/package.json +18 -0
  30. package/node_modules/@vellumai/twilio-client/src/__tests__/twilio-client.test.ts +128 -0
  31. package/node_modules/@vellumai/twilio-client/src/index.ts +179 -0
  32. package/node_modules/@vellumai/twilio-client/tsconfig.json +20 -0
  33. package/openapi.yaml +869 -129
  34. package/package.json +8 -3
  35. package/scripts/generate-openapi.ts +16 -111
  36. package/src/__tests__/agent-wake-override-profile.test.ts +23 -1
  37. package/src/__tests__/anthropic-provider.test.ts +56 -13
  38. package/src/__tests__/app-builder-tool-scripts.test.ts +3 -3
  39. package/src/__tests__/app-bundler.test.ts +170 -1
  40. package/src/__tests__/app-control-flow.test.ts +374 -0
  41. package/src/__tests__/app-control-no-global-cgevent.test.ts +98 -0
  42. package/src/__tests__/app-control-tool-schemas.test.ts +621 -0
  43. package/src/__tests__/app-conversation-ids-backfill.test.ts +278 -0
  44. package/src/__tests__/app-conversation-ids.test.ts +151 -0
  45. package/src/__tests__/app-executors.test.ts +30 -43
  46. package/src/__tests__/approval-cascade.test.ts +0 -15
  47. package/src/__tests__/approval-routes-http.test.ts +29 -23
  48. package/src/__tests__/assistant-event-hub-machine-name.test.ts +146 -0
  49. package/src/__tests__/assistant-event-hub-targeted.test.ts +257 -0
  50. package/src/__tests__/assistant-event-hub.test.ts +235 -79
  51. package/src/__tests__/assistant-event.test.ts +10 -5
  52. package/src/__tests__/assistant-events-sse-hardening.test.ts +44 -17
  53. package/src/__tests__/assistant-feature-flags-integration.test.ts +11 -36
  54. package/src/__tests__/background-shell-host-bash.test.ts +46 -56
  55. package/src/__tests__/bootstrap-turn-cleanup.test.ts +44 -0
  56. package/src/__tests__/btw-routes.test.ts +13 -4
  57. package/src/__tests__/call-controller.test.ts +50 -2
  58. package/src/__tests__/call-domain.test.ts +0 -2
  59. package/src/__tests__/call-routes-http.test.ts +0 -2
  60. package/src/__tests__/call-site-routing-provider.test.ts +193 -0
  61. package/src/__tests__/channel-approval-routes.test.ts +10 -296
  62. package/src/__tests__/channel-approvals.test.ts +25 -17
  63. package/src/__tests__/channel-guardian.test.ts +100 -146
  64. package/src/__tests__/channel-readiness-service.test.ts +59 -1
  65. package/src/__tests__/checker.test.ts +23 -38
  66. package/src/__tests__/compact-event-conversation-id-guard.test.ts +50 -0
  67. package/src/__tests__/compaction-events.test.ts +2 -0
  68. package/src/__tests__/config-loader-backfill.test.ts +90 -155
  69. package/src/__tests__/config-loader-platform-defaults.test.ts +196 -0
  70. package/src/__tests__/config-schema-cmd.test.ts +0 -1
  71. package/src/__tests__/config-schema.test.ts +6 -48
  72. package/src/__tests__/config-set-platform-guard.test.ts +48 -4
  73. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +2 -2
  74. package/src/__tests__/config-watcher.test.ts +14 -2
  75. package/src/__tests__/connection-policy.test.ts +1 -52
  76. package/src/__tests__/contacts-write.test.ts +2 -64
  77. package/src/__tests__/context-image-dimensions.test.ts +1 -1
  78. package/src/__tests__/context-search-memory-source.test.ts +120 -1
  79. package/src/__tests__/context-search-memory-v2-source.test.ts +383 -0
  80. package/src/__tests__/context-search-pkb-source.test.ts +49 -0
  81. package/src/__tests__/context-search-workspace-source.test.ts +9 -22
  82. package/src/__tests__/context-window-manager.test.ts +46 -0
  83. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +2 -0
  84. package/src/__tests__/conversation-agent-loop-overflow.test.ts +102 -29
  85. package/src/__tests__/conversation-agent-loop.test.ts +980 -13
  86. package/src/__tests__/conversation-analysis-routes.test.ts +12 -10
  87. package/src/__tests__/conversation-app-control-instantiation.test.ts +392 -0
  88. package/src/__tests__/conversation-app-control-lifecycle.test.ts +237 -0
  89. package/src/__tests__/conversation-attention-telegram.test.ts +11 -3
  90. package/src/__tests__/conversation-confirmation-signals.test.ts +0 -291
  91. package/src/__tests__/conversation-history-web-search.test.ts +4 -3
  92. package/src/__tests__/conversation-inference-profile-route.test.ts +12 -23
  93. package/src/__tests__/conversation-init.benchmark.test.ts +0 -2
  94. package/src/__tests__/conversation-lifecycle.test.ts +40 -4
  95. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +283 -0
  96. package/src/__tests__/conversation-process-callsite.test.ts +79 -2
  97. package/src/__tests__/conversation-queue.test.ts +3 -8
  98. package/src/__tests__/conversation-routes-disk-view.test.ts +7 -161
  99. package/src/__tests__/conversation-routes-guardian-reply.test.ts +120 -104
  100. package/src/__tests__/conversation-routes-slash-commands.test.ts +76 -66
  101. package/src/__tests__/conversation-runtime-assembly.test.ts +257 -3
  102. package/src/__tests__/conversation-slash-commands.test.ts +24 -8
  103. package/src/__tests__/conversation-slash-queue.test.ts +2 -0
  104. package/src/__tests__/conversation-speed-override.test.ts +0 -3
  105. package/src/__tests__/conversation-starter-routes.test.ts +79 -2
  106. package/src/__tests__/conversation-surfaces-action-delivery.test.ts +202 -0
  107. package/src/__tests__/conversation-surfaces-app-control.test.ts +317 -0
  108. package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +12 -5
  109. package/src/__tests__/conversation-surfaces-standalone.test.ts +18 -14
  110. package/src/__tests__/conversation-surfaces-state-update.test.ts +3 -2
  111. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +8 -46
  112. package/src/__tests__/conversation-usage.test.ts +253 -3
  113. package/src/__tests__/credential-execution-feature-gates.test.ts +5 -12
  114. package/src/__tests__/credential-execution-managed-contract.test.ts +3 -131
  115. package/src/__tests__/credential-execution-shell-lockdown.test.ts +0 -39
  116. package/src/__tests__/credential-health-service.test.ts +68 -0
  117. package/src/__tests__/credential-security-e2e.test.ts +4 -3
  118. package/src/__tests__/credential-security-invariants.test.ts +1 -5
  119. package/src/__tests__/credential-token-resolver.test.ts +180 -0
  120. package/src/__tests__/credentials-cli.test.ts +5 -12
  121. package/src/__tests__/cu-unified-flow.test.ts +206 -27
  122. package/src/__tests__/daemon-assistant-events.test.ts +34 -21
  123. package/src/__tests__/daemon-credential-client.test.ts +102 -17
  124. package/src/__tests__/db-connection-isolation.test.ts +125 -0
  125. package/src/__tests__/db-migration-rollback.test.ts +101 -0
  126. package/src/__tests__/db-schedule-syntax-migration.test.ts +2 -0
  127. package/src/__tests__/db-slack-compaction-watermark-migration.test.ts +169 -0
  128. package/src/__tests__/deterministic-verification-control-plane.test.ts +7 -80
  129. package/src/__tests__/document-conversations.test.ts +332 -0
  130. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +0 -1
  131. package/src/__tests__/embedding-managed-proxy-selection.test.ts +2 -2
  132. package/src/__tests__/emit-event-signal.test.ts +4 -6
  133. package/src/__tests__/events-client-registration.test.ts +193 -49
  134. package/src/__tests__/filing-service.test.ts +58 -7
  135. package/src/__tests__/first-greeting.test.ts +156 -150
  136. package/src/__tests__/fixtures/mock-chrome-extension.ts +108 -66
  137. package/src/__tests__/gateway-only-enforcement.test.ts +0 -1
  138. package/src/__tests__/get-skill-detail-audit.test.ts +3 -8
  139. package/src/__tests__/guardian-binding-drift-heal.test.ts +1 -1
  140. package/src/__tests__/guardian-dispatch.test.ts +1 -1
  141. package/src/__tests__/guardian-grant-minting.test.ts +7 -2
  142. package/src/__tests__/guardian-routing-invariants.test.ts +7 -2
  143. package/src/__tests__/guardian-routing-state.test.ts +1 -1
  144. package/src/__tests__/guardian-verification-voice-binding.test.ts +0 -2
  145. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +30 -11
  146. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +2 -84
  147. package/src/__tests__/headless-browser-mode.test.ts +4 -9
  148. package/src/__tests__/headless-browser-navigate.test.ts +21 -20
  149. package/src/__tests__/heartbeat-service.test.ts +1007 -8
  150. package/src/__tests__/helpers/call-route-handler.ts +7 -1
  151. package/src/__tests__/helpers/channel-test-adapter.ts +2 -2
  152. package/src/__tests__/helpers/create-guardian-binding.ts +91 -0
  153. package/src/__tests__/host-app-control-proxy.test.ts +602 -0
  154. package/src/__tests__/host-app-control-routes.test.ts +263 -0
  155. package/src/__tests__/host-bash-proxy.test.ts +270 -147
  156. package/src/__tests__/host-bash-routes.test.ts +294 -0
  157. package/src/__tests__/host-browser-proxy.test.ts +126 -198
  158. package/src/__tests__/host-browser-routes.test.ts +50 -54
  159. package/src/__tests__/host-cu-proxy.test.ts +78 -144
  160. package/src/__tests__/host-cu-routes-targeted.test.ts +300 -0
  161. package/src/__tests__/host-file-edit-tool.test.ts +47 -1
  162. package/src/__tests__/host-file-proxy-targeted.test.ts +339 -0
  163. package/src/__tests__/host-file-proxy.test.ts +62 -122
  164. package/src/__tests__/host-file-read-tool.test.ts +59 -21
  165. package/src/__tests__/host-file-routes-targeted.test.ts +262 -0
  166. package/src/__tests__/host-file-write-tool.test.ts +42 -1
  167. package/src/__tests__/host-proxy-base.test.ts +312 -0
  168. package/src/__tests__/host-shell-tool.test.ts +53 -70
  169. package/src/__tests__/host-transfer-pending-interactions.test.ts +2 -18
  170. package/src/__tests__/host-transfer-proxy-targeted.test.ts +583 -0
  171. package/src/__tests__/host-transfer-proxy.test.ts +145 -56
  172. package/src/__tests__/host-transfer-routes-targeted.test.ts +447 -0
  173. package/src/__tests__/http-user-message-parity.test.ts +1 -6
  174. package/src/__tests__/identity-intro-cache.test.ts +29 -0
  175. package/src/__tests__/identity-routes.test.ts +103 -1
  176. package/src/__tests__/inbound-slack-persistence.test.ts +31 -0
  177. package/src/__tests__/init-feature-flag-overrides.test.ts +26 -3
  178. package/src/__tests__/injector-chain.test.ts +10 -5
  179. package/src/__tests__/injector-pkb-v2-silenced.test.ts +124 -0
  180. package/src/__tests__/inline-command-runner.test.ts +0 -67
  181. package/src/__tests__/inline-skill-load-permissions.test.ts +5 -13
  182. package/src/__tests__/install-skill-routing.test.ts +1 -13
  183. package/src/__tests__/integration-status.test.ts +85 -5
  184. package/src/__tests__/intent-routing.test.ts +0 -1
  185. package/src/__tests__/jobs-store-qdrant-breaker.test.ts +95 -5
  186. package/src/__tests__/lifecycle-memory-v2-seed.test.ts +17 -0
  187. package/src/__tests__/llm-callsite-catalog.test.ts +34 -0
  188. package/src/__tests__/llm-catalog-parity.test.ts +90 -0
  189. package/src/__tests__/llm-context-resolution.test.ts +180 -0
  190. package/src/__tests__/llm-resolver.test.ts +80 -12
  191. package/src/__tests__/llm-usage-store.test.ts +269 -4
  192. package/src/__tests__/log-export-routes.test.ts +89 -0
  193. package/src/__tests__/managed-profile-guard.test.ts +225 -0
  194. package/src/__tests__/managed-skill-lifecycle.test.ts +0 -11
  195. package/src/__tests__/manual-token-reconciliation.test.ts +334 -0
  196. package/src/__tests__/mcp-auth-routes.test.ts +197 -0
  197. package/src/__tests__/mcp-cli.test.ts +338 -2
  198. package/src/__tests__/memory-jobs-worker-lanes.test.ts +188 -0
  199. package/src/__tests__/memory-v2-static-injector.test.ts +95 -0
  200. package/src/__tests__/migration-cross-version-compatibility.test.ts +197 -291
  201. package/src/__tests__/migration-export-http.test.ts +33 -26
  202. package/src/__tests__/migration-export-streaming.test.ts +18 -10
  203. package/src/__tests__/migration-export-to-gcs.test.ts +49 -9
  204. package/src/__tests__/migration-import-commit-http.test.ts +172 -21
  205. package/src/__tests__/migration-import-from-gcs.test.ts +50 -9
  206. package/src/__tests__/migration-import-from-url.test.ts +20 -6
  207. package/src/__tests__/migration-import-preflight-http.test.ts +95 -95
  208. package/src/__tests__/migration-parity-persistence.test.ts +62 -25
  209. package/src/__tests__/migration-transport.test.ts +115 -23
  210. package/src/__tests__/migration-validate-http.test.ts +105 -80
  211. package/src/__tests__/migration-wizard.test.ts +133 -27
  212. package/src/__tests__/mock-gateway-ipc.ts +1 -0
  213. package/src/__tests__/non-member-access-request.test.ts +1 -1
  214. package/src/__tests__/notification-guardian-path.test.ts +1 -1
  215. package/src/__tests__/oauth-cli.test.ts +0 -2
  216. package/src/__tests__/oauth-store.test.ts +19 -0
  217. package/src/__tests__/oauth2-gateway-transport.test.ts +0 -1
  218. package/src/__tests__/persistence-secret-redaction.test.ts +299 -0
  219. package/src/__tests__/platform-bash-auto-approve.test.ts +26 -21
  220. package/src/__tests__/prechat-onboarding-contract.test.ts +34 -8
  221. package/src/__tests__/pricing.test.ts +68 -4
  222. package/src/__tests__/process-message-background-slack.test.ts +333 -0
  223. package/src/__tests__/provider-commit-message-generator.test.ts +0 -1
  224. package/src/__tests__/provider-managed-proxy-integration.test.ts +153 -17
  225. package/src/__tests__/provider-send-message-override-profile.test.ts +50 -0
  226. package/src/__tests__/provider-usage-tracking.test.ts +208 -0
  227. package/src/__tests__/public-ingress-urls.test.ts +97 -0
  228. package/src/__tests__/reaction-persistence.test.ts +9 -6
  229. package/src/__tests__/rebind-secrets-screen.test.ts +53 -16
  230. package/src/__tests__/recording-handler.test.ts +64 -81
  231. package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +4 -3
  232. package/src/__tests__/relay-server.test.ts +18 -13
  233. package/src/__tests__/require-fresh-approval.test.ts +13 -23
  234. package/src/__tests__/retry-backoff.test.ts +87 -0
  235. package/src/__tests__/runtime-attachment-metadata.test.ts +1 -1
  236. package/src/__tests__/runtime-events-sse-parity.test.ts +3 -4
  237. package/src/__tests__/runtime-events-sse.test.ts +13 -18
  238. package/src/__tests__/sanitize-config-for-transfer.test.ts +24 -2
  239. package/src/__tests__/schedule-retry.test.ts +715 -0
  240. package/src/__tests__/script-proxy-mitm-handler.test.ts +1 -1
  241. package/src/__tests__/search-skills-unified.test.ts +9 -15
  242. package/src/__tests__/secret-ingress-cli.test.ts +2 -5
  243. package/src/__tests__/secret-ingress-http.test.ts +1 -4
  244. package/src/__tests__/secret-onetime-send.test.ts +4 -2
  245. package/src/__tests__/secret-prompt-log-hygiene.test.ts +24 -7
  246. package/src/__tests__/secret-prompter-channel-fallback.test.ts +42 -47
  247. package/src/__tests__/secret-response-routing.test.ts +29 -15
  248. package/src/__tests__/secret-routes-managed-proxy.test.ts +5 -1
  249. package/src/__tests__/secret-scanner.test.ts +2 -545
  250. package/src/__tests__/send-endpoint-busy.test.ts +12 -24
  251. package/src/__tests__/settings-routes.test.ts +1 -1
  252. package/src/__tests__/shell-credential-ref.test.ts +0 -8
  253. package/src/__tests__/shell-tool-proxy-mode.test.ts +0 -57
  254. package/src/__tests__/skill-feature-flags.test.ts +43 -41
  255. package/src/__tests__/skill-load-feature-flag.test.ts +13 -14
  256. package/src/__tests__/skill-load-inline-command.test.ts +0 -51
  257. package/src/__tests__/skill-load-inline-includes.test.ts +0 -43
  258. package/src/__tests__/skill-projection.benchmark.test.ts +0 -1
  259. package/src/__tests__/skill-script-runner-sandbox.test.ts +0 -12
  260. package/src/__tests__/skill-tool-factory.test.ts +97 -0
  261. package/src/__tests__/skills-file-content-endpoint.test.ts +9 -30
  262. package/src/__tests__/skills-files-catalog-fallback.test.ts +11 -17
  263. package/src/__tests__/slack-channel-config.test.ts +9 -14
  264. package/src/__tests__/slack-inbound-verification.test.ts +1 -62
  265. package/src/__tests__/subagent-fork-notifications.test.ts +57 -47
  266. package/src/__tests__/subagent-manager-notify.test.ts +70 -70
  267. package/src/__tests__/subagent-notify-parent.test.ts +80 -83
  268. package/src/__tests__/system-prompt-ask-mode.test.ts +0 -1
  269. package/src/__tests__/system-prompt.test.ts +115 -14
  270. package/src/__tests__/telegram-config.test.ts +0 -1
  271. package/src/__tests__/terminal-tools.test.ts +0 -89
  272. package/src/__tests__/test-preload.ts +8 -0
  273. package/src/__tests__/thread-backfill.test.ts +945 -31
  274. package/src/__tests__/tool-approval-handler.test.ts +3 -4
  275. package/src/__tests__/tool-audit-listener.test.ts +48 -0
  276. package/src/__tests__/tool-domain-event-publisher.test.ts +0 -36
  277. package/src/__tests__/tool-execute-pipeline.test.ts +0 -7
  278. package/src/__tests__/tool-execution-abort-cleanup.test.ts +0 -17
  279. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +9 -19
  280. package/src/__tests__/tool-executor-lifecycle-events.test.ts +4 -8
  281. package/src/__tests__/tool-executor.test.ts +12 -20
  282. package/src/__tests__/tool-metrics-listener.test.ts +0 -35
  283. package/src/__tests__/tool-side-effects-slack-dm.test.ts +1 -0
  284. package/src/__tests__/tool-trace-listener.test.ts +0 -17
  285. package/src/__tests__/transfer-progress-screen.test.ts +63 -26
  286. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +2 -149
  287. package/src/__tests__/trusted-contact-multichannel.test.ts +2 -4
  288. package/src/__tests__/trusted-contact-verification.test.ts +1 -1
  289. package/src/__tests__/tts-catalog-parity.test.ts +16 -5
  290. package/src/__tests__/twilio-config.test.ts +3 -16
  291. package/src/__tests__/twilio-routes.test.ts +3 -5
  292. package/src/__tests__/twilio-validation.test.ts +93 -0
  293. package/src/__tests__/usage-attribution.test.ts +247 -0
  294. package/src/__tests__/usage-cli.test.ts +143 -0
  295. package/src/__tests__/usage-grouped-buckets.test.ts +155 -0
  296. package/src/__tests__/usage-routes.test.ts +150 -0
  297. package/src/__tests__/validation-results-screen.test.ts +39 -16
  298. package/src/__tests__/vbundle-pax-and-symlink.test.ts +12 -3
  299. package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +47 -138
  300. package/src/__tests__/verification-control-plane-policy.test.ts +6 -11
  301. package/src/__tests__/voice-ingress-preflight.test.ts +19 -0
  302. package/src/__tests__/voice-session-bridge.test.ts +5 -5
  303. package/src/__tests__/workspace-migration-006-services-config.test.ts +3 -2
  304. package/src/__tests__/workspace-migration-062-drop-memory-v2-edges-json.test.ts +103 -0
  305. package/src/__tests__/workspace-migration-063-release-notes-dynamic-model-context.test.ts +77 -0
  306. package/src/__tests__/workspace-migration-064-unwind-main-agent-opus-seed.test.ts +225 -0
  307. package/src/__tests__/workspace-migration-backfill-installation-id.test.ts +1 -5
  308. package/src/__tests__/workspace-migration-down-functions.test.ts +8 -8
  309. package/src/__tests__/workspace-migration-memory-v2-init.test.ts +8 -30
  310. package/src/__tests__/workspace-migration-unify-llm-callsite-configs.test.ts +10 -6
  311. package/src/acp/index.ts +0 -15
  312. package/src/acp/session-manager.ts +37 -34
  313. package/src/agent/loop.ts +16 -1
  314. package/src/approvals/AGENTS.md +4 -0
  315. package/src/approvals/__tests__/guardian-feed-event.test.ts +10 -3
  316. package/src/approvals/guardian-request-resolvers.ts +10 -2
  317. package/src/backup/__tests__/paths.test.ts +0 -22
  318. package/src/backup/__tests__/restore.test.ts +94 -177
  319. package/src/backup/paths.ts +2 -15
  320. package/src/backup/restore.ts +107 -231
  321. package/src/browser-session/events.ts +0 -9
  322. package/src/bundler/app-bundler.ts +51 -3
  323. package/src/calls/call-store.ts +1 -34
  324. package/src/calls/guardian-question-copy.ts +0 -108
  325. package/src/calls/relay-server.ts +4 -68
  326. package/src/calls/twilio-config.ts +2 -17
  327. package/src/calls/twilio-rest.ts +31 -141
  328. package/src/calls/twilio-routes.ts +12 -13
  329. package/src/calls/voice-session-bridge.ts +7 -38
  330. package/src/channels/types.ts +8 -42
  331. package/src/cli/commands/__tests__/backup.test.ts +6 -277
  332. package/src/cli/commands/__tests__/cache.test.ts +152 -5
  333. package/src/cli/commands/__tests__/gateway.test.ts +288 -0
  334. package/src/cli/commands/__tests__/memory-v2.test.ts +18 -28
  335. package/src/cli/commands/__tests__/trust.test.ts +21 -387
  336. package/src/cli/commands/__tests__/webhooks.test.ts +0 -1
  337. package/src/cli/commands/backup.ts +6 -331
  338. package/src/cli/commands/cache-fs.ts +8 -0
  339. package/src/cli/commands/cache.ts +153 -82
  340. package/src/cli/commands/clients.ts +64 -7
  341. package/src/cli/commands/completions.ts +3 -3
  342. package/src/cli/commands/contacts.ts +304 -76
  343. package/src/cli/commands/conversations.ts +2 -5
  344. package/src/cli/commands/credentials.ts +15 -7
  345. package/src/cli/commands/domain.ts +66 -15
  346. package/src/cli/commands/gateway.ts +183 -0
  347. package/src/cli/commands/keys.ts +13 -7
  348. package/src/cli/commands/mcp.ts +116 -156
  349. package/src/cli/commands/memory-v2.ts +320 -53
  350. package/src/cli/commands/oauth/shared.ts +2 -29
  351. package/src/cli/commands/pending.ts +102 -0
  352. package/src/cli/commands/platform/__tests__/callback-routes-list.test.ts +0 -1
  353. package/src/cli/commands/platform/__tests__/connect.test.ts +0 -2
  354. package/src/cli/commands/platform/__tests__/disconnect.test.ts +0 -2
  355. package/src/cli/commands/platform/__tests__/status.test.ts +13 -15
  356. package/src/cli/commands/platform/disconnect.ts +5 -4
  357. package/src/cli/commands/platform/index.ts +0 -18
  358. package/src/cli/commands/skills.ts +77 -35
  359. package/src/cli/commands/trust.ts +70 -430
  360. package/src/cli/commands/usage.ts +25 -16
  361. package/src/cli/lib/daemon-credential-client.ts +115 -19
  362. package/src/cli/program.ts +4 -0
  363. package/src/cli.ts +0 -21
  364. package/src/config/__tests__/feature-flag-registry-guard.test.ts +2 -2
  365. package/src/config/assistant-feature-flags.ts +67 -10
  366. package/src/config/bundled-skills/acp/SKILL.md +6 -0
  367. package/src/config/bundled-skills/acp/TOOLS.json +1 -22
  368. package/src/config/bundled-skills/app-builder/SKILL.md +14 -109
  369. package/src/config/bundled-skills/app-builder/TOOLS.json +1 -28
  370. package/src/config/bundled-skills/app-builder/tools/app-create.ts +1 -10
  371. package/src/config/bundled-skills/app-control/SKILL.md +75 -0
  372. package/src/config/bundled-skills/app-control/TOOLS.json +299 -0
  373. package/src/config/bundled-skills/app-control/tools/app-control-click.ts +12 -0
  374. package/src/config/bundled-skills/app-control/tools/app-control-combo.ts +12 -0
  375. package/src/config/bundled-skills/app-control/tools/app-control-drag.ts +12 -0
  376. package/src/config/bundled-skills/app-control/tools/app-control-observe.ts +12 -0
  377. package/src/config/bundled-skills/app-control/tools/app-control-press.ts +12 -0
  378. package/src/config/bundled-skills/app-control/tools/app-control-sequence.ts +12 -0
  379. package/src/config/bundled-skills/app-control/tools/app-control-start.ts +12 -0
  380. package/src/config/bundled-skills/app-control/tools/app-control-stop.ts +12 -0
  381. package/src/config/bundled-skills/app-control/tools/app-control-type.ts +12 -0
  382. package/src/config/bundled-skills/computer-use/SKILL.md +6 -0
  383. package/src/config/bundled-skills/computer-use/TOOLS.json +67 -43
  384. package/src/config/bundled-skills/contacts/TOOLS.json +0 -16
  385. package/src/config/bundled-skills/document/TOOLS.json +0 -8
  386. package/src/config/bundled-skills/followups/TOOLS.json +0 -12
  387. package/src/config/bundled-skills/image-studio/SKILL.md +4 -0
  388. package/src/config/bundled-skills/image-studio/TOOLS.json +0 -4
  389. package/src/config/bundled-skills/media-processing/TOOLS.json +0 -24
  390. package/src/config/bundled-skills/messaging/TOOLS.json +14 -44
  391. package/src/config/bundled-skills/phone-calls/TOOLS.json +0 -12
  392. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +19 -4
  393. package/src/config/bundled-skills/playbooks/TOOLS.json +0 -16
  394. package/src/config/bundled-skills/schedule/TOOLS.json +14 -14
  395. package/src/config/bundled-skills/sequences/TOOLS.json +0 -36
  396. package/src/config/bundled-skills/settings/SKILL.md +4 -0
  397. package/src/config/bundled-skills/settings/TOOLS.json +0 -12
  398. package/src/config/bundled-skills/skill-management/SKILL.md +6 -0
  399. package/src/config/bundled-skills/skill-management/TOOLS.json +0 -8
  400. package/src/config/bundled-skills/subagent/SKILL.md +6 -2
  401. package/src/config/bundled-skills/subagent/TOOLS.json +0 -20
  402. package/src/config/bundled-skills/transcribe/SKILL.md +4 -0
  403. package/src/config/bundled-skills/transcribe/TOOLS.json +0 -4
  404. package/src/config/bundled-tool-registry.ts +21 -0
  405. package/src/config/env-registry.ts +12 -4
  406. package/src/config/env.ts +22 -26
  407. package/src/config/feature-flag-registry.json +40 -152
  408. package/src/config/llm-callsite-catalog.ts +12 -0
  409. package/src/config/llm-context-resolution.ts +80 -0
  410. package/src/config/llm-resolver.ts +58 -22
  411. package/src/config/loader.ts +76 -102
  412. package/src/config/sanitize-for-transfer.ts +2 -0
  413. package/src/config/schema.ts +2 -158
  414. package/src/config/schemas/__tests__/memory-lifecycle.test.ts +80 -0
  415. package/src/config/schemas/__tests__/memory-v2.test.ts +8 -4
  416. package/src/config/schemas/call-site-catalog.ts +271 -0
  417. package/src/config/schemas/calls.ts +5 -14
  418. package/src/config/schemas/heartbeat.ts +63 -0
  419. package/src/config/schemas/inference.ts +1 -1
  420. package/src/config/schemas/ingress.ts +11 -7
  421. package/src/config/schemas/llm.ts +34 -11
  422. package/src/config/schemas/memory-lifecycle.ts +77 -24
  423. package/src/config/schemas/memory-retrieval.ts +2 -2
  424. package/src/config/schemas/memory-v2.ts +57 -4
  425. package/src/config/schemas/platform.ts +6 -0
  426. package/src/config/schemas/security.ts +1 -42
  427. package/src/config/schemas/services.ts +7 -21
  428. package/src/config/schemas/skills.ts +5 -11
  429. package/src/config/schemas/tts.ts +1 -1
  430. package/src/config/seed-inference-profiles.ts +117 -0
  431. package/src/config/skills.ts +0 -90
  432. package/src/config/types.ts +3 -6
  433. package/src/contacts/contact-store.ts +0 -47
  434. package/src/contacts/contacts-write.ts +1 -132
  435. package/src/context/window-manager.ts +43 -5
  436. package/src/credential-execution/feature-gates.ts +10 -10
  437. package/src/credential-execution/process-manager.ts +46 -51
  438. package/src/credential-health/credential-health-service.ts +21 -16
  439. package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +75 -82
  440. package/src/daemon/__tests__/conversation-tool-setup.test.ts +126 -5
  441. package/src/daemon/__tests__/daemon-skill-host.test.ts +2 -9
  442. package/src/daemon/bootstrap-turn-cleanup.ts +45 -0
  443. package/src/daemon/config-watcher.ts +4 -3
  444. package/src/daemon/connection-policy.ts +1 -26
  445. package/src/daemon/conversation-agent-loop-handlers.ts +74 -7
  446. package/src/daemon/conversation-agent-loop.ts +309 -64
  447. package/src/daemon/conversation-history.ts +8 -8
  448. package/src/daemon/conversation-launch.ts +20 -135
  449. package/src/daemon/conversation-lifecycle.ts +8 -1
  450. package/src/daemon/conversation-messaging.ts +1 -0
  451. package/src/daemon/conversation-process.ts +97 -172
  452. package/src/daemon/conversation-runtime-assembly.ts +219 -76
  453. package/src/daemon/conversation-slash.ts +47 -5
  454. package/src/daemon/conversation-store.ts +7 -31
  455. package/src/daemon/conversation-surfaces.ts +144 -29
  456. package/src/daemon/conversation-tool-setup.ts +18 -87
  457. package/src/daemon/conversation-usage.ts +36 -0
  458. package/src/daemon/conversation.ts +134 -231
  459. package/src/daemon/daemon-control.ts +3 -71
  460. package/src/daemon/daemon-skill-host.ts +8 -11
  461. package/src/daemon/dictation-profile-store.ts +2 -26
  462. package/src/daemon/doordash-steps.ts +1 -1
  463. package/src/daemon/first-greeting.ts +44 -156
  464. package/src/daemon/handlers/config-channels.ts +12 -12
  465. package/src/daemon/handlers/config-ingress.ts +4 -165
  466. package/src/daemon/handlers/config-model.ts +1 -1
  467. package/src/daemon/handlers/config-voice.ts +0 -42
  468. package/src/daemon/handlers/conversations.ts +11 -190
  469. package/src/daemon/handlers/recording.ts +26 -158
  470. package/src/daemon/handlers/shared.ts +27 -72
  471. package/src/daemon/handlers/skills.ts +42 -93
  472. package/src/daemon/host-app-control-proxy.ts +293 -0
  473. package/src/daemon/host-bash-proxy.ts +124 -92
  474. package/src/daemon/host-browser-proxy.ts +111 -88
  475. package/src/daemon/host-cu-proxy.ts +100 -104
  476. package/src/daemon/host-file-proxy.ts +136 -91
  477. package/src/daemon/host-proxy-base.ts +294 -0
  478. package/src/daemon/host-proxy-preactivation.ts +82 -0
  479. package/src/daemon/host-transfer-proxy.ts +303 -147
  480. package/src/daemon/lifecycle.ts +164 -132
  481. package/src/daemon/message-protocol.ts +3 -8
  482. package/src/daemon/message-types/contacts.ts +23 -1
  483. package/src/daemon/message-types/conversations.ts +18 -8
  484. package/src/daemon/message-types/host-app-control.ts +150 -0
  485. package/src/daemon/message-types/host-bash.ts +5 -0
  486. package/src/daemon/message-types/host-cu.ts +3 -0
  487. package/src/daemon/message-types/host-file.ts +5 -0
  488. package/src/daemon/message-types/host-transfer.ts +4 -0
  489. package/src/daemon/message-types/messages.ts +10 -9
  490. package/src/daemon/message-types/schedules.ts +8 -3
  491. package/src/daemon/message-types/skills.ts +2 -2
  492. package/src/daemon/message-types/workspace.ts +1 -1
  493. package/src/daemon/process-message.ts +119 -239
  494. package/src/daemon/server.ts +13 -462
  495. package/src/daemon/shutdown-handlers.ts +2 -5
  496. package/src/daemon/tool-setup-types.ts +51 -0
  497. package/src/daemon/tool-side-effects.ts +126 -108
  498. package/src/daemon/trust-context.ts +13 -0
  499. package/src/daemon/wake-target-adapter.ts +4 -9
  500. package/src/events/domain-events.ts +0 -8
  501. package/src/events/tool-audit-listener.ts +5 -2
  502. package/src/events/tool-domain-event-publisher.ts +0 -10
  503. package/src/events/tool-metrics-listener.ts +0 -17
  504. package/src/events/tool-trace-listener.ts +0 -14
  505. package/src/filing/filing-service.ts +13 -1
  506. package/src/heartbeat/__tests__/heartbeat-feed-event.test.ts +21 -9
  507. package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +216 -0
  508. package/src/heartbeat/heartbeat-run-store.ts +236 -0
  509. package/src/heartbeat/heartbeat-service.ts +303 -54
  510. package/src/home/__tests__/feed-writer.test.ts +0 -4
  511. package/src/home/__tests__/post-connect-feed.test.ts +99 -0
  512. package/src/home/__tests__/relationship-state-writer.test.ts +41 -9
  513. package/src/home/__tests__/suggested-prompts.test.ts +89 -0
  514. package/src/home/feed-writer.ts +1 -2
  515. package/src/home/post-connect-feed.ts +68 -0
  516. package/src/home/relationship-state-writer.ts +33 -95
  517. package/src/home/suggested-prompts.ts +46 -10
  518. package/src/inbound/public-ingress-urls.ts +32 -34
  519. package/src/ipc/__tests__/browser-ipc.test.ts +2 -12
  520. package/src/ipc/__tests__/route-error-envelope.test.ts +80 -0
  521. package/src/ipc/__tests__/skill-server-bidirectional.test.ts +0 -1
  522. package/src/ipc/assistant-server.ts +17 -11
  523. package/src/ipc/cli-client.ts +32 -1
  524. package/src/ipc/routes/__tests__/memory-v2-backfill.test.ts +39 -20
  525. package/src/ipc/routes/route-adapter.ts +1 -1
  526. package/src/ipc/routes/trust-rules.test.ts +0 -95
  527. package/src/ipc/skill-ipc-types.ts +41 -0
  528. package/src/ipc/skill-routes/__tests__/events-ipc.test.ts +13 -27
  529. package/src/ipc/skill-routes/__tests__/identity.test.ts +4 -23
  530. package/src/ipc/skill-routes/events.ts +12 -23
  531. package/src/ipc/skill-routes/identity.ts +4 -17
  532. package/src/ipc/skill-routes/index.ts +1 -1
  533. package/src/ipc/skill-server.ts +6 -39
  534. package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +0 -8
  535. package/src/live-voice/live-voice-metrics.ts +10 -10
  536. package/src/live-voice/protocol.ts +4 -13
  537. package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +304 -0
  538. package/src/mcp/manager.ts +0 -5
  539. package/src/mcp/mcp-auth-orchestrator.ts +213 -0
  540. package/src/mcp/mcp-auth-state.ts +133 -0
  541. package/src/mcp/mcp-oauth-provider.ts +19 -0
  542. package/src/memory/__tests__/fixtures/memory-v2-activation-fixtures.ts +55 -0
  543. package/src/memory/__tests__/jobs-store-job-classes.test.ts +24 -0
  544. package/src/memory/__tests__/memory-v2-activation-log-store.test.ts +127 -0
  545. package/src/memory/__tests__/qdrant-client-sentinel.test.ts +49 -0
  546. package/src/memory/__tests__/sparse-tokenize.test.ts +66 -0
  547. package/src/memory/anisotropy.test.ts +247 -0
  548. package/src/memory/anisotropy.ts +443 -0
  549. package/src/memory/app-git-service.ts +0 -32
  550. package/src/memory/app-store.ts +154 -0
  551. package/src/memory/attachments-store.ts +6 -0
  552. package/src/memory/auto-analysis-constants.ts +17 -0
  553. package/src/memory/auto-analysis-guard.ts +5 -15
  554. package/src/memory/canonical-guardian-store.ts +7 -7
  555. package/src/memory/context-search/__tests__/agent-runner-redaction.test.ts +122 -0
  556. package/src/memory/context-search/agent-protocol.ts +6 -6
  557. package/src/memory/context-search/agent-runner.ts +32 -7
  558. package/src/memory/context-search/sources/memory-v2.ts +590 -0
  559. package/src/memory/context-search/sources/memory.ts +5 -0
  560. package/src/memory/context-search/sources/pkb.ts +10 -1
  561. package/src/memory/context-search/sources/workspace.ts +3 -2
  562. package/src/memory/conversation-crud.ts +30 -5
  563. package/src/memory/conversation-disk-view.ts +1 -5
  564. package/src/memory/conversation-key-store.ts +2 -15
  565. package/src/memory/conversation-starter-checkpoints.ts +63 -0
  566. package/src/memory/db-connection.ts +62 -0
  567. package/src/memory/db-init.ts +18 -0
  568. package/src/memory/embedding-backend.ts +12 -42
  569. package/src/memory/embedding-gemini.ts +0 -2
  570. package/src/memory/embedding-local.ts +6 -6
  571. package/src/memory/embedding-ollama.ts +6 -6
  572. package/src/memory/embedding-openai.ts +6 -6
  573. package/src/memory/embedding-types.ts +21 -0
  574. package/src/memory/graph/__tests__/conversation-graph-memory-v2-routing.test.ts +49 -8
  575. package/src/memory/graph/conversation-graph-memory.ts +35 -36
  576. package/src/memory/graph/graph-search.ts +8 -0
  577. package/src/memory/graph/injection.test.ts +2 -2
  578. package/src/memory/graph/injection.ts +1 -1
  579. package/src/memory/graph/retriever.ts +28 -0
  580. package/src/memory/graph/tools.ts +1 -1
  581. package/src/memory/guardian-action-store.ts +0 -83
  582. package/src/memory/guardian-approvals.ts +0 -48
  583. package/src/memory/indexer.ts +1 -15
  584. package/src/memory/job-handlers/conversation-starters.ts +36 -53
  585. package/src/memory/job-utils.ts +0 -6
  586. package/src/memory/jobs/__tests__/embed-concept-page.test.ts +8 -2
  587. package/src/memory/jobs/embed-concept-page.ts +28 -2
  588. package/src/memory/jobs/embed-pkb-file.test.ts +2 -2
  589. package/src/memory/jobs-store.ts +66 -23
  590. package/src/memory/jobs-worker.ts +114 -79
  591. package/src/memory/llm-request-log-store.ts +0 -41
  592. package/src/memory/llm-usage-store.ts +129 -43
  593. package/src/memory/memory-v2-activation-log-store.ts +115 -0
  594. package/src/memory/migrations/233-document-conversations.ts +54 -0
  595. package/src/memory/migrations/234-memory-v2-activation-logs.ts +55 -0
  596. package/src/memory/migrations/235-llm-usage-attribution.ts +31 -0
  597. package/src/memory/migrations/235-slack-compaction-watermark.ts +44 -0
  598. package/src/memory/migrations/236-tool-invocations-matched-rule-id.ts +26 -0
  599. package/src/memory/migrations/237-heartbeat-runs.ts +45 -0
  600. package/src/memory/migrations/238-schedule-retry-policy.ts +20 -0
  601. package/src/memory/migrations/__tests__/234-memory-v2-activation-logs.test.ts +182 -0
  602. package/src/memory/migrations/index.ts +19 -0
  603. package/src/memory/migrations/registry.ts +32 -0
  604. package/src/memory/pkb/pkb-search.ts +7 -0
  605. package/src/memory/qdrant-client.ts +50 -20
  606. package/src/memory/raw-query.ts +2 -68
  607. package/src/memory/schema/conversations.ts +7 -0
  608. package/src/memory/schema/infrastructure.ts +40 -0
  609. package/src/memory/search/semantic.ts +12 -16
  610. package/src/memory/sparse-tokenize.ts +49 -0
  611. package/src/memory/tool-usage-store.ts +2 -0
  612. package/src/memory/usage-buckets.ts +40 -1
  613. package/src/memory/usage-grouped-buckets.ts +127 -0
  614. package/src/memory/v2/__tests__/activation.test.ts +361 -180
  615. package/src/memory/v2/__tests__/backfill-jobs.test.ts +2 -129
  616. package/src/memory/v2/__tests__/consolidation-job.test.ts +28 -11
  617. package/src/memory/v2/__tests__/edge-index.test.ts +278 -0
  618. package/src/memory/v2/__tests__/injection.test.ts +424 -33
  619. package/src/memory/v2/__tests__/migration.test.ts +64 -36
  620. package/src/memory/v2/__tests__/page-store.test.ts +191 -8
  621. package/src/memory/v2/__tests__/prompts-consolidation.test.ts +181 -0
  622. package/src/memory/v2/__tests__/sim.test.ts +166 -6
  623. package/src/memory/v2/__tests__/skill-store.test.ts +115 -3
  624. package/src/memory/v2/__tests__/sparse-bm25.test.ts +292 -0
  625. package/src/memory/v2/__tests__/static-context.test.ts +152 -0
  626. package/src/memory/v2/activation.ts +215 -163
  627. package/src/memory/v2/backfill-jobs.ts +15 -100
  628. package/src/memory/v2/consolidation-job.ts +17 -17
  629. package/src/memory/v2/constants.ts +7 -0
  630. package/src/memory/v2/edge-index.ts +191 -0
  631. package/src/memory/v2/injection.ts +241 -84
  632. package/src/memory/v2/migration.ts +57 -64
  633. package/src/memory/v2/now-text.ts +2 -3
  634. package/src/memory/v2/page-store.ts +168 -31
  635. package/src/memory/v2/prompts/consolidation.ts +385 -88
  636. package/src/memory/v2/prompts/sweep.ts +3 -3
  637. package/src/memory/v2/qdrant.ts +99 -1
  638. package/src/memory/v2/sim.ts +126 -16
  639. package/src/memory/v2/skill-qdrant.ts +12 -3
  640. package/src/memory/v2/skill-store.ts +71 -8
  641. package/src/memory/v2/sparse-bm25.ts +245 -0
  642. package/src/memory/v2/static-context.ts +63 -0
  643. package/src/memory/v2/types.ts +10 -20
  644. package/src/memory/validation.ts +0 -11
  645. package/src/messaging/draft-store.ts +0 -6
  646. package/src/messaging/provider-types.ts +8 -0
  647. package/src/messaging/provider.ts +7 -0
  648. package/src/messaging/providers/gmail/client.ts +1 -121
  649. package/src/messaging/providers/gmail/types.ts +0 -49
  650. package/src/messaging/providers/outlook/client.ts +0 -73
  651. package/src/messaging/providers/slack/__tests__/adapter-mention-rendering.test.ts +226 -0
  652. package/src/messaging/providers/slack/adapter.ts +123 -52
  653. package/src/messaging/providers/slack/backfill.test.ts +95 -6
  654. package/src/messaging/providers/slack/backfill.ts +89 -11
  655. package/src/messaging/providers/slack/client.ts +10 -124
  656. package/src/messaging/providers/slack/message-metadata.ts +12 -2
  657. package/src/messaging/providers/slack/render-transcript.test.ts +56 -0
  658. package/src/messaging/providers/slack/render-transcript.ts +126 -25
  659. package/src/messaging/providers/slack/types.ts +1 -32
  660. package/src/notifications/README.md +10 -10
  661. package/src/notifications/broadcaster.ts +1 -1
  662. package/src/notifications/guardian-question-mode.ts +5 -5
  663. package/src/oauth/connect-orchestrator.ts +4 -0
  664. package/src/oauth/connection-resolver.test.ts +8 -0
  665. package/src/oauth/connection-resolver.ts +8 -16
  666. package/src/oauth/credential-token-resolver.ts +95 -0
  667. package/src/oauth/manual-token-connection.ts +26 -34
  668. package/src/oauth/oauth-store.ts +6 -4
  669. package/src/outbound-proxy/certs.ts +0 -7
  670. package/src/outbound-proxy/index.ts +1 -59
  671. package/src/outbound-proxy/logging.ts +1 -1
  672. package/src/outbound-proxy/policy.ts +6 -5
  673. package/src/outbound-proxy/router.ts +2 -1
  674. package/src/permissions/approval-policy.test.ts +6 -275
  675. package/src/permissions/approval-policy.ts +0 -51
  676. package/src/permissions/approval-provenance.test.ts +184 -0
  677. package/src/permissions/approval-provenance.ts +70 -0
  678. package/src/permissions/checker.test.ts +0 -1
  679. package/src/permissions/checker.ts +7 -18
  680. package/src/permissions/gateway-threshold-reader.ts +6 -1
  681. package/src/permissions/prompter.ts +43 -3
  682. package/src/permissions/secret-prompter.ts +25 -48
  683. package/src/permissions/types.ts +33 -0
  684. package/src/permissions/workspace-policy.ts +0 -5
  685. package/src/platform/sync-identity.ts +0 -8
  686. package/src/plugins/defaults/injectors.ts +69 -2
  687. package/src/plugins/defaults/overflow-reduce.ts +3 -2
  688. package/src/plugins/types.ts +8 -0
  689. package/src/prompts/bootstrap-cleanup.ts +27 -0
  690. package/src/prompts/system-prompt.ts +37 -88
  691. package/src/prompts/templates/BOOTSTRAP.md +52 -6
  692. package/src/prompts/templates/SOUL.md +13 -1
  693. package/src/prompts/update-bulletin-job.ts +2 -0
  694. package/src/providers/__tests__/retry-callsite.test.ts +138 -1
  695. package/src/providers/anthropic/client.ts +72 -33
  696. package/src/providers/call-site-routing.ts +42 -3
  697. package/src/providers/gemini/client.ts +18 -2
  698. package/src/providers/managed-proxy/context.ts +0 -5
  699. package/src/providers/model-catalog.ts +105 -19
  700. package/src/providers/openai/chat-completions-provider.ts +6 -0
  701. package/src/providers/openai/responses-provider.ts +7 -1
  702. package/src/providers/provider-send-message.ts +45 -2
  703. package/src/providers/ratelimit.ts +7 -2
  704. package/src/providers/registry.ts +14 -9
  705. package/src/providers/retry.ts +96 -8
  706. package/src/providers/speech-to-text/provider-catalog.ts +7 -8
  707. package/src/providers/types.ts +13 -0
  708. package/src/providers/usage-tracking.ts +96 -0
  709. package/src/runtime/AGENTS.md +10 -6
  710. package/src/runtime/__tests__/agent-wake.test.ts +89 -0
  711. package/src/runtime/agent-wake.ts +39 -2
  712. package/src/runtime/assistant-event-hub.ts +570 -52
  713. package/src/runtime/assistant-event.ts +2 -6
  714. package/src/runtime/auth/__tests__/middleware.test.ts +11 -56
  715. package/src/runtime/auth/context.ts +0 -9
  716. package/src/runtime/auth/middleware.ts +1 -97
  717. package/src/runtime/auth/route-policy.ts +30 -9
  718. package/src/runtime/auth/token-service.ts +0 -11
  719. package/src/runtime/btw-sidechain.ts +2 -3
  720. package/src/runtime/channel-approvals.ts +6 -2
  721. package/src/runtime/channel-invite-transport.ts +2 -48
  722. package/src/runtime/channel-invite-transports/email.ts +1 -1
  723. package/src/runtime/channel-invite-transports/slack.ts +1 -1
  724. package/src/runtime/channel-invite-transports/telegram.ts +1 -1
  725. package/src/runtime/channel-invite-transports/voice.ts +1 -1
  726. package/src/runtime/channel-invite-transports/whatsapp.ts +1 -1
  727. package/src/runtime/channel-invite-types.ts +54 -0
  728. package/src/runtime/channel-readiness-service.ts +32 -13
  729. package/src/runtime/channel-verification-service.ts +3 -5
  730. package/src/runtime/http-errors.ts +0 -34
  731. package/src/runtime/http-router.ts +6 -3
  732. package/src/runtime/http-server.ts +16 -402
  733. package/src/runtime/http-types.ts +5 -5
  734. package/src/runtime/interactive-ui.ts +0 -1
  735. package/src/runtime/middleware/auth.ts +0 -20
  736. package/src/runtime/migrations/__tests__/v1-test-helpers.ts +112 -0
  737. package/src/runtime/migrations/__tests__/vbundle-builder-credentials.test.ts +11 -4
  738. package/src/runtime/migrations/__tests__/vbundle-builder-v1-shape.test.ts +253 -0
  739. package/src/runtime/migrations/__tests__/vbundle-import-credentials.test.ts +19 -6
  740. package/src/runtime/migrations/__tests__/vbundle-import-parity.test.ts +413 -0
  741. package/src/runtime/migrations/__tests__/vbundle-import-policy.test.ts +260 -0
  742. package/src/runtime/migrations/__tests__/vbundle-import-version-compat.test.ts +189 -0
  743. package/src/runtime/migrations/__tests__/vbundle-legacy-user-md.test.ts +71 -27
  744. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +41 -2
  745. package/src/runtime/migrations/__tests__/vbundle-streaming-importer.test.ts +296 -80
  746. package/src/runtime/migrations/__tests__/vbundle-streaming-validator.test.ts +143 -23
  747. package/src/runtime/migrations/__tests__/vbundle-symlink-importer.test.ts +451 -0
  748. package/src/runtime/migrations/__tests__/vbundle-symlink-streaming-importer.test.ts +0 -0
  749. package/src/runtime/migrations/__tests__/vbundle-symlink-streaming.test.ts +515 -0
  750. package/src/runtime/migrations/__tests__/vbundle-symlink-tar.test.ts +437 -0
  751. package/src/runtime/migrations/__tests__/vbundle-symlink-walker.test.ts +319 -0
  752. package/src/runtime/migrations/__tests__/vbundle-tar-stream.test.ts +2 -2
  753. package/src/runtime/migrations/__tests__/vbundle-validator-v1-schema.test.ts +421 -0
  754. package/src/runtime/migrations/migration-transport.ts +49 -16
  755. package/src/runtime/migrations/migration-wizard.ts +2 -2
  756. package/src/runtime/migrations/origin-mode.ts +40 -0
  757. package/src/runtime/migrations/vbundle-builder.ts +457 -136
  758. package/src/runtime/migrations/vbundle-import-analyzer.ts +13 -11
  759. package/src/runtime/migrations/vbundle-import-policy.ts +172 -0
  760. package/src/runtime/migrations/vbundle-importer.ts +251 -74
  761. package/src/runtime/migrations/vbundle-metadata-merge.ts +1 -1
  762. package/src/runtime/migrations/vbundle-streaming-importer.ts +329 -38
  763. package/src/runtime/migrations/vbundle-streaming-validator.ts +203 -28
  764. package/src/runtime/migrations/vbundle-tar-stream.ts +15 -6
  765. package/src/runtime/migrations/vbundle-validator.ts +328 -41
  766. package/src/runtime/pending-interactions.ts +48 -13
  767. package/src/runtime/routes/__tests__/acp-routes.test.ts +0 -1
  768. package/src/runtime/routes/__tests__/backup-routes.test.ts +49 -168
  769. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +333 -0
  770. package/src/runtime/routes/__tests__/gateway-log-routes.test.ts +242 -0
  771. package/src/runtime/routes/__tests__/heartbeat-routes.test.ts +112 -0
  772. package/src/runtime/routes/__tests__/llm-call-sites-routes.test.ts +58 -0
  773. package/src/runtime/routes/__tests__/migration-export-secrets-redacted.test.ts +54 -0
  774. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +19 -6
  775. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +7 -7
  776. package/src/runtime/routes/acp-routes.test.ts +0 -3
  777. package/src/runtime/routes/acp-routes.ts +3 -7
  778. package/src/runtime/routes/app-management-routes.ts +18 -9
  779. package/src/runtime/routes/approval-interception-types.ts +13 -0
  780. package/src/runtime/routes/approval-routes.ts +55 -14
  781. package/src/runtime/routes/approval-strategies/guardian-text-engine-strategy.ts +1 -1
  782. package/src/runtime/routes/avatar-routes.ts +3 -5
  783. package/src/runtime/routes/backup-routes.ts +15 -38
  784. package/src/runtime/routes/browser-routes.ts +1 -15
  785. package/src/runtime/routes/btw-routes.ts +14 -37
  786. package/src/runtime/routes/channel-guardian-routes.ts +1 -5
  787. package/src/runtime/routes/channel-readiness-routes.ts +3 -7
  788. package/src/runtime/routes/channel-route-shared.ts +2 -28
  789. package/src/runtime/routes/client-routes.ts +46 -12
  790. package/src/runtime/routes/consolidation-routes.ts +115 -0
  791. package/src/runtime/routes/contact-prompt-routes.ts +183 -0
  792. package/src/runtime/routes/conversation-list-routes.ts +12 -29
  793. package/src/runtime/routes/conversation-management-routes.ts +14 -51
  794. package/src/runtime/routes/conversation-query-routes.ts +156 -9
  795. package/src/runtime/routes/conversation-routes.ts +72 -539
  796. package/src/runtime/routes/conversation-starter-routes.ts +19 -40
  797. package/src/runtime/routes/document-pdf-renderer.ts +165 -0
  798. package/src/runtime/routes/documents-routes.ts +83 -18
  799. package/src/runtime/routes/errors.ts +19 -4
  800. package/src/runtime/routes/events-routes.ts +68 -94
  801. package/src/runtime/routes/filing-routes.ts +18 -1
  802. package/src/runtime/routes/gateway-log-routes.ts +79 -0
  803. package/src/runtime/routes/guardian-action-routes.ts +4 -9
  804. package/src/runtime/routes/guardian-approval-interception.ts +2 -8
  805. package/src/runtime/routes/heartbeat-routes.ts +103 -38
  806. package/src/runtime/routes/host-app-control-routes.ts +134 -0
  807. package/src/runtime/routes/host-bash-routes.ts +37 -6
  808. package/src/runtime/routes/host-browser-routes.ts +96 -25
  809. package/src/runtime/routes/host-cu-routes.ts +48 -13
  810. package/src/runtime/routes/host-file-routes.ts +35 -11
  811. package/src/runtime/routes/host-transfer-routes.ts +73 -37
  812. package/src/runtime/routes/http-adapter.ts +1 -0
  813. package/src/runtime/routes/identity-intro-cache.ts +30 -0
  814. package/src/runtime/routes/identity-routes.ts +93 -49
  815. package/src/runtime/routes/inbound-message-handler.ts +581 -146
  816. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +2 -95
  817. package/src/runtime/routes/inbound-stages/background-dispatch.ts +3 -0
  818. package/src/runtime/routes/inbound-stages/edit-intercept.ts +0 -8
  819. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +0 -20
  820. package/src/runtime/routes/inbound-stages/transcribe-audio.ts +5 -13
  821. package/src/runtime/routes/index.ts +12 -0
  822. package/src/runtime/routes/integrations/slack/channel.ts +0 -24
  823. package/src/runtime/routes/llm-call-sites-routes.ts +22 -0
  824. package/src/runtime/routes/mcp-auth-routes.ts +132 -0
  825. package/src/runtime/routes/memory-item-routes.ts +10 -12
  826. package/src/runtime/routes/memory-v2-routes.ts +451 -16
  827. package/src/runtime/routes/migration-routes.ts +284 -31
  828. package/src/runtime/routes/playground/guard.ts +1 -1
  829. package/src/runtime/routes/playground/index.ts +0 -2
  830. package/src/runtime/routes/recording-routes.ts +4 -24
  831. package/src/runtime/routes/rename-conversation-routes.ts +2 -6
  832. package/src/runtime/routes/schedule-routes.ts +10 -6
  833. package/src/runtime/routes/secret-routes.ts +87 -18
  834. package/src/runtime/routes/settings-routes.ts +29 -28
  835. package/src/runtime/routes/skills-routes.ts +12 -31
  836. package/src/runtime/routes/suggest-trust-rule-routes.ts +32 -1
  837. package/src/runtime/routes/task-routes.ts +6 -6
  838. package/src/runtime/routes/trust-rules-routes.ts +3 -94
  839. package/src/runtime/routes/types.ts +4 -4
  840. package/src/runtime/routes/upgrade-broadcast-routes.ts +3 -10
  841. package/src/runtime/routes/usage-routes.ts +87 -10
  842. package/src/runtime/routes/user-routes.ts +17 -31
  843. package/src/runtime/routes/work-items-routes.ts +1 -4
  844. package/src/runtime/services/__tests__/analyze-conversation.test.ts +2 -2
  845. package/src/runtime/services/analyze-conversation.ts +7 -17
  846. package/src/runtime/services/conversation-serializer.ts +2 -4
  847. package/src/runtime/verification-outbound-actions.ts +1 -1
  848. package/src/runtime/verification-rate-limiter.ts +1 -1
  849. package/src/runtime/verification-templates.ts +4 -7
  850. package/src/schedule/integration-status.ts +66 -2
  851. package/src/schedule/recurrence-engine.ts +4 -1
  852. package/src/schedule/retry-backoff.ts +18 -0
  853. package/src/schedule/retry-policy.ts +82 -0
  854. package/src/schedule/schedule-recovery.ts +64 -0
  855. package/src/schedule/schedule-store.ts +106 -18
  856. package/src/schedule/scheduler-types.ts +25 -0
  857. package/src/schedule/scheduler.ts +63 -38
  858. package/src/security/oauth-callback-registry.ts +8 -0
  859. package/src/security/secret-scanner.ts +14 -547
  860. package/src/security/secure-keys.ts +31 -11
  861. package/src/security/token-manager.ts +7 -3
  862. package/src/sequence/analytics.ts +5 -5
  863. package/src/sequence/engine.ts +1 -1
  864. package/src/signals/cancel.ts +16 -25
  865. package/src/signals/conversation-undo.ts +2 -27
  866. package/src/signals/emit-event.ts +1 -2
  867. package/src/signals/user-message.ts +108 -22
  868. package/src/skills/catalog-files.ts +2 -8
  869. package/src/skills/catalog-install.ts +1 -0
  870. package/src/skills/clawhub.ts +2 -2
  871. package/src/skills/include-graph.ts +5 -5
  872. package/src/skills/inline-command-runner.ts +1 -7
  873. package/src/skills/remote-skill-policy.ts +5 -5
  874. package/src/skills/skill-file-provider.ts +1 -1
  875. package/src/skills/skill-file-types.ts +13 -0
  876. package/src/skills/skillssh-audit-types.ts +28 -0
  877. package/src/skills/skillssh-registry.ts +8 -21
  878. package/src/subagent/manager.ts +67 -84
  879. package/src/tasks/task-store.ts +1 -28
  880. package/src/telemetry/types.ts +8 -0
  881. package/src/telemetry/usage-telemetry-reporter.test.ts +59 -15
  882. package/src/telemetry/usage-telemetry-reporter.ts +4 -5
  883. package/src/tools/acp/spawn.test.ts +1 -2
  884. package/src/tools/acp/steer.test.ts +1 -2
  885. package/src/tools/app-control/skill-proxy-bridge.ts +28 -0
  886. package/src/tools/apps/executors.ts +56 -69
  887. package/src/tools/browser/__tests__/browser-status.test.ts +55 -135
  888. package/src/tools/browser/browser-execution.ts +31 -147
  889. package/src/tools/browser/cdp-client/__tests__/factory.test.ts +145 -70
  890. package/src/tools/browser/cdp-client/cdp-inspect/__tests__/ws-transport.test.ts +12 -6
  891. package/src/tools/browser/cdp-client/factory.ts +62 -91
  892. package/src/tools/browser/cdp-client/index.ts +1 -27
  893. package/src/tools/computer-use/definitions.ts +42 -20
  894. package/src/tools/executor.ts +46 -31
  895. package/src/tools/host-filesystem/edit.ts +29 -2
  896. package/src/tools/host-filesystem/read.ts +29 -2
  897. package/src/tools/host-filesystem/transfer.test.ts +45 -42
  898. package/src/tools/host-filesystem/transfer.ts +35 -4
  899. package/src/tools/host-filesystem/write.ts +29 -2
  900. package/src/tools/host-terminal/host-shell.ts +62 -3
  901. package/src/tools/network/script-proxy/index.ts +1 -10
  902. package/src/tools/permission-checker.ts +66 -1
  903. package/src/tools/schedule/create.ts +6 -0
  904. package/src/tools/schedule/list.ts +2 -0
  905. package/src/tools/schedule/update.ts +10 -0
  906. package/src/tools/shared/filesystem/file-ops-service.ts +2 -0
  907. package/src/tools/shared/filesystem/path-policy.ts +25 -1
  908. package/src/tools/skills/load.ts +0 -32
  909. package/src/tools/skills/sandbox-runner.ts +1 -6
  910. package/src/tools/skills/skill-tool-factory.ts +32 -0
  911. package/src/tools/terminal/safe-env.ts +1 -0
  912. package/src/tools/terminal/shell.ts +2 -78
  913. package/src/tools/tool-approval-handler.ts +1 -5
  914. package/src/tools/types.ts +16 -39
  915. package/src/tts/__tests__/provider-catalog.test.ts +2 -2
  916. package/src/tts/provider-catalog.ts +1 -1
  917. package/src/usage/actors.ts +2 -1
  918. package/src/usage/attribution.ts +185 -0
  919. package/src/usage/pricing.ts +166 -0
  920. package/src/usage/types.ts +14 -0
  921. package/src/util/json.ts +13 -0
  922. package/src/util/logger.ts +3 -3
  923. package/src/util/pricing.ts +50 -3
  924. package/src/work-items/work-item-runner.ts +15 -42
  925. package/src/workspace/hatched-date.ts +86 -0
  926. package/src/workspace/migrations/003-seed-device-id.ts +1 -1
  927. package/src/workspace/migrations/006-services-config.ts +8 -5
  928. package/src/workspace/migrations/016-extract-feature-flags-to-protected.ts +3 -9
  929. package/src/workspace/migrations/021-move-signals-to-workspace.ts +4 -10
  930. package/src/workspace/migrations/022-move-hooks-to-workspace.ts +4 -10
  931. package/src/workspace/migrations/023-move-config-files-to-workspace.ts +4 -11
  932. package/src/workspace/migrations/024-move-runtime-files-to-workspace.ts +3 -10
  933. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +3 -2
  934. package/src/workspace/migrations/050-seed-main-agent-opus-callsite.ts +6 -4
  935. package/src/workspace/migrations/052-seed-default-inference-profiles.ts +3 -3
  936. package/src/workspace/migrations/059-move-pid-to-workspace.ts +3 -8
  937. package/src/workspace/migrations/060-memory-v2-init.ts +2 -18
  938. package/src/workspace/migrations/061-move-backup-key-to-workspace.ts +54 -0
  939. package/src/workspace/migrations/062-drop-memory-v2-edges-json.ts +27 -0
  940. package/src/workspace/migrations/063-release-notes-dynamic-model-context.ts +70 -0
  941. package/src/workspace/migrations/064-unwind-main-agent-opus-seed.ts +64 -0
  942. package/src/workspace/migrations/AGENTS.md +1 -1
  943. package/src/workspace/migrations/migrate-to-workspace-volume.ts +4 -10
  944. package/src/workspace/migrations/registry.ts +8 -0
  945. package/src/workspace/migrations/utils.ts +21 -0
  946. package/src/workspace/provider-commit-message-generator.ts +3 -3
  947. package/src/__tests__/host-browser-e2e-cloud.test.ts +0 -904
  948. package/src/__tests__/host-browser-e2e-self-hosted-capability.test.ts +0 -296
  949. package/src/__tests__/host-browser-ws-events-e2e.test.ts +0 -431
  950. package/src/__tests__/sandbox-diagnostics.test.ts +0 -138
  951. package/src/__tests__/sandbox-host-parity.test.ts +0 -1024
  952. package/src/__tests__/secret-detection-handler.test.ts +0 -67
  953. package/src/__tests__/secret-scanner-executor.test.ts +0 -450
  954. package/src/__tests__/tcc-sandbox-deny.test.ts +0 -198
  955. package/src/__tests__/terminal-sandbox.test.ts +0 -374
  956. package/src/__tests__/tool-notification-listener.test.ts +0 -65
  957. package/src/__tests__/twilio-rest.test.ts +0 -34
  958. package/src/backup/__tests__/backup-key.test.ts +0 -152
  959. package/src/backup/__tests__/backup-worker.test.ts +0 -754
  960. package/src/backup/__tests__/offsite-writer.test.ts +0 -641
  961. package/src/backup/__tests__/stream-crypt.test.ts +0 -228
  962. package/src/backup/backup-key.ts +0 -137
  963. package/src/backup/backup-worker.ts +0 -438
  964. package/src/backup/offsite-writer.ts +0 -222
  965. package/src/backup/stream-crypt.ts +0 -263
  966. package/src/context/__tests__/microcompact.test.ts +0 -805
  967. package/src/context/microcompact.ts +0 -443
  968. package/src/daemon/handlers/slack-channel-oauth-install.ts +0 -197
  969. package/src/daemon/message-types/pairing.ts +0 -58
  970. package/src/events/tool-notification-listener.ts +0 -17
  971. package/src/ipc/routes/__tests__/memory-v2-validate.test.ts +0 -219
  972. package/src/memory/v2/__tests__/edges.test.ts +0 -435
  973. package/src/memory/v2/edges.ts +0 -217
  974. package/src/outbound-proxy/config.ts +0 -94
  975. package/src/outbound-proxy/health.ts +0 -62
  976. package/src/outbound-proxy/types.ts +0 -150
  977. package/src/prompts/__tests__/system-prompt-memory-v2.test.ts +0 -197
  978. package/src/runtime/__tests__/chrome-extension-registry.test.ts +0 -518
  979. package/src/runtime/__tests__/client-registry.test.ts +0 -271
  980. package/src/runtime/capability-tokens.ts +0 -190
  981. package/src/runtime/chrome-extension-registry.ts +0 -368
  982. package/src/runtime/client-registry.ts +0 -254
  983. package/src/runtime/routes/inbound-stages/verification-intercept.ts +0 -329
  984. package/src/signals/mcp-reload.ts +0 -18
  985. package/src/tools/secret-detection-handler.ts +0 -269
  986. package/src/tools/terminal/backends/native.ts +0 -327
  987. package/src/tools/terminal/backends/types.ts +0 -37
  988. package/src/tools/terminal/sandbox-diagnostics.ts +0 -87
  989. package/src/tools/terminal/sandbox.ts +0 -40
package/openapi.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  openapi: 3.0.0
4
4
  info:
5
5
  title: Vellum Assistant API
6
- version: 0.7.0
6
+ version: 0.7.2
7
7
  description: Auto-generated OpenAPI specification for the Vellum Assistant runtime HTTP server.
8
8
  servers:
9
9
  - url: http://127.0.0.1:7821
@@ -465,6 +465,13 @@ paths:
465
465
  required:
466
466
  - apps
467
467
  additionalProperties: false
468
+ parameters:
469
+ - name: conversationId
470
+ in: query
471
+ required: false
472
+ schema:
473
+ type: string
474
+ description: Filter apps by conversation ID
468
475
  /v1/apps/{appId}/dist/{filename}:
469
476
  get:
470
477
  operationId: apps_by_appId_dist_by_filename_get
@@ -2439,6 +2446,40 @@ paths:
2439
2446
  schema:
2440
2447
  type: string
2441
2448
  description: Filter clients by a specific capability.
2449
+ /v1/clients/disconnect:
2450
+ post:
2451
+ operationId: clients_disconnect_post
2452
+ summary: Force-disconnect a client
2453
+ description: Dispose all hub subscribers for the given clientId, forcibly closing their SSE streams.
2454
+ tags:
2455
+ - clients
2456
+ responses:
2457
+ "200":
2458
+ description: Successful response
2459
+ content:
2460
+ application/json:
2461
+ schema:
2462
+ type: object
2463
+ properties:
2464
+ disconnected:
2465
+ type: number
2466
+ description: Number of disposed subscribers.
2467
+ required:
2468
+ - disconnected
2469
+ additionalProperties: false
2470
+ requestBody:
2471
+ required: true
2472
+ content:
2473
+ application/json:
2474
+ schema:
2475
+ type: object
2476
+ properties:
2477
+ clientId:
2478
+ type: string
2479
+ description: The client UUID to disconnect.
2480
+ required:
2481
+ - clientId
2482
+ additionalProperties: false
2442
2483
  /v1/config:
2443
2484
  get:
2444
2485
  operationId: config_get
@@ -2491,6 +2532,18 @@ paths:
2491
2532
  required:
2492
2533
  - provider
2493
2534
  additionalProperties: false
2535
+ /v1/config/llm/call-sites:
2536
+ get:
2537
+ operationId: config_llm_callsites_get
2538
+ summary: List LLM call sites
2539
+ description:
2540
+ Returns the full catalog of LLM call sites with display names, descriptions, and domain groupings. Used by
2541
+ clients to render the per-call-site override settings UI.
2542
+ tags:
2543
+ - config
2544
+ responses:
2545
+ "200":
2546
+ description: Successful response
2494
2547
  /v1/config/llm/profiles/{name}:
2495
2548
  put:
2496
2549
  operationId: config_llm_profiles_by_name_put
@@ -2594,6 +2647,76 @@ paths:
2594
2647
  - requestId
2595
2648
  - decision
2596
2649
  additionalProperties: false
2650
+ /v1/consolidation/config:
2651
+ get:
2652
+ operationId: consolidation_config_get
2653
+ summary: Get consolidation config
2654
+ description: Return the current memory v2 consolidation schedule configuration.
2655
+ tags:
2656
+ - consolidation
2657
+ responses:
2658
+ "200":
2659
+ description: Successful response
2660
+ content:
2661
+ application/json:
2662
+ schema:
2663
+ type: object
2664
+ properties:
2665
+ available:
2666
+ type: boolean
2667
+ enabled:
2668
+ type: boolean
2669
+ intervalMs:
2670
+ type: number
2671
+ nextRunAt:
2672
+ anyOf:
2673
+ - type: number
2674
+ - type: "null"
2675
+ lastRunAt:
2676
+ anyOf:
2677
+ - type: number
2678
+ - type: "null"
2679
+ success:
2680
+ type: boolean
2681
+ required:
2682
+ - available
2683
+ - enabled
2684
+ - intervalMs
2685
+ - nextRunAt
2686
+ - lastRunAt
2687
+ - success
2688
+ additionalProperties: false
2689
+ /v1/consolidation/run-now:
2690
+ post:
2691
+ operationId: consolidation_runnow_post
2692
+ summary: Run consolidation now
2693
+ description:
2694
+ Enqueue an immediate memory v2 consolidation job. Returns once the job is queued; the job itself runs
2695
+ through the memory jobs worker.
2696
+ tags:
2697
+ - consolidation
2698
+ responses:
2699
+ "200":
2700
+ description: Successful response
2701
+ content:
2702
+ application/json:
2703
+ schema:
2704
+ type: object
2705
+ properties:
2706
+ success:
2707
+ type: boolean
2708
+ ran:
2709
+ type: boolean
2710
+ description: Whether a job was enqueued
2711
+ jobId:
2712
+ anyOf:
2713
+ - type: string
2714
+ - type: "null"
2715
+ required:
2716
+ - success
2717
+ - ran
2718
+ - jobId
2719
+ additionalProperties: false
2597
2720
  /v1/contact-channels/{contactChannelId}:
2598
2721
  patch:
2599
2722
  operationId: contactchannels_by_contactChannelId_patch
@@ -3083,6 +3206,68 @@ paths:
3083
3206
  - keepId
3084
3207
  - mergeId
3085
3208
  additionalProperties: false
3209
+ /v1/contacts/prompt:
3210
+ post:
3211
+ operationId: contacts_prompt_post
3212
+ summary: Prompt user to register a contact channel
3213
+ description:
3214
+ Broadcasts a contact_request to connected clients, waits for the user to submit an address via the gateway.
3215
+ The gateway owns the contact write and notifies the daemon via resolve_contact_prompt IPC.
3216
+ tags:
3217
+ - contacts
3218
+ responses:
3219
+ "200":
3220
+ description: Successful response
3221
+ content:
3222
+ application/json:
3223
+ schema:
3224
+ type: object
3225
+ properties:
3226
+ ok:
3227
+ type: boolean
3228
+ error:
3229
+ type: string
3230
+ contactId:
3231
+ type: string
3232
+ channelId:
3233
+ type: string
3234
+ channelType:
3235
+ type: string
3236
+ address:
3237
+ type: string
3238
+ required:
3239
+ - ok
3240
+ additionalProperties: false
3241
+ requestBody:
3242
+ required: true
3243
+ content:
3244
+ application/json:
3245
+ schema:
3246
+ type: object
3247
+ properties:
3248
+ channel:
3249
+ description: Suggested channel type hint (e.g. phone, email, telegram). Free text — not enforced.
3250
+ type: string
3251
+ placeholder:
3252
+ description: Placeholder text for the address input field.
3253
+ type: string
3254
+ label:
3255
+ description: Display label shown in the prompt UI.
3256
+ type: string
3257
+ description:
3258
+ description: Longer description for the prompt UI.
3259
+ type: string
3260
+ role:
3261
+ default: unknown
3262
+ description: Intended role of the contact being registered.
3263
+ type: string
3264
+ enum:
3265
+ - guardian
3266
+ - trusted-contact
3267
+ - unknown
3268
+ required:
3269
+ - role
3270
+ additionalProperties: false
3086
3271
  /v1/contacts/search:
3087
3272
  post:
3088
3273
  operationId: contacts_search_post
@@ -3216,6 +3401,10 @@ paths:
3216
3401
  description: Successful response
3217
3402
  get:
3218
3403
  operationId: conversations_get
3404
+ summary: List conversations
3405
+ description: Paginated list of conversations with attention state and display metadata.
3406
+ tags:
3407
+ - conversations
3219
3408
  responses:
3220
3409
  "200":
3221
3410
  description: Successful response
@@ -3282,6 +3471,10 @@ paths:
3282
3471
  type: string
3283
3472
  get:
3284
3473
  operationId: conversations_by_id_get
3474
+ summary: Get conversation detail
3475
+ description: Retrieve a single conversation with full metadata.
3476
+ tags:
3477
+ - conversations
3285
3478
  responses:
3286
3479
  "200":
3287
3480
  description: Successful response
@@ -3770,6 +3963,10 @@ paths:
3770
3963
  /v1/conversations/seen:
3771
3964
  post:
3772
3965
  operationId: conversations_seen_post
3966
+ summary: Record a seen signal
3967
+ description: Mark a conversation as seen, advancing the attention cursor.
3968
+ tags:
3969
+ - conversations
3773
3970
  responses:
3774
3971
  "200":
3775
3972
  description: Successful response
@@ -3819,6 +4016,10 @@ paths:
3819
4016
  /v1/conversations/unread:
3820
4017
  post:
3821
4018
  operationId: conversations_unread_post
4019
+ summary: Mark conversation unread
4020
+ description: Reset the seen cursor so the conversation appears unread.
4021
+ tags:
4022
+ - conversations
3822
4023
  responses:
3823
4024
  "200":
3824
4025
  description: Successful response
@@ -4381,6 +4582,22 @@ paths:
4381
4582
  required: true
4382
4583
  schema:
4383
4584
  type: string
4585
+ /v1/documents/{id}/pdf:
4586
+ get:
4587
+ operationId: documents_by_id_pdf_get
4588
+ summary: Export a document as PDF
4589
+ description: Render a document to PDF and return the binary content.
4590
+ tags:
4591
+ - documents
4592
+ responses:
4593
+ "200":
4594
+ description: Successful response
4595
+ parameters:
4596
+ - name: id
4597
+ in: path
4598
+ required: true
4599
+ schema:
4600
+ type: string
4384
4601
  /v1/events:
4385
4602
  get:
4386
4603
  operationId: events_get
@@ -4450,6 +4667,8 @@ paths:
4450
4667
  schema:
4451
4668
  type: object
4452
4669
  properties:
4670
+ available:
4671
+ type: boolean
4453
4672
  enabled:
4454
4673
  type: boolean
4455
4674
  intervalMs:
@@ -4473,6 +4692,7 @@ paths:
4473
4692
  success:
4474
4693
  type: boolean
4475
4694
  required:
4695
+ - available
4476
4696
  - enabled
4477
4697
  - intervalMs
4478
4698
  - activeHoursStart
@@ -4505,6 +4725,35 @@ paths:
4505
4725
  - success
4506
4726
  - ran
4507
4727
  additionalProperties: false
4728
+ /v1/gateway/logs/tail:
4729
+ get:
4730
+ operationId: gateway_logs_tail_get
4731
+ summary: Tail gateway log entries
4732
+ description: Return the last N structured log entries from the gateway log files.
4733
+ tags:
4734
+ - gateway-logs
4735
+ responses:
4736
+ "200":
4737
+ description: Successful response
4738
+ parameters:
4739
+ - name: n
4740
+ in: query
4741
+ required: false
4742
+ schema:
4743
+ type: string
4744
+ description: "Number of lines to return (1–1000, default: 10)"
4745
+ - name: level
4746
+ in: query
4747
+ required: false
4748
+ schema:
4749
+ type: string
4750
+ description: "Minimum pino level name (default: info)"
4751
+ - name: module
4752
+ in: query
4753
+ required: false
4754
+ schema:
4755
+ type: string
4756
+ description: Filter to exact pino module name
4508
4757
  /v1/groups:
4509
4758
  get:
4510
4759
  operationId: groups_get
@@ -5033,6 +5282,14 @@ paths:
5033
5282
  anyOf:
5034
5283
  - type: number
5035
5284
  - type: "null"
5285
+ cronExpression:
5286
+ anyOf:
5287
+ - type: string
5288
+ - type: "null"
5289
+ timezone:
5290
+ anyOf:
5291
+ - type: string
5292
+ - type: "null"
5036
5293
  nextRunAt:
5037
5294
  anyOf:
5038
5295
  - type: number
@@ -5048,6 +5305,8 @@ paths:
5048
5305
  - intervalMs
5049
5306
  - activeHoursStart
5050
5307
  - activeHoursEnd
5308
+ - cronExpression
5309
+ - timezone
5051
5310
  - nextRunAt
5052
5311
  - lastRunAt
5053
5312
  - success
@@ -5078,6 +5337,14 @@ paths:
5078
5337
  anyOf:
5079
5338
  - type: number
5080
5339
  - type: "null"
5340
+ cronExpression:
5341
+ anyOf:
5342
+ - type: string
5343
+ - type: "null"
5344
+ timezone:
5345
+ anyOf:
5346
+ - type: string
5347
+ - type: "null"
5081
5348
  nextRunAt:
5082
5349
  anyOf:
5083
5350
  - type: number
@@ -5093,6 +5360,8 @@ paths:
5093
5360
  - intervalMs
5094
5361
  - activeHoursStart
5095
5362
  - activeHoursEnd
5363
+ - cronExpression
5364
+ - timezone
5096
5365
  - nextRunAt
5097
5366
  - lastRunAt
5098
5367
  - success
@@ -5105,22 +5374,31 @@ paths:
5105
5374
  type: object
5106
5375
  properties:
5107
5376
  enabled:
5108
- type: boolean
5109
5377
  description: Enable or disable heartbeat
5378
+ type: boolean
5110
5379
  intervalMs:
5111
- type: number
5112
5380
  description: Heartbeat interval in ms
5113
- activeHoursStart:
5114
5381
  type: number
5382
+ activeHoursStart:
5115
5383
  description: Active hours start (0–23)
5384
+ anyOf:
5385
+ - type: number
5386
+ - type: "null"
5116
5387
  activeHoursEnd:
5117
- type: number
5118
5388
  description: Active hours end (0–23)
5119
- required:
5120
- - enabled
5121
- - intervalMs
5122
- - activeHoursStart
5123
- - activeHoursEnd
5389
+ anyOf:
5390
+ - type: number
5391
+ - type: "null"
5392
+ cronExpression:
5393
+ description: Cron expression for heartbeat timing, or null for fixed interval
5394
+ anyOf:
5395
+ - type: string
5396
+ - type: "null"
5397
+ timezone:
5398
+ description: Timezone for cron evaluation
5399
+ anyOf:
5400
+ - type: string
5401
+ - type: "null"
5124
5402
  additionalProperties: false
5125
5403
  /v1/heartbeat/run-now:
5126
5404
  post:
@@ -5163,7 +5441,53 @@ paths:
5163
5441
  properties:
5164
5442
  runs:
5165
5443
  type: array
5166
- items: {}
5444
+ items:
5445
+ type: object
5446
+ properties:
5447
+ id:
5448
+ type: string
5449
+ scheduledFor:
5450
+ type: number
5451
+ startedAt:
5452
+ anyOf:
5453
+ - type: number
5454
+ - type: "null"
5455
+ finishedAt:
5456
+ anyOf:
5457
+ - type: number
5458
+ - type: "null"
5459
+ durationMs:
5460
+ anyOf:
5461
+ - type: number
5462
+ - type: "null"
5463
+ status:
5464
+ type: string
5465
+ skipReason:
5466
+ anyOf:
5467
+ - type: string
5468
+ - type: "null"
5469
+ error:
5470
+ anyOf:
5471
+ - type: string
5472
+ - type: "null"
5473
+ conversationId:
5474
+ anyOf:
5475
+ - type: string
5476
+ - type: "null"
5477
+ createdAt:
5478
+ type: number
5479
+ required:
5480
+ - id
5481
+ - scheduledFor
5482
+ - startedAt
5483
+ - finishedAt
5484
+ - durationMs
5485
+ - status
5486
+ - skipReason
5487
+ - error
5488
+ - conversationId
5489
+ - createdAt
5490
+ additionalProperties: false
5167
5491
  description: Heartbeat run records
5168
5492
  required:
5169
5493
  - runs
@@ -5669,11 +5993,13 @@ paths:
5669
5993
  additionalProperties: false
5670
5994
  "500":
5671
5995
  description: Failed to compute relationship state
5672
- /v1/host-bash-result:
5996
+ /v1/host-app-control-result:
5673
5997
  post:
5674
- operationId: hostbashresult_post
5675
- summary: Submit host bash result
5676
- description: Resolve a pending host bash request by requestId.
5998
+ operationId: hostappcontrolresult_post
5999
+ summary: Submit host app-control result
6000
+ description:
6001
+ Resolve a pending host app-control request by requestId. Returns 200 even when no pending interaction
6002
+ matches (late delivery is tolerated).
5677
6003
  tags:
5678
6004
  - host
5679
6005
  responses:
@@ -5698,17 +6024,128 @@ paths:
5698
6024
  properties:
5699
6025
  requestId:
5700
6026
  type: string
5701
- description: Pending bash request ID
5702
- stdout:
6027
+ description: Pending app-control request ID
6028
+ state:
5703
6029
  type: string
5704
- stderr:
6030
+ enum:
6031
+ - running
6032
+ - missing
6033
+ - minimized
6034
+ description: Lifecycle state of the targeted application
6035
+ pngBase64:
6036
+ type: string
6037
+ description: Base64 PNG screenshot of the targeted app window
6038
+ windowBounds:
6039
+ type: object
6040
+ properties:
6041
+ x:
6042
+ type: number
6043
+ y:
6044
+ type: number
6045
+ width:
6046
+ type: number
6047
+ height:
6048
+ type: number
6049
+ required:
6050
+ - x
6051
+ - y
6052
+ - width
6053
+ - height
6054
+ additionalProperties: false
6055
+ executionResult:
6056
+ type: string
6057
+ executionError:
5705
6058
  type: string
5706
- exitCode:
5707
- type: number
5708
- timedOut:
5709
- type: boolean
5710
6059
  required:
5711
6060
  - requestId
6061
+ - state
6062
+ additionalProperties: false
6063
+ /v1/host-bash-result:
6064
+ post:
6065
+ operationId: hostbashresult_post
6066
+ summary: Submit host bash result
6067
+ description: Resolve a pending host bash request by requestId.
6068
+ tags:
6069
+ - host
6070
+ responses:
6071
+ "200":
6072
+ description: Successful response
6073
+ content:
6074
+ application/json:
6075
+ schema:
6076
+ type: object
6077
+ properties:
6078
+ accepted:
6079
+ type: boolean
6080
+ required:
6081
+ - accepted
6082
+ additionalProperties: false
6083
+ "400":
6084
+ description: x-vellum-client-id header is missing for a targeted host bash request.
6085
+ "403":
6086
+ description: Submitting client does not match the targeted client for this request.
6087
+ "404":
6088
+ description: No pending interaction found for the given requestId.
6089
+ "409":
6090
+ description: Pending interaction exists but is of a different kind (e.g. host_file, host_cu).
6091
+ requestBody:
6092
+ required: true
6093
+ content:
6094
+ application/json:
6095
+ schema:
6096
+ type: object
6097
+ properties:
6098
+ requestId:
6099
+ type: string
6100
+ description: Pending bash request ID
6101
+ stdout:
6102
+ type: string
6103
+ stderr:
6104
+ type: string
6105
+ exitCode:
6106
+ type: number
6107
+ timedOut:
6108
+ type: boolean
6109
+ required:
6110
+ - requestId
6111
+ additionalProperties: false
6112
+ /v1/host-browser-event:
6113
+ post:
6114
+ operationId: hostbrowserevent_post
6115
+ summary: Forward a CDP event from the browser extension
6116
+ description: Publishes a chrome.debugger.onEvent firing into the runtime-side browser-session event bus.
6117
+ tags:
6118
+ - host
6119
+ responses:
6120
+ "200":
6121
+ description: Successful response
6122
+ content:
6123
+ application/json:
6124
+ schema:
6125
+ type: object
6126
+ properties:
6127
+ accepted:
6128
+ type: boolean
6129
+ required:
6130
+ - accepted
6131
+ additionalProperties: false
6132
+ requestBody:
6133
+ required: true
6134
+ content:
6135
+ application/json:
6136
+ schema:
6137
+ type: object
6138
+ properties:
6139
+ method:
6140
+ type: string
6141
+ description: CDP event method name
6142
+ params:
6143
+ description: CDP event parameters
6144
+ cdpSessionId:
6145
+ description: CDP session ID (if target-scoped)
6146
+ type: string
6147
+ required:
6148
+ - method
5712
6149
  additionalProperties: false
5713
6150
  /v1/host-browser-result:
5714
6151
  post:
@@ -5747,6 +6184,40 @@ paths:
5747
6184
  required:
5748
6185
  - requestId
5749
6186
  additionalProperties: false
6187
+ /v1/host-browser-session-invalidated:
6188
+ post:
6189
+ operationId: hostbrowsersessioninvalidated_post
6190
+ summary: Notify runtime that a CDP session was invalidated
6191
+ description: Marks the target as invalidated in the runtime-side browser session registry.
6192
+ tags:
6193
+ - host
6194
+ responses:
6195
+ "200":
6196
+ description: Successful response
6197
+ content:
6198
+ application/json:
6199
+ schema:
6200
+ type: object
6201
+ properties:
6202
+ accepted:
6203
+ type: boolean
6204
+ required:
6205
+ - accepted
6206
+ additionalProperties: false
6207
+ requestBody:
6208
+ required: true
6209
+ content:
6210
+ application/json:
6211
+ schema:
6212
+ type: object
6213
+ properties:
6214
+ targetId:
6215
+ description: CDP target that was detached
6216
+ type: string
6217
+ reason:
6218
+ description: Detach reason
6219
+ type: string
6220
+ additionalProperties: false
5750
6221
  /v1/host-cu-result:
5751
6222
  post:
5752
6223
  operationId: hostcuresult_post
@@ -5767,6 +6238,14 @@ paths:
5767
6238
  required:
5768
6239
  - accepted
5769
6240
  additionalProperties: false
6241
+ "400":
6242
+ description: x-vellum-client-id header is missing for a targeted host CU request.
6243
+ "403":
6244
+ description: Submitting client does not match the targeted client for this request.
6245
+ "404":
6246
+ description: No pending interaction found for the given requestId, or the conversation/proxy no longer exists.
6247
+ "409":
6248
+ description: Pending interaction exists but is of a different kind (e.g. host_bash, host_file).
5770
6249
  requestBody:
5771
6250
  required: true
5772
6251
  content:
@@ -5825,6 +6304,14 @@ paths:
5825
6304
  required:
5826
6305
  - accepted
5827
6306
  additionalProperties: false
6307
+ "400":
6308
+ description: x-vellum-client-id header is missing for a targeted host file request.
6309
+ "403":
6310
+ description: Submitting client does not match the targeted client for this request.
6311
+ "404":
6312
+ description: No pending interaction found for the given requestId.
6313
+ "409":
6314
+ description: Pending interaction exists but is of a different kind (e.g. host_bash, host_cu).
5828
6315
  requestBody:
5829
6316
  required: true
5830
6317
  content:
@@ -5867,6 +6354,10 @@ paths:
5867
6354
  required:
5868
6355
  - accepted
5869
6356
  additionalProperties: false
6357
+ "400":
6358
+ description: x-vellum-client-id header is missing for a targeted host transfer request.
6359
+ "403":
6360
+ description: Submitting client does not match the targeted client for this transfer.
5870
6361
  requestBody:
5871
6362
  required: true
5872
6363
  content:
@@ -5928,7 +6419,9 @@ paths:
5928
6419
  get:
5929
6420
  operationId: identity_intro_get
5930
6421
  summary: Get identity intro text
5931
- description: Returns the cached identity intro string, preferring SOUL.md over LLM-generated cache.
6422
+ description:
6423
+ Returns a deterministic greeting derived from the assistant name in IDENTITY.md, falling back to
6424
+ LLM-generated cache.
5932
6425
  tags:
5933
6426
  - identity
5934
6427
  responses:
@@ -6053,16 +6546,6 @@ paths:
6053
6546
  responses:
6054
6547
  "200":
6055
6548
  description: Successful response
6056
- /v1/integrations/slack/channel/oauth-install:
6057
- post:
6058
- operationId: integrations_slack_channel_oauthinstall_post
6059
- summary: Run Slack OAuth install
6060
- description: Run an OAuth2 loopback flow to install the Slack app and capture bot + user tokens.
6061
- tags:
6062
- - integrations
6063
- responses:
6064
- "200":
6065
- description: Successful response
6066
6549
  /v1/integrations/telegram/commands:
6067
6550
  post:
6068
6551
  operationId: integrations_telegram_commands_post
@@ -6211,6 +6694,9 @@ paths:
6211
6694
  /v1/interfaces/{path}:
6212
6695
  get:
6213
6696
  operationId: interfaces_by_path_get
6697
+ summary: Serve an interface definition file
6698
+ tags:
6699
+ - interfaces
6214
6700
  responses:
6215
6701
  "200":
6216
6702
  description: Successful response
@@ -6220,27 +6706,111 @@ paths:
6220
6706
  required: true
6221
6707
  schema:
6222
6708
  type: string
6709
+ /v1/internal/mcp/auth/start:
6710
+ post:
6711
+ operationId: internal_mcp_auth_start_post
6712
+ summary: Start MCP OAuth flow
6713
+ description: Starts a daemon-owned MCP OAuth flow and returns the authorization URL for the CLI to open in the browser.
6714
+ tags:
6715
+ - internal
6716
+ responses:
6717
+ "200":
6718
+ description: Successful response
6719
+ requestBody:
6720
+ required: true
6721
+ content:
6722
+ application/json:
6723
+ schema:
6724
+ type: object
6725
+ properties:
6726
+ serverId:
6727
+ type: string
6728
+ required:
6729
+ - serverId
6730
+ additionalProperties: false
6731
+ /v1/internal/mcp/auth/status/{serverId}:
6732
+ get:
6733
+ operationId: internal_mcp_auth_status_by_serverId_get
6734
+ summary: Poll MCP OAuth flow status
6735
+ description: Returns the current status of an in-flight MCP OAuth flow (pending/complete/error).
6736
+ tags:
6737
+ - internal
6738
+ responses:
6739
+ "200":
6740
+ description: Successful response
6741
+ "404":
6742
+ description: No active OAuth flow for the given serverId
6743
+ parameters:
6744
+ - name: serverId
6745
+ in: path
6746
+ required: true
6747
+ schema:
6748
+ type: string
6749
+ /v1/internal/mcp/reload:
6750
+ post:
6751
+ operationId: internal_mcp_reload_post
6752
+ summary: Trigger MCP server reload
6753
+ description: Kicks off reloadMcpServers() async on the daemon. Returns immediately.
6754
+ tags:
6755
+ - internal
6756
+ responses:
6757
+ "200":
6758
+ description: Successful response
6223
6759
  /v1/internal/oauth/callback:
6224
6760
  post:
6225
6761
  operationId: internal_oauth_callback_post
6762
+ summary: Internal OAuth callback
6763
+ description:
6764
+ Receives forwarded OAuth callback results (code or error) from the gateway and resolves the pending
6765
+ callback in the runtime.
6766
+ tags:
6767
+ - internal
6226
6768
  responses:
6227
6769
  "200":
6228
6770
  description: Successful response
6771
+ requestBody:
6772
+ required: true
6773
+ content:
6774
+ application/json:
6775
+ schema:
6776
+ type: object
6777
+ properties:
6778
+ state:
6779
+ type: string
6780
+ code:
6781
+ type: string
6782
+ error:
6783
+ type: string
6784
+ required:
6785
+ - state
6786
+ additionalProperties: false
6229
6787
  /v1/internal/twilio/connect-action:
6230
6788
  post:
6231
6789
  operationId: internal_twilio_connectaction_post
6790
+ summary: Internal Twilio connect-action
6791
+ description: Gateway-to-runtime forwarding for ConversationRelay connect-action callback.
6792
+ tags:
6793
+ - internal
6232
6794
  responses:
6233
6795
  "200":
6234
6796
  description: Successful response
6235
6797
  /v1/internal/twilio/status:
6236
6798
  post:
6237
6799
  operationId: internal_twilio_status_post
6800
+ summary: Internal Twilio status callback
6801
+ description: Gateway-to-runtime forwarding for Twilio call status updates. Accepts pre-parsed form params as JSON.
6802
+ tags:
6803
+ - internal
6238
6804
  responses:
6239
6805
  "200":
6240
6806
  description: Successful response
6241
6807
  /v1/internal/twilio/voice-webhook:
6242
6808
  post:
6243
6809
  operationId: internal_twilio_voicewebhook_post
6810
+ summary: Internal Twilio voice webhook
6811
+ description: Gateway-to-runtime forwarding for Twilio voice webhook. Accepts pre-parsed form params as JSON.
6812
+ tags:
6813
+ - internal
6244
6814
  responses:
6245
6815
  "200":
6246
6816
  description: Successful response
@@ -6541,7 +7111,6 @@ paths:
6541
7111
  type: string
6542
7112
  enum:
6543
7113
  - migrate
6544
- - rebuild-edges
6545
7114
  - reembed
6546
7115
  - activation-recompute
6547
7116
  force:
@@ -6549,6 +7118,124 @@ paths:
6549
7118
  required:
6550
7119
  - op
6551
7120
  additionalProperties: false
7121
+ /v1/memory/v2/concept-page:
7122
+ post:
7123
+ operationId: memory_v2_conceptpage_post
7124
+ summary: Read a single memory v2 concept page
7125
+ description:
7126
+ Returns the rendered (frontmatter + body) markdown for a slug. 404 when the slug has no on-disk page — the
7127
+ activation log inspector uses this to show what got injected.
7128
+ tags:
7129
+ - memory
7130
+ responses:
7131
+ "200":
7132
+ description: Successful response
7133
+ requestBody:
7134
+ required: true
7135
+ content:
7136
+ application/json:
7137
+ schema:
7138
+ type: object
7139
+ properties:
7140
+ slug:
7141
+ type: string
7142
+ minLength: 1
7143
+ required:
7144
+ - slug
7145
+ additionalProperties: false
7146
+ /v1/memory/v2/explain-similarity:
7147
+ post:
7148
+ operationId: memory_v2_explainsimilarity_post
7149
+ summary: Diagnose dense vs sparse similarity score distributions
7150
+ description:
7151
+ Read-only diagnostic. Embeds the supplied text(s), runs hybrid dense + sparse queries against the
7152
+ concept-page collection, and returns per-slug raw dense, raw sparse, normalized sparse, and fused scores plus
7153
+ per-channel summary stats. Used to investigate score-compression at the head of the activation distribution.
7154
+ tags:
7155
+ - memory
7156
+ responses:
7157
+ "200":
7158
+ description: Successful response
7159
+ requestBody:
7160
+ required: true
7161
+ content:
7162
+ application/json:
7163
+ schema:
7164
+ type: object
7165
+ properties:
7166
+ userText:
7167
+ type: string
7168
+ minLength: 1
7169
+ assistantText:
7170
+ type: string
7171
+ nowText:
7172
+ type: string
7173
+ top:
7174
+ default: 25
7175
+ type: integer
7176
+ minimum: 1
7177
+ maximum: 9007199254740991
7178
+ required:
7179
+ - userText
7180
+ - top
7181
+ additionalProperties: false
7182
+ /v1/memory/v2/fit-anisotropy:
7183
+ post:
7184
+ operationId: memory_v2_fitanisotropy_post
7185
+ summary: Fit the embedding anisotropy correction for memory v2
7186
+ description:
7187
+ Samples stored dense vectors from the concept-page Qdrant collection, fits a corpus mean + top-k principal
7188
+ components (Mu & Viswanath 'all-but-the-top'), and persists the calibration so subsequent embeds and queries
7189
+ apply the correction. Run `assistant memory v2 reembed` after fitting so stored vectors are written under the
7190
+ new calibration — until then, queries (corrected) and stored vectors (uncorrected) live in different spaces.
7191
+ tags:
7192
+ - memory
7193
+ responses:
7194
+ "200":
7195
+ description: Successful response
7196
+ requestBody:
7197
+ required: true
7198
+ content:
7199
+ application/json:
7200
+ schema:
7201
+ type: object
7202
+ properties:
7203
+ k:
7204
+ default: 1
7205
+ type: integer
7206
+ minimum: 1
7207
+ maximum: 16
7208
+ sample:
7209
+ default: 5000
7210
+ type: integer
7211
+ minimum: 1
7212
+ maximum: 100000
7213
+ required:
7214
+ - k
7215
+ - sample
7216
+ additionalProperties: false
7217
+ /v1/memory/v2/rebuild-corpus-stats:
7218
+ post:
7219
+ operationId: memory_v2_rebuildcorpusstats_post
7220
+ summary: Rebuild the BM25 corpus statistics for memory v2
7221
+ description:
7222
+ Walks every concept page on disk, recomputes the document-frequency table and average document length used
7223
+ by the BM25 sparse channel, and atomically swaps the in-memory stats. Run after bulk content imports or to
7224
+ recover from a rebuild that errored at startup. Does not reembed individual page sparse vectors — pair with
7225
+ `assistant memory v2 reembed` when document-side weights need refreshing.
7226
+ tags:
7227
+ - memory
7228
+ responses:
7229
+ "200":
7230
+ description: Successful response
7231
+ requestBody:
7232
+ required: true
7233
+ content:
7234
+ application/json:
7235
+ schema:
7236
+ type: object
7237
+ properties: {}
7238
+ additionalProperties: false
6552
7239
  /v1/memory/v2/reembed-skills:
6553
7240
  post:
6554
7241
  operationId: memory_v2_reembedskills_post
@@ -6706,17 +7393,34 @@ paths:
6706
7393
  properties:
6707
7394
  messageId:
6708
7395
  type: string
7396
+ conversationKind:
7397
+ type: string
7398
+ enum:
7399
+ - user
7400
+ - background
7401
+ - background_memory_consolidation
7402
+ - scheduled
6709
7403
  logs:
6710
7404
  type: array
6711
7405
  items: {}
6712
7406
  memoryRecall:
6713
- type: object
6714
- properties: {}
6715
- additionalProperties: {}
7407
+ anyOf:
7408
+ - type: object
7409
+ properties: {}
7410
+ additionalProperties: {}
7411
+ - type: "null"
7412
+ memoryV2Activation:
7413
+ anyOf:
7414
+ - type: object
7415
+ properties: {}
7416
+ additionalProperties: {}
7417
+ - type: "null"
6716
7418
  required:
6717
7419
  - messageId
7420
+ - conversationKind
6718
7421
  - logs
6719
7422
  - memoryRecall
7423
+ - memoryV2Activation
6720
7424
  additionalProperties: false
6721
7425
  parameters:
6722
7426
  - name: id
@@ -7512,23 +8216,13 @@ paths:
7512
8216
  required: true
7513
8217
  schema:
7514
8218
  type: string
7515
- /v1/pairing/request:
7516
- post:
7517
- operationId: pairing_request_post
7518
- responses:
7519
- "200":
7520
- description: Successful response
7521
- /v1/pairing/status:
7522
- get:
7523
- operationId: pairing_status_get
7524
- responses:
7525
- "200":
7526
- description: Successful response
7527
8219
  /v1/pending-interactions:
7528
8220
  get:
7529
8221
  operationId: pendinginteractions_get
7530
8222
  summary: List pending interactions
7531
- description: Return pending confirmations and secrets for a conversation.
8223
+ description:
8224
+ Return pending interactions. When conversationKey or conversationId is provided, returns details for that
8225
+ conversation. When neither is provided, returns all pending interactions.
7532
8226
  tags:
7533
8227
  - approvals
7534
8228
  responses:
@@ -7549,9 +8243,27 @@ paths:
7549
8243
  properties: {}
7550
8244
  additionalProperties: {}
7551
8245
  description: Pending secret request or null
7552
- required:
7553
- - pendingConfirmation
7554
- - pendingSecret
8246
+ interactions:
8247
+ type: array
8248
+ items:
8249
+ type: object
8250
+ properties:
8251
+ requestId:
8252
+ type: string
8253
+ conversationId:
8254
+ type: string
8255
+ kind:
8256
+ type: string
8257
+ toolName:
8258
+ type: string
8259
+ riskLevel:
8260
+ type: string
8261
+ required:
8262
+ - requestId
8263
+ - conversationId
8264
+ - kind
8265
+ additionalProperties: false
8266
+ description: All pending interactions (returned when no filters given)
7555
8267
  additionalProperties: false
7556
8268
  parameters:
7557
8269
  - name: conversationKey
@@ -7559,13 +8271,13 @@ paths:
7559
8271
  required: false
7560
8272
  schema:
7561
8273
  type: string
7562
- description: Conversation key
8274
+ description: Conversation key (optional)
7563
8275
  - name: conversationId
7564
8276
  in: query
7565
8277
  required: false
7566
8278
  schema:
7567
8279
  type: string
7568
- description: Conversation ID
8280
+ description: Conversation ID (optional)
7569
8281
  /v1/playground/seed-conversation:
7570
8282
  post:
7571
8283
  operationId: playground_seedconversation_post
@@ -8058,6 +8770,16 @@ paths:
8058
8770
  required:
8059
8771
  - conversationId
8060
8772
  additionalProperties: false
8773
+ /v1/resolve_contact_prompt:
8774
+ post:
8775
+ operationId: resolve_contact_prompt_post
8776
+ summary: "Gateway callback: resolve a pending contact prompt"
8777
+ description: Called by the gateway after it writes the contact and channel. Unblocks the waiting contacts/prompt IPC call.
8778
+ tags:
8779
+ - contacts
8780
+ responses:
8781
+ "200":
8782
+ description: Successful response
8061
8783
  /v1/schedules:
8062
8784
  get:
8063
8785
  operationId: schedules_get
@@ -8172,6 +8894,12 @@ paths:
8172
8894
  type: boolean
8173
8895
  reuseConversation:
8174
8896
  type: boolean
8897
+ maxRetries:
8898
+ type: number
8899
+ description: Maximum retry attempts
8900
+ retryBackoffMs:
8901
+ type: number
8902
+ description: Retry backoff in milliseconds
8175
8903
  required:
8176
8904
  - name
8177
8905
  - expression
@@ -8182,6 +8910,8 @@ paths:
8182
8910
  - routingIntent
8183
8911
  - quiet
8184
8912
  - reuseConversation
8913
+ - maxRetries
8914
+ - retryBackoffMs
8185
8915
  additionalProperties: false
8186
8916
  /v1/schedules/{id}/cancel:
8187
8917
  post:
@@ -10670,6 +11400,10 @@ paths:
10670
11400
  responses:
10671
11401
  "200":
10672
11402
  description: Successful response
11403
+ "400":
11404
+ description: x-vellum-client-id header is missing for a targeted transfer.
11405
+ "403":
11406
+ description: Submitting client does not match the targeted client for this transfer.
10673
11407
  parameters:
10674
11408
  - name: transferId
10675
11409
  in: path
@@ -10685,6 +11419,10 @@ paths:
10685
11419
  responses:
10686
11420
  "200":
10687
11421
  description: Successful response
11422
+ "400":
11423
+ description: x-vellum-client-id header is missing for a targeted transfer.
11424
+ "403":
11425
+ description: Submitting client does not match the targeted client for this transfer.
10688
11426
  parameters:
10689
11427
  - name: transferId
10690
11428
  in: path
@@ -10720,78 +11458,6 @@ paths:
10720
11458
  schema:
10721
11459
  type: string
10722
11460
  description: Include unmodified defaults
10723
- post:
10724
- operationId: trustrules_post
10725
- summary: Create a trust rule
10726
- description: Create a new trust rule with tool, pattern, risk level, and optional description.
10727
- tags:
10728
- - trust-rules
10729
- responses:
10730
- "200":
10731
- description: Successful response
10732
- requestBody:
10733
- required: true
10734
- content:
10735
- application/json:
10736
- schema:
10737
- type: object
10738
- properties:
10739
- tool:
10740
- type: string
10741
- pattern:
10742
- type: string
10743
- risk:
10744
- type: string
10745
- description:
10746
- type: string
10747
- required:
10748
- - tool
10749
- - pattern
10750
- - risk
10751
- additionalProperties: false
10752
- /v1/trust-rules/{id}:
10753
- delete:
10754
- operationId: trustrules_by_id_delete
10755
- summary: Remove a trust rule
10756
- description: Delete a trust rule by ID.
10757
- tags:
10758
- - trust-rules
10759
- responses:
10760
- "200":
10761
- description: Successful response
10762
- parameters:
10763
- - name: id
10764
- in: path
10765
- required: true
10766
- schema:
10767
- type: string
10768
- patch:
10769
- operationId: trustrules_by_id_patch
10770
- summary: Update a trust rule
10771
- description: Update the risk level or description of an existing trust rule.
10772
- tags:
10773
- - trust-rules
10774
- responses:
10775
- "200":
10776
- description: Successful response
10777
- parameters:
10778
- - name: id
10779
- in: path
10780
- required: true
10781
- schema:
10782
- type: string
10783
- requestBody:
10784
- required: true
10785
- content:
10786
- application/json:
10787
- schema:
10788
- type: object
10789
- properties:
10790
- risk:
10791
- type: string
10792
- description:
10793
- type: string
10794
- additionalProperties: false
10795
11461
  /v1/trust-rules/suggest:
10796
11462
  post:
10797
11463
  operationId: trustrules_suggest_post
@@ -10907,6 +11573,20 @@ paths:
10907
11573
  enum:
10908
11574
  - auto_approve
10909
11575
  - escalate
11576
+ existingRule:
11577
+ type: object
11578
+ properties:
11579
+ id:
11580
+ type: string
11581
+ pattern:
11582
+ type: string
11583
+ risk:
11584
+ type: string
11585
+ required:
11586
+ - id
11587
+ - pattern
11588
+ - risk
11589
+ additionalProperties: false
10910
11590
  required:
10911
11591
  - tool
10912
11592
  - command
@@ -11010,7 +11690,9 @@ paths:
11010
11690
  get:
11011
11691
  operationId: usage_breakdown_get
11012
11692
  summary: Get usage breakdown
11013
- description: Return grouped usage breakdown (by actor, provider, model, or conversation).
11693
+ description:
11694
+ Return grouped usage breakdown. Prefer call_site for user-facing task breakdowns; actor is a
11695
+ legacy/internal dimension.
11014
11696
  tags:
11015
11697
  - usage
11016
11698
  responses:
@@ -11046,7 +11728,7 @@ paths:
11046
11728
  required: false
11047
11729
  schema:
11048
11730
  type: string
11049
- description: "Group by: actor, provider, model, or conversation (required)"
11731
+ description: "Group by: actor, provider, model, conversation, call_site, inference_profile (required)"
11050
11732
  /v1/usage/daily:
11051
11733
  get:
11052
11734
  operationId: usage_daily_get
@@ -11099,6 +11781,64 @@ paths:
11099
11781
  description:
11100
11782
  IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
11101
11783
  this timezone. Defaults to "UTC" for backwards compatibility.
11784
+ /v1/usage/series:
11785
+ get:
11786
+ operationId: usage_series_get
11787
+ summary: Get grouped usage series
11788
+ description: Return usage buckets with per-group values for stacked charts. Prefer call_site for user-facing task stacks.
11789
+ tags:
11790
+ - usage
11791
+ responses:
11792
+ "200":
11793
+ description: Successful response
11794
+ content:
11795
+ application/json:
11796
+ schema:
11797
+ type: object
11798
+ properties:
11799
+ buckets:
11800
+ type: array
11801
+ items: {}
11802
+ description: Grouped usage bucket objects
11803
+ required:
11804
+ - buckets
11805
+ additionalProperties: false
11806
+ parameters:
11807
+ - name: from
11808
+ in: query
11809
+ required: false
11810
+ schema:
11811
+ type: integer
11812
+ description: Start epoch millis (required)
11813
+ - name: to
11814
+ in: query
11815
+ required: false
11816
+ schema:
11817
+ type: integer
11818
+ description: End epoch millis (required)
11819
+ - name: granularity
11820
+ in: query
11821
+ required: false
11822
+ schema:
11823
+ type: string
11824
+ enum:
11825
+ - daily
11826
+ - hourly
11827
+ description: 'Bucket granularity: "daily" (default) or "hourly"'
11828
+ - name: groupBy
11829
+ in: query
11830
+ required: false
11831
+ schema:
11832
+ type: string
11833
+ description: "Group by: actor, provider, model, call_site, inference_profile (required)"
11834
+ - name: tz
11835
+ in: query
11836
+ required: false
11837
+ schema:
11838
+ type: string
11839
+ description:
11840
+ IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
11841
+ this timezone. Defaults to "UTC".
11102
11842
  /v1/usage/totals:
11103
11843
  get:
11104
11844
  operationId: usage_totals_get