@vellumai/assistant 0.9.1-staging.1 → 0.10.0-staging.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 (433) 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 +852 -15
  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__/auth-fallback-events-store.test.ts +6 -14
  14. package/src/__tests__/call-pointer-messages.test.ts +28 -0
  15. package/src/__tests__/cancel-clears-processing.test.ts +89 -0
  16. package/src/__tests__/channel-approval-routes.test.ts +0 -4
  17. package/src/__tests__/channel-inbound-disk-pressure.test.ts +5 -15
  18. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +3 -4
  19. package/src/__tests__/compactor-image-manifest-trust.test.ts +21 -1
  20. package/src/__tests__/compactor-summary-call-truncation.test.ts +223 -0
  21. package/src/__tests__/config-loader-backfill.test.ts +174 -30
  22. package/src/__tests__/config-schema.test.ts +35 -0
  23. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +2 -2
  24. package/src/__tests__/contact-store-user-file.test.ts +0 -6
  25. package/src/__tests__/contacts-tools.test.ts +29 -0
  26. package/src/__tests__/conversation-agent-loop-overflow.test.ts +1 -0
  27. package/src/__tests__/conversation-agent-loop.test.ts +58 -0
  28. package/src/__tests__/conversation-attention-telegram.test.ts +0 -1
  29. package/src/__tests__/conversation-lifecycle.test.ts +7 -9
  30. package/src/__tests__/conversation-load-history-repair.test.ts +101 -0
  31. package/src/__tests__/conversation-routes-guardian-reply.test.ts +15 -12
  32. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +6 -3
  33. package/src/__tests__/conversation-title-service.test.ts +62 -0
  34. package/src/__tests__/credential-execution-shell-lockdown.test.ts +18 -11
  35. package/src/__tests__/credential-prompt-route.test.ts +1 -0
  36. package/src/__tests__/credential-security-invariants.test.ts +2 -0
  37. package/src/__tests__/disk-pressure-policy.test.ts +12 -0
  38. package/src/__tests__/disk-usage.test.ts +65 -0
  39. package/src/__tests__/dynamic-page-surface.test.ts +51 -0
  40. package/src/__tests__/gateway-flag-listener.test.ts +110 -1
  41. package/src/__tests__/guardian-binding-drift-heal.test.ts +1 -1
  42. package/src/__tests__/guardian-card-withdrawal.test.ts +403 -0
  43. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +5 -3
  44. package/src/__tests__/guardian-grant-minting.test.ts +3 -35
  45. package/src/__tests__/guardian-routing-invariants.test.ts +64 -26
  46. package/src/__tests__/guardian-routing-state.test.ts +0 -1
  47. package/src/__tests__/headless-browser-mode.test.ts +10 -0
  48. package/src/__tests__/headless-browser-navigate.test.ts +8 -3
  49. package/src/__tests__/helpers/create-guardian-binding.ts +0 -1
  50. package/src/__tests__/host-browser-proxy.test.ts +87 -0
  51. package/src/__tests__/injector-v3-suppression.test.ts +27 -20
  52. package/src/__tests__/internal-telemetry-routes.test.ts +6 -14
  53. package/src/__tests__/invite-redemption-service.test.ts +0 -3
  54. package/src/__tests__/llm-catalog-parity.test.ts +30 -1
  55. package/src/__tests__/llm-resolver.test.ts +21 -0
  56. package/src/__tests__/llm-schema.test.ts +1 -0
  57. package/src/__tests__/managed-profile-guard.test.ts +163 -4
  58. package/src/__tests__/mcp-health-check.test.ts +6 -7
  59. package/src/__tests__/media-stream-server-integration.test.ts +317 -13
  60. package/src/__tests__/path-policy.test.ts +34 -0
  61. package/src/__tests__/persona-resolver.test.ts +38 -0
  62. package/src/__tests__/plugin-api-provider.test.ts +24 -0
  63. package/src/__tests__/plugin-tool-contribution.test.ts +6 -3
  64. package/src/__tests__/post-compaction-reinjection-idempotency.test.ts +214 -0
  65. package/src/__tests__/provider-send-message-override-profile.test.ts +76 -0
  66. package/src/__tests__/reaction-persistence.test.ts +150 -29
  67. package/src/__tests__/relay-server.test.ts +285 -0
  68. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -1
  69. package/src/__tests__/scheduler-reuse-conversation.test.ts +8 -5
  70. package/src/__tests__/skill-execute-input.test.ts +5 -0
  71. package/src/__tests__/skills.test.ts +51 -0
  72. package/src/__tests__/slack-notification-approval-card.test.ts +176 -0
  73. package/src/__tests__/slack-reaction-canonical-approval.test.ts +285 -0
  74. package/src/__tests__/subagent-tools.test.ts +150 -0
  75. package/src/__tests__/task-progress-nudge-hook.test.ts +1 -1
  76. package/src/__tests__/title-generate-hook.test.ts +100 -3
  77. package/src/__tests__/tool-approval-seed-content-blocks.test.ts +1 -1
  78. package/src/__tests__/tool-audit-listener.test.ts +7 -7
  79. package/src/__tests__/tool-executor-lifecycle-events.test.ts +6 -3
  80. package/src/__tests__/trusted-contact-approval-notifier.test.ts +4 -2
  81. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +220 -3
  82. package/src/__tests__/trusted-contact-verification.test.ts +2 -4
  83. package/src/__tests__/twilio-routes.test.ts +81 -1
  84. package/src/__tests__/voice-invite-redemption.test.ts +0 -1
  85. package/src/__tests__/weak-open-model.test.ts +30 -0
  86. package/src/__tests__/workspace-migration-105-enable-memory-v3-live-for-new-workspaces.test.ts +149 -0
  87. package/src/__tests__/workspace-migration-108-drop-balanced-economy-profile.test.ts +285 -0
  88. package/src/__tests__/workspace-migration-add-send-diagnostics.test.ts +1 -1
  89. package/src/__tests__/workspace-migration-drop-collect-usage-data.test.ts +118 -0
  90. package/src/__tests__/workspace-migration-drop-send-diagnostics.test.ts +118 -0
  91. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +0 -4
  92. package/src/agent/loop.ts +33 -33
  93. package/src/api/events/tool-result.ts +6 -0
  94. package/src/api/events/workflow-completed.ts +53 -0
  95. package/src/api/events/workflow-leaf-finished.ts +38 -0
  96. package/src/api/events/workflow-leaf-started.ts +35 -0
  97. package/src/api/events/workflow-progress.ts +32 -0
  98. package/src/api/events/workflow-started.ts +31 -0
  99. package/src/api/index.ts +40 -0
  100. package/src/api/responses/conversation-message.ts +26 -0
  101. package/src/api/responses/home.ts +26 -0
  102. package/src/api/responses/workflow-journal.ts +53 -0
  103. package/src/approvals/guardian-card-withdrawal.ts +145 -0
  104. package/src/approvals/guardian-decision-primitive.ts +26 -3
  105. package/src/approvals/guardian-request-resolvers.ts +181 -78
  106. package/src/calls/__tests__/channel-admission-reader.test.ts +132 -0
  107. package/src/calls/__tests__/relay-setup-router.test.ts +350 -0
  108. package/src/calls/call-pointer-messages.ts +10 -4
  109. package/src/calls/channel-admission-reader.ts +104 -0
  110. package/src/calls/guardian-dispatch.ts +17 -45
  111. package/src/calls/media-stream-server.ts +84 -2
  112. package/src/calls/relay-server.ts +66 -0
  113. package/src/calls/relay-setup-router.ts +82 -1
  114. package/src/calls/twilio-routes.ts +17 -8
  115. package/src/cli/commands/clients.ts +3 -0
  116. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v2-compare-render.test.ts +1 -1
  117. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v2.test.ts +8 -7
  118. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v3.test.ts +5 -4
  119. package/src/cli/commands/memory/index.ts +30 -0
  120. package/src/cli/commands/{memory-v2-compare-render.ts → memory/memory-v2-compare-render.ts} +1 -1
  121. package/src/cli/commands/{memory-v2.ts → memory/memory-v2.ts} +6 -15
  122. package/src/cli/commands/{memory-v3.ts → memory/memory-v3.ts} +97 -11
  123. package/src/cli/commands/oauth/status.test.ts +36 -0
  124. package/src/cli/commands/oauth/status.ts +23 -3
  125. package/src/cli/commands/plugins.ts +57 -5
  126. package/src/cli/lib/__tests__/inspect-plugin.test.ts +54 -0
  127. package/src/cli/lib/__tests__/merge-plugin-tree.test.ts +134 -4
  128. package/src/cli/lib/__tests__/plugin-surfaces.test.ts +111 -0
  129. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +53 -11
  130. package/src/cli/lib/inspect-plugin.ts +12 -1
  131. package/src/cli/lib/merge-plugin-tree.ts +149 -49
  132. package/src/cli/lib/plugin-surfaces.ts +104 -0
  133. package/src/cli/lib/upgrade-plugin.ts +64 -36
  134. package/src/cli/program.ts +2 -4
  135. package/src/config/__tests__/sync-gated-profiles.test.ts +368 -0
  136. package/src/config/assistant-feature-flags.ts +22 -7
  137. package/src/config/bundled-skills/contacts/tools/contact-search.ts +0 -1
  138. package/src/config/bundled-skills/messaging/SKILL.md +6 -4
  139. package/src/config/bundled-skills/messaging/tools/messaging-archive-by-sender.ts +9 -8
  140. package/src/config/bundled-skills/workflows/SKILL.md +14 -7
  141. package/src/config/call-site-defaults.ts +3 -0
  142. package/src/config/feature-flag-registry.json +49 -18
  143. package/src/config/llm-resolver.ts +3 -0
  144. package/src/config/memory-v3-gate.ts +11 -0
  145. package/src/config/schema.ts +8 -6
  146. package/src/config/schemas/__tests__/memory-v3.test.ts +1 -0
  147. package/src/config/schemas/call-site-catalog.ts +7 -0
  148. package/src/config/schemas/channels.ts +11 -0
  149. package/src/config/schemas/llm.ts +31 -0
  150. package/src/config/schemas/memory-lifecycle.ts +3 -7
  151. package/src/config/schemas/memory-v3.ts +6 -0
  152. package/src/config/schemas/services.ts +18 -0
  153. package/src/config/seed-inference-profiles.ts +94 -34
  154. package/src/config/skills.ts +21 -0
  155. package/src/config/sync-gated-profiles.ts +220 -0
  156. package/src/contacts/contact-store.ts +2 -10
  157. package/src/contacts/contacts-write.ts +1 -2
  158. package/src/contacts/types.ts +0 -1
  159. package/src/context/compactor.ts +86 -52
  160. package/src/context/strip-injections.ts +58 -10
  161. package/src/context/token-estimator.ts +1 -1
  162. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +3 -2
  163. package/src/daemon/conversation-agent-loop-handlers.ts +2 -0
  164. package/src/daemon/conversation-agent-loop.ts +100 -19
  165. package/src/daemon/conversation-history.ts +1 -1
  166. package/src/daemon/conversation-lifecycle.ts +3 -5
  167. package/src/daemon/conversation-process.ts +13 -5
  168. package/src/daemon/conversation-runtime-assembly.ts +13 -15
  169. package/src/daemon/conversation-surfaces.ts +26 -0
  170. package/src/daemon/conversation-tool-setup.ts +16 -11
  171. package/src/daemon/conversation.ts +64 -14
  172. package/src/daemon/disk-pressure-policy.ts +5 -3
  173. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +0 -1
  174. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +0 -1
  175. package/src/daemon/handlers/config-a2a.ts +0 -2
  176. package/src/daemon/handlers/config-channels.ts +5 -10
  177. package/src/daemon/handlers/config-slack-channel.ts +20 -0
  178. package/src/daemon/handlers/conversations.ts +107 -0
  179. package/src/daemon/host-browser-proxy.ts +41 -0
  180. package/src/daemon/lifecycle.ts +55 -20
  181. package/src/daemon/message-provenance.ts +2 -0
  182. package/src/daemon/message-types/contacts.ts +0 -1
  183. package/src/daemon/message-types/web-activity.ts +7 -1
  184. package/src/daemon/message-types/workflows.ts +83 -1
  185. package/src/daemon/tool-setup-types.ts +4 -0
  186. package/src/daemon/trust-context.ts +1 -1
  187. package/src/events/tool-audit-listener.ts +2 -2
  188. package/src/home/feed-source-enrichment.test.ts +151 -0
  189. package/src/home/feed-source-enrichment.ts +176 -0
  190. package/src/instrument.ts +18 -6
  191. package/src/ipc/__tests__/binary-result-ipc.test.ts +81 -0
  192. package/src/ipc/__tests__/clients-list-ipc.test.ts +20 -0
  193. package/src/ipc/assistant-server.ts +37 -4
  194. package/src/ipc/gateway-flag-listener.ts +18 -2
  195. package/src/memory/__tests__/auto-analysis-enqueue.test.ts +5 -16
  196. package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +7 -11
  197. package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +37 -7
  198. package/src/memory/__tests__/memory-retrospective-job.test.ts +34 -0
  199. package/src/memory/__tests__/onboarding-events-store.test.ts +7 -7
  200. package/src/memory/auth-fallback-events-store.ts +2 -2
  201. package/src/memory/auto-analysis-enqueue.ts +3 -5
  202. package/src/memory/canonical-guardian-store.ts +39 -1
  203. package/src/memory/conversation-crud.ts +9 -4
  204. package/src/memory/conversation-key-store.ts +17 -2
  205. package/src/memory/conversation-title-service.ts +64 -7
  206. package/src/memory/db-init.ts +10 -0
  207. package/src/memory/embedding-backend.ts +15 -1
  208. package/src/memory/jobs-worker.ts +2 -1
  209. package/src/memory/lifecycle-events-store.ts +2 -2
  210. package/src/memory/memory-retrospective-enqueue.ts +31 -6
  211. package/src/memory/memory-retrospective-job.ts +9 -0
  212. package/src/memory/migrations/129-contact-channels-access-fields.ts +18 -9
  213. package/src/memory/migrations/131-drop-legacy-member-guardian-tables.ts +14 -2
  214. package/src/memory/migrations/289-contact-channels-unique-ext-user.ts +10 -0
  215. package/src/memory/migrations/291-contact-channels-renormalize-addresses.ts +10 -0
  216. package/src/memory/migrations/292-schedule-default-no-reuse-conversation.test.ts +67 -0
  217. package/src/memory/migrations/292-schedule-default-no-reuse-conversation.ts +25 -0
  218. package/src/memory/migrations/293-workflow-journal-leaf-tokens.ts +32 -0
  219. package/src/memory/migrations/294-drop-external-user-id.ts +31 -0
  220. package/src/memory/migrations/295-drop-approval-prompt-ts-tracker.ts +20 -0
  221. package/src/memory/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +110 -0
  222. package/src/memory/migrations/296-rewrite-balanced-economy-profile-pins.ts +68 -0
  223. package/src/memory/migrations/__tests__/131-drop-legacy-member-guardian-tables.test.ts +154 -0
  224. package/src/memory/migrations/__tests__/289-contact-channels-unique-ext-user.test.ts +31 -0
  225. package/src/memory/migrations/__tests__/291-contact-channels-renormalize-addresses.test.ts +30 -0
  226. package/src/memory/migrations/index.ts +5 -0
  227. package/src/memory/onboarding-events-store.ts +3 -3
  228. package/src/memory/schema/contacts.ts +0 -1
  229. package/src/memory/skill-loaded-events-store.test.ts +7 -15
  230. package/src/memory/skill-loaded-events-store.ts +2 -2
  231. package/src/memory/tool-executed-events-store.test.ts +7 -7
  232. package/src/memory/turn-trace-store.test.ts +736 -0
  233. package/src/memory/turn-trace-store.ts +364 -0
  234. package/src/memory/v2/__tests__/consolidation-job.test.ts +8 -0
  235. package/src/memory/v2/__tests__/skill-content.test.ts +30 -0
  236. package/src/memory/v2/consolidation-job.ts +2 -2
  237. package/src/memory/v2/skill-content.ts +25 -7
  238. package/src/memory/v2/skill-store.ts +7 -1
  239. package/src/memory/v3-eval/__tests__/eval-packets.test.ts +248 -0
  240. package/src/memory/v3-eval/eval-packets.ts +546 -0
  241. package/src/messaging/providers/slack/api.ts +31 -0
  242. package/src/messaging/providers/slack/send.test.ts +114 -2
  243. package/src/messaging/providers/slack/send.ts +30 -7
  244. package/src/messaging/providers/slack/withdraw.test.ts +200 -0
  245. package/src/messaging/providers/slack/withdraw.ts +161 -0
  246. package/src/notifications/AGENTS.md +2 -0
  247. package/src/notifications/access-request-copy.ts +72 -59
  248. package/src/notifications/adapters/slack.ts +55 -73
  249. package/src/notifications/approval-card-data.ts +333 -0
  250. package/src/notifications/broadcaster.ts +6 -2
  251. package/src/notifications/canonical-delivery-recorder.ts +139 -0
  252. package/src/notifications/copy-composer.ts +3 -3
  253. package/src/notifications/decision-engine.ts +4 -2
  254. package/src/notifications/destination-resolver.ts +4 -6
  255. package/src/notifications/guardian-question-mode.ts +10 -0
  256. package/src/notifications/home-feed-side-effect.ts +3 -13
  257. package/src/notifications/notification-utils.ts +2 -1
  258. package/src/notifications/signal.ts +79 -43
  259. package/src/notifications/types.ts +98 -128
  260. package/src/permissions/checker.test.ts +51 -0
  261. package/src/permissions/checker.ts +185 -26
  262. package/src/permissions/ipc-risk-types.ts +24 -0
  263. package/src/permissions/question-prompter.test.ts +27 -0
  264. package/src/permissions/question-prompter.ts +4 -0
  265. package/src/platform/client.test.ts +119 -0
  266. package/src/platform/client.ts +66 -0
  267. package/src/platform/consent-cache.test.ts +267 -0
  268. package/src/platform/consent-cache.ts +174 -0
  269. package/src/plugin-api/index.ts +27 -0
  270. package/src/plugins/defaults/advisor/__tests__/advisor-gate.test.ts +56 -0
  271. package/src/plugins/defaults/advisor/__tests__/advisor-state-store.test.ts +43 -0
  272. package/src/plugins/defaults/advisor/__tests__/agent-loop-integration.test.ts +137 -0
  273. package/src/plugins/defaults/advisor/__tests__/consult.test.ts +153 -0
  274. package/src/plugins/defaults/advisor/__tests__/hooks.test.ts +138 -0
  275. package/src/plugins/defaults/advisor/__tests__/transcript.test.ts +147 -0
  276. package/src/plugins/defaults/advisor/advisor-gate.ts +29 -0
  277. package/src/plugins/defaults/advisor/advisor-state-store.ts +94 -0
  278. package/src/plugins/defaults/advisor/config.ts +21 -0
  279. package/src/plugins/defaults/advisor/consult.ts +93 -0
  280. package/src/plugins/defaults/advisor/hooks/post-model-call.ts +34 -0
  281. package/src/plugins/defaults/advisor/hooks/pre-model-call.ts +30 -0
  282. package/src/plugins/defaults/advisor/hooks/user-prompt-submit.ts +19 -0
  283. package/src/plugins/defaults/advisor/package.json +14 -0
  284. package/src/plugins/defaults/advisor/steering.ts +67 -0
  285. package/src/plugins/defaults/advisor/tools/advisor.ts +65 -0
  286. package/src/plugins/defaults/advisor/transcript.ts +76 -0
  287. package/src/plugins/defaults/index.ts +35 -0
  288. package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +22 -9
  289. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit.ts +2 -2
  290. package/src/plugins/defaults/memory-retrieval/tail-reinjection-strip.ts +64 -0
  291. package/src/plugins/defaults/memory-retrieval/unified-turn-context.ts +29 -21
  292. package/src/plugins/defaults/memory-v3-shadow/__tests__/carry-integration.test.ts +1 -0
  293. package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +1 -0
  294. package/src/plugins/defaults/memory-v3-shadow/__tests__/maintain-job.test.ts +75 -7
  295. package/src/plugins/defaults/memory-v3-shadow/__tests__/orchestrate.test.ts +31 -4
  296. package/src/plugins/defaults/memory-v3-shadow/__tests__/selection-log-store.test.ts +77 -2
  297. package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +1 -0
  298. package/src/plugins/defaults/memory-v3-shadow/injector.ts +7 -10
  299. package/src/plugins/defaults/memory-v3-shadow/maintain-job.ts +37 -4
  300. package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +32 -20
  301. package/src/plugins/defaults/memory-v3-shadow/selection-log-store.ts +56 -3
  302. package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +23 -2
  303. package/src/plugins/defaults/task-progress-nudge/hooks/post-tool-use.ts +2 -12
  304. package/src/plugins/defaults/title-generate/hooks/stop.ts +56 -21
  305. package/src/prompts/persona-resolver.ts +12 -2
  306. package/src/prompts/templates/system-sections.ts +7 -2
  307. package/src/providers/__tests__/provider-env-vars.test.ts +6 -0
  308. package/src/providers/__tests__/provider-secret-catalog.test.ts +1 -0
  309. package/src/providers/__tests__/retry-callsite.test.ts +176 -0
  310. package/src/providers/atlascloud/client.ts +85 -0
  311. package/src/providers/fetch-provider-catalog.ts +85 -0
  312. package/src/providers/inference/adapter-factory.ts +3 -0
  313. package/src/providers/model-catalog.ts +58 -0
  314. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +33 -0
  315. package/src/providers/openai/chat-completions-provider.ts +7 -0
  316. package/src/providers/openai/responses-provider.ts +10 -0
  317. package/src/providers/provider-send-message.ts +11 -3
  318. package/src/providers/retry.ts +53 -12
  319. package/src/providers/search-provider-catalog.ts +10 -0
  320. package/src/providers/weak-open-model.ts +22 -0
  321. package/src/runtime/__tests__/agent-wake.test.ts +181 -0
  322. package/src/runtime/__tests__/client-health.test.ts +44 -0
  323. package/src/runtime/access-request-helper.ts +21 -53
  324. package/src/runtime/actor-trust-resolver.ts +49 -21
  325. package/src/runtime/agent-wake.ts +52 -0
  326. package/src/runtime/assistant-event-hub.ts +18 -4
  327. package/src/runtime/auth/__tests__/route-policy.test.ts +12 -0
  328. package/src/runtime/auth/require-bound-guardian.ts +1 -4
  329. package/src/runtime/capabilities.test.ts +120 -0
  330. package/src/runtime/capabilities.ts +197 -0
  331. package/src/runtime/channel-approval-types.ts +5 -1
  332. package/src/runtime/channel-retry-sweep.ts +1 -0
  333. package/src/runtime/channel-verification-service.ts +1 -2
  334. package/src/runtime/client-health.ts +26 -0
  335. package/src/runtime/confirmation-request-guardian-bridge.ts +38 -29
  336. package/src/runtime/effective-capabilities.test.ts +128 -0
  337. package/src/runtime/effective-capabilities.ts +84 -0
  338. package/src/runtime/guardian-reply-router.ts +106 -21
  339. package/src/runtime/invite-redemption-service.ts +6 -22
  340. package/src/runtime/migrations/__tests__/vbundle-builder-fd-leak.test.ts +123 -0
  341. package/src/runtime/migrations/vbundle-builder.ts +49 -20
  342. package/src/runtime/pending-interactions.ts +15 -0
  343. package/src/runtime/routes/__tests__/client-routes.test.ts +13 -0
  344. package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +67 -0
  345. package/src/runtime/routes/__tests__/plugins-routes.test.ts +35 -13
  346. package/src/runtime/routes/browser-tabs-routes.ts +9 -0
  347. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +17 -8
  348. package/src/runtime/routes/client-routes.ts +10 -0
  349. package/src/runtime/routes/contact-routes.ts +31 -8
  350. package/src/runtime/routes/conversation-management-routes.ts +80 -1
  351. package/src/runtime/routes/conversation-query-routes.ts +68 -22
  352. package/src/runtime/routes/conversation-routes.ts +37 -12
  353. package/src/runtime/routes/events-routes.ts +1 -3
  354. package/src/runtime/routes/guardian-approval-interception.ts +14 -73
  355. package/src/runtime/routes/guardian-approval-prompt.ts +22 -4
  356. package/src/runtime/routes/home-feed-routes.ts +8 -3
  357. package/src/runtime/routes/inbound-message-handler.ts +214 -228
  358. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +88 -6
  359. package/src/runtime/routes/inbound-stages/admission-policy.test.ts +154 -0
  360. package/src/runtime/routes/inbound-stages/admission-policy.ts +140 -0
  361. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +3 -3
  362. package/src/runtime/routes/inbound-stages/background-dispatch.ts +11 -6
  363. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +1 -2
  364. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +1 -2
  365. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +7 -7
  366. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +47 -28
  367. package/src/runtime/routes/inbound-stages/reaction-intercept.ts +358 -0
  368. package/src/runtime/routes/index.ts +2 -0
  369. package/src/runtime/routes/integrations/slack/__tests__/channel.test.ts +8 -0
  370. package/src/runtime/routes/integrations/slack/channel.ts +36 -0
  371. package/src/runtime/routes/internal-telemetry-routes.ts +1 -1
  372. package/src/runtime/routes/mcp-auth-routes.ts +233 -41
  373. package/src/runtime/routes/memory-eval-routes.ts +87 -0
  374. package/src/runtime/routes/notification-routes.ts +122 -133
  375. package/src/runtime/routes/platform-routes.ts +2 -2
  376. package/src/runtime/routes/plugins-routes.ts +40 -7
  377. package/src/runtime/routes/secret-routes.ts +10 -0
  378. package/src/runtime/routes/surface-action-routes.ts +2 -1
  379. package/src/runtime/routes/tool-call-question-enrichment.test.ts +146 -0
  380. package/src/runtime/routes/tool-call-question-enrichment.ts +66 -0
  381. package/src/runtime/routes/workflow-routes.test.ts +225 -1
  382. package/src/runtime/routes/workflow-routes.ts +131 -1
  383. package/src/runtime/tool-grant-request-helper.ts +18 -16
  384. package/src/runtime/trust-context-resolver.ts +8 -5
  385. package/src/schedule/schedule-store.ts +1 -1
  386. package/src/schedule/scheduler-types.ts +5 -1
  387. package/src/security/__tests__/provider-key-env-fallback.test.ts +6 -0
  388. package/src/security/secret-patterns.ts +3 -0
  389. package/src/subagent/manager.ts +11 -4
  390. package/src/telemetry/trace-collection-policy.test.ts +28 -0
  391. package/src/telemetry/trace-collection-policy.ts +30 -0
  392. package/src/telemetry/types.ts +89 -0
  393. package/src/telemetry/usage-telemetry-reporter.test.ts +586 -36
  394. package/src/telemetry/usage-telemetry-reporter.ts +148 -41
  395. package/src/tools/browser/__tests__/browser-execution-acquire.test.ts +31 -0
  396. package/src/tools/browser/browser-execution.ts +29 -18
  397. package/src/tools/document/document-tool.ts +2 -3
  398. package/src/tools/executor.ts +5 -3
  399. package/src/tools/host-terminal/host-shell.ts +5 -4
  400. package/src/tools/memory/register.ts +2 -2
  401. package/src/tools/network/__tests__/web-fetch-firecrawl.test.ts +360 -0
  402. package/src/tools/network/__tests__/web-search.test.ts +143 -0
  403. package/src/tools/network/web-fetch.ts +372 -1
  404. package/src/tools/network/web-search.ts +213 -10
  405. package/src/tools/permission-checker.ts +3 -2
  406. package/src/tools/registry.ts +20 -0
  407. package/src/tools/schedule/create.ts +4 -3
  408. package/src/tools/schedule/update.ts +2 -1
  409. package/src/tools/shared/filesystem/path-policy.ts +39 -13
  410. package/src/tools/skills/execute.ts +1 -2
  411. package/src/tools/subagent/spawn.ts +37 -13
  412. package/src/tools/terminal/shell.ts +10 -4
  413. package/src/tools/tool-approval-handler.ts +17 -10
  414. package/src/tools/types.ts +9 -0
  415. package/src/tools/ui-surface/definitions.ts +25 -2
  416. package/src/tools/verification-control-plane-policy.ts +3 -1
  417. package/src/tools/workflows/run-workflow.ts +1 -0
  418. package/src/util/disk-usage.ts +78 -23
  419. package/src/util/platform.ts +8 -1
  420. package/src/watcher/telemetry.ts +2 -2
  421. package/src/workflows/engine.test.ts +175 -1
  422. package/src/workflows/engine.ts +82 -0
  423. package/src/workflows/journal-store.test.ts +70 -0
  424. package/src/workflows/journal-store.ts +18 -3
  425. package/src/workflows/run-manager.test.ts +171 -3
  426. package/src/workflows/run-manager.ts +64 -0
  427. package/src/workspace/migrations/105-enable-memory-v3-live-for-new-workspaces.ts +63 -0
  428. package/src/workspace/migrations/106-drop-collect-usage-data.ts +47 -0
  429. package/src/workspace/migrations/107-drop-send-diagnostics.ts +47 -0
  430. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +129 -0
  431. package/src/workspace/migrations/registry.ts +8 -0
  432. package/src/notifications/tool-approval-copy.ts +0 -142
  433. 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:
@@ -15976,10 +16403,52 @@ paths:
15976
16403
  - label
15977
16404
  - scope
15978
16405
  additionalProperties: false
15979
- persistentDecisionsAllowed:
15980
- type: boolean
16406
+ persistentDecisionsAllowed:
16407
+ type: boolean
16408
+ required:
16409
+ - requestId
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
15981
16449
  required:
15982
16450
  - requestId
16451
+ - entries
15983
16452
  additionalProperties: false
15984
16453
  required:
15985
16454
  - name
@@ -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:
@@ -19508,6 +20140,35 @@ paths:
19508
20140
  - type: string
19509
20141
  - type: "null"
19510
20142
  description: Marketplace fetch error message, when the catalog could not be read.
20143
+ surfaces:
20144
+ anyOf:
20145
+ - type: object
20146
+ properties:
20147
+ skills:
20148
+ type: array
20149
+ items:
20150
+ type: string
20151
+ description: Skill ids shipped at `skills/<id>/SKILL.md`.
20152
+ hooks:
20153
+ type: array
20154
+ items:
20155
+ type: string
20156
+ description: Lifecycle hook names from `hooks/<name>.{ts,js}` (e.g. `pre-model-call`).
20157
+ tools:
20158
+ type: array
20159
+ items:
20160
+ type: string
20161
+ description:
20162
+ Registered tool names from `tools/<name>.{ts,js}` (filenames derived to tool names, e.g. `create-issue` →
20163
+ `create_issue`).
20164
+ required:
20165
+ - skills
20166
+ - hooks
20167
+ - tools
20168
+ additionalProperties: false
20169
+ description: Surfaces the installed copy contributes, read from its on-disk tree.
20170
+ - type: "null"
20171
+ description: Surfaces the installed copy contributes (skills, hooks, tools); null when the plugin is not installed.
19511
20172
  required:
19512
20173
  - name
19513
20174
  - installed
@@ -19515,6 +20176,7 @@ paths:
19515
20176
  - local
19516
20177
  - remote
19517
20178
  - remoteError
20179
+ - surfaces
19518
20180
  additionalProperties: false
19519
20181
  "400":
19520
20182
  description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
@@ -19531,11 +20193,12 @@ paths:
19531
20193
  commit already equals the pin; pass `dryRun` to preview the move (`outcome: "would-upgrade"`) without touching
19532
20194
  the install. Installs lacking provenance are re-pinned to the current SHA. The assistant must be restarted to
19533
20195
  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>]`.'
20196
+ and re-installs the pin wholesale; `ours`/`theirs`/`assistant` perform a three-way merge against the
20197
+ re-materialized install commit, carrying non-conflicting edits from both sides forward and resolving conflicting
20198
+ hunks toward the local edit (`ours`) or the pin (`theirs`), or writing git conflict markers into the file and
20199
+ reporting them in `conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge strategy
20200
+ whose install-time baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins upgrade
20201
+ <name> [--strategy <s>]`.'
19539
20202
  tags:
19540
20203
  - plugins
19541
20204
  parameters:
@@ -19624,6 +20287,20 @@ paths:
19624
20287
  - overwrite
19625
20288
  - assistant
19626
20289
  description: Conflict-resolution strategy the upgrade applied.
20290
+ conflicts:
20291
+ type: array
20292
+ items:
20293
+ type: string
20294
+ description:
20295
+ "Paths left for the assistant to resolve under the `assistant` strategy: text files carry git conflict
20296
+ markers, modify/delete divergences keep the surviving content. Empty for other strategies."
20297
+ binaryConflicts:
20298
+ type: array
20299
+ items:
20300
+ type: string
20301
+ description:
20302
+ Binary files that conflicted under the `assistant` strategy; the local copy was kept since markers cannot
20303
+ be written into binary content. Empty for other strategies.
19627
20304
  provenanceWasUnknown:
19628
20305
  type: boolean
19629
20306
  description:
@@ -19640,12 +20317,12 @@ paths:
19640
20317
  - fileCount
19641
20318
  - dryRun
19642
20319
  - strategy
20320
+ - conflicts
20321
+ - binaryConflicts
19643
20322
  - provenanceWasUnknown
19644
20323
  additionalProperties: false
19645
20324
  "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).
20325
+ description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
19649
20326
  "404":
19650
20327
  description: No copy of the plugin is installed, or its source resolves to nothing.
19651
20328
  "409":
@@ -27432,6 +28109,88 @@ paths:
27432
28109
  additionalProperties: false
27433
28110
  "404":
27434
28111
  description: Run not found
28112
+ /v1/workflows/runs/{id}/journal:
28113
+ get:
28114
+ operationId: workflows_runs_by_id_journal_get
28115
+ summary: Get workflow run journal
28116
+ description: Return a workflow run's leaf journal as bounded per-leaf summaries (one entry per finished leaf).
28117
+ tags:
28118
+ - workflows
28119
+ parameters:
28120
+ - name: id
28121
+ in: path
28122
+ required: true
28123
+ schema:
28124
+ type: string
28125
+ responses:
28126
+ "200":
28127
+ description: Successful response
28128
+ content:
28129
+ application/json:
28130
+ schema:
28131
+ type: object
28132
+ properties:
28133
+ runId:
28134
+ type: string
28135
+ status:
28136
+ type: string
28137
+ enum:
28138
+ - running
28139
+ - completed
28140
+ - failed
28141
+ - aborted
28142
+ - cap_exceeded
28143
+ - interrupted
28144
+ agentsSpawned:
28145
+ type: number
28146
+ inputTokens:
28147
+ type: number
28148
+ outputTokens:
28149
+ type: number
28150
+ phase:
28151
+ type: string
28152
+ leaves:
28153
+ type: array
28154
+ items:
28155
+ type: object
28156
+ properties:
28157
+ seq:
28158
+ type: number
28159
+ kind:
28160
+ type: string
28161
+ enum:
28162
+ - agent
28163
+ - workflow
28164
+ label:
28165
+ type: string
28166
+ phase:
28167
+ type: string
28168
+ promptSummary:
28169
+ type: string
28170
+ status:
28171
+ type: string
28172
+ resultSummary:
28173
+ type: string
28174
+ inputTokens:
28175
+ type: number
28176
+ outputTokens:
28177
+ type: number
28178
+ createdAt:
28179
+ anyOf:
28180
+ - type: number
28181
+ - type: "null"
28182
+ required:
28183
+ - seq
28184
+ - kind
28185
+ - status
28186
+ - createdAt
28187
+ additionalProperties: false
28188
+ required:
28189
+ - runId
28190
+ - leaves
28191
+ additionalProperties: false
28192
+ "404":
28193
+ description: Run not found
27435
28194
  /v1/workflows/runs/{id}/resume:
27436
28195
  post:
27437
28196
  operationId: workflows_runs_by_id_resume_post
@@ -27964,6 +28723,14 @@ components:
27964
28723
  maximum: 2
27965
28724
  - type: "null"
27966
28725
  - type: "null"
28726
+ topP:
28727
+ anyOf:
28728
+ - anyOf:
28729
+ - type: number
28730
+ minimum: 0
28731
+ maximum: 1
28732
+ - type: "null"
28733
+ - type: "null"
27967
28734
  thinking:
27968
28735
  anyOf:
27969
28736
  - type: object
@@ -28070,6 +28837,10 @@ components:
28070
28837
  anyOf:
28071
28838
  - type: string
28072
28839
  - type: "null"
28840
+ advisorProfile:
28841
+ anyOf:
28842
+ - type: string
28843
+ - type: "null"
28073
28844
  callSites:
28074
28845
  type: object
28075
28846
  propertyNames:
@@ -28105,6 +28876,16 @@ components:
28105
28876
  type: string
28106
28877
  additionalProperties: {}
28107
28878
  - type: "null"
28879
+ web-fetch:
28880
+ anyOf:
28881
+ - type: object
28882
+ properties:
28883
+ mode:
28884
+ $ref: "#/components/schemas/ServiceMode"
28885
+ provider:
28886
+ type: string
28887
+ additionalProperties: {}
28888
+ - type: "null"
28108
28889
  image-generation:
28109
28890
  anyOf:
28110
28891
  - type: object
@@ -28134,6 +28915,7 @@ components:
28134
28915
  - openrouter
28135
28916
  - openai-compatible
28136
28917
  - minimax
28918
+ - atlascloud
28137
28919
  ProfilePatchEntry:
28138
28920
  type: object
28139
28921
  properties:
@@ -28186,6 +28968,14 @@ components:
28186
28968
  maximum: 2
28187
28969
  - type: "null"
28188
28970
  - type: "null"
28971
+ topP:
28972
+ anyOf:
28973
+ - anyOf:
28974
+ - type: number
28975
+ minimum: 0
28976
+ maximum: 1
28977
+ - type: "null"
28978
+ - type: "null"
28189
28979
  thinking:
28190
28980
  anyOf:
28191
28981
  - type: object
@@ -28299,6 +29089,12 @@ components:
28299
29089
  - $ref: "#/components/schemas/ProfileStatus"
28300
29090
  - type: "null"
28301
29091
  - type: "null"
29092
+ advisorEnabled:
29093
+ anyOf:
29094
+ - anyOf:
29095
+ - type: boolean
29096
+ - type: "null"
29097
+ - type: "null"
28302
29098
  mix:
28303
29099
  anyOf:
28304
29100
  - minItems: 2
@@ -28374,6 +29170,14 @@ components:
28374
29170
  maximum: 2
28375
29171
  - type: "null"
28376
29172
  - type: "null"
29173
+ topP:
29174
+ anyOf:
29175
+ - anyOf:
29176
+ - type: number
29177
+ minimum: 0
29178
+ maximum: 1
29179
+ - type: "null"
29180
+ - type: "null"
28377
29181
  thinking:
28378
29182
  anyOf:
28379
29183
  - type: object
@@ -28491,6 +29295,7 @@ components:
28491
29295
  - openrouter
28492
29296
  - openai-compatible
28493
29297
  - minimax
29298
+ - atlascloud
28494
29299
  Auth:
28495
29300
  oneOf:
28496
29301
  - type: object
@@ -28596,6 +29401,12 @@ components:
28596
29401
  minimum: 0
28597
29402
  maximum: 2
28598
29403
  - type: "null"
29404
+ topP:
29405
+ anyOf:
29406
+ - type: number
29407
+ minimum: 0
29408
+ maximum: 1
29409
+ - type: "null"
28599
29410
  thinking:
28600
29411
  type: object
28601
29412
  properties:
@@ -28689,6 +29500,8 @@ components:
28689
29500
  type: string
28690
29501
  activeProfile:
28691
29502
  type: string
29503
+ advisorProfile:
29504
+ type: string
28692
29505
  callSites:
28693
29506
  type: object
28694
29507
  propertyNames:
@@ -28732,6 +29545,12 @@ components:
28732
29545
  minimum: 0
28733
29546
  maximum: 2
28734
29547
  - type: "null"
29548
+ topP:
29549
+ anyOf:
29550
+ - type: number
29551
+ minimum: 0
29552
+ maximum: 1
29553
+ - type: "null"
28735
29554
  thinking:
28736
29555
  type: object
28737
29556
  properties:
@@ -28839,6 +29658,14 @@ components:
28839
29658
  provider:
28840
29659
  type: string
28841
29660
  additionalProperties: {}
29661
+ web-fetch:
29662
+ type: object
29663
+ properties:
29664
+ mode:
29665
+ $ref: "#/components/schemas/ServiceMode"
29666
+ provider:
29667
+ type: string
29668
+ additionalProperties: {}
28842
29669
  image-generation:
28843
29670
  type: object
28844
29671
  properties:
@@ -28891,6 +29718,12 @@ components:
28891
29718
  minimum: 0
28892
29719
  maximum: 2
28893
29720
  - type: "null"
29721
+ topP:
29722
+ anyOf:
29723
+ - type: number
29724
+ minimum: 0
29725
+ maximum: 1
29726
+ - type: "null"
28894
29727
  thinking:
28895
29728
  type: object
28896
29729
  properties:
@@ -28988,6 +29821,10 @@ components:
28988
29821
  anyOf:
28989
29822
  - $ref: "#/components/schemas/ProfileStatus"
28990
29823
  - type: "null"
29824
+ advisorEnabled:
29825
+ anyOf:
29826
+ - type: boolean
29827
+ - type: "null"
28991
29828
  mix:
28992
29829
  minItems: 2
28993
29830
  type: array