@vellumai/assistant 0.8.7 → 0.8.8-dev.202606052332.17fc8ea

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 (570) hide show
  1. package/Dockerfile +20 -4
  2. package/bun.lock +2 -2
  3. package/docker-entrypoint.sh +4 -2
  4. package/docker-init-apt-root.sh +3 -1
  5. package/docker-kata-apt-env.sh +3 -1
  6. package/docker-kata-runtime-family.sh +12 -0
  7. package/docs/architecture/memory.md +1 -1
  8. package/examples/plugins/echo/README.md +61 -66
  9. package/examples/plugins/echo/hooks/post-tool-use.ts +18 -0
  10. package/examples/plugins/echo/hooks/stop.ts +16 -0
  11. package/examples/plugins/echo/hooks/user-prompt-submit.ts +18 -0
  12. package/examples/plugins/echo/package.json +1 -2
  13. package/examples/plugins/echo/src/emit.ts +19 -0
  14. package/node_modules/@vellumai/skill-host-contracts/src/server-message.ts +3 -3
  15. package/node_modules/@vellumai/skill-host-contracts/src/skill-host.ts +7 -6
  16. package/openapi.yaml +3378 -335
  17. package/package.json +2 -2
  18. package/scripts/generate-openapi.ts +68 -41
  19. package/src/__tests__/agent-loop-exit-reason.test.ts +35 -93
  20. package/src/__tests__/agent-loop-provider-error-recording.test.ts +1 -1
  21. package/src/__tests__/agent-loop.test.ts +37 -87
  22. package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +2 -0
  23. package/src/__tests__/annotate-activity-metadata.test.ts +262 -0
  24. package/src/__tests__/annotate-risk-options.test.ts +2 -3
  25. package/src/__tests__/anthropic-provider.test.ts +95 -2
  26. package/src/__tests__/app-control-flow.test.ts +1 -1
  27. package/src/__tests__/app-dir-path-guard.test.ts +1 -0
  28. package/src/__tests__/approval-routes-http.test.ts +4 -1
  29. package/src/__tests__/assistant-event-hub.test.ts +25 -0
  30. package/src/__tests__/assistant-events-sse-shed.test.ts +8 -0
  31. package/src/__tests__/{conversation-stream-state.test.ts → assistant-stream-state.test.ts} +252 -91
  32. package/src/__tests__/auth-fallback-events-store.test.ts +116 -0
  33. package/src/__tests__/background-workers-disk-pressure.test.ts +6 -0
  34. package/src/__tests__/btw-routes.test.ts +62 -3
  35. package/src/__tests__/build-persisted-content.test.ts +184 -0
  36. package/src/__tests__/catalog-files.test.ts +1 -1
  37. package/src/__tests__/channel-approval-routes.test.ts +1 -1
  38. package/src/__tests__/channel-approvals.test.ts +1 -1
  39. package/src/__tests__/clawhub-files.test.ts +1 -1
  40. package/src/__tests__/compaction-circuit.test.ts +258 -0
  41. package/src/__tests__/compaction-direct.test.ts +132 -0
  42. package/src/__tests__/compaction.benchmark.test.ts +0 -30
  43. package/src/__tests__/config-watcher.test.ts +1 -1
  44. package/src/__tests__/conversation-abort-tool-results.test.ts +57 -19
  45. package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +6 -5
  46. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +10 -7
  47. package/src/__tests__/conversation-agent-loop-overflow.test.ts +316 -1143
  48. package/src/__tests__/conversation-agent-loop.test.ts +638 -1655
  49. package/src/__tests__/conversation-analysis-routes.test.ts +6 -0
  50. package/src/__tests__/conversation-clean-command.test.ts +5 -2
  51. package/src/__tests__/conversation-history-web-search.test.ts +11 -1
  52. package/src/__tests__/conversation-pairing.test.ts +4 -31
  53. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +6 -0
  54. package/src/__tests__/conversation-provider-retry-repair.test.ts +30 -10
  55. package/src/__tests__/conversation-queue.test.ts +2 -0
  56. package/src/__tests__/conversation-routes-disk-view.test.ts +3 -0
  57. package/src/__tests__/conversation-routes-slash-commands.test.ts +6 -5
  58. package/src/__tests__/conversation-runtime-assembly.test.ts +310 -300
  59. package/src/__tests__/conversation-runtime-workspace.test.ts +105 -45
  60. package/src/__tests__/conversation-slash-commands.test.ts +8 -42
  61. package/src/__tests__/conversation-slash-queue.test.ts +6 -1
  62. package/src/__tests__/conversation-starter-routes.test.ts +14 -6
  63. package/src/__tests__/conversation-surfaces-action-delivery.test.ts +84 -0
  64. package/src/__tests__/conversation-sync-tags.test.ts +27 -15
  65. package/src/__tests__/conversation-title-service.test.ts +135 -2
  66. package/src/__tests__/conversation-workspace-cache-state.test.ts +17 -16
  67. package/src/__tests__/conversation-workspace-injection.test.ts +67 -2
  68. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +7 -6
  69. package/src/__tests__/conversations-import-system-filter.test.ts +101 -0
  70. package/src/__tests__/cross-provider-web-search.test.ts +214 -1
  71. package/src/__tests__/db-acp-history.test.ts +101 -0
  72. package/src/__tests__/db-schedule-syntax-migration.test.ts +5 -0
  73. package/src/__tests__/dm-persistence.test.ts +5 -1
  74. package/src/__tests__/dynamic-page-surface.test.ts +31 -0
  75. package/src/__tests__/empty-response-hook.test.ts +304 -0
  76. package/src/__tests__/feature-flag-test-helpers.ts +2 -2
  77. package/src/__tests__/file-write-tool.test.ts +63 -0
  78. package/src/__tests__/gateway-only-guard.test.ts +12 -2
  79. package/src/__tests__/gemini-image-service.test.ts +13 -0
  80. package/src/__tests__/guardian-grant-minting.test.ts +1 -1
  81. package/src/__tests__/guardian-routing-invariants.test.ts +2 -4
  82. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +1 -1
  83. package/src/__tests__/heartbeat-disk-pressure.test.ts +1 -0
  84. package/src/__tests__/heartbeat-service.test.ts +1 -0
  85. package/src/__tests__/helpers/mock-provider.ts +110 -0
  86. package/src/__tests__/helpers/native-web-search-harness.ts +129 -0
  87. package/src/__tests__/history-repair-hook.test.ts +1 -0
  88. package/src/__tests__/host-app-control-routes.test.ts +1 -1
  89. package/src/__tests__/host-cu-routes-targeted.test.ts +3 -3
  90. package/src/__tests__/identity-intro-cache.test.ts +12 -100
  91. package/src/__tests__/identity-routes.test.ts +248 -7
  92. package/src/__tests__/inbound-slack-persistence.test.ts +5 -1
  93. package/src/__tests__/injector-background-turn.test.ts +3 -9
  94. package/src/__tests__/injector-chain.test.ts +139 -275
  95. package/src/__tests__/injector-disk-pressure.test.ts +75 -41
  96. package/src/__tests__/injector-document-comments.test.ts +3 -3
  97. package/src/__tests__/injector-pkb-v2-silenced.test.ts +30 -22
  98. package/src/__tests__/injector-v3-suppression.test.ts +31 -37
  99. package/src/__tests__/internal-telemetry-routes.test.ts +109 -0
  100. package/src/__tests__/list-messages-hidden-metadata.test.ts +38 -0
  101. package/src/__tests__/list-messages-page-latest.test.ts +60 -0
  102. package/src/__tests__/list-messages-tool-merge.test.ts +20 -0
  103. package/src/__tests__/llm-usage-store.test.ts +223 -1
  104. package/src/__tests__/memory-retrieval-hook.test.ts +297 -0
  105. package/src/__tests__/memory-v2-static-injector.test.ts +103 -35
  106. package/src/__tests__/native-web-search.test.ts +191 -0
  107. package/src/__tests__/onboarding-template-contract.test.ts +2 -0
  108. package/src/__tests__/openai-image-service.test.ts +17 -0
  109. package/src/__tests__/openai-provider.test.ts +31 -1
  110. package/src/__tests__/{overflow-reduce-pipeline.test.ts → overflow-reduction-loop.test.ts} +64 -284
  111. package/src/__tests__/persist-unsendable-image.test.ts +215 -0
  112. package/src/__tests__/persistence-secret-redaction.test.ts +1 -0
  113. package/src/__tests__/pkb-autoinject.test.ts +2 -5
  114. package/src/__tests__/plugin-api-shim.test.ts +3 -6
  115. package/src/__tests__/plugin-bootstrap.test.ts +14 -40
  116. package/src/__tests__/plugin-registry.test.ts +3 -76
  117. package/src/__tests__/plugin-types.test.ts +0 -193
  118. package/src/__tests__/process-message-display-content.test.ts +6 -2
  119. package/src/__tests__/reaction-persistence.test.ts +1 -1
  120. package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +5 -1
  121. package/src/__tests__/resolve-trust-class.test.ts +4 -4
  122. package/src/__tests__/runtime-events-sse-reconnect.test.ts +60 -23
  123. package/src/__tests__/schedule-routes.test.ts +603 -2
  124. package/src/__tests__/schedule-store.test.ts +41 -0
  125. package/src/__tests__/schedule-tools.test.ts +35 -0
  126. package/src/__tests__/send-endpoint-busy.test.ts +4 -1
  127. package/src/__tests__/server-history-render.test.ts +314 -1
  128. package/src/__tests__/skill-feature-flags-integration.test.ts +33 -0
  129. package/src/__tests__/skillssh-files.test.ts +1 -1
  130. package/src/__tests__/subagent-call-site-routing.test.ts +1 -1
  131. package/src/__tests__/subagent-fork-notifications.test.ts +1 -3
  132. package/src/__tests__/subagent-fork-spawn.test.ts +1 -1
  133. package/src/__tests__/subagent-manager-notify.test.ts +1 -3
  134. package/src/__tests__/subagent-notify-parent.test.ts +1 -3
  135. package/src/__tests__/subagent-spawn-tool-fork.test.ts +1 -1
  136. package/src/__tests__/system-prompt.test.ts +20 -0
  137. package/src/__tests__/task-scheduler.test.ts +162 -1
  138. package/src/__tests__/terminal-tools.test.ts +6 -1
  139. package/src/__tests__/title-generate-hook.test.ts +319 -0
  140. package/src/__tests__/tool-error-hook.test.ts +278 -0
  141. package/src/__tests__/tool-preview-lifecycle.test.ts +468 -5
  142. package/src/__tests__/tool-result-metadata-plumbing.test.ts +1 -0
  143. package/src/__tests__/tool-result-truncate-hook.test.ts +127 -0
  144. package/src/__tests__/tool-result-truncation.test.ts +0 -2
  145. package/src/__tests__/ui-choice-copy-surfaces.test.ts +254 -0
  146. package/src/__tests__/ui-work-result-surface.test.ts +159 -0
  147. package/src/__tests__/usage-routes.test.ts +285 -1
  148. package/src/__tests__/user-plugin-loader.test.ts +54 -286
  149. package/src/__tests__/voice-session-bridge.test.ts +6 -3
  150. package/src/__tests__/web-search-backend-failure.test.ts +166 -0
  151. package/src/acp/__tests__/agent-process.test.ts +161 -0
  152. package/src/acp/__tests__/client-handler.test.ts +40 -0
  153. package/src/acp/__tests__/helpers/acp-history-db.ts +82 -0
  154. package/src/acp/__tests__/helpers/exec-file-stub.ts +101 -0
  155. package/src/acp/__tests__/prepare-agent-env.test.ts +137 -0
  156. package/src/acp/__tests__/session-manager-persistence.test.ts +95 -28
  157. package/src/acp/__tests__/session-manager-resume.test.ts +736 -0
  158. package/src/acp/agent-process.ts +61 -1
  159. package/src/acp/auto-install.test.ts +196 -0
  160. package/src/acp/auto-install.ts +177 -0
  161. package/src/acp/client-handler.ts +31 -0
  162. package/src/acp/feature-gate.test.ts +48 -0
  163. package/src/acp/feature-gate.ts +34 -0
  164. package/src/acp/prepare-agent-env.ts +83 -29
  165. package/src/acp/resolve-agent.test.ts +320 -7
  166. package/src/acp/resolve-agent.ts +182 -18
  167. package/src/acp/resume-hint.ts +25 -0
  168. package/src/acp/session-manager.ts +495 -73
  169. package/src/acp/types.ts +8 -0
  170. package/src/agent/compaction-circuit.ts +60 -102
  171. package/src/agent/loop.ts +362 -485
  172. package/src/api/events/assistant-thinking-delta.ts +33 -0
  173. package/src/api/events/tool-output-chunk.ts +45 -0
  174. package/src/api/events/tool-use-preview-start.ts +32 -0
  175. package/src/api/events/trace-event.ts +69 -0
  176. package/src/api/index.ts +48 -13
  177. package/src/api/responses/conversation-message.ts +374 -0
  178. package/src/approvals/guardian-request-resolvers.ts +1 -1
  179. package/src/avatar/__tests__/avatar-store.test.ts +34 -29
  180. package/src/background-wake/next-wake.ts +1 -0
  181. package/src/cli/commands/__tests__/notifications.test.ts +58 -14
  182. package/src/cli/commands/notifications.ts +112 -60
  183. package/src/config/__tests__/feature-flag-registry-guard.test.ts +2 -2
  184. package/src/config/acp-defaults.test.ts +10 -0
  185. package/src/config/acp-defaults.ts +6 -0
  186. package/src/config/assistant-feature-flags.ts +22 -11
  187. package/src/config/bundled-skills/acp/SKILL.md +83 -31
  188. package/src/config/bundled-skills/acp/TOOLS.json +4 -4
  189. package/src/config/bundled-skills/app-builder/SKILL.md +224 -398
  190. package/src/config/bundled-skills/app-builder/TOOLS.json +29 -0
  191. package/src/config/bundled-skills/app-builder/references/DESIGN_SYSTEM.md +48 -0
  192. package/src/config/bundled-skills/app-builder/references/RESPONSIVE.md +57 -0
  193. package/src/config/bundled-skills/app-builder/references/SLIDES.md +38 -0
  194. package/src/config/bundled-skills/app-builder/references/examples/README.md +17 -0
  195. package/src/config/bundled-skills/app-builder/references/examples/expense-tracker.md +515 -0
  196. package/src/config/bundled-skills/app-builder/references/examples/focus-timer.md +342 -0
  197. package/src/config/bundled-skills/app-builder/references/examples/habit-tracker.md +490 -0
  198. package/src/config/bundled-skills/app-builder/tools/app-list.ts +62 -0
  199. package/src/config/bundled-skills/document-editor/SKILL.md +28 -23
  200. package/src/config/bundled-skills/document-editor/TOOLS.json +1 -1
  201. package/src/config/bundled-skills/messaging/SKILL.md +0 -7
  202. package/src/config/bundled-tool-registry.ts +2 -0
  203. package/src/config/feature-flag-cache.ts +3 -3
  204. package/src/config/feature-flag-registry.json +48 -7
  205. package/src/config/schemas/__tests__/memory-v2.test.ts +1 -0
  206. package/src/config/schemas/__tests__/memory-v3.test.ts +25 -0
  207. package/src/config/schemas/heartbeat.ts +9 -0
  208. package/src/config/schemas/llm.ts +1 -0
  209. package/src/config/schemas/memory-v2.ts +8 -0
  210. package/src/config/schemas/memory-v3.ts +8 -0
  211. package/src/config/schemas/platform.ts +8 -0
  212. package/src/config/seed-inference-profiles.ts +2 -2
  213. package/src/config/skills.ts +13 -0
  214. package/src/context/compactor.ts +1 -1
  215. package/src/context/strip-injections.ts +128 -0
  216. package/src/context/token-estimator.ts +23 -0
  217. package/src/context/tool-result-truncation.ts +0 -23
  218. package/src/context/window-manager.ts +5 -7
  219. package/src/credential-execution/executable-discovery.ts +16 -0
  220. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +6 -0
  221. package/src/daemon/__tests__/inference-profile-notification.test.ts +153 -0
  222. package/src/daemon/__tests__/native-web-search-metadata.test.ts +10 -8
  223. package/src/daemon/assistant-attachments.ts +1 -1
  224. package/src/daemon/config-watcher.ts +2 -2
  225. package/src/daemon/context-overflow-reducer.ts +0 -1
  226. package/src/daemon/conversation-agent-loop-handlers.ts +594 -153
  227. package/src/daemon/conversation-agent-loop.ts +301 -997
  228. package/src/daemon/conversation-history.ts +5 -4
  229. package/src/daemon/conversation-lifecycle.ts +3 -4
  230. package/src/daemon/conversation-messaging.ts +7 -6
  231. package/src/daemon/conversation-process.ts +11 -16
  232. package/src/daemon/conversation-registry.ts +159 -0
  233. package/src/daemon/conversation-runtime-assembly.ts +218 -398
  234. package/src/daemon/conversation-slash.ts +6 -25
  235. package/src/daemon/conversation-store.ts +9 -90
  236. package/src/daemon/conversation-surfaces.ts +222 -4
  237. package/src/daemon/conversation-tool-setup.ts +2 -29
  238. package/src/daemon/conversation-workspace.ts +17 -0
  239. package/src/daemon/conversation.ts +32 -20
  240. package/src/daemon/external-plugins-bootstrap.ts +17 -18
  241. package/src/daemon/handlers/config-a2a.ts +51 -36
  242. package/src/daemon/handlers/config-slack-channel.ts +20 -14
  243. package/src/daemon/handlers/config-telegram.ts +16 -2
  244. package/src/daemon/handlers/conversations.ts +3 -1
  245. package/src/daemon/handlers/shared.ts +156 -84
  246. package/src/daemon/handlers/skills.ts +42 -10
  247. package/src/daemon/lifecycle.ts +25 -0
  248. package/src/daemon/message-types/apps.ts +1 -29
  249. package/src/daemon/message-types/messages.ts +9 -57
  250. package/src/daemon/message-types/skills.ts +2 -0
  251. package/src/daemon/message-types/surfaces.ts +136 -3
  252. package/src/daemon/now-scratchpad.ts +21 -0
  253. package/src/daemon/orphan-reaper.test.ts +210 -0
  254. package/src/daemon/orphan-reaper.ts +240 -0
  255. package/src/daemon/overflow-reduction-loop.ts +230 -0
  256. package/src/daemon/persist-unsendable-image.ts +117 -0
  257. package/src/daemon/process-message.ts +1 -3
  258. package/src/daemon/server.ts +2 -0
  259. package/src/daemon/trace-emitter.ts +6 -4
  260. package/src/daemon/trust-context.ts +19 -0
  261. package/src/daemon/wake-target-adapter.ts +3 -1
  262. package/src/heartbeat/__tests__/heartbeat-service.test.ts +3 -0
  263. package/src/heartbeat/heartbeat-run-store.ts +23 -1
  264. package/src/heartbeat/heartbeat-service.ts +26 -0
  265. package/src/home/home-greeting-cache.ts +24 -1
  266. package/src/ipc/__tests__/browser-ipc.test.ts +1 -1
  267. package/src/ipc/__tests__/ui-request-route.test.ts +3 -3
  268. package/src/ipc/gateway-client.test.ts +2 -2
  269. package/src/ipc/gateway-client.ts +3 -3
  270. package/src/ipc/skill-routes/__tests__/memory.test.ts +15 -0
  271. package/src/ipc/skill-routes/memory.ts +4 -2
  272. package/src/media/gemini-image-service.ts +15 -0
  273. package/src/media/openai-image-service.ts +14 -0
  274. package/src/media/types.ts +34 -0
  275. package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +56 -0
  276. package/src/memory/auth-fallback-events-store.ts +94 -0
  277. package/src/memory/conversation-starter-checkpoints.ts +1 -0
  278. package/src/memory/conversation-title-service.ts +65 -41
  279. package/src/memory/db-init.ts +6 -0
  280. package/src/memory/graph/__tests__/conversation-graph-memory-registry.test.ts +119 -0
  281. package/src/memory/graph/conversation-graph-memory.ts +65 -0
  282. package/src/memory/job-handlers/conversation-starters.ts +13 -2
  283. package/src/memory/jobs-store.ts +33 -0
  284. package/src/memory/jobs-worker.ts +32 -5
  285. package/src/memory/llm-usage-store.ts +224 -50
  286. package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +6 -5
  287. package/src/memory/migrations/270-schedule-source-conversation.ts +13 -0
  288. package/src/memory/migrations/271-create-auth-fallback-events.ts +21 -0
  289. package/src/memory/migrations/272-acp-session-history-cwd.ts +36 -0
  290. package/src/memory/migrations/index.ts +3 -0
  291. package/src/memory/pkb/autoinject.ts +61 -0
  292. package/src/memory/pkb/context.ts +50 -0
  293. package/src/memory/pkb/types.ts +14 -0
  294. package/src/memory/schedule-attribution-sql.ts +104 -0
  295. package/src/memory/schema/acp.ts +4 -0
  296. package/src/memory/schema/infrastructure.ts +16 -0
  297. package/src/memory/usage-grouped-buckets.ts +6 -1
  298. package/src/memory/v2/__tests__/consolidation-job.test.ts +4 -4
  299. package/src/memory/v2/consolidation-job.ts +14 -5
  300. package/src/notifications/conversation-pairing.ts +8 -15
  301. package/src/notifications/decision-engine.ts +6 -3
  302. package/src/notifications/home-feed-side-effect.ts +12 -1
  303. package/src/permissions/prompter.ts +4 -0
  304. package/src/plugin-api/constants.ts +4 -0
  305. package/src/plugin-api/index.ts +7 -5
  306. package/src/plugin-api/types.ts +151 -1
  307. package/src/plugins/defaults/compaction/compact.ts +59 -0
  308. package/src/plugins/defaults/compaction/package.json +1 -1
  309. package/src/plugins/defaults/compaction/register.ts +8 -19
  310. package/src/plugins/defaults/empty-response/hooks/stop.ts +126 -0
  311. package/src/plugins/defaults/empty-response/register.ts +8 -13
  312. package/src/plugins/defaults/index.ts +2 -18
  313. package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +95 -0
  314. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit-temp.ts +216 -0
  315. package/src/plugins/defaults/memory-retrieval/injector-chain.ts +35 -0
  316. package/src/plugins/defaults/{injectors/register.ts → memory-retrieval/injectors.ts} +288 -81
  317. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/assign.test.ts +4 -4
  318. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/health.test.ts +16 -0
  319. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/live-integration.test.ts +4 -4
  320. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/maintain-job.test.ts +5 -5
  321. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/orchestrate.test.ts +48 -12
  322. package/src/plugins/defaults/memory-v3-shadow/__tests__/provider-blocks.test.ts +13 -0
  323. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/reconcile.test.ts +2 -2
  324. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/render-injection.test.ts +1 -1
  325. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/router.test.ts +104 -32
  326. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/selection-log-store.test.ts +8 -8
  327. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/selector.test.ts +96 -30
  328. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/shadow-plugin.test.ts +34 -16
  329. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/assign.ts +5 -5
  330. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/capabilities.ts +2 -2
  331. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/health.ts +0 -0
  332. package/src/plugins/defaults/memory-v3-shadow/hooks/post-compact.ts +14 -0
  333. package/src/plugins/defaults/memory-v3-shadow/hooks/user-prompt-submit.ts +19 -0
  334. package/src/plugins/defaults/memory-v3-shadow/injector.ts +75 -0
  335. package/src/plugins/defaults/memory-v3-shadow/llm-retry.ts +32 -0
  336. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/maintain-job.ts +8 -8
  337. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/orchestrate.ts +26 -14
  338. package/src/plugins/defaults/{llm-call → memory-v3-shadow}/package.json +2 -2
  339. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/page-content.ts +2 -2
  340. package/src/plugins/defaults/memory-v3-shadow/provider-blocks.ts +26 -0
  341. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/reconcile.ts +3 -3
  342. package/src/plugins/defaults/memory-v3-shadow/register.ts +26 -0
  343. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/render-injection.ts +1 -1
  344. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/router.ts +51 -45
  345. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/selection-log-store.ts +4 -4
  346. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/selector.ts +61 -46
  347. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/shadow-plugin.ts +69 -99
  348. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/tree.ts +1 -1
  349. package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/types.ts +8 -0
  350. package/src/plugins/defaults/title-generate/hooks/stop.ts +75 -0
  351. package/src/plugins/defaults/title-generate/hooks/user-prompt-submit.ts +35 -0
  352. package/src/plugins/defaults/title-generate/package.json +1 -1
  353. package/src/plugins/defaults/title-generate/register.ts +18 -18
  354. package/src/plugins/defaults/tool-error/hooks/post-tool-use.ts +118 -0
  355. package/src/plugins/defaults/tool-error/package.json +1 -1
  356. package/src/plugins/defaults/tool-error/register.ts +9 -21
  357. package/src/plugins/defaults/tool-result-truncate/hooks/post-tool-use.ts +32 -0
  358. package/src/plugins/defaults/tool-result-truncate/register.ts +10 -21
  359. package/src/plugins/defaults/tool-result-truncate/terminal.ts +37 -18
  360. package/src/plugins/external-api.ts +2 -2
  361. package/src/plugins/pipeline.ts +6 -305
  362. package/src/plugins/registry.ts +10 -55
  363. package/src/plugins/types.ts +62 -797
  364. package/src/plugins/user-loader.ts +30 -127
  365. package/src/proactive-artifact/aux-message-injector.ts +4 -4
  366. package/src/proactive-artifact/job.test.ts +8 -13
  367. package/src/prompts/__tests__/system-prompt.test.ts +42 -0
  368. package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +64 -0
  369. package/src/prompts/templates/BOOTSTRAP.md +2 -2
  370. package/src/prompts/templates/system-sections.ts +15 -0
  371. package/src/providers/anthropic/client.ts +37 -29
  372. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +112 -0
  373. package/src/providers/openai/chat-completions-provider.ts +44 -0
  374. package/src/providers/openrouter/client.ts +1 -0
  375. package/src/providers/placeholder-sentinels.ts +35 -0
  376. package/src/runtime/__tests__/agent-wake.test.ts +10 -6
  377. package/src/runtime/__tests__/interactive-ui.test.ts +1 -1
  378. package/src/runtime/agent-wake.ts +2 -5
  379. package/src/runtime/assistant-event-hub.ts +37 -7
  380. package/src/runtime/{conversation-stream-state.ts → assistant-stream-state.ts} +132 -58
  381. package/src/runtime/channel-approvals.ts +1 -1
  382. package/src/runtime/http-router.ts +16 -21
  383. package/src/runtime/http-types.ts +16 -70
  384. package/src/runtime/interactive-ui.ts +1 -1
  385. package/src/runtime/pending-interactions.ts +1 -0
  386. package/src/runtime/routes/__tests__/acp-routes.test.ts +283 -55
  387. package/src/runtime/routes/__tests__/consolidation-routes.test.ts +265 -2
  388. package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +1 -1
  389. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +31 -1
  390. package/src/runtime/routes/__tests__/memory-v2-routes.test.ts +6 -2
  391. package/src/runtime/routes/__tests__/surface-action-routes.test.ts +5 -4
  392. package/src/runtime/routes/__tests__/surface-content-routes.test.ts +4 -1
  393. package/src/runtime/routes/__tests__/tts-routes.test.ts +6 -2
  394. package/src/runtime/routes/acp-routes.test.ts +89 -25
  395. package/src/runtime/routes/acp-routes.ts +81 -29
  396. package/src/runtime/routes/app-management-routes.ts +6 -117
  397. package/src/runtime/routes/app-routes.ts +13 -15
  398. package/src/runtime/routes/approval-routes.ts +1 -1
  399. package/src/runtime/routes/attachment-routes.ts +26 -15
  400. package/src/runtime/routes/avatar-routes.ts +26 -0
  401. package/src/runtime/routes/browser-routes.ts +1 -1
  402. package/src/runtime/routes/browser-tabs-routes.ts +6 -10
  403. package/src/runtime/routes/btw-routes.ts +29 -23
  404. package/src/runtime/routes/consolidation-routes.ts +120 -20
  405. package/src/runtime/routes/conversation-cli-routes.ts +1 -1
  406. package/src/runtime/routes/conversation-list-routes.ts +1 -1
  407. package/src/runtime/routes/conversation-query-routes.ts +3 -1
  408. package/src/runtime/routes/conversation-routes.ts +372 -185
  409. package/src/runtime/routes/conversation-starter-routes.ts +13 -7
  410. package/src/runtime/routes/conversations-import-routes.ts +24 -7
  411. package/src/runtime/routes/documents-routes.ts +4 -0
  412. package/src/runtime/routes/domain-routes.ts +51 -37
  413. package/src/runtime/routes/epoch-millis-range.ts +34 -0
  414. package/src/runtime/routes/events-routes.ts +28 -34
  415. package/src/runtime/routes/gateway-log-routes.ts +26 -4
  416. package/src/runtime/routes/heartbeat-routes.ts +32 -12
  417. package/src/runtime/routes/host-app-control-routes.ts +1 -1
  418. package/src/runtime/routes/host-cu-routes.ts +1 -1
  419. package/src/runtime/routes/identity-intro-cache.ts +11 -34
  420. package/src/runtime/routes/identity-routes.ts +224 -18
  421. package/src/runtime/routes/image-generation-routes.ts +40 -2
  422. package/src/runtime/routes/inbound-message-handler.ts +1 -1
  423. package/src/runtime/routes/index.ts +2 -0
  424. package/src/runtime/routes/integrations/a2a.ts +12 -10
  425. package/src/runtime/routes/integrations/slack/__tests__/channel.test.ts +16 -0
  426. package/src/runtime/routes/integrations/slack/channel.ts +4 -0
  427. package/src/runtime/routes/integrations/slack/share.ts +27 -6
  428. package/src/runtime/routes/integrations/telegram.ts +6 -0
  429. package/src/runtime/routes/integrations/twilio.ts +42 -0
  430. package/src/runtime/routes/internal-telemetry-routes.ts +88 -0
  431. package/src/runtime/routes/log-export-routes.ts +8 -0
  432. package/src/runtime/routes/memory-v2-routes.ts +15 -8
  433. package/src/runtime/routes/memory-v3-routes.ts +66 -34
  434. package/src/runtime/routes/oauth-apps.ts +66 -12
  435. package/src/runtime/routes/oauth-providers.ts +44 -5
  436. package/src/runtime/routes/platform-routes.ts +81 -5
  437. package/src/runtime/routes/playground/__tests__/force-compact.test.ts +6 -4
  438. package/src/runtime/routes/playground/force-compact.ts +1 -1
  439. package/src/runtime/routes/playground/helpers.ts +1 -1
  440. package/src/runtime/routes/rename-conversation-routes.ts +5 -0
  441. package/src/runtime/routes/schedule-routes.ts +152 -42
  442. package/src/runtime/routes/secret-routes.ts +14 -2
  443. package/src/runtime/routes/skills-routes.ts +43 -14
  444. package/src/runtime/routes/surface-conversation-resolver.ts +4 -3
  445. package/src/runtime/routes/tool-call-confirmation-enrichment.test.ts +161 -0
  446. package/src/runtime/routes/tool-call-confirmation-enrichment.ts +107 -0
  447. package/src/runtime/routes/trust-rules-routes.ts +26 -2
  448. package/src/runtime/routes/tts-routes.ts +35 -0
  449. package/src/runtime/routes/types.ts +66 -8
  450. package/src/runtime/routes/usage-routes.ts +47 -39
  451. package/src/runtime/routes/webhook-routes.ts +41 -2
  452. package/src/runtime/routes/work-items-routes.ts +2 -4
  453. package/src/runtime/routes/workspace-routes.ts +4 -0
  454. package/src/runtime/services/__tests__/analyze-conversation.test.ts +6 -0
  455. package/src/runtime/services/analyze-conversation.ts +2 -2
  456. package/src/runtime/services/conversation-serializer.ts +1 -1
  457. package/src/schedule/schedule-store.ts +20 -1
  458. package/src/schedule/schedule-usage-store.ts +83 -0
  459. package/src/schedule/scheduler.ts +12 -5
  460. package/src/signals/cancel.ts +2 -4
  461. package/src/skills/catalog-files.ts +2 -2
  462. package/src/skills/catalog-install.ts +3 -0
  463. package/src/skills/categories-cache.ts +118 -0
  464. package/src/skills/clawhub-files.ts +1 -2
  465. package/src/skills/skillssh-files.ts +1 -2
  466. package/src/subagent/manager.ts +17 -5
  467. package/src/telemetry/types.ts +29 -1
  468. package/src/telemetry/usage-telemetry-reporter.test.ts +112 -3
  469. package/src/telemetry/usage-telemetry-reporter.ts +57 -2
  470. package/src/tools/acp/context.ts +20 -0
  471. package/src/tools/acp/list-agents.test.ts +7 -1
  472. package/src/tools/acp/spawn.test.ts +158 -55
  473. package/src/tools/acp/spawn.ts +47 -72
  474. package/src/tools/acp/steer.test.ts +105 -8
  475. package/src/tools/acp/steer.ts +48 -17
  476. package/src/tools/apps/executors.ts +13 -8
  477. package/src/tools/executor.ts +1 -53
  478. package/src/tools/filesystem/write.ts +34 -0
  479. package/src/tools/network/__tests__/web-search-metadata.test.ts +7 -1
  480. package/src/tools/network/__tests__/web-search.test.ts +11 -3
  481. package/src/tools/network/web-search-error.test.ts +248 -0
  482. package/src/tools/network/web-search-error.ts +267 -0
  483. package/src/tools/network/web-search.ts +207 -48
  484. package/src/tools/schedule/create.ts +2 -0
  485. package/src/tools/subagent/spawn.ts +2 -4
  486. package/src/tools/terminal/safe-env.ts +10 -1
  487. package/src/tools/ui-surface/definitions.ts +34 -5
  488. package/src/tts/__tests__/provider-catalog-consistency.test.ts +85 -1
  489. package/src/tts/provider-catalog.ts +76 -1
  490. package/src/util/mutex.ts +47 -0
  491. package/src/workspace/git-service.ts +1 -42
  492. package/src/workspace/migrations/051-seed-conversation-summarization-callsite.ts +4 -5
  493. package/src/workspace/migrations/095-bump-heartbeat-interval-30m-to-60m.ts +51 -0
  494. package/src/workspace/migrations/096-reduce-quality-profile-effort.ts +72 -0
  495. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +117 -0
  496. package/src/workspace/migrations/registry.ts +6 -0
  497. package/docs/plugins.md +0 -836
  498. package/examples/plugins/echo/register.ts +0 -184
  499. package/src/__tests__/bootstrap-turn-cleanup.test.ts +0 -44
  500. package/src/__tests__/circuit-breaker-pipeline.test.ts +0 -405
  501. package/src/__tests__/compaction-pipeline.test.ts +0 -210
  502. package/src/__tests__/compaction-timeout-recovery.test.ts +0 -251
  503. package/src/__tests__/empty-response-pipeline.test.ts +0 -423
  504. package/src/__tests__/llm-call-pipeline.test.ts +0 -287
  505. package/src/__tests__/memory-retrieval-pipeline.test.ts +0 -418
  506. package/src/__tests__/persistence-pipeline.test.ts +0 -503
  507. package/src/__tests__/pipeline-runner.test.ts +0 -564
  508. package/src/__tests__/title-generate-pipeline.test.ts +0 -211
  509. package/src/__tests__/token-estimate-pipeline.test.ts +0 -479
  510. package/src/__tests__/tool-error-pipeline.test.ts +0 -241
  511. package/src/__tests__/tool-execute-pipeline.test.ts +0 -417
  512. package/src/__tests__/tool-result-truncate-pipeline.test.ts +0 -341
  513. package/src/daemon/bootstrap-turn-cleanup.ts +0 -45
  514. package/src/gallery/default-gallery.ts +0 -1359
  515. package/src/gallery/gallery-manifest.ts +0 -28
  516. package/src/home/feature-gate.ts +0 -22
  517. package/src/memory/v3/provider-blocks.ts +0 -16
  518. package/src/plugins/defaults/circuit-breaker/middlewares/circuitBreaker.ts +0 -93
  519. package/src/plugins/defaults/circuit-breaker/package.json +0 -15
  520. package/src/plugins/defaults/circuit-breaker/register.ts +0 -39
  521. package/src/plugins/defaults/compaction/middlewares/compaction.ts +0 -25
  522. package/src/plugins/defaults/compaction/terminal.ts +0 -73
  523. package/src/plugins/defaults/empty-response/middlewares/emptyResponse.ts +0 -22
  524. package/src/plugins/defaults/empty-response/terminal.ts +0 -106
  525. package/src/plugins/defaults/injectors/package.json +0 -15
  526. package/src/plugins/defaults/llm-call/middlewares/llmCall.ts +0 -17
  527. package/src/plugins/defaults/llm-call/register.ts +0 -45
  528. package/src/plugins/defaults/memory-retrieval/middlewares/memoryRetrieval.ts +0 -17
  529. package/src/plugins/defaults/memory-retrieval/package.json +0 -15
  530. package/src/plugins/defaults/memory-retrieval/register.ts +0 -181
  531. package/src/plugins/defaults/overflow-reduce/middlewares/overflowReduce.ts +0 -126
  532. package/src/plugins/defaults/overflow-reduce/package.json +0 -15
  533. package/src/plugins/defaults/overflow-reduce/register.ts +0 -42
  534. package/src/plugins/defaults/persistence/middlewares/persistence.ts +0 -19
  535. package/src/plugins/defaults/persistence/package.json +0 -15
  536. package/src/plugins/defaults/persistence/register.ts +0 -38
  537. package/src/plugins/defaults/persistence/terminal.ts +0 -83
  538. package/src/plugins/defaults/title-generate/terminal.ts +0 -31
  539. package/src/plugins/defaults/token-estimate/middlewares/tokenEstimate.ts +0 -23
  540. package/src/plugins/defaults/token-estimate/package.json +0 -15
  541. package/src/plugins/defaults/token-estimate/register.ts +0 -34
  542. package/src/plugins/defaults/token-estimate/terminal.ts +0 -40
  543. package/src/plugins/defaults/tool-error/middlewares/toolError.ts +0 -21
  544. package/src/plugins/defaults/tool-error/terminal.ts +0 -47
  545. package/src/plugins/defaults/tool-execute/middlewares/toolExecute.ts +0 -23
  546. package/src/plugins/defaults/tool-execute/package.json +0 -15
  547. package/src/plugins/defaults/tool-execute/register.ts +0 -49
  548. package/src/plugins/defaults/tool-result-truncate/middlewares/toolResultTruncate.ts +0 -23
  549. package/src/plugins/defaults/tool-result-truncate/types.ts +0 -22
  550. package/src/skills/category-inference.ts +0 -111
  551. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/capabilities.test.ts +0 -0
  552. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/core.test.ts +0 -0
  553. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/fixtures/eval-turns.json +0 -0
  554. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/fixtures/live-turns.json +0 -0
  555. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/needle.test.ts +0 -0
  556. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/snapshot.test.ts +0 -0
  557. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/tree.test.ts +0 -0
  558. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/types.test.ts +0 -0
  559. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/working-set-eviction.test.ts +0 -0
  560. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/__tests__/working-set-skeleton.test.ts +0 -0
  561. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/core.ts +0 -0
  562. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/data/README.md +0 -0
  563. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/data/assignments.json +0 -0
  564. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/data/core.json +0 -0
  565. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/data/leaves/domain-a/topic-x.md +0 -0
  566. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/data/leaves/domain-a/topic-y.md +0 -0
  567. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/data/leaves/domain-b/topic-z.md +0 -0
  568. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/needle.ts +0 -0
  569. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/snapshot.ts +0 -0
  570. /package/src/{memory/v3 → plugins/defaults/memory-v3-shadow}/working-set.ts +0 -0
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.8.7
6
+ version: 0.8.8
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
@@ -95,7 +95,9 @@ paths:
95
95
  post:
96
96
  operationId: acp_by_id_steer_post
97
97
  summary: Steer ACP session
98
- description: Send a steering instruction to an active ACP session.
98
+ description:
99
+ Send a steering instruction to an ACP session. Sessions no longer in memory (completed, or lost to a daemon
100
+ restart) are transparently resumed from persisted history first, when the agent supports ACP session loading.
99
101
  tags:
100
102
  - acp
101
103
  responses:
@@ -110,6 +112,9 @@ paths:
110
112
  type: string
111
113
  steered:
112
114
  type: boolean
115
+ resumed:
116
+ description: True when the session was resumed from persisted history before steering.
117
+ type: boolean
113
118
  required:
114
119
  - acpSessionId
115
120
  - steered
@@ -136,7 +141,9 @@ paths:
136
141
  delete:
137
142
  operationId: acp_sessions_delete
138
143
  summary: Bulk-clear terminal ACP sessions
139
- description: Remove every terminal-state row (completed/failed/cancelled) from the persisted acp_session_history table.
144
+ description:
145
+ Remove every terminal-state row (completed/failed/cancelled) from the persisted acp_session_history table.
146
+ Rows whose session is currently active in memory (e.g. resumed) or has a resume in flight are excluded.
140
147
  tags:
141
148
  - acp
142
149
  responses:
@@ -238,8 +245,8 @@ paths:
238
245
  operationId: acp_sessions_by_id_delete
239
246
  summary: Delete ACP session from history
240
247
  description:
241
- Remove a persisted ACP session row. Rejects with 409 when the session is still active in memory; idempotent
242
- for unknown ids.
248
+ Remove a persisted ACP session row. Rejects with 409 when the session is still active in memory or has a
249
+ resume in flight; idempotent for unknown ids.
243
250
  tags:
244
251
  - acp
245
252
  responses:
@@ -1057,119 +1064,6 @@ paths:
1057
1064
  required:
1058
1065
  - uuid
1059
1066
  additionalProperties: false
1060
- /v1/apps/gallery:
1061
- get:
1062
- operationId: apps_gallery_get
1063
- summary: List gallery apps
1064
- description: Return the built-in app gallery catalog.
1065
- tags:
1066
- - apps
1067
- responses:
1068
- "200":
1069
- description: Successful response
1070
- content:
1071
- application/json:
1072
- schema:
1073
- type: object
1074
- properties:
1075
- gallery:
1076
- type: object
1077
- properties:
1078
- version:
1079
- type: number
1080
- updatedAt:
1081
- type: string
1082
- categories:
1083
- type: array
1084
- items:
1085
- type: object
1086
- properties:
1087
- id:
1088
- type: string
1089
- name:
1090
- type: string
1091
- icon:
1092
- type: string
1093
- required:
1094
- - id
1095
- - name
1096
- - icon
1097
- additionalProperties: false
1098
- apps:
1099
- type: array
1100
- items:
1101
- type: object
1102
- properties:
1103
- id:
1104
- type: string
1105
- name:
1106
- type: string
1107
- description:
1108
- type: string
1109
- icon:
1110
- type: string
1111
- category:
1112
- type: string
1113
- version:
1114
- type: string
1115
- featured:
1116
- type: boolean
1117
- required:
1118
- - id
1119
- - name
1120
- - description
1121
- - icon
1122
- - category
1123
- - version
1124
- additionalProperties: false
1125
- required:
1126
- - version
1127
- - updatedAt
1128
- - categories
1129
- - apps
1130
- additionalProperties: false
1131
- required:
1132
- - gallery
1133
- additionalProperties: false
1134
- /v1/apps/gallery/install:
1135
- post:
1136
- operationId: apps_gallery_install_post
1137
- summary: Install a gallery app
1138
- description: Install an app from the built-in gallery by its ID.
1139
- tags:
1140
- - apps
1141
- responses:
1142
- "200":
1143
- description: Successful response
1144
- content:
1145
- application/json:
1146
- schema:
1147
- type: object
1148
- properties:
1149
- success:
1150
- type: boolean
1151
- const: true
1152
- appId:
1153
- type: string
1154
- name:
1155
- type: string
1156
- required:
1157
- - success
1158
- - appId
1159
- - name
1160
- additionalProperties: false
1161
- requestBody:
1162
- required: true
1163
- content:
1164
- application/json:
1165
- schema:
1166
- type: object
1167
- properties:
1168
- galleryAppId:
1169
- type: string
1170
- required:
1171
- - galleryAppId
1172
- additionalProperties: false
1173
1067
  /v1/apps/import-bundle:
1174
1068
  post:
1175
1069
  operationId: apps_importbundle_post
@@ -1230,6 +1124,13 @@ paths:
1230
1124
  - scanResult
1231
1125
  - signatureResult
1232
1126
  additionalProperties: false
1127
+ requestBody:
1128
+ required: true
1129
+ content:
1130
+ application/octet-stream:
1131
+ schema:
1132
+ type: string
1133
+ format: binary
1233
1134
  /v1/apps/open-bundle:
1234
1135
  post:
1235
1136
  operationId: apps_openbundle_post
@@ -1420,6 +1321,11 @@ paths:
1420
1321
  responses:
1421
1322
  "200":
1422
1323
  description: Successful response
1324
+ content:
1325
+ application/zip:
1326
+ schema:
1327
+ type: string
1328
+ format: binary
1423
1329
  parameters:
1424
1330
  - name: token
1425
1331
  in: path
@@ -1585,29 +1491,22 @@ paths:
1585
1491
  requestBody:
1586
1492
  required: true
1587
1493
  content:
1588
- application/json:
1494
+ multipart/form-data:
1589
1495
  schema:
1590
1496
  type: object
1591
1497
  properties:
1498
+ file:
1499
+ type: string
1500
+ format: binary
1501
+ description: The file to upload
1592
1502
  filename:
1593
1503
  type: string
1594
1504
  mimeType:
1595
1505
  type: string
1596
- data:
1597
- type: string
1598
- description: Base64-encoded file data
1599
- filePath:
1600
- type: string
1601
- description: On-disk file path (file-backed upload)
1602
- trustedSource:
1603
- type: boolean
1604
- description:
1605
- Set by the gateway when the file came from a guardian-bound channel actor. Honored only when the request is
1606
- authenticated as a gateway service token; ignored otherwise.
1607
1506
  required:
1507
+ - file
1608
1508
  - filename
1609
1509
  - mimeType
1610
- additionalProperties: false
1611
1510
  /v1/attachments/{id}:
1612
1511
  get:
1613
1512
  operationId: attachments_by_id_get
@@ -1664,6 +1563,11 @@ paths:
1664
1563
  responses:
1665
1564
  "200":
1666
1565
  description: Successful response
1566
+ content:
1567
+ application/octet-stream:
1568
+ schema:
1569
+ type: string
1570
+ format: binary
1667
1571
  "416":
1668
1572
  description: Range Not Satisfiable
1669
1573
  parameters:
@@ -1868,6 +1772,140 @@ paths:
1868
1772
  responses:
1869
1773
  "200":
1870
1774
  description: Successful response
1775
+ content:
1776
+ application/json:
1777
+ schema:
1778
+ type: object
1779
+ properties:
1780
+ bodyShapes:
1781
+ type: array
1782
+ items:
1783
+ type: object
1784
+ properties:
1785
+ id:
1786
+ type: string
1787
+ viewBox:
1788
+ type: object
1789
+ properties:
1790
+ width:
1791
+ type: number
1792
+ height:
1793
+ type: number
1794
+ required:
1795
+ - width
1796
+ - height
1797
+ additionalProperties: false
1798
+ faceCenter:
1799
+ type: object
1800
+ properties:
1801
+ x:
1802
+ type: number
1803
+ y:
1804
+ type: number
1805
+ required:
1806
+ - x
1807
+ - y
1808
+ additionalProperties: false
1809
+ svgPath:
1810
+ type: string
1811
+ required:
1812
+ - id
1813
+ - viewBox
1814
+ - faceCenter
1815
+ - svgPath
1816
+ additionalProperties: false
1817
+ eyeStyles:
1818
+ type: array
1819
+ items:
1820
+ type: object
1821
+ properties:
1822
+ id:
1823
+ type: string
1824
+ sourceViewBox:
1825
+ type: object
1826
+ properties:
1827
+ width:
1828
+ type: number
1829
+ height:
1830
+ type: number
1831
+ required:
1832
+ - width
1833
+ - height
1834
+ additionalProperties: false
1835
+ eyeCenter:
1836
+ type: object
1837
+ properties:
1838
+ x:
1839
+ type: number
1840
+ y:
1841
+ type: number
1842
+ required:
1843
+ - x
1844
+ - y
1845
+ additionalProperties: false
1846
+ paths:
1847
+ type: array
1848
+ items:
1849
+ type: object
1850
+ properties:
1851
+ svgPath:
1852
+ type: string
1853
+ color:
1854
+ type: string
1855
+ required:
1856
+ - svgPath
1857
+ - color
1858
+ additionalProperties: false
1859
+ required:
1860
+ - id
1861
+ - sourceViewBox
1862
+ - eyeCenter
1863
+ - paths
1864
+ additionalProperties: false
1865
+ colors:
1866
+ type: array
1867
+ items:
1868
+ type: object
1869
+ properties:
1870
+ id:
1871
+ type: string
1872
+ hex:
1873
+ type: string
1874
+ required:
1875
+ - id
1876
+ - hex
1877
+ additionalProperties: false
1878
+ faceCenterOverrides:
1879
+ type: array
1880
+ items:
1881
+ type: object
1882
+ properties:
1883
+ bodyShape:
1884
+ type: string
1885
+ eyeStyle:
1886
+ type: string
1887
+ faceCenter:
1888
+ type: object
1889
+ properties:
1890
+ x:
1891
+ type: number
1892
+ y:
1893
+ type: number
1894
+ required:
1895
+ - x
1896
+ - y
1897
+ additionalProperties: false
1898
+ required:
1899
+ - bodyShape
1900
+ - eyeStyle
1901
+ - faceCenter
1902
+ additionalProperties: false
1903
+ required:
1904
+ - bodyShapes
1905
+ - eyeStyles
1906
+ - colors
1907
+ - faceCenterOverrides
1908
+ additionalProperties: false
1871
1909
  /v1/avatar/character/ascii:
1872
1910
  get:
1873
1911
  operationId: avatar_character_ascii_get
@@ -4168,6 +4206,25 @@ paths:
4168
4206
  responses:
4169
4207
  "200":
4170
4208
  description: Successful response
4209
+ content:
4210
+ application/json:
4211
+ schema:
4212
+ type: object
4213
+ properties:
4214
+ ok:
4215
+ type: boolean
4216
+ required:
4217
+ - ok
4218
+ additionalProperties: false
4219
+ requestBody:
4220
+ required: true
4221
+ content:
4222
+ application/json:
4223
+ schema:
4224
+ type: object
4225
+ propertyNames:
4226
+ type: string
4227
+ additionalProperties: {}
4171
4228
  /v1/config/allowlist/validate:
4172
4229
  get:
4173
4230
  operationId: config_allowlist_validate_get
@@ -4471,6 +4528,55 @@ paths:
4471
4528
  - lastRunAt
4472
4529
  - success
4473
4530
  additionalProperties: false
4531
+ put:
4532
+ operationId: consolidation_config_put
4533
+ summary: Update consolidation config
4534
+ description: Update the memory v2 consolidation schedule configuration.
4535
+ tags:
4536
+ - consolidation
4537
+ responses:
4538
+ "200":
4539
+ description: Successful response
4540
+ content:
4541
+ application/json:
4542
+ schema:
4543
+ type: object
4544
+ properties:
4545
+ available:
4546
+ type: boolean
4547
+ enabled:
4548
+ type: boolean
4549
+ intervalMs:
4550
+ type: number
4551
+ nextRunAt:
4552
+ anyOf:
4553
+ - type: number
4554
+ - type: "null"
4555
+ lastRunAt:
4556
+ anyOf:
4557
+ - type: number
4558
+ - type: "null"
4559
+ success:
4560
+ type: boolean
4561
+ required:
4562
+ - available
4563
+ - enabled
4564
+ - intervalMs
4565
+ - nextRunAt
4566
+ - lastRunAt
4567
+ - success
4568
+ additionalProperties: false
4569
+ requestBody:
4570
+ required: true
4571
+ content:
4572
+ application/json:
4573
+ schema:
4574
+ type: object
4575
+ properties:
4576
+ enabled:
4577
+ description: Enable or disable automatic consolidation
4578
+ type: boolean
4579
+ additionalProperties: false
4474
4580
  /v1/consolidation/run-now:
4475
4581
  post:
4476
4582
  operationId: consolidation_runnow_post
@@ -4566,6 +4672,14 @@ paths:
4566
4672
  anyOf:
4567
4673
  - type: string
4568
4674
  - type: "null"
4675
+ conversationExists:
4676
+ type: boolean
4677
+ conversationArchivedAt:
4678
+ anyOf:
4679
+ - type: number
4680
+ - type: "null"
4681
+ estimatedCostUsd:
4682
+ type: number
4569
4683
  createdAt:
4570
4684
  type: number
4571
4685
  required:
@@ -4578,6 +4692,9 @@ paths:
4578
4692
  - skipReason
4579
4693
  - error
4580
4694
  - conversationId
4695
+ - conversationExists
4696
+ - conversationArchivedAt
4697
+ - estimatedCostUsd
4581
4698
  - createdAt
4582
4699
  additionalProperties: false
4583
4700
  description: Consolidation run records
@@ -8214,6 +8331,17 @@ paths:
8214
8331
  responses:
8215
8332
  "200":
8216
8333
  description: Successful response
8334
+ content:
8335
+ application/json:
8336
+ schema:
8337
+ type: object
8338
+ properties:
8339
+ ok:
8340
+ type: boolean
8341
+ const: true
8342
+ required:
8343
+ - ok
8344
+ additionalProperties: false
8217
8345
  requestBody:
8218
8346
  required: true
8219
8347
  content:
@@ -10004,6 +10132,11 @@ paths:
10004
10132
  responses:
10005
10133
  "200":
10006
10134
  description: Successful response
10135
+ content:
10136
+ application/pdf:
10137
+ schema:
10138
+ type: string
10139
+ format: binary
10007
10140
  parameters:
10008
10141
  - name: id
10009
10142
  in: path
@@ -10019,6 +10152,47 @@ paths:
10019
10152
  responses:
10020
10153
  "200":
10021
10154
  description: Successful response
10155
+ content:
10156
+ application/json:
10157
+ schema:
10158
+ type: object
10159
+ properties:
10160
+ id:
10161
+ type: string
10162
+ subdomain:
10163
+ type: string
10164
+ domain:
10165
+ type: string
10166
+ created_at:
10167
+ type: string
10168
+ created:
10169
+ type: string
10170
+ email_error:
10171
+ type: object
10172
+ properties:
10173
+ detail:
10174
+ type: string
10175
+ code:
10176
+ type: string
10177
+ required:
10178
+ - detail
10179
+ - code
10180
+ additionalProperties: false
10181
+ required:
10182
+ - id
10183
+ additionalProperties: false
10184
+ requestBody:
10185
+ required: true
10186
+ content:
10187
+ application/json:
10188
+ schema:
10189
+ type: object
10190
+ properties:
10191
+ subdomain:
10192
+ type: string
10193
+ email_username:
10194
+ type: string
10195
+ additionalProperties: false
10022
10196
  /v1/domain/status:
10023
10197
  get:
10024
10198
  operationId: domain_status_get
@@ -10028,6 +10202,43 @@ paths:
10028
10202
  responses:
10029
10203
  "200":
10030
10204
  description: Successful response
10205
+ content:
10206
+ application/json:
10207
+ schema:
10208
+ type: object
10209
+ properties:
10210
+ count:
10211
+ type: number
10212
+ next:
10213
+ anyOf:
10214
+ - type: string
10215
+ - type: "null"
10216
+ previous:
10217
+ anyOf:
10218
+ - type: string
10219
+ - type: "null"
10220
+ results:
10221
+ type: array
10222
+ items:
10223
+ type: object
10224
+ properties:
10225
+ id:
10226
+ type: string
10227
+ subdomain:
10228
+ type: string
10229
+ domain:
10230
+ type: string
10231
+ created_at:
10232
+ type: string
10233
+ created:
10234
+ type: string
10235
+ required:
10236
+ - id
10237
+ additionalProperties: false
10238
+ required:
10239
+ - count
10240
+ - results
10241
+ additionalProperties: false
10031
10242
  /v1/domain/verification-status:
10032
10243
  post:
10033
10244
  operationId: domain_verificationstatus_post
@@ -10037,6 +10248,34 @@ paths:
10037
10248
  responses:
10038
10249
  "200":
10039
10250
  description: Successful response
10251
+ content:
10252
+ application/json:
10253
+ schema:
10254
+ type: object
10255
+ properties:
10256
+ domain:
10257
+ type: string
10258
+ status:
10259
+ type: string
10260
+ message:
10261
+ type: string
10262
+ required:
10263
+ - domain
10264
+ - status
10265
+ - message
10266
+ additionalProperties: false
10267
+ requestBody:
10268
+ required: true
10269
+ content:
10270
+ application/json:
10271
+ schema:
10272
+ type: object
10273
+ properties:
10274
+ domain_id:
10275
+ type: string
10276
+ required:
10277
+ - domain_id
10278
+ additionalProperties: false
10040
10279
  /v1/email/attachment-get:
10041
10280
  get:
10042
10281
  operationId: email_attachmentget_get
@@ -10378,11 +10617,12 @@ paths:
10378
10617
  schema:
10379
10618
  type: string
10380
10619
  description:
10381
- "Optional reconnect cursor: the highest per-conversation event seq the client has already applied. When set
10382
- together with a conversation scope, the daemon replays any buffered events with seq > lastSeenSeq before
10383
- going live. If the cursor is older than the ring buffer's oldest entry the connection simply goes live; the
10384
- client is expected to detect the gap from the next event's seq and refetch via the messages API. Must be a
10385
- non-negative integer."
10620
+ "Optional reconnect cursor: the highest global event seq the client has already applied. `seq` is a single
10621
+ per-assistant counter shared across all conversations, so one cursor resumes the stream regardless of how
10622
+ many conversations are multiplexed on the connection. When set, the daemon replays any buffered events with
10623
+ seq > lastSeenSeq (re-applying the subscriber's targeting/scope filter) before going live. If the cursor is
10624
+ older than the ring buffer's oldest entry the connection simply goes live; the client is expected to detect
10625
+ the gap from the next event's seq and refetch via the messages API. Must be a non-negative integer."
10386
10626
  /v1/events/emit:
10387
10627
  post:
10388
10628
  operationId: events_emit_post
@@ -10419,6 +10659,11 @@ paths:
10419
10659
  responses:
10420
10660
  "200":
10421
10661
  description: Successful response
10662
+ content:
10663
+ application/gzip:
10664
+ schema:
10665
+ type: string
10666
+ format: binary
10422
10667
  "500":
10423
10668
  description: Failed to create archive
10424
10669
  requestBody:
@@ -10529,6 +10774,24 @@ paths:
10529
10774
  responses:
10530
10775
  "200":
10531
10776
  description: Successful response
10777
+ content:
10778
+ application/json:
10779
+ schema:
10780
+ type: object
10781
+ properties:
10782
+ lines:
10783
+ type: array
10784
+ items:
10785
+ type: object
10786
+ propertyNames:
10787
+ type: string
10788
+ additionalProperties: {}
10789
+ truncated:
10790
+ type: boolean
10791
+ required:
10792
+ - lines
10793
+ - truncated
10794
+ additionalProperties: false
10532
10795
  parameters:
10533
10796
  - name: n
10534
10797
  in: query
@@ -10847,21 +11110,59 @@ paths:
10847
11110
  version:
10848
11111
  type: string
10849
11112
  disk:
10850
- type: object
10851
- properties: {}
10852
- additionalProperties: {}
11113
+ anyOf:
11114
+ - type: object
11115
+ properties:
11116
+ path:
11117
+ type: string
11118
+ totalMb:
11119
+ type: number
11120
+ usedMb:
11121
+ type: number
11122
+ freeMb:
11123
+ type: number
11124
+ required:
11125
+ - path
11126
+ - totalMb
11127
+ - usedMb
11128
+ - freeMb
11129
+ additionalProperties: false
11130
+ - type: "null"
10853
11131
  memory:
10854
11132
  type: object
10855
- properties: {}
10856
- additionalProperties: {}
11133
+ properties:
11134
+ currentMb:
11135
+ type: number
11136
+ maxMb:
11137
+ type: number
11138
+ required:
11139
+ - currentMb
11140
+ - maxMb
11141
+ additionalProperties: false
10857
11142
  cpu:
10858
11143
  type: object
10859
- properties: {}
10860
- additionalProperties: {}
11144
+ properties:
11145
+ currentPercent:
11146
+ type: number
11147
+ maxCores:
11148
+ type: number
11149
+ required:
11150
+ - currentPercent
11151
+ - maxCores
11152
+ additionalProperties: false
10861
11153
  migrations:
10862
11154
  type: object
10863
- properties: {}
10864
- additionalProperties: {}
11155
+ properties:
11156
+ dbVersion:
11157
+ type: number
11158
+ lastWorkspaceMigrationId:
11159
+ anyOf:
11160
+ - type: string
11161
+ - type: "null"
11162
+ required:
11163
+ - dbVersion
11164
+ - lastWorkspaceMigrationId
11165
+ additionalProperties: false
10865
11166
  ces:
10866
11167
  type: object
10867
11168
  properties:
@@ -10977,21 +11278,59 @@ paths:
10977
11278
  version:
10978
11279
  type: string
10979
11280
  disk:
10980
- type: object
10981
- properties: {}
10982
- additionalProperties: {}
11281
+ anyOf:
11282
+ - type: object
11283
+ properties:
11284
+ path:
11285
+ type: string
11286
+ totalMb:
11287
+ type: number
11288
+ usedMb:
11289
+ type: number
11290
+ freeMb:
11291
+ type: number
11292
+ required:
11293
+ - path
11294
+ - totalMb
11295
+ - usedMb
11296
+ - freeMb
11297
+ additionalProperties: false
11298
+ - type: "null"
10983
11299
  memory:
10984
11300
  type: object
10985
- properties: {}
10986
- additionalProperties: {}
11301
+ properties:
11302
+ currentMb:
11303
+ type: number
11304
+ maxMb:
11305
+ type: number
11306
+ required:
11307
+ - currentMb
11308
+ - maxMb
11309
+ additionalProperties: false
10987
11310
  cpu:
10988
11311
  type: object
10989
- properties: {}
10990
- additionalProperties: {}
11312
+ properties:
11313
+ currentPercent:
11314
+ type: number
11315
+ maxCores:
11316
+ type: number
11317
+ required:
11318
+ - currentPercent
11319
+ - maxCores
11320
+ additionalProperties: false
10991
11321
  migrations:
10992
11322
  type: object
10993
- properties: {}
10994
- additionalProperties: {}
11323
+ properties:
11324
+ dbVersion:
11325
+ type: number
11326
+ lastWorkspaceMigrationId:
11327
+ anyOf:
11328
+ - type: string
11329
+ - type: "null"
11330
+ required:
11331
+ - dbVersion
11332
+ - lastWorkspaceMigrationId
11333
+ additionalProperties: false
10995
11334
  ces:
10996
11335
  type: object
10997
11336
  properties:
@@ -11361,6 +11700,14 @@ paths:
11361
11700
  anyOf:
11362
11701
  - type: string
11363
11702
  - type: "null"
11703
+ conversationExists:
11704
+ type: boolean
11705
+ conversationArchivedAt:
11706
+ anyOf:
11707
+ - type: number
11708
+ - type: "null"
11709
+ estimatedCostUsd:
11710
+ type: number
11364
11711
  createdAt:
11365
11712
  type: number
11366
11713
  required:
@@ -11373,6 +11720,9 @@ paths:
11373
11720
  - skipReason
11374
11721
  - error
11375
11722
  - conversationId
11723
+ - conversationExists
11724
+ - conversationArchivedAt
11725
+ - estimatedCostUsd
11376
11726
  - createdAt
11377
11727
  additionalProperties: false
11378
11728
  description: Heartbeat run records
@@ -12499,7 +12849,9 @@ paths:
12499
12849
  get:
12500
12850
  operationId: identity_intro_get
12501
12851
  summary: Get identity greetings
12502
- description: Returns an array of greetings sourced from SOUL.md, LLM cache, or static fallbacks.
12852
+ description:
12853
+ Returns greetings sourced from SOUL.md, the generated cache, or generic fallbacks while background
12854
+ generation refreshes the cache.
12503
12855
  tags:
12504
12856
  - identity
12505
12857
  responses:
@@ -12516,9 +12868,19 @@ paths:
12516
12868
  type: string
12517
12869
  text:
12518
12870
  type: string
12871
+ source:
12872
+ type: string
12873
+ enum:
12874
+ - workspace
12875
+ - cache
12876
+ - fallback
12877
+ refreshing:
12878
+ type: boolean
12519
12879
  required:
12520
12880
  - greetings
12521
12881
  - text
12882
+ - source
12883
+ - refreshing
12522
12884
  additionalProperties: false
12523
12885
  /v1/image-generation/generate:
12524
12886
  post:
@@ -12530,6 +12892,68 @@ paths:
12530
12892
  responses:
12531
12893
  "200":
12532
12894
  description: Successful response
12895
+ content:
12896
+ application/json:
12897
+ schema:
12898
+ type: object
12899
+ properties:
12900
+ images:
12901
+ type: array
12902
+ items:
12903
+ type: object
12904
+ properties:
12905
+ mimeType:
12906
+ type: string
12907
+ dataBase64:
12908
+ type: string
12909
+ title:
12910
+ type: string
12911
+ required:
12912
+ - mimeType
12913
+ - dataBase64
12914
+ additionalProperties: false
12915
+ text:
12916
+ type: string
12917
+ resolvedModel:
12918
+ type: string
12919
+ required:
12920
+ - images
12921
+ - resolvedModel
12922
+ additionalProperties: false
12923
+ requestBody:
12924
+ required: true
12925
+ content:
12926
+ application/json:
12927
+ schema:
12928
+ type: object
12929
+ properties:
12930
+ prompt:
12931
+ type: string
12932
+ mode:
12933
+ type: string
12934
+ enum:
12935
+ - generate
12936
+ - edit
12937
+ sourceImages:
12938
+ type: array
12939
+ items:
12940
+ type: object
12941
+ properties:
12942
+ mimeType:
12943
+ type: string
12944
+ dataBase64:
12945
+ type: string
12946
+ required:
12947
+ - mimeType
12948
+ - dataBase64
12949
+ additionalProperties: false
12950
+ model:
12951
+ type: string
12952
+ variants:
12953
+ type: number
12954
+ required:
12955
+ - prompt
12956
+ additionalProperties: false
12533
12957
  /v1/inference/chatgpt-subscription/auth:
12534
12958
  post:
12535
12959
  operationId: inference_chatgptsubscription_auth_post
@@ -13450,7 +13874,25 @@ paths:
13450
13874
  responses:
13451
13875
  "200":
13452
13876
  description: Successful response
13453
- get:
13877
+ content:
13878
+ application/json:
13879
+ schema:
13880
+ type: object
13881
+ properties:
13882
+ success:
13883
+ type: boolean
13884
+ enabled:
13885
+ type: boolean
13886
+ activeConnections:
13887
+ type: number
13888
+ error:
13889
+ type: string
13890
+ required:
13891
+ - success
13892
+ - enabled
13893
+ - activeConnections
13894
+ additionalProperties: false
13895
+ get:
13454
13896
  operationId: integrations_a2a_config_get
13455
13897
  summary: Get A2A config
13456
13898
  description: Check current A2A channel configuration status.
@@ -13459,6 +13901,24 @@ paths:
13459
13901
  responses:
13460
13902
  "200":
13461
13903
  description: Successful response
13904
+ content:
13905
+ application/json:
13906
+ schema:
13907
+ type: object
13908
+ properties:
13909
+ success:
13910
+ type: boolean
13911
+ enabled:
13912
+ type: boolean
13913
+ activeConnections:
13914
+ type: number
13915
+ error:
13916
+ type: string
13917
+ required:
13918
+ - success
13919
+ - enabled
13920
+ - activeConnections
13921
+ additionalProperties: false
13462
13922
  post:
13463
13923
  operationId: integrations_a2a_config_post
13464
13924
  summary: Enable A2A channel
@@ -13468,6 +13928,24 @@ paths:
13468
13928
  responses:
13469
13929
  "200":
13470
13930
  description: Successful response
13931
+ content:
13932
+ application/json:
13933
+ schema:
13934
+ type: object
13935
+ properties:
13936
+ success:
13937
+ type: boolean
13938
+ enabled:
13939
+ type: boolean
13940
+ activeConnections:
13941
+ type: number
13942
+ error:
13943
+ type: string
13944
+ required:
13945
+ - success
13946
+ - enabled
13947
+ - activeConnections
13948
+ additionalProperties: false
13471
13949
  /v1/integrations/a2a/invite:
13472
13950
  post:
13473
13951
  operationId: integrations_a2a_invite_post
@@ -13510,6 +13988,24 @@ paths:
13510
13988
  responses:
13511
13989
  "200":
13512
13990
  description: Successful response
13991
+ content:
13992
+ application/json:
13993
+ schema:
13994
+ type: object
13995
+ properties:
13996
+ success:
13997
+ type: boolean
13998
+ contactId:
13999
+ type: string
14000
+ alreadyConnected:
14001
+ type: boolean
14002
+ error:
14003
+ type: string
14004
+ errorCode:
14005
+ type: string
14006
+ required:
14007
+ - success
14008
+ additionalProperties: false
13513
14009
  /v1/integrations/a2a/invite/complete:
13514
14010
  post:
13515
14011
  operationId: integrations_a2a_invite_complete_post
@@ -13520,6 +14016,32 @@ paths:
13520
14016
  responses:
13521
14017
  "200":
13522
14018
  description: Successful response
14019
+ content:
14020
+ application/json:
14021
+ schema:
14022
+ type: object
14023
+ properties:
14024
+ success:
14025
+ type: boolean
14026
+ sender:
14027
+ type: object
14028
+ properties:
14029
+ assistantId:
14030
+ type: string
14031
+ displayName:
14032
+ type: string
14033
+ gatewayUrl:
14034
+ type: string
14035
+ required:
14036
+ - assistantId
14037
+ - displayName
14038
+ - gatewayUrl
14039
+ additionalProperties: false
14040
+ error:
14041
+ type: string
14042
+ required:
14043
+ - success
14044
+ additionalProperties: false
13523
14045
  /v1/integrations/a2a/invite/redeem:
13524
14046
  post:
13525
14047
  operationId: integrations_a2a_invite_redeem_post
@@ -13530,6 +14052,22 @@ paths:
13530
14052
  responses:
13531
14053
  "200":
13532
14054
  description: Successful response
14055
+ content:
14056
+ application/json:
14057
+ schema:
14058
+ type: object
14059
+ properties:
14060
+ success:
14061
+ type: boolean
14062
+ contactId:
14063
+ type: string
14064
+ alreadyConnected:
14065
+ type: boolean
14066
+ error:
14067
+ type: string
14068
+ required:
14069
+ - success
14070
+ additionalProperties: false
13533
14071
  /v1/integrations/ingress/config:
13534
14072
  get:
13535
14073
  operationId: integrations_ingress_config_get
@@ -13621,6 +14159,42 @@ paths:
13621
14159
  responses:
13622
14160
  "200":
13623
14161
  description: Successful response
14162
+ content:
14163
+ application/json:
14164
+ schema:
14165
+ type: object
14166
+ properties:
14167
+ success:
14168
+ type: boolean
14169
+ hasBotToken:
14170
+ type: boolean
14171
+ hasAppToken:
14172
+ type: boolean
14173
+ hasUserToken:
14174
+ type: boolean
14175
+ connected:
14176
+ type: boolean
14177
+ teamId:
14178
+ type: string
14179
+ teamName:
14180
+ type: string
14181
+ teamUrl:
14182
+ type: string
14183
+ botUserId:
14184
+ type: string
14185
+ botUsername:
14186
+ type: string
14187
+ error:
14188
+ type: string
14189
+ warning:
14190
+ type: string
14191
+ required:
14192
+ - success
14193
+ - hasBotToken
14194
+ - hasAppToken
14195
+ - hasUserToken
14196
+ - connected
14197
+ additionalProperties: false
13624
14198
  get:
13625
14199
  operationId: integrations_slack_channel_config_get
13626
14200
  summary: Get Slack channel config
@@ -13630,6 +14204,42 @@ paths:
13630
14204
  responses:
13631
14205
  "200":
13632
14206
  description: Successful response
14207
+ content:
14208
+ application/json:
14209
+ schema:
14210
+ type: object
14211
+ properties:
14212
+ success:
14213
+ type: boolean
14214
+ hasBotToken:
14215
+ type: boolean
14216
+ hasAppToken:
14217
+ type: boolean
14218
+ hasUserToken:
14219
+ type: boolean
14220
+ connected:
14221
+ type: boolean
14222
+ teamId:
14223
+ type: string
14224
+ teamName:
14225
+ type: string
14226
+ teamUrl:
14227
+ type: string
14228
+ botUserId:
14229
+ type: string
14230
+ botUsername:
14231
+ type: string
14232
+ error:
14233
+ type: string
14234
+ warning:
14235
+ type: string
14236
+ required:
14237
+ - success
14238
+ - hasBotToken
14239
+ - hasAppToken
14240
+ - hasUserToken
14241
+ - connected
14242
+ additionalProperties: false
13633
14243
  post:
13634
14244
  operationId: integrations_slack_channel_config_post
13635
14245
  summary: Set Slack channel config
@@ -13639,6 +14249,42 @@ paths:
13639
14249
  responses:
13640
14250
  "200":
13641
14251
  description: Successful response
14252
+ content:
14253
+ application/json:
14254
+ schema:
14255
+ type: object
14256
+ properties:
14257
+ success:
14258
+ type: boolean
14259
+ hasBotToken:
14260
+ type: boolean
14261
+ hasAppToken:
14262
+ type: boolean
14263
+ hasUserToken:
14264
+ type: boolean
14265
+ connected:
14266
+ type: boolean
14267
+ teamId:
14268
+ type: string
14269
+ teamName:
14270
+ type: string
14271
+ teamUrl:
14272
+ type: string
14273
+ botUserId:
14274
+ type: string
14275
+ botUsername:
14276
+ type: string
14277
+ error:
14278
+ type: string
14279
+ warning:
14280
+ type: string
14281
+ required:
14282
+ - success
14283
+ - hasBotToken
14284
+ - hasAppToken
14285
+ - hasUserToken
14286
+ - connected
14287
+ additionalProperties: false
13642
14288
  requestBody:
13643
14289
  required: true
13644
14290
  content:
@@ -13666,6 +14312,39 @@ paths:
13666
14312
  responses:
13667
14313
  "200":
13668
14314
  description: Successful response
14315
+ content:
14316
+ application/json:
14317
+ schema:
14318
+ type: object
14319
+ properties:
14320
+ success:
14321
+ type: boolean
14322
+ hasBotToken:
14323
+ type: boolean
14324
+ botId:
14325
+ type: string
14326
+ botUsername:
14327
+ type: string
14328
+ connected:
14329
+ type: boolean
14330
+ hasWebhookSecret:
14331
+ type: boolean
14332
+ lastError:
14333
+ type: string
14334
+ error:
14335
+ type: string
14336
+ commandsRegistered:
14337
+ type: array
14338
+ items:
14339
+ type: string
14340
+ warning:
14341
+ type: string
14342
+ required:
14343
+ - success
14344
+ - hasBotToken
14345
+ - connected
14346
+ - hasWebhookSecret
14347
+ additionalProperties: false
13669
14348
  /v1/integrations/telegram/config:
13670
14349
  delete:
13671
14350
  operationId: integrations_telegram_config_delete
@@ -13676,6 +14355,39 @@ paths:
13676
14355
  responses:
13677
14356
  "200":
13678
14357
  description: Successful response
14358
+ content:
14359
+ application/json:
14360
+ schema:
14361
+ type: object
14362
+ properties:
14363
+ success:
14364
+ type: boolean
14365
+ hasBotToken:
14366
+ type: boolean
14367
+ botId:
14368
+ type: string
14369
+ botUsername:
14370
+ type: string
14371
+ connected:
14372
+ type: boolean
14373
+ hasWebhookSecret:
14374
+ type: boolean
14375
+ lastError:
14376
+ type: string
14377
+ error:
14378
+ type: string
14379
+ commandsRegistered:
14380
+ type: array
14381
+ items:
14382
+ type: string
14383
+ warning:
14384
+ type: string
14385
+ required:
14386
+ - success
14387
+ - hasBotToken
14388
+ - connected
14389
+ - hasWebhookSecret
14390
+ additionalProperties: false
13679
14391
  get:
13680
14392
  operationId: integrations_telegram_config_get
13681
14393
  summary: Get Telegram config
@@ -13685,6 +14397,39 @@ paths:
13685
14397
  responses:
13686
14398
  "200":
13687
14399
  description: Successful response
14400
+ content:
14401
+ application/json:
14402
+ schema:
14403
+ type: object
14404
+ properties:
14405
+ success:
14406
+ type: boolean
14407
+ hasBotToken:
14408
+ type: boolean
14409
+ botId:
14410
+ type: string
14411
+ botUsername:
14412
+ type: string
14413
+ connected:
14414
+ type: boolean
14415
+ hasWebhookSecret:
14416
+ type: boolean
14417
+ lastError:
14418
+ type: string
14419
+ error:
14420
+ type: string
14421
+ commandsRegistered:
14422
+ type: array
14423
+ items:
14424
+ type: string
14425
+ warning:
14426
+ type: string
14427
+ required:
14428
+ - success
14429
+ - hasBotToken
14430
+ - connected
14431
+ - hasWebhookSecret
14432
+ additionalProperties: false
13688
14433
  post:
13689
14434
  operationId: integrations_telegram_config_post
13690
14435
  summary: Set Telegram config
@@ -13694,6 +14439,39 @@ paths:
13694
14439
  responses:
13695
14440
  "200":
13696
14441
  description: Successful response
14442
+ content:
14443
+ application/json:
14444
+ schema:
14445
+ type: object
14446
+ properties:
14447
+ success:
14448
+ type: boolean
14449
+ hasBotToken:
14450
+ type: boolean
14451
+ botId:
14452
+ type: string
14453
+ botUsername:
14454
+ type: string
14455
+ connected:
14456
+ type: boolean
14457
+ hasWebhookSecret:
14458
+ type: boolean
14459
+ lastError:
14460
+ type: string
14461
+ error:
14462
+ type: string
14463
+ commandsRegistered:
14464
+ type: array
14465
+ items:
14466
+ type: string
14467
+ warning:
14468
+ type: string
14469
+ required:
14470
+ - success
14471
+ - hasBotToken
14472
+ - connected
14473
+ - hasWebhookSecret
14474
+ additionalProperties: false
13697
14475
  requestBody:
13698
14476
  required: true
13699
14477
  content:
@@ -13717,6 +14495,39 @@ paths:
13717
14495
  responses:
13718
14496
  "200":
13719
14497
  description: Successful response
14498
+ content:
14499
+ application/json:
14500
+ schema:
14501
+ type: object
14502
+ properties:
14503
+ success:
14504
+ type: boolean
14505
+ hasBotToken:
14506
+ type: boolean
14507
+ botId:
14508
+ type: string
14509
+ botUsername:
14510
+ type: string
14511
+ connected:
14512
+ type: boolean
14513
+ hasWebhookSecret:
14514
+ type: boolean
14515
+ lastError:
14516
+ type: string
14517
+ error:
14518
+ type: string
14519
+ commandsRegistered:
14520
+ type: array
14521
+ items:
14522
+ type: string
14523
+ warning:
14524
+ type: string
14525
+ required:
14526
+ - success
14527
+ - hasBotToken
14528
+ - connected
14529
+ - hasWebhookSecret
14530
+ additionalProperties: false
13720
14531
  /v1/integrations/twilio/config:
13721
14532
  get:
13722
14533
  operationId: integrations_twilio_config_get
@@ -13727,6 +14538,23 @@ paths:
13727
14538
  responses:
13728
14539
  "200":
13729
14540
  description: Successful response
14541
+ content:
14542
+ application/json:
14543
+ schema:
14544
+ type: object
14545
+ properties:
14546
+ success:
14547
+ type: boolean
14548
+ hasCredentials:
14549
+ type: boolean
14550
+ accountSid:
14551
+ type: string
14552
+ phoneNumber:
14553
+ type: string
14554
+ required:
14555
+ - success
14556
+ - hasCredentials
14557
+ additionalProperties: false
13730
14558
  /v1/integrations/twilio/credentials:
13731
14559
  delete:
13732
14560
  operationId: integrations_twilio_credentials_delete
@@ -13737,6 +14565,19 @@ paths:
13737
14565
  responses:
13738
14566
  "200":
13739
14567
  description: Successful response
14568
+ content:
14569
+ application/json:
14570
+ schema:
14571
+ type: object
14572
+ properties:
14573
+ success:
14574
+ type: boolean
14575
+ hasCredentials:
14576
+ type: boolean
14577
+ required:
14578
+ - success
14579
+ - hasCredentials
14580
+ additionalProperties: false
13740
14581
  post:
13741
14582
  operationId: integrations_twilio_credentials_post
13742
14583
  summary: Set Twilio credentials
@@ -13746,6 +14587,19 @@ paths:
13746
14587
  responses:
13747
14588
  "200":
13748
14589
  description: Successful response
14590
+ content:
14591
+ application/json:
14592
+ schema:
14593
+ type: object
14594
+ properties:
14595
+ success:
14596
+ type: boolean
14597
+ hasCredentials:
14598
+ type: boolean
14599
+ required:
14600
+ - success
14601
+ - hasCredentials
14602
+ additionalProperties: false
13749
14603
  requestBody:
13750
14604
  required: true
13751
14605
  content:
@@ -13773,6 +14627,42 @@ paths:
13773
14627
  responses:
13774
14628
  "200":
13775
14629
  description: Successful response
14630
+ content:
14631
+ application/json:
14632
+ schema:
14633
+ type: object
14634
+ properties:
14635
+ success:
14636
+ type: boolean
14637
+ hasCredentials:
14638
+ type: boolean
14639
+ numbers:
14640
+ type: array
14641
+ items:
14642
+ type: object
14643
+ properties:
14644
+ phoneNumber:
14645
+ type: string
14646
+ friendlyName:
14647
+ type: string
14648
+ capabilities:
14649
+ type: object
14650
+ properties:
14651
+ voice:
14652
+ type: boolean
14653
+ required:
14654
+ - voice
14655
+ additionalProperties: false
14656
+ required:
14657
+ - phoneNumber
14658
+ - friendlyName
14659
+ - capabilities
14660
+ additionalProperties: false
14661
+ required:
14662
+ - success
14663
+ - hasCredentials
14664
+ - numbers
14665
+ additionalProperties: false
13776
14666
  /v1/integrations/twilio/numbers/assign:
13777
14667
  post:
13778
14668
  operationId: integrations_twilio_numbers_assign_post
@@ -13783,6 +14673,23 @@ paths:
13783
14673
  responses:
13784
14674
  "200":
13785
14675
  description: Successful response
14676
+ content:
14677
+ application/json:
14678
+ schema:
14679
+ type: object
14680
+ properties:
14681
+ success:
14682
+ type: boolean
14683
+ hasCredentials:
14684
+ type: boolean
14685
+ phoneNumber:
14686
+ type: string
14687
+ warning:
14688
+ type: string
14689
+ required:
14690
+ - success
14691
+ - hasCredentials
14692
+ additionalProperties: false
13786
14693
  /v1/integrations/twilio/numbers/provision:
13787
14694
  post:
13788
14695
  operationId: integrations_twilio_numbers_provision_post
@@ -13793,6 +14700,23 @@ paths:
13793
14700
  responses:
13794
14701
  "200":
13795
14702
  description: Successful response
14703
+ content:
14704
+ application/json:
14705
+ schema:
14706
+ type: object
14707
+ properties:
14708
+ success:
14709
+ type: boolean
14710
+ hasCredentials:
14711
+ type: boolean
14712
+ phoneNumber:
14713
+ type: string
14714
+ warning:
14715
+ type: string
14716
+ required:
14717
+ - success
14718
+ - hasCredentials
14719
+ additionalProperties: false
13796
14720
  /v1/integrations/twilio/numbers/release:
13797
14721
  post:
13798
14722
  operationId: integrations_twilio_numbers_release_post
@@ -13803,6 +14727,23 @@ paths:
13803
14727
  responses:
13804
14728
  "200":
13805
14729
  description: Successful response
14730
+ content:
14731
+ application/json:
14732
+ schema:
14733
+ type: object
14734
+ properties:
14735
+ success:
14736
+ type: boolean
14737
+ hasCredentials:
14738
+ type: boolean
14739
+ phoneNumber:
14740
+ type: string
14741
+ warning:
14742
+ type: string
14743
+ required:
14744
+ - success
14745
+ - hasCredentials
14746
+ additionalProperties: false
13806
14747
  /v1/integrations/vercel/config:
13807
14748
  delete:
13808
14749
  operationId: integrations_vercel_config_delete
@@ -14072,27 +15013,107 @@ paths:
14072
15013
  items:
14073
15014
  type: string
14074
15015
  required:
14075
- - service
14076
- - callbackTransport
15016
+ - service
15017
+ - callbackTransport
15018
+ additionalProperties: false
15019
+ /v1/internal/oauth/connect/status/{state}:
15020
+ get:
15021
+ operationId: internal_oauth_connect_status_by_state_get
15022
+ summary: Poll daemon OAuth connect flow status
15023
+ description: Returns the current status of an in-flight daemon-owned OAuth connect flow (pending/complete/error).
15024
+ tags:
15025
+ - internal
15026
+ responses:
15027
+ "200":
15028
+ description: Successful response
15029
+ "404":
15030
+ description: No active OAuth connect flow for the given state token
15031
+ parameters:
15032
+ - name: state
15033
+ in: path
15034
+ required: true
15035
+ schema:
15036
+ type: string
15037
+ /v1/internal/telemetry/auth-fallback:
15038
+ post:
15039
+ operationId: internal_telemetry_authfallback_post
15040
+ summary: Record auth-fallback counts
15041
+ description:
15042
+ Receives aggregated legacy-loopback auth-fallback counts forwarded by the gateway and persists them for
15043
+ telemetry reporting.
15044
+ tags:
15045
+ - internal
15046
+ - telemetry
15047
+ responses:
15048
+ "200":
15049
+ description: Successful response
15050
+ content:
15051
+ application/json:
15052
+ schema:
15053
+ anyOf:
15054
+ - type: object
15055
+ properties:
15056
+ recorded:
15057
+ type: integer
15058
+ minimum: 0
15059
+ maximum: 9007199254740991
15060
+ required:
15061
+ - recorded
15062
+ additionalProperties: false
15063
+ - type: object
15064
+ properties:
15065
+ skipped:
15066
+ type: boolean
15067
+ const: true
15068
+ description: Counts dropped because usage data collection is disabled
15069
+ required:
15070
+ - skipped
15071
+ additionalProperties: false
15072
+ requestBody:
15073
+ required: true
15074
+ content:
15075
+ application/json:
15076
+ schema:
15077
+ type: object
15078
+ properties:
15079
+ window_start:
15080
+ type: integer
15081
+ minimum: 0
15082
+ maximum: 9007199254740991
15083
+ window_end:
15084
+ type: integer
15085
+ minimum: 0
15086
+ maximum: 9007199254740991
15087
+ counts:
15088
+ minItems: 1
15089
+ type: array
15090
+ items:
15091
+ type: object
15092
+ properties:
15093
+ guard:
15094
+ type: string
15095
+ minLength: 1
15096
+ path:
15097
+ type: string
15098
+ minLength: 1
15099
+ failure_kind:
15100
+ type: string
15101
+ minLength: 1
15102
+ count:
15103
+ type: integer
15104
+ exclusiveMinimum: 0
15105
+ maximum: 9007199254740991
15106
+ required:
15107
+ - guard
15108
+ - path
15109
+ - failure_kind
15110
+ - count
15111
+ additionalProperties: false
15112
+ required:
15113
+ - window_start
15114
+ - window_end
15115
+ - counts
14077
15116
  additionalProperties: false
14078
- /v1/internal/oauth/connect/status/{state}:
14079
- get:
14080
- operationId: internal_oauth_connect_status_by_state_get
14081
- summary: Poll daemon OAuth connect flow status
14082
- description: Returns the current status of an in-flight daemon-owned OAuth connect flow (pending/complete/error).
14083
- tags:
14084
- - internal
14085
- responses:
14086
- "200":
14087
- description: Successful response
14088
- "404":
14089
- description: No active OAuth connect flow for the given state token
14090
- parameters:
14091
- - name: state
14092
- in: path
14093
- required: true
14094
- schema:
14095
- type: string
14096
15117
  /v1/internal/twilio/connect-action:
14097
15118
  post:
14098
15119
  operationId: internal_twilio_connectaction_post
@@ -14163,6 +15184,11 @@ paths:
14163
15184
  responses:
14164
15185
  "200":
14165
15186
  description: Successful response
15187
+ content:
15188
+ application/gzip:
15189
+ schema:
15190
+ type: string
15191
+ format: binary
14166
15192
  "500":
14167
15193
  description: Failed to create archive
14168
15194
  requestBody:
@@ -14559,6 +15585,33 @@ paths:
14559
15585
  responses:
14560
15586
  "200":
14561
15587
  description: Successful response
15588
+ content:
15589
+ application/json:
15590
+ schema:
15591
+ type: object
15592
+ properties:
15593
+ pages:
15594
+ type: array
15595
+ items:
15596
+ type: object
15597
+ properties:
15598
+ slug:
15599
+ type: string
15600
+ bodyBytes:
15601
+ type: number
15602
+ edgeCount:
15603
+ type: number
15604
+ updatedAtMs:
15605
+ type: number
15606
+ required:
15607
+ - slug
15608
+ - bodyBytes
15609
+ - edgeCount
15610
+ - updatedAtMs
15611
+ additionalProperties: false
15612
+ required:
15613
+ - pages
15614
+ additionalProperties: false
14562
15615
  requestBody:
14563
15616
  required: true
14564
15617
  content:
@@ -14810,6 +15863,37 @@ paths:
14810
15863
  responses:
14811
15864
  "200":
14812
15865
  description: Successful response
15866
+ content:
15867
+ application/json:
15868
+ schema:
15869
+ type: object
15870
+ properties:
15871
+ rendered:
15872
+ type: string
15873
+ counts:
15874
+ type: object
15875
+ properties:
15876
+ unassigned:
15877
+ type: number
15878
+ danglingRefs:
15879
+ type: number
15880
+ novelClusters:
15881
+ type: number
15882
+ oversizedLeaves:
15883
+ type: number
15884
+ tinyLeaves:
15885
+ type: number
15886
+ required:
15887
+ - unassigned
15888
+ - danglingRefs
15889
+ - novelClusters
15890
+ - oversizedLeaves
15891
+ - tinyLeaves
15892
+ additionalProperties: false
15893
+ required:
15894
+ - rendered
15895
+ - counts
15896
+ additionalProperties: false
14813
15897
  /v1/memory/v3/rebuild-index:
14814
15898
  post:
14815
15899
  operationId: memory_v3_rebuildindex_post
@@ -14819,6 +15903,17 @@ paths:
14819
15903
  responses:
14820
15904
  "200":
14821
15905
  description: Successful response
15906
+ content:
15907
+ application/json:
15908
+ schema:
15909
+ type: object
15910
+ properties:
15911
+ ok:
15912
+ type: boolean
15913
+ const: true
15914
+ required:
15915
+ - ok
15916
+ additionalProperties: false
14822
15917
  /v1/memory/v3/reconcile:
14823
15918
  post:
14824
15919
  operationId: memory_v3_reconcile_post
@@ -14828,6 +15923,39 @@ paths:
14828
15923
  responses:
14829
15924
  "200":
14830
15925
  description: Successful response
15926
+ content:
15927
+ application/json:
15928
+ schema:
15929
+ type: object
15930
+ properties:
15931
+ renames:
15932
+ type: array
15933
+ items:
15934
+ type: object
15935
+ properties:
15936
+ id:
15937
+ type: string
15938
+ oldPath:
15939
+ type: string
15940
+ newPath:
15941
+ type: string
15942
+ required:
15943
+ - oldPath
15944
+ - newPath
15945
+ additionalProperties: false
15946
+ deleted:
15947
+ type: array
15948
+ items:
15949
+ type: string
15950
+ prunedCore:
15951
+ type: array
15952
+ items:
15953
+ type: string
15954
+ required:
15955
+ - renames
15956
+ - deleted
15957
+ - prunedCore
15958
+ additionalProperties: false
14831
15959
  /v1/memory/v3/set-core:
14832
15960
  post:
14833
15961
  operationId: memory_v3_setcore_post
@@ -14837,6 +15965,42 @@ paths:
14837
15965
  responses:
14838
15966
  "200":
14839
15967
  description: Successful response
15968
+ content:
15969
+ application/json:
15970
+ schema:
15971
+ type: object
15972
+ properties:
15973
+ nextCore:
15974
+ type: array
15975
+ items:
15976
+ type: string
15977
+ alwaysOnPageCount:
15978
+ type: number
15979
+ written:
15980
+ type: boolean
15981
+ required:
15982
+ - nextCore
15983
+ - alwaysOnPageCount
15984
+ - written
15985
+ additionalProperties: false
15986
+ requestBody:
15987
+ required: true
15988
+ content:
15989
+ application/json:
15990
+ schema:
15991
+ type: object
15992
+ properties:
15993
+ add:
15994
+ type: array
15995
+ items:
15996
+ type: string
15997
+ remove:
15998
+ type: array
15999
+ items:
16000
+ type: string
16001
+ write:
16002
+ type: boolean
16003
+ additionalProperties: false
14840
16004
  /v1/messages:
14841
16005
  get:
14842
16006
  operationId: messages_get
@@ -14854,7 +16018,854 @@ paths:
14854
16018
  properties:
14855
16019
  messages:
14856
16020
  type: array
14857
- items: {}
16021
+ items:
16022
+ type: object
16023
+ properties:
16024
+ id:
16025
+ type: string
16026
+ mergedMessageIds:
16027
+ type: array
16028
+ items:
16029
+ type: string
16030
+ role:
16031
+ type: string
16032
+ enum:
16033
+ - user
16034
+ - assistant
16035
+ content:
16036
+ type: string
16037
+ timestamp:
16038
+ type: string
16039
+ attachments:
16040
+ type: array
16041
+ items:
16042
+ type: object
16043
+ properties:
16044
+ id:
16045
+ type: string
16046
+ filename:
16047
+ type: string
16048
+ mimeType:
16049
+ type: string
16050
+ sizeBytes:
16051
+ type: number
16052
+ kind:
16053
+ type: string
16054
+ data:
16055
+ type: string
16056
+ thumbnailData:
16057
+ type: string
16058
+ fileBacked:
16059
+ type: boolean
16060
+ required:
16061
+ - id
16062
+ - filename
16063
+ - mimeType
16064
+ - sizeBytes
16065
+ - kind
16066
+ additionalProperties: false
16067
+ toolCalls:
16068
+ type: array
16069
+ items:
16070
+ type: object
16071
+ properties:
16072
+ id:
16073
+ type: string
16074
+ name:
16075
+ type: string
16076
+ input:
16077
+ type: object
16078
+ propertyNames:
16079
+ type: string
16080
+ additionalProperties: {}
16081
+ result:
16082
+ type: string
16083
+ isError:
16084
+ type: boolean
16085
+ imageData:
16086
+ type: string
16087
+ imageDataList:
16088
+ type: array
16089
+ items:
16090
+ type: string
16091
+ startedAt:
16092
+ type: number
16093
+ completedAt:
16094
+ type: number
16095
+ confirmationDecision:
16096
+ type: string
16097
+ enum:
16098
+ - approved
16099
+ - denied
16100
+ - timed_out
16101
+ confirmationLabel:
16102
+ type: string
16103
+ riskLevel:
16104
+ type: string
16105
+ riskReason:
16106
+ type: string
16107
+ matchedTrustRuleId:
16108
+ type: string
16109
+ autoApproved:
16110
+ type: boolean
16111
+ approvalMode:
16112
+ type: string
16113
+ approvalReason:
16114
+ type: string
16115
+ riskThreshold:
16116
+ type: string
16117
+ riskScopeOptions:
16118
+ type: array
16119
+ items:
16120
+ type: object
16121
+ properties:
16122
+ pattern:
16123
+ type: string
16124
+ label:
16125
+ type: string
16126
+ required:
16127
+ - pattern
16128
+ - label
16129
+ additionalProperties: false
16130
+ riskAllowlistOptions:
16131
+ type: array
16132
+ items:
16133
+ type: object
16134
+ properties:
16135
+ label:
16136
+ type: string
16137
+ description:
16138
+ type: string
16139
+ pattern:
16140
+ type: string
16141
+ required:
16142
+ - label
16143
+ - description
16144
+ - pattern
16145
+ additionalProperties: false
16146
+ riskDirectoryScopeOptions:
16147
+ type: array
16148
+ items:
16149
+ type: object
16150
+ properties:
16151
+ scope:
16152
+ type: string
16153
+ label:
16154
+ type: string
16155
+ required:
16156
+ - scope
16157
+ - label
16158
+ additionalProperties: false
16159
+ activityMetadata:
16160
+ type: object
16161
+ properties:
16162
+ webSearch:
16163
+ type: object
16164
+ properties:
16165
+ query:
16166
+ type: string
16167
+ provider:
16168
+ type: string
16169
+ enum:
16170
+ - anthropic-native
16171
+ - brave
16172
+ - perplexity
16173
+ - tavily
16174
+ resultCount:
16175
+ type: number
16176
+ durationMs:
16177
+ type: number
16178
+ results:
16179
+ type: array
16180
+ items:
16181
+ type: object
16182
+ properties:
16183
+ rank:
16184
+ type: number
16185
+ title:
16186
+ type: string
16187
+ url:
16188
+ type: string
16189
+ domain:
16190
+ type: string
16191
+ faviconUrl:
16192
+ type: string
16193
+ snippet:
16194
+ type: string
16195
+ age:
16196
+ type: string
16197
+ score:
16198
+ type: number
16199
+ required:
16200
+ - rank
16201
+ - title
16202
+ - url
16203
+ - domain
16204
+ additionalProperties: false
16205
+ errorMessage:
16206
+ type: string
16207
+ required:
16208
+ - query
16209
+ - provider
16210
+ - resultCount
16211
+ - durationMs
16212
+ - results
16213
+ additionalProperties: false
16214
+ webFetch:
16215
+ type: object
16216
+ properties:
16217
+ url:
16218
+ type: string
16219
+ finalUrl:
16220
+ type: string
16221
+ status:
16222
+ type: number
16223
+ contentType:
16224
+ type: string
16225
+ byteCount:
16226
+ type: number
16227
+ charCount:
16228
+ type: number
16229
+ truncated:
16230
+ type: boolean
16231
+ title:
16232
+ type: string
16233
+ domain:
16234
+ type: string
16235
+ faviconUrl:
16236
+ type: string
16237
+ redirectCount:
16238
+ type: number
16239
+ durationMs:
16240
+ type: number
16241
+ errorMessage:
16242
+ type: string
16243
+ mayRequireJavaScript:
16244
+ type: boolean
16245
+ required:
16246
+ - url
16247
+ - finalUrl
16248
+ - status
16249
+ - byteCount
16250
+ - charCount
16251
+ - truncated
16252
+ - domain
16253
+ - redirectCount
16254
+ - durationMs
16255
+ additionalProperties: false
16256
+ additionalProperties: false
16257
+ scopeOptions:
16258
+ type: array
16259
+ items:
16260
+ type: object
16261
+ properties:
16262
+ label:
16263
+ type: string
16264
+ scope:
16265
+ type: string
16266
+ required:
16267
+ - label
16268
+ - scope
16269
+ additionalProperties: false
16270
+ pendingConfirmation:
16271
+ type: object
16272
+ properties:
16273
+ requestId:
16274
+ type: string
16275
+ title:
16276
+ type: string
16277
+ description:
16278
+ type: string
16279
+ toolName:
16280
+ type: string
16281
+ riskLevel:
16282
+ type: string
16283
+ riskReason:
16284
+ type: string
16285
+ input:
16286
+ type: object
16287
+ propertyNames:
16288
+ type: string
16289
+ additionalProperties: {}
16290
+ allowlistOptions:
16291
+ type: array
16292
+ items:
16293
+ type: object
16294
+ properties:
16295
+ label:
16296
+ type: string
16297
+ description:
16298
+ type: string
16299
+ pattern:
16300
+ type: string
16301
+ required:
16302
+ - label
16303
+ - description
16304
+ - pattern
16305
+ additionalProperties: false
16306
+ scopeOptions:
16307
+ type: array
16308
+ items:
16309
+ type: object
16310
+ properties:
16311
+ label:
16312
+ type: string
16313
+ scope:
16314
+ type: string
16315
+ required:
16316
+ - label
16317
+ - scope
16318
+ additionalProperties: false
16319
+ directoryScopeOptions:
16320
+ type: array
16321
+ items:
16322
+ type: object
16323
+ properties:
16324
+ label:
16325
+ type: string
16326
+ scope:
16327
+ type: string
16328
+ required:
16329
+ - label
16330
+ - scope
16331
+ additionalProperties: false
16332
+ persistentDecisionsAllowed:
16333
+ type: boolean
16334
+ required:
16335
+ - requestId
16336
+ additionalProperties: false
16337
+ required:
16338
+ - name
16339
+ - input
16340
+ additionalProperties: false
16341
+ surfaces:
16342
+ type: array
16343
+ items:
16344
+ type: object
16345
+ properties:
16346
+ surfaceId:
16347
+ type: string
16348
+ surfaceType:
16349
+ type: string
16350
+ title:
16351
+ type: string
16352
+ data:
16353
+ type: object
16354
+ propertyNames:
16355
+ type: string
16356
+ additionalProperties: {}
16357
+ actions:
16358
+ type: array
16359
+ items:
16360
+ type: object
16361
+ properties:
16362
+ id:
16363
+ type: string
16364
+ label:
16365
+ type: string
16366
+ style:
16367
+ type: string
16368
+ data:
16369
+ type: object
16370
+ propertyNames:
16371
+ type: string
16372
+ additionalProperties: {}
16373
+ required:
16374
+ - id
16375
+ - label
16376
+ additionalProperties: false
16377
+ display:
16378
+ type: string
16379
+ persistent:
16380
+ type: boolean
16381
+ completed:
16382
+ type: boolean
16383
+ completionSummary:
16384
+ type: string
16385
+ toolCallId:
16386
+ type: string
16387
+ required:
16388
+ - surfaceId
16389
+ - surfaceType
16390
+ - data
16391
+ additionalProperties: false
16392
+ textSegments:
16393
+ type: array
16394
+ items:
16395
+ type: string
16396
+ thinkingSegments:
16397
+ type: array
16398
+ items:
16399
+ type: string
16400
+ contentOrder:
16401
+ type: array
16402
+ items:
16403
+ type: string
16404
+ contentBlocks:
16405
+ type: array
16406
+ items:
16407
+ oneOf:
16408
+ - type: object
16409
+ properties:
16410
+ type:
16411
+ type: string
16412
+ const: text
16413
+ text:
16414
+ type: string
16415
+ required:
16416
+ - type
16417
+ - text
16418
+ additionalProperties: false
16419
+ - type: object
16420
+ properties:
16421
+ type:
16422
+ type: string
16423
+ const: thinking
16424
+ thinking:
16425
+ type: string
16426
+ required:
16427
+ - type
16428
+ - thinking
16429
+ additionalProperties: false
16430
+ - type: object
16431
+ properties:
16432
+ type:
16433
+ type: string
16434
+ const: tool_use
16435
+ toolCall:
16436
+ type: object
16437
+ properties:
16438
+ id:
16439
+ type: string
16440
+ name:
16441
+ type: string
16442
+ input:
16443
+ type: object
16444
+ propertyNames:
16445
+ type: string
16446
+ additionalProperties: {}
16447
+ result:
16448
+ type: string
16449
+ isError:
16450
+ type: boolean
16451
+ imageData:
16452
+ type: string
16453
+ imageDataList:
16454
+ type: array
16455
+ items:
16456
+ type: string
16457
+ startedAt:
16458
+ type: number
16459
+ completedAt:
16460
+ type: number
16461
+ confirmationDecision:
16462
+ type: string
16463
+ enum:
16464
+ - approved
16465
+ - denied
16466
+ - timed_out
16467
+ confirmationLabel:
16468
+ type: string
16469
+ riskLevel:
16470
+ type: string
16471
+ riskReason:
16472
+ type: string
16473
+ matchedTrustRuleId:
16474
+ type: string
16475
+ autoApproved:
16476
+ type: boolean
16477
+ approvalMode:
16478
+ type: string
16479
+ approvalReason:
16480
+ type: string
16481
+ riskThreshold:
16482
+ type: string
16483
+ riskScopeOptions:
16484
+ type: array
16485
+ items:
16486
+ type: object
16487
+ properties:
16488
+ pattern:
16489
+ type: string
16490
+ label:
16491
+ type: string
16492
+ required:
16493
+ - pattern
16494
+ - label
16495
+ additionalProperties: false
16496
+ riskAllowlistOptions:
16497
+ type: array
16498
+ items:
16499
+ type: object
16500
+ properties:
16501
+ label:
16502
+ type: string
16503
+ description:
16504
+ type: string
16505
+ pattern:
16506
+ type: string
16507
+ required:
16508
+ - label
16509
+ - description
16510
+ - pattern
16511
+ additionalProperties: false
16512
+ riskDirectoryScopeOptions:
16513
+ type: array
16514
+ items:
16515
+ type: object
16516
+ properties:
16517
+ scope:
16518
+ type: string
16519
+ label:
16520
+ type: string
16521
+ required:
16522
+ - scope
16523
+ - label
16524
+ additionalProperties: false
16525
+ activityMetadata:
16526
+ type: object
16527
+ properties:
16528
+ webSearch:
16529
+ type: object
16530
+ properties:
16531
+ query:
16532
+ type: string
16533
+ provider:
16534
+ type: string
16535
+ enum:
16536
+ - anthropic-native
16537
+ - brave
16538
+ - perplexity
16539
+ - tavily
16540
+ resultCount:
16541
+ type: number
16542
+ durationMs:
16543
+ type: number
16544
+ results:
16545
+ type: array
16546
+ items:
16547
+ type: object
16548
+ properties:
16549
+ rank:
16550
+ type: number
16551
+ title:
16552
+ type: string
16553
+ url:
16554
+ type: string
16555
+ domain:
16556
+ type: string
16557
+ faviconUrl:
16558
+ type: string
16559
+ snippet:
16560
+ type: string
16561
+ age:
16562
+ type: string
16563
+ score:
16564
+ type: number
16565
+ required:
16566
+ - rank
16567
+ - title
16568
+ - url
16569
+ - domain
16570
+ additionalProperties: false
16571
+ errorMessage:
16572
+ type: string
16573
+ required:
16574
+ - query
16575
+ - provider
16576
+ - resultCount
16577
+ - durationMs
16578
+ - results
16579
+ additionalProperties: false
16580
+ webFetch:
16581
+ type: object
16582
+ properties:
16583
+ url:
16584
+ type: string
16585
+ finalUrl:
16586
+ type: string
16587
+ status:
16588
+ type: number
16589
+ contentType:
16590
+ type: string
16591
+ byteCount:
16592
+ type: number
16593
+ charCount:
16594
+ type: number
16595
+ truncated:
16596
+ type: boolean
16597
+ title:
16598
+ type: string
16599
+ domain:
16600
+ type: string
16601
+ faviconUrl:
16602
+ type: string
16603
+ redirectCount:
16604
+ type: number
16605
+ durationMs:
16606
+ type: number
16607
+ errorMessage:
16608
+ type: string
16609
+ mayRequireJavaScript:
16610
+ type: boolean
16611
+ required:
16612
+ - url
16613
+ - finalUrl
16614
+ - status
16615
+ - byteCount
16616
+ - charCount
16617
+ - truncated
16618
+ - domain
16619
+ - redirectCount
16620
+ - durationMs
16621
+ additionalProperties: false
16622
+ additionalProperties: false
16623
+ scopeOptions:
16624
+ type: array
16625
+ items:
16626
+ type: object
16627
+ properties:
16628
+ label:
16629
+ type: string
16630
+ scope:
16631
+ type: string
16632
+ required:
16633
+ - label
16634
+ - scope
16635
+ additionalProperties: false
16636
+ pendingConfirmation:
16637
+ type: object
16638
+ properties:
16639
+ requestId:
16640
+ type: string
16641
+ title:
16642
+ type: string
16643
+ description:
16644
+ type: string
16645
+ toolName:
16646
+ type: string
16647
+ riskLevel:
16648
+ type: string
16649
+ riskReason:
16650
+ type: string
16651
+ input:
16652
+ type: object
16653
+ propertyNames:
16654
+ type: string
16655
+ additionalProperties: {}
16656
+ allowlistOptions:
16657
+ type: array
16658
+ items:
16659
+ type: object
16660
+ properties:
16661
+ label:
16662
+ type: string
16663
+ description:
16664
+ type: string
16665
+ pattern:
16666
+ type: string
16667
+ required:
16668
+ - label
16669
+ - description
16670
+ - pattern
16671
+ additionalProperties: false
16672
+ scopeOptions:
16673
+ type: array
16674
+ items:
16675
+ type: object
16676
+ properties:
16677
+ label:
16678
+ type: string
16679
+ scope:
16680
+ type: string
16681
+ required:
16682
+ - label
16683
+ - scope
16684
+ additionalProperties: false
16685
+ directoryScopeOptions:
16686
+ type: array
16687
+ items:
16688
+ type: object
16689
+ properties:
16690
+ label:
16691
+ type: string
16692
+ scope:
16693
+ type: string
16694
+ required:
16695
+ - label
16696
+ - scope
16697
+ additionalProperties: false
16698
+ persistentDecisionsAllowed:
16699
+ type: boolean
16700
+ required:
16701
+ - requestId
16702
+ additionalProperties: false
16703
+ required:
16704
+ - name
16705
+ - input
16706
+ additionalProperties: false
16707
+ required:
16708
+ - type
16709
+ - toolCall
16710
+ additionalProperties: false
16711
+ - type: object
16712
+ properties:
16713
+ type:
16714
+ type: string
16715
+ const: surface
16716
+ surface:
16717
+ type: object
16718
+ properties:
16719
+ surfaceId:
16720
+ type: string
16721
+ surfaceType:
16722
+ type: string
16723
+ title:
16724
+ type: string
16725
+ data:
16726
+ type: object
16727
+ propertyNames:
16728
+ type: string
16729
+ additionalProperties: {}
16730
+ actions:
16731
+ type: array
16732
+ items:
16733
+ type: object
16734
+ properties:
16735
+ id:
16736
+ type: string
16737
+ label:
16738
+ type: string
16739
+ style:
16740
+ type: string
16741
+ data:
16742
+ type: object
16743
+ propertyNames:
16744
+ type: string
16745
+ additionalProperties: {}
16746
+ required:
16747
+ - id
16748
+ - label
16749
+ additionalProperties: false
16750
+ display:
16751
+ type: string
16752
+ persistent:
16753
+ type: boolean
16754
+ completed:
16755
+ type: boolean
16756
+ completionSummary:
16757
+ type: string
16758
+ toolCallId:
16759
+ type: string
16760
+ required:
16761
+ - surfaceId
16762
+ - surfaceType
16763
+ - data
16764
+ additionalProperties: false
16765
+ required:
16766
+ - type
16767
+ - surface
16768
+ additionalProperties: false
16769
+ - type: object
16770
+ properties:
16771
+ type:
16772
+ type: string
16773
+ const: attachment
16774
+ attachment:
16775
+ type: object
16776
+ properties:
16777
+ id:
16778
+ type: string
16779
+ filename:
16780
+ type: string
16781
+ mimeType:
16782
+ type: string
16783
+ sizeBytes:
16784
+ type: number
16785
+ kind:
16786
+ type: string
16787
+ data:
16788
+ type: string
16789
+ thumbnailData:
16790
+ type: string
16791
+ fileBacked:
16792
+ type: boolean
16793
+ required:
16794
+ - id
16795
+ - filename
16796
+ - mimeType
16797
+ - sizeBytes
16798
+ - kind
16799
+ additionalProperties: false
16800
+ required:
16801
+ - type
16802
+ - attachment
16803
+ additionalProperties: false
16804
+ subagentNotification:
16805
+ type: object
16806
+ properties:
16807
+ subagentId:
16808
+ type: string
16809
+ label:
16810
+ type: string
16811
+ status:
16812
+ type: string
16813
+ error:
16814
+ type: string
16815
+ conversationId:
16816
+ type: string
16817
+ objective:
16818
+ type: string
16819
+ required:
16820
+ - subagentId
16821
+ - label
16822
+ - status
16823
+ additionalProperties: false
16824
+ slackMessage:
16825
+ type: object
16826
+ properties:
16827
+ channelId:
16828
+ type: string
16829
+ channelName:
16830
+ type: string
16831
+ channelTs:
16832
+ type: string
16833
+ threadTs:
16834
+ type: string
16835
+ sender:
16836
+ type: object
16837
+ properties:
16838
+ displayName:
16839
+ type: string
16840
+ externalUserId:
16841
+ type: string
16842
+ additionalProperties: false
16843
+ messageLink:
16844
+ type: object
16845
+ properties:
16846
+ appUrl:
16847
+ type: string
16848
+ webUrl:
16849
+ type: string
16850
+ additionalProperties: false
16851
+ threadLink:
16852
+ type: object
16853
+ properties:
16854
+ appUrl:
16855
+ type: string
16856
+ webUrl:
16857
+ type: string
16858
+ additionalProperties: false
16859
+ required:
16860
+ - channelId
16861
+ - channelTs
16862
+ additionalProperties: false
16863
+ required:
16864
+ - id
16865
+ - role
16866
+ - timestamp
16867
+ - attachments
16868
+ additionalProperties: false
14858
16869
  description: Array of message objects
14859
16870
  hasMore:
14860
16871
  description: Whether older messages exist beyond this page
@@ -14871,9 +16882,50 @@ paths:
14871
16882
  anyOf:
14872
16883
  - type: string
14873
16884
  - type: "null"
16885
+ seq:
16886
+ description:
16887
+ Global SSE `seq` of the last event whose content is durably persisted for this conversation in the current
16888
+ daemon process. A client can align this snapshot with the `/events` stream by applying only events
16889
+ with `seq` greater than this value. Null when no events have been persisted in this process (cold
16890
+ conversation, after a daemon restart, or when the conversation has aged out of the in-memory map)
16891
+ — clients should cold-start in that case. Absent on older daemons that predate this field.
16892
+ anyOf:
16893
+ - type: number
16894
+ - type: "null"
14874
16895
  required:
14875
16896
  - messages
14876
16897
  additionalProperties: false
16898
+ parameters:
16899
+ - name: conversationId
16900
+ in: query
16901
+ required: false
16902
+ schema:
16903
+ type: string
16904
+ description: Conversation UUID. One of conversationId or conversationKey is required.
16905
+ - name: conversationKey
16906
+ in: query
16907
+ required: false
16908
+ schema:
16909
+ type: string
16910
+ description: Channel/external conversation key. One of conversationId or conversationKey is required.
16911
+ - name: page
16912
+ in: query
16913
+ required: false
16914
+ schema:
16915
+ type: string
16916
+ description: When set to 'latest', returns the most recent page of messages with pagination metadata.
16917
+ - name: beforeTimestamp
16918
+ in: query
16919
+ required: false
16920
+ schema:
16921
+ type: integer
16922
+ description: Return messages older than this timestamp (ms since epoch). Used for paging older history.
16923
+ - name: limit
16924
+ in: query
16925
+ required: false
16926
+ schema:
16927
+ type: integer
16928
+ description: Maximum number of messages to return.
14877
16929
  post:
14878
16930
  operationId: messages_post
14879
16931
  summary: Send a message
@@ -14883,6 +16935,24 @@ paths:
14883
16935
  responses:
14884
16936
  "202":
14885
16937
  description: Successful response
16938
+ content:
16939
+ application/json:
16940
+ schema:
16941
+ type: object
16942
+ properties:
16943
+ accepted:
16944
+ type: boolean
16945
+ conversationId:
16946
+ type: string
16947
+ messageId:
16948
+ type: string
16949
+ queued:
16950
+ type: boolean
16951
+ requestId:
16952
+ type: string
16953
+ required:
16954
+ - accepted
16955
+ additionalProperties: false
14886
16956
  requestBody:
14887
16957
  required: true
14888
16958
  content:
@@ -14890,15 +16960,35 @@ paths:
14890
16960
  schema:
14891
16961
  type: object
14892
16962
  properties:
16963
+ conversationId:
16964
+ description:
16965
+ Internal conversation id (0.8.6+ strict lookup). Omit both id and key to mint a new conversation
16966
+ server-side.
16967
+ anyOf:
16968
+ - type: string
16969
+ - type: "null"
14893
16970
  conversationKey:
14894
- type: string
16971
+ anyOf:
16972
+ - type: string
16973
+ - type: "null"
14895
16974
  content:
14896
16975
  type: string
14897
16976
  description: Message text content
14898
16977
  attachments:
14899
16978
  type: array
14900
16979
  items: {}
14901
- description: Optional file attachments
16980
+ description: Optional inline file attachments
16981
+ attachmentIds:
16982
+ type: array
16983
+ items:
16984
+ type: string
16985
+ description: Ids of previously uploaded attachments to attach
16986
+ sourceChannel:
16987
+ type: string
16988
+ description: Originating channel id (e.g. "vellum")
16989
+ interface:
16990
+ type: string
16991
+ description: Originating interface id (e.g. "vellum")
14902
16992
  conversationType:
14903
16993
  type: string
14904
16994
  slashCommand:
@@ -14916,8 +17006,57 @@ paths:
14916
17006
  - low
14917
17007
  - medium
14918
17008
  - high
17009
+ onboarding:
17010
+ type: object
17011
+ properties:
17012
+ tools:
17013
+ type: array
17014
+ items:
17015
+ type: string
17016
+ tasks:
17017
+ type: array
17018
+ items:
17019
+ type: string
17020
+ tone:
17021
+ type: string
17022
+ userName:
17023
+ type: string
17024
+ assistantName:
17025
+ type: string
17026
+ googleConnected:
17027
+ type: boolean
17028
+ googleScopes:
17029
+ type: array
17030
+ items:
17031
+ type: string
17032
+ priorAssistants:
17033
+ type: array
17034
+ items:
17035
+ type: string
17036
+ cohort:
17037
+ type: string
17038
+ websiteUrl:
17039
+ type: string
17040
+ contentSourceUrl:
17041
+ type: string
17042
+ bootstrapTemplate:
17043
+ type: string
17044
+ initialMessage:
17045
+ type: string
17046
+ skills:
17047
+ type: array
17048
+ items:
17049
+ type: string
17050
+ required:
17051
+ - tools
17052
+ - tasks
17053
+ - tone
17054
+ additionalProperties: false
17055
+ description: PreChat onboarding context, sent on the first message only
14919
17056
  required:
14920
17057
  - content
17058
+ - sourceChannel
17059
+ - interface
14921
17060
  additionalProperties: false
14922
17061
  /v1/messages/{id}/content:
14923
17062
  get:
@@ -16119,6 +18258,86 @@ paths:
16119
18258
  responses:
16120
18259
  "200":
16121
18260
  description: Successful response
18261
+ content:
18262
+ application/json:
18263
+ schema:
18264
+ type: object
18265
+ properties:
18266
+ provider:
18267
+ anyOf:
18268
+ - type: object
18269
+ properties:
18270
+ provider_key:
18271
+ type: string
18272
+ display_name:
18273
+ anyOf:
18274
+ - type: string
18275
+ - type: "null"
18276
+ description:
18277
+ anyOf:
18278
+ - type: string
18279
+ - type: "null"
18280
+ dashboard_url:
18281
+ anyOf:
18282
+ - type: string
18283
+ - type: "null"
18284
+ client_id_placeholder:
18285
+ anyOf:
18286
+ - type: string
18287
+ - type: "null"
18288
+ requires_client_secret:
18289
+ type: boolean
18290
+ logo_url:
18291
+ anyOf:
18292
+ - type: string
18293
+ - type: "null"
18294
+ supports_managed_mode:
18295
+ type: boolean
18296
+ managed_service_is_paid:
18297
+ type: boolean
18298
+ feature_flag:
18299
+ anyOf:
18300
+ - type: string
18301
+ - type: "null"
18302
+ required:
18303
+ - provider_key
18304
+ - display_name
18305
+ - description
18306
+ - dashboard_url
18307
+ - client_id_placeholder
18308
+ - requires_client_secret
18309
+ - logo_url
18310
+ - supports_managed_mode
18311
+ - managed_service_is_paid
18312
+ - feature_flag
18313
+ additionalProperties: false
18314
+ - type: "null"
18315
+ apps:
18316
+ type: array
18317
+ items:
18318
+ type: object
18319
+ properties:
18320
+ id:
18321
+ type: string
18322
+ provider_key:
18323
+ type: string
18324
+ client_id:
18325
+ type: string
18326
+ created_at:
18327
+ type: number
18328
+ updated_at:
18329
+ type: number
18330
+ required:
18331
+ - id
18332
+ - provider_key
18333
+ - client_id
18334
+ - created_at
18335
+ - updated_at
18336
+ additionalProperties: false
18337
+ required:
18338
+ - provider
18339
+ - apps
18340
+ additionalProperties: false
16122
18341
  parameters:
16123
18342
  - name: provider_key
16124
18343
  in: query
@@ -16135,6 +18354,52 @@ paths:
16135
18354
  responses:
16136
18355
  "201":
16137
18356
  description: Successful response
18357
+ content:
18358
+ application/json:
18359
+ schema:
18360
+ type: object
18361
+ properties:
18362
+ app:
18363
+ type: object
18364
+ properties:
18365
+ id:
18366
+ type: string
18367
+ provider_key:
18368
+ type: string
18369
+ client_id:
18370
+ type: string
18371
+ created_at:
18372
+ type: number
18373
+ updated_at:
18374
+ type: number
18375
+ required:
18376
+ - id
18377
+ - provider_key
18378
+ - client_id
18379
+ - created_at
18380
+ - updated_at
18381
+ additionalProperties: false
18382
+ required:
18383
+ - app
18384
+ additionalProperties: false
18385
+ requestBody:
18386
+ required: true
18387
+ content:
18388
+ application/json:
18389
+ schema:
18390
+ type: object
18391
+ properties:
18392
+ provider_key:
18393
+ type: string
18394
+ client_id:
18395
+ type: string
18396
+ client_secret:
18397
+ type: string
18398
+ required:
18399
+ - provider_key
18400
+ - client_id
18401
+ - client_secret
18402
+ additionalProperties: false
16138
18403
  /v1/oauth/apps/{appId}/connect:
16139
18404
  post:
16140
18405
  operationId: oauth_apps_by_appId_connect_post
@@ -16145,12 +18410,51 @@ paths:
16145
18410
  responses:
16146
18411
  "200":
16147
18412
  description: Successful response
18413
+ content:
18414
+ application/json:
18415
+ schema:
18416
+ anyOf:
18417
+ - type: object
18418
+ properties:
18419
+ auth_url:
18420
+ type: string
18421
+ state:
18422
+ type: string
18423
+ required:
18424
+ - auth_url
18425
+ - state
18426
+ additionalProperties: false
18427
+ - type: object
18428
+ properties:
18429
+ ok:
18430
+ type: boolean
18431
+ const: true
18432
+ required:
18433
+ - ok
18434
+ additionalProperties: false
16148
18435
  parameters:
16149
18436
  - name: appId
16150
18437
  in: path
16151
18438
  required: true
16152
18439
  schema:
16153
18440
  type: string
18441
+ requestBody:
18442
+ required: true
18443
+ content:
18444
+ application/json:
18445
+ schema:
18446
+ type: object
18447
+ properties:
18448
+ scopes:
18449
+ type: array
18450
+ items:
18451
+ type: string
18452
+ callback_transport:
18453
+ type: string
18454
+ enum:
18455
+ - loopback
18456
+ - gateway
18457
+ additionalProperties: false
16154
18458
  /v1/oauth/apps/{appId}/connections:
16155
18459
  get:
16156
18460
  operationId: oauth_apps_by_appId_connections_get
@@ -16161,6 +18465,54 @@ paths:
16161
18465
  responses:
16162
18466
  "200":
16163
18467
  description: Successful response
18468
+ content:
18469
+ application/json:
18470
+ schema:
18471
+ type: object
18472
+ properties:
18473
+ connections:
18474
+ type: array
18475
+ items:
18476
+ type: object
18477
+ properties:
18478
+ id:
18479
+ type: string
18480
+ provider_key:
18481
+ type: string
18482
+ account_info:
18483
+ anyOf:
18484
+ - type: string
18485
+ - type: "null"
18486
+ granted_scopes:
18487
+ type: array
18488
+ items:
18489
+ type: string
18490
+ status:
18491
+ type: string
18492
+ has_refresh_token:
18493
+ type: boolean
18494
+ expires_at:
18495
+ anyOf:
18496
+ - type: number
18497
+ - type: "null"
18498
+ created_at:
18499
+ type: number
18500
+ updated_at:
18501
+ type: number
18502
+ required:
18503
+ - id
18504
+ - provider_key
18505
+ - account_info
18506
+ - granted_scopes
18507
+ - status
18508
+ - has_refresh_token
18509
+ - expires_at
18510
+ - created_at
18511
+ - updated_at
18512
+ additionalProperties: false
18513
+ required:
18514
+ - connections
18515
+ additionalProperties: false
16164
18516
  parameters:
16165
18517
  - name: appId
16166
18518
  in: path
@@ -16177,6 +18529,16 @@ paths:
16177
18529
  responses:
16178
18530
  "200":
16179
18531
  description: Successful response
18532
+ content:
18533
+ application/json:
18534
+ schema:
18535
+ type: object
18536
+ properties:
18537
+ ok:
18538
+ type: boolean
18539
+ required:
18540
+ - ok
18541
+ additionalProperties: false
16180
18542
  parameters:
16181
18543
  - name: id
16182
18544
  in: path
@@ -16193,6 +18555,34 @@ paths:
16193
18555
  responses:
16194
18556
  "200":
16195
18557
  description: Successful response
18558
+ content:
18559
+ application/json:
18560
+ schema:
18561
+ type: object
18562
+ properties:
18563
+ app:
18564
+ type: object
18565
+ properties:
18566
+ id:
18567
+ type: string
18568
+ provider_key:
18569
+ type: string
18570
+ client_id:
18571
+ type: string
18572
+ created_at:
18573
+ type: number
18574
+ updated_at:
18575
+ type: number
18576
+ required:
18577
+ - id
18578
+ - provider_key
18579
+ - client_id
18580
+ - created_at
18581
+ - updated_at
18582
+ additionalProperties: false
18583
+ required:
18584
+ - app
18585
+ additionalProperties: false
16196
18586
  parameters:
16197
18587
  - name: id
16198
18588
  in: query
@@ -16222,6 +18612,53 @@ paths:
16222
18612
  responses:
16223
18613
  "200":
16224
18614
  description: Successful response
18615
+ content:
18616
+ application/json:
18617
+ schema:
18618
+ type: object
18619
+ properties:
18620
+ app:
18621
+ type: object
18622
+ properties:
18623
+ id:
18624
+ type: string
18625
+ provider_key:
18626
+ type: string
18627
+ client_id:
18628
+ type: string
18629
+ created_at:
18630
+ type: number
18631
+ updated_at:
18632
+ type: number
18633
+ required:
18634
+ - id
18635
+ - provider_key
18636
+ - client_id
18637
+ - created_at
18638
+ - updated_at
18639
+ additionalProperties: false
18640
+ required:
18641
+ - app
18642
+ additionalProperties: false
18643
+ requestBody:
18644
+ required: true
18645
+ content:
18646
+ application/json:
18647
+ schema:
18648
+ type: object
18649
+ properties:
18650
+ provider_key:
18651
+ type: string
18652
+ client_id:
18653
+ type: string
18654
+ client_secret:
18655
+ type: string
18656
+ client_secret_credential_path:
18657
+ type: string
18658
+ required:
18659
+ - provider_key
18660
+ - client_id
18661
+ additionalProperties: false
16225
18662
  /v1/oauth/connection-changed:
16226
18663
  post:
16227
18664
  operationId: oauth_connectionchanged_post
@@ -16252,6 +18689,16 @@ paths:
16252
18689
  responses:
16253
18690
  "200":
16254
18691
  description: Successful response
18692
+ content:
18693
+ application/json:
18694
+ schema:
18695
+ type: object
18696
+ properties:
18697
+ ok:
18698
+ type: boolean
18699
+ required:
18700
+ - ok
18701
+ additionalProperties: false
16255
18702
  parameters:
16256
18703
  - name: id
16257
18704
  in: path
@@ -16341,6 +18788,63 @@ paths:
16341
18788
  responses:
16342
18789
  "200":
16343
18790
  description: Successful response
18791
+ content:
18792
+ application/json:
18793
+ schema:
18794
+ type: object
18795
+ properties:
18796
+ providers:
18797
+ type: array
18798
+ items:
18799
+ type: object
18800
+ properties:
18801
+ provider_key:
18802
+ type: string
18803
+ display_name:
18804
+ anyOf:
18805
+ - type: string
18806
+ - type: "null"
18807
+ description:
18808
+ anyOf:
18809
+ - type: string
18810
+ - type: "null"
18811
+ dashboard_url:
18812
+ anyOf:
18813
+ - type: string
18814
+ - type: "null"
18815
+ client_id_placeholder:
18816
+ anyOf:
18817
+ - type: string
18818
+ - type: "null"
18819
+ requires_client_secret:
18820
+ type: boolean
18821
+ logo_url:
18822
+ anyOf:
18823
+ - type: string
18824
+ - type: "null"
18825
+ supports_managed_mode:
18826
+ type: boolean
18827
+ managed_service_is_paid:
18828
+ type: boolean
18829
+ feature_flag:
18830
+ anyOf:
18831
+ - type: string
18832
+ - type: "null"
18833
+ required:
18834
+ - provider_key
18835
+ - display_name
18836
+ - description
18837
+ - dashboard_url
18838
+ - client_id_placeholder
18839
+ - requires_client_secret
18840
+ - logo_url
18841
+ - supports_managed_mode
18842
+ - managed_service_is_paid
18843
+ - feature_flag
18844
+ additionalProperties: false
18845
+ required:
18846
+ - providers
18847
+ additionalProperties: false
16344
18848
  parameters:
16345
18849
  - name: supports_managed_mode
16346
18850
  in: query
@@ -16382,6 +18886,24 @@ paths:
16382
18886
  responses:
16383
18887
  "200":
16384
18888
  description: Successful response
18889
+ content:
18890
+ application/json:
18891
+ schema:
18892
+ type: object
18893
+ properties:
18894
+ provider:
18895
+ type: object
18896
+ propertyNames:
18897
+ type: string
18898
+ additionalProperties: {}
18899
+ oauth_callback_url:
18900
+ anyOf:
18901
+ - type: string
18902
+ - type: "null"
18903
+ required:
18904
+ - provider
18905
+ - oauth_callback_url
18906
+ additionalProperties: false
16385
18907
  parameters:
16386
18908
  - name: providerKey
16387
18909
  in: path
@@ -16554,6 +19076,41 @@ paths:
16554
19076
  responses:
16555
19077
  "200":
16556
19078
  description: Successful response
19079
+ content:
19080
+ application/json:
19081
+ schema:
19082
+ type: object
19083
+ properties:
19084
+ routes:
19085
+ type: array
19086
+ items:
19087
+ type: object
19088
+ properties:
19089
+ id:
19090
+ type: string
19091
+ assistant_id:
19092
+ type: string
19093
+ type:
19094
+ type: string
19095
+ callback_path:
19096
+ type: string
19097
+ callback_url:
19098
+ type: string
19099
+ source_identifier:
19100
+ anyOf:
19101
+ - type: string
19102
+ - type: "null"
19103
+ required:
19104
+ - id
19105
+ - assistant_id
19106
+ - type
19107
+ - callback_path
19108
+ - callback_url
19109
+ - source_identifier
19110
+ additionalProperties: false
19111
+ required:
19112
+ - routes
19113
+ additionalProperties: false
16557
19114
  /v1/platform/callback-routes/register:
16558
19115
  post:
16559
19116
  operationId: platform_callbackroutes_register_post
@@ -16564,6 +19121,37 @@ paths:
16564
19121
  responses:
16565
19122
  "200":
16566
19123
  description: Successful response
19124
+ content:
19125
+ application/json:
19126
+ schema:
19127
+ type: object
19128
+ properties:
19129
+ callbackUrl:
19130
+ type: string
19131
+ callbackPath:
19132
+ type: string
19133
+ type:
19134
+ type: string
19135
+ required:
19136
+ - callbackUrl
19137
+ - callbackPath
19138
+ - type
19139
+ additionalProperties: false
19140
+ requestBody:
19141
+ required: true
19142
+ content:
19143
+ application/json:
19144
+ schema:
19145
+ type: object
19146
+ properties:
19147
+ path:
19148
+ type: string
19149
+ type:
19150
+ type: string
19151
+ required:
19152
+ - path
19153
+ - type
19154
+ additionalProperties: false
16567
19155
  /v1/platform/connect:
16568
19156
  post:
16569
19157
  operationId: platform_connect_post
@@ -16574,6 +19162,18 @@ paths:
16574
19162
  responses:
16575
19163
  "200":
16576
19164
  description: Successful response
19165
+ content:
19166
+ application/json:
19167
+ schema:
19168
+ type: object
19169
+ properties:
19170
+ alreadyConnected:
19171
+ type: boolean
19172
+ baseUrl:
19173
+ type: string
19174
+ showPlatformLogin:
19175
+ type: boolean
19176
+ additionalProperties: false
16577
19177
  /v1/platform/disconnect:
16578
19178
  post:
16579
19179
  operationId: platform_disconnect_post
@@ -16584,6 +19184,22 @@ paths:
16584
19184
  responses:
16585
19185
  "200":
16586
19186
  description: Successful response
19187
+ content:
19188
+ application/json:
19189
+ schema:
19190
+ type: object
19191
+ properties:
19192
+ disconnected:
19193
+ type: boolean
19194
+ const: true
19195
+ previousBaseUrl:
19196
+ anyOf:
19197
+ - type: string
19198
+ - type: "null"
19199
+ required:
19200
+ - disconnected
19201
+ - previousBaseUrl
19202
+ additionalProperties: false
16587
19203
  /v1/platform/status:
16588
19204
  get:
16589
19205
  operationId: platform_status_get
@@ -16594,6 +19210,57 @@ paths:
16594
19210
  responses:
16595
19211
  "200":
16596
19212
  description: Successful response
19213
+ content:
19214
+ application/json:
19215
+ schema:
19216
+ type: object
19217
+ properties:
19218
+ isPlatform:
19219
+ type: boolean
19220
+ baseUrl:
19221
+ type: string
19222
+ assistantId:
19223
+ type: string
19224
+ hasAssistantApiKey:
19225
+ type: boolean
19226
+ hasWebhookSecret:
19227
+ type: boolean
19228
+ available:
19229
+ type: boolean
19230
+ organizationId:
19231
+ anyOf:
19232
+ - type: string
19233
+ - type: "null"
19234
+ userId:
19235
+ anyOf:
19236
+ - type: string
19237
+ - type: "null"
19238
+ velayTunnel:
19239
+ anyOf:
19240
+ - type: object
19241
+ properties:
19242
+ connected:
19243
+ type: boolean
19244
+ publicUrl:
19245
+ anyOf:
19246
+ - type: string
19247
+ - type: "null"
19248
+ required:
19249
+ - connected
19250
+ - publicUrl
19251
+ additionalProperties: false
19252
+ - type: "null"
19253
+ required:
19254
+ - isPlatform
19255
+ - baseUrl
19256
+ - assistantId
19257
+ - hasAssistantApiKey
19258
+ - hasWebhookSecret
19259
+ - available
19260
+ - organizationId
19261
+ - userId
19262
+ - velayTunnel
19263
+ additionalProperties: false
16597
19264
  /v1/playground/seed-conversation:
16598
19265
  post:
16599
19266
  operationId: playground_seedconversation_post
@@ -17492,6 +20159,16 @@ paths:
17492
20159
  anyOf:
17493
20160
  - type: number
17494
20161
  - type: "null"
20162
+ createdFromConversationId:
20163
+ anyOf:
20164
+ - type: string
20165
+ - type: "null"
20166
+ createdFromConversationExists:
20167
+ type: boolean
20168
+ createdFromConversationArchivedAt:
20169
+ anyOf:
20170
+ - type: number
20171
+ - type: "null"
17495
20172
  description:
17496
20173
  anyOf:
17497
20174
  - type: string
@@ -17541,6 +20218,9 @@ paths:
17541
20218
  - maxRetries
17542
20219
  - retryBackoffMs
17543
20220
  - timeoutMs
20221
+ - createdFromConversationId
20222
+ - createdFromConversationExists
20223
+ - createdFromConversationArchivedAt
17544
20224
  - description
17545
20225
  - mode
17546
20226
  - status
@@ -17628,6 +20308,16 @@ paths:
17628
20308
  anyOf:
17629
20309
  - type: number
17630
20310
  - type: "null"
20311
+ createdFromConversationId:
20312
+ anyOf:
20313
+ - type: string
20314
+ - type: "null"
20315
+ createdFromConversationExists:
20316
+ type: boolean
20317
+ createdFromConversationArchivedAt:
20318
+ anyOf:
20319
+ - type: number
20320
+ - type: "null"
17631
20321
  description:
17632
20322
  anyOf:
17633
20323
  - type: string
@@ -17677,6 +20367,9 @@ paths:
17677
20367
  - maxRetries
17678
20368
  - retryBackoffMs
17679
20369
  - timeoutMs
20370
+ - createdFromConversationId
20371
+ - createdFromConversationExists
20372
+ - createdFromConversationArchivedAt
17680
20373
  - description
17681
20374
  - mode
17682
20375
  - status
@@ -17790,6 +20483,16 @@ paths:
17790
20483
  anyOf:
17791
20484
  - type: number
17792
20485
  - type: "null"
20486
+ createdFromConversationId:
20487
+ anyOf:
20488
+ - type: string
20489
+ - type: "null"
20490
+ createdFromConversationExists:
20491
+ type: boolean
20492
+ createdFromConversationArchivedAt:
20493
+ anyOf:
20494
+ - type: number
20495
+ - type: "null"
17793
20496
  description:
17794
20497
  anyOf:
17795
20498
  - type: string
@@ -17839,6 +20542,9 @@ paths:
17839
20542
  - maxRetries
17840
20543
  - retryBackoffMs
17841
20544
  - timeoutMs
20545
+ - createdFromConversationId
20546
+ - createdFromConversationExists
20547
+ - createdFromConversationArchivedAt
17842
20548
  - description
17843
20549
  - mode
17844
20550
  - status
@@ -17925,6 +20631,16 @@ paths:
17925
20631
  anyOf:
17926
20632
  - type: number
17927
20633
  - type: "null"
20634
+ createdFromConversationId:
20635
+ anyOf:
20636
+ - type: string
20637
+ - type: "null"
20638
+ createdFromConversationExists:
20639
+ type: boolean
20640
+ createdFromConversationArchivedAt:
20641
+ anyOf:
20642
+ - type: number
20643
+ - type: "null"
17928
20644
  description:
17929
20645
  anyOf:
17930
20646
  - type: string
@@ -17974,6 +20690,9 @@ paths:
17974
20690
  - maxRetries
17975
20691
  - retryBackoffMs
17976
20692
  - timeoutMs
20693
+ - createdFromConversationId
20694
+ - createdFromConversationExists
20695
+ - createdFromConversationArchivedAt
17977
20696
  - description
17978
20697
  - mode
17979
20698
  - status
@@ -18103,6 +20822,16 @@ paths:
18103
20822
  anyOf:
18104
20823
  - type: number
18105
20824
  - type: "null"
20825
+ createdFromConversationId:
20826
+ anyOf:
20827
+ - type: string
20828
+ - type: "null"
20829
+ createdFromConversationExists:
20830
+ type: boolean
20831
+ createdFromConversationArchivedAt:
20832
+ anyOf:
20833
+ - type: number
20834
+ - type: "null"
18106
20835
  description:
18107
20836
  anyOf:
18108
20837
  - type: string
@@ -18152,6 +20881,9 @@ paths:
18152
20881
  - maxRetries
18153
20882
  - retryBackoffMs
18154
20883
  - timeoutMs
20884
+ - createdFromConversationId
20885
+ - createdFromConversationExists
20886
+ - createdFromConversationArchivedAt
18155
20887
  - description
18156
20888
  - mode
18157
20889
  - status
@@ -18239,6 +20971,16 @@ paths:
18239
20971
  anyOf:
18240
20972
  - type: number
18241
20973
  - type: "null"
20974
+ createdFromConversationId:
20975
+ anyOf:
20976
+ - type: string
20977
+ - type: "null"
20978
+ createdFromConversationExists:
20979
+ type: boolean
20980
+ createdFromConversationArchivedAt:
20981
+ anyOf:
20982
+ - type: number
20983
+ - type: "null"
18242
20984
  description:
18243
20985
  anyOf:
18244
20986
  - type: string
@@ -18288,6 +21030,9 @@ paths:
18288
21030
  - maxRetries
18289
21031
  - retryBackoffMs
18290
21032
  - timeoutMs
21033
+ - createdFromConversationId
21034
+ - createdFromConversationExists
21035
+ - createdFromConversationArchivedAt
18291
21036
  - description
18292
21037
  - mode
18293
21038
  - status
@@ -18354,6 +21099,14 @@ paths:
18354
21099
  anyOf:
18355
21100
  - type: string
18356
21101
  - type: "null"
21102
+ conversationExists:
21103
+ type: boolean
21104
+ conversationArchivedAt:
21105
+ anyOf:
21106
+ - type: number
21107
+ - type: "null"
21108
+ estimatedCostUsd:
21109
+ type: number
18357
21110
  createdAt:
18358
21111
  type: number
18359
21112
  required:
@@ -18366,6 +21119,9 @@ paths:
18366
21119
  - output
18367
21120
  - error
18368
21121
  - conversationId
21122
+ - conversationExists
21123
+ - conversationArchivedAt
21124
+ - estimatedCostUsd
18369
21125
  - createdAt
18370
21126
  additionalProperties: false
18371
21127
  description: Schedule run objects
@@ -18453,6 +21209,16 @@ paths:
18453
21209
  anyOf:
18454
21210
  - type: number
18455
21211
  - type: "null"
21212
+ createdFromConversationId:
21213
+ anyOf:
21214
+ - type: string
21215
+ - type: "null"
21216
+ createdFromConversationExists:
21217
+ type: boolean
21218
+ createdFromConversationArchivedAt:
21219
+ anyOf:
21220
+ - type: number
21221
+ - type: "null"
18456
21222
  description:
18457
21223
  anyOf:
18458
21224
  - type: string
@@ -18502,6 +21268,9 @@ paths:
18502
21268
  - maxRetries
18503
21269
  - retryBackoffMs
18504
21270
  - timeoutMs
21271
+ - createdFromConversationId
21272
+ - createdFromConversationExists
21273
+ - createdFromConversationArchivedAt
18505
21274
  - description
18506
21275
  - mode
18507
21276
  - status
@@ -18533,6 +21302,57 @@ paths:
18533
21302
  required:
18534
21303
  - enabled
18535
21304
  additionalProperties: false
21305
+ /v1/schedules/usage-summary:
21306
+ get:
21307
+ operationId: schedules_usagesummary_get
21308
+ summary: Get schedule usage summaries
21309
+ description: Return per-schedule run counts and usage totals for a time range.
21310
+ tags:
21311
+ - schedules
21312
+ responses:
21313
+ "200":
21314
+ description: Successful response
21315
+ content:
21316
+ application/json:
21317
+ schema:
21318
+ type: object
21319
+ properties:
21320
+ summaries:
21321
+ type: array
21322
+ items:
21323
+ type: object
21324
+ properties:
21325
+ scheduleId:
21326
+ type: string
21327
+ runCount:
21328
+ type: number
21329
+ totalEstimatedCostUsd:
21330
+ type: number
21331
+ eventCount:
21332
+ type: number
21333
+ required:
21334
+ - scheduleId
21335
+ - runCount
21336
+ - totalEstimatedCostUsd
21337
+ - eventCount
21338
+ additionalProperties: false
21339
+ description: Schedule usage summary rows
21340
+ required:
21341
+ - summaries
21342
+ additionalProperties: false
21343
+ parameters:
21344
+ - name: from
21345
+ in: query
21346
+ required: true
21347
+ schema:
21348
+ type: integer
21349
+ description: Start epoch millis (required)
21350
+ - name: to
21351
+ in: query
21352
+ required: true
21353
+ schema:
21354
+ type: integer
21355
+ description: End epoch millis (required)
18536
21356
  /v1/search:
18537
21357
  get:
18538
21358
  operationId: search_get
@@ -18821,11 +21641,37 @@ paths:
18821
21641
  properties:
18822
21642
  secrets:
18823
21643
  type: array
18824
- items: {}
21644
+ items:
21645
+ type: object
21646
+ properties:
21647
+ type:
21648
+ type: string
21649
+ enum:
21650
+ - api_key
21651
+ - credential
21652
+ name:
21653
+ type: string
21654
+ required:
21655
+ - type
21656
+ - name
21657
+ additionalProperties: false
18825
21658
  description: List of secret metadata entries, each with type and name
18826
21659
  accounts:
18827
21660
  type: array
18828
- items: {}
21661
+ items:
21662
+ type: object
21663
+ properties:
21664
+ type:
21665
+ type: string
21666
+ enum:
21667
+ - api_key
21668
+ - credential
21669
+ name:
21670
+ type: string
21671
+ required:
21672
+ - type
21673
+ - name
21674
+ additionalProperties: false
18829
21675
  description: Alias for secrets (same data)
18830
21676
  required:
18831
21677
  - secrets
@@ -19192,6 +22038,8 @@ paths:
19192
22038
  type: string
19193
22039
  description:
19194
22040
  type: string
22041
+ icon:
22042
+ type: string
19195
22043
  emoji:
19196
22044
  type: string
19197
22045
  kind:
@@ -19208,15 +22056,6 @@ paths:
19208
22056
  - available
19209
22057
  category:
19210
22058
  type: string
19211
- enum:
19212
- - communication
19213
- - productivity
19214
- - development
19215
- - media
19216
- - automation
19217
- - webSocial
19218
- - knowledge
19219
- - integration
19220
22059
  origin:
19221
22060
  type: string
19222
22061
  const: vellum
@@ -19237,6 +22076,8 @@ paths:
19237
22076
  type: string
19238
22077
  description:
19239
22078
  type: string
22079
+ icon:
22080
+ type: string
19240
22081
  emoji:
19241
22082
  type: string
19242
22083
  kind:
@@ -19253,15 +22094,6 @@ paths:
19253
22094
  - available
19254
22095
  category:
19255
22096
  type: string
19256
- enum:
19257
- - communication
19258
- - productivity
19259
- - development
19260
- - media
19261
- - automation
19262
- - webSocial
19263
- - knowledge
19264
- - integration
19265
22097
  origin:
19266
22098
  type: string
19267
22099
  const: clawhub
@@ -19302,6 +22134,8 @@ paths:
19302
22134
  type: string
19303
22135
  description:
19304
22136
  type: string
22137
+ icon:
22138
+ type: string
19305
22139
  emoji:
19306
22140
  type: string
19307
22141
  kind:
@@ -19318,15 +22152,6 @@ paths:
19318
22152
  - available
19319
22153
  category:
19320
22154
  type: string
19321
- enum:
19322
- - communication
19323
- - productivity
19324
- - development
19325
- - media
19326
- - automation
19327
- - webSocial
19328
- - knowledge
19329
- - integration
19330
22155
  origin:
19331
22156
  type: string
19332
22157
  const: skillssh
@@ -19382,6 +22207,8 @@ paths:
19382
22207
  type: string
19383
22208
  description:
19384
22209
  type: string
22210
+ icon:
22211
+ type: string
19385
22212
  emoji:
19386
22213
  type: string
19387
22214
  kind:
@@ -19398,15 +22225,6 @@ paths:
19398
22225
  - available
19399
22226
  category:
19400
22227
  type: string
19401
- enum:
19402
- - communication
19403
- - productivity
19404
- - development
19405
- - media
19406
- - automation
19407
- - webSocial
19408
- - knowledge
19409
- - integration
19410
22228
  origin:
19411
22229
  type: string
19412
22230
  const: custom
@@ -19546,6 +22364,8 @@ paths:
19546
22364
  type: string
19547
22365
  description:
19548
22366
  type: string
22367
+ icon:
22368
+ type: string
19549
22369
  emoji:
19550
22370
  type: string
19551
22371
  kind:
@@ -19562,15 +22382,6 @@ paths:
19562
22382
  - available
19563
22383
  category:
19564
22384
  type: string
19565
- enum:
19566
- - communication
19567
- - productivity
19568
- - development
19569
- - media
19570
- - automation
19571
- - webSocial
19572
- - knowledge
19573
- - integration
19574
22385
  origin:
19575
22386
  type: string
19576
22387
  const: vellum
@@ -19591,6 +22402,8 @@ paths:
19591
22402
  type: string
19592
22403
  description:
19593
22404
  type: string
22405
+ icon:
22406
+ type: string
19594
22407
  emoji:
19595
22408
  type: string
19596
22409
  kind:
@@ -19607,15 +22420,6 @@ paths:
19607
22420
  - available
19608
22421
  category:
19609
22422
  type: string
19610
- enum:
19611
- - communication
19612
- - productivity
19613
- - development
19614
- - media
19615
- - automation
19616
- - webSocial
19617
- - knowledge
19618
- - integration
19619
22423
  origin:
19620
22424
  type: string
19621
22425
  const: clawhub
@@ -19710,6 +22514,8 @@ paths:
19710
22514
  type: string
19711
22515
  description:
19712
22516
  type: string
22517
+ icon:
22518
+ type: string
19713
22519
  emoji:
19714
22520
  type: string
19715
22521
  kind:
@@ -19726,15 +22532,6 @@ paths:
19726
22532
  - available
19727
22533
  category:
19728
22534
  type: string
19729
- enum:
19730
- - communication
19731
- - productivity
19732
- - development
19733
- - media
19734
- - automation
19735
- - webSocial
19736
- - knowledge
19737
- - integration
19738
22535
  origin:
19739
22536
  type: string
19740
22537
  const: skillssh
@@ -19790,6 +22587,8 @@ paths:
19790
22587
  type: string
19791
22588
  description:
19792
22589
  type: string
22590
+ icon:
22591
+ type: string
19793
22592
  emoji:
19794
22593
  type: string
19795
22594
  kind:
@@ -19806,15 +22605,6 @@ paths:
19806
22605
  - available
19807
22606
  category:
19808
22607
  type: string
19809
- enum:
19810
- - communication
19811
- - productivity
19812
- - development
19813
- - media
19814
- - automation
19815
- - webSocial
19816
- - knowledge
19817
- - integration
19818
22608
  origin:
19819
22609
  type: string
19820
22610
  const: custom
@@ -19964,6 +22754,8 @@ paths:
19964
22754
  type: string
19965
22755
  description:
19966
22756
  type: string
22757
+ icon:
22758
+ type: string
19967
22759
  emoji:
19968
22760
  type: string
19969
22761
  kind:
@@ -19980,15 +22772,6 @@ paths:
19980
22772
  - available
19981
22773
  category:
19982
22774
  type: string
19983
- enum:
19984
- - communication
19985
- - productivity
19986
- - development
19987
- - media
19988
- - automation
19989
- - webSocial
19990
- - knowledge
19991
- - integration
19992
22775
  origin:
19993
22776
  type: string
19994
22777
  const: vellum
@@ -20009,6 +22792,8 @@ paths:
20009
22792
  type: string
20010
22793
  description:
20011
22794
  type: string
22795
+ icon:
22796
+ type: string
20012
22797
  emoji:
20013
22798
  type: string
20014
22799
  kind:
@@ -20025,15 +22810,6 @@ paths:
20025
22810
  - available
20026
22811
  category:
20027
22812
  type: string
20028
- enum:
20029
- - communication
20030
- - productivity
20031
- - development
20032
- - media
20033
- - automation
20034
- - webSocial
20035
- - knowledge
20036
- - integration
20037
22813
  origin:
20038
22814
  type: string
20039
22815
  const: clawhub
@@ -20074,6 +22850,8 @@ paths:
20074
22850
  type: string
20075
22851
  description:
20076
22852
  type: string
22853
+ icon:
22854
+ type: string
20077
22855
  emoji:
20078
22856
  type: string
20079
22857
  kind:
@@ -20090,15 +22868,6 @@ paths:
20090
22868
  - available
20091
22869
  category:
20092
22870
  type: string
20093
- enum:
20094
- - communication
20095
- - productivity
20096
- - development
20097
- - media
20098
- - automation
20099
- - webSocial
20100
- - knowledge
20101
- - integration
20102
22871
  origin:
20103
22872
  type: string
20104
22873
  const: skillssh
@@ -20154,6 +22923,8 @@ paths:
20154
22923
  type: string
20155
22924
  description:
20156
22925
  type: string
22926
+ icon:
22927
+ type: string
20157
22928
  emoji:
20158
22929
  type: string
20159
22930
  kind:
@@ -20170,15 +22941,6 @@ paths:
20170
22941
  - available
20171
22942
  category:
20172
22943
  type: string
20173
- enum:
20174
- - communication
20175
- - productivity
20176
- - development
20177
- - media
20178
- - automation
20179
- - webSocial
20180
- - knowledge
20181
- - integration
20182
22944
  origin:
20183
22945
  type: string
20184
22946
  const: custom
@@ -20343,6 +23105,43 @@ paths:
20343
23105
  required: true
20344
23106
  schema:
20345
23107
  type: string
23108
+ /v1/skills/categories:
23109
+ get:
23110
+ operationId: skills_categories_get
23111
+ summary: List skill categories
23112
+ description: Return all skill category definitions with labels, icons, and descriptions.
23113
+ tags:
23114
+ - skills
23115
+ responses:
23116
+ "200":
23117
+ description: Successful response
23118
+ content:
23119
+ application/json:
23120
+ schema:
23121
+ type: object
23122
+ properties:
23123
+ categories:
23124
+ type: array
23125
+ items:
23126
+ type: object
23127
+ properties:
23128
+ slug:
23129
+ type: string
23130
+ label:
23131
+ type: string
23132
+ description:
23133
+ type: string
23134
+ icon:
23135
+ type: string
23136
+ required:
23137
+ - slug
23138
+ - label
23139
+ - description
23140
+ - icon
23141
+ additionalProperties: false
23142
+ required:
23143
+ - categories
23144
+ additionalProperties: false
20346
23145
  /v1/skills/check-updates:
20347
23146
  post:
20348
23147
  operationId: skills_checkupdates_post
@@ -20419,15 +23218,16 @@ paths:
20419
23218
  type: object
20420
23219
  properties:
20421
23220
  slug:
23221
+ description: Skill slug. One of slug, url, or spec is required.
20422
23222
  type: string
20423
- description: Skill slug
20424
23223
  url:
23224
+ description: Skill URL. One of slug, url, or spec is required.
20425
23225
  type: string
20426
- description: Skill URL
20427
23226
  spec:
23227
+ description: Skill spec. One of slug, url, or spec is required.
20428
23228
  type: string
20429
- description: Skill spec
20430
23229
  version:
23230
+ description: Specific version to install
20431
23231
  type: string
20432
23232
  origin:
20433
23233
  description: Which registry to install from. When omitted, the install flow auto-detects based on slug format.
@@ -20443,11 +23243,6 @@ paths:
20443
23243
  When true, restrict to bundled and Vellum catalog skills only — do not fall through to community
20444
23244
  registries.
20445
23245
  type: boolean
20446
- required:
20447
- - slug
20448
- - url
20449
- - spec
20450
- - version
20451
23246
  additionalProperties: false
20452
23247
  /v1/skills/search:
20453
23248
  get:
@@ -20476,6 +23271,8 @@ paths:
20476
23271
  type: string
20477
23272
  description:
20478
23273
  type: string
23274
+ icon:
23275
+ type: string
20479
23276
  emoji:
20480
23277
  type: string
20481
23278
  kind:
@@ -20492,15 +23289,6 @@ paths:
20492
23289
  - available
20493
23290
  category:
20494
23291
  type: string
20495
- enum:
20496
- - communication
20497
- - productivity
20498
- - development
20499
- - media
20500
- - automation
20501
- - webSocial
20502
- - knowledge
20503
- - integration
20504
23292
  origin:
20505
23293
  type: string
20506
23294
  const: vellum
@@ -20521,6 +23309,8 @@ paths:
20521
23309
  type: string
20522
23310
  description:
20523
23311
  type: string
23312
+ icon:
23313
+ type: string
20524
23314
  emoji:
20525
23315
  type: string
20526
23316
  kind:
@@ -20537,15 +23327,6 @@ paths:
20537
23327
  - available
20538
23328
  category:
20539
23329
  type: string
20540
- enum:
20541
- - communication
20542
- - productivity
20543
- - development
20544
- - media
20545
- - automation
20546
- - webSocial
20547
- - knowledge
20548
- - integration
20549
23330
  origin:
20550
23331
  type: string
20551
23332
  const: clawhub
@@ -20586,6 +23367,8 @@ paths:
20586
23367
  type: string
20587
23368
  description:
20588
23369
  type: string
23370
+ icon:
23371
+ type: string
20589
23372
  emoji:
20590
23373
  type: string
20591
23374
  kind:
@@ -20602,15 +23385,6 @@ paths:
20602
23385
  - available
20603
23386
  category:
20604
23387
  type: string
20605
- enum:
20606
- - communication
20607
- - productivity
20608
- - development
20609
- - media
20610
- - automation
20611
- - webSocial
20612
- - knowledge
20613
- - integration
20614
23388
  origin:
20615
23389
  type: string
20616
23390
  const: skillssh
@@ -20666,6 +23440,8 @@ paths:
20666
23440
  type: string
20667
23441
  description:
20668
23442
  type: string
23443
+ icon:
23444
+ type: string
20669
23445
  emoji:
20670
23446
  type: string
20671
23447
  kind:
@@ -20682,15 +23458,6 @@ paths:
20682
23458
  - available
20683
23459
  category:
20684
23460
  type: string
20685
- enum:
20686
- - communication
20687
- - productivity
20688
- - development
20689
- - media
20690
- - automation
20691
- - webSocial
20692
- - knowledge
20693
- - integration
20694
23461
  origin:
20695
23462
  type: string
20696
23463
  const: custom
@@ -20730,6 +23497,37 @@ paths:
20730
23497
  responses:
20731
23498
  "200":
20732
23499
  description: Successful response
23500
+ content:
23501
+ application/json:
23502
+ schema:
23503
+ type: object
23504
+ properties:
23505
+ channels:
23506
+ type: array
23507
+ items:
23508
+ type: object
23509
+ properties:
23510
+ id:
23511
+ type: string
23512
+ name:
23513
+ type: string
23514
+ type:
23515
+ type: string
23516
+ enum:
23517
+ - channel
23518
+ - group
23519
+ - dm
23520
+ isPrivate:
23521
+ type: boolean
23522
+ required:
23523
+ - id
23524
+ - name
23525
+ - type
23526
+ - isPrivate
23527
+ additionalProperties: false
23528
+ required:
23529
+ - channels
23530
+ additionalProperties: false
20733
23531
  /v1/slack/share:
20734
23532
  post:
20735
23533
  operationId: slack_share_post
@@ -20740,6 +23538,42 @@ paths:
20740
23538
  responses:
20741
23539
  "200":
20742
23540
  description: Successful response
23541
+ content:
23542
+ application/json:
23543
+ schema:
23544
+ type: object
23545
+ properties:
23546
+ ok:
23547
+ type: boolean
23548
+ ts:
23549
+ type: string
23550
+ channel:
23551
+ type: string
23552
+ required:
23553
+ - ok
23554
+ - ts
23555
+ - channel
23556
+ additionalProperties: false
23557
+ requestBody:
23558
+ required: true
23559
+ content:
23560
+ application/json:
23561
+ schema:
23562
+ type: object
23563
+ properties:
23564
+ appId:
23565
+ type: string
23566
+ description: App to share
23567
+ channelId:
23568
+ type: string
23569
+ description: Target Slack channel ID
23570
+ message:
23571
+ description: Optional accompanying message
23572
+ type: string
23573
+ required:
23574
+ - appId
23575
+ - channelId
23576
+ additionalProperties: false
20743
23577
  /v1/stt/providers:
20744
23578
  get:
20745
23579
  operationId: stt_providers_get
@@ -21901,6 +24735,58 @@ paths:
21901
24735
  responses:
21902
24736
  "200":
21903
24737
  description: Successful response
24738
+ content:
24739
+ application/json:
24740
+ schema:
24741
+ type: object
24742
+ properties:
24743
+ rules:
24744
+ type: array
24745
+ items:
24746
+ type: object
24747
+ properties:
24748
+ id:
24749
+ type: string
24750
+ tool:
24751
+ type: string
24752
+ pattern:
24753
+ type: string
24754
+ risk:
24755
+ type: string
24756
+ enum:
24757
+ - low
24758
+ - medium
24759
+ - high
24760
+ description:
24761
+ type: string
24762
+ origin:
24763
+ type: string
24764
+ enum:
24765
+ - default
24766
+ - user_defined
24767
+ userModified:
24768
+ type: boolean
24769
+ deleted:
24770
+ type: boolean
24771
+ createdAt:
24772
+ type: string
24773
+ updatedAt:
24774
+ type: string
24775
+ required:
24776
+ - id
24777
+ - tool
24778
+ - pattern
24779
+ - risk
24780
+ - description
24781
+ - origin
24782
+ - userModified
24783
+ - deleted
24784
+ - createdAt
24785
+ - updatedAt
24786
+ additionalProperties: false
24787
+ required:
24788
+ - rules
24789
+ additionalProperties: false
21904
24790
  parameters:
21905
24791
  - name: tool
21906
24792
  in: query
@@ -22057,6 +24943,61 @@ paths:
22057
24943
  - currentThreshold
22058
24944
  - intent
22059
24945
  additionalProperties: false
24946
+ /v1/tts/providers:
24947
+ get:
24948
+ operationId: tts_providers_get
24949
+ summary: List TTS providers
24950
+ description: Return the catalog of available TTS providers with client-facing metadata.
24951
+ tags:
24952
+ - tts
24953
+ responses:
24954
+ "200":
24955
+ description: Successful response
24956
+ content:
24957
+ application/json:
24958
+ schema:
24959
+ type: object
24960
+ properties:
24961
+ providers:
24962
+ type: array
24963
+ items:
24964
+ type: object
24965
+ properties:
24966
+ id:
24967
+ type: string
24968
+ displayName:
24969
+ type: string
24970
+ subtitle:
24971
+ type: string
24972
+ supportsVoiceSelection:
24973
+ type: boolean
24974
+ apiKeyPlaceholder:
24975
+ type: string
24976
+ credentialsGuide:
24977
+ type: object
24978
+ properties:
24979
+ description:
24980
+ type: string
24981
+ url:
24982
+ type: string
24983
+ linkLabel:
24984
+ type: string
24985
+ required:
24986
+ - description
24987
+ - url
24988
+ - linkLabel
24989
+ additionalProperties: false
24990
+ required:
24991
+ - id
24992
+ - displayName
24993
+ - subtitle
24994
+ - supportsVoiceSelection
24995
+ - apiKeyPlaceholder
24996
+ - credentialsGuide
24997
+ additionalProperties: false
24998
+ required:
24999
+ - providers
25000
+ additionalProperties: false
22060
25001
  /v1/tts/synthesize:
22061
25002
  post:
22062
25003
  operationId: tts_synthesize_post
@@ -22271,7 +25212,13 @@ paths:
22271
25212
  required: false
22272
25213
  schema:
22273
25214
  type: string
22274
- description: "Group by: actor, provider, model, conversation, call_site, inference_profile (required)"
25215
+ description: "Group by: actor, provider, model, conversation, call_site, inference_profile, schedule (required)"
25216
+ - name: scheduleId
25217
+ in: query
25218
+ required: false
25219
+ schema:
25220
+ type: string
25221
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22275
25222
  /v1/usage/daily:
22276
25223
  get:
22277
25224
  operationId: usage_daily_get
@@ -22348,6 +25295,12 @@ paths:
22348
25295
  description:
22349
25296
  IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
22350
25297
  this timezone. Defaults to "UTC" for backwards compatibility.
25298
+ - name: scheduleId
25299
+ in: query
25300
+ required: false
25301
+ schema:
25302
+ type: string
25303
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22351
25304
  /v1/usage/series:
22352
25305
  get:
22353
25306
  operationId: usage_series_get
@@ -22451,7 +25404,7 @@ paths:
22451
25404
  required: false
22452
25405
  schema:
22453
25406
  type: string
22454
- description: "Group by: actor, provider, model, call_site, inference_profile (required)"
25407
+ description: "Group by: actor, provider, model, call_site, inference_profile, schedule (required)"
22455
25408
  - name: tz
22456
25409
  in: query
22457
25410
  required: false
@@ -22460,6 +25413,12 @@ paths:
22460
25413
  description:
22461
25414
  IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
22462
25415
  this timezone. Defaults to "UTC".
25416
+ - name: scheduleId
25417
+ in: query
25418
+ required: false
25419
+ schema:
25420
+ type: string
25421
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22463
25422
  /v1/usage/totals:
22464
25423
  get:
22465
25424
  operationId: usage_totals_get
@@ -22514,6 +25473,12 @@ paths:
22514
25473
  schema:
22515
25474
  type: integer
22516
25475
  description: End epoch millis (required)
25476
+ - name: scheduleId
25477
+ in: query
25478
+ required: false
25479
+ schema:
25480
+ type: string
25481
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22517
25482
  /v1/user-routes/inspect:
22518
25483
  post:
22519
25484
  operationId: userroutes_inspect_post
@@ -22742,6 +25707,41 @@ paths:
22742
25707
  responses:
22743
25708
  "200":
22744
25709
  description: Successful response
25710
+ content:
25711
+ application/json:
25712
+ schema:
25713
+ type: object
25714
+ properties:
25715
+ routes:
25716
+ type: array
25717
+ items:
25718
+ type: object
25719
+ properties:
25720
+ id:
25721
+ type: string
25722
+ assistant_id:
25723
+ type: string
25724
+ type:
25725
+ type: string
25726
+ callback_path:
25727
+ type: string
25728
+ callback_url:
25729
+ type: string
25730
+ source_identifier:
25731
+ anyOf:
25732
+ - type: string
25733
+ - type: "null"
25734
+ required:
25735
+ - id
25736
+ - assistant_id
25737
+ - type
25738
+ - callback_path
25739
+ - callback_url
25740
+ - source_identifier
25741
+ additionalProperties: false
25742
+ required:
25743
+ - routes
25744
+ additionalProperties: false
22745
25745
  /v1/webhooks/register:
22746
25746
  post:
22747
25747
  operationId: webhooks_register_post
@@ -22754,6 +25754,44 @@ paths:
22754
25754
  responses:
22755
25755
  "200":
22756
25756
  description: Successful response
25757
+ content:
25758
+ application/json:
25759
+ schema:
25760
+ type: object
25761
+ properties:
25762
+ callbackUrl:
25763
+ type: string
25764
+ type:
25765
+ type: string
25766
+ path:
25767
+ type: string
25768
+ mode:
25769
+ type: string
25770
+ enum:
25771
+ - platform
25772
+ - self-hosted
25773
+ required:
25774
+ - callbackUrl
25775
+ - type
25776
+ - path
25777
+ - mode
25778
+ additionalProperties: false
25779
+ requestBody:
25780
+ required: true
25781
+ content:
25782
+ application/json:
25783
+ schema:
25784
+ type: object
25785
+ properties:
25786
+ type:
25787
+ type: string
25788
+ path:
25789
+ type: string
25790
+ source:
25791
+ type: string
25792
+ required:
25793
+ - type
25794
+ additionalProperties: false
22757
25795
  /v1/work-items:
22758
25796
  get:
22759
25797
  operationId: workitems_get
@@ -23142,6 +26180,11 @@ paths:
23142
26180
  responses:
23143
26181
  "200":
23144
26182
  description: Successful response
26183
+ content:
26184
+ application/octet-stream:
26185
+ schema:
26186
+ type: string
26187
+ format: binary
23145
26188
  "416":
23146
26189
  description: Range Not Satisfiable
23147
26190
  parameters: