@vellumai/assistant 0.9.1-staging.1 → 0.10.0-staging.3

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 (444) hide show
  1. package/docs/activation-funnel-telemetry.md +24 -18
  2. package/node_modules/@vellumai/gateway-client/src/admission-policy-contract.ts +97 -0
  3. package/node_modules/@vellumai/gateway-client/src/inbound-contract.ts +10 -0
  4. package/node_modules/@vellumai/gateway-client/src/index.ts +15 -0
  5. package/openapi.yaml +881 -16
  6. package/package.json +1 -1
  7. package/src/__tests__/access-request-card-view.test.ts +98 -0
  8. package/src/__tests__/access-request-seed-content-blocks.test.ts +2 -4
  9. package/src/__tests__/actor-trust-resolver-address-fallback.test.ts +59 -7
  10. package/src/__tests__/agent-loop-compaction-strip.test.ts +17 -16
  11. package/src/__tests__/agent-loop-mutable-latest-user-message.test.ts +16 -13
  12. package/src/__tests__/app-compiler.test.ts +15 -1
  13. package/src/__tests__/approval-routes-http.test.ts +128 -0
  14. package/src/__tests__/auth-fallback-events-store.test.ts +6 -14
  15. package/src/__tests__/call-pointer-messages.test.ts +28 -0
  16. package/src/__tests__/cancel-clears-processing.test.ts +89 -0
  17. package/src/__tests__/channel-approval-routes.test.ts +0 -4
  18. package/src/__tests__/channel-inbound-disk-pressure.test.ts +5 -15
  19. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +3 -4
  20. package/src/__tests__/compactor-image-manifest-trust.test.ts +21 -1
  21. package/src/__tests__/compactor-summary-call-truncation.test.ts +223 -0
  22. package/src/__tests__/config-loader-backfill.test.ts +174 -30
  23. package/src/__tests__/config-schema.test.ts +35 -0
  24. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +2 -2
  25. package/src/__tests__/contact-store-user-file.test.ts +0 -6
  26. package/src/__tests__/contacts-tools.test.ts +29 -0
  27. package/src/__tests__/conversation-agent-loop-overflow.test.ts +1 -0
  28. package/src/__tests__/conversation-agent-loop.test.ts +58 -0
  29. package/src/__tests__/conversation-attention-telegram.test.ts +0 -1
  30. package/src/__tests__/conversation-lifecycle.test.ts +7 -9
  31. package/src/__tests__/conversation-load-history-repair.test.ts +101 -0
  32. package/src/__tests__/conversation-routes-guardian-reply.test.ts +15 -12
  33. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +6 -3
  34. package/src/__tests__/conversation-title-service.test.ts +62 -0
  35. package/src/__tests__/credential-execution-shell-lockdown.test.ts +18 -11
  36. package/src/__tests__/credential-prompt-route.test.ts +1 -0
  37. package/src/__tests__/credential-security-invariants.test.ts +2 -0
  38. package/src/__tests__/disk-pressure-policy.test.ts +12 -0
  39. package/src/__tests__/disk-usage.test.ts +65 -0
  40. package/src/__tests__/document-tool-security.test.ts +9 -6
  41. package/src/__tests__/document-update-default-surface.test.ts +202 -0
  42. package/src/__tests__/dynamic-page-surface.test.ts +51 -0
  43. package/src/__tests__/gateway-flag-listener.test.ts +110 -1
  44. package/src/__tests__/guardian-binding-drift-heal.test.ts +1 -1
  45. package/src/__tests__/guardian-card-withdrawal.test.ts +403 -0
  46. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +5 -3
  47. package/src/__tests__/guardian-grant-minting.test.ts +3 -35
  48. package/src/__tests__/guardian-routing-invariants.test.ts +64 -26
  49. package/src/__tests__/guardian-routing-state.test.ts +0 -1
  50. package/src/__tests__/headless-browser-mode.test.ts +10 -0
  51. package/src/__tests__/headless-browser-navigate.test.ts +8 -3
  52. package/src/__tests__/helpers/create-guardian-binding.ts +0 -1
  53. package/src/__tests__/host-browser-proxy.test.ts +87 -0
  54. package/src/__tests__/injector-v3-suppression.test.ts +27 -20
  55. package/src/__tests__/internal-telemetry-routes.test.ts +6 -14
  56. package/src/__tests__/invite-redemption-service.test.ts +0 -3
  57. package/src/__tests__/llm-catalog-parity.test.ts +30 -1
  58. package/src/__tests__/llm-resolver.test.ts +21 -0
  59. package/src/__tests__/llm-schema.test.ts +1 -0
  60. package/src/__tests__/managed-profile-guard.test.ts +163 -4
  61. package/src/__tests__/mcp-health-check.test.ts +6 -7
  62. package/src/__tests__/media-stream-server-integration.test.ts +317 -13
  63. package/src/__tests__/path-policy.test.ts +34 -0
  64. package/src/__tests__/persona-resolver.test.ts +38 -0
  65. package/src/__tests__/plugin-api-provider.test.ts +24 -0
  66. package/src/__tests__/plugin-tool-contribution.test.ts +6 -3
  67. package/src/__tests__/post-compaction-reinjection-idempotency.test.ts +214 -0
  68. package/src/__tests__/provider-send-message-override-profile.test.ts +76 -0
  69. package/src/__tests__/reaction-persistence.test.ts +150 -29
  70. package/src/__tests__/relay-server.test.ts +285 -0
  71. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -1
  72. package/src/__tests__/scheduler-reuse-conversation.test.ts +8 -5
  73. package/src/__tests__/secret-response-routing.test.ts +35 -0
  74. package/src/__tests__/secret-routes-platform-proxy.test.ts +16 -2
  75. package/src/__tests__/skill-execute-input.test.ts +131 -0
  76. package/src/__tests__/skills.test.ts +51 -0
  77. package/src/__tests__/slack-notification-approval-card.test.ts +176 -0
  78. package/src/__tests__/slack-reaction-canonical-approval.test.ts +285 -0
  79. package/src/__tests__/subagent-tools.test.ts +150 -0
  80. package/src/__tests__/task-progress-nudge-hook.test.ts +1 -1
  81. package/src/__tests__/title-generate-hook.test.ts +100 -3
  82. package/src/__tests__/tool-approval-seed-content-blocks.test.ts +1 -1
  83. package/src/__tests__/tool-audit-listener.test.ts +7 -7
  84. package/src/__tests__/tool-executor-lifecycle-events.test.ts +6 -3
  85. package/src/__tests__/trusted-contact-approval-notifier.test.ts +4 -2
  86. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +220 -3
  87. package/src/__tests__/trusted-contact-verification.test.ts +2 -4
  88. package/src/__tests__/twilio-routes.test.ts +81 -1
  89. package/src/__tests__/voice-invite-redemption.test.ts +0 -1
  90. package/src/__tests__/weak-open-model.test.ts +30 -0
  91. package/src/__tests__/workspace-migration-105-enable-memory-v3-live-for-new-workspaces.test.ts +149 -0
  92. package/src/__tests__/workspace-migration-108-drop-balanced-economy-profile.test.ts +285 -0
  93. package/src/__tests__/workspace-migration-add-send-diagnostics.test.ts +1 -1
  94. package/src/__tests__/workspace-migration-drop-collect-usage-data.test.ts +118 -0
  95. package/src/__tests__/workspace-migration-drop-send-diagnostics.test.ts +118 -0
  96. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +0 -4
  97. package/src/agent/loop.ts +33 -33
  98. package/src/api/events/tool-result.ts +6 -0
  99. package/src/api/events/workflow-completed.ts +53 -0
  100. package/src/api/events/workflow-leaf-finished.ts +38 -0
  101. package/src/api/events/workflow-leaf-started.ts +35 -0
  102. package/src/api/events/workflow-progress.ts +32 -0
  103. package/src/api/events/workflow-started.ts +31 -0
  104. package/src/api/index.ts +40 -0
  105. package/src/api/responses/conversation-message.ts +26 -0
  106. package/src/api/responses/home.ts +26 -0
  107. package/src/api/responses/workflow-journal.ts +53 -0
  108. package/src/approvals/guardian-card-withdrawal.ts +145 -0
  109. package/src/approvals/guardian-decision-primitive.ts +26 -3
  110. package/src/approvals/guardian-request-resolvers.ts +181 -78
  111. package/src/calls/__tests__/channel-admission-reader.test.ts +132 -0
  112. package/src/calls/__tests__/relay-setup-router.test.ts +350 -0
  113. package/src/calls/call-pointer-messages.ts +10 -4
  114. package/src/calls/channel-admission-reader.ts +104 -0
  115. package/src/calls/guardian-dispatch.ts +17 -45
  116. package/src/calls/media-stream-server.ts +84 -2
  117. package/src/calls/relay-server.ts +66 -0
  118. package/src/calls/relay-setup-router.ts +82 -1
  119. package/src/calls/twilio-routes.ts +17 -8
  120. package/src/cli/commands/clients.ts +3 -0
  121. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v2-compare-render.test.ts +1 -1
  122. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v2.test.ts +8 -7
  123. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v3.test.ts +5 -4
  124. package/src/cli/commands/memory/index.ts +30 -0
  125. package/src/cli/commands/{memory-v2-compare-render.ts → memory/memory-v2-compare-render.ts} +1 -1
  126. package/src/cli/commands/{memory-v2.ts → memory/memory-v2.ts} +6 -15
  127. package/src/cli/commands/{memory-v3.ts → memory/memory-v3.ts} +97 -11
  128. package/src/cli/commands/oauth/status.test.ts +36 -0
  129. package/src/cli/commands/oauth/status.ts +23 -3
  130. package/src/cli/commands/plugins.ts +57 -5
  131. package/src/cli/lib/__tests__/inspect-plugin.test.ts +54 -0
  132. package/src/cli/lib/__tests__/merge-plugin-tree.test.ts +134 -4
  133. package/src/cli/lib/__tests__/plugin-surfaces.test.ts +111 -0
  134. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +53 -11
  135. package/src/cli/lib/inspect-plugin.ts +12 -1
  136. package/src/cli/lib/merge-plugin-tree.ts +149 -49
  137. package/src/cli/lib/plugin-surfaces.ts +104 -0
  138. package/src/cli/lib/upgrade-plugin.ts +64 -36
  139. package/src/cli/program.ts +2 -4
  140. package/src/config/__tests__/sync-gated-profiles.test.ts +368 -0
  141. package/src/config/assistant-feature-flags.ts +22 -7
  142. package/src/config/bundled-skills/contacts/tools/contact-search.ts +0 -1
  143. package/src/config/bundled-skills/document-editor/SKILL.md +3 -3
  144. package/src/config/bundled-skills/document-editor/TOOLS.json +2 -2
  145. package/src/config/bundled-skills/messaging/SKILL.md +6 -4
  146. package/src/config/bundled-skills/messaging/tools/messaging-archive-by-sender.ts +9 -8
  147. package/src/config/bundled-skills/workflows/SKILL.md +14 -7
  148. package/src/config/call-site-defaults.ts +3 -0
  149. package/src/config/feature-flag-registry.json +49 -18
  150. package/src/config/llm-resolver.ts +3 -0
  151. package/src/config/memory-v3-gate.ts +11 -0
  152. package/src/config/schema.ts +8 -6
  153. package/src/config/schemas/__tests__/memory-v3.test.ts +1 -0
  154. package/src/config/schemas/call-site-catalog.ts +7 -0
  155. package/src/config/schemas/channels.ts +11 -0
  156. package/src/config/schemas/llm.ts +31 -0
  157. package/src/config/schemas/memory-lifecycle.ts +3 -7
  158. package/src/config/schemas/memory-v3.ts +6 -0
  159. package/src/config/schemas/services.ts +18 -0
  160. package/src/config/seed-inference-profiles.ts +94 -34
  161. package/src/config/skills.ts +21 -0
  162. package/src/config/sync-gated-profiles.ts +220 -0
  163. package/src/contacts/contact-store.ts +2 -10
  164. package/src/contacts/contacts-write.ts +1 -2
  165. package/src/contacts/types.ts +0 -1
  166. package/src/context/compactor.ts +86 -52
  167. package/src/context/strip-injections.ts +58 -10
  168. package/src/context/token-estimator.ts +1 -1
  169. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +3 -2
  170. package/src/daemon/conversation-agent-loop-handlers.ts +2 -0
  171. package/src/daemon/conversation-agent-loop.ts +100 -19
  172. package/src/daemon/conversation-history.ts +1 -1
  173. package/src/daemon/conversation-lifecycle.ts +3 -5
  174. package/src/daemon/conversation-process.ts +13 -5
  175. package/src/daemon/conversation-runtime-assembly.ts +13 -15
  176. package/src/daemon/conversation-surfaces.ts +26 -0
  177. package/src/daemon/conversation-tool-setup.ts +27 -14
  178. package/src/daemon/conversation.ts +64 -14
  179. package/src/daemon/disk-pressure-policy.ts +5 -3
  180. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +0 -1
  181. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +0 -1
  182. package/src/daemon/handlers/config-a2a.ts +0 -2
  183. package/src/daemon/handlers/config-channels.ts +5 -10
  184. package/src/daemon/handlers/config-slack-channel.ts +20 -0
  185. package/src/daemon/handlers/conversations.ts +107 -0
  186. package/src/daemon/host-browser-proxy.ts +41 -0
  187. package/src/daemon/lifecycle.ts +55 -20
  188. package/src/daemon/memory-v2-startup.test.ts +131 -0
  189. package/src/daemon/memory-v2-startup.ts +100 -1
  190. package/src/daemon/message-provenance.ts +2 -0
  191. package/src/daemon/message-types/contacts.ts +0 -1
  192. package/src/daemon/message-types/web-activity.ts +7 -1
  193. package/src/daemon/message-types/workflows.ts +83 -1
  194. package/src/daemon/tool-setup-types.ts +4 -0
  195. package/src/daemon/trust-context.ts +1 -1
  196. package/src/events/tool-audit-listener.ts +2 -2
  197. package/src/home/feed-source-enrichment.test.ts +151 -0
  198. package/src/home/feed-source-enrichment.ts +176 -0
  199. package/src/instrument.ts +18 -6
  200. package/src/ipc/__tests__/binary-result-ipc.test.ts +81 -0
  201. package/src/ipc/__tests__/clients-list-ipc.test.ts +20 -0
  202. package/src/ipc/assistant-server.ts +37 -4
  203. package/src/ipc/gateway-flag-listener.ts +18 -2
  204. package/src/memory/__tests__/auto-analysis-enqueue.test.ts +5 -16
  205. package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +7 -11
  206. package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +37 -7
  207. package/src/memory/__tests__/memory-retrospective-job.test.ts +34 -0
  208. package/src/memory/__tests__/onboarding-events-store.test.ts +7 -7
  209. package/src/memory/auth-fallback-events-store.ts +2 -2
  210. package/src/memory/auto-analysis-enqueue.ts +3 -5
  211. package/src/memory/canonical-guardian-store.ts +39 -1
  212. package/src/memory/conversation-crud.ts +9 -4
  213. package/src/memory/conversation-key-store.ts +17 -2
  214. package/src/memory/conversation-title-service.ts +64 -7
  215. package/src/memory/db-init.ts +10 -0
  216. package/src/memory/embedding-backend.ts +15 -1
  217. package/src/memory/jobs-worker.ts +2 -1
  218. package/src/memory/lifecycle-events-store.ts +2 -2
  219. package/src/memory/memory-retrospective-enqueue.ts +31 -6
  220. package/src/memory/memory-retrospective-job.ts +9 -0
  221. package/src/memory/migrations/129-contact-channels-access-fields.ts +18 -9
  222. package/src/memory/migrations/131-drop-legacy-member-guardian-tables.ts +14 -2
  223. package/src/memory/migrations/289-contact-channels-unique-ext-user.ts +10 -0
  224. package/src/memory/migrations/291-contact-channels-renormalize-addresses.ts +10 -0
  225. package/src/memory/migrations/292-schedule-default-no-reuse-conversation.test.ts +67 -0
  226. package/src/memory/migrations/292-schedule-default-no-reuse-conversation.ts +25 -0
  227. package/src/memory/migrations/293-workflow-journal-leaf-tokens.ts +32 -0
  228. package/src/memory/migrations/294-drop-external-user-id.ts +31 -0
  229. package/src/memory/migrations/295-drop-approval-prompt-ts-tracker.ts +20 -0
  230. package/src/memory/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +110 -0
  231. package/src/memory/migrations/296-rewrite-balanced-economy-profile-pins.ts +68 -0
  232. package/src/memory/migrations/__tests__/131-drop-legacy-member-guardian-tables.test.ts +154 -0
  233. package/src/memory/migrations/__tests__/289-contact-channels-unique-ext-user.test.ts +31 -0
  234. package/src/memory/migrations/__tests__/291-contact-channels-renormalize-addresses.test.ts +30 -0
  235. package/src/memory/migrations/index.ts +5 -0
  236. package/src/memory/onboarding-events-store.ts +3 -3
  237. package/src/memory/schema/contacts.ts +0 -1
  238. package/src/memory/skill-loaded-events-store.test.ts +7 -15
  239. package/src/memory/skill-loaded-events-store.ts +2 -2
  240. package/src/memory/tool-executed-events-store.test.ts +7 -7
  241. package/src/memory/turn-trace-store.test.ts +736 -0
  242. package/src/memory/turn-trace-store.ts +364 -0
  243. package/src/memory/v2/__tests__/consolidation-job.test.ts +8 -0
  244. package/src/memory/v2/__tests__/skill-content.test.ts +30 -0
  245. package/src/memory/v2/consolidation-job.ts +2 -2
  246. package/src/memory/v2/skill-content.ts +25 -7
  247. package/src/memory/v2/skill-store.ts +7 -1
  248. package/src/memory/v3-eval/__tests__/eval-packets.test.ts +248 -0
  249. package/src/memory/v3-eval/eval-packets.ts +546 -0
  250. package/src/messaging/providers/slack/api.ts +31 -0
  251. package/src/messaging/providers/slack/send.test.ts +114 -2
  252. package/src/messaging/providers/slack/send.ts +30 -7
  253. package/src/messaging/providers/slack/withdraw.test.ts +200 -0
  254. package/src/messaging/providers/slack/withdraw.ts +161 -0
  255. package/src/notifications/AGENTS.md +2 -0
  256. package/src/notifications/access-request-copy.ts +72 -59
  257. package/src/notifications/adapters/slack.ts +55 -73
  258. package/src/notifications/approval-card-data.ts +333 -0
  259. package/src/notifications/broadcaster.ts +6 -2
  260. package/src/notifications/canonical-delivery-recorder.ts +139 -0
  261. package/src/notifications/copy-composer.ts +3 -3
  262. package/src/notifications/decision-engine.ts +4 -2
  263. package/src/notifications/destination-resolver.ts +4 -6
  264. package/src/notifications/guardian-question-mode.ts +10 -0
  265. package/src/notifications/home-feed-side-effect.ts +3 -13
  266. package/src/notifications/notification-utils.ts +2 -1
  267. package/src/notifications/signal.ts +79 -43
  268. package/src/notifications/types.ts +98 -128
  269. package/src/permissions/checker.test.ts +51 -0
  270. package/src/permissions/checker.ts +185 -26
  271. package/src/permissions/ipc-risk-types.ts +24 -0
  272. package/src/permissions/question-prompter.test.ts +27 -0
  273. package/src/permissions/question-prompter.ts +4 -0
  274. package/src/permissions/secret-prompter.ts +15 -1
  275. package/src/platform/client.test.ts +119 -0
  276. package/src/platform/client.ts +66 -0
  277. package/src/platform/consent-cache.test.ts +267 -0
  278. package/src/platform/consent-cache.ts +174 -0
  279. package/src/plugin-api/index.ts +27 -0
  280. package/src/plugins/defaults/advisor/__tests__/advisor-gate.test.ts +56 -0
  281. package/src/plugins/defaults/advisor/__tests__/advisor-state-store.test.ts +43 -0
  282. package/src/plugins/defaults/advisor/__tests__/agent-loop-integration.test.ts +137 -0
  283. package/src/plugins/defaults/advisor/__tests__/consult.test.ts +153 -0
  284. package/src/plugins/defaults/advisor/__tests__/hooks.test.ts +138 -0
  285. package/src/plugins/defaults/advisor/__tests__/transcript.test.ts +147 -0
  286. package/src/plugins/defaults/advisor/advisor-gate.ts +29 -0
  287. package/src/plugins/defaults/advisor/advisor-state-store.ts +94 -0
  288. package/src/plugins/defaults/advisor/config.ts +21 -0
  289. package/src/plugins/defaults/advisor/consult.ts +93 -0
  290. package/src/plugins/defaults/advisor/hooks/post-model-call.ts +34 -0
  291. package/src/plugins/defaults/advisor/hooks/pre-model-call.ts +30 -0
  292. package/src/plugins/defaults/advisor/hooks/user-prompt-submit.ts +19 -0
  293. package/src/plugins/defaults/advisor/package.json +14 -0
  294. package/src/plugins/defaults/advisor/steering.ts +67 -0
  295. package/src/plugins/defaults/advisor/tools/advisor.ts +65 -0
  296. package/src/plugins/defaults/advisor/transcript.ts +76 -0
  297. package/src/plugins/defaults/index.ts +35 -0
  298. package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +22 -9
  299. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit.ts +2 -2
  300. package/src/plugins/defaults/memory-retrieval/tail-reinjection-strip.ts +64 -0
  301. package/src/plugins/defaults/memory-retrieval/unified-turn-context.ts +29 -21
  302. package/src/plugins/defaults/memory-v3-shadow/__tests__/carry-integration.test.ts +1 -0
  303. package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +1 -0
  304. package/src/plugins/defaults/memory-v3-shadow/__tests__/maintain-job.test.ts +75 -7
  305. package/src/plugins/defaults/memory-v3-shadow/__tests__/orchestrate.test.ts +31 -4
  306. package/src/plugins/defaults/memory-v3-shadow/__tests__/selection-log-store.test.ts +77 -2
  307. package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +1 -0
  308. package/src/plugins/defaults/memory-v3-shadow/injector.ts +7 -10
  309. package/src/plugins/defaults/memory-v3-shadow/maintain-job.ts +37 -4
  310. package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +32 -20
  311. package/src/plugins/defaults/memory-v3-shadow/selection-log-store.ts +56 -3
  312. package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +23 -2
  313. package/src/plugins/defaults/task-progress-nudge/hooks/post-tool-use.ts +2 -12
  314. package/src/plugins/defaults/title-generate/hooks/stop.ts +56 -21
  315. package/src/prompts/persona-resolver.ts +12 -2
  316. package/src/prompts/templates/system-sections.ts +7 -2
  317. package/src/providers/__tests__/provider-env-vars.test.ts +6 -0
  318. package/src/providers/__tests__/provider-secret-catalog.test.ts +1 -0
  319. package/src/providers/__tests__/retry-callsite.test.ts +176 -0
  320. package/src/providers/atlascloud/client.ts +85 -0
  321. package/src/providers/fetch-provider-catalog.ts +85 -0
  322. package/src/providers/inference/adapter-factory.ts +3 -0
  323. package/src/providers/model-catalog.ts +58 -0
  324. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +33 -0
  325. package/src/providers/openai/chat-completions-provider.ts +7 -0
  326. package/src/providers/openai/responses-provider.ts +10 -0
  327. package/src/providers/provider-send-message.ts +11 -3
  328. package/src/providers/retry.ts +53 -12
  329. package/src/providers/search-provider-catalog.ts +10 -0
  330. package/src/providers/weak-open-model.ts +22 -0
  331. package/src/runtime/__tests__/agent-wake.test.ts +181 -0
  332. package/src/runtime/__tests__/client-health.test.ts +44 -0
  333. package/src/runtime/access-request-helper.ts +21 -53
  334. package/src/runtime/actor-trust-resolver.ts +49 -21
  335. package/src/runtime/agent-wake.ts +52 -0
  336. package/src/runtime/assistant-event-hub.ts +18 -4
  337. package/src/runtime/auth/__tests__/route-policy.test.ts +12 -0
  338. package/src/runtime/auth/require-bound-guardian.ts +1 -4
  339. package/src/runtime/capabilities.test.ts +120 -0
  340. package/src/runtime/capabilities.ts +197 -0
  341. package/src/runtime/channel-approval-types.ts +5 -1
  342. package/src/runtime/channel-retry-sweep.ts +1 -0
  343. package/src/runtime/channel-verification-service.ts +1 -2
  344. package/src/runtime/client-health.ts +26 -0
  345. package/src/runtime/confirmation-request-guardian-bridge.ts +38 -29
  346. package/src/runtime/effective-capabilities.test.ts +128 -0
  347. package/src/runtime/effective-capabilities.ts +84 -0
  348. package/src/runtime/guardian-reply-router.ts +106 -21
  349. package/src/runtime/invite-redemption-service.ts +6 -22
  350. package/src/runtime/migrations/__tests__/vbundle-builder-fd-leak.test.ts +123 -0
  351. package/src/runtime/migrations/vbundle-builder.ts +49 -20
  352. package/src/runtime/pending-interactions.ts +35 -0
  353. package/src/runtime/routes/__tests__/client-routes.test.ts +13 -0
  354. package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +67 -0
  355. package/src/runtime/routes/__tests__/plugins-routes.test.ts +35 -13
  356. package/src/runtime/routes/approval-routes.ts +40 -9
  357. package/src/runtime/routes/browser-tabs-routes.ts +9 -0
  358. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +17 -8
  359. package/src/runtime/routes/client-routes.ts +10 -0
  360. package/src/runtime/routes/contact-routes.ts +31 -8
  361. package/src/runtime/routes/conversation-management-routes.ts +80 -1
  362. package/src/runtime/routes/conversation-query-routes.ts +68 -22
  363. package/src/runtime/routes/conversation-routes.ts +37 -12
  364. package/src/runtime/routes/events-routes.ts +1 -3
  365. package/src/runtime/routes/guardian-approval-interception.ts +14 -73
  366. package/src/runtime/routes/guardian-approval-prompt.ts +22 -4
  367. package/src/runtime/routes/home-feed-routes.ts +8 -3
  368. package/src/runtime/routes/inbound-message-handler.ts +214 -228
  369. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +88 -6
  370. package/src/runtime/routes/inbound-stages/admission-policy.test.ts +154 -0
  371. package/src/runtime/routes/inbound-stages/admission-policy.ts +140 -0
  372. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +3 -3
  373. package/src/runtime/routes/inbound-stages/background-dispatch.ts +11 -6
  374. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +1 -2
  375. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +1 -2
  376. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +7 -7
  377. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +47 -28
  378. package/src/runtime/routes/inbound-stages/reaction-intercept.ts +358 -0
  379. package/src/runtime/routes/index.ts +2 -0
  380. package/src/runtime/routes/integrations/slack/__tests__/channel.test.ts +8 -0
  381. package/src/runtime/routes/integrations/slack/channel.ts +36 -0
  382. package/src/runtime/routes/internal-telemetry-routes.ts +1 -1
  383. package/src/runtime/routes/mcp-auth-routes.ts +233 -41
  384. package/src/runtime/routes/memory-eval-routes.ts +87 -0
  385. package/src/runtime/routes/notification-routes.ts +122 -133
  386. package/src/runtime/routes/platform-routes.ts +2 -2
  387. package/src/runtime/routes/plugins-routes.ts +40 -7
  388. package/src/runtime/routes/secret-routes.ts +15 -0
  389. package/src/runtime/routes/surface-action-routes.ts +2 -1
  390. package/src/runtime/routes/tool-call-question-enrichment.test.ts +146 -0
  391. package/src/runtime/routes/tool-call-question-enrichment.ts +66 -0
  392. package/src/runtime/routes/workflow-routes.test.ts +225 -1
  393. package/src/runtime/routes/workflow-routes.ts +131 -1
  394. package/src/runtime/tool-grant-request-helper.ts +18 -16
  395. package/src/runtime/trust-context-resolver.ts +8 -5
  396. package/src/schedule/schedule-store.ts +1 -1
  397. package/src/schedule/scheduler-types.ts +5 -1
  398. package/src/security/__tests__/provider-key-env-fallback.test.ts +6 -0
  399. package/src/security/secret-patterns.ts +3 -0
  400. package/src/subagent/manager.ts +11 -4
  401. package/src/telemetry/trace-collection-policy.test.ts +28 -0
  402. package/src/telemetry/trace-collection-policy.ts +30 -0
  403. package/src/telemetry/types.ts +89 -0
  404. package/src/telemetry/usage-telemetry-reporter.test.ts +586 -36
  405. package/src/telemetry/usage-telemetry-reporter.ts +148 -41
  406. package/src/tools/browser/__tests__/browser-execution-acquire.test.ts +31 -0
  407. package/src/tools/browser/browser-execution.ts +29 -18
  408. package/src/tools/document/document-tool.ts +30 -6
  409. package/src/tools/executor.ts +5 -3
  410. package/src/tools/host-terminal/host-shell.ts +5 -4
  411. package/src/tools/memory/register.ts +2 -2
  412. package/src/tools/network/__tests__/web-fetch-firecrawl.test.ts +360 -0
  413. package/src/tools/network/__tests__/web-search.test.ts +143 -0
  414. package/src/tools/network/web-fetch.ts +372 -1
  415. package/src/tools/network/web-search.ts +213 -10
  416. package/src/tools/permission-checker.ts +3 -2
  417. package/src/tools/registry.ts +20 -0
  418. package/src/tools/schedule/create.ts +4 -3
  419. package/src/tools/schedule/update.ts +2 -1
  420. package/src/tools/shared/filesystem/path-policy.ts +39 -13
  421. package/src/tools/skills/execute.ts +67 -4
  422. package/src/tools/subagent/spawn.ts +37 -13
  423. package/src/tools/terminal/shell.ts +10 -4
  424. package/src/tools/tool-approval-handler.ts +17 -10
  425. package/src/tools/types.ts +9 -0
  426. package/src/tools/ui-surface/definitions.ts +25 -2
  427. package/src/tools/verification-control-plane-policy.ts +3 -1
  428. package/src/tools/workflows/run-workflow.ts +1 -0
  429. package/src/util/disk-usage.ts +78 -23
  430. package/src/util/platform.ts +8 -1
  431. package/src/watcher/telemetry.ts +2 -2
  432. package/src/workflows/engine.test.ts +175 -1
  433. package/src/workflows/engine.ts +82 -0
  434. package/src/workflows/journal-store.test.ts +70 -0
  435. package/src/workflows/journal-store.ts +18 -3
  436. package/src/workflows/run-manager.test.ts +171 -3
  437. package/src/workflows/run-manager.ts +64 -0
  438. package/src/workspace/migrations/105-enable-memory-v3-live-for-new-workspaces.ts +63 -0
  439. package/src/workspace/migrations/106-drop-collect-usage-data.ts +47 -0
  440. package/src/workspace/migrations/107-drop-send-diagnostics.ts +47 -0
  441. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +129 -0
  442. package/src/workspace/migrations/registry.ts +8 -0
  443. package/src/notifications/tool-approval-copy.ts +0 -142
  444. package/src/runtime/routes/approval-prompt-ts-tracker.ts +0 -78
package/openapi.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  openapi: 3.1.0
4
4
  info:
5
5
  title: Vellum Assistant API
6
- version: 0.9.0
6
+ version: 0.10.0
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
@@ -3951,6 +3951,14 @@ paths:
3951
3951
  type: boolean
3952
3952
  account:
3953
3953
  type: string
3954
+ admissionPolicy:
3955
+ type: string
3956
+ enum:
3957
+ - no_one
3958
+ - guardian_only
3959
+ - trusted_contacts
3960
+ - any_contact
3961
+ - strangers
3954
3962
  emailSubject:
3955
3963
  type: string
3956
3964
  emailRecipient:
@@ -6144,6 +6152,12 @@ paths:
6144
6152
  description: Only standard conversations are created by this endpoint
6145
6153
  type: string
6146
6154
  const: standard
6155
+ title:
6156
+ description:
6157
+ Explicit title for the conversation. When provided on creation, it is persisted as a user-set title (never
6158
+ overwritten by the auto-titler). Used by flows that mint a conversation up-front and don't want an
6159
+ auto-generated title.
6160
+ type: string
6147
6161
  responses:
6148
6162
  "200":
6149
6163
  description: Successful response
@@ -7041,6 +7055,71 @@ paths:
7041
7055
  responses:
7042
7056
  "202":
7043
7057
  description: Successful response
7058
+ /v1/conversations/{id}/slash:
7059
+ post:
7060
+ operationId: conversations_by_id_slash_post
7061
+ summary: Resolve a local meta slash command
7062
+ description:
7063
+ "Run a local meta slash command (/clean, /status, /commands, /models) without starting a turn: no messages
7064
+ are persisted and no turn events are emitted. /clean also strips runtime injections from the history. Returns
7065
+ the text to render and, for /clean, the post-strip context usage."
7066
+ tags:
7067
+ - conversations
7068
+ parameters:
7069
+ - name: id
7070
+ in: path
7071
+ required: true
7072
+ schema:
7073
+ type: string
7074
+ requestBody:
7075
+ required: true
7076
+ content:
7077
+ application/json:
7078
+ schema:
7079
+ type: object
7080
+ properties:
7081
+ command:
7082
+ type: string
7083
+ description: The slash command text, e.g. `/clean` or `/status`.
7084
+ required:
7085
+ - command
7086
+ responses:
7087
+ "200":
7088
+ description: Successful response
7089
+ content:
7090
+ application/json:
7091
+ schema:
7092
+ type: object
7093
+ properties:
7094
+ kind:
7095
+ type: string
7096
+ enum:
7097
+ - clean
7098
+ - info
7099
+ text:
7100
+ type: string
7101
+ contextUsage:
7102
+ type: object
7103
+ properties:
7104
+ tokens:
7105
+ type: number
7106
+ maxTokens:
7107
+ anyOf:
7108
+ - type: number
7109
+ - type: "null"
7110
+ fillRatio:
7111
+ anyOf:
7112
+ - type: number
7113
+ - type: "null"
7114
+ required:
7115
+ - tokens
7116
+ - maxTokens
7117
+ - fillRatio
7118
+ additionalProperties: false
7119
+ required:
7120
+ - kind
7121
+ - text
7122
+ additionalProperties: false
7044
7123
  /v1/conversations/{id}/surface:
7045
7124
  post:
7046
7125
  operationId: conversations_by_id_surface_post
@@ -12043,6 +12122,19 @@ paths:
12043
12122
  propertyNames:
12044
12123
  type: string
12045
12124
  additionalProperties: {}
12125
+ sourceType:
12126
+ type: string
12127
+ enum:
12128
+ - heartbeat
12129
+ - memory_consolidation
12130
+ - schedule
12131
+ - auto_analysis
12132
+ - user
12133
+ - other
12134
+ sourceKey:
12135
+ type: string
12136
+ sourceLabel:
12137
+ type: string
12046
12138
  createdAt:
12047
12139
  type: string
12048
12140
  required:
@@ -12223,6 +12315,19 @@ paths:
12223
12315
  propertyNames:
12224
12316
  type: string
12225
12317
  additionalProperties: {}
12318
+ sourceType:
12319
+ type: string
12320
+ enum:
12321
+ - heartbeat
12322
+ - memory_consolidation
12323
+ - schedule
12324
+ - auto_analysis
12325
+ - user
12326
+ - other
12327
+ sourceKey:
12328
+ type: string
12329
+ sourceLabel:
12330
+ type: string
12226
12331
  createdAt:
12227
12332
  type: string
12228
12333
  required:
@@ -12435,6 +12540,19 @@ paths:
12435
12540
  propertyNames:
12436
12541
  type: string
12437
12542
  additionalProperties: {}
12543
+ sourceType:
12544
+ type: string
12545
+ enum:
12546
+ - heartbeat
12547
+ - memory_consolidation
12548
+ - schedule
12549
+ - auto_analysis
12550
+ - user
12551
+ - other
12552
+ sourceKey:
12553
+ type: string
12554
+ sourceLabel:
12555
+ type: string
12438
12556
  createdAt:
12439
12557
  type: string
12440
12558
  required:
@@ -13176,7 +13294,7 @@ paths:
13176
13294
  type: string
13177
13295
  description:
13178
13296
  "Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, openrouter, openai-compatible,
13179
- minimax"
13297
+ minimax, atlascloud"
13180
13298
  responses:
13181
13299
  "200":
13182
13300
  description: Successful response
@@ -13727,6 +13845,11 @@ paths:
13727
13845
  type: string
13728
13846
  botUsername:
13729
13847
  type: string
13848
+ threadMode:
13849
+ type: string
13850
+ enum:
13851
+ - mention_only
13852
+ - mention_then_thread
13730
13853
  error:
13731
13854
  type: string
13732
13855
  warning:
@@ -13737,6 +13860,7 @@ paths:
13737
13860
  - hasAppToken
13738
13861
  - hasUserToken
13739
13862
  - connected
13863
+ - threadMode
13740
13864
  additionalProperties: false
13741
13865
  get:
13742
13866
  operationId: integrations_slack_channel_config_get
@@ -13772,6 +13896,11 @@ paths:
13772
13896
  type: string
13773
13897
  botUsername:
13774
13898
  type: string
13899
+ threadMode:
13900
+ type: string
13901
+ enum:
13902
+ - mention_only
13903
+ - mention_then_thread
13775
13904
  error:
13776
13905
  type: string
13777
13906
  warning:
@@ -13782,6 +13911,71 @@ paths:
13782
13911
  - hasAppToken
13783
13912
  - hasUserToken
13784
13913
  - connected
13914
+ - threadMode
13915
+ additionalProperties: false
13916
+ patch:
13917
+ operationId: integrations_slack_channel_config_patch
13918
+ summary: Update Slack channel settings
13919
+ description: Update Slack channel behavior settings (e.g. thread mode).
13920
+ tags:
13921
+ - integrations
13922
+ requestBody:
13923
+ required: true
13924
+ content:
13925
+ application/json:
13926
+ schema:
13927
+ type: object
13928
+ properties:
13929
+ threadMode:
13930
+ type: string
13931
+ enum:
13932
+ - mention_only
13933
+ - mention_then_thread
13934
+ description: Controls whether the bot follows threads after an initial @mention
13935
+ responses:
13936
+ "200":
13937
+ description: Successful response
13938
+ content:
13939
+ application/json:
13940
+ schema:
13941
+ type: object
13942
+ properties:
13943
+ success:
13944
+ type: boolean
13945
+ hasBotToken:
13946
+ type: boolean
13947
+ hasAppToken:
13948
+ type: boolean
13949
+ hasUserToken:
13950
+ type: boolean
13951
+ connected:
13952
+ type: boolean
13953
+ teamId:
13954
+ type: string
13955
+ teamName:
13956
+ type: string
13957
+ teamUrl:
13958
+ type: string
13959
+ botUserId:
13960
+ type: string
13961
+ botUsername:
13962
+ type: string
13963
+ threadMode:
13964
+ type: string
13965
+ enum:
13966
+ - mention_only
13967
+ - mention_then_thread
13968
+ error:
13969
+ type: string
13970
+ warning:
13971
+ type: string
13972
+ required:
13973
+ - success
13974
+ - hasBotToken
13975
+ - hasAppToken
13976
+ - hasUserToken
13977
+ - connected
13978
+ - threadMode
13785
13979
  additionalProperties: false
13786
13980
  post:
13787
13981
  operationId: integrations_slack_channel_config_post
@@ -13833,6 +14027,11 @@ paths:
13833
14027
  type: string
13834
14028
  botUsername:
13835
14029
  type: string
14030
+ threadMode:
14031
+ type: string
14032
+ enum:
14033
+ - mention_only
14034
+ - mention_then_thread
13836
14035
  error:
13837
14036
  type: string
13838
14037
  warning:
@@ -13843,6 +14042,7 @@ paths:
13843
14042
  - hasAppToken
13844
14043
  - hasUserToken
13845
14044
  - connected
14045
+ - threadMode
13846
14046
  additionalProperties: false
13847
14047
  /v1/integrations/telegram/commands:
13848
14048
  post:
@@ -14457,6 +14657,54 @@ paths:
14457
14657
  responses:
14458
14658
  "200":
14459
14659
  description: Successful response
14660
+ content:
14661
+ application/json:
14662
+ schema:
14663
+ type: object
14664
+ properties:
14665
+ servers:
14666
+ type: array
14667
+ items:
14668
+ type: object
14669
+ properties:
14670
+ id:
14671
+ type: string
14672
+ status:
14673
+ type: string
14674
+ transport:
14675
+ type: object
14676
+ properties:
14677
+ type:
14678
+ type: string
14679
+ enum:
14680
+ - stdio
14681
+ - sse
14682
+ - streamable-http
14683
+ required:
14684
+ - type
14685
+ additionalProperties: {}
14686
+ enabled:
14687
+ type: boolean
14688
+ defaultRiskLevel:
14689
+ type: string
14690
+ allowedTools:
14691
+ type: array
14692
+ items:
14693
+ type: string
14694
+ blockedTools:
14695
+ type: array
14696
+ items:
14697
+ type: string
14698
+ required:
14699
+ - id
14700
+ - status
14701
+ - transport
14702
+ - enabled
14703
+ - defaultRiskLevel
14704
+ additionalProperties: false
14705
+ required:
14706
+ - servers
14707
+ additionalProperties: false
14460
14708
  /v1/internal/mcp/reload:
14461
14709
  post:
14462
14710
  operationId: internal_mcp_reload_post
@@ -14488,6 +14736,104 @@ paths:
14488
14736
  responses:
14489
14737
  "200":
14490
14738
  description: Successful response
14739
+ /v1/internal/mcp/tools-summary:
14740
+ get:
14741
+ operationId: internal_mcp_toolssummary_get
14742
+ summary: Per-server MCP tool counts and token estimates
14743
+ description:
14744
+ Returns registered tool counts, individual tool details, and estimated token overhead for each connected
14745
+ MCP server.
14746
+ tags:
14747
+ - internal
14748
+ responses:
14749
+ "200":
14750
+ description: Successful response
14751
+ content:
14752
+ application/json:
14753
+ schema:
14754
+ type: object
14755
+ properties:
14756
+ servers:
14757
+ type: array
14758
+ items:
14759
+ type: object
14760
+ properties:
14761
+ serverId:
14762
+ type: string
14763
+ toolCount:
14764
+ type: number
14765
+ estimatedTokens:
14766
+ type: number
14767
+ tools:
14768
+ type: array
14769
+ items:
14770
+ type: object
14771
+ properties:
14772
+ name:
14773
+ type: string
14774
+ description:
14775
+ type: string
14776
+ estimatedTokens:
14777
+ type: number
14778
+ required:
14779
+ - name
14780
+ - description
14781
+ - estimatedTokens
14782
+ additionalProperties: false
14783
+ required:
14784
+ - serverId
14785
+ - toolCount
14786
+ - estimatedTokens
14787
+ - tools
14788
+ additionalProperties: false
14789
+ totalToolCount:
14790
+ type: number
14791
+ totalEstimatedTokens:
14792
+ type: number
14793
+ required:
14794
+ - servers
14795
+ - totalToolCount
14796
+ - totalEstimatedTokens
14797
+ additionalProperties: false
14798
+ /v1/internal/mcp/update:
14799
+ post:
14800
+ operationId: internal_mcp_update_post
14801
+ summary: Update an MCP server configuration
14802
+ description: Updates fields on an existing MCP server config entry and triggers a reload.
14803
+ tags:
14804
+ - internal
14805
+ requestBody:
14806
+ required: true
14807
+ content:
14808
+ application/json:
14809
+ schema:
14810
+ type: object
14811
+ properties:
14812
+ name:
14813
+ type: string
14814
+ enabled:
14815
+ type: boolean
14816
+ defaultRiskLevel:
14817
+ type: string
14818
+ maxTools:
14819
+ type: number
14820
+ allowedTools:
14821
+ anyOf:
14822
+ - type: array
14823
+ items:
14824
+ type: string
14825
+ - type: "null"
14826
+ blockedTools:
14827
+ anyOf:
14828
+ - type: array
14829
+ items:
14830
+ type: string
14831
+ - type: "null"
14832
+ required:
14833
+ - name
14834
+ responses:
14835
+ "200":
14836
+ description: Successful response
14491
14837
  /v1/internal/oauth/callback:
14492
14838
  post:
14493
14839
  operationId: internal_oauth_callback_post
@@ -15137,6 +15483,81 @@ paths:
15137
15483
  additionalProperties: false
15138
15484
  "409":
15139
15485
  description: Another memory item with this content already exists
15486
+ /v1/memory/eval/run:
15487
+ post:
15488
+ operationId: memory_eval_run_post
15489
+ summary: Build blinded A/B retrieval-eval packets over two concept corpora (snapshot vs staged wiki)
15490
+ tags:
15491
+ - memory
15492
+ requestBody:
15493
+ required: true
15494
+ content:
15495
+ application/json:
15496
+ schema:
15497
+ type: object
15498
+ properties:
15499
+ stagingDir:
15500
+ type: string
15501
+ minLength: 1
15502
+ snapshotDir:
15503
+ type: string
15504
+ minLength: 1
15505
+ outDir:
15506
+ type: string
15507
+ minLength: 1
15508
+ turns:
15509
+ type: integer
15510
+ exclusiveMinimum: 0
15511
+ maximum: 9007199254740991
15512
+ perConversationCap:
15513
+ type: integer
15514
+ exclusiveMinimum: 0
15515
+ maximum: 9007199254740991
15516
+ k:
15517
+ type: integer
15518
+ exclusiveMinimum: 0
15519
+ maximum: 9007199254740991
15520
+ dense:
15521
+ type: boolean
15522
+ seed:
15523
+ type: integer
15524
+ minimum: -9007199254740991
15525
+ maximum: 9007199254740991
15526
+ required:
15527
+ - stagingDir
15528
+ - snapshotDir
15529
+ - outDir
15530
+ responses:
15531
+ "200":
15532
+ description: Successful response
15533
+ content:
15534
+ application/json:
15535
+ schema:
15536
+ type: object
15537
+ properties:
15538
+ turnsMined:
15539
+ type: number
15540
+ packetsWritten:
15541
+ type: number
15542
+ packetsPath:
15543
+ type: string
15544
+ keyPath:
15545
+ type: string
15546
+ snapshotPages:
15547
+ type: number
15548
+ stagingPages:
15549
+ type: number
15550
+ dense:
15551
+ type: boolean
15552
+ required:
15553
+ - turnsMined
15554
+ - packetsWritten
15555
+ - packetsPath
15556
+ - keyPath
15557
+ - snapshotPages
15558
+ - stagingPages
15559
+ - dense
15560
+ additionalProperties: false
15140
15561
  /v1/memory/v2/backfill:
15141
15562
  post:
15142
15563
  operationId: memory_v2_backfill_post
@@ -15818,6 +16239,7 @@ paths:
15818
16239
  - brave
15819
16240
  - perplexity
15820
16241
  - tavily
16242
+ - firecrawl
15821
16243
  resultCount:
15822
16244
  type: number
15823
16245
  durationMs:
@@ -15865,6 +16287,11 @@ paths:
15865
16287
  type: string
15866
16288
  finalUrl:
15867
16289
  type: string
16290
+ provider:
16291
+ type: string
16292
+ enum:
16293
+ - default
16294
+ - firecrawl
15868
16295
  status:
15869
16296
  type: number
15870
16297
  contentType:
@@ -15981,6 +16408,48 @@ paths:
15981
16408
  required:
15982
16409
  - requestId
15983
16410
  additionalProperties: false
16411
+ pendingQuestion:
16412
+ type: object
16413
+ properties:
16414
+ requestId:
16415
+ type: string
16416
+ entries:
16417
+ type: array
16418
+ items:
16419
+ type: object
16420
+ properties:
16421
+ id:
16422
+ type: string
16423
+ question:
16424
+ type: string
16425
+ description:
16426
+ type: string
16427
+ options:
16428
+ type: array
16429
+ items:
16430
+ type: object
16431
+ properties:
16432
+ id:
16433
+ type: string
16434
+ label:
16435
+ type: string
16436
+ description:
16437
+ type: string
16438
+ required:
16439
+ - id
16440
+ - label
16441
+ additionalProperties: false
16442
+ freeTextPlaceholder:
16443
+ type: string
16444
+ required:
16445
+ - id
16446
+ - question
16447
+ - options
16448
+ additionalProperties: false
16449
+ required:
16450
+ - requestId
16451
+ - entries
16452
+ additionalProperties: false
15984
16453
  required:
15985
16454
  - name
15986
16455
  - input
@@ -16200,6 +16669,7 @@ paths:
16200
16669
  - brave
16201
16670
  - perplexity
16202
16671
  - tavily
16672
+ - firecrawl
16203
16673
  resultCount:
16204
16674
  type: number
16205
16675
  durationMs:
@@ -16247,6 +16717,11 @@ paths:
16247
16717
  type: string
16248
16718
  finalUrl:
16249
16719
  type: string
16720
+ provider:
16721
+ type: string
16722
+ enum:
16723
+ - default
16724
+ - firecrawl
16250
16725
  status:
16251
16726
  type: number
16252
16727
  contentType:
@@ -16363,6 +16838,48 @@ paths:
16363
16838
  required:
16364
16839
  - requestId
16365
16840
  additionalProperties: false
16841
+ pendingQuestion:
16842
+ type: object
16843
+ properties:
16844
+ requestId:
16845
+ type: string
16846
+ entries:
16847
+ type: array
16848
+ items:
16849
+ type: object
16850
+ properties:
16851
+ id:
16852
+ type: string
16853
+ question:
16854
+ type: string
16855
+ description:
16856
+ type: string
16857
+ options:
16858
+ type: array
16859
+ items:
16860
+ type: object
16861
+ properties:
16862
+ id:
16863
+ type: string
16864
+ label:
16865
+ type: string
16866
+ description:
16867
+ type: string
16868
+ required:
16869
+ - id
16870
+ - label
16871
+ additionalProperties: false
16872
+ freeTextPlaceholder:
16873
+ type: string
16874
+ required:
16875
+ - id
16876
+ - question
16877
+ - options
16878
+ additionalProperties: false
16879
+ required:
16880
+ - requestId
16881
+ - entries
16882
+ additionalProperties: false
16366
16883
  required:
16367
16884
  - name
16368
16885
  - input
@@ -16667,6 +17184,12 @@ paths:
16667
17184
  type: array
16668
17185
  items:
16669
17186
  type: string
17187
+ title:
17188
+ description:
17189
+ Explicit title for the conversation minted on this first message. Persisted as a user-set title (never
17190
+ overwritten by the auto-titler). Used by onboarding flows that mint a conversation behind the
17191
+ scenes.
17192
+ type: string
16670
17193
  required:
16671
17194
  - tools
16672
17195
  - tasks
@@ -17627,6 +18150,7 @@ paths:
17627
18150
  properties:
17628
18151
  deliveryId:
17629
18152
  type: string
18153
+ minLength: 1
17630
18154
  description: Notification delivery ID
17631
18155
  success:
17632
18156
  type: boolean
@@ -17704,9 +18228,113 @@ paths:
17704
18228
  type: boolean
17705
18229
  feedItem:
17706
18230
  type: object
17707
- propertyNames:
17708
- type: string
17709
- additionalProperties: {}
18231
+ properties:
18232
+ id:
18233
+ type: string
18234
+ type:
18235
+ type: string
18236
+ const: notification
18237
+ priority:
18238
+ type: integer
18239
+ minimum: 0
18240
+ maximum: 100
18241
+ title:
18242
+ type: string
18243
+ summary:
18244
+ type: string
18245
+ timestamp:
18246
+ type: string
18247
+ status:
18248
+ default: new
18249
+ type: string
18250
+ enum:
18251
+ - new
18252
+ - seen
18253
+ - acted_on
18254
+ - dismissed
18255
+ expiresAt:
18256
+ type: string
18257
+ actions:
18258
+ type: array
18259
+ items:
18260
+ type: object
18261
+ properties:
18262
+ id:
18263
+ type: string
18264
+ label:
18265
+ type: string
18266
+ prompt:
18267
+ type: string
18268
+ required:
18269
+ - id
18270
+ - label
18271
+ - prompt
18272
+ additionalProperties: false
18273
+ urgency:
18274
+ type: string
18275
+ enum:
18276
+ - low
18277
+ - medium
18278
+ - high
18279
+ - critical
18280
+ conversationId:
18281
+ type: string
18282
+ detailPanel:
18283
+ type: object
18284
+ properties:
18285
+ kind:
18286
+ type: string
18287
+ enum:
18288
+ - emailDraft
18289
+ - documentPreview
18290
+ - permissionChat
18291
+ - paymentAuth
18292
+ - toolPermission
18293
+ - updatesList
18294
+ required:
18295
+ - kind
18296
+ additionalProperties: false
18297
+ category:
18298
+ type: string
18299
+ enum:
18300
+ - security
18301
+ - scheduling
18302
+ - background
18303
+ - email
18304
+ - system
18305
+ noteworthy:
18306
+ type: boolean
18307
+ fromAssistant:
18308
+ type: boolean
18309
+ metadata:
18310
+ type: object
18311
+ propertyNames:
18312
+ type: string
18313
+ additionalProperties: {}
18314
+ sourceType:
18315
+ type: string
18316
+ enum:
18317
+ - heartbeat
18318
+ - memory_consolidation
18319
+ - schedule
18320
+ - auto_analysis
18321
+ - user
18322
+ - other
18323
+ sourceKey:
18324
+ type: string
18325
+ sourceLabel:
18326
+ type: string
18327
+ createdAt:
18328
+ type: string
18329
+ required:
18330
+ - id
18331
+ - type
18332
+ - priority
18333
+ - summary
18334
+ - timestamp
18335
+ - status
18336
+ - createdAt
18337
+ additionalProperties: false
17710
18338
  channels:
17711
18339
  type: array
17712
18340
  items:
@@ -17761,7 +18389,11 @@ paths:
17761
18389
  - vellum
17762
18390
  - phone
17763
18391
  - telegram
18392
+ - whatsapp
17764
18393
  - slack
18394
+ - email
18395
+ - platform
18396
+ - a2a
17765
18397
  - scheduler
17766
18398
  - watcher
17767
18399
  sourceContextId:
@@ -18683,9 +19315,37 @@ paths:
18683
19315
  additionalProperties: {}
18684
19316
  description: Pending confirmation details or null
18685
19317
  pendingSecret:
18686
- type: object
18687
- properties: {}
18688
- additionalProperties: {}
19318
+ anyOf:
19319
+ - type: object
19320
+ properties:
19321
+ requestId:
19322
+ type: string
19323
+ service:
19324
+ type: string
19325
+ field:
19326
+ type: string
19327
+ label:
19328
+ type: string
19329
+ description:
19330
+ type: string
19331
+ placeholder:
19332
+ type: string
19333
+ purpose:
19334
+ type: string
19335
+ allowedTools:
19336
+ type: array
19337
+ items:
19338
+ type: string
19339
+ allowedDomains:
19340
+ type: array
19341
+ items:
19342
+ type: string
19343
+ allowOneTimeSend:
19344
+ type: boolean
19345
+ required:
19346
+ - requestId
19347
+ additionalProperties: {}
19348
+ - type: "null"
18689
19349
  description: Pending secret request or null
18690
19350
  interactions:
18691
19351
  type: array
@@ -19508,6 +20168,35 @@ paths:
19508
20168
  - type: string
19509
20169
  - type: "null"
19510
20170
  description: Marketplace fetch error message, when the catalog could not be read.
20171
+ surfaces:
20172
+ anyOf:
20173
+ - type: object
20174
+ properties:
20175
+ skills:
20176
+ type: array
20177
+ items:
20178
+ type: string
20179
+ description: Skill ids shipped at `skills/<id>/SKILL.md`.
20180
+ hooks:
20181
+ type: array
20182
+ items:
20183
+ type: string
20184
+ description: Lifecycle hook names from `hooks/<name>.{ts,js}` (e.g. `pre-model-call`).
20185
+ tools:
20186
+ type: array
20187
+ items:
20188
+ type: string
20189
+ description:
20190
+ Registered tool names from `tools/<name>.{ts,js}` (filenames derived to tool names, e.g. `create-issue` →
20191
+ `create_issue`).
20192
+ required:
20193
+ - skills
20194
+ - hooks
20195
+ - tools
20196
+ additionalProperties: false
20197
+ description: Surfaces the installed copy contributes, read from its on-disk tree.
20198
+ - type: "null"
20199
+ description: Surfaces the installed copy contributes (skills, hooks, tools); null when the plugin is not installed.
19511
20200
  required:
19512
20201
  - name
19513
20202
  - installed
@@ -19515,6 +20204,7 @@ paths:
19515
20204
  - local
19516
20205
  - remote
19517
20206
  - remoteError
20207
+ - surfaces
19518
20208
  additionalProperties: false
19519
20209
  "400":
19520
20210
  description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
@@ -19531,11 +20221,12 @@ paths:
19531
20221
  commit already equals the pin; pass `dryRun` to preview the move (`outcome: "would-upgrade"`) without touching
19532
20222
  the install. Installs lacking provenance are re-pinned to the current SHA. The assistant must be restarted to
19533
20223
  load the upgraded code. `strategy` controls how local edits are reconciled: `overwrite` (default) discards them
19534
- and re-installs the pin wholesale; `ours`/`theirs` perform a three-way merge against the re-materialized install
19535
- commit, carrying non-conflicting edits from both sides forward and resolving conflicting hunks toward the local
19536
- edit or the pin respectively; `assistant` is not yet supported (400). A merge strategy whose install-time
19537
- baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins upgrade <name> [--strategy
19538
- <s>]`.'
20224
+ and re-installs the pin wholesale; `ours`/`theirs`/`assistant` perform a three-way merge against the
20225
+ re-materialized install commit, carrying non-conflicting edits from both sides forward and resolving conflicting
20226
+ hunks toward the local edit (`ours`) or the pin (`theirs`), or writing git conflict markers into the file and
20227
+ reporting them in `conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge strategy
20228
+ whose install-time baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins upgrade
20229
+ <name> [--strategy <s>]`.'
19539
20230
  tags:
19540
20231
  - plugins
19541
20232
  parameters:
@@ -19624,6 +20315,20 @@ paths:
19624
20315
  - overwrite
19625
20316
  - assistant
19626
20317
  description: Conflict-resolution strategy the upgrade applied.
20318
+ conflicts:
20319
+ type: array
20320
+ items:
20321
+ type: string
20322
+ description:
20323
+ "Paths left for the assistant to resolve under the `assistant` strategy: text files carry git conflict
20324
+ markers, modify/delete divergences keep the surviving content. Empty for other strategies."
20325
+ binaryConflicts:
20326
+ type: array
20327
+ items:
20328
+ type: string
20329
+ description:
20330
+ Binary files that conflicted under the `assistant` strategy; the local copy was kept since markers cannot
20331
+ be written into binary content. Empty for other strategies.
19627
20332
  provenanceWasUnknown:
19628
20333
  type: boolean
19629
20334
  description:
@@ -19640,12 +20345,12 @@ paths:
19640
20345
  - fileCount
19641
20346
  - dryRun
19642
20347
  - strategy
20348
+ - conflicts
20349
+ - binaryConflicts
19643
20350
  - provenanceWasUnknown
19644
20351
  additionalProperties: false
19645
20352
  "400":
19646
- description:
19647
- The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters), or the
19648
- `assistant` strategy was requested (not yet supported).
20353
+ description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
19649
20354
  "404":
19650
20355
  description: No copy of the plugin is installed, or its source resolves to nothing.
19651
20356
  "409":
@@ -27432,6 +28137,88 @@ paths:
27432
28137
  additionalProperties: false
27433
28138
  "404":
27434
28139
  description: Run not found
28140
+ /v1/workflows/runs/{id}/journal:
28141
+ get:
28142
+ operationId: workflows_runs_by_id_journal_get
28143
+ summary: Get workflow run journal
28144
+ description: Return a workflow run's leaf journal as bounded per-leaf summaries (one entry per finished leaf).
28145
+ tags:
28146
+ - workflows
28147
+ parameters:
28148
+ - name: id
28149
+ in: path
28150
+ required: true
28151
+ schema:
28152
+ type: string
28153
+ responses:
28154
+ "200":
28155
+ description: Successful response
28156
+ content:
28157
+ application/json:
28158
+ schema:
28159
+ type: object
28160
+ properties:
28161
+ runId:
28162
+ type: string
28163
+ status:
28164
+ type: string
28165
+ enum:
28166
+ - running
28167
+ - completed
28168
+ - failed
28169
+ - aborted
28170
+ - cap_exceeded
28171
+ - interrupted
28172
+ agentsSpawned:
28173
+ type: number
28174
+ inputTokens:
28175
+ type: number
28176
+ outputTokens:
28177
+ type: number
28178
+ phase:
28179
+ type: string
28180
+ leaves:
28181
+ type: array
28182
+ items:
28183
+ type: object
28184
+ properties:
28185
+ seq:
28186
+ type: number
28187
+ kind:
28188
+ type: string
28189
+ enum:
28190
+ - agent
28191
+ - workflow
28192
+ label:
28193
+ type: string
28194
+ phase:
28195
+ type: string
28196
+ promptSummary:
28197
+ type: string
28198
+ status:
28199
+ type: string
28200
+ resultSummary:
28201
+ type: string
28202
+ inputTokens:
28203
+ type: number
28204
+ outputTokens:
28205
+ type: number
28206
+ createdAt:
28207
+ anyOf:
28208
+ - type: number
28209
+ - type: "null"
28210
+ required:
28211
+ - seq
28212
+ - kind
28213
+ - status
28214
+ - createdAt
28215
+ additionalProperties: false
28216
+ required:
28217
+ - runId
28218
+ - leaves
28219
+ additionalProperties: false
28220
+ "404":
28221
+ description: Run not found
27435
28222
  /v1/workflows/runs/{id}/resume:
27436
28223
  post:
27437
28224
  operationId: workflows_runs_by_id_resume_post
@@ -27964,6 +28751,14 @@ components:
27964
28751
  maximum: 2
27965
28752
  - type: "null"
27966
28753
  - type: "null"
28754
+ topP:
28755
+ anyOf:
28756
+ - anyOf:
28757
+ - type: number
28758
+ minimum: 0
28759
+ maximum: 1
28760
+ - type: "null"
28761
+ - type: "null"
27967
28762
  thinking:
27968
28763
  anyOf:
27969
28764
  - type: object
@@ -28070,6 +28865,10 @@ components:
28070
28865
  anyOf:
28071
28866
  - type: string
28072
28867
  - type: "null"
28868
+ advisorProfile:
28869
+ anyOf:
28870
+ - type: string
28871
+ - type: "null"
28073
28872
  callSites:
28074
28873
  type: object
28075
28874
  propertyNames:
@@ -28105,6 +28904,16 @@ components:
28105
28904
  type: string
28106
28905
  additionalProperties: {}
28107
28906
  - type: "null"
28907
+ web-fetch:
28908
+ anyOf:
28909
+ - type: object
28910
+ properties:
28911
+ mode:
28912
+ $ref: "#/components/schemas/ServiceMode"
28913
+ provider:
28914
+ type: string
28915
+ additionalProperties: {}
28916
+ - type: "null"
28108
28917
  image-generation:
28109
28918
  anyOf:
28110
28919
  - type: object
@@ -28134,6 +28943,7 @@ components:
28134
28943
  - openrouter
28135
28944
  - openai-compatible
28136
28945
  - minimax
28946
+ - atlascloud
28137
28947
  ProfilePatchEntry:
28138
28948
  type: object
28139
28949
  properties:
@@ -28186,6 +28996,14 @@ components:
28186
28996
  maximum: 2
28187
28997
  - type: "null"
28188
28998
  - type: "null"
28999
+ topP:
29000
+ anyOf:
29001
+ - anyOf:
29002
+ - type: number
29003
+ minimum: 0
29004
+ maximum: 1
29005
+ - type: "null"
29006
+ - type: "null"
28189
29007
  thinking:
28190
29008
  anyOf:
28191
29009
  - type: object
@@ -28299,6 +29117,12 @@ components:
28299
29117
  - $ref: "#/components/schemas/ProfileStatus"
28300
29118
  - type: "null"
28301
29119
  - type: "null"
29120
+ advisorEnabled:
29121
+ anyOf:
29122
+ - anyOf:
29123
+ - type: boolean
29124
+ - type: "null"
29125
+ - type: "null"
28302
29126
  mix:
28303
29127
  anyOf:
28304
29128
  - minItems: 2
@@ -28374,6 +29198,14 @@ components:
28374
29198
  maximum: 2
28375
29199
  - type: "null"
28376
29200
  - type: "null"
29201
+ topP:
29202
+ anyOf:
29203
+ - anyOf:
29204
+ - type: number
29205
+ minimum: 0
29206
+ maximum: 1
29207
+ - type: "null"
29208
+ - type: "null"
28377
29209
  thinking:
28378
29210
  anyOf:
28379
29211
  - type: object
@@ -28491,6 +29323,7 @@ components:
28491
29323
  - openrouter
28492
29324
  - openai-compatible
28493
29325
  - minimax
29326
+ - atlascloud
28494
29327
  Auth:
28495
29328
  oneOf:
28496
29329
  - type: object
@@ -28596,6 +29429,12 @@ components:
28596
29429
  minimum: 0
28597
29430
  maximum: 2
28598
29431
  - type: "null"
29432
+ topP:
29433
+ anyOf:
29434
+ - type: number
29435
+ minimum: 0
29436
+ maximum: 1
29437
+ - type: "null"
28599
29438
  thinking:
28600
29439
  type: object
28601
29440
  properties:
@@ -28689,6 +29528,8 @@ components:
28689
29528
  type: string
28690
29529
  activeProfile:
28691
29530
  type: string
29531
+ advisorProfile:
29532
+ type: string
28692
29533
  callSites:
28693
29534
  type: object
28694
29535
  propertyNames:
@@ -28732,6 +29573,12 @@ components:
28732
29573
  minimum: 0
28733
29574
  maximum: 2
28734
29575
  - type: "null"
29576
+ topP:
29577
+ anyOf:
29578
+ - type: number
29579
+ minimum: 0
29580
+ maximum: 1
29581
+ - type: "null"
28735
29582
  thinking:
28736
29583
  type: object
28737
29584
  properties:
@@ -28839,6 +29686,14 @@ components:
28839
29686
  provider:
28840
29687
  type: string
28841
29688
  additionalProperties: {}
29689
+ web-fetch:
29690
+ type: object
29691
+ properties:
29692
+ mode:
29693
+ $ref: "#/components/schemas/ServiceMode"
29694
+ provider:
29695
+ type: string
29696
+ additionalProperties: {}
28842
29697
  image-generation:
28843
29698
  type: object
28844
29699
  properties:
@@ -28891,6 +29746,12 @@ components:
28891
29746
  minimum: 0
28892
29747
  maximum: 2
28893
29748
  - type: "null"
29749
+ topP:
29750
+ anyOf:
29751
+ - type: number
29752
+ minimum: 0
29753
+ maximum: 1
29754
+ - type: "null"
28894
29755
  thinking:
28895
29756
  type: object
28896
29757
  properties:
@@ -28988,6 +29849,10 @@ components:
28988
29849
  anyOf:
28989
29850
  - $ref: "#/components/schemas/ProfileStatus"
28990
29851
  - type: "null"
29852
+ advisorEnabled:
29853
+ anyOf:
29854
+ - type: boolean
29855
+ - type: "null"
28991
29856
  mix:
28992
29857
  minItems: 2
28993
29858
  type: array