@vellumai/assistant 0.8.3 → 0.8.4

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 (342) hide show
  1. package/docker-entrypoint.sh +0 -1
  2. package/node_modules/@vellumai/gateway-client/src/types.ts +2 -0
  3. package/openapi.yaml +610 -16
  4. package/package.json +1 -1
  5. package/src/__tests__/agent-loop-exit-reason.test.ts +4 -5
  6. package/src/__tests__/agent-loop-override-profile.test.ts +1 -1
  7. package/src/__tests__/agent-loop.test.ts +88 -3
  8. package/src/__tests__/anthropic-provider.test.ts +272 -0
  9. package/src/__tests__/approval-cascade.test.ts +1 -1
  10. package/src/__tests__/background-workers-disk-pressure.test.ts +2 -1
  11. package/src/__tests__/channel-delivery-store.test.ts +193 -0
  12. package/src/__tests__/channel-reply-delivery.test.ts +284 -5
  13. package/src/__tests__/channel-retry-sweep.test.ts +274 -1
  14. package/src/__tests__/compaction-events.test.ts +1 -1
  15. package/src/__tests__/compactor-preserved-tail-count.test.ts +110 -0
  16. package/src/__tests__/config-watcher.test.ts +1 -1
  17. package/src/__tests__/context-token-estimator.test.ts +91 -1
  18. package/src/__tests__/conversation-abort-tool-results.test.ts +1 -1
  19. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +54 -3
  20. package/src/__tests__/conversation-agent-loop-overflow.test.ts +31 -6
  21. package/src/__tests__/conversation-agent-loop.test.ts +25 -7
  22. package/src/__tests__/conversation-app-control-lifecycle.test.ts +1 -1
  23. package/src/__tests__/conversation-clean-command.test.ts +137 -0
  24. package/src/__tests__/conversation-confirmation-signals.test.ts +1 -1
  25. package/src/__tests__/conversation-fork-crud.test.ts +161 -0
  26. package/src/__tests__/conversation-lifecycle.test.ts +1 -1
  27. package/src/__tests__/conversation-load-cleaned-at.test.ts +279 -0
  28. package/src/__tests__/conversation-load-history-repair.test.ts +1 -1
  29. package/src/__tests__/conversation-pairing.test.ts +2 -2
  30. package/src/__tests__/conversation-process-callsite.test.ts +1 -1
  31. package/src/__tests__/conversation-provider-retry-repair.test.ts +1 -1
  32. package/src/__tests__/conversation-queue.test.ts +1 -1
  33. package/src/__tests__/conversation-runtime-assembly.test.ts +264 -81
  34. package/src/__tests__/conversation-seed-composer.test.ts +66 -4
  35. package/src/__tests__/conversation-slash-commands.test.ts +36 -8
  36. package/src/__tests__/conversation-slash-queue.test.ts +1 -1
  37. package/src/__tests__/conversation-slash-unknown.test.ts +1 -1
  38. package/src/__tests__/conversation-speed-override.test.ts +1 -1
  39. package/src/__tests__/conversation-surfaces-task-progress.test.ts +220 -0
  40. package/src/__tests__/conversation-workspace-cache-state.test.ts +1 -1
  41. package/src/__tests__/conversation-workspace-injection.test.ts +5 -1
  42. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +5 -1
  43. package/src/__tests__/credential-security-invariants.test.ts +6 -0
  44. package/src/__tests__/cu-unified-flow.test.ts +10 -1
  45. package/src/__tests__/dm-backfill.test.ts +64 -0
  46. package/src/__tests__/dm-persistence.test.ts +33 -0
  47. package/src/__tests__/document-find-replace.test.ts +501 -0
  48. package/src/__tests__/first-greeting.test.ts +23 -2
  49. package/src/__tests__/headless-browser-navigate.test.ts +172 -0
  50. package/src/__tests__/host-bash-proxy.test.ts +6 -0
  51. package/src/__tests__/host-browser-proxy.test.ts +10 -0
  52. package/src/__tests__/host-cu-proxy.test.ts +8 -1
  53. package/src/__tests__/host-file-proxy.test.ts +8 -1
  54. package/src/__tests__/host-transfer-proxy.test.ts +8 -1
  55. package/src/__tests__/identity-routes.test.ts +57 -0
  56. package/src/__tests__/inbound-slack-persistence.test.ts +3 -0
  57. package/src/__tests__/injector-chain.test.ts +2 -0
  58. package/src/__tests__/injector-document-comments.test.ts +378 -0
  59. package/src/__tests__/injector-pkb-v2-silenced.test.ts +4 -25
  60. package/src/__tests__/list-messages-attachments.test.ts +21 -17
  61. package/src/__tests__/list-messages-hidden-metadata.test.ts +217 -0
  62. package/src/__tests__/list-messages-page-latest.test.ts +130 -14
  63. package/src/__tests__/list-messages-tool-merge.test.ts +17 -16
  64. package/src/__tests__/llm-context-normalization.test.ts +0 -2
  65. package/src/__tests__/llm-resolver.test.ts +85 -1
  66. package/src/__tests__/log-export-routes.test.ts +99 -2
  67. package/src/__tests__/message-queue-steer.test.ts +114 -0
  68. package/src/__tests__/openai-provider.test.ts +105 -0
  69. package/src/__tests__/openai-responses-provider.test.ts +4 -4
  70. package/src/__tests__/outbound-slack-persistence.test.ts +187 -20
  71. package/src/__tests__/pending-interactions-resolved-event.test.ts +190 -0
  72. package/src/__tests__/platform.test.ts +0 -3
  73. package/src/__tests__/plugin-source-watcher.test.ts +302 -0
  74. package/src/__tests__/process-message-background-slack.test.ts +1 -51
  75. package/src/__tests__/process-message-display-content.test.ts +21 -16
  76. package/src/__tests__/server-history-render.test.ts +83 -4
  77. package/src/__tests__/steer-tool-repair.test.ts +249 -0
  78. package/src/__tests__/system-prompt.test.ts +51 -28
  79. package/src/__tests__/terminal-tools.test.ts +11 -1
  80. package/src/__tests__/thinking-block-replay.test.ts +113 -0
  81. package/src/__tests__/thread-backfill.test.ts +370 -22
  82. package/src/__tests__/tool-executor.test.ts +90 -1
  83. package/src/__tests__/tool-result-metadata-plumbing.test.ts +167 -0
  84. package/src/__tests__/twilio-routes.test.ts +1 -1
  85. package/src/__tests__/web-fetch.test.ts +2 -2
  86. package/src/__tests__/workspace-git-service.test.ts +88 -5
  87. package/src/__tests__/workspace-migration-088-deprecate-background-conversation-override.test.ts +158 -0
  88. package/src/agent/attachments.ts +1 -0
  89. package/src/agent/loop.ts +57 -20
  90. package/src/background-wake/next-wake.test.ts +289 -0
  91. package/src/background-wake/next-wake.ts +172 -0
  92. package/src/browser/operations.ts +15 -0
  93. package/src/cli/commands/__tests__/conversations-slack.test.ts +572 -0
  94. package/src/cli/commands/__tests__/memory-v2.test.ts +9 -12
  95. package/src/cli/commands/conversations.ts +128 -1
  96. package/src/cli/commands/inference-providers.ts +147 -1
  97. package/src/cli/commands/memory-v2.ts +308 -0
  98. package/src/cli/commands/notifications.ts +24 -2
  99. package/src/cli/utils/conversation-id.ts +17 -5
  100. package/src/config/bundled-skills/app-builder/SKILL.md +2 -2
  101. package/src/config/bundled-skills/document-editor/SKILL.md +115 -0
  102. package/src/config/bundled-skills/document-editor/TOOLS.json +240 -0
  103. package/src/config/bundled-skills/document-editor/tools/comment-list.ts +12 -0
  104. package/src/config/bundled-skills/document-editor/tools/comment-reply.ts +12 -0
  105. package/src/config/bundled-skills/document-editor/tools/comment-resolve.ts +12 -0
  106. package/src/config/bundled-skills/document-editor/tools/document-find.ts +12 -0
  107. package/src/config/bundled-skills/document-editor/tools/document-replace-text.ts +12 -0
  108. package/src/config/bundled-skills/media-processing/SKILL.md +8 -0
  109. package/src/config/bundled-skills/schedule/SKILL.md +8 -0
  110. package/src/config/bundled-tool-registry.ts +22 -12
  111. package/src/config/call-site-defaults.ts +19 -0
  112. package/src/config/feature-flag-registry.json +99 -3
  113. package/src/config/llm-resolver.ts +16 -2
  114. package/src/config/schemas/__tests__/memory-v2.test.ts +4 -0
  115. package/src/config/schemas/call-site-catalog.ts +21 -0
  116. package/src/config/schemas/llm.ts +3 -0
  117. package/src/config/schemas/memory-v2.ts +48 -1
  118. package/src/context/compactor.ts +8 -1
  119. package/src/context/token-estimator.ts +47 -4
  120. package/src/context/window-manager.ts +25 -0
  121. package/src/credential-health/credential-health-service.ts +34 -19
  122. package/src/daemon/__tests__/conversation-tool-setup.test.ts +66 -6
  123. package/src/daemon/__tests__/native-web-search-metadata.test.ts +357 -0
  124. package/src/daemon/__tests__/web-search-status-text.test.ts +287 -0
  125. package/src/daemon/conversation-agent-loop-handlers.ts +153 -23
  126. package/src/daemon/conversation-agent-loop.ts +223 -54
  127. package/src/daemon/conversation-lifecycle.ts +142 -116
  128. package/src/daemon/conversation-messaging.ts +3 -0
  129. package/src/daemon/conversation-process.ts +273 -0
  130. package/src/daemon/conversation-queue-manager.ts +14 -0
  131. package/src/daemon/conversation-runtime-assembly.ts +135 -75
  132. package/src/daemon/conversation-slash.ts +37 -5
  133. package/src/daemon/conversation-surfaces.ts +45 -2
  134. package/src/daemon/conversation-tool-setup.ts +7 -0
  135. package/src/daemon/conversation.ts +42 -5
  136. package/src/daemon/first-greeting.ts +10 -0
  137. package/src/daemon/handlers/__tests__/config-a2a-accept.test.ts +498 -0
  138. package/src/daemon/handlers/config-a2a.ts +160 -0
  139. package/src/daemon/handlers/config-model.test.ts +1 -0
  140. package/src/daemon/handlers/conversations.ts +79 -0
  141. package/src/daemon/handlers/shared.ts +92 -29
  142. package/src/daemon/host-bash-proxy.ts +1 -1
  143. package/src/daemon/host-cu-proxy.ts +1 -1
  144. package/src/daemon/host-file-proxy.ts +1 -1
  145. package/src/daemon/host-transfer-proxy.ts +1 -1
  146. package/src/daemon/lifecycle.ts +18 -4
  147. package/src/daemon/message-protocol.ts +4 -0
  148. package/src/daemon/message-types/conversations.ts +8 -0
  149. package/src/daemon/message-types/document-comments.ts +50 -0
  150. package/src/daemon/message-types/messages.ts +68 -1
  151. package/src/daemon/message-types/surfaces.ts +3 -1
  152. package/src/daemon/message-types/web-activity.ts +57 -0
  153. package/src/daemon/plugin-source-watcher.ts +135 -3
  154. package/src/daemon/process-message.ts +69 -12
  155. package/src/daemon/query-complexity-router.ts +75 -0
  156. package/src/daemon/trust-context.ts +6 -0
  157. package/src/documents/document-comments-store.test.ts +338 -0
  158. package/src/documents/document-comments-store.ts +237 -0
  159. package/src/documents/document-store.ts +202 -0
  160. package/src/heartbeat/__tests__/heartbeat-service.test.ts +0 -1
  161. package/src/heartbeat/heartbeat-service.ts +1 -0
  162. package/src/home/__tests__/suggested-prompts.test.ts +33 -2
  163. package/src/home/feed-types.ts +6 -1
  164. package/src/home/home-content-refresh.ts +52 -0
  165. package/src/home/home-greeting-cache.ts +69 -0
  166. package/src/home/home-greeting.ts +94 -0
  167. package/src/home/suggested-prompts.ts +177 -9
  168. package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +135 -2
  169. package/src/memory/__tests__/memory-retrospective-job.test.ts +320 -6
  170. package/src/memory/conversation-crud.ts +133 -43
  171. package/src/memory/db-init.ts +16 -0
  172. package/src/memory/delivery-crud.ts +41 -0
  173. package/src/memory/delivery-status.ts +141 -15
  174. package/src/memory/external-conversation-store.ts +32 -1
  175. package/src/memory/jobs-worker.ts +21 -1
  176. package/src/memory/memory-retrospective-constants.ts +28 -0
  177. package/src/memory/memory-retrospective-enqueue.ts +3 -2
  178. package/src/memory/memory-retrospective-job.ts +408 -18
  179. package/src/memory/memory-retrospective-startup-cleanup.ts +3 -3
  180. package/src/memory/memory-v2-activation-log-store.ts +26 -8
  181. package/src/memory/migrations/100-core-tables.ts +1 -0
  182. package/src/memory/migrations/109-external-conversation-bindings.ts +1 -0
  183. package/src/memory/migrations/253-conversation-last-notified-profile.ts +15 -0
  184. package/src/memory/migrations/253-document-comments.ts +47 -0
  185. package/src/memory/migrations/254-external-conversation-binding-chat-name.ts +43 -0
  186. package/src/memory/migrations/255-channel-inbound-delivery-attempts.ts +24 -0
  187. package/src/memory/migrations/256-memory-v2-injection-events.ts +113 -0
  188. package/src/memory/migrations/257-strip-base-url-non-openai-compatible.ts +22 -0
  189. package/src/memory/migrations/258-onboarding-events-prior-assistants.ts +13 -0
  190. package/src/memory/migrations/259-conversation-cleaned-at.ts +33 -0
  191. package/src/memory/migrations/index.ts +17 -0
  192. package/src/memory/migrations/registry.ts +25 -0
  193. package/src/memory/onboarding-events-store.ts +7 -0
  194. package/src/memory/schema/calls.ts +1 -0
  195. package/src/memory/schema/conversations.ts +3 -0
  196. package/src/memory/schema/infrastructure.ts +1 -0
  197. package/src/memory/v2/__tests__/injection-events.test.ts +318 -0
  198. package/src/memory/v2/__tests__/injection.test.ts +31 -14
  199. package/src/memory/v2/__tests__/page-index.test.ts +365 -1
  200. package/src/memory/v2/__tests__/router.test.ts +489 -1
  201. package/src/memory/v2/consolidation-job.ts +14 -0
  202. package/src/memory/v2/injection-events.ts +101 -0
  203. package/src/memory/v2/injection.ts +21 -10
  204. package/src/memory/v2/page-index.ts +209 -7
  205. package/src/memory/v2/page-store.ts +18 -0
  206. package/src/memory/v2/router.ts +209 -55
  207. package/src/messaging/providers/index.ts +7 -1
  208. package/src/messaging/providers/slack/__tests__/adapter-mention-rendering.test.ts +329 -3
  209. package/src/messaging/providers/slack/__tests__/adapter-token-routing.test.ts +34 -1
  210. package/src/messaging/providers/slack/adapter.ts +178 -25
  211. package/src/messaging/providers/slack/api.test.ts +54 -0
  212. package/src/messaging/providers/slack/api.ts +119 -3
  213. package/src/messaging/providers/slack/client.ts +12 -0
  214. package/src/messaging/providers/slack/deep-link.ts +20 -1
  215. package/src/messaging/providers/slack/message-metadata.test.ts +48 -0
  216. package/src/messaging/providers/slack/message-metadata.ts +156 -0
  217. package/src/messaging/providers/slack/render-transcript.test.ts +107 -75
  218. package/src/messaging/providers/slack/render-transcript.ts +176 -49
  219. package/src/messaging/providers/slack/send.test.ts +77 -0
  220. package/src/messaging/providers/slack/send.ts +8 -2
  221. package/src/messaging/providers/slack/types.ts +14 -0
  222. package/src/notifications/__tests__/emit-signal-home-feed.test.ts +4 -1
  223. package/src/notifications/__tests__/home-feed-side-effect.test.ts +116 -54
  224. package/src/notifications/conversation-seed-composer.ts +14 -2
  225. package/src/notifications/deferred-emit.ts +135 -0
  226. package/src/notifications/emit-signal.ts +9 -1
  227. package/src/notifications/home-feed-side-effect.ts +60 -30
  228. package/src/oauth/connect-orchestrator.ts +3 -0
  229. package/src/oauth/credential-token-resolver.ts +2 -0
  230. package/src/oauth/manual-token-connection.ts +19 -0
  231. package/src/oauth/oauth-store.ts +12 -0
  232. package/src/oauth/seed-providers.ts +22 -0
  233. package/src/permissions/prompter.ts +5 -2
  234. package/src/permissions/secret-prompter.ts +4 -1
  235. package/src/plugins/defaults/injectors.ts +82 -9
  236. package/src/prompts/__tests__/system-prompt.test.ts +46 -2
  237. package/src/prompts/normalize-onboarding.ts +40 -0
  238. package/src/prompts/sections.ts +32 -14
  239. package/src/prompts/system-prompt.ts +105 -68
  240. package/src/prompts/template-detection.ts +37 -0
  241. package/src/prompts/templates/BOOTSTRAP-CONTENT-AUTOMATION.md +141 -0
  242. package/src/prompts/templates/BOOTSTRAP.md +8 -0
  243. package/src/prompts/templates/VOICE.md +3 -0
  244. package/src/prompts/templates/system-sections.ts +53 -3
  245. package/src/providers/anthropic/client.ts +132 -5
  246. package/src/providers/fireworks/client.ts +20 -2
  247. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +342 -0
  248. package/src/providers/inference/__tests__/base-url-security.test.ts +189 -0
  249. package/src/providers/inference/__tests__/codex-token-refresh.test.ts +254 -0
  250. package/src/providers/inference/adapter-factory.ts +15 -1
  251. package/src/providers/inference/auth.ts +3 -3
  252. package/src/providers/inference/codex-token-refresh.ts +128 -0
  253. package/src/providers/inference/resolve-auth.ts +49 -6
  254. package/src/providers/model-catalog.ts +48 -1
  255. package/src/providers/openai/chat-completions-provider.ts +57 -20
  256. package/src/providers/openai/responses-provider.ts +9 -3
  257. package/src/providers/openrouter/client.ts +5 -1
  258. package/src/providers/types.ts +25 -0
  259. package/src/runtime/__tests__/agent-wake.test.ts +214 -0
  260. package/src/runtime/__tests__/background-job-runner.test.ts +128 -0
  261. package/src/runtime/agent-wake.ts +151 -56
  262. package/src/runtime/auth/route-policy.ts +7 -3
  263. package/src/runtime/background-job-runner.ts +26 -0
  264. package/src/runtime/channel-reply-delivery.ts +182 -47
  265. package/src/runtime/channel-retry-sweep.ts +141 -16
  266. package/src/runtime/http-types.ts +7 -4
  267. package/src/runtime/pending-interactions.ts +51 -8
  268. package/src/runtime/routes/__tests__/content-source-routes.test.ts +162 -0
  269. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +55 -1
  270. package/src/runtime/routes/__tests__/memory-v2-routes.test.ts +14 -0
  271. package/src/runtime/routes/__tests__/memory-v2-simulate-route.test.ts +271 -0
  272. package/src/runtime/routes/__tests__/sanity-routes.test.ts +280 -0
  273. package/src/runtime/routes/__tests__/slack-channel-routes.test.ts +266 -0
  274. package/src/runtime/routes/approval-routes.ts +4 -1
  275. package/src/runtime/routes/chatgpt-subscription-auth-routes.ts +246 -0
  276. package/src/runtime/routes/content-source-routes.ts +78 -0
  277. package/src/runtime/routes/conversation-cli-routes.ts +146 -1
  278. package/src/runtime/routes/conversation-query-routes.ts +60 -1
  279. package/src/runtime/routes/conversation-routes.ts +281 -76
  280. package/src/runtime/routes/document-comments-routes.ts +287 -0
  281. package/src/runtime/routes/documents-routes.ts +33 -0
  282. package/src/runtime/routes/home-feed-routes.ts +6 -3
  283. package/src/runtime/routes/host-app-control-routes.ts +1 -1
  284. package/src/runtime/routes/host-browser-routes.ts +8 -1
  285. package/src/runtime/routes/identity-routes.ts +21 -0
  286. package/src/runtime/routes/inbound-message-handler.ts +288 -58
  287. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +365 -6
  288. package/src/runtime/routes/inbound-stages/background-dispatch.ts +283 -82
  289. package/src/runtime/routes/index.ts +12 -4
  290. package/src/runtime/routes/inference-provider-connection-routes.ts +63 -7
  291. package/src/runtime/routes/integrations/a2a.ts +60 -1
  292. package/src/runtime/routes/log-export-routes.ts +39 -0
  293. package/src/runtime/routes/memory-v2-routes.ts +217 -0
  294. package/src/runtime/routes/notification-routes.ts +19 -2
  295. package/src/runtime/routes/question-routes.ts +4 -1
  296. package/src/runtime/routes/sanity-routes.ts +159 -0
  297. package/src/runtime/routes/slack-channel-routes.ts +187 -0
  298. package/src/runtime/services/conversation-serializer.ts +30 -4
  299. package/src/schedule/integration-status.ts +3 -1
  300. package/src/security/__tests__/oauth2-device-code.test.ts +479 -0
  301. package/src/security/oauth2-device-code.ts +307 -0
  302. package/src/security/oauth2.ts +26 -9
  303. package/src/security/secure-keys.ts +5 -0
  304. package/src/skills/catalog-install.ts +6 -2
  305. package/src/tools/browser/__tests__/pinned-tabs.test.ts +80 -0
  306. package/src/tools/browser/browser-execution.ts +93 -0
  307. package/src/tools/browser/cdp-client/__tests__/factory.test.ts +28 -0
  308. package/src/tools/browser/cdp-client/__tests__/types.test.ts +1 -0
  309. package/src/tools/browser/cdp-client/cdp-inspect-client.ts +10 -0
  310. package/src/tools/browser/cdp-client/extension-cdp-client.ts +15 -1
  311. package/src/tools/browser/cdp-client/factory.ts +87 -3
  312. package/src/tools/browser/cdp-client/local-cdp-client.ts +9 -0
  313. package/src/tools/browser/cdp-client/types.ts +36 -0
  314. package/src/tools/browser/pinned-tabs.ts +90 -0
  315. package/src/tools/document/document-comment-tool.test.ts +379 -0
  316. package/src/tools/document/document-comment-tool.ts +156 -0
  317. package/src/tools/document/document-tool.ts +128 -2
  318. package/src/tools/network/__tests__/web-fetch-metadata.test.ts +229 -0
  319. package/src/tools/network/__tests__/web-search-metadata.test.ts +346 -0
  320. package/src/tools/network/domain-normalize.ts +17 -0
  321. package/src/tools/network/web-fetch.ts +213 -64
  322. package/src/tools/network/web-search.ts +191 -66
  323. package/src/tools/terminal/safe-env.ts +3 -2
  324. package/src/tools/tool-approval-handler.ts +19 -12
  325. package/src/tools/types.ts +4 -0
  326. package/src/tools/ui-surface/definitions.ts +3 -1
  327. package/src/types/onboarding-context.ts +4 -0
  328. package/src/util/__tests__/favicon.test.ts +84 -0
  329. package/src/util/favicon.ts +40 -0
  330. package/src/util/platform.ts +0 -5
  331. package/src/workspace/git-service.ts +75 -4
  332. package/src/workspace/migrations/088-deprecate-background-conversation-override.ts +103 -0
  333. package/src/workspace/migrations/registry.ts +2 -0
  334. package/src/config/bundled-skills/document/SKILL.md +0 -54
  335. package/src/config/bundled-skills/document/TOOLS.json +0 -106
  336. package/src/daemon/seed-files.ts +0 -18
  337. package/src/runtime/routes/interface-routes.ts +0 -43
  338. /package/src/config/bundled-skills/{document → document-editor}/tools/document-create.ts +0 -0
  339. /package/src/config/bundled-skills/{document → document-editor}/tools/document-delete.ts +0 -0
  340. /package/src/config/bundled-skills/{document → document-editor}/tools/document-list.ts +0 -0
  341. /package/src/config/bundled-skills/{document → document-editor}/tools/document-read.ts +0 -0
  342. /package/src/config/bundled-skills/{document → document-editor}/tools/document-update.ts +0 -0
package/openapi.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  openapi: 3.0.0
4
4
  info:
5
5
  title: Vellum Assistant API
6
- version: 0.8.3
6
+ version: 0.8.4
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
@@ -4219,6 +4219,27 @@ paths:
4219
4219
  limit:
4220
4220
  type: number
4221
4221
  additionalProperties: false
4222
+ /v1/content-source:
4223
+ post:
4224
+ operationId: contentsource_post
4225
+ summary: Validate and persist a content source URL
4226
+ tags:
4227
+ - content-source
4228
+ responses:
4229
+ "200":
4230
+ description: Successful response
4231
+ requestBody:
4232
+ required: true
4233
+ content:
4234
+ application/json:
4235
+ schema:
4236
+ type: object
4237
+ properties:
4238
+ url:
4239
+ type: string
4240
+ required:
4241
+ - url
4242
+ additionalProperties: false
4222
4243
  /v1/conversation-starters:
4223
4244
  get:
4224
4245
  operationId: conversationstarters_get
@@ -4370,6 +4391,51 @@ paths:
4370
4391
  required:
4371
4392
  - conversationKey
4372
4393
  additionalProperties: false
4394
+ /v1/conversations/{conversationId}/slack-channel/resolve:
4395
+ post:
4396
+ operationId: conversations_by_conversationId_slackchannel_resolve_post
4397
+ summary: Resolve Slack channel name
4398
+ description: Resolve and persist a friendly Slack channel name for an external conversation binding.
4399
+ tags:
4400
+ - conversations
4401
+ - slack
4402
+ responses:
4403
+ "200":
4404
+ description: Successful response
4405
+ content:
4406
+ application/json:
4407
+ schema:
4408
+ type: object
4409
+ properties:
4410
+ channelId:
4411
+ type: string
4412
+ channelName:
4413
+ type: string
4414
+ cached:
4415
+ type: boolean
4416
+ resolved:
4417
+ type: boolean
4418
+ reason:
4419
+ type: string
4420
+ enum:
4421
+ - auth
4422
+ - dm
4423
+ - no_name
4424
+ - not_found
4425
+ - permission
4426
+ - rate_limit
4427
+ - slack_error
4428
+ required:
4429
+ - channelId
4430
+ - cached
4431
+ - resolved
4432
+ additionalProperties: false
4433
+ parameters:
4434
+ - name: conversationId
4435
+ in: path
4436
+ required: true
4437
+ schema:
4438
+ type: string
4373
4439
  /v1/conversations/{id}:
4374
4440
  delete:
4375
4441
  operationId: conversations_by_id_delete
@@ -4992,6 +5058,57 @@ paths:
4992
5058
  includeArchived:
4993
5059
  type: boolean
4994
5060
  additionalProperties: false
5061
+ /v1/conversations/cli/slack/detach:
5062
+ post:
5063
+ operationId: conversations_cli_slack_detach_post
5064
+ summary: Detach the assistant from a Slack thread (CLI)
5065
+ description: Stops Slack active-thread listening for a Slack thread. The CLI resolves current conversation defaults.
5066
+ tags:
5067
+ - conversations
5068
+ responses:
5069
+ "200":
5070
+ description: Successful response
5071
+ content:
5072
+ application/json:
5073
+ schema:
5074
+ type: object
5075
+ properties:
5076
+ detached:
5077
+ type: boolean
5078
+ channelId:
5079
+ type: string
5080
+ threadTs:
5081
+ type: string
5082
+ source:
5083
+ type: string
5084
+ enum:
5085
+ - explicit
5086
+ - conversation_binding
5087
+ conversationId:
5088
+ type: string
5089
+ required:
5090
+ - detached
5091
+ - channelId
5092
+ - threadTs
5093
+ - source
5094
+ additionalProperties: false
5095
+ requestBody:
5096
+ required: true
5097
+ content:
5098
+ application/json:
5099
+ schema:
5100
+ type: object
5101
+ properties:
5102
+ conversationId:
5103
+ type: string
5104
+ minLength: 1
5105
+ channelId:
5106
+ type: string
5107
+ minLength: 1
5108
+ threadTs:
5109
+ type: string
5110
+ minLength: 1
5111
+ additionalProperties: false
4995
5112
  /v1/conversations/fork:
4996
5113
  post:
4997
5114
  operationId: conversations_fork_post
@@ -6593,6 +6710,268 @@ paths:
6593
6710
  required: true
6594
6711
  schema:
6595
6712
  type: string
6713
+ /v1/documents/{id}/comments:
6714
+ get:
6715
+ operationId: documents_by_id_comments_get
6716
+ summary: List comments for a document
6717
+ description: Return comments for a document, optionally filtered by status.
6718
+ tags:
6719
+ - documents
6720
+ responses:
6721
+ "200":
6722
+ description: Successful response
6723
+ content:
6724
+ application/json:
6725
+ schema:
6726
+ type: object
6727
+ properties:
6728
+ comments:
6729
+ type: array
6730
+ items: {}
6731
+ description: Comment records
6732
+ required:
6733
+ - comments
6734
+ additionalProperties: false
6735
+ parameters:
6736
+ - name: id
6737
+ in: path
6738
+ required: true
6739
+ schema:
6740
+ type: string
6741
+ - name: status
6742
+ in: query
6743
+ required: false
6744
+ schema:
6745
+ type: string
6746
+ enum:
6747
+ - open
6748
+ - resolved
6749
+ - all
6750
+ description: "Filter by comment status (default: all)"
6751
+ post:
6752
+ operationId: documents_by_id_comments_post
6753
+ summary: Create a comment on a document
6754
+ description: Add a new comment to a document.
6755
+ tags:
6756
+ - documents
6757
+ responses:
6758
+ "200":
6759
+ description: Successful response
6760
+ content:
6761
+ application/json:
6762
+ schema:
6763
+ type: object
6764
+ properties:
6765
+ id:
6766
+ type: string
6767
+ surfaceId:
6768
+ type: string
6769
+ conversationId:
6770
+ type: string
6771
+ author:
6772
+ type: string
6773
+ content:
6774
+ type: string
6775
+ status:
6776
+ type: string
6777
+ createdAt:
6778
+ type: number
6779
+ updatedAt:
6780
+ type: number
6781
+ required:
6782
+ - id
6783
+ - surfaceId
6784
+ - conversationId
6785
+ - author
6786
+ - content
6787
+ - status
6788
+ - createdAt
6789
+ - updatedAt
6790
+ additionalProperties: false
6791
+ parameters:
6792
+ - name: id
6793
+ in: path
6794
+ required: true
6795
+ schema:
6796
+ type: string
6797
+ requestBody:
6798
+ required: true
6799
+ content:
6800
+ application/json:
6801
+ schema:
6802
+ type: object
6803
+ properties:
6804
+ content:
6805
+ type: string
6806
+ minLength: 1
6807
+ description: Comment text content
6808
+ author:
6809
+ default: user
6810
+ description: Comment author
6811
+ type: string
6812
+ const: user
6813
+ anchorStart:
6814
+ description: Selection start offset
6815
+ anyOf:
6816
+ - type: number
6817
+ - type: "null"
6818
+ anchorEnd:
6819
+ description: Selection end offset
6820
+ anyOf:
6821
+ - type: number
6822
+ - type: "null"
6823
+ anchorText:
6824
+ description: Anchored text snippet
6825
+ anyOf:
6826
+ - type: string
6827
+ - type: "null"
6828
+ parentCommentId:
6829
+ description: Parent comment ID for replies
6830
+ anyOf:
6831
+ - type: string
6832
+ - type: "null"
6833
+ conversationId:
6834
+ type: string
6835
+ description: Owning conversation ID
6836
+ required:
6837
+ - content
6838
+ - conversationId
6839
+ additionalProperties: false
6840
+ /v1/documents/{id}/comments/{commentId}:
6841
+ delete:
6842
+ operationId: documents_by_id_comments_by_commentId_delete
6843
+ summary: Delete a document comment
6844
+ description: Permanently delete a comment.
6845
+ tags:
6846
+ - documents
6847
+ responses:
6848
+ "200":
6849
+ description: Successful response
6850
+ content:
6851
+ application/json:
6852
+ schema:
6853
+ type: object
6854
+ properties:
6855
+ success:
6856
+ type: boolean
6857
+ const: true
6858
+ required:
6859
+ - success
6860
+ additionalProperties: false
6861
+ parameters:
6862
+ - name: id
6863
+ in: path
6864
+ required: true
6865
+ schema:
6866
+ type: string
6867
+ - name: commentId
6868
+ in: path
6869
+ required: true
6870
+ schema:
6871
+ type: string
6872
+ patch:
6873
+ operationId: documents_by_id_comments_by_commentId_patch
6874
+ summary: Update a document comment
6875
+ description: Update the status or content of a comment.
6876
+ tags:
6877
+ - documents
6878
+ responses:
6879
+ "200":
6880
+ description: Successful response
6881
+ content:
6882
+ application/json:
6883
+ schema:
6884
+ type: object
6885
+ properties:
6886
+ id:
6887
+ type: string
6888
+ surfaceId:
6889
+ type: string
6890
+ content:
6891
+ type: string
6892
+ status:
6893
+ type: string
6894
+ updatedAt:
6895
+ type: number
6896
+ required:
6897
+ - id
6898
+ - surfaceId
6899
+ - content
6900
+ - status
6901
+ - updatedAt
6902
+ additionalProperties: false
6903
+ parameters:
6904
+ - name: id
6905
+ in: path
6906
+ required: true
6907
+ schema:
6908
+ type: string
6909
+ - name: commentId
6910
+ in: path
6911
+ required: true
6912
+ schema:
6913
+ type: string
6914
+ requestBody:
6915
+ required: true
6916
+ content:
6917
+ application/json:
6918
+ schema:
6919
+ type: object
6920
+ properties:
6921
+ status:
6922
+ description: New comment status
6923
+ type: string
6924
+ enum:
6925
+ - open
6926
+ - resolved
6927
+ content:
6928
+ description: Updated comment text
6929
+ type: string
6930
+ minLength: 1
6931
+ resolvedBy:
6932
+ description: Who resolved the comment
6933
+ type: string
6934
+ additionalProperties: false
6935
+ /v1/documents/{id}/conversations:
6936
+ post:
6937
+ operationId: documents_by_id_conversations_post
6938
+ summary: Link a document to a conversation
6939
+ description: Associate a document with a conversation so the assistant sees it as context.
6940
+ tags:
6941
+ - documents
6942
+ responses:
6943
+ "200":
6944
+ description: Successful response
6945
+ content:
6946
+ application/json:
6947
+ schema:
6948
+ type: object
6949
+ properties:
6950
+ success:
6951
+ type: boolean
6952
+ const: true
6953
+ required:
6954
+ - success
6955
+ additionalProperties: false
6956
+ parameters:
6957
+ - name: id
6958
+ in: path
6959
+ required: true
6960
+ schema:
6961
+ type: string
6962
+ requestBody:
6963
+ required: true
6964
+ content:
6965
+ application/json:
6966
+ schema:
6967
+ type: object
6968
+ properties:
6969
+ conversationId:
6970
+ type: string
6971
+ description: Conversation to link
6972
+ required:
6973
+ - conversationId
6974
+ additionalProperties: false
6596
6975
  /v1/documents/{id}/pdf:
6597
6976
  get:
6598
6977
  operationId: documents_by_id_pdf_get
@@ -7358,6 +7737,14 @@ paths:
7358
7737
  type: object
7359
7738
  properties: {}
7360
7739
  additionalProperties: {}
7740
+ ces:
7741
+ type: object
7742
+ properties:
7743
+ connected:
7744
+ type: boolean
7745
+ required:
7746
+ - connected
7747
+ additionalProperties: false
7361
7748
  profiler:
7362
7749
  type: object
7363
7750
  properties:
@@ -7441,6 +7828,7 @@ paths:
7441
7828
  - memory
7442
7829
  - cpu
7443
7830
  - migrations
7831
+ - ces
7444
7832
  additionalProperties: false
7445
7833
  /v1/healthz:
7446
7834
  get:
@@ -7479,6 +7867,14 @@ paths:
7479
7867
  type: object
7480
7868
  properties: {}
7481
7869
  additionalProperties: {}
7870
+ ces:
7871
+ type: object
7872
+ properties:
7873
+ connected:
7874
+ type: boolean
7875
+ required:
7876
+ - connected
7877
+ additionalProperties: false
7482
7878
  profiler:
7483
7879
  type: object
7484
7880
  properties:
@@ -7562,6 +7958,7 @@ paths:
7562
7958
  - memory
7563
7959
  - cpu
7564
7960
  - migrations
7961
+ - ces
7565
7962
  additionalProperties: false
7566
7963
  /v1/heartbeat/checklist:
7567
7964
  get:
@@ -8806,6 +9203,68 @@ paths:
8806
9203
  responses:
8807
9204
  "200":
8808
9205
  description: Successful response
9206
+ /v1/inference/chatgpt-subscription/auth:
9207
+ post:
9208
+ operationId: inference_chatgptsubscription_auth_post
9209
+ summary: Start ChatGPT subscription OAuth PKCE flow
9210
+ description:
9211
+ Generate a PKCE authorize URL for ChatGPT subscription auth. Returns the URL and state for the client to
9212
+ open in a browser.
9213
+ tags:
9214
+ - inference
9215
+ responses:
9216
+ "200":
9217
+ description: Successful response
9218
+ content:
9219
+ application/json:
9220
+ schema:
9221
+ type: object
9222
+ properties:
9223
+ authorize_url:
9224
+ type: string
9225
+ state:
9226
+ type: string
9227
+ required:
9228
+ - authorize_url
9229
+ - state
9230
+ additionalProperties: false
9231
+ /v1/inference/chatgpt-subscription/auth/exchange:
9232
+ post:
9233
+ operationId: inference_chatgptsubscription_auth_exchange_post
9234
+ summary: Exchange ChatGPT subscription OAuth authorization code
9235
+ description:
9236
+ Accept an authorization code and state from the OAuth redirect, exchange it for tokens, store them in CES,
9237
+ and upsert the provider connection.
9238
+ tags:
9239
+ - inference
9240
+ responses:
9241
+ "200":
9242
+ description: Successful response
9243
+ content:
9244
+ application/json:
9245
+ schema:
9246
+ type: object
9247
+ properties:
9248
+ ok:
9249
+ type: boolean
9250
+ required:
9251
+ - ok
9252
+ additionalProperties: false
9253
+ requestBody:
9254
+ required: true
9255
+ content:
9256
+ application/json:
9257
+ schema:
9258
+ type: object
9259
+ properties:
9260
+ code:
9261
+ type: string
9262
+ state:
9263
+ type: string
9264
+ required:
9265
+ - code
9266
+ - state
9267
+ additionalProperties: false
8809
9268
  /v1/inference/provider-connections:
8810
9269
  get:
8811
9270
  operationId: inference_providerconnections_get
@@ -9720,6 +10179,18 @@ paths:
9720
10179
  responses:
9721
10180
  "200":
9722
10181
  description: Successful response
10182
+ /v1/integrations/a2a/invite/accept:
10183
+ post:
10184
+ operationId: integrations_a2a_invite_accept_post
10185
+ summary: Accept A2A invite (self-hosted broker)
10186
+ description:
10187
+ Orchestrate cross-daemon invite acceptance for self-hosted deployments. Calls the sender's invite/complete,
10188
+ then creates a local contact via invite/redeem.
10189
+ tags:
10190
+ - integrations
10191
+ responses:
10192
+ "200":
10193
+ description: Successful response
9723
10194
  /v1/integrations/a2a/invite/complete:
9724
10195
  post:
9725
10196
  operationId: integrations_a2a_invite_complete_post
@@ -9994,21 +10465,6 @@ paths:
9994
10465
  responses:
9995
10466
  "200":
9996
10467
  description: Successful response
9997
- /v1/interfaces/{path}:
9998
- get:
9999
- operationId: interfaces_by_path_get
10000
- summary: Serve an interface definition file
10001
- tags:
10002
- - interfaces
10003
- responses:
10004
- "200":
10005
- description: Successful response
10006
- parameters:
10007
- - name: path
10008
- in: path
10009
- required: true
10010
- schema:
10011
- type: string
10012
10468
  /v1/internal/mcp/add:
10013
10469
  post:
10014
10470
  operationId: internal_mcp_add_post
@@ -10598,6 +11054,28 @@ paths:
10598
11054
  required:
10599
11055
  - slug
10600
11056
  additionalProperties: false
11057
+ /v1/memory/v2/ema-scores:
11058
+ post:
11059
+ operationId: memory_v2_emascores_post
11060
+ summary: List every concept page with its injection-frequency EMA score
11061
+ description:
11062
+ Computes the time-decayed injection frequency (3-day half-life) for every entry in the current page index
11063
+ by reading memory_v2_injection_events. Returns entries sorted by score descending then slug ASCII, including
11064
+ zero-score pages so callers can decide whether to filter. Read-only; tier 2 of the v4 router uses the same
11065
+ computation to pick its top-M.
11066
+ tags:
11067
+ - memory
11068
+ responses:
11069
+ "200":
11070
+ description: Successful response
11071
+ requestBody:
11072
+ required: true
11073
+ content:
11074
+ application/json:
11075
+ schema:
11076
+ type: object
11077
+ properties: {}
11078
+ additionalProperties: false
10601
11079
  /v1/memory/v2/list-concept-pages:
10602
11080
  post:
10603
11081
  operationId: memory_v2_listconceptpages_post
@@ -10636,6 +11114,55 @@ paths:
10636
11114
  type: object
10637
11115
  properties: {}
10638
11116
  additionalProperties: false
11117
+ /v1/memory/v2/simulate-router:
11118
+ post:
11119
+ operationId: memory_v2_simulaterouter_post
11120
+ summary: Dry-run the v4 router with config overrides (read-only)
11121
+ description:
11122
+ Runs the memory router against the live page index + EMA scores with optional tier_size / batch_size
11123
+ overrides, without recording an injection event or writing an activation log. Returns the slugs that would have
11124
+ been selected, per-slug tier provenance, EMA scores, and the effective router config so operators can validate
11125
+ knob changes before flipping them in workspace config.
11126
+ tags:
11127
+ - memory
11128
+ responses:
11129
+ "200":
11130
+ description: Successful response
11131
+ requestBody:
11132
+ required: true
11133
+ content:
11134
+ application/json:
11135
+ schema:
11136
+ type: object
11137
+ properties:
11138
+ query:
11139
+ type: string
11140
+ minLength: 1
11141
+ configOverrides:
11142
+ type: object
11143
+ properties:
11144
+ tier1_size:
11145
+ anyOf:
11146
+ - type: integer
11147
+ minimum: 1
11148
+ maximum: 9007199254740991
11149
+ - type: "null"
11150
+ tier2_size:
11151
+ anyOf:
11152
+ - type: integer
11153
+ minimum: 1
11154
+ maximum: 9007199254740991
11155
+ - type: "null"
11156
+ batch_size:
11157
+ anyOf:
11158
+ - type: integer
11159
+ minimum: 1
11160
+ maximum: 9007199254740991
11161
+ - type: "null"
11162
+ additionalProperties: false
11163
+ required:
11164
+ - query
11165
+ additionalProperties: false
10639
11166
  /v1/memory/v2/validate:
10640
11167
  post:
10641
11168
  operationId: memory_v2_validate_post
@@ -10861,6 +11388,28 @@ paths:
10861
11388
  schema:
10862
11389
  type: string
10863
11390
  description: Conversation ID (required)
11391
+ /v1/messages/queued/{id}/steer:
11392
+ post:
11393
+ operationId: messages_queued_by_id_steer_post
11394
+ summary: Steer to a queued message
11395
+ description: Promote a queued message to the head of the queue and abort the current generation so it is processed next.
11396
+ tags:
11397
+ - messages
11398
+ responses:
11399
+ "200":
11400
+ description: Successful response
11401
+ parameters:
11402
+ - name: id
11403
+ in: path
11404
+ required: true
11405
+ schema:
11406
+ type: string
11407
+ - name: conversationId
11408
+ in: query
11409
+ required: true
11410
+ schema:
11411
+ type: string
11412
+ description: Conversation ID (required)
10864
11413
  /v1/migrations/export:
10865
11414
  post:
10866
11415
  operationId: migrations_export_post
@@ -11361,6 +11910,8 @@ paths:
11361
11910
  type: string
11362
11911
  throwOnError:
11363
11912
  type: boolean
11913
+ originatingConversationId:
11914
+ type: string
11364
11915
  required:
11365
11916
  - sourceEventName
11366
11917
  - sourceChannel
@@ -12532,6 +13083,49 @@ paths:
12532
13083
  responses:
12533
13084
  "200":
12534
13085
  description: Successful response
13086
+ /v1/sanity/connect:
13087
+ post:
13088
+ operationId: sanity_connect_post
13089
+ summary: Finalise Sanity connection and write sidecar file
13090
+ tags:
13091
+ - sanity
13092
+ responses:
13093
+ "200":
13094
+ description: Successful response
13095
+ requestBody:
13096
+ required: true
13097
+ content:
13098
+ application/json:
13099
+ schema:
13100
+ type: object
13101
+ properties:
13102
+ projectId:
13103
+ type: string
13104
+ dataset:
13105
+ type: string
13106
+ required:
13107
+ - projectId
13108
+ - dataset
13109
+ additionalProperties: false
13110
+ /v1/sanity/discover:
13111
+ post:
13112
+ operationId: sanity_discover_post
13113
+ summary: Discover Sanity projects and datasets using the stored API token
13114
+ tags:
13115
+ - sanity
13116
+ responses:
13117
+ "200":
13118
+ description: Successful response
13119
+ requestBody:
13120
+ required: true
13121
+ content:
13122
+ application/json:
13123
+ schema:
13124
+ type: object
13125
+ properties:
13126
+ projectId:
13127
+ type: string
13128
+ additionalProperties: false
12535
13129
  /v1/schedules:
12536
13130
  get:
12537
13131
  operationId: schedules_get