@vellumai/assistant 0.9.0 → 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 (572) hide show
  1. package/ARCHITECTURE.md +18 -34
  2. package/bun.lock +7 -8
  3. package/docs/activation-funnel-telemetry.md +28 -22
  4. package/docs/architecture/security.md +29 -28
  5. package/docs/stt-provider-onboarding.md +3 -5
  6. package/docs/workflows-testing.md +13 -44
  7. package/docs/workflows.md +3 -5
  8. package/node_modules/@vellumai/ces-client/src/__tests__/ces-client.test.ts +47 -0
  9. package/node_modules/@vellumai/ces-client/src/rpc-client.ts +28 -5
  10. package/node_modules/@vellumai/environments/src/seeds.ts +2 -5
  11. package/node_modules/@vellumai/gateway-client/src/admission-policy-contract.ts +97 -0
  12. package/node_modules/@vellumai/gateway-client/src/inbound-contract.ts +10 -0
  13. package/node_modules/@vellumai/gateway-client/src/index.ts +32 -6
  14. package/node_modules/@vellumai/gateway-client/src/outbound-contract.ts +119 -0
  15. package/node_modules/@vellumai/gateway-client/src/types.ts +15 -84
  16. package/openapi.yaml +976 -63
  17. package/package.json +2 -1
  18. package/scripts/sync-llm-catalog.ts +6 -15
  19. package/scripts/sync-web-search-catalog.ts +3 -11
  20. package/src/__tests__/access-request-card-view.test.ts +98 -0
  21. package/src/__tests__/access-request-seed-content-blocks.test.ts +2 -4
  22. package/src/__tests__/actor-trust-resolver-address-fallback.test.ts +72 -32
  23. package/src/__tests__/agent-loop-compaction-strip.test.ts +241 -0
  24. package/src/__tests__/agent-loop-mutable-latest-user-message.test.ts +16 -13
  25. package/src/__tests__/agent-loop-output-hooks.test.ts +69 -0
  26. package/src/__tests__/agent-loop-override-profile.test.ts +25 -0
  27. package/src/__tests__/always-loaded-tools-guard.test.ts +2 -3
  28. package/src/__tests__/app-compiler.test.ts +15 -1
  29. package/src/__tests__/app-dir-path-guard.test.ts +0 -1
  30. package/src/__tests__/assistant-feature-flag-guard.test.ts +1 -4
  31. package/src/__tests__/assistant-feature-flag-guardrails.test.ts +0 -2
  32. package/src/__tests__/auth-fallback-events-store.test.ts +6 -14
  33. package/src/__tests__/avatar-identity-sync.test.ts +2 -27
  34. package/src/__tests__/btw-routes.test.ts +6 -8
  35. package/src/__tests__/call-pointer-messages.test.ts +28 -0
  36. package/src/__tests__/cancel-clears-processing.test.ts +89 -0
  37. package/src/__tests__/channel-approval-routes.test.ts +0 -4
  38. package/src/__tests__/channel-inbound-disk-pressure.test.ts +5 -15
  39. package/src/__tests__/checker.test.ts +0 -3
  40. package/src/__tests__/cli-memory-v2-reembed-skills.test.ts +3 -4
  41. package/src/__tests__/compactor-image-manifest-trust.test.ts +21 -1
  42. package/src/__tests__/compactor-summary-call-truncation.test.ts +223 -0
  43. package/src/__tests__/config-loader-backfill.test.ts +268 -27
  44. package/src/__tests__/config-schema.test.ts +35 -0
  45. package/src/__tests__/config-watcher.test.ts +0 -18
  46. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +2 -2
  47. package/src/__tests__/contact-store-user-file.test.ts +0 -6
  48. package/src/__tests__/contacts-tools.test.ts +29 -0
  49. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +22 -0
  50. package/src/__tests__/conversation-agent-loop-overflow.test.ts +1 -0
  51. package/src/__tests__/conversation-agent-loop.test.ts +58 -0
  52. package/src/__tests__/conversation-attention-telegram.test.ts +0 -1
  53. package/src/__tests__/conversation-lifecycle.test.ts +7 -9
  54. package/src/__tests__/conversation-load-history-repair.test.ts +101 -0
  55. package/src/__tests__/conversation-routes-guardian-reply.test.ts +15 -12
  56. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +6 -3
  57. package/src/__tests__/conversation-title-service.test.ts +62 -0
  58. package/src/__tests__/credential-broker.test.ts +449 -1
  59. package/src/__tests__/credential-execution-shell-lockdown.test.ts +18 -11
  60. package/src/__tests__/credential-execution-tools.test.ts +0 -1
  61. package/src/__tests__/credential-prompt-route.test.ts +4 -4
  62. package/src/__tests__/credential-routes.test.ts +360 -0
  63. package/src/__tests__/credential-security-invariants.test.ts +4 -13
  64. package/src/__tests__/disk-pressure-policy.test.ts +12 -0
  65. package/src/__tests__/disk-usage.test.ts +65 -0
  66. package/src/__tests__/dynamic-page-surface.test.ts +152 -1
  67. package/src/__tests__/fixtures/credential-security-fixtures.ts +2 -33
  68. package/src/__tests__/gateway-flag-listener.test.ts +110 -1
  69. package/src/__tests__/gateway-only-guard.test.ts +3 -7
  70. package/src/__tests__/guardian-binding-drift-heal.test.ts +1 -1
  71. package/src/__tests__/guardian-card-withdrawal.test.ts +403 -0
  72. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +5 -3
  73. package/src/__tests__/guardian-grant-minting.test.ts +3 -35
  74. package/src/__tests__/guardian-routing-invariants.test.ts +64 -26
  75. package/src/__tests__/guardian-routing-state.test.ts +0 -1
  76. package/src/__tests__/headless-browser-mode.test.ts +10 -0
  77. package/src/__tests__/headless-browser-navigate.test.ts +8 -3
  78. package/src/__tests__/helpers/create-guardian-binding.ts +0 -1
  79. package/src/__tests__/host-browser-proxy.test.ts +87 -0
  80. package/src/__tests__/identity-routes.test.ts +0 -189
  81. package/src/__tests__/inbound-invite-redemption.test.ts +4 -4
  82. package/src/__tests__/injector-v3-suppression.test.ts +27 -20
  83. package/src/__tests__/internal-telemetry-routes.test.ts +6 -14
  84. package/src/__tests__/invite-redemption-service.test.ts +4 -7
  85. package/src/__tests__/llm-callsite-catalog.test.ts +5 -6
  86. package/src/__tests__/llm-catalog-parity.test.ts +30 -23
  87. package/src/__tests__/llm-resolver.test.ts +70 -24
  88. package/src/__tests__/llm-schema.test.ts +1 -0
  89. package/src/__tests__/managed-profile-guard.test.ts +163 -4
  90. package/src/__tests__/mcp-health-check.test.ts +6 -7
  91. package/src/__tests__/media-stream-server-integration.test.ts +317 -13
  92. package/src/__tests__/oauth-provider-seed-logos.test.ts +4 -6
  93. package/src/__tests__/onboarding-persona-write.test.ts +1 -1
  94. package/src/__tests__/path-policy.test.ts +34 -0
  95. package/src/__tests__/persona-resolver.test.ts +49 -14
  96. package/src/__tests__/plugin-api-model-profiles.test.ts +178 -0
  97. package/src/__tests__/plugin-api-provider.test.ts +24 -0
  98. package/src/__tests__/plugin-tool-contribution.test.ts +6 -3
  99. package/src/__tests__/post-compaction-reinjection-idempotency.test.ts +214 -0
  100. package/src/__tests__/provider-send-message-override-profile.test.ts +76 -0
  101. package/src/__tests__/reaction-persistence.test.ts +150 -29
  102. package/src/__tests__/registry.test.ts +2 -7
  103. package/src/__tests__/relay-server.test.ts +285 -0
  104. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -1
  105. package/src/__tests__/schedule-routes-workflow-validation.test.ts +1 -10
  106. package/src/__tests__/schedule-routes.test.ts +0 -30
  107. package/src/__tests__/schedule-tools.test.ts +2 -18
  108. package/src/__tests__/scheduler-reuse-conversation.test.ts +8 -5
  109. package/src/__tests__/skill-execute-input.test.ts +51 -1
  110. package/src/__tests__/skill-runtime-path.test.ts +2 -3
  111. package/src/__tests__/skills.test.ts +51 -0
  112. package/src/__tests__/slack-notification-approval-card.test.ts +176 -0
  113. package/src/__tests__/slack-reaction-canonical-approval.test.ts +285 -0
  114. package/src/__tests__/subagent-tools.test.ts +266 -0
  115. package/src/__tests__/surface-completion-nudge-hook.test.ts +367 -0
  116. package/src/__tests__/task-progress-nudge-hook.test.ts +1 -1
  117. package/src/__tests__/title-generate-hook.test.ts +100 -3
  118. package/src/__tests__/token-estimator-accuracy.benchmark.test.ts +1 -29
  119. package/src/__tests__/token-manager.test.ts +519 -0
  120. package/src/__tests__/tool-approval-seed-content-blocks.test.ts +1 -1
  121. package/src/__tests__/tool-audit-listener.test.ts +7 -7
  122. package/src/__tests__/tool-executor-lifecycle-events.test.ts +6 -3
  123. package/src/__tests__/tool-executor.test.ts +0 -79
  124. package/src/__tests__/trusted-contact-approval-notifier.test.ts +4 -2
  125. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +220 -3
  126. package/src/__tests__/trusted-contact-multichannel.test.ts +3 -3
  127. package/src/__tests__/trusted-contact-verification.test.ts +8 -10
  128. package/src/__tests__/twilio-routes.test.ts +81 -1
  129. package/src/__tests__/voice-invite-redemption.test.ts +2 -3
  130. package/src/__tests__/weak-open-model.test.ts +30 -0
  131. package/src/__tests__/web-search-catalog-parity.test.ts +6 -25
  132. package/src/__tests__/workspace-greetings.test.ts +152 -0
  133. package/src/__tests__/workspace-migration-105-enable-memory-v3-live-for-new-workspaces.test.ts +149 -0
  134. package/src/__tests__/workspace-migration-108-drop-balanced-economy-profile.test.ts +285 -0
  135. package/src/__tests__/workspace-migration-add-send-diagnostics.test.ts +1 -1
  136. package/src/__tests__/workspace-migration-drop-collect-usage-data.test.ts +118 -0
  137. package/src/__tests__/workspace-migration-drop-send-diagnostics.test.ts +118 -0
  138. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +0 -4
  139. package/src/agent/loop.ts +49 -29
  140. package/src/api/README.md +6 -6
  141. package/src/api/events/tool-result.ts +6 -0
  142. package/src/api/events/workflow-completed.ts +53 -0
  143. package/src/api/events/workflow-leaf-finished.ts +38 -0
  144. package/src/api/events/workflow-leaf-started.ts +35 -0
  145. package/src/api/events/workflow-progress.ts +32 -0
  146. package/src/api/events/workflow-started.ts +31 -0
  147. package/src/api/index.ts +40 -0
  148. package/src/api/responses/conversation-message.ts +28 -4
  149. package/src/api/responses/home.ts +26 -4
  150. package/src/api/responses/workflow-journal.ts +53 -0
  151. package/src/approvals/guardian-card-withdrawal.ts +145 -0
  152. package/src/approvals/guardian-decision-primitive.ts +26 -3
  153. package/src/approvals/guardian-request-resolvers.ts +183 -80
  154. package/src/calls/__tests__/channel-admission-reader.test.ts +132 -0
  155. package/src/calls/__tests__/relay-setup-router.test.ts +350 -0
  156. package/src/calls/call-pointer-messages.ts +10 -4
  157. package/src/calls/channel-admission-reader.ts +104 -0
  158. package/src/calls/guardian-dispatch.ts +17 -45
  159. package/src/calls/media-stream-server.ts +84 -2
  160. package/src/calls/relay-access-wait.ts +1 -1
  161. package/src/calls/relay-server.ts +66 -0
  162. package/src/calls/relay-setup-router.ts +82 -1
  163. package/src/calls/twilio-routes.ts +17 -8
  164. package/src/calls/voice-session-bridge.ts +2 -2
  165. package/src/cli/commands/clients.ts +3 -0
  166. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v2-compare-render.test.ts +1 -1
  167. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v2.test.ts +8 -7
  168. package/src/cli/commands/{__tests__ → memory/__tests__}/memory-v3.test.ts +5 -4
  169. package/src/cli/commands/memory/index.ts +30 -0
  170. package/src/cli/commands/{memory-v2-compare-render.ts → memory/memory-v2-compare-render.ts} +1 -1
  171. package/src/cli/commands/{memory-v2.ts → memory/memory-v2.ts} +6 -15
  172. package/src/cli/commands/{memory-v3.ts → memory/memory-v3.ts} +97 -11
  173. package/src/cli/commands/oauth/status.test.ts +36 -0
  174. package/src/cli/commands/oauth/status.ts +23 -3
  175. package/src/cli/commands/plugins.ts +197 -4
  176. package/src/cli/lib/__tests__/diff-plugin.test.ts +443 -0
  177. package/src/cli/lib/__tests__/inspect-plugin.test.ts +54 -0
  178. package/src/cli/lib/__tests__/merge-plugin-tree.test.ts +443 -0
  179. package/src/cli/lib/__tests__/plugin-surfaces.test.ts +111 -0
  180. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +295 -2
  181. package/src/cli/lib/diff-plugin.ts +346 -0
  182. package/src/cli/lib/inspect-plugin.ts +12 -1
  183. package/src/cli/lib/install-from-github.ts +105 -17
  184. package/src/cli/lib/merge-plugin-tree.ts +328 -0
  185. package/src/cli/lib/plugin-fingerprint.ts +14 -0
  186. package/src/cli/lib/plugin-surfaces.ts +104 -0
  187. package/src/cli/lib/upgrade-plugin.ts +298 -10
  188. package/src/cli/program.ts +2 -6
  189. package/src/config/__tests__/sync-gated-profiles.test.ts +368 -0
  190. package/src/config/assistant-feature-flags.ts +22 -7
  191. package/src/config/bundled-skills/contacts/tools/contact-search.ts +0 -1
  192. package/src/config/bundled-skills/messaging/SKILL.md +6 -4
  193. package/src/config/bundled-skills/messaging/tools/messaging-archive-by-sender.ts +9 -8
  194. package/src/config/bundled-skills/subagent/SKILL.md +4 -0
  195. package/src/config/bundled-skills/subagent/TOOLS.json +4 -0
  196. package/src/config/bundled-skills/workflows/SKILL.md +14 -8
  197. package/src/config/bundled-tool-registry.ts +2 -7
  198. package/src/config/call-site-defaults.ts +15 -2
  199. package/src/config/feature-flag-registry.json +46 -31
  200. package/src/config/inference-profile-validation.ts +26 -0
  201. package/src/config/llm-resolver.ts +3 -0
  202. package/src/config/loader.ts +4 -0
  203. package/src/config/memory-v3-gate.ts +11 -0
  204. package/src/config/profile-order.ts +28 -0
  205. package/src/config/schema.ts +8 -6
  206. package/src/config/schemas/__tests__/memory-v3.test.ts +1 -0
  207. package/src/config/schemas/call-site-catalog.ts +7 -0
  208. package/src/config/schemas/channels.ts +11 -0
  209. package/src/config/schemas/elevenlabs.ts +0 -1
  210. package/src/config/schemas/llm.ts +31 -0
  211. package/src/config/schemas/memory-lifecycle.ts +3 -7
  212. package/src/config/schemas/memory-v3.ts +6 -0
  213. package/src/config/schemas/platform.ts +0 -8
  214. package/src/config/schemas/services.ts +18 -0
  215. package/src/config/seed-inference-profiles.ts +109 -44
  216. package/src/config/skills.ts +21 -0
  217. package/src/config/sync-gated-profiles.ts +220 -0
  218. package/src/contacts/contact-store.ts +89 -106
  219. package/src/contacts/contacts-write.ts +5 -22
  220. package/src/contacts/types.ts +0 -1
  221. package/src/context/compactor.ts +88 -54
  222. package/src/context/strip-injections.ts +58 -10
  223. package/src/context/token-estimator.ts +1 -1
  224. package/src/credential-execution/process-manager.ts +55 -14
  225. package/src/credential-execution/prompted-credential.ts +2 -3
  226. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +3 -2
  227. package/src/daemon/config-watcher.ts +0 -4
  228. package/src/daemon/conversation-agent-loop-handlers.ts +2 -0
  229. package/src/daemon/conversation-agent-loop.ts +114 -22
  230. package/src/daemon/conversation-history.ts +1 -1
  231. package/src/daemon/conversation-lifecycle.ts +3 -5
  232. package/src/daemon/conversation-process.ts +13 -5
  233. package/src/daemon/conversation-runtime-assembly.ts +13 -15
  234. package/src/daemon/conversation-slash.ts +2 -23
  235. package/src/daemon/conversation-surfaces.ts +26 -0
  236. package/src/daemon/conversation-tool-setup.ts +27 -14
  237. package/src/daemon/conversation.ts +66 -14
  238. package/src/daemon/disk-pressure-policy.ts +5 -3
  239. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +0 -1
  240. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +0 -1
  241. package/src/daemon/handlers/config-a2a.ts +0 -2
  242. package/src/daemon/handlers/config-channels.ts +15 -16
  243. package/src/daemon/handlers/config-slack-channel.ts +22 -3
  244. package/src/daemon/handlers/conversations.ts +107 -0
  245. package/src/daemon/host-browser-proxy.ts +41 -0
  246. package/src/daemon/lifecycle.ts +55 -27
  247. package/src/daemon/message-provenance.ts +2 -0
  248. package/src/daemon/message-types/contacts.ts +0 -1
  249. package/src/daemon/message-types/conversations.ts +3 -3
  250. package/src/daemon/message-types/sync.ts +0 -1
  251. package/src/daemon/message-types/web-activity.ts +7 -1
  252. package/src/daemon/message-types/workflows.ts +83 -1
  253. package/src/daemon/orphan-reaper.test.ts +0 -19
  254. package/src/daemon/orphan-reaper.ts +2 -24
  255. package/src/daemon/server.ts +0 -10
  256. package/src/daemon/tool-setup-types.ts +4 -0
  257. package/src/daemon/trust-context.ts +1 -1
  258. package/src/events/tool-audit-listener.ts +2 -2
  259. package/src/home/feed-source-enrichment.test.ts +151 -0
  260. package/src/home/feed-source-enrichment.ts +176 -0
  261. package/src/home/relationship-state.ts +2 -4
  262. package/src/instrument.ts +18 -6
  263. package/src/ipc/__tests__/binary-result-ipc.test.ts +81 -0
  264. package/src/ipc/__tests__/clients-list-ipc.test.ts +20 -0
  265. package/src/ipc/assistant-server.ts +37 -4
  266. package/src/ipc/gateway-flag-listener.ts +18 -2
  267. package/src/memory/__tests__/auto-analysis-enqueue.test.ts +5 -16
  268. package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +7 -11
  269. package/src/memory/__tests__/memory-retrospective-enqueue.test.ts +37 -7
  270. package/src/memory/__tests__/memory-retrospective-job.test.ts +229 -401
  271. package/src/memory/__tests__/onboarding-events-store.test.ts +7 -7
  272. package/src/memory/auth-fallback-events-store.ts +2 -2
  273. package/src/memory/auto-analysis-enqueue.ts +3 -5
  274. package/src/memory/bookmark-crud.ts +1 -2
  275. package/src/memory/canonical-guardian-store.ts +39 -1
  276. package/src/memory/conversation-crud.ts +9 -4
  277. package/src/memory/conversation-key-store.ts +17 -2
  278. package/src/memory/conversation-title-service.ts +64 -7
  279. package/src/memory/db-init.ts +17 -17
  280. package/src/memory/embedding-backend.ts +38 -1
  281. package/src/memory/embedding-billing-breaker.ts +96 -0
  282. package/src/memory/jobs-store.ts +25 -13
  283. package/src/memory/jobs-worker.ts +54 -1
  284. package/src/memory/lifecycle-events-store.ts +2 -2
  285. package/src/memory/memory-retrospective-constants.ts +4 -4
  286. package/src/memory/memory-retrospective-enqueue.ts +31 -6
  287. package/src/memory/memory-retrospective-job.ts +28 -227
  288. package/src/memory/migrations/129-contact-channels-access-fields.ts +18 -9
  289. package/src/memory/migrations/131-drop-legacy-member-guardian-tables.ts +14 -2
  290. package/src/memory/migrations/289-contact-channels-unique-ext-user.ts +10 -0
  291. package/src/memory/migrations/291-contact-channels-renormalize-addresses.ts +72 -0
  292. package/src/memory/migrations/292-schedule-default-no-reuse-conversation.test.ts +67 -0
  293. package/src/memory/migrations/292-schedule-default-no-reuse-conversation.ts +25 -0
  294. package/src/memory/migrations/293-workflow-journal-leaf-tokens.ts +32 -0
  295. package/src/memory/migrations/294-drop-external-user-id.ts +31 -0
  296. package/src/memory/migrations/295-drop-approval-prompt-ts-tracker.ts +20 -0
  297. package/src/memory/migrations/296-rewrite-balanced-economy-profile-pins.test.ts +110 -0
  298. package/src/memory/migrations/296-rewrite-balanced-economy-profile-pins.ts +68 -0
  299. package/src/memory/migrations/__tests__/131-drop-legacy-member-guardian-tables.test.ts +154 -0
  300. package/src/memory/migrations/__tests__/289-contact-channels-unique-ext-user.test.ts +31 -0
  301. package/src/memory/migrations/__tests__/291-contact-channels-renormalize-addresses.test.ts +341 -0
  302. package/src/memory/migrations/__tests__/run-migrations.test.ts +52 -0
  303. package/src/memory/migrations/index.ts +6 -0
  304. package/src/memory/migrations/run-migrations.ts +41 -0
  305. package/src/memory/migrations/validate-migration-state.ts +1 -1
  306. package/src/memory/onboarding-events-store.ts +3 -3
  307. package/src/memory/schema/contacts.ts +0 -5
  308. package/src/memory/skill-loaded-events-store.test.ts +7 -15
  309. package/src/memory/skill-loaded-events-store.ts +2 -2
  310. package/src/memory/tool-executed-events-store.test.ts +7 -7
  311. package/src/memory/turn-trace-store.test.ts +736 -0
  312. package/src/memory/turn-trace-store.ts +364 -0
  313. package/src/memory/v2/__tests__/consolidation-job.test.ts +8 -0
  314. package/src/memory/v2/__tests__/skill-content.test.ts +30 -0
  315. package/src/memory/v2/consolidation-job.ts +2 -2
  316. package/src/memory/v2/skill-content.ts +25 -7
  317. package/src/memory/v2/skill-store.ts +7 -1
  318. package/src/memory/v3-eval/__tests__/eval-packets.test.ts +248 -0
  319. package/src/memory/v3-eval/eval-packets.ts +546 -0
  320. package/src/messaging/providers/slack/adapter.ts +1 -1
  321. package/src/messaging/providers/slack/api.ts +31 -0
  322. package/src/messaging/providers/slack/send.test.ts +114 -2
  323. package/src/messaging/providers/slack/send.ts +30 -7
  324. package/src/messaging/providers/slack/withdraw.test.ts +200 -0
  325. package/src/messaging/providers/slack/withdraw.ts +161 -0
  326. package/src/notifications/AGENTS.md +2 -0
  327. package/src/notifications/access-request-copy.ts +72 -59
  328. package/src/notifications/adapters/shared.ts +29 -0
  329. package/src/notifications/adapters/slack.ts +58 -103
  330. package/src/notifications/adapters/telegram.ts +2 -20
  331. package/src/notifications/approval-card-data.ts +333 -0
  332. package/src/notifications/broadcaster.ts +16 -3
  333. package/src/notifications/canonical-delivery-recorder.ts +139 -0
  334. package/src/notifications/copy-composer.ts +3 -3
  335. package/src/notifications/decision-engine.ts +4 -2
  336. package/src/notifications/destination-resolver.ts +4 -6
  337. package/src/notifications/guardian-question-mode.ts +10 -0
  338. package/src/notifications/home-feed-side-effect.ts +7 -16
  339. package/src/notifications/notification-utils.ts +19 -20
  340. package/src/notifications/signal.ts +79 -43
  341. package/src/notifications/types.ts +98 -121
  342. package/src/oauth/AGENTS.md +5 -24
  343. package/src/permissions/checker.test.ts +51 -0
  344. package/src/permissions/checker.ts +185 -26
  345. package/src/permissions/ipc-risk-types.ts +24 -0
  346. package/src/permissions/question-prompter.test.ts +27 -0
  347. package/src/permissions/question-prompter.ts +4 -0
  348. package/src/platform/client.test.ts +119 -0
  349. package/src/platform/client.ts +66 -0
  350. package/src/platform/consent-cache.test.ts +267 -0
  351. package/src/platform/consent-cache.ts +174 -0
  352. package/src/plugin-api/constants.ts +1 -1
  353. package/src/plugin-api/index.ts +33 -1
  354. package/src/plugin-api/model-profiles.ts +33 -0
  355. package/src/plugin-api/types.ts +50 -2
  356. package/src/plugins/defaults/advisor/__tests__/advisor-gate.test.ts +56 -0
  357. package/src/plugins/defaults/advisor/__tests__/advisor-state-store.test.ts +43 -0
  358. package/src/plugins/defaults/advisor/__tests__/agent-loop-integration.test.ts +137 -0
  359. package/src/plugins/defaults/advisor/__tests__/consult.test.ts +153 -0
  360. package/src/plugins/defaults/advisor/__tests__/hooks.test.ts +138 -0
  361. package/src/plugins/defaults/advisor/__tests__/transcript.test.ts +147 -0
  362. package/src/plugins/defaults/advisor/advisor-gate.ts +29 -0
  363. package/src/plugins/defaults/advisor/advisor-state-store.ts +94 -0
  364. package/src/plugins/defaults/advisor/config.ts +21 -0
  365. package/src/plugins/defaults/advisor/consult.ts +93 -0
  366. package/src/plugins/defaults/advisor/hooks/post-model-call.ts +34 -0
  367. package/src/plugins/defaults/advisor/hooks/pre-model-call.ts +30 -0
  368. package/src/plugins/defaults/advisor/hooks/user-prompt-submit.ts +19 -0
  369. package/src/plugins/defaults/advisor/package.json +14 -0
  370. package/src/plugins/defaults/advisor/steering.ts +67 -0
  371. package/src/plugins/defaults/advisor/tools/advisor.ts +65 -0
  372. package/src/plugins/defaults/advisor/transcript.ts +76 -0
  373. package/src/plugins/defaults/index.ts +60 -0
  374. package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +22 -9
  375. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit.ts +2 -2
  376. package/src/plugins/defaults/memory-retrieval/tail-reinjection-strip.ts +64 -0
  377. package/src/plugins/defaults/memory-retrieval/unified-turn-context.ts +29 -21
  378. package/src/plugins/defaults/memory-v3-shadow/__tests__/carry-integration.test.ts +1 -0
  379. package/src/plugins/defaults/memory-v3-shadow/__tests__/injection.test.ts +1 -0
  380. package/src/plugins/defaults/memory-v3-shadow/__tests__/maintain-job.test.ts +129 -9
  381. package/src/plugins/defaults/memory-v3-shadow/__tests__/orchestrate.test.ts +31 -4
  382. package/src/plugins/defaults/memory-v3-shadow/__tests__/selection-log-store.test.ts +77 -2
  383. package/src/plugins/defaults/memory-v3-shadow/__tests__/shadow-plugin.test.ts +1 -0
  384. package/src/plugins/defaults/memory-v3-shadow/injector.ts +7 -10
  385. package/src/plugins/defaults/memory-v3-shadow/maintain-job.ts +144 -11
  386. package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +32 -20
  387. package/src/plugins/defaults/memory-v3-shadow/selection-log-store.ts +56 -3
  388. package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +23 -2
  389. package/src/plugins/defaults/surface-completion-nudge/hooks/post-model-call.ts +276 -0
  390. package/src/plugins/defaults/surface-completion-nudge/hooks/stop.ts +22 -0
  391. package/src/plugins/defaults/surface-completion-nudge/nudge-state-store.ts +46 -0
  392. package/src/plugins/defaults/surface-completion-nudge/package.json +14 -0
  393. package/src/plugins/defaults/task-progress-nudge/hooks/post-tool-use.ts +3 -13
  394. package/src/plugins/defaults/title-generate/hooks/stop.ts +56 -21
  395. package/src/prompts/persona-resolver.ts +14 -4
  396. package/src/prompts/templates/system-sections.ts +7 -2
  397. package/src/providers/__tests__/provider-env-vars.test.ts +6 -0
  398. package/src/providers/__tests__/provider-secret-catalog.test.ts +1 -0
  399. package/src/providers/__tests__/retry-callsite.test.ts +176 -0
  400. package/src/providers/atlascloud/client.ts +85 -0
  401. package/src/providers/fetch-provider-catalog.ts +85 -0
  402. package/src/providers/inference/adapter-factory.ts +3 -0
  403. package/src/providers/model-catalog.ts +58 -0
  404. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +33 -0
  405. package/src/providers/openai/chat-completions-provider.ts +7 -0
  406. package/src/providers/openai/responses-provider.ts +10 -0
  407. package/src/providers/provider-send-message.ts +11 -3
  408. package/src/providers/retry.ts +53 -12
  409. package/src/providers/search-provider-catalog.ts +10 -0
  410. package/src/providers/weak-open-model.ts +22 -0
  411. package/src/runtime/AGENTS.md +0 -1
  412. package/src/runtime/__tests__/agent-wake.test.ts +181 -0
  413. package/src/runtime/__tests__/client-health.test.ts +44 -0
  414. package/src/runtime/access-request-helper.ts +21 -53
  415. package/src/runtime/actor-trust-resolver.ts +59 -63
  416. package/src/runtime/agent-wake.ts +52 -0
  417. package/src/runtime/assistant-event-hub.ts +18 -4
  418. package/src/runtime/auth/__tests__/route-policy.test.ts +12 -0
  419. package/src/runtime/auth/require-bound-guardian.ts +1 -4
  420. package/src/runtime/btw-sidechain.ts +3 -6
  421. package/src/runtime/capabilities.test.ts +120 -0
  422. package/src/runtime/capabilities.ts +197 -0
  423. package/src/runtime/channel-approval-types.ts +22 -45
  424. package/src/runtime/channel-invite-transports/telegram.ts +4 -4
  425. package/src/runtime/channel-retry-sweep.ts +1 -0
  426. package/src/runtime/channel-verification-service.ts +3 -3
  427. package/src/runtime/client-health.ts +26 -0
  428. package/src/runtime/confirmation-request-guardian-bridge.ts +38 -29
  429. package/src/runtime/effective-capabilities.test.ts +128 -0
  430. package/src/runtime/effective-capabilities.ts +84 -0
  431. package/src/runtime/guardian-reply-router.ts +106 -21
  432. package/src/runtime/invite-redemption-service.ts +9 -25
  433. package/src/runtime/migrations/__tests__/vbundle-builder-fd-leak.test.ts +123 -0
  434. package/src/runtime/migrations/vbundle-builder.ts +49 -20
  435. package/src/runtime/pending-interactions.ts +15 -0
  436. package/src/runtime/routes/__tests__/client-routes.test.ts +13 -0
  437. package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +67 -0
  438. package/src/runtime/routes/__tests__/plugins-routes.test.ts +240 -1
  439. package/src/runtime/routes/app-routes.ts +1 -1
  440. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +2 -2
  441. package/src/runtime/routes/assets/vellum-design-system.css +1959 -0
  442. package/src/runtime/routes/browser-tabs-routes.ts +9 -0
  443. package/src/runtime/routes/btw-routes.ts +1 -27
  444. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +17 -8
  445. package/src/runtime/routes/client-routes.ts +10 -0
  446. package/src/runtime/routes/contact-routes.ts +31 -8
  447. package/src/runtime/routes/conversation-compaction-routes.ts +1 -1
  448. package/src/runtime/routes/conversation-management-routes.ts +80 -1
  449. package/src/runtime/routes/conversation-query-routes.ts +68 -22
  450. package/src/runtime/routes/conversation-routes.ts +39 -14
  451. package/src/runtime/routes/credential-routes.ts +40 -16
  452. package/src/runtime/routes/empty-state-greeting-cache.ts +1 -2
  453. package/src/runtime/routes/events-routes.ts +1 -3
  454. package/src/runtime/routes/guardian-approval-interception.ts +14 -73
  455. package/src/runtime/routes/guardian-approval-prompt.ts +22 -4
  456. package/src/runtime/routes/home-feed-routes.ts +8 -3
  457. package/src/runtime/routes/identity-routes.ts +1 -296
  458. package/src/runtime/routes/inbound-message-handler.ts +214 -228
  459. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +89 -7
  460. package/src/runtime/routes/inbound-stages/admission-policy.test.ts +154 -0
  461. package/src/runtime/routes/inbound-stages/admission-policy.ts +140 -0
  462. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +3 -3
  463. package/src/runtime/routes/inbound-stages/background-dispatch.ts +11 -6
  464. package/src/runtime/routes/inbound-stages/escalation-intercept.ts +1 -2
  465. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +1 -2
  466. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +7 -7
  467. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.ts +47 -28
  468. package/src/runtime/routes/inbound-stages/reaction-intercept.ts +358 -0
  469. package/src/runtime/routes/index.ts +2 -0
  470. package/src/runtime/routes/integrations/slack/__tests__/channel.test.ts +8 -0
  471. package/src/runtime/routes/integrations/slack/channel.ts +36 -0
  472. package/src/runtime/routes/internal-telemetry-routes.ts +1 -1
  473. package/src/runtime/routes/mcp-auth-routes.ts +233 -41
  474. package/src/runtime/routes/memory-eval-routes.ts +87 -0
  475. package/src/runtime/routes/notification-routes.ts +122 -133
  476. package/src/runtime/routes/platform-routes.ts +2 -2
  477. package/src/runtime/routes/plugins-routes.ts +202 -3
  478. package/src/runtime/routes/schedule-routes.ts +0 -22
  479. package/src/runtime/routes/secret-routes.ts +10 -0
  480. package/src/runtime/routes/surface-action-routes.ts +2 -1
  481. package/src/runtime/routes/tool-call-question-enrichment.test.ts +146 -0
  482. package/src/runtime/routes/tool-call-question-enrichment.ts +66 -0
  483. package/src/runtime/routes/workflow-routes.test.ts +229 -44
  484. package/src/runtime/routes/workflow-routes.ts +131 -29
  485. package/src/runtime/routes/workspace-greetings.ts +55 -0
  486. package/src/runtime/sync/resource-sync-events.ts +1 -11
  487. package/src/runtime/tool-grant-request-helper.ts +18 -16
  488. package/src/runtime/trust-context-resolver.ts +8 -5
  489. package/src/schedule/inference-profile.ts +2 -14
  490. package/src/schedule/schedule-store.ts +1 -1
  491. package/src/schedule/scheduler-types.ts +5 -1
  492. package/src/security/__tests__/provider-key-env-fallback.test.ts +6 -0
  493. package/src/security/secret-patterns.ts +3 -0
  494. package/src/subagent/manager.ts +17 -4
  495. package/src/subagent/types.ts +6 -0
  496. package/src/telemetry/trace-collection-policy.test.ts +28 -0
  497. package/src/telemetry/trace-collection-policy.ts +30 -0
  498. package/src/telemetry/types.ts +89 -0
  499. package/src/telemetry/usage-telemetry-reporter.test.ts +586 -36
  500. package/src/telemetry/usage-telemetry-reporter.ts +148 -41
  501. package/src/tools/AGENTS.md +3 -3
  502. package/src/tools/browser/__tests__/browser-execution-acquire.test.ts +31 -0
  503. package/src/tools/browser/browser-execution.ts +30 -19
  504. package/src/tools/document/document-tool.ts +2 -3
  505. package/src/tools/executor.ts +5 -3
  506. package/src/tools/host-terminal/host-shell.ts +5 -4
  507. package/src/tools/memory/register.ts +2 -2
  508. package/src/tools/network/__tests__/web-fetch-firecrawl.test.ts +360 -0
  509. package/src/tools/network/__tests__/web-search.test.ts +143 -0
  510. package/src/tools/network/web-fetch.ts +372 -1
  511. package/src/tools/network/web-search-error.ts +1 -1
  512. package/src/tools/network/web-search.ts +213 -10
  513. package/src/tools/permission-checker.ts +4 -3
  514. package/src/tools/registry.ts +20 -0
  515. package/src/tools/schedule/create.ts +7 -12
  516. package/src/tools/schedule/update.ts +4 -11
  517. package/src/tools/shared/filesystem/path-policy.ts +39 -13
  518. package/src/tools/side-effects.ts +2 -17
  519. package/src/tools/skills/execute.ts +33 -0
  520. package/src/tools/subagent/spawn.ts +61 -12
  521. package/src/tools/terminal/shell.ts +10 -4
  522. package/src/tools/tool-approval-handler.ts +18 -13
  523. package/src/tools/tool-manifest.ts +0 -2
  524. package/src/tools/types.ts +9 -0
  525. package/src/tools/ui-surface/definitions.ts +64 -3
  526. package/src/tools/verification-control-plane-policy.ts +3 -1
  527. package/src/tools/workflows/run-workflow.test.ts +8 -18
  528. package/src/tools/workflows/run-workflow.ts +1 -0
  529. package/src/util/disk-usage.ts +78 -23
  530. package/src/util/platform.ts +10 -3
  531. package/src/watcher/telemetry.ts +2 -2
  532. package/src/workflows/capabilities.ts +2 -3
  533. package/src/workflows/engine.test.ts +175 -1
  534. package/src/workflows/engine.ts +82 -0
  535. package/src/workflows/journal-store.test.ts +70 -0
  536. package/src/workflows/journal-store.ts +18 -3
  537. package/src/workflows/run-manager.test.ts +171 -28
  538. package/src/workflows/run-manager.ts +66 -24
  539. package/src/workspace/migrations/105-enable-memory-v3-live-for-new-workspaces.ts +63 -0
  540. package/src/workspace/migrations/106-drop-collect-usage-data.ts +47 -0
  541. package/src/workspace/migrations/107-drop-send-diagnostics.ts +47 -0
  542. package/src/workspace/migrations/108-drop-balanced-economy-profile.ts +129 -0
  543. package/src/workspace/migrations/registry.ts +8 -0
  544. package/src/__tests__/app-control-no-global-cgevent.test.ts +0 -98
  545. package/src/__tests__/credential-security-e2e.test.ts +0 -362
  546. package/src/__tests__/credential-vault-unit.test.ts +0 -1528
  547. package/src/__tests__/credential-vault.test.ts +0 -1706
  548. package/src/__tests__/identity-intro-cache.test.ts +0 -315
  549. package/src/__tests__/secret-onetime-send.test.ts +0 -182
  550. package/src/cli/commands/__tests__/task.test.ts +0 -914
  551. package/src/cli/commands/task.ts +0 -771
  552. package/src/config/bundled-skills/personal-page/SKILL.md +0 -57
  553. package/src/config/bundled-skills/personal-page/TOOLS.json +0 -27
  554. package/src/config/bundled-skills/personal-page/tools/app-refresh.ts +0 -17
  555. package/src/config/preloaded-apps/personal-page/src/components/About.tsx +0 -22
  556. package/src/config/preloaded-apps/personal-page/src/components/App.tsx +0 -16
  557. package/src/config/preloaded-apps/personal-page/src/components/Features.tsx +0 -77
  558. package/src/config/preloaded-apps/personal-page/src/components/Hero.tsx +0 -57
  559. package/src/config/preloaded-apps/personal-page/src/components/Pending.tsx +0 -28
  560. package/src/config/preloaded-apps/personal-page/src/components/animations.tsx +0 -234
  561. package/src/config/preloaded-apps/personal-page/src/components/icons.tsx +0 -48
  562. package/src/config/preloaded-apps/personal-page/src/components/media.ts +0 -16
  563. package/src/config/preloaded-apps/personal-page/src/index.html +0 -20
  564. package/src/config/preloaded-apps/personal-page/src/main.tsx +0 -7
  565. package/src/config/preloaded-apps/personal-page/src/profile-data.ts +0 -82
  566. package/src/config/preloaded-apps/personal-page/src/styles.css +0 -759
  567. package/src/memory/__tests__/preloaded-apps.test.ts +0 -85
  568. package/src/memory/preloaded-apps.ts +0 -116
  569. package/src/notifications/tool-approval-copy.ts +0 -142
  570. package/src/runtime/routes/approval-prompt-ts-tracker.ts +0 -78
  571. package/src/runtime/routes/identity-intro-cache.ts +0 -172
  572. package/src/tools/credentials/vault.ts +0 -712
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:
@@ -13030,60 +13148,6 @@ paths:
13030
13148
  - home
13031
13149
  - version
13032
13150
  additionalProperties: false
13033
- /v1/identity/intro:
13034
- get:
13035
- operationId: identity_intro_get
13036
- summary: Get identity greetings
13037
- description:
13038
- Returns greetings sourced from SOUL.md, the generated cache, or generic fallbacks while background
13039
- generation refreshes the cache.
13040
- tags:
13041
- - identity
13042
- parameters:
13043
- - name: localHour
13044
- in: query
13045
- required: false
13046
- schema:
13047
- type: integer
13048
- minimum: 0
13049
- maximum: 23
13050
- description: Optional client-local hour of day used only when refreshing generated greetings.
13051
- - name: localMinute
13052
- in: query
13053
- required: false
13054
- schema:
13055
- type: integer
13056
- minimum: 0
13057
- maximum: 59
13058
- description: Optional client-local minute used only when refreshing generated greetings.
13059
- responses:
13060
- "200":
13061
- description: Successful response
13062
- content:
13063
- application/json:
13064
- schema:
13065
- type: object
13066
- properties:
13067
- greetings:
13068
- type: array
13069
- items:
13070
- type: string
13071
- text:
13072
- type: string
13073
- source:
13074
- type: string
13075
- enum:
13076
- - workspace
13077
- - cache
13078
- - fallback
13079
- refreshing:
13080
- type: boolean
13081
- required:
13082
- - greetings
13083
- - text
13084
- - source
13085
- - refreshing
13086
- additionalProperties: false
13087
13151
  /v1/image-generation/generate:
13088
13152
  post:
13089
13153
  operationId: imagegeneration_generate_post
@@ -13230,7 +13294,7 @@ paths:
13230
13294
  type: string
13231
13295
  description:
13232
13296
  "Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, openrouter, openai-compatible,
13233
- minimax"
13297
+ minimax, atlascloud"
13234
13298
  responses:
13235
13299
  "200":
13236
13300
  description: Successful response
@@ -13781,6 +13845,11 @@ paths:
13781
13845
  type: string
13782
13846
  botUsername:
13783
13847
  type: string
13848
+ threadMode:
13849
+ type: string
13850
+ enum:
13851
+ - mention_only
13852
+ - mention_then_thread
13784
13853
  error:
13785
13854
  type: string
13786
13855
  warning:
@@ -13791,6 +13860,7 @@ paths:
13791
13860
  - hasAppToken
13792
13861
  - hasUserToken
13793
13862
  - connected
13863
+ - threadMode
13794
13864
  additionalProperties: false
13795
13865
  get:
13796
13866
  operationId: integrations_slack_channel_config_get
@@ -13826,6 +13896,11 @@ paths:
13826
13896
  type: string
13827
13897
  botUsername:
13828
13898
  type: string
13899
+ threadMode:
13900
+ type: string
13901
+ enum:
13902
+ - mention_only
13903
+ - mention_then_thread
13829
13904
  error:
13830
13905
  type: string
13831
13906
  warning:
@@ -13836,6 +13911,71 @@ paths:
13836
13911
  - hasAppToken
13837
13912
  - hasUserToken
13838
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
13839
13979
  additionalProperties: false
13840
13980
  post:
13841
13981
  operationId: integrations_slack_channel_config_post
@@ -13887,6 +14027,11 @@ paths:
13887
14027
  type: string
13888
14028
  botUsername:
13889
14029
  type: string
14030
+ threadMode:
14031
+ type: string
14032
+ enum:
14033
+ - mention_only
14034
+ - mention_then_thread
13890
14035
  error:
13891
14036
  type: string
13892
14037
  warning:
@@ -13897,6 +14042,7 @@ paths:
13897
14042
  - hasAppToken
13898
14043
  - hasUserToken
13899
14044
  - connected
14045
+ - threadMode
13900
14046
  additionalProperties: false
13901
14047
  /v1/integrations/telegram/commands:
13902
14048
  post:
@@ -14511,6 +14657,54 @@ paths:
14511
14657
  responses:
14512
14658
  "200":
14513
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
14514
14708
  /v1/internal/mcp/reload:
14515
14709
  post:
14516
14710
  operationId: internal_mcp_reload_post
@@ -14542,6 +14736,104 @@ paths:
14542
14736
  responses:
14543
14737
  "200":
14544
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
14545
14837
  /v1/internal/oauth/callback:
14546
14838
  post:
14547
14839
  operationId: internal_oauth_callback_post
@@ -15191,6 +15483,81 @@ paths:
15191
15483
  additionalProperties: false
15192
15484
  "409":
15193
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
15194
15561
  /v1/memory/v2/backfill:
15195
15562
  post:
15196
15563
  operationId: memory_v2_backfill_post
@@ -15872,6 +16239,7 @@ paths:
15872
16239
  - brave
15873
16240
  - perplexity
15874
16241
  - tavily
16242
+ - firecrawl
15875
16243
  resultCount:
15876
16244
  type: number
15877
16245
  durationMs:
@@ -15919,6 +16287,11 @@ paths:
15919
16287
  type: string
15920
16288
  finalUrl:
15921
16289
  type: string
16290
+ provider:
16291
+ type: string
16292
+ enum:
16293
+ - default
16294
+ - firecrawl
15922
16295
  status:
15923
16296
  type: number
15924
16297
  contentType:
@@ -16035,6 +16408,48 @@ paths:
16035
16408
  required:
16036
16409
  - requestId
16037
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
16038
16453
  required:
16039
16454
  - name
16040
16455
  - input
@@ -16254,6 +16669,7 @@ paths:
16254
16669
  - brave
16255
16670
  - perplexity
16256
16671
  - tavily
16672
+ - firecrawl
16257
16673
  resultCount:
16258
16674
  type: number
16259
16675
  durationMs:
@@ -16301,6 +16717,11 @@ paths:
16301
16717
  type: string
16302
16718
  finalUrl:
16303
16719
  type: string
16720
+ provider:
16721
+ type: string
16722
+ enum:
16723
+ - default
16724
+ - firecrawl
16304
16725
  status:
16305
16726
  type: number
16306
16727
  contentType:
@@ -16417,6 +16838,48 @@ paths:
16417
16838
  required:
16418
16839
  - requestId
16419
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
16420
16883
  required:
16421
16884
  - name
16422
16885
  - input
@@ -16721,6 +17184,12 @@ paths:
16721
17184
  type: array
16722
17185
  items:
16723
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
16724
17193
  required:
16725
17194
  - tools
16726
17195
  - tasks
@@ -17681,6 +18150,7 @@ paths:
17681
18150
  properties:
17682
18151
  deliveryId:
17683
18152
  type: string
18153
+ minLength: 1
17684
18154
  description: Notification delivery ID
17685
18155
  success:
17686
18156
  type: boolean
@@ -17758,9 +18228,113 @@ paths:
17758
18228
  type: boolean
17759
18229
  feedItem:
17760
18230
  type: object
17761
- propertyNames:
17762
- type: string
17763
- 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
17764
18338
  channels:
17765
18339
  type: array
17766
18340
  items:
@@ -17815,7 +18389,11 @@ paths:
17815
18389
  - vellum
17816
18390
  - phone
17817
18391
  - telegram
18392
+ - whatsapp
17818
18393
  - slack
18394
+ - email
18395
+ - platform
18396
+ - a2a
17819
18397
  - scheduler
17820
18398
  - watcher
17821
18399
  sourceContextId:
@@ -19245,6 +19823,109 @@ paths:
19245
19823
  description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
19246
19824
  "404":
19247
19825
  description: No installed copy and no catalog entry claims the given name.
19826
+ /v1/plugins/{name}/diff:
19827
+ post:
19828
+ operationId: plugins_by_name_diff_post
19829
+ summary: Diff a plugin against its install commit
19830
+ description:
19831
+ "Show a unified diff of local edits to an installed plugin against the exact commit it was installed at
19832
+ (recorded in its `install-meta.json`). Computing the diff re-materializes the baseline through the install
19833
+ pipeline — a network clone plus a temp-dir write — so this is a POST: it is not a safe, cacheable GET even
19834
+ though it leaves persistent state untouched (requires only `settings.read`). Drift is classified against the
19835
+ install-time fingerprint so an adapter overlay that moved since install never reads as a local change. Returns
19836
+ the baseline `commit`, a `clean` flag, and a `files` array of `{ path, status, diff, binary, reconstructed }`
19837
+ for each modified/added/removed file. The baseline is the install commit, not the marketplace pin — comparing
19838
+ against the current pin is `POST /v1/plugins/:name/upgrade` with `dryRun`. A name with no installed copy returns
19839
+ 404; an install that recorded no commit or fingerprint returns 409; an unreachable source returns 503. Mirrors
19840
+ the CLI's `assistant plugins diff <name>`."
19841
+ tags:
19842
+ - plugins
19843
+ parameters:
19844
+ - name: name
19845
+ in: path
19846
+ required: true
19847
+ schema:
19848
+ type: string
19849
+ responses:
19850
+ "200":
19851
+ description: Successful response
19852
+ content:
19853
+ application/json:
19854
+ schema:
19855
+ type: object
19856
+ properties:
19857
+ name:
19858
+ type: string
19859
+ description: Install name. Matches `assistant plugins install <name>`.
19860
+ target:
19861
+ type: string
19862
+ description: Absolute path to the installed plugin directory on the host.
19863
+ commit:
19864
+ type: string
19865
+ description: Commit the baseline was re-materialized from (the recorded install SHA).
19866
+ committedAt:
19867
+ anyOf:
19868
+ - type: string
19869
+ - type: "null"
19870
+ description: ISO-8601 committer timestamp (UTC) of `commit`; null when not recorded.
19871
+ clean:
19872
+ type: boolean
19873
+ description: True when the on-disk tree exactly matches the re-materialized baseline.
19874
+ files:
19875
+ type: array
19876
+ items:
19877
+ type: object
19878
+ properties:
19879
+ path:
19880
+ type: string
19881
+ description: POSIX-relative path within the plugin root.
19882
+ status:
19883
+ type: string
19884
+ enum:
19885
+ - modified
19886
+ - added
19887
+ - removed
19888
+ description: Whether the file was edited, newly added, or deleted since install.
19889
+ diff:
19890
+ type: string
19891
+ description:
19892
+ Unified diff (`--- a/… / +++ b/…`) of the file. A short `Binary files differ` marker for binary files, or a
19893
+ `Baseline unavailable` marker when `reconstructed` is false.
19894
+ binary:
19895
+ type: boolean
19896
+ description: True when either side was detected as binary (NUL byte present).
19897
+ reconstructed:
19898
+ type: boolean
19899
+ description:
19900
+ True when the install-time baseline for this file was faithfully recovered (re-materialized bytes
19901
+ hash-match the install fingerprint). False when it could not be reconstructed (e.g. the
19902
+ curated adapter overlay changed since install), in which case `diff` is a marker, not a
19903
+ patch. Always true for added files.
19904
+ required:
19905
+ - path
19906
+ - status
19907
+ - diff
19908
+ - binary
19909
+ - reconstructed
19910
+ additionalProperties: false
19911
+ description: Unified diff of a single drifted file.
19912
+ description: One entry per drifted file, sorted by path. Empty when `clean`.
19913
+ required:
19914
+ - name
19915
+ - target
19916
+ - commit
19917
+ - committedAt
19918
+ - clean
19919
+ - files
19920
+ additionalProperties: false
19921
+ "400":
19922
+ description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
19923
+ "404":
19924
+ description: No copy of the plugin is installed, or its recorded commit resolves to nothing.
19925
+ "409":
19926
+ description: The install recorded no commit or no fingerprint to re-materialize and verify a baseline from.
19927
+ "503":
19928
+ description: The plugin source (GitHub) was temporarily unavailable; the diff is retryable.
19248
19929
  /v1/plugins/{name}/inspect:
19249
19930
  get:
19250
19931
  operationId: plugins_by_name_inspect_get
@@ -19459,6 +20140,35 @@ paths:
19459
20140
  - type: string
19460
20141
  - type: "null"
19461
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.
19462
20172
  required:
19463
20173
  - name
19464
20174
  - installed
@@ -19466,6 +20176,7 @@ paths:
19466
20176
  - local
19467
20177
  - remote
19468
20178
  - remoteError
20179
+ - surfaces
19469
20180
  additionalProperties: false
19470
20181
  "400":
19471
20182
  description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
@@ -19481,9 +20192,13 @@ paths:
19481
20192
  mirroring `plugins install`''s curation boundary. A no-op (`outcome: "already-up-to-date"`) when the installed
19482
20193
  commit already equals the pin; pass `dryRun` to preview the move (`outcome: "would-upgrade"`) without touching
19483
20194
  the install. Installs lacking provenance are re-pinned to the current SHA. The assistant must be restarted to
19484
- load the upgraded code. This does not gate on local edits callers should consult `GET
19485
- /v1/plugins/:name/inspect` (`local.localChanges`) first and confirm before overwriting. Mirrors the CLI''s
19486
- `assistant plugins upgrade <name>`.'
20195
+ load the upgraded code. `strategy` controls how local edits are reconciled: `overwrite` (default) discards them
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>]`.'
19487
20202
  tags:
19488
20203
  - plugins
19489
20204
  parameters:
@@ -19502,6 +20217,17 @@ paths:
19502
20217
  dryRun:
19503
20218
  description: Report what would change without modifying the install. Defaults to false.
19504
20219
  type: boolean
20220
+ strategy:
20221
+ description:
20222
+ How to reconcile local edits with the pin. `overwrite` (default) discards local edits and re-installs the
20223
+ pin; `ours`/`theirs` three-way merge, resolving conflicting hunks toward the local edit or the pin
20224
+ respectively; `assistant` is not yet supported.
20225
+ type: string
20226
+ enum:
20227
+ - ours
20228
+ - theirs
20229
+ - overwrite
20230
+ - assistant
19505
20231
  responses:
19506
20232
  "200":
19507
20233
  description: Successful response
@@ -19553,6 +20279,28 @@ paths:
19553
20279
  dryRun:
19554
20280
  type: boolean
19555
20281
  description: Whether this was a dry run (no changes made).
20282
+ strategy:
20283
+ type: string
20284
+ enum:
20285
+ - ours
20286
+ - theirs
20287
+ - overwrite
20288
+ - assistant
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.
19556
20304
  provenanceWasUnknown:
19557
20305
  type: boolean
19558
20306
  description:
@@ -19568,6 +20316,9 @@ paths:
19568
20316
  - target
19569
20317
  - fileCount
19570
20318
  - dryRun
20319
+ - strategy
20320
+ - conflicts
20321
+ - binaryConflicts
19571
20322
  - provenanceWasUnknown
19572
20323
  additionalProperties: false
19573
20324
  "400":
@@ -19575,7 +20326,9 @@ paths:
19575
20326
  "404":
19576
20327
  description: No copy of the plugin is installed, or its source resolves to nothing.
19577
20328
  "409":
19578
- description: The install exists but has no marketplace entry to advance to.
20329
+ description:
20330
+ The install exists but has no marketplace entry to advance to, or a merge strategy was requested whose
20331
+ install-time baseline cannot be reconstructed.
19579
20332
  "503":
19580
20333
  description: The plugin source (GitHub) was temporarily unavailable; the upgrade is retryable.
19581
20334
  /v1/plugins/install:
@@ -27356,6 +28109,88 @@ paths:
27356
28109
  additionalProperties: false
27357
28110
  "404":
27358
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
27359
28194
  /v1/workflows/runs/{id}/resume:
27360
28195
  post:
27361
28196
  operationId: workflows_runs_by_id_resume_post
@@ -27888,6 +28723,14 @@ components:
27888
28723
  maximum: 2
27889
28724
  - type: "null"
27890
28725
  - type: "null"
28726
+ topP:
28727
+ anyOf:
28728
+ - anyOf:
28729
+ - type: number
28730
+ minimum: 0
28731
+ maximum: 1
28732
+ - type: "null"
28733
+ - type: "null"
27891
28734
  thinking:
27892
28735
  anyOf:
27893
28736
  - type: object
@@ -27994,6 +28837,10 @@ components:
27994
28837
  anyOf:
27995
28838
  - type: string
27996
28839
  - type: "null"
28840
+ advisorProfile:
28841
+ anyOf:
28842
+ - type: string
28843
+ - type: "null"
27997
28844
  callSites:
27998
28845
  type: object
27999
28846
  propertyNames:
@@ -28029,6 +28876,16 @@ components:
28029
28876
  type: string
28030
28877
  additionalProperties: {}
28031
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"
28032
28889
  image-generation:
28033
28890
  anyOf:
28034
28891
  - type: object
@@ -28058,6 +28915,7 @@ components:
28058
28915
  - openrouter
28059
28916
  - openai-compatible
28060
28917
  - minimax
28918
+ - atlascloud
28061
28919
  ProfilePatchEntry:
28062
28920
  type: object
28063
28921
  properties:
@@ -28110,6 +28968,14 @@ components:
28110
28968
  maximum: 2
28111
28969
  - type: "null"
28112
28970
  - type: "null"
28971
+ topP:
28972
+ anyOf:
28973
+ - anyOf:
28974
+ - type: number
28975
+ minimum: 0
28976
+ maximum: 1
28977
+ - type: "null"
28978
+ - type: "null"
28113
28979
  thinking:
28114
28980
  anyOf:
28115
28981
  - type: object
@@ -28223,6 +29089,12 @@ components:
28223
29089
  - $ref: "#/components/schemas/ProfileStatus"
28224
29090
  - type: "null"
28225
29091
  - type: "null"
29092
+ advisorEnabled:
29093
+ anyOf:
29094
+ - anyOf:
29095
+ - type: boolean
29096
+ - type: "null"
29097
+ - type: "null"
28226
29098
  mix:
28227
29099
  anyOf:
28228
29100
  - minItems: 2
@@ -28298,6 +29170,14 @@ components:
28298
29170
  maximum: 2
28299
29171
  - type: "null"
28300
29172
  - type: "null"
29173
+ topP:
29174
+ anyOf:
29175
+ - anyOf:
29176
+ - type: number
29177
+ minimum: 0
29178
+ maximum: 1
29179
+ - type: "null"
29180
+ - type: "null"
28301
29181
  thinking:
28302
29182
  anyOf:
28303
29183
  - type: object
@@ -28415,6 +29295,7 @@ components:
28415
29295
  - openrouter
28416
29296
  - openai-compatible
28417
29297
  - minimax
29298
+ - atlascloud
28418
29299
  Auth:
28419
29300
  oneOf:
28420
29301
  - type: object
@@ -28520,6 +29401,12 @@ components:
28520
29401
  minimum: 0
28521
29402
  maximum: 2
28522
29403
  - type: "null"
29404
+ topP:
29405
+ anyOf:
29406
+ - type: number
29407
+ minimum: 0
29408
+ maximum: 1
29409
+ - type: "null"
28523
29410
  thinking:
28524
29411
  type: object
28525
29412
  properties:
@@ -28613,6 +29500,8 @@ components:
28613
29500
  type: string
28614
29501
  activeProfile:
28615
29502
  type: string
29503
+ advisorProfile:
29504
+ type: string
28616
29505
  callSites:
28617
29506
  type: object
28618
29507
  propertyNames:
@@ -28656,6 +29545,12 @@ components:
28656
29545
  minimum: 0
28657
29546
  maximum: 2
28658
29547
  - type: "null"
29548
+ topP:
29549
+ anyOf:
29550
+ - type: number
29551
+ minimum: 0
29552
+ maximum: 1
29553
+ - type: "null"
28659
29554
  thinking:
28660
29555
  type: object
28661
29556
  properties:
@@ -28763,6 +29658,14 @@ components:
28763
29658
  provider:
28764
29659
  type: string
28765
29660
  additionalProperties: {}
29661
+ web-fetch:
29662
+ type: object
29663
+ properties:
29664
+ mode:
29665
+ $ref: "#/components/schemas/ServiceMode"
29666
+ provider:
29667
+ type: string
29668
+ additionalProperties: {}
28766
29669
  image-generation:
28767
29670
  type: object
28768
29671
  properties:
@@ -28815,6 +29718,12 @@ components:
28815
29718
  minimum: 0
28816
29719
  maximum: 2
28817
29720
  - type: "null"
29721
+ topP:
29722
+ anyOf:
29723
+ - type: number
29724
+ minimum: 0
29725
+ maximum: 1
29726
+ - type: "null"
28818
29727
  thinking:
28819
29728
  type: object
28820
29729
  properties:
@@ -28912,6 +29821,10 @@ components:
28912
29821
  anyOf:
28913
29822
  - $ref: "#/components/schemas/ProfileStatus"
28914
29823
  - type: "null"
29824
+ advisorEnabled:
29825
+ anyOf:
29826
+ - type: boolean
29827
+ - type: "null"
28915
29828
  mix:
28916
29829
  minItems: 2
28917
29830
  type: array