@vellumai/assistant 0.8.7 → 0.8.8

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 (387) hide show
  1. package/Dockerfile +20 -4
  2. package/docker-entrypoint.sh +4 -2
  3. package/docker-init-apt-root.sh +3 -1
  4. package/docker-kata-apt-env.sh +3 -1
  5. package/docker-kata-runtime-family.sh +12 -0
  6. package/docs/architecture/memory.md +1 -1
  7. package/docs/plugins.md +75 -79
  8. package/examples/plugins/echo/README.md +6 -12
  9. package/examples/plugins/echo/register.ts +0 -41
  10. package/node_modules/@vellumai/skill-host-contracts/src/server-message.ts +3 -3
  11. package/openapi.yaml +3381 -348
  12. package/package.json +1 -1
  13. package/scripts/generate-openapi.ts +68 -41
  14. package/src/__tests__/agent-loop-exit-reason.test.ts +34 -39
  15. package/src/__tests__/agent-loop-provider-error-recording.test.ts +1 -1
  16. package/src/__tests__/agent-loop.test.ts +37 -87
  17. package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +2 -0
  18. package/src/__tests__/annotate-activity-metadata.test.ts +262 -0
  19. package/src/__tests__/annotate-risk-options.test.ts +2 -3
  20. package/src/__tests__/anthropic-provider.test.ts +95 -2
  21. package/src/__tests__/assistant-event-hub.test.ts +25 -0
  22. package/src/__tests__/assistant-events-sse-shed.test.ts +8 -0
  23. package/src/__tests__/{conversation-stream-state.test.ts → assistant-stream-state.test.ts} +252 -91
  24. package/src/__tests__/auth-fallback-events-store.test.ts +116 -0
  25. package/src/__tests__/background-workers-disk-pressure.test.ts +6 -0
  26. package/src/__tests__/btw-routes.test.ts +62 -3
  27. package/src/__tests__/build-persisted-content.test.ts +184 -0
  28. package/src/__tests__/catalog-files.test.ts +1 -1
  29. package/src/__tests__/clawhub-files.test.ts +1 -1
  30. package/src/__tests__/compaction-pipeline.test.ts +1 -1
  31. package/src/__tests__/compaction.benchmark.test.ts +0 -30
  32. package/src/__tests__/config-watcher.test.ts +1 -1
  33. package/src/__tests__/conversation-abort-tool-results.test.ts +57 -19
  34. package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +6 -2
  35. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +10 -4
  36. package/src/__tests__/conversation-agent-loop-overflow.test.ts +313 -1136
  37. package/src/__tests__/conversation-agent-loop.test.ts +596 -1616
  38. package/src/__tests__/conversation-analysis-routes.test.ts +6 -0
  39. package/src/__tests__/conversation-history-web-search.test.ts +11 -1
  40. package/src/__tests__/conversation-pairing.test.ts +4 -31
  41. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +6 -0
  42. package/src/__tests__/conversation-provider-retry-repair.test.ts +26 -5
  43. package/src/__tests__/conversation-queue.test.ts +2 -0
  44. package/src/__tests__/conversation-routes-disk-view.test.ts +3 -0
  45. package/src/__tests__/conversation-routes-slash-commands.test.ts +6 -5
  46. package/src/__tests__/conversation-runtime-assembly.test.ts +170 -229
  47. package/src/__tests__/conversation-runtime-workspace.test.ts +3 -24
  48. package/src/__tests__/conversation-slash-commands.test.ts +8 -42
  49. package/src/__tests__/conversation-slash-queue.test.ts +6 -1
  50. package/src/__tests__/conversation-surfaces-action-delivery.test.ts +84 -0
  51. package/src/__tests__/conversation-sync-tags.test.ts +27 -15
  52. package/src/__tests__/conversation-title-service.test.ts +135 -2
  53. package/src/__tests__/conversation-workspace-injection.test.ts +6 -1
  54. package/src/__tests__/cross-provider-web-search.test.ts +214 -1
  55. package/src/__tests__/db-schedule-syntax-migration.test.ts +5 -0
  56. package/src/__tests__/dm-persistence.test.ts +5 -1
  57. package/src/__tests__/empty-response-hook.test.ts +304 -0
  58. package/src/__tests__/feature-flag-test-helpers.ts +2 -2
  59. package/src/__tests__/gemini-image-service.test.ts +13 -0
  60. package/src/__tests__/helpers/mock-provider.ts +110 -0
  61. package/src/__tests__/helpers/native-web-search-harness.ts +129 -0
  62. package/src/__tests__/history-repair-hook.test.ts +1 -0
  63. package/src/__tests__/identity-intro-cache.test.ts +12 -100
  64. package/src/__tests__/identity-routes.test.ts +248 -7
  65. package/src/__tests__/inbound-slack-persistence.test.ts +5 -1
  66. package/src/__tests__/injector-background-turn.test.ts +2 -8
  67. package/src/__tests__/injector-chain.test.ts +106 -270
  68. package/src/__tests__/injector-disk-pressure.test.ts +3 -12
  69. package/src/__tests__/injector-document-comments.test.ts +2 -2
  70. package/src/__tests__/injector-pkb-v2-silenced.test.ts +30 -22
  71. package/src/__tests__/injector-v3-suppression.test.ts +31 -37
  72. package/src/__tests__/internal-telemetry-routes.test.ts +109 -0
  73. package/src/__tests__/list-messages-page-latest.test.ts +60 -0
  74. package/src/__tests__/list-messages-tool-merge.test.ts +20 -0
  75. package/src/__tests__/llm-usage-store.test.ts +223 -1
  76. package/src/__tests__/memory-retrieval-hook.test.ts +297 -0
  77. package/src/__tests__/memory-v2-static-injector.test.ts +103 -35
  78. package/src/__tests__/native-web-search.test.ts +191 -0
  79. package/src/__tests__/onboarding-template-contract.test.ts +2 -0
  80. package/src/__tests__/openai-image-service.test.ts +17 -0
  81. package/src/__tests__/openai-provider.test.ts +31 -1
  82. package/src/__tests__/persist-unsendable-image.test.ts +215 -0
  83. package/src/__tests__/persistence-secret-redaction.test.ts +1 -0
  84. package/src/__tests__/pipeline-runner.test.ts +29 -39
  85. package/src/__tests__/pkb-autoinject.test.ts +2 -5
  86. package/src/__tests__/plugin-bootstrap.test.ts +13 -28
  87. package/src/__tests__/plugin-registry.test.ts +0 -27
  88. package/src/__tests__/plugin-types.test.ts +2 -125
  89. package/src/__tests__/process-message-display-content.test.ts +6 -2
  90. package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +5 -1
  91. package/src/__tests__/resolve-trust-class.test.ts +4 -4
  92. package/src/__tests__/runtime-events-sse-reconnect.test.ts +60 -23
  93. package/src/__tests__/schedule-routes.test.ts +603 -2
  94. package/src/__tests__/schedule-store.test.ts +41 -0
  95. package/src/__tests__/schedule-tools.test.ts +35 -0
  96. package/src/__tests__/server-history-render.test.ts +314 -1
  97. package/src/__tests__/skillssh-files.test.ts +1 -1
  98. package/src/__tests__/system-prompt.test.ts +20 -0
  99. package/src/__tests__/task-scheduler.test.ts +162 -1
  100. package/src/__tests__/terminal-tools.test.ts +6 -1
  101. package/src/__tests__/title-generate-hook.test.ts +319 -0
  102. package/src/__tests__/tool-error-hook.test.ts +278 -0
  103. package/src/__tests__/tool-preview-lifecycle.test.ts +468 -5
  104. package/src/__tests__/tool-result-metadata-plumbing.test.ts +1 -0
  105. package/src/__tests__/tool-result-truncate-hook.test.ts +127 -0
  106. package/src/__tests__/tool-result-truncation.test.ts +0 -2
  107. package/src/__tests__/ui-choice-copy-surfaces.test.ts +254 -0
  108. package/src/__tests__/ui-work-result-surface.test.ts +159 -0
  109. package/src/__tests__/usage-routes.test.ts +285 -1
  110. package/src/__tests__/user-plugin-loader.test.ts +2 -2
  111. package/src/__tests__/voice-session-bridge.test.ts +6 -3
  112. package/src/__tests__/web-search-backend-failure.test.ts +166 -0
  113. package/src/agent/loop.ts +346 -442
  114. package/src/api/events/assistant-thinking-delta.ts +33 -0
  115. package/src/api/events/tool-output-chunk.ts +45 -0
  116. package/src/api/events/tool-use-preview-start.ts +32 -0
  117. package/src/api/events/trace-event.ts +69 -0
  118. package/src/api/index.ts +48 -13
  119. package/src/api/responses/conversation-message.ts +368 -0
  120. package/src/avatar/__tests__/avatar-store.test.ts +34 -29
  121. package/src/cli/commands/__tests__/notifications.test.ts +58 -14
  122. package/src/cli/commands/notifications.ts +112 -60
  123. package/src/config/assistant-feature-flags.ts +22 -11
  124. package/src/config/bundled-skills/app-builder/SKILL.md +3 -20
  125. package/src/config/bundled-skills/app-builder/references/examples/README.md +17 -0
  126. package/src/config/bundled-skills/app-builder/references/examples/expense-tracker.md +515 -0
  127. package/src/config/bundled-skills/app-builder/references/examples/focus-timer.md +342 -0
  128. package/src/config/bundled-skills/app-builder/references/examples/habit-tracker.md +490 -0
  129. package/src/config/bundled-skills/document-editor/SKILL.md +1 -1
  130. package/src/config/bundled-skills/messaging/SKILL.md +0 -7
  131. package/src/config/feature-flag-cache.ts +3 -3
  132. package/src/config/feature-flag-registry.json +35 -3
  133. package/src/config/schemas/__tests__/memory-v2.test.ts +1 -0
  134. package/src/config/schemas/__tests__/memory-v3.test.ts +25 -0
  135. package/src/config/schemas/llm.ts +1 -0
  136. package/src/config/schemas/memory-v2.ts +8 -0
  137. package/src/config/schemas/memory-v3.ts +8 -0
  138. package/src/config/schemas/platform.ts +8 -0
  139. package/src/config/seed-inference-profiles.ts +2 -2
  140. package/src/config/skills.ts +13 -0
  141. package/src/context/compactor.ts +1 -1
  142. package/src/context/strip-injections.ts +122 -0
  143. package/src/context/token-estimator.ts +23 -0
  144. package/src/context/tool-result-truncation.ts +0 -23
  145. package/src/context/window-manager.ts +3 -6
  146. package/src/credential-execution/executable-discovery.ts +16 -0
  147. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +6 -0
  148. package/src/daemon/__tests__/inference-profile-notification.test.ts +153 -0
  149. package/src/daemon/__tests__/native-web-search-metadata.test.ts +10 -8
  150. package/src/daemon/assistant-attachments.ts +1 -1
  151. package/src/daemon/config-watcher.ts +2 -2
  152. package/src/daemon/context-overflow-reducer.ts +0 -1
  153. package/src/daemon/conversation-agent-loop-handlers.ts +605 -153
  154. package/src/daemon/conversation-agent-loop.ts +281 -760
  155. package/src/daemon/conversation-history.ts +5 -4
  156. package/src/daemon/conversation-lifecycle.ts +3 -4
  157. package/src/daemon/conversation-messaging.ts +7 -6
  158. package/src/daemon/conversation-process.ts +11 -16
  159. package/src/daemon/conversation-runtime-assembly.ts +130 -347
  160. package/src/daemon/conversation-slash.ts +6 -25
  161. package/src/daemon/conversation-surfaces.ts +222 -4
  162. package/src/daemon/conversation-tool-setup.ts +2 -29
  163. package/src/daemon/conversation.ts +32 -14
  164. package/src/daemon/external-plugins-bootstrap.ts +9 -10
  165. package/src/daemon/handlers/config-a2a.ts +51 -36
  166. package/src/daemon/handlers/config-slack-channel.ts +20 -14
  167. package/src/daemon/handlers/config-telegram.ts +16 -2
  168. package/src/daemon/handlers/shared.ts +156 -84
  169. package/src/daemon/handlers/skills.ts +39 -10
  170. package/src/daemon/lifecycle.ts +4 -0
  171. package/src/daemon/message-types/apps.ts +1 -29
  172. package/src/daemon/message-types/messages.ts +9 -57
  173. package/src/daemon/message-types/skills.ts +2 -0
  174. package/src/daemon/message-types/surfaces.ts +136 -3
  175. package/src/daemon/now-scratchpad.ts +21 -0
  176. package/src/daemon/orphan-reaper.test.ts +210 -0
  177. package/src/daemon/orphan-reaper.ts +240 -0
  178. package/src/daemon/persist-unsendable-image.ts +117 -0
  179. package/src/daemon/process-message.ts +1 -3
  180. package/src/daemon/trace-emitter.ts +6 -4
  181. package/src/daemon/trust-context.ts +19 -0
  182. package/src/daemon/wake-target-adapter.ts +3 -1
  183. package/src/home/home-greeting-cache.ts +24 -1
  184. package/src/ipc/gateway-client.test.ts +2 -2
  185. package/src/ipc/gateway-client.ts +3 -3
  186. package/src/media/gemini-image-service.ts +15 -0
  187. package/src/media/openai-image-service.ts +14 -0
  188. package/src/media/types.ts +34 -0
  189. package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +56 -0
  190. package/src/memory/auth-fallback-events-store.ts +94 -0
  191. package/src/memory/conversation-title-service.ts +65 -41
  192. package/src/memory/db-init.ts +4 -0
  193. package/src/memory/graph/__tests__/conversation-graph-memory-registry.test.ts +119 -0
  194. package/src/memory/graph/conversation-graph-memory.ts +65 -0
  195. package/src/memory/jobs-store.ts +33 -0
  196. package/src/memory/jobs-worker.ts +31 -4
  197. package/src/memory/llm-usage-store.ts +224 -50
  198. package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +6 -5
  199. package/src/memory/migrations/270-schedule-source-conversation.ts +13 -0
  200. package/src/memory/migrations/271-create-auth-fallback-events.ts +21 -0
  201. package/src/memory/migrations/index.ts +2 -0
  202. package/src/memory/pkb/autoinject.ts +61 -0
  203. package/src/memory/pkb/context.ts +50 -0
  204. package/src/memory/pkb/types.ts +14 -0
  205. package/src/memory/schedule-attribution-sql.ts +104 -0
  206. package/src/memory/schema/infrastructure.ts +16 -0
  207. package/src/memory/usage-grouped-buckets.ts +6 -1
  208. package/src/memory/v2/__tests__/consolidation-job.test.ts +1 -1
  209. package/src/memory/v2/consolidation-job.ts +1 -1
  210. package/src/memory/v3/__tests__/health.test.ts +16 -0
  211. package/src/memory/v3/__tests__/orchestrate.test.ts +45 -9
  212. package/src/memory/v3/__tests__/provider-blocks.test.ts +13 -0
  213. package/src/memory/v3/__tests__/router.test.ts +101 -29
  214. package/src/memory/v3/__tests__/selector.test.ts +93 -27
  215. package/src/memory/v3/__tests__/shadow-plugin.test.ts +23 -5
  216. package/src/memory/v3/health.ts +0 -0
  217. package/src/memory/v3/llm-retry.ts +32 -0
  218. package/src/memory/v3/orchestrate.ts +26 -14
  219. package/src/memory/v3/provider-blocks.ts +15 -5
  220. package/src/memory/v3/router.ts +48 -42
  221. package/src/memory/v3/selector.ts +57 -42
  222. package/src/memory/v3/shadow-plugin.ts +47 -15
  223. package/src/memory/v3/types.ts +8 -0
  224. package/src/notifications/conversation-pairing.ts +8 -15
  225. package/src/notifications/decision-engine.ts +6 -3
  226. package/src/notifications/home-feed-side-effect.ts +12 -1
  227. package/src/permissions/prompter.ts +4 -0
  228. package/src/plugin-api/constants.ts +4 -0
  229. package/src/plugin-api/index.ts +8 -1
  230. package/src/plugin-api/types.ts +151 -1
  231. package/src/plugins/defaults/empty-response/hooks/stop.ts +126 -0
  232. package/src/plugins/defaults/empty-response/register.ts +8 -13
  233. package/src/plugins/defaults/index.ts +1 -15
  234. package/src/plugins/defaults/injectors/register.ts +243 -74
  235. package/src/plugins/defaults/memory-retrieval/hooks/post-compact.ts +91 -0
  236. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit-temp.ts +216 -0
  237. package/src/plugins/defaults/memory-retrieval/injector-chain.ts +35 -0
  238. package/src/plugins/defaults/title-generate/hooks/stop.ts +75 -0
  239. package/src/plugins/defaults/title-generate/hooks/user-prompt-submit.ts +35 -0
  240. package/src/plugins/defaults/title-generate/package.json +1 -1
  241. package/src/plugins/defaults/title-generate/register.ts +18 -18
  242. package/src/plugins/defaults/tool-error/hooks/post-tool-use.ts +118 -0
  243. package/src/plugins/defaults/tool-error/package.json +1 -1
  244. package/src/plugins/defaults/tool-error/register.ts +9 -21
  245. package/src/plugins/defaults/tool-result-truncate/hooks/post-tool-use.ts +32 -0
  246. package/src/plugins/defaults/tool-result-truncate/register.ts +10 -21
  247. package/src/plugins/defaults/tool-result-truncate/terminal.ts +37 -18
  248. package/src/plugins/pipeline.ts +6 -18
  249. package/src/plugins/registry.ts +8 -25
  250. package/src/plugins/types.ts +43 -474
  251. package/src/proactive-artifact/aux-message-injector.ts +3 -3
  252. package/src/proactive-artifact/job.test.ts +7 -12
  253. package/src/prompts/__tests__/system-prompt.test.ts +36 -0
  254. package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +62 -0
  255. package/src/prompts/templates/BOOTSTRAP.md +2 -2
  256. package/src/prompts/templates/system-sections.ts +15 -0
  257. package/src/providers/anthropic/client.ts +37 -29
  258. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +112 -0
  259. package/src/providers/openai/chat-completions-provider.ts +44 -0
  260. package/src/providers/openrouter/client.ts +1 -0
  261. package/src/providers/placeholder-sentinels.ts +35 -0
  262. package/src/runtime/__tests__/agent-wake.test.ts +5 -1
  263. package/src/runtime/agent-wake.ts +2 -2
  264. package/src/runtime/assistant-event-hub.ts +36 -6
  265. package/src/runtime/{conversation-stream-state.ts → assistant-stream-state.ts} +132 -58
  266. package/src/runtime/http-router.ts +16 -21
  267. package/src/runtime/http-types.ts +16 -70
  268. package/src/runtime/pending-interactions.ts +1 -0
  269. package/src/runtime/routes/__tests__/consolidation-routes.test.ts +265 -2
  270. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +31 -1
  271. package/src/runtime/routes/__tests__/memory-v2-routes.test.ts +6 -2
  272. package/src/runtime/routes/__tests__/tts-routes.test.ts +6 -2
  273. package/src/runtime/routes/app-management-routes.ts +6 -117
  274. package/src/runtime/routes/app-routes.ts +13 -15
  275. package/src/runtime/routes/attachment-routes.ts +26 -15
  276. package/src/runtime/routes/avatar-routes.ts +26 -0
  277. package/src/runtime/routes/btw-routes.ts +29 -23
  278. package/src/runtime/routes/consolidation-routes.ts +120 -20
  279. package/src/runtime/routes/conversation-query-routes.ts +2 -0
  280. package/src/runtime/routes/conversation-routes.ts +358 -184
  281. package/src/runtime/routes/documents-routes.ts +4 -0
  282. package/src/runtime/routes/domain-routes.ts +51 -37
  283. package/src/runtime/routes/epoch-millis-range.ts +34 -0
  284. package/src/runtime/routes/events-routes.ts +28 -34
  285. package/src/runtime/routes/gateway-log-routes.ts +26 -4
  286. package/src/runtime/routes/heartbeat-routes.ts +32 -12
  287. package/src/runtime/routes/identity-intro-cache.ts +11 -34
  288. package/src/runtime/routes/identity-routes.ts +208 -17
  289. package/src/runtime/routes/image-generation-routes.ts +40 -2
  290. package/src/runtime/routes/index.ts +2 -0
  291. package/src/runtime/routes/integrations/a2a.ts +12 -10
  292. package/src/runtime/routes/integrations/slack/__tests__/channel.test.ts +16 -0
  293. package/src/runtime/routes/integrations/slack/channel.ts +4 -0
  294. package/src/runtime/routes/integrations/slack/share.ts +27 -6
  295. package/src/runtime/routes/integrations/telegram.ts +6 -0
  296. package/src/runtime/routes/integrations/twilio.ts +42 -0
  297. package/src/runtime/routes/internal-telemetry-routes.ts +88 -0
  298. package/src/runtime/routes/log-export-routes.ts +8 -0
  299. package/src/runtime/routes/memory-v2-routes.ts +15 -8
  300. package/src/runtime/routes/memory-v3-routes.ts +50 -28
  301. package/src/runtime/routes/oauth-apps.ts +66 -12
  302. package/src/runtime/routes/oauth-providers.ts +44 -5
  303. package/src/runtime/routes/platform-routes.ts +81 -5
  304. package/src/runtime/routes/playground/__tests__/force-compact.test.ts +6 -4
  305. package/src/runtime/routes/playground/force-compact.ts +1 -1
  306. package/src/runtime/routes/rename-conversation-routes.ts +5 -0
  307. package/src/runtime/routes/schedule-routes.ts +152 -42
  308. package/src/runtime/routes/secret-routes.ts +14 -2
  309. package/src/runtime/routes/skills-routes.ts +43 -14
  310. package/src/runtime/routes/tool-call-confirmation-enrichment.test.ts +161 -0
  311. package/src/runtime/routes/tool-call-confirmation-enrichment.ts +107 -0
  312. package/src/runtime/routes/trust-rules-routes.ts +26 -2
  313. package/src/runtime/routes/tts-routes.ts +35 -0
  314. package/src/runtime/routes/types.ts +66 -8
  315. package/src/runtime/routes/usage-routes.ts +47 -39
  316. package/src/runtime/routes/webhook-routes.ts +41 -2
  317. package/src/runtime/routes/workspace-routes.ts +4 -0
  318. package/src/runtime/services/__tests__/analyze-conversation.test.ts +6 -0
  319. package/src/runtime/services/analyze-conversation.ts +2 -2
  320. package/src/schedule/schedule-store.ts +20 -1
  321. package/src/schedule/schedule-usage-store.ts +83 -0
  322. package/src/schedule/scheduler.ts +12 -5
  323. package/src/skills/catalog-files.ts +2 -2
  324. package/src/skills/catalog-install.ts +3 -0
  325. package/src/skills/categories-cache.ts +118 -0
  326. package/src/skills/clawhub-files.ts +1 -2
  327. package/src/skills/skillssh-files.ts +1 -2
  328. package/src/telemetry/types.ts +29 -1
  329. package/src/telemetry/usage-telemetry-reporter.test.ts +112 -3
  330. package/src/telemetry/usage-telemetry-reporter.ts +57 -2
  331. package/src/tools/executor.ts +1 -53
  332. package/src/tools/network/__tests__/web-search-metadata.test.ts +7 -1
  333. package/src/tools/network/__tests__/web-search.test.ts +11 -3
  334. package/src/tools/network/web-search-error.test.ts +248 -0
  335. package/src/tools/network/web-search-error.ts +267 -0
  336. package/src/tools/network/web-search.ts +207 -48
  337. package/src/tools/schedule/create.ts +2 -0
  338. package/src/tools/terminal/safe-env.ts +10 -1
  339. package/src/tools/ui-surface/definitions.ts +9 -1
  340. package/src/tts/__tests__/provider-catalog-consistency.test.ts +85 -1
  341. package/src/tts/provider-catalog.ts +76 -1
  342. package/src/util/mutex.ts +47 -0
  343. package/src/workspace/git-service.ts +1 -42
  344. package/src/workspace/migrations/095-bump-heartbeat-interval-30m-to-60m.ts +51 -0
  345. package/src/workspace/migrations/096-reduce-quality-profile-effort.ts +72 -0
  346. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +93 -0
  347. package/src/workspace/migrations/registry.ts +6 -0
  348. package/src/__tests__/bootstrap-turn-cleanup.test.ts +0 -44
  349. package/src/__tests__/empty-response-pipeline.test.ts +0 -423
  350. package/src/__tests__/llm-call-pipeline.test.ts +0 -287
  351. package/src/__tests__/memory-retrieval-pipeline.test.ts +0 -418
  352. package/src/__tests__/persistence-pipeline.test.ts +0 -503
  353. package/src/__tests__/title-generate-pipeline.test.ts +0 -211
  354. package/src/__tests__/token-estimate-pipeline.test.ts +0 -479
  355. package/src/__tests__/tool-error-pipeline.test.ts +0 -241
  356. package/src/__tests__/tool-execute-pipeline.test.ts +0 -417
  357. package/src/__tests__/tool-result-truncate-pipeline.test.ts +0 -341
  358. package/src/daemon/bootstrap-turn-cleanup.ts +0 -45
  359. package/src/gallery/default-gallery.ts +0 -1359
  360. package/src/gallery/gallery-manifest.ts +0 -28
  361. package/src/home/feature-gate.ts +0 -22
  362. package/src/plugins/defaults/empty-response/middlewares/emptyResponse.ts +0 -22
  363. package/src/plugins/defaults/empty-response/terminal.ts +0 -106
  364. package/src/plugins/defaults/injectors/package.json +0 -15
  365. package/src/plugins/defaults/llm-call/middlewares/llmCall.ts +0 -17
  366. package/src/plugins/defaults/llm-call/package.json +0 -15
  367. package/src/plugins/defaults/llm-call/register.ts +0 -45
  368. package/src/plugins/defaults/memory-retrieval/middlewares/memoryRetrieval.ts +0 -17
  369. package/src/plugins/defaults/memory-retrieval/package.json +0 -15
  370. package/src/plugins/defaults/memory-retrieval/register.ts +0 -181
  371. package/src/plugins/defaults/persistence/middlewares/persistence.ts +0 -19
  372. package/src/plugins/defaults/persistence/package.json +0 -15
  373. package/src/plugins/defaults/persistence/register.ts +0 -38
  374. package/src/plugins/defaults/persistence/terminal.ts +0 -83
  375. package/src/plugins/defaults/title-generate/terminal.ts +0 -31
  376. package/src/plugins/defaults/token-estimate/middlewares/tokenEstimate.ts +0 -23
  377. package/src/plugins/defaults/token-estimate/package.json +0 -15
  378. package/src/plugins/defaults/token-estimate/register.ts +0 -34
  379. package/src/plugins/defaults/token-estimate/terminal.ts +0 -40
  380. package/src/plugins/defaults/tool-error/middlewares/toolError.ts +0 -21
  381. package/src/plugins/defaults/tool-error/terminal.ts +0 -47
  382. package/src/plugins/defaults/tool-execute/middlewares/toolExecute.ts +0 -23
  383. package/src/plugins/defaults/tool-execute/package.json +0 -15
  384. package/src/plugins/defaults/tool-execute/register.ts +0 -49
  385. package/src/plugins/defaults/tool-result-truncate/middlewares/toolResultTruncate.ts +0 -23
  386. package/src/plugins/defaults/tool-result-truncate/types.ts +0 -22
  387. package/src/skills/category-inference.ts +0 -111
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
@@ -1057,119 +1057,6 @@ paths:
1057
1057
  required:
1058
1058
  - uuid
1059
1059
  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
1060
  /v1/apps/import-bundle:
1174
1061
  post:
1175
1062
  operationId: apps_importbundle_post
@@ -1230,6 +1117,13 @@ paths:
1230
1117
  - scanResult
1231
1118
  - signatureResult
1232
1119
  additionalProperties: false
1120
+ requestBody:
1121
+ required: true
1122
+ content:
1123
+ application/octet-stream:
1124
+ schema:
1125
+ type: string
1126
+ format: binary
1233
1127
  /v1/apps/open-bundle:
1234
1128
  post:
1235
1129
  operationId: apps_openbundle_post
@@ -1420,6 +1314,11 @@ paths:
1420
1314
  responses:
1421
1315
  "200":
1422
1316
  description: Successful response
1317
+ content:
1318
+ application/zip:
1319
+ schema:
1320
+ type: string
1321
+ format: binary
1423
1322
  parameters:
1424
1323
  - name: token
1425
1324
  in: path
@@ -1585,29 +1484,22 @@ paths:
1585
1484
  requestBody:
1586
1485
  required: true
1587
1486
  content:
1588
- application/json:
1487
+ multipart/form-data:
1589
1488
  schema:
1590
1489
  type: object
1591
1490
  properties:
1491
+ file:
1492
+ type: string
1493
+ format: binary
1494
+ description: The file to upload
1592
1495
  filename:
1593
1496
  type: string
1594
1497
  mimeType:
1595
1498
  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
1499
  required:
1500
+ - file
1608
1501
  - filename
1609
1502
  - mimeType
1610
- additionalProperties: false
1611
1503
  /v1/attachments/{id}:
1612
1504
  get:
1613
1505
  operationId: attachments_by_id_get
@@ -1664,6 +1556,11 @@ paths:
1664
1556
  responses:
1665
1557
  "200":
1666
1558
  description: Successful response
1559
+ content:
1560
+ application/octet-stream:
1561
+ schema:
1562
+ type: string
1563
+ format: binary
1667
1564
  "416":
1668
1565
  description: Range Not Satisfiable
1669
1566
  parameters:
@@ -1868,6 +1765,140 @@ paths:
1868
1765
  responses:
1869
1766
  "200":
1870
1767
  description: Successful response
1768
+ content:
1769
+ application/json:
1770
+ schema:
1771
+ type: object
1772
+ properties:
1773
+ bodyShapes:
1774
+ type: array
1775
+ items:
1776
+ type: object
1777
+ properties:
1778
+ id:
1779
+ type: string
1780
+ viewBox:
1781
+ type: object
1782
+ properties:
1783
+ width:
1784
+ type: number
1785
+ height:
1786
+ type: number
1787
+ required:
1788
+ - width
1789
+ - height
1790
+ additionalProperties: false
1791
+ faceCenter:
1792
+ type: object
1793
+ properties:
1794
+ x:
1795
+ type: number
1796
+ y:
1797
+ type: number
1798
+ required:
1799
+ - x
1800
+ - y
1801
+ additionalProperties: false
1802
+ svgPath:
1803
+ type: string
1804
+ required:
1805
+ - id
1806
+ - viewBox
1807
+ - faceCenter
1808
+ - svgPath
1809
+ additionalProperties: false
1810
+ eyeStyles:
1811
+ type: array
1812
+ items:
1813
+ type: object
1814
+ properties:
1815
+ id:
1816
+ type: string
1817
+ sourceViewBox:
1818
+ type: object
1819
+ properties:
1820
+ width:
1821
+ type: number
1822
+ height:
1823
+ type: number
1824
+ required:
1825
+ - width
1826
+ - height
1827
+ additionalProperties: false
1828
+ eyeCenter:
1829
+ type: object
1830
+ properties:
1831
+ x:
1832
+ type: number
1833
+ y:
1834
+ type: number
1835
+ required:
1836
+ - x
1837
+ - y
1838
+ additionalProperties: false
1839
+ paths:
1840
+ type: array
1841
+ items:
1842
+ type: object
1843
+ properties:
1844
+ svgPath:
1845
+ type: string
1846
+ color:
1847
+ type: string
1848
+ required:
1849
+ - svgPath
1850
+ - color
1851
+ additionalProperties: false
1852
+ required:
1853
+ - id
1854
+ - sourceViewBox
1855
+ - eyeCenter
1856
+ - paths
1857
+ additionalProperties: false
1858
+ colors:
1859
+ type: array
1860
+ items:
1861
+ type: object
1862
+ properties:
1863
+ id:
1864
+ type: string
1865
+ hex:
1866
+ type: string
1867
+ required:
1868
+ - id
1869
+ - hex
1870
+ additionalProperties: false
1871
+ faceCenterOverrides:
1872
+ type: array
1873
+ items:
1874
+ type: object
1875
+ properties:
1876
+ bodyShape:
1877
+ type: string
1878
+ eyeStyle:
1879
+ type: string
1880
+ faceCenter:
1881
+ type: object
1882
+ properties:
1883
+ x:
1884
+ type: number
1885
+ y:
1886
+ type: number
1887
+ required:
1888
+ - x
1889
+ - y
1890
+ additionalProperties: false
1891
+ required:
1892
+ - bodyShape
1893
+ - eyeStyle
1894
+ - faceCenter
1895
+ additionalProperties: false
1896
+ required:
1897
+ - bodyShapes
1898
+ - eyeStyles
1899
+ - colors
1900
+ - faceCenterOverrides
1901
+ additionalProperties: false
1871
1902
  /v1/avatar/character/ascii:
1872
1903
  get:
1873
1904
  operationId: avatar_character_ascii_get
@@ -4168,6 +4199,25 @@ paths:
4168
4199
  responses:
4169
4200
  "200":
4170
4201
  description: Successful response
4202
+ content:
4203
+ application/json:
4204
+ schema:
4205
+ type: object
4206
+ properties:
4207
+ ok:
4208
+ type: boolean
4209
+ required:
4210
+ - ok
4211
+ additionalProperties: false
4212
+ requestBody:
4213
+ required: true
4214
+ content:
4215
+ application/json:
4216
+ schema:
4217
+ type: object
4218
+ propertyNames:
4219
+ type: string
4220
+ additionalProperties: {}
4171
4221
  /v1/config/allowlist/validate:
4172
4222
  get:
4173
4223
  operationId: config_allowlist_validate_get
@@ -4471,6 +4521,55 @@ paths:
4471
4521
  - lastRunAt
4472
4522
  - success
4473
4523
  additionalProperties: false
4524
+ put:
4525
+ operationId: consolidation_config_put
4526
+ summary: Update consolidation config
4527
+ description: Update the memory v2 consolidation schedule configuration.
4528
+ tags:
4529
+ - consolidation
4530
+ responses:
4531
+ "200":
4532
+ description: Successful response
4533
+ content:
4534
+ application/json:
4535
+ schema:
4536
+ type: object
4537
+ properties:
4538
+ available:
4539
+ type: boolean
4540
+ enabled:
4541
+ type: boolean
4542
+ intervalMs:
4543
+ type: number
4544
+ nextRunAt:
4545
+ anyOf:
4546
+ - type: number
4547
+ - type: "null"
4548
+ lastRunAt:
4549
+ anyOf:
4550
+ - type: number
4551
+ - type: "null"
4552
+ success:
4553
+ type: boolean
4554
+ required:
4555
+ - available
4556
+ - enabled
4557
+ - intervalMs
4558
+ - nextRunAt
4559
+ - lastRunAt
4560
+ - success
4561
+ additionalProperties: false
4562
+ requestBody:
4563
+ required: true
4564
+ content:
4565
+ application/json:
4566
+ schema:
4567
+ type: object
4568
+ properties:
4569
+ enabled:
4570
+ description: Enable or disable automatic consolidation
4571
+ type: boolean
4572
+ additionalProperties: false
4474
4573
  /v1/consolidation/run-now:
4475
4574
  post:
4476
4575
  operationId: consolidation_runnow_post
@@ -4566,10 +4665,18 @@ paths:
4566
4665
  anyOf:
4567
4666
  - type: string
4568
4667
  - type: "null"
4569
- createdAt:
4570
- type: number
4571
- required:
4572
- - id
4668
+ conversationExists:
4669
+ type: boolean
4670
+ conversationArchivedAt:
4671
+ anyOf:
4672
+ - type: number
4673
+ - type: "null"
4674
+ estimatedCostUsd:
4675
+ type: number
4676
+ createdAt:
4677
+ type: number
4678
+ required:
4679
+ - id
4573
4680
  - scheduledFor
4574
4681
  - startedAt
4575
4682
  - finishedAt
@@ -4578,6 +4685,9 @@ paths:
4578
4685
  - skipReason
4579
4686
  - error
4580
4687
  - conversationId
4688
+ - conversationExists
4689
+ - conversationArchivedAt
4690
+ - estimatedCostUsd
4581
4691
  - createdAt
4582
4692
  additionalProperties: false
4583
4693
  description: Consolidation run records
@@ -8214,6 +8324,17 @@ paths:
8214
8324
  responses:
8215
8325
  "200":
8216
8326
  description: Successful response
8327
+ content:
8328
+ application/json:
8329
+ schema:
8330
+ type: object
8331
+ properties:
8332
+ ok:
8333
+ type: boolean
8334
+ const: true
8335
+ required:
8336
+ - ok
8337
+ additionalProperties: false
8217
8338
  requestBody:
8218
8339
  required: true
8219
8340
  content:
@@ -10004,6 +10125,11 @@ paths:
10004
10125
  responses:
10005
10126
  "200":
10006
10127
  description: Successful response
10128
+ content:
10129
+ application/pdf:
10130
+ schema:
10131
+ type: string
10132
+ format: binary
10007
10133
  parameters:
10008
10134
  - name: id
10009
10135
  in: path
@@ -10019,6 +10145,47 @@ paths:
10019
10145
  responses:
10020
10146
  "200":
10021
10147
  description: Successful response
10148
+ content:
10149
+ application/json:
10150
+ schema:
10151
+ type: object
10152
+ properties:
10153
+ id:
10154
+ type: string
10155
+ subdomain:
10156
+ type: string
10157
+ domain:
10158
+ type: string
10159
+ created_at:
10160
+ type: string
10161
+ created:
10162
+ type: string
10163
+ email_error:
10164
+ type: object
10165
+ properties:
10166
+ detail:
10167
+ type: string
10168
+ code:
10169
+ type: string
10170
+ required:
10171
+ - detail
10172
+ - code
10173
+ additionalProperties: false
10174
+ required:
10175
+ - id
10176
+ additionalProperties: false
10177
+ requestBody:
10178
+ required: true
10179
+ content:
10180
+ application/json:
10181
+ schema:
10182
+ type: object
10183
+ properties:
10184
+ subdomain:
10185
+ type: string
10186
+ email_username:
10187
+ type: string
10188
+ additionalProperties: false
10022
10189
  /v1/domain/status:
10023
10190
  get:
10024
10191
  operationId: domain_status_get
@@ -10028,6 +10195,43 @@ paths:
10028
10195
  responses:
10029
10196
  "200":
10030
10197
  description: Successful response
10198
+ content:
10199
+ application/json:
10200
+ schema:
10201
+ type: object
10202
+ properties:
10203
+ count:
10204
+ type: number
10205
+ next:
10206
+ anyOf:
10207
+ - type: string
10208
+ - type: "null"
10209
+ previous:
10210
+ anyOf:
10211
+ - type: string
10212
+ - type: "null"
10213
+ results:
10214
+ type: array
10215
+ items:
10216
+ type: object
10217
+ properties:
10218
+ id:
10219
+ type: string
10220
+ subdomain:
10221
+ type: string
10222
+ domain:
10223
+ type: string
10224
+ created_at:
10225
+ type: string
10226
+ created:
10227
+ type: string
10228
+ required:
10229
+ - id
10230
+ additionalProperties: false
10231
+ required:
10232
+ - count
10233
+ - results
10234
+ additionalProperties: false
10031
10235
  /v1/domain/verification-status:
10032
10236
  post:
10033
10237
  operationId: domain_verificationstatus_post
@@ -10037,6 +10241,34 @@ paths:
10037
10241
  responses:
10038
10242
  "200":
10039
10243
  description: Successful response
10244
+ content:
10245
+ application/json:
10246
+ schema:
10247
+ type: object
10248
+ properties:
10249
+ domain:
10250
+ type: string
10251
+ status:
10252
+ type: string
10253
+ message:
10254
+ type: string
10255
+ required:
10256
+ - domain
10257
+ - status
10258
+ - message
10259
+ additionalProperties: false
10260
+ requestBody:
10261
+ required: true
10262
+ content:
10263
+ application/json:
10264
+ schema:
10265
+ type: object
10266
+ properties:
10267
+ domain_id:
10268
+ type: string
10269
+ required:
10270
+ - domain_id
10271
+ additionalProperties: false
10040
10272
  /v1/email/attachment-get:
10041
10273
  get:
10042
10274
  operationId: email_attachmentget_get
@@ -10378,11 +10610,12 @@ paths:
10378
10610
  schema:
10379
10611
  type: string
10380
10612
  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."
10613
+ "Optional reconnect cursor: the highest global event seq the client has already applied. `seq` is a single
10614
+ per-assistant counter shared across all conversations, so one cursor resumes the stream regardless of how
10615
+ many conversations are multiplexed on the connection. When set, the daemon replays any buffered events with
10616
+ seq > lastSeenSeq (re-applying the subscriber's targeting/scope filter) before going live. If the cursor is
10617
+ older than the ring buffer's oldest entry the connection simply goes live; the client is expected to detect
10618
+ the gap from the next event's seq and refetch via the messages API. Must be a non-negative integer."
10386
10619
  /v1/events/emit:
10387
10620
  post:
10388
10621
  operationId: events_emit_post
@@ -10419,6 +10652,11 @@ paths:
10419
10652
  responses:
10420
10653
  "200":
10421
10654
  description: Successful response
10655
+ content:
10656
+ application/gzip:
10657
+ schema:
10658
+ type: string
10659
+ format: binary
10422
10660
  "500":
10423
10661
  description: Failed to create archive
10424
10662
  requestBody:
@@ -10529,6 +10767,24 @@ paths:
10529
10767
  responses:
10530
10768
  "200":
10531
10769
  description: Successful response
10770
+ content:
10771
+ application/json:
10772
+ schema:
10773
+ type: object
10774
+ properties:
10775
+ lines:
10776
+ type: array
10777
+ items:
10778
+ type: object
10779
+ propertyNames:
10780
+ type: string
10781
+ additionalProperties: {}
10782
+ truncated:
10783
+ type: boolean
10784
+ required:
10785
+ - lines
10786
+ - truncated
10787
+ additionalProperties: false
10532
10788
  parameters:
10533
10789
  - name: n
10534
10790
  in: query
@@ -10847,21 +11103,59 @@ paths:
10847
11103
  version:
10848
11104
  type: string
10849
11105
  disk:
10850
- type: object
10851
- properties: {}
10852
- additionalProperties: {}
11106
+ anyOf:
11107
+ - type: object
11108
+ properties:
11109
+ path:
11110
+ type: string
11111
+ totalMb:
11112
+ type: number
11113
+ usedMb:
11114
+ type: number
11115
+ freeMb:
11116
+ type: number
11117
+ required:
11118
+ - path
11119
+ - totalMb
11120
+ - usedMb
11121
+ - freeMb
11122
+ additionalProperties: false
11123
+ - type: "null"
10853
11124
  memory:
10854
11125
  type: object
10855
- properties: {}
10856
- additionalProperties: {}
11126
+ properties:
11127
+ currentMb:
11128
+ type: number
11129
+ maxMb:
11130
+ type: number
11131
+ required:
11132
+ - currentMb
11133
+ - maxMb
11134
+ additionalProperties: false
10857
11135
  cpu:
10858
11136
  type: object
10859
- properties: {}
10860
- additionalProperties: {}
11137
+ properties:
11138
+ currentPercent:
11139
+ type: number
11140
+ maxCores:
11141
+ type: number
11142
+ required:
11143
+ - currentPercent
11144
+ - maxCores
11145
+ additionalProperties: false
10861
11146
  migrations:
10862
11147
  type: object
10863
- properties: {}
10864
- additionalProperties: {}
11148
+ properties:
11149
+ dbVersion:
11150
+ type: number
11151
+ lastWorkspaceMigrationId:
11152
+ anyOf:
11153
+ - type: string
11154
+ - type: "null"
11155
+ required:
11156
+ - dbVersion
11157
+ - lastWorkspaceMigrationId
11158
+ additionalProperties: false
10865
11159
  ces:
10866
11160
  type: object
10867
11161
  properties:
@@ -10977,21 +11271,59 @@ paths:
10977
11271
  version:
10978
11272
  type: string
10979
11273
  disk:
10980
- type: object
10981
- properties: {}
10982
- additionalProperties: {}
11274
+ anyOf:
11275
+ - type: object
11276
+ properties:
11277
+ path:
11278
+ type: string
11279
+ totalMb:
11280
+ type: number
11281
+ usedMb:
11282
+ type: number
11283
+ freeMb:
11284
+ type: number
11285
+ required:
11286
+ - path
11287
+ - totalMb
11288
+ - usedMb
11289
+ - freeMb
11290
+ additionalProperties: false
11291
+ - type: "null"
10983
11292
  memory:
10984
11293
  type: object
10985
- properties: {}
10986
- additionalProperties: {}
11294
+ properties:
11295
+ currentMb:
11296
+ type: number
11297
+ maxMb:
11298
+ type: number
11299
+ required:
11300
+ - currentMb
11301
+ - maxMb
11302
+ additionalProperties: false
10987
11303
  cpu:
10988
11304
  type: object
10989
- properties: {}
10990
- additionalProperties: {}
11305
+ properties:
11306
+ currentPercent:
11307
+ type: number
11308
+ maxCores:
11309
+ type: number
11310
+ required:
11311
+ - currentPercent
11312
+ - maxCores
11313
+ additionalProperties: false
10991
11314
  migrations:
10992
11315
  type: object
10993
- properties: {}
10994
- additionalProperties: {}
11316
+ properties:
11317
+ dbVersion:
11318
+ type: number
11319
+ lastWorkspaceMigrationId:
11320
+ anyOf:
11321
+ - type: string
11322
+ - type: "null"
11323
+ required:
11324
+ - dbVersion
11325
+ - lastWorkspaceMigrationId
11326
+ additionalProperties: false
10995
11327
  ces:
10996
11328
  type: object
10997
11329
  properties:
@@ -11361,6 +11693,14 @@ paths:
11361
11693
  anyOf:
11362
11694
  - type: string
11363
11695
  - type: "null"
11696
+ conversationExists:
11697
+ type: boolean
11698
+ conversationArchivedAt:
11699
+ anyOf:
11700
+ - type: number
11701
+ - type: "null"
11702
+ estimatedCostUsd:
11703
+ type: number
11364
11704
  createdAt:
11365
11705
  type: number
11366
11706
  required:
@@ -11373,6 +11713,9 @@ paths:
11373
11713
  - skipReason
11374
11714
  - error
11375
11715
  - conversationId
11716
+ - conversationExists
11717
+ - conversationArchivedAt
11718
+ - estimatedCostUsd
11376
11719
  - createdAt
11377
11720
  additionalProperties: false
11378
11721
  description: Heartbeat run records
@@ -12499,7 +12842,9 @@ paths:
12499
12842
  get:
12500
12843
  operationId: identity_intro_get
12501
12844
  summary: Get identity greetings
12502
- description: Returns an array of greetings sourced from SOUL.md, LLM cache, or static fallbacks.
12845
+ description:
12846
+ Returns greetings sourced from SOUL.md, the generated cache, or generic fallbacks while background
12847
+ generation refreshes the cache.
12503
12848
  tags:
12504
12849
  - identity
12505
12850
  responses:
@@ -12516,9 +12861,19 @@ paths:
12516
12861
  type: string
12517
12862
  text:
12518
12863
  type: string
12864
+ source:
12865
+ type: string
12866
+ enum:
12867
+ - workspace
12868
+ - cache
12869
+ - fallback
12870
+ refreshing:
12871
+ type: boolean
12519
12872
  required:
12520
12873
  - greetings
12521
12874
  - text
12875
+ - source
12876
+ - refreshing
12522
12877
  additionalProperties: false
12523
12878
  /v1/image-generation/generate:
12524
12879
  post:
@@ -12530,45 +12885,107 @@ paths:
12530
12885
  responses:
12531
12886
  "200":
12532
12887
  description: Successful response
12533
- /v1/inference/chatgpt-subscription/auth:
12534
- post:
12535
- operationId: inference_chatgptsubscription_auth_post
12536
- summary: Start ChatGPT subscription OAuth PKCE flow
12537
- description:
12538
- Generate a PKCE authorize URL for ChatGPT subscription auth. Returns the URL and state for the client to
12539
- open in a browser.
12540
- tags:
12541
- - inference
12542
- responses:
12543
- "200":
12544
- description: Successful response
12545
12888
  content:
12546
12889
  application/json:
12547
12890
  schema:
12548
12891
  type: object
12549
12892
  properties:
12550
- authorize_url:
12893
+ images:
12894
+ type: array
12895
+ items:
12896
+ type: object
12897
+ properties:
12898
+ mimeType:
12899
+ type: string
12900
+ dataBase64:
12901
+ type: string
12902
+ title:
12903
+ type: string
12904
+ required:
12905
+ - mimeType
12906
+ - dataBase64
12907
+ additionalProperties: false
12908
+ text:
12551
12909
  type: string
12552
- state:
12910
+ resolvedModel:
12553
12911
  type: string
12554
12912
  required:
12555
- - authorize_url
12556
- - state
12913
+ - images
12914
+ - resolvedModel
12557
12915
  additionalProperties: false
12558
- /v1/inference/chatgpt-subscription/auth/exchange:
12559
- post:
12560
- operationId: inference_chatgptsubscription_auth_exchange_post
12561
- summary: Exchange ChatGPT subscription OAuth authorization code
12562
- description:
12563
- Accept an authorization code and state from the OAuth redirect, exchange it for tokens, store them in CES,
12564
- and upsert the provider connection.
12565
- tags:
12566
- - inference
12567
- responses:
12568
- "200":
12569
- description: Successful response
12570
- content:
12571
- application/json:
12916
+ requestBody:
12917
+ required: true
12918
+ content:
12919
+ application/json:
12920
+ schema:
12921
+ type: object
12922
+ properties:
12923
+ prompt:
12924
+ type: string
12925
+ mode:
12926
+ type: string
12927
+ enum:
12928
+ - generate
12929
+ - edit
12930
+ sourceImages:
12931
+ type: array
12932
+ items:
12933
+ type: object
12934
+ properties:
12935
+ mimeType:
12936
+ type: string
12937
+ dataBase64:
12938
+ type: string
12939
+ required:
12940
+ - mimeType
12941
+ - dataBase64
12942
+ additionalProperties: false
12943
+ model:
12944
+ type: string
12945
+ variants:
12946
+ type: number
12947
+ required:
12948
+ - prompt
12949
+ additionalProperties: false
12950
+ /v1/inference/chatgpt-subscription/auth:
12951
+ post:
12952
+ operationId: inference_chatgptsubscription_auth_post
12953
+ summary: Start ChatGPT subscription OAuth PKCE flow
12954
+ description:
12955
+ Generate a PKCE authorize URL for ChatGPT subscription auth. Returns the URL and state for the client to
12956
+ open in a browser.
12957
+ tags:
12958
+ - inference
12959
+ responses:
12960
+ "200":
12961
+ description: Successful response
12962
+ content:
12963
+ application/json:
12964
+ schema:
12965
+ type: object
12966
+ properties:
12967
+ authorize_url:
12968
+ type: string
12969
+ state:
12970
+ type: string
12971
+ required:
12972
+ - authorize_url
12973
+ - state
12974
+ additionalProperties: false
12975
+ /v1/inference/chatgpt-subscription/auth/exchange:
12976
+ post:
12977
+ operationId: inference_chatgptsubscription_auth_exchange_post
12978
+ summary: Exchange ChatGPT subscription OAuth authorization code
12979
+ description:
12980
+ Accept an authorization code and state from the OAuth redirect, exchange it for tokens, store them in CES,
12981
+ and upsert the provider connection.
12982
+ tags:
12983
+ - inference
12984
+ responses:
12985
+ "200":
12986
+ description: Successful response
12987
+ content:
12988
+ application/json:
12572
12989
  schema:
12573
12990
  type: object
12574
12991
  properties:
@@ -13450,6 +13867,24 @@ paths:
13450
13867
  responses:
13451
13868
  "200":
13452
13869
  description: Successful response
13870
+ content:
13871
+ application/json:
13872
+ schema:
13873
+ type: object
13874
+ properties:
13875
+ success:
13876
+ type: boolean
13877
+ enabled:
13878
+ type: boolean
13879
+ activeConnections:
13880
+ type: number
13881
+ error:
13882
+ type: string
13883
+ required:
13884
+ - success
13885
+ - enabled
13886
+ - activeConnections
13887
+ additionalProperties: false
13453
13888
  get:
13454
13889
  operationId: integrations_a2a_config_get
13455
13890
  summary: Get A2A config
@@ -13459,6 +13894,24 @@ paths:
13459
13894
  responses:
13460
13895
  "200":
13461
13896
  description: Successful response
13897
+ content:
13898
+ application/json:
13899
+ schema:
13900
+ type: object
13901
+ properties:
13902
+ success:
13903
+ type: boolean
13904
+ enabled:
13905
+ type: boolean
13906
+ activeConnections:
13907
+ type: number
13908
+ error:
13909
+ type: string
13910
+ required:
13911
+ - success
13912
+ - enabled
13913
+ - activeConnections
13914
+ additionalProperties: false
13462
13915
  post:
13463
13916
  operationId: integrations_a2a_config_post
13464
13917
  summary: Enable A2A channel
@@ -13468,6 +13921,24 @@ paths:
13468
13921
  responses:
13469
13922
  "200":
13470
13923
  description: Successful response
13924
+ content:
13925
+ application/json:
13926
+ schema:
13927
+ type: object
13928
+ properties:
13929
+ success:
13930
+ type: boolean
13931
+ enabled:
13932
+ type: boolean
13933
+ activeConnections:
13934
+ type: number
13935
+ error:
13936
+ type: string
13937
+ required:
13938
+ - success
13939
+ - enabled
13940
+ - activeConnections
13941
+ additionalProperties: false
13471
13942
  /v1/integrations/a2a/invite:
13472
13943
  post:
13473
13944
  operationId: integrations_a2a_invite_post
@@ -13510,6 +13981,24 @@ paths:
13510
13981
  responses:
13511
13982
  "200":
13512
13983
  description: Successful response
13984
+ content:
13985
+ application/json:
13986
+ schema:
13987
+ type: object
13988
+ properties:
13989
+ success:
13990
+ type: boolean
13991
+ contactId:
13992
+ type: string
13993
+ alreadyConnected:
13994
+ type: boolean
13995
+ error:
13996
+ type: string
13997
+ errorCode:
13998
+ type: string
13999
+ required:
14000
+ - success
14001
+ additionalProperties: false
13513
14002
  /v1/integrations/a2a/invite/complete:
13514
14003
  post:
13515
14004
  operationId: integrations_a2a_invite_complete_post
@@ -13520,6 +14009,32 @@ paths:
13520
14009
  responses:
13521
14010
  "200":
13522
14011
  description: Successful response
14012
+ content:
14013
+ application/json:
14014
+ schema:
14015
+ type: object
14016
+ properties:
14017
+ success:
14018
+ type: boolean
14019
+ sender:
14020
+ type: object
14021
+ properties:
14022
+ assistantId:
14023
+ type: string
14024
+ displayName:
14025
+ type: string
14026
+ gatewayUrl:
14027
+ type: string
14028
+ required:
14029
+ - assistantId
14030
+ - displayName
14031
+ - gatewayUrl
14032
+ additionalProperties: false
14033
+ error:
14034
+ type: string
14035
+ required:
14036
+ - success
14037
+ additionalProperties: false
13523
14038
  /v1/integrations/a2a/invite/redeem:
13524
14039
  post:
13525
14040
  operationId: integrations_a2a_invite_redeem_post
@@ -13530,6 +14045,22 @@ paths:
13530
14045
  responses:
13531
14046
  "200":
13532
14047
  description: Successful response
14048
+ content:
14049
+ application/json:
14050
+ schema:
14051
+ type: object
14052
+ properties:
14053
+ success:
14054
+ type: boolean
14055
+ contactId:
14056
+ type: string
14057
+ alreadyConnected:
14058
+ type: boolean
14059
+ error:
14060
+ type: string
14061
+ required:
14062
+ - success
14063
+ additionalProperties: false
13533
14064
  /v1/integrations/ingress/config:
13534
14065
  get:
13535
14066
  operationId: integrations_ingress_config_get
@@ -13621,6 +14152,42 @@ paths:
13621
14152
  responses:
13622
14153
  "200":
13623
14154
  description: Successful response
14155
+ content:
14156
+ application/json:
14157
+ schema:
14158
+ type: object
14159
+ properties:
14160
+ success:
14161
+ type: boolean
14162
+ hasBotToken:
14163
+ type: boolean
14164
+ hasAppToken:
14165
+ type: boolean
14166
+ hasUserToken:
14167
+ type: boolean
14168
+ connected:
14169
+ type: boolean
14170
+ teamId:
14171
+ type: string
14172
+ teamName:
14173
+ type: string
14174
+ teamUrl:
14175
+ type: string
14176
+ botUserId:
14177
+ type: string
14178
+ botUsername:
14179
+ type: string
14180
+ error:
14181
+ type: string
14182
+ warning:
14183
+ type: string
14184
+ required:
14185
+ - success
14186
+ - hasBotToken
14187
+ - hasAppToken
14188
+ - hasUserToken
14189
+ - connected
14190
+ additionalProperties: false
13624
14191
  get:
13625
14192
  operationId: integrations_slack_channel_config_get
13626
14193
  summary: Get Slack channel config
@@ -13630,6 +14197,42 @@ paths:
13630
14197
  responses:
13631
14198
  "200":
13632
14199
  description: Successful response
14200
+ content:
14201
+ application/json:
14202
+ schema:
14203
+ type: object
14204
+ properties:
14205
+ success:
14206
+ type: boolean
14207
+ hasBotToken:
14208
+ type: boolean
14209
+ hasAppToken:
14210
+ type: boolean
14211
+ hasUserToken:
14212
+ type: boolean
14213
+ connected:
14214
+ type: boolean
14215
+ teamId:
14216
+ type: string
14217
+ teamName:
14218
+ type: string
14219
+ teamUrl:
14220
+ type: string
14221
+ botUserId:
14222
+ type: string
14223
+ botUsername:
14224
+ type: string
14225
+ error:
14226
+ type: string
14227
+ warning:
14228
+ type: string
14229
+ required:
14230
+ - success
14231
+ - hasBotToken
14232
+ - hasAppToken
14233
+ - hasUserToken
14234
+ - connected
14235
+ additionalProperties: false
13633
14236
  post:
13634
14237
  operationId: integrations_slack_channel_config_post
13635
14238
  summary: Set Slack channel config
@@ -13639,6 +14242,42 @@ paths:
13639
14242
  responses:
13640
14243
  "200":
13641
14244
  description: Successful response
14245
+ content:
14246
+ application/json:
14247
+ schema:
14248
+ type: object
14249
+ properties:
14250
+ success:
14251
+ type: boolean
14252
+ hasBotToken:
14253
+ type: boolean
14254
+ hasAppToken:
14255
+ type: boolean
14256
+ hasUserToken:
14257
+ type: boolean
14258
+ connected:
14259
+ type: boolean
14260
+ teamId:
14261
+ type: string
14262
+ teamName:
14263
+ type: string
14264
+ teamUrl:
14265
+ type: string
14266
+ botUserId:
14267
+ type: string
14268
+ botUsername:
14269
+ type: string
14270
+ error:
14271
+ type: string
14272
+ warning:
14273
+ type: string
14274
+ required:
14275
+ - success
14276
+ - hasBotToken
14277
+ - hasAppToken
14278
+ - hasUserToken
14279
+ - connected
14280
+ additionalProperties: false
13642
14281
  requestBody:
13643
14282
  required: true
13644
14283
  content:
@@ -13666,6 +14305,39 @@ paths:
13666
14305
  responses:
13667
14306
  "200":
13668
14307
  description: Successful response
14308
+ content:
14309
+ application/json:
14310
+ schema:
14311
+ type: object
14312
+ properties:
14313
+ success:
14314
+ type: boolean
14315
+ hasBotToken:
14316
+ type: boolean
14317
+ botId:
14318
+ type: string
14319
+ botUsername:
14320
+ type: string
14321
+ connected:
14322
+ type: boolean
14323
+ hasWebhookSecret:
14324
+ type: boolean
14325
+ lastError:
14326
+ type: string
14327
+ error:
14328
+ type: string
14329
+ commandsRegistered:
14330
+ type: array
14331
+ items:
14332
+ type: string
14333
+ warning:
14334
+ type: string
14335
+ required:
14336
+ - success
14337
+ - hasBotToken
14338
+ - connected
14339
+ - hasWebhookSecret
14340
+ additionalProperties: false
13669
14341
  /v1/integrations/telegram/config:
13670
14342
  delete:
13671
14343
  operationId: integrations_telegram_config_delete
@@ -13676,15 +14348,81 @@ paths:
13676
14348
  responses:
13677
14349
  "200":
13678
14350
  description: Successful response
13679
- get:
13680
- operationId: integrations_telegram_config_get
13681
- summary: Get Telegram config
14351
+ content:
14352
+ application/json:
14353
+ schema:
14354
+ type: object
14355
+ properties:
14356
+ success:
14357
+ type: boolean
14358
+ hasBotToken:
14359
+ type: boolean
14360
+ botId:
14361
+ type: string
14362
+ botUsername:
14363
+ type: string
14364
+ connected:
14365
+ type: boolean
14366
+ hasWebhookSecret:
14367
+ type: boolean
14368
+ lastError:
14369
+ type: string
14370
+ error:
14371
+ type: string
14372
+ commandsRegistered:
14373
+ type: array
14374
+ items:
14375
+ type: string
14376
+ warning:
14377
+ type: string
14378
+ required:
14379
+ - success
14380
+ - hasBotToken
14381
+ - connected
14382
+ - hasWebhookSecret
14383
+ additionalProperties: false
14384
+ get:
14385
+ operationId: integrations_telegram_config_get
14386
+ summary: Get Telegram config
13682
14387
  description: Check current Telegram bot configuration status.
13683
14388
  tags:
13684
14389
  - integrations
13685
14390
  responses:
13686
14391
  "200":
13687
14392
  description: Successful response
14393
+ content:
14394
+ application/json:
14395
+ schema:
14396
+ type: object
14397
+ properties:
14398
+ success:
14399
+ type: boolean
14400
+ hasBotToken:
14401
+ type: boolean
14402
+ botId:
14403
+ type: string
14404
+ botUsername:
14405
+ type: string
14406
+ connected:
14407
+ type: boolean
14408
+ hasWebhookSecret:
14409
+ type: boolean
14410
+ lastError:
14411
+ type: string
14412
+ error:
14413
+ type: string
14414
+ commandsRegistered:
14415
+ type: array
14416
+ items:
14417
+ type: string
14418
+ warning:
14419
+ type: string
14420
+ required:
14421
+ - success
14422
+ - hasBotToken
14423
+ - connected
14424
+ - hasWebhookSecret
14425
+ additionalProperties: false
13688
14426
  post:
13689
14427
  operationId: integrations_telegram_config_post
13690
14428
  summary: Set Telegram config
@@ -13694,6 +14432,39 @@ paths:
13694
14432
  responses:
13695
14433
  "200":
13696
14434
  description: Successful response
14435
+ content:
14436
+ application/json:
14437
+ schema:
14438
+ type: object
14439
+ properties:
14440
+ success:
14441
+ type: boolean
14442
+ hasBotToken:
14443
+ type: boolean
14444
+ botId:
14445
+ type: string
14446
+ botUsername:
14447
+ type: string
14448
+ connected:
14449
+ type: boolean
14450
+ hasWebhookSecret:
14451
+ type: boolean
14452
+ lastError:
14453
+ type: string
14454
+ error:
14455
+ type: string
14456
+ commandsRegistered:
14457
+ type: array
14458
+ items:
14459
+ type: string
14460
+ warning:
14461
+ type: string
14462
+ required:
14463
+ - success
14464
+ - hasBotToken
14465
+ - connected
14466
+ - hasWebhookSecret
14467
+ additionalProperties: false
13697
14468
  requestBody:
13698
14469
  required: true
13699
14470
  content:
@@ -13717,6 +14488,39 @@ paths:
13717
14488
  responses:
13718
14489
  "200":
13719
14490
  description: Successful response
14491
+ content:
14492
+ application/json:
14493
+ schema:
14494
+ type: object
14495
+ properties:
14496
+ success:
14497
+ type: boolean
14498
+ hasBotToken:
14499
+ type: boolean
14500
+ botId:
14501
+ type: string
14502
+ botUsername:
14503
+ type: string
14504
+ connected:
14505
+ type: boolean
14506
+ hasWebhookSecret:
14507
+ type: boolean
14508
+ lastError:
14509
+ type: string
14510
+ error:
14511
+ type: string
14512
+ commandsRegistered:
14513
+ type: array
14514
+ items:
14515
+ type: string
14516
+ warning:
14517
+ type: string
14518
+ required:
14519
+ - success
14520
+ - hasBotToken
14521
+ - connected
14522
+ - hasWebhookSecret
14523
+ additionalProperties: false
13720
14524
  /v1/integrations/twilio/config:
13721
14525
  get:
13722
14526
  operationId: integrations_twilio_config_get
@@ -13727,6 +14531,23 @@ paths:
13727
14531
  responses:
13728
14532
  "200":
13729
14533
  description: Successful response
14534
+ content:
14535
+ application/json:
14536
+ schema:
14537
+ type: object
14538
+ properties:
14539
+ success:
14540
+ type: boolean
14541
+ hasCredentials:
14542
+ type: boolean
14543
+ accountSid:
14544
+ type: string
14545
+ phoneNumber:
14546
+ type: string
14547
+ required:
14548
+ - success
14549
+ - hasCredentials
14550
+ additionalProperties: false
13730
14551
  /v1/integrations/twilio/credentials:
13731
14552
  delete:
13732
14553
  operationId: integrations_twilio_credentials_delete
@@ -13737,6 +14558,19 @@ paths:
13737
14558
  responses:
13738
14559
  "200":
13739
14560
  description: Successful response
14561
+ content:
14562
+ application/json:
14563
+ schema:
14564
+ type: object
14565
+ properties:
14566
+ success:
14567
+ type: boolean
14568
+ hasCredentials:
14569
+ type: boolean
14570
+ required:
14571
+ - success
14572
+ - hasCredentials
14573
+ additionalProperties: false
13740
14574
  post:
13741
14575
  operationId: integrations_twilio_credentials_post
13742
14576
  summary: Set Twilio credentials
@@ -13746,6 +14580,19 @@ paths:
13746
14580
  responses:
13747
14581
  "200":
13748
14582
  description: Successful response
14583
+ content:
14584
+ application/json:
14585
+ schema:
14586
+ type: object
14587
+ properties:
14588
+ success:
14589
+ type: boolean
14590
+ hasCredentials:
14591
+ type: boolean
14592
+ required:
14593
+ - success
14594
+ - hasCredentials
14595
+ additionalProperties: false
13749
14596
  requestBody:
13750
14597
  required: true
13751
14598
  content:
@@ -13773,6 +14620,42 @@ paths:
13773
14620
  responses:
13774
14621
  "200":
13775
14622
  description: Successful response
14623
+ content:
14624
+ application/json:
14625
+ schema:
14626
+ type: object
14627
+ properties:
14628
+ success:
14629
+ type: boolean
14630
+ hasCredentials:
14631
+ type: boolean
14632
+ numbers:
14633
+ type: array
14634
+ items:
14635
+ type: object
14636
+ properties:
14637
+ phoneNumber:
14638
+ type: string
14639
+ friendlyName:
14640
+ type: string
14641
+ capabilities:
14642
+ type: object
14643
+ properties:
14644
+ voice:
14645
+ type: boolean
14646
+ required:
14647
+ - voice
14648
+ additionalProperties: false
14649
+ required:
14650
+ - phoneNumber
14651
+ - friendlyName
14652
+ - capabilities
14653
+ additionalProperties: false
14654
+ required:
14655
+ - success
14656
+ - hasCredentials
14657
+ - numbers
14658
+ additionalProperties: false
13776
14659
  /v1/integrations/twilio/numbers/assign:
13777
14660
  post:
13778
14661
  operationId: integrations_twilio_numbers_assign_post
@@ -13783,6 +14666,23 @@ paths:
13783
14666
  responses:
13784
14667
  "200":
13785
14668
  description: Successful response
14669
+ content:
14670
+ application/json:
14671
+ schema:
14672
+ type: object
14673
+ properties:
14674
+ success:
14675
+ type: boolean
14676
+ hasCredentials:
14677
+ type: boolean
14678
+ phoneNumber:
14679
+ type: string
14680
+ warning:
14681
+ type: string
14682
+ required:
14683
+ - success
14684
+ - hasCredentials
14685
+ additionalProperties: false
13786
14686
  /v1/integrations/twilio/numbers/provision:
13787
14687
  post:
13788
14688
  operationId: integrations_twilio_numbers_provision_post
@@ -13793,6 +14693,23 @@ paths:
13793
14693
  responses:
13794
14694
  "200":
13795
14695
  description: Successful response
14696
+ content:
14697
+ application/json:
14698
+ schema:
14699
+ type: object
14700
+ properties:
14701
+ success:
14702
+ type: boolean
14703
+ hasCredentials:
14704
+ type: boolean
14705
+ phoneNumber:
14706
+ type: string
14707
+ warning:
14708
+ type: string
14709
+ required:
14710
+ - success
14711
+ - hasCredentials
14712
+ additionalProperties: false
13796
14713
  /v1/integrations/twilio/numbers/release:
13797
14714
  post:
13798
14715
  operationId: integrations_twilio_numbers_release_post
@@ -13803,6 +14720,23 @@ paths:
13803
14720
  responses:
13804
14721
  "200":
13805
14722
  description: Successful response
14723
+ content:
14724
+ application/json:
14725
+ schema:
14726
+ type: object
14727
+ properties:
14728
+ success:
14729
+ type: boolean
14730
+ hasCredentials:
14731
+ type: boolean
14732
+ phoneNumber:
14733
+ type: string
14734
+ warning:
14735
+ type: string
14736
+ required:
14737
+ - success
14738
+ - hasCredentials
14739
+ additionalProperties: false
13806
14740
  /v1/integrations/vercel/config:
13807
14741
  delete:
13808
14742
  operationId: integrations_vercel_config_delete
@@ -14093,6 +15027,86 @@ paths:
14093
15027
  required: true
14094
15028
  schema:
14095
15029
  type: string
15030
+ /v1/internal/telemetry/auth-fallback:
15031
+ post:
15032
+ operationId: internal_telemetry_authfallback_post
15033
+ summary: Record auth-fallback counts
15034
+ description:
15035
+ Receives aggregated legacy-loopback auth-fallback counts forwarded by the gateway and persists them for
15036
+ telemetry reporting.
15037
+ tags:
15038
+ - internal
15039
+ - telemetry
15040
+ responses:
15041
+ "200":
15042
+ description: Successful response
15043
+ content:
15044
+ application/json:
15045
+ schema:
15046
+ anyOf:
15047
+ - type: object
15048
+ properties:
15049
+ recorded:
15050
+ type: integer
15051
+ minimum: 0
15052
+ maximum: 9007199254740991
15053
+ required:
15054
+ - recorded
15055
+ additionalProperties: false
15056
+ - type: object
15057
+ properties:
15058
+ skipped:
15059
+ type: boolean
15060
+ const: true
15061
+ description: Counts dropped because usage data collection is disabled
15062
+ required:
15063
+ - skipped
15064
+ additionalProperties: false
15065
+ requestBody:
15066
+ required: true
15067
+ content:
15068
+ application/json:
15069
+ schema:
15070
+ type: object
15071
+ properties:
15072
+ window_start:
15073
+ type: integer
15074
+ minimum: 0
15075
+ maximum: 9007199254740991
15076
+ window_end:
15077
+ type: integer
15078
+ minimum: 0
15079
+ maximum: 9007199254740991
15080
+ counts:
15081
+ minItems: 1
15082
+ type: array
15083
+ items:
15084
+ type: object
15085
+ properties:
15086
+ guard:
15087
+ type: string
15088
+ minLength: 1
15089
+ path:
15090
+ type: string
15091
+ minLength: 1
15092
+ failure_kind:
15093
+ type: string
15094
+ minLength: 1
15095
+ count:
15096
+ type: integer
15097
+ exclusiveMinimum: 0
15098
+ maximum: 9007199254740991
15099
+ required:
15100
+ - guard
15101
+ - path
15102
+ - failure_kind
15103
+ - count
15104
+ additionalProperties: false
15105
+ required:
15106
+ - window_start
15107
+ - window_end
15108
+ - counts
15109
+ additionalProperties: false
14096
15110
  /v1/internal/twilio/connect-action:
14097
15111
  post:
14098
15112
  operationId: internal_twilio_connectaction_post
@@ -14163,6 +15177,11 @@ paths:
14163
15177
  responses:
14164
15178
  "200":
14165
15179
  description: Successful response
15180
+ content:
15181
+ application/gzip:
15182
+ schema:
15183
+ type: string
15184
+ format: binary
14166
15185
  "500":
14167
15186
  description: Failed to create archive
14168
15187
  requestBody:
@@ -14559,7 +15578,34 @@ paths:
14559
15578
  responses:
14560
15579
  "200":
14561
15580
  description: Successful response
14562
- requestBody:
15581
+ content:
15582
+ application/json:
15583
+ schema:
15584
+ type: object
15585
+ properties:
15586
+ pages:
15587
+ type: array
15588
+ items:
15589
+ type: object
15590
+ properties:
15591
+ slug:
15592
+ type: string
15593
+ bodyBytes:
15594
+ type: number
15595
+ edgeCount:
15596
+ type: number
15597
+ updatedAtMs:
15598
+ type: number
15599
+ required:
15600
+ - slug
15601
+ - bodyBytes
15602
+ - edgeCount
15603
+ - updatedAtMs
15604
+ additionalProperties: false
15605
+ required:
15606
+ - pages
15607
+ additionalProperties: false
15608
+ requestBody:
14563
15609
  required: true
14564
15610
  content:
14565
15611
  application/json:
@@ -14810,6 +15856,37 @@ paths:
14810
15856
  responses:
14811
15857
  "200":
14812
15858
  description: Successful response
15859
+ content:
15860
+ application/json:
15861
+ schema:
15862
+ type: object
15863
+ properties:
15864
+ rendered:
15865
+ type: string
15866
+ counts:
15867
+ type: object
15868
+ properties:
15869
+ unassigned:
15870
+ type: number
15871
+ danglingRefs:
15872
+ type: number
15873
+ novelClusters:
15874
+ type: number
15875
+ oversizedLeaves:
15876
+ type: number
15877
+ tinyLeaves:
15878
+ type: number
15879
+ required:
15880
+ - unassigned
15881
+ - danglingRefs
15882
+ - novelClusters
15883
+ - oversizedLeaves
15884
+ - tinyLeaves
15885
+ additionalProperties: false
15886
+ required:
15887
+ - rendered
15888
+ - counts
15889
+ additionalProperties: false
14813
15890
  /v1/memory/v3/rebuild-index:
14814
15891
  post:
14815
15892
  operationId: memory_v3_rebuildindex_post
@@ -14819,6 +15896,17 @@ paths:
14819
15896
  responses:
14820
15897
  "200":
14821
15898
  description: Successful response
15899
+ content:
15900
+ application/json:
15901
+ schema:
15902
+ type: object
15903
+ properties:
15904
+ ok:
15905
+ type: boolean
15906
+ const: true
15907
+ required:
15908
+ - ok
15909
+ additionalProperties: false
14822
15910
  /v1/memory/v3/reconcile:
14823
15911
  post:
14824
15912
  operationId: memory_v3_reconcile_post
@@ -14828,6 +15916,39 @@ paths:
14828
15916
  responses:
14829
15917
  "200":
14830
15918
  description: Successful response
15919
+ content:
15920
+ application/json:
15921
+ schema:
15922
+ type: object
15923
+ properties:
15924
+ renames:
15925
+ type: array
15926
+ items:
15927
+ type: object
15928
+ properties:
15929
+ id:
15930
+ type: string
15931
+ oldPath:
15932
+ type: string
15933
+ newPath:
15934
+ type: string
15935
+ required:
15936
+ - oldPath
15937
+ - newPath
15938
+ additionalProperties: false
15939
+ deleted:
15940
+ type: array
15941
+ items:
15942
+ type: string
15943
+ prunedCore:
15944
+ type: array
15945
+ items:
15946
+ type: string
15947
+ required:
15948
+ - renames
15949
+ - deleted
15950
+ - prunedCore
15951
+ additionalProperties: false
14831
15952
  /v1/memory/v3/set-core:
14832
15953
  post:
14833
15954
  operationId: memory_v3_setcore_post
@@ -14837,6 +15958,42 @@ paths:
14837
15958
  responses:
14838
15959
  "200":
14839
15960
  description: Successful response
15961
+ content:
15962
+ application/json:
15963
+ schema:
15964
+ type: object
15965
+ properties:
15966
+ nextCore:
15967
+ type: array
15968
+ items:
15969
+ type: string
15970
+ alwaysOnPageCount:
15971
+ type: number
15972
+ written:
15973
+ type: boolean
15974
+ required:
15975
+ - nextCore
15976
+ - alwaysOnPageCount
15977
+ - written
15978
+ additionalProperties: false
15979
+ requestBody:
15980
+ required: true
15981
+ content:
15982
+ application/json:
15983
+ schema:
15984
+ type: object
15985
+ properties:
15986
+ add:
15987
+ type: array
15988
+ items:
15989
+ type: string
15990
+ remove:
15991
+ type: array
15992
+ items:
15993
+ type: string
15994
+ write:
15995
+ type: boolean
15996
+ additionalProperties: false
14840
15997
  /v1/messages:
14841
15998
  get:
14842
15999
  operationId: messages_get
@@ -14854,7 +16011,851 @@ paths:
14854
16011
  properties:
14855
16012
  messages:
14856
16013
  type: array
14857
- items: {}
16014
+ items:
16015
+ type: object
16016
+ properties:
16017
+ id:
16018
+ type: string
16019
+ mergedMessageIds:
16020
+ type: array
16021
+ items:
16022
+ type: string
16023
+ role:
16024
+ type: string
16025
+ content:
16026
+ type: string
16027
+ timestamp:
16028
+ type: string
16029
+ attachments:
16030
+ type: array
16031
+ items:
16032
+ type: object
16033
+ properties:
16034
+ id:
16035
+ type: string
16036
+ filename:
16037
+ type: string
16038
+ mimeType:
16039
+ type: string
16040
+ sizeBytes:
16041
+ type: number
16042
+ kind:
16043
+ type: string
16044
+ data:
16045
+ type: string
16046
+ thumbnailData:
16047
+ type: string
16048
+ fileBacked:
16049
+ type: boolean
16050
+ required:
16051
+ - id
16052
+ - filename
16053
+ - mimeType
16054
+ - sizeBytes
16055
+ - kind
16056
+ additionalProperties: false
16057
+ toolCalls:
16058
+ type: array
16059
+ items:
16060
+ type: object
16061
+ properties:
16062
+ id:
16063
+ type: string
16064
+ name:
16065
+ type: string
16066
+ input:
16067
+ type: object
16068
+ propertyNames:
16069
+ type: string
16070
+ additionalProperties: {}
16071
+ result:
16072
+ type: string
16073
+ isError:
16074
+ type: boolean
16075
+ imageData:
16076
+ type: string
16077
+ imageDataList:
16078
+ type: array
16079
+ items:
16080
+ type: string
16081
+ startedAt:
16082
+ type: number
16083
+ completedAt:
16084
+ type: number
16085
+ confirmationDecision:
16086
+ type: string
16087
+ enum:
16088
+ - approved
16089
+ - denied
16090
+ - timed_out
16091
+ confirmationLabel:
16092
+ type: string
16093
+ riskLevel:
16094
+ type: string
16095
+ riskReason:
16096
+ type: string
16097
+ matchedTrustRuleId:
16098
+ type: string
16099
+ autoApproved:
16100
+ type: boolean
16101
+ approvalMode:
16102
+ type: string
16103
+ approvalReason:
16104
+ type: string
16105
+ riskThreshold:
16106
+ type: string
16107
+ riskScopeOptions:
16108
+ type: array
16109
+ items:
16110
+ type: object
16111
+ properties:
16112
+ pattern:
16113
+ type: string
16114
+ label:
16115
+ type: string
16116
+ required:
16117
+ - pattern
16118
+ - label
16119
+ additionalProperties: false
16120
+ riskAllowlistOptions:
16121
+ type: array
16122
+ items:
16123
+ type: object
16124
+ properties:
16125
+ label:
16126
+ type: string
16127
+ description:
16128
+ type: string
16129
+ pattern:
16130
+ type: string
16131
+ required:
16132
+ - label
16133
+ - description
16134
+ - pattern
16135
+ additionalProperties: false
16136
+ riskDirectoryScopeOptions:
16137
+ type: array
16138
+ items:
16139
+ type: object
16140
+ properties:
16141
+ scope:
16142
+ type: string
16143
+ label:
16144
+ type: string
16145
+ required:
16146
+ - scope
16147
+ - label
16148
+ additionalProperties: false
16149
+ activityMetadata:
16150
+ type: object
16151
+ properties:
16152
+ webSearch:
16153
+ type: object
16154
+ properties:
16155
+ query:
16156
+ type: string
16157
+ provider:
16158
+ type: string
16159
+ enum:
16160
+ - anthropic-native
16161
+ - brave
16162
+ - perplexity
16163
+ - tavily
16164
+ resultCount:
16165
+ type: number
16166
+ durationMs:
16167
+ type: number
16168
+ results:
16169
+ type: array
16170
+ items:
16171
+ type: object
16172
+ properties:
16173
+ rank:
16174
+ type: number
16175
+ title:
16176
+ type: string
16177
+ url:
16178
+ type: string
16179
+ domain:
16180
+ type: string
16181
+ faviconUrl:
16182
+ type: string
16183
+ snippet:
16184
+ type: string
16185
+ age:
16186
+ type: string
16187
+ score:
16188
+ type: number
16189
+ required:
16190
+ - rank
16191
+ - title
16192
+ - url
16193
+ - domain
16194
+ additionalProperties: false
16195
+ errorMessage:
16196
+ type: string
16197
+ required:
16198
+ - query
16199
+ - provider
16200
+ - resultCount
16201
+ - durationMs
16202
+ - results
16203
+ additionalProperties: false
16204
+ webFetch:
16205
+ type: object
16206
+ properties:
16207
+ url:
16208
+ type: string
16209
+ finalUrl:
16210
+ type: string
16211
+ status:
16212
+ type: number
16213
+ contentType:
16214
+ type: string
16215
+ byteCount:
16216
+ type: number
16217
+ charCount:
16218
+ type: number
16219
+ truncated:
16220
+ type: boolean
16221
+ title:
16222
+ type: string
16223
+ domain:
16224
+ type: string
16225
+ faviconUrl:
16226
+ type: string
16227
+ redirectCount:
16228
+ type: number
16229
+ durationMs:
16230
+ type: number
16231
+ errorMessage:
16232
+ type: string
16233
+ mayRequireJavaScript:
16234
+ type: boolean
16235
+ required:
16236
+ - url
16237
+ - finalUrl
16238
+ - status
16239
+ - byteCount
16240
+ - charCount
16241
+ - truncated
16242
+ - domain
16243
+ - redirectCount
16244
+ - durationMs
16245
+ additionalProperties: false
16246
+ additionalProperties: false
16247
+ scopeOptions:
16248
+ type: array
16249
+ items:
16250
+ type: object
16251
+ properties:
16252
+ label:
16253
+ type: string
16254
+ scope:
16255
+ type: string
16256
+ required:
16257
+ - label
16258
+ - scope
16259
+ additionalProperties: false
16260
+ pendingConfirmation:
16261
+ type: object
16262
+ properties:
16263
+ requestId:
16264
+ type: string
16265
+ title:
16266
+ type: string
16267
+ description:
16268
+ type: string
16269
+ toolName:
16270
+ type: string
16271
+ riskLevel:
16272
+ type: string
16273
+ riskReason:
16274
+ type: string
16275
+ input:
16276
+ type: object
16277
+ propertyNames:
16278
+ type: string
16279
+ additionalProperties: {}
16280
+ allowlistOptions:
16281
+ type: array
16282
+ items:
16283
+ type: object
16284
+ properties:
16285
+ label:
16286
+ type: string
16287
+ description:
16288
+ type: string
16289
+ pattern:
16290
+ type: string
16291
+ required:
16292
+ - label
16293
+ - description
16294
+ - pattern
16295
+ additionalProperties: false
16296
+ scopeOptions:
16297
+ type: array
16298
+ items:
16299
+ type: object
16300
+ properties:
16301
+ label:
16302
+ type: string
16303
+ scope:
16304
+ type: string
16305
+ required:
16306
+ - label
16307
+ - scope
16308
+ additionalProperties: false
16309
+ directoryScopeOptions:
16310
+ type: array
16311
+ items:
16312
+ type: object
16313
+ properties:
16314
+ label:
16315
+ type: string
16316
+ scope:
16317
+ type: string
16318
+ required:
16319
+ - label
16320
+ - scope
16321
+ additionalProperties: false
16322
+ persistentDecisionsAllowed:
16323
+ type: boolean
16324
+ required:
16325
+ - requestId
16326
+ additionalProperties: false
16327
+ required:
16328
+ - name
16329
+ - input
16330
+ additionalProperties: false
16331
+ surfaces:
16332
+ type: array
16333
+ items:
16334
+ type: object
16335
+ properties:
16336
+ surfaceId:
16337
+ type: string
16338
+ surfaceType:
16339
+ type: string
16340
+ title:
16341
+ type: string
16342
+ data:
16343
+ type: object
16344
+ propertyNames:
16345
+ type: string
16346
+ additionalProperties: {}
16347
+ actions:
16348
+ type: array
16349
+ items:
16350
+ type: object
16351
+ properties:
16352
+ id:
16353
+ type: string
16354
+ label:
16355
+ type: string
16356
+ style:
16357
+ type: string
16358
+ data:
16359
+ type: object
16360
+ propertyNames:
16361
+ type: string
16362
+ additionalProperties: {}
16363
+ required:
16364
+ - id
16365
+ - label
16366
+ additionalProperties: false
16367
+ display:
16368
+ type: string
16369
+ persistent:
16370
+ type: boolean
16371
+ completed:
16372
+ type: boolean
16373
+ completionSummary:
16374
+ type: string
16375
+ toolCallId:
16376
+ type: string
16377
+ required:
16378
+ - surfaceId
16379
+ - surfaceType
16380
+ - data
16381
+ additionalProperties: false
16382
+ textSegments:
16383
+ type: array
16384
+ items:
16385
+ type: string
16386
+ thinkingSegments:
16387
+ type: array
16388
+ items:
16389
+ type: string
16390
+ contentOrder:
16391
+ type: array
16392
+ items:
16393
+ type: string
16394
+ contentBlocks:
16395
+ type: array
16396
+ items:
16397
+ oneOf:
16398
+ - type: object
16399
+ properties:
16400
+ type:
16401
+ type: string
16402
+ const: text
16403
+ text:
16404
+ type: string
16405
+ required:
16406
+ - type
16407
+ - text
16408
+ additionalProperties: false
16409
+ - type: object
16410
+ properties:
16411
+ type:
16412
+ type: string
16413
+ const: thinking
16414
+ thinking:
16415
+ type: string
16416
+ required:
16417
+ - type
16418
+ - thinking
16419
+ additionalProperties: false
16420
+ - type: object
16421
+ properties:
16422
+ type:
16423
+ type: string
16424
+ const: tool_use
16425
+ toolCall:
16426
+ type: object
16427
+ properties:
16428
+ id:
16429
+ type: string
16430
+ name:
16431
+ type: string
16432
+ input:
16433
+ type: object
16434
+ propertyNames:
16435
+ type: string
16436
+ additionalProperties: {}
16437
+ result:
16438
+ type: string
16439
+ isError:
16440
+ type: boolean
16441
+ imageData:
16442
+ type: string
16443
+ imageDataList:
16444
+ type: array
16445
+ items:
16446
+ type: string
16447
+ startedAt:
16448
+ type: number
16449
+ completedAt:
16450
+ type: number
16451
+ confirmationDecision:
16452
+ type: string
16453
+ enum:
16454
+ - approved
16455
+ - denied
16456
+ - timed_out
16457
+ confirmationLabel:
16458
+ type: string
16459
+ riskLevel:
16460
+ type: string
16461
+ riskReason:
16462
+ type: string
16463
+ matchedTrustRuleId:
16464
+ type: string
16465
+ autoApproved:
16466
+ type: boolean
16467
+ approvalMode:
16468
+ type: string
16469
+ approvalReason:
16470
+ type: string
16471
+ riskThreshold:
16472
+ type: string
16473
+ riskScopeOptions:
16474
+ type: array
16475
+ items:
16476
+ type: object
16477
+ properties:
16478
+ pattern:
16479
+ type: string
16480
+ label:
16481
+ type: string
16482
+ required:
16483
+ - pattern
16484
+ - label
16485
+ additionalProperties: false
16486
+ riskAllowlistOptions:
16487
+ type: array
16488
+ items:
16489
+ type: object
16490
+ properties:
16491
+ label:
16492
+ type: string
16493
+ description:
16494
+ type: string
16495
+ pattern:
16496
+ type: string
16497
+ required:
16498
+ - label
16499
+ - description
16500
+ - pattern
16501
+ additionalProperties: false
16502
+ riskDirectoryScopeOptions:
16503
+ type: array
16504
+ items:
16505
+ type: object
16506
+ properties:
16507
+ scope:
16508
+ type: string
16509
+ label:
16510
+ type: string
16511
+ required:
16512
+ - scope
16513
+ - label
16514
+ additionalProperties: false
16515
+ activityMetadata:
16516
+ type: object
16517
+ properties:
16518
+ webSearch:
16519
+ type: object
16520
+ properties:
16521
+ query:
16522
+ type: string
16523
+ provider:
16524
+ type: string
16525
+ enum:
16526
+ - anthropic-native
16527
+ - brave
16528
+ - perplexity
16529
+ - tavily
16530
+ resultCount:
16531
+ type: number
16532
+ durationMs:
16533
+ type: number
16534
+ results:
16535
+ type: array
16536
+ items:
16537
+ type: object
16538
+ properties:
16539
+ rank:
16540
+ type: number
16541
+ title:
16542
+ type: string
16543
+ url:
16544
+ type: string
16545
+ domain:
16546
+ type: string
16547
+ faviconUrl:
16548
+ type: string
16549
+ snippet:
16550
+ type: string
16551
+ age:
16552
+ type: string
16553
+ score:
16554
+ type: number
16555
+ required:
16556
+ - rank
16557
+ - title
16558
+ - url
16559
+ - domain
16560
+ additionalProperties: false
16561
+ errorMessage:
16562
+ type: string
16563
+ required:
16564
+ - query
16565
+ - provider
16566
+ - resultCount
16567
+ - durationMs
16568
+ - results
16569
+ additionalProperties: false
16570
+ webFetch:
16571
+ type: object
16572
+ properties:
16573
+ url:
16574
+ type: string
16575
+ finalUrl:
16576
+ type: string
16577
+ status:
16578
+ type: number
16579
+ contentType:
16580
+ type: string
16581
+ byteCount:
16582
+ type: number
16583
+ charCount:
16584
+ type: number
16585
+ truncated:
16586
+ type: boolean
16587
+ title:
16588
+ type: string
16589
+ domain:
16590
+ type: string
16591
+ faviconUrl:
16592
+ type: string
16593
+ redirectCount:
16594
+ type: number
16595
+ durationMs:
16596
+ type: number
16597
+ errorMessage:
16598
+ type: string
16599
+ mayRequireJavaScript:
16600
+ type: boolean
16601
+ required:
16602
+ - url
16603
+ - finalUrl
16604
+ - status
16605
+ - byteCount
16606
+ - charCount
16607
+ - truncated
16608
+ - domain
16609
+ - redirectCount
16610
+ - durationMs
16611
+ additionalProperties: false
16612
+ additionalProperties: false
16613
+ scopeOptions:
16614
+ type: array
16615
+ items:
16616
+ type: object
16617
+ properties:
16618
+ label:
16619
+ type: string
16620
+ scope:
16621
+ type: string
16622
+ required:
16623
+ - label
16624
+ - scope
16625
+ additionalProperties: false
16626
+ pendingConfirmation:
16627
+ type: object
16628
+ properties:
16629
+ requestId:
16630
+ type: string
16631
+ title:
16632
+ type: string
16633
+ description:
16634
+ type: string
16635
+ toolName:
16636
+ type: string
16637
+ riskLevel:
16638
+ type: string
16639
+ riskReason:
16640
+ type: string
16641
+ input:
16642
+ type: object
16643
+ propertyNames:
16644
+ type: string
16645
+ additionalProperties: {}
16646
+ allowlistOptions:
16647
+ type: array
16648
+ items:
16649
+ type: object
16650
+ properties:
16651
+ label:
16652
+ type: string
16653
+ description:
16654
+ type: string
16655
+ pattern:
16656
+ type: string
16657
+ required:
16658
+ - label
16659
+ - description
16660
+ - pattern
16661
+ additionalProperties: false
16662
+ scopeOptions:
16663
+ type: array
16664
+ items:
16665
+ type: object
16666
+ properties:
16667
+ label:
16668
+ type: string
16669
+ scope:
16670
+ type: string
16671
+ required:
16672
+ - label
16673
+ - scope
16674
+ additionalProperties: false
16675
+ directoryScopeOptions:
16676
+ type: array
16677
+ items:
16678
+ type: object
16679
+ properties:
16680
+ label:
16681
+ type: string
16682
+ scope:
16683
+ type: string
16684
+ required:
16685
+ - label
16686
+ - scope
16687
+ additionalProperties: false
16688
+ persistentDecisionsAllowed:
16689
+ type: boolean
16690
+ required:
16691
+ - requestId
16692
+ additionalProperties: false
16693
+ required:
16694
+ - name
16695
+ - input
16696
+ additionalProperties: false
16697
+ required:
16698
+ - type
16699
+ - toolCall
16700
+ additionalProperties: false
16701
+ - type: object
16702
+ properties:
16703
+ type:
16704
+ type: string
16705
+ const: surface
16706
+ surface:
16707
+ type: object
16708
+ properties:
16709
+ surfaceId:
16710
+ type: string
16711
+ surfaceType:
16712
+ type: string
16713
+ title:
16714
+ type: string
16715
+ data:
16716
+ type: object
16717
+ propertyNames:
16718
+ type: string
16719
+ additionalProperties: {}
16720
+ actions:
16721
+ type: array
16722
+ items:
16723
+ type: object
16724
+ properties:
16725
+ id:
16726
+ type: string
16727
+ label:
16728
+ type: string
16729
+ style:
16730
+ type: string
16731
+ data:
16732
+ type: object
16733
+ propertyNames:
16734
+ type: string
16735
+ additionalProperties: {}
16736
+ required:
16737
+ - id
16738
+ - label
16739
+ additionalProperties: false
16740
+ display:
16741
+ type: string
16742
+ persistent:
16743
+ type: boolean
16744
+ completed:
16745
+ type: boolean
16746
+ completionSummary:
16747
+ type: string
16748
+ toolCallId:
16749
+ type: string
16750
+ required:
16751
+ - surfaceId
16752
+ - surfaceType
16753
+ - data
16754
+ additionalProperties: false
16755
+ required:
16756
+ - type
16757
+ - surface
16758
+ additionalProperties: false
16759
+ - type: object
16760
+ properties:
16761
+ type:
16762
+ type: string
16763
+ const: attachment
16764
+ attachment:
16765
+ type: object
16766
+ properties:
16767
+ id:
16768
+ type: string
16769
+ filename:
16770
+ type: string
16771
+ mimeType:
16772
+ type: string
16773
+ sizeBytes:
16774
+ type: number
16775
+ kind:
16776
+ type: string
16777
+ data:
16778
+ type: string
16779
+ thumbnailData:
16780
+ type: string
16781
+ fileBacked:
16782
+ type: boolean
16783
+ required:
16784
+ - id
16785
+ - filename
16786
+ - mimeType
16787
+ - sizeBytes
16788
+ - kind
16789
+ additionalProperties: false
16790
+ required:
16791
+ - type
16792
+ - attachment
16793
+ additionalProperties: false
16794
+ subagentNotification:
16795
+ type: object
16796
+ properties:
16797
+ subagentId:
16798
+ type: string
16799
+ label:
16800
+ type: string
16801
+ status:
16802
+ type: string
16803
+ error:
16804
+ type: string
16805
+ conversationId:
16806
+ type: string
16807
+ objective:
16808
+ type: string
16809
+ required:
16810
+ - subagentId
16811
+ - label
16812
+ - status
16813
+ additionalProperties: false
16814
+ slackMessage:
16815
+ type: object
16816
+ properties:
16817
+ channelId:
16818
+ type: string
16819
+ channelName:
16820
+ type: string
16821
+ channelTs:
16822
+ type: string
16823
+ threadTs:
16824
+ type: string
16825
+ sender:
16826
+ type: object
16827
+ properties:
16828
+ displayName:
16829
+ type: string
16830
+ externalUserId:
16831
+ type: string
16832
+ additionalProperties: false
16833
+ messageLink:
16834
+ type: object
16835
+ properties:
16836
+ appUrl:
16837
+ type: string
16838
+ webUrl:
16839
+ type: string
16840
+ additionalProperties: false
16841
+ threadLink:
16842
+ type: object
16843
+ properties:
16844
+ appUrl:
16845
+ type: string
16846
+ webUrl:
16847
+ type: string
16848
+ additionalProperties: false
16849
+ required:
16850
+ - channelId
16851
+ - channelTs
16852
+ additionalProperties: false
16853
+ required:
16854
+ - id
16855
+ - role
16856
+ - timestamp
16857
+ - attachments
16858
+ additionalProperties: false
14858
16859
  description: Array of message objects
14859
16860
  hasMore:
14860
16861
  description: Whether older messages exist beyond this page
@@ -14871,9 +16872,50 @@ paths:
14871
16872
  anyOf:
14872
16873
  - type: string
14873
16874
  - type: "null"
16875
+ seq:
16876
+ description:
16877
+ Global SSE `seq` of the last event whose content is durably persisted for this conversation in the current
16878
+ daemon process. A client can align this snapshot with the `/events` stream by applying only events
16879
+ with `seq` greater than this value. Null when no events have been persisted in this process (cold
16880
+ conversation, after a daemon restart, or when the conversation has aged out of the in-memory map)
16881
+ — clients should cold-start in that case. Absent on older daemons that predate this field.
16882
+ anyOf:
16883
+ - type: number
16884
+ - type: "null"
14874
16885
  required:
14875
16886
  - messages
14876
16887
  additionalProperties: false
16888
+ parameters:
16889
+ - name: conversationId
16890
+ in: query
16891
+ required: false
16892
+ schema:
16893
+ type: string
16894
+ description: Conversation UUID. One of conversationId or conversationKey is required.
16895
+ - name: conversationKey
16896
+ in: query
16897
+ required: false
16898
+ schema:
16899
+ type: string
16900
+ description: Channel/external conversation key. One of conversationId or conversationKey is required.
16901
+ - name: page
16902
+ in: query
16903
+ required: false
16904
+ schema:
16905
+ type: string
16906
+ description: When set to 'latest', returns the most recent page of messages with pagination metadata.
16907
+ - name: beforeTimestamp
16908
+ in: query
16909
+ required: false
16910
+ schema:
16911
+ type: integer
16912
+ description: Return messages older than this timestamp (ms since epoch). Used for paging older history.
16913
+ - name: limit
16914
+ in: query
16915
+ required: false
16916
+ schema:
16917
+ type: integer
16918
+ description: Maximum number of messages to return.
14877
16919
  post:
14878
16920
  operationId: messages_post
14879
16921
  summary: Send a message
@@ -14883,6 +16925,24 @@ paths:
14883
16925
  responses:
14884
16926
  "202":
14885
16927
  description: Successful response
16928
+ content:
16929
+ application/json:
16930
+ schema:
16931
+ type: object
16932
+ properties:
16933
+ accepted:
16934
+ type: boolean
16935
+ conversationId:
16936
+ type: string
16937
+ messageId:
16938
+ type: string
16939
+ queued:
16940
+ type: boolean
16941
+ requestId:
16942
+ type: string
16943
+ required:
16944
+ - accepted
16945
+ additionalProperties: false
14886
16946
  requestBody:
14887
16947
  required: true
14888
16948
  content:
@@ -14890,15 +16950,35 @@ paths:
14890
16950
  schema:
14891
16951
  type: object
14892
16952
  properties:
16953
+ conversationId:
16954
+ description:
16955
+ Internal conversation id (0.8.6+ strict lookup). Omit both id and key to mint a new conversation
16956
+ server-side.
16957
+ anyOf:
16958
+ - type: string
16959
+ - type: "null"
14893
16960
  conversationKey:
14894
- type: string
16961
+ anyOf:
16962
+ - type: string
16963
+ - type: "null"
14895
16964
  content:
14896
16965
  type: string
14897
16966
  description: Message text content
14898
16967
  attachments:
14899
16968
  type: array
14900
16969
  items: {}
14901
- description: Optional file attachments
16970
+ description: Optional inline file attachments
16971
+ attachmentIds:
16972
+ type: array
16973
+ items:
16974
+ type: string
16975
+ description: Ids of previously uploaded attachments to attach
16976
+ sourceChannel:
16977
+ type: string
16978
+ description: Originating channel id (e.g. "vellum")
16979
+ interface:
16980
+ type: string
16981
+ description: Originating interface id (e.g. "vellum")
14902
16982
  conversationType:
14903
16983
  type: string
14904
16984
  slashCommand:
@@ -14916,8 +16996,57 @@ paths:
14916
16996
  - low
14917
16997
  - medium
14918
16998
  - high
16999
+ onboarding:
17000
+ type: object
17001
+ properties:
17002
+ tools:
17003
+ type: array
17004
+ items:
17005
+ type: string
17006
+ tasks:
17007
+ type: array
17008
+ items:
17009
+ type: string
17010
+ tone:
17011
+ type: string
17012
+ userName:
17013
+ type: string
17014
+ assistantName:
17015
+ type: string
17016
+ googleConnected:
17017
+ type: boolean
17018
+ googleScopes:
17019
+ type: array
17020
+ items:
17021
+ type: string
17022
+ priorAssistants:
17023
+ type: array
17024
+ items:
17025
+ type: string
17026
+ cohort:
17027
+ type: string
17028
+ websiteUrl:
17029
+ type: string
17030
+ contentSourceUrl:
17031
+ type: string
17032
+ bootstrapTemplate:
17033
+ type: string
17034
+ initialMessage:
17035
+ type: string
17036
+ skills:
17037
+ type: array
17038
+ items:
17039
+ type: string
17040
+ required:
17041
+ - tools
17042
+ - tasks
17043
+ - tone
17044
+ additionalProperties: false
17045
+ description: PreChat onboarding context, sent on the first message only
14919
17046
  required:
14920
17047
  - content
17048
+ - sourceChannel
17049
+ - interface
14921
17050
  additionalProperties: false
14922
17051
  /v1/messages/{id}/content:
14923
17052
  get:
@@ -16119,6 +18248,86 @@ paths:
16119
18248
  responses:
16120
18249
  "200":
16121
18250
  description: Successful response
18251
+ content:
18252
+ application/json:
18253
+ schema:
18254
+ type: object
18255
+ properties:
18256
+ provider:
18257
+ anyOf:
18258
+ - type: object
18259
+ properties:
18260
+ provider_key:
18261
+ type: string
18262
+ display_name:
18263
+ anyOf:
18264
+ - type: string
18265
+ - type: "null"
18266
+ description:
18267
+ anyOf:
18268
+ - type: string
18269
+ - type: "null"
18270
+ dashboard_url:
18271
+ anyOf:
18272
+ - type: string
18273
+ - type: "null"
18274
+ client_id_placeholder:
18275
+ anyOf:
18276
+ - type: string
18277
+ - type: "null"
18278
+ requires_client_secret:
18279
+ type: boolean
18280
+ logo_url:
18281
+ anyOf:
18282
+ - type: string
18283
+ - type: "null"
18284
+ supports_managed_mode:
18285
+ type: boolean
18286
+ managed_service_is_paid:
18287
+ type: boolean
18288
+ feature_flag:
18289
+ anyOf:
18290
+ - type: string
18291
+ - type: "null"
18292
+ required:
18293
+ - provider_key
18294
+ - display_name
18295
+ - description
18296
+ - dashboard_url
18297
+ - client_id_placeholder
18298
+ - requires_client_secret
18299
+ - logo_url
18300
+ - supports_managed_mode
18301
+ - managed_service_is_paid
18302
+ - feature_flag
18303
+ additionalProperties: false
18304
+ - type: "null"
18305
+ apps:
18306
+ type: array
18307
+ items:
18308
+ type: object
18309
+ properties:
18310
+ id:
18311
+ type: string
18312
+ provider_key:
18313
+ type: string
18314
+ client_id:
18315
+ type: string
18316
+ created_at:
18317
+ type: number
18318
+ updated_at:
18319
+ type: number
18320
+ required:
18321
+ - id
18322
+ - provider_key
18323
+ - client_id
18324
+ - created_at
18325
+ - updated_at
18326
+ additionalProperties: false
18327
+ required:
18328
+ - provider
18329
+ - apps
18330
+ additionalProperties: false
16122
18331
  parameters:
16123
18332
  - name: provider_key
16124
18333
  in: query
@@ -16135,6 +18344,52 @@ paths:
16135
18344
  responses:
16136
18345
  "201":
16137
18346
  description: Successful response
18347
+ content:
18348
+ application/json:
18349
+ schema:
18350
+ type: object
18351
+ properties:
18352
+ app:
18353
+ type: object
18354
+ properties:
18355
+ id:
18356
+ type: string
18357
+ provider_key:
18358
+ type: string
18359
+ client_id:
18360
+ type: string
18361
+ created_at:
18362
+ type: number
18363
+ updated_at:
18364
+ type: number
18365
+ required:
18366
+ - id
18367
+ - provider_key
18368
+ - client_id
18369
+ - created_at
18370
+ - updated_at
18371
+ additionalProperties: false
18372
+ required:
18373
+ - app
18374
+ additionalProperties: false
18375
+ requestBody:
18376
+ required: true
18377
+ content:
18378
+ application/json:
18379
+ schema:
18380
+ type: object
18381
+ properties:
18382
+ provider_key:
18383
+ type: string
18384
+ client_id:
18385
+ type: string
18386
+ client_secret:
18387
+ type: string
18388
+ required:
18389
+ - provider_key
18390
+ - client_id
18391
+ - client_secret
18392
+ additionalProperties: false
16138
18393
  /v1/oauth/apps/{appId}/connect:
16139
18394
  post:
16140
18395
  operationId: oauth_apps_by_appId_connect_post
@@ -16145,12 +18400,51 @@ paths:
16145
18400
  responses:
16146
18401
  "200":
16147
18402
  description: Successful response
18403
+ content:
18404
+ application/json:
18405
+ schema:
18406
+ anyOf:
18407
+ - type: object
18408
+ properties:
18409
+ auth_url:
18410
+ type: string
18411
+ state:
18412
+ type: string
18413
+ required:
18414
+ - auth_url
18415
+ - state
18416
+ additionalProperties: false
18417
+ - type: object
18418
+ properties:
18419
+ ok:
18420
+ type: boolean
18421
+ const: true
18422
+ required:
18423
+ - ok
18424
+ additionalProperties: false
16148
18425
  parameters:
16149
18426
  - name: appId
16150
18427
  in: path
16151
18428
  required: true
16152
18429
  schema:
16153
18430
  type: string
18431
+ requestBody:
18432
+ required: true
18433
+ content:
18434
+ application/json:
18435
+ schema:
18436
+ type: object
18437
+ properties:
18438
+ scopes:
18439
+ type: array
18440
+ items:
18441
+ type: string
18442
+ callback_transport:
18443
+ type: string
18444
+ enum:
18445
+ - loopback
18446
+ - gateway
18447
+ additionalProperties: false
16154
18448
  /v1/oauth/apps/{appId}/connections:
16155
18449
  get:
16156
18450
  operationId: oauth_apps_by_appId_connections_get
@@ -16161,6 +18455,54 @@ paths:
16161
18455
  responses:
16162
18456
  "200":
16163
18457
  description: Successful response
18458
+ content:
18459
+ application/json:
18460
+ schema:
18461
+ type: object
18462
+ properties:
18463
+ connections:
18464
+ type: array
18465
+ items:
18466
+ type: object
18467
+ properties:
18468
+ id:
18469
+ type: string
18470
+ provider_key:
18471
+ type: string
18472
+ account_info:
18473
+ anyOf:
18474
+ - type: string
18475
+ - type: "null"
18476
+ granted_scopes:
18477
+ type: array
18478
+ items:
18479
+ type: string
18480
+ status:
18481
+ type: string
18482
+ has_refresh_token:
18483
+ type: boolean
18484
+ expires_at:
18485
+ anyOf:
18486
+ - type: number
18487
+ - type: "null"
18488
+ created_at:
18489
+ type: number
18490
+ updated_at:
18491
+ type: number
18492
+ required:
18493
+ - id
18494
+ - provider_key
18495
+ - account_info
18496
+ - granted_scopes
18497
+ - status
18498
+ - has_refresh_token
18499
+ - expires_at
18500
+ - created_at
18501
+ - updated_at
18502
+ additionalProperties: false
18503
+ required:
18504
+ - connections
18505
+ additionalProperties: false
16164
18506
  parameters:
16165
18507
  - name: appId
16166
18508
  in: path
@@ -16177,6 +18519,16 @@ paths:
16177
18519
  responses:
16178
18520
  "200":
16179
18521
  description: Successful response
18522
+ content:
18523
+ application/json:
18524
+ schema:
18525
+ type: object
18526
+ properties:
18527
+ ok:
18528
+ type: boolean
18529
+ required:
18530
+ - ok
18531
+ additionalProperties: false
16180
18532
  parameters:
16181
18533
  - name: id
16182
18534
  in: path
@@ -16193,6 +18545,34 @@ paths:
16193
18545
  responses:
16194
18546
  "200":
16195
18547
  description: Successful response
18548
+ content:
18549
+ application/json:
18550
+ schema:
18551
+ type: object
18552
+ properties:
18553
+ app:
18554
+ type: object
18555
+ properties:
18556
+ id:
18557
+ type: string
18558
+ provider_key:
18559
+ type: string
18560
+ client_id:
18561
+ type: string
18562
+ created_at:
18563
+ type: number
18564
+ updated_at:
18565
+ type: number
18566
+ required:
18567
+ - id
18568
+ - provider_key
18569
+ - client_id
18570
+ - created_at
18571
+ - updated_at
18572
+ additionalProperties: false
18573
+ required:
18574
+ - app
18575
+ additionalProperties: false
16196
18576
  parameters:
16197
18577
  - name: id
16198
18578
  in: query
@@ -16222,6 +18602,53 @@ paths:
16222
18602
  responses:
16223
18603
  "200":
16224
18604
  description: Successful response
18605
+ content:
18606
+ application/json:
18607
+ schema:
18608
+ type: object
18609
+ properties:
18610
+ app:
18611
+ type: object
18612
+ properties:
18613
+ id:
18614
+ type: string
18615
+ provider_key:
18616
+ type: string
18617
+ client_id:
18618
+ type: string
18619
+ created_at:
18620
+ type: number
18621
+ updated_at:
18622
+ type: number
18623
+ required:
18624
+ - id
18625
+ - provider_key
18626
+ - client_id
18627
+ - created_at
18628
+ - updated_at
18629
+ additionalProperties: false
18630
+ required:
18631
+ - app
18632
+ additionalProperties: false
18633
+ requestBody:
18634
+ required: true
18635
+ content:
18636
+ application/json:
18637
+ schema:
18638
+ type: object
18639
+ properties:
18640
+ provider_key:
18641
+ type: string
18642
+ client_id:
18643
+ type: string
18644
+ client_secret:
18645
+ type: string
18646
+ client_secret_credential_path:
18647
+ type: string
18648
+ required:
18649
+ - provider_key
18650
+ - client_id
18651
+ additionalProperties: false
16225
18652
  /v1/oauth/connection-changed:
16226
18653
  post:
16227
18654
  operationId: oauth_connectionchanged_post
@@ -16252,6 +18679,16 @@ paths:
16252
18679
  responses:
16253
18680
  "200":
16254
18681
  description: Successful response
18682
+ content:
18683
+ application/json:
18684
+ schema:
18685
+ type: object
18686
+ properties:
18687
+ ok:
18688
+ type: boolean
18689
+ required:
18690
+ - ok
18691
+ additionalProperties: false
16255
18692
  parameters:
16256
18693
  - name: id
16257
18694
  in: path
@@ -16341,6 +18778,63 @@ paths:
16341
18778
  responses:
16342
18779
  "200":
16343
18780
  description: Successful response
18781
+ content:
18782
+ application/json:
18783
+ schema:
18784
+ type: object
18785
+ properties:
18786
+ providers:
18787
+ type: array
18788
+ items:
18789
+ type: object
18790
+ properties:
18791
+ provider_key:
18792
+ type: string
18793
+ display_name:
18794
+ anyOf:
18795
+ - type: string
18796
+ - type: "null"
18797
+ description:
18798
+ anyOf:
18799
+ - type: string
18800
+ - type: "null"
18801
+ dashboard_url:
18802
+ anyOf:
18803
+ - type: string
18804
+ - type: "null"
18805
+ client_id_placeholder:
18806
+ anyOf:
18807
+ - type: string
18808
+ - type: "null"
18809
+ requires_client_secret:
18810
+ type: boolean
18811
+ logo_url:
18812
+ anyOf:
18813
+ - type: string
18814
+ - type: "null"
18815
+ supports_managed_mode:
18816
+ type: boolean
18817
+ managed_service_is_paid:
18818
+ type: boolean
18819
+ feature_flag:
18820
+ anyOf:
18821
+ - type: string
18822
+ - type: "null"
18823
+ required:
18824
+ - provider_key
18825
+ - display_name
18826
+ - description
18827
+ - dashboard_url
18828
+ - client_id_placeholder
18829
+ - requires_client_secret
18830
+ - logo_url
18831
+ - supports_managed_mode
18832
+ - managed_service_is_paid
18833
+ - feature_flag
18834
+ additionalProperties: false
18835
+ required:
18836
+ - providers
18837
+ additionalProperties: false
16344
18838
  parameters:
16345
18839
  - name: supports_managed_mode
16346
18840
  in: query
@@ -16382,6 +18876,24 @@ paths:
16382
18876
  responses:
16383
18877
  "200":
16384
18878
  description: Successful response
18879
+ content:
18880
+ application/json:
18881
+ schema:
18882
+ type: object
18883
+ properties:
18884
+ provider:
18885
+ type: object
18886
+ propertyNames:
18887
+ type: string
18888
+ additionalProperties: {}
18889
+ oauth_callback_url:
18890
+ anyOf:
18891
+ - type: string
18892
+ - type: "null"
18893
+ required:
18894
+ - provider
18895
+ - oauth_callback_url
18896
+ additionalProperties: false
16385
18897
  parameters:
16386
18898
  - name: providerKey
16387
18899
  in: path
@@ -16554,6 +19066,41 @@ paths:
16554
19066
  responses:
16555
19067
  "200":
16556
19068
  description: Successful response
19069
+ content:
19070
+ application/json:
19071
+ schema:
19072
+ type: object
19073
+ properties:
19074
+ routes:
19075
+ type: array
19076
+ items:
19077
+ type: object
19078
+ properties:
19079
+ id:
19080
+ type: string
19081
+ assistant_id:
19082
+ type: string
19083
+ type:
19084
+ type: string
19085
+ callback_path:
19086
+ type: string
19087
+ callback_url:
19088
+ type: string
19089
+ source_identifier:
19090
+ anyOf:
19091
+ - type: string
19092
+ - type: "null"
19093
+ required:
19094
+ - id
19095
+ - assistant_id
19096
+ - type
19097
+ - callback_path
19098
+ - callback_url
19099
+ - source_identifier
19100
+ additionalProperties: false
19101
+ required:
19102
+ - routes
19103
+ additionalProperties: false
16557
19104
  /v1/platform/callback-routes/register:
16558
19105
  post:
16559
19106
  operationId: platform_callbackroutes_register_post
@@ -16564,6 +19111,37 @@ paths:
16564
19111
  responses:
16565
19112
  "200":
16566
19113
  description: Successful response
19114
+ content:
19115
+ application/json:
19116
+ schema:
19117
+ type: object
19118
+ properties:
19119
+ callbackUrl:
19120
+ type: string
19121
+ callbackPath:
19122
+ type: string
19123
+ type:
19124
+ type: string
19125
+ required:
19126
+ - callbackUrl
19127
+ - callbackPath
19128
+ - type
19129
+ additionalProperties: false
19130
+ requestBody:
19131
+ required: true
19132
+ content:
19133
+ application/json:
19134
+ schema:
19135
+ type: object
19136
+ properties:
19137
+ path:
19138
+ type: string
19139
+ type:
19140
+ type: string
19141
+ required:
19142
+ - path
19143
+ - type
19144
+ additionalProperties: false
16567
19145
  /v1/platform/connect:
16568
19146
  post:
16569
19147
  operationId: platform_connect_post
@@ -16574,6 +19152,18 @@ paths:
16574
19152
  responses:
16575
19153
  "200":
16576
19154
  description: Successful response
19155
+ content:
19156
+ application/json:
19157
+ schema:
19158
+ type: object
19159
+ properties:
19160
+ alreadyConnected:
19161
+ type: boolean
19162
+ baseUrl:
19163
+ type: string
19164
+ showPlatformLogin:
19165
+ type: boolean
19166
+ additionalProperties: false
16577
19167
  /v1/platform/disconnect:
16578
19168
  post:
16579
19169
  operationId: platform_disconnect_post
@@ -16584,6 +19174,22 @@ paths:
16584
19174
  responses:
16585
19175
  "200":
16586
19176
  description: Successful response
19177
+ content:
19178
+ application/json:
19179
+ schema:
19180
+ type: object
19181
+ properties:
19182
+ disconnected:
19183
+ type: boolean
19184
+ const: true
19185
+ previousBaseUrl:
19186
+ anyOf:
19187
+ - type: string
19188
+ - type: "null"
19189
+ required:
19190
+ - disconnected
19191
+ - previousBaseUrl
19192
+ additionalProperties: false
16587
19193
  /v1/platform/status:
16588
19194
  get:
16589
19195
  operationId: platform_status_get
@@ -16594,6 +19200,57 @@ paths:
16594
19200
  responses:
16595
19201
  "200":
16596
19202
  description: Successful response
19203
+ content:
19204
+ application/json:
19205
+ schema:
19206
+ type: object
19207
+ properties:
19208
+ isPlatform:
19209
+ type: boolean
19210
+ baseUrl:
19211
+ type: string
19212
+ assistantId:
19213
+ type: string
19214
+ hasAssistantApiKey:
19215
+ type: boolean
19216
+ hasWebhookSecret:
19217
+ type: boolean
19218
+ available:
19219
+ type: boolean
19220
+ organizationId:
19221
+ anyOf:
19222
+ - type: string
19223
+ - type: "null"
19224
+ userId:
19225
+ anyOf:
19226
+ - type: string
19227
+ - type: "null"
19228
+ velayTunnel:
19229
+ anyOf:
19230
+ - type: object
19231
+ properties:
19232
+ connected:
19233
+ type: boolean
19234
+ publicUrl:
19235
+ anyOf:
19236
+ - type: string
19237
+ - type: "null"
19238
+ required:
19239
+ - connected
19240
+ - publicUrl
19241
+ additionalProperties: false
19242
+ - type: "null"
19243
+ required:
19244
+ - isPlatform
19245
+ - baseUrl
19246
+ - assistantId
19247
+ - hasAssistantApiKey
19248
+ - hasWebhookSecret
19249
+ - available
19250
+ - organizationId
19251
+ - userId
19252
+ - velayTunnel
19253
+ additionalProperties: false
16597
19254
  /v1/playground/seed-conversation:
16598
19255
  post:
16599
19256
  operationId: playground_seedconversation_post
@@ -17492,6 +20149,16 @@ paths:
17492
20149
  anyOf:
17493
20150
  - type: number
17494
20151
  - type: "null"
20152
+ createdFromConversationId:
20153
+ anyOf:
20154
+ - type: string
20155
+ - type: "null"
20156
+ createdFromConversationExists:
20157
+ type: boolean
20158
+ createdFromConversationArchivedAt:
20159
+ anyOf:
20160
+ - type: number
20161
+ - type: "null"
17495
20162
  description:
17496
20163
  anyOf:
17497
20164
  - type: string
@@ -17541,6 +20208,9 @@ paths:
17541
20208
  - maxRetries
17542
20209
  - retryBackoffMs
17543
20210
  - timeoutMs
20211
+ - createdFromConversationId
20212
+ - createdFromConversationExists
20213
+ - createdFromConversationArchivedAt
17544
20214
  - description
17545
20215
  - mode
17546
20216
  - status
@@ -17628,6 +20298,16 @@ paths:
17628
20298
  anyOf:
17629
20299
  - type: number
17630
20300
  - type: "null"
20301
+ createdFromConversationId:
20302
+ anyOf:
20303
+ - type: string
20304
+ - type: "null"
20305
+ createdFromConversationExists:
20306
+ type: boolean
20307
+ createdFromConversationArchivedAt:
20308
+ anyOf:
20309
+ - type: number
20310
+ - type: "null"
17631
20311
  description:
17632
20312
  anyOf:
17633
20313
  - type: string
@@ -17677,6 +20357,9 @@ paths:
17677
20357
  - maxRetries
17678
20358
  - retryBackoffMs
17679
20359
  - timeoutMs
20360
+ - createdFromConversationId
20361
+ - createdFromConversationExists
20362
+ - createdFromConversationArchivedAt
17680
20363
  - description
17681
20364
  - mode
17682
20365
  - status
@@ -17790,6 +20473,16 @@ paths:
17790
20473
  anyOf:
17791
20474
  - type: number
17792
20475
  - type: "null"
20476
+ createdFromConversationId:
20477
+ anyOf:
20478
+ - type: string
20479
+ - type: "null"
20480
+ createdFromConversationExists:
20481
+ type: boolean
20482
+ createdFromConversationArchivedAt:
20483
+ anyOf:
20484
+ - type: number
20485
+ - type: "null"
17793
20486
  description:
17794
20487
  anyOf:
17795
20488
  - type: string
@@ -17839,6 +20532,9 @@ paths:
17839
20532
  - maxRetries
17840
20533
  - retryBackoffMs
17841
20534
  - timeoutMs
20535
+ - createdFromConversationId
20536
+ - createdFromConversationExists
20537
+ - createdFromConversationArchivedAt
17842
20538
  - description
17843
20539
  - mode
17844
20540
  - status
@@ -17925,6 +20621,16 @@ paths:
17925
20621
  anyOf:
17926
20622
  - type: number
17927
20623
  - type: "null"
20624
+ createdFromConversationId:
20625
+ anyOf:
20626
+ - type: string
20627
+ - type: "null"
20628
+ createdFromConversationExists:
20629
+ type: boolean
20630
+ createdFromConversationArchivedAt:
20631
+ anyOf:
20632
+ - type: number
20633
+ - type: "null"
17928
20634
  description:
17929
20635
  anyOf:
17930
20636
  - type: string
@@ -17974,6 +20680,9 @@ paths:
17974
20680
  - maxRetries
17975
20681
  - retryBackoffMs
17976
20682
  - timeoutMs
20683
+ - createdFromConversationId
20684
+ - createdFromConversationExists
20685
+ - createdFromConversationArchivedAt
17977
20686
  - description
17978
20687
  - mode
17979
20688
  - status
@@ -18103,6 +20812,16 @@ paths:
18103
20812
  anyOf:
18104
20813
  - type: number
18105
20814
  - type: "null"
20815
+ createdFromConversationId:
20816
+ anyOf:
20817
+ - type: string
20818
+ - type: "null"
20819
+ createdFromConversationExists:
20820
+ type: boolean
20821
+ createdFromConversationArchivedAt:
20822
+ anyOf:
20823
+ - type: number
20824
+ - type: "null"
18106
20825
  description:
18107
20826
  anyOf:
18108
20827
  - type: string
@@ -18152,6 +20871,9 @@ paths:
18152
20871
  - maxRetries
18153
20872
  - retryBackoffMs
18154
20873
  - timeoutMs
20874
+ - createdFromConversationId
20875
+ - createdFromConversationExists
20876
+ - createdFromConversationArchivedAt
18155
20877
  - description
18156
20878
  - mode
18157
20879
  - status
@@ -18239,6 +20961,16 @@ paths:
18239
20961
  anyOf:
18240
20962
  - type: number
18241
20963
  - type: "null"
20964
+ createdFromConversationId:
20965
+ anyOf:
20966
+ - type: string
20967
+ - type: "null"
20968
+ createdFromConversationExists:
20969
+ type: boolean
20970
+ createdFromConversationArchivedAt:
20971
+ anyOf:
20972
+ - type: number
20973
+ - type: "null"
18242
20974
  description:
18243
20975
  anyOf:
18244
20976
  - type: string
@@ -18288,6 +21020,9 @@ paths:
18288
21020
  - maxRetries
18289
21021
  - retryBackoffMs
18290
21022
  - timeoutMs
21023
+ - createdFromConversationId
21024
+ - createdFromConversationExists
21025
+ - createdFromConversationArchivedAt
18291
21026
  - description
18292
21027
  - mode
18293
21028
  - status
@@ -18354,6 +21089,14 @@ paths:
18354
21089
  anyOf:
18355
21090
  - type: string
18356
21091
  - type: "null"
21092
+ conversationExists:
21093
+ type: boolean
21094
+ conversationArchivedAt:
21095
+ anyOf:
21096
+ - type: number
21097
+ - type: "null"
21098
+ estimatedCostUsd:
21099
+ type: number
18357
21100
  createdAt:
18358
21101
  type: number
18359
21102
  required:
@@ -18366,6 +21109,9 @@ paths:
18366
21109
  - output
18367
21110
  - error
18368
21111
  - conversationId
21112
+ - conversationExists
21113
+ - conversationArchivedAt
21114
+ - estimatedCostUsd
18369
21115
  - createdAt
18370
21116
  additionalProperties: false
18371
21117
  description: Schedule run objects
@@ -18453,6 +21199,16 @@ paths:
18453
21199
  anyOf:
18454
21200
  - type: number
18455
21201
  - type: "null"
21202
+ createdFromConversationId:
21203
+ anyOf:
21204
+ - type: string
21205
+ - type: "null"
21206
+ createdFromConversationExists:
21207
+ type: boolean
21208
+ createdFromConversationArchivedAt:
21209
+ anyOf:
21210
+ - type: number
21211
+ - type: "null"
18456
21212
  description:
18457
21213
  anyOf:
18458
21214
  - type: string
@@ -18502,6 +21258,9 @@ paths:
18502
21258
  - maxRetries
18503
21259
  - retryBackoffMs
18504
21260
  - timeoutMs
21261
+ - createdFromConversationId
21262
+ - createdFromConversationExists
21263
+ - createdFromConversationArchivedAt
18505
21264
  - description
18506
21265
  - mode
18507
21266
  - status
@@ -18533,6 +21292,57 @@ paths:
18533
21292
  required:
18534
21293
  - enabled
18535
21294
  additionalProperties: false
21295
+ /v1/schedules/usage-summary:
21296
+ get:
21297
+ operationId: schedules_usagesummary_get
21298
+ summary: Get schedule usage summaries
21299
+ description: Return per-schedule run counts and usage totals for a time range.
21300
+ tags:
21301
+ - schedules
21302
+ responses:
21303
+ "200":
21304
+ description: Successful response
21305
+ content:
21306
+ application/json:
21307
+ schema:
21308
+ type: object
21309
+ properties:
21310
+ summaries:
21311
+ type: array
21312
+ items:
21313
+ type: object
21314
+ properties:
21315
+ scheduleId:
21316
+ type: string
21317
+ runCount:
21318
+ type: number
21319
+ totalEstimatedCostUsd:
21320
+ type: number
21321
+ eventCount:
21322
+ type: number
21323
+ required:
21324
+ - scheduleId
21325
+ - runCount
21326
+ - totalEstimatedCostUsd
21327
+ - eventCount
21328
+ additionalProperties: false
21329
+ description: Schedule usage summary rows
21330
+ required:
21331
+ - summaries
21332
+ additionalProperties: false
21333
+ parameters:
21334
+ - name: from
21335
+ in: query
21336
+ required: true
21337
+ schema:
21338
+ type: integer
21339
+ description: Start epoch millis (required)
21340
+ - name: to
21341
+ in: query
21342
+ required: true
21343
+ schema:
21344
+ type: integer
21345
+ description: End epoch millis (required)
18536
21346
  /v1/search:
18537
21347
  get:
18538
21348
  operationId: search_get
@@ -18821,11 +21631,37 @@ paths:
18821
21631
  properties:
18822
21632
  secrets:
18823
21633
  type: array
18824
- items: {}
21634
+ items:
21635
+ type: object
21636
+ properties:
21637
+ type:
21638
+ type: string
21639
+ enum:
21640
+ - api_key
21641
+ - credential
21642
+ name:
21643
+ type: string
21644
+ required:
21645
+ - type
21646
+ - name
21647
+ additionalProperties: false
18825
21648
  description: List of secret metadata entries, each with type and name
18826
21649
  accounts:
18827
21650
  type: array
18828
- items: {}
21651
+ items:
21652
+ type: object
21653
+ properties:
21654
+ type:
21655
+ type: string
21656
+ enum:
21657
+ - api_key
21658
+ - credential
21659
+ name:
21660
+ type: string
21661
+ required:
21662
+ - type
21663
+ - name
21664
+ additionalProperties: false
18829
21665
  description: Alias for secrets (same data)
18830
21666
  required:
18831
21667
  - secrets
@@ -19192,6 +22028,8 @@ paths:
19192
22028
  type: string
19193
22029
  description:
19194
22030
  type: string
22031
+ icon:
22032
+ type: string
19195
22033
  emoji:
19196
22034
  type: string
19197
22035
  kind:
@@ -19208,15 +22046,6 @@ paths:
19208
22046
  - available
19209
22047
  category:
19210
22048
  type: string
19211
- enum:
19212
- - communication
19213
- - productivity
19214
- - development
19215
- - media
19216
- - automation
19217
- - webSocial
19218
- - knowledge
19219
- - integration
19220
22049
  origin:
19221
22050
  type: string
19222
22051
  const: vellum
@@ -19237,6 +22066,8 @@ paths:
19237
22066
  type: string
19238
22067
  description:
19239
22068
  type: string
22069
+ icon:
22070
+ type: string
19240
22071
  emoji:
19241
22072
  type: string
19242
22073
  kind:
@@ -19253,15 +22084,6 @@ paths:
19253
22084
  - available
19254
22085
  category:
19255
22086
  type: string
19256
- enum:
19257
- - communication
19258
- - productivity
19259
- - development
19260
- - media
19261
- - automation
19262
- - webSocial
19263
- - knowledge
19264
- - integration
19265
22087
  origin:
19266
22088
  type: string
19267
22089
  const: clawhub
@@ -19302,6 +22124,8 @@ paths:
19302
22124
  type: string
19303
22125
  description:
19304
22126
  type: string
22127
+ icon:
22128
+ type: string
19305
22129
  emoji:
19306
22130
  type: string
19307
22131
  kind:
@@ -19318,15 +22142,6 @@ paths:
19318
22142
  - available
19319
22143
  category:
19320
22144
  type: string
19321
- enum:
19322
- - communication
19323
- - productivity
19324
- - development
19325
- - media
19326
- - automation
19327
- - webSocial
19328
- - knowledge
19329
- - integration
19330
22145
  origin:
19331
22146
  type: string
19332
22147
  const: skillssh
@@ -19382,6 +22197,8 @@ paths:
19382
22197
  type: string
19383
22198
  description:
19384
22199
  type: string
22200
+ icon:
22201
+ type: string
19385
22202
  emoji:
19386
22203
  type: string
19387
22204
  kind:
@@ -19398,15 +22215,6 @@ paths:
19398
22215
  - available
19399
22216
  category:
19400
22217
  type: string
19401
- enum:
19402
- - communication
19403
- - productivity
19404
- - development
19405
- - media
19406
- - automation
19407
- - webSocial
19408
- - knowledge
19409
- - integration
19410
22218
  origin:
19411
22219
  type: string
19412
22220
  const: custom
@@ -19546,6 +22354,8 @@ paths:
19546
22354
  type: string
19547
22355
  description:
19548
22356
  type: string
22357
+ icon:
22358
+ type: string
19549
22359
  emoji:
19550
22360
  type: string
19551
22361
  kind:
@@ -19562,15 +22372,6 @@ paths:
19562
22372
  - available
19563
22373
  category:
19564
22374
  type: string
19565
- enum:
19566
- - communication
19567
- - productivity
19568
- - development
19569
- - media
19570
- - automation
19571
- - webSocial
19572
- - knowledge
19573
- - integration
19574
22375
  origin:
19575
22376
  type: string
19576
22377
  const: vellum
@@ -19591,6 +22392,8 @@ paths:
19591
22392
  type: string
19592
22393
  description:
19593
22394
  type: string
22395
+ icon:
22396
+ type: string
19594
22397
  emoji:
19595
22398
  type: string
19596
22399
  kind:
@@ -19607,15 +22410,6 @@ paths:
19607
22410
  - available
19608
22411
  category:
19609
22412
  type: string
19610
- enum:
19611
- - communication
19612
- - productivity
19613
- - development
19614
- - media
19615
- - automation
19616
- - webSocial
19617
- - knowledge
19618
- - integration
19619
22413
  origin:
19620
22414
  type: string
19621
22415
  const: clawhub
@@ -19710,6 +22504,8 @@ paths:
19710
22504
  type: string
19711
22505
  description:
19712
22506
  type: string
22507
+ icon:
22508
+ type: string
19713
22509
  emoji:
19714
22510
  type: string
19715
22511
  kind:
@@ -19726,15 +22522,6 @@ paths:
19726
22522
  - available
19727
22523
  category:
19728
22524
  type: string
19729
- enum:
19730
- - communication
19731
- - productivity
19732
- - development
19733
- - media
19734
- - automation
19735
- - webSocial
19736
- - knowledge
19737
- - integration
19738
22525
  origin:
19739
22526
  type: string
19740
22527
  const: skillssh
@@ -19790,6 +22577,8 @@ paths:
19790
22577
  type: string
19791
22578
  description:
19792
22579
  type: string
22580
+ icon:
22581
+ type: string
19793
22582
  emoji:
19794
22583
  type: string
19795
22584
  kind:
@@ -19806,15 +22595,6 @@ paths:
19806
22595
  - available
19807
22596
  category:
19808
22597
  type: string
19809
- enum:
19810
- - communication
19811
- - productivity
19812
- - development
19813
- - media
19814
- - automation
19815
- - webSocial
19816
- - knowledge
19817
- - integration
19818
22598
  origin:
19819
22599
  type: string
19820
22600
  const: custom
@@ -19964,6 +22744,8 @@ paths:
19964
22744
  type: string
19965
22745
  description:
19966
22746
  type: string
22747
+ icon:
22748
+ type: string
19967
22749
  emoji:
19968
22750
  type: string
19969
22751
  kind:
@@ -19980,15 +22762,6 @@ paths:
19980
22762
  - available
19981
22763
  category:
19982
22764
  type: string
19983
- enum:
19984
- - communication
19985
- - productivity
19986
- - development
19987
- - media
19988
- - automation
19989
- - webSocial
19990
- - knowledge
19991
- - integration
19992
22765
  origin:
19993
22766
  type: string
19994
22767
  const: vellum
@@ -20009,6 +22782,8 @@ paths:
20009
22782
  type: string
20010
22783
  description:
20011
22784
  type: string
22785
+ icon:
22786
+ type: string
20012
22787
  emoji:
20013
22788
  type: string
20014
22789
  kind:
@@ -20025,15 +22800,6 @@ paths:
20025
22800
  - available
20026
22801
  category:
20027
22802
  type: string
20028
- enum:
20029
- - communication
20030
- - productivity
20031
- - development
20032
- - media
20033
- - automation
20034
- - webSocial
20035
- - knowledge
20036
- - integration
20037
22803
  origin:
20038
22804
  type: string
20039
22805
  const: clawhub
@@ -20074,6 +22840,8 @@ paths:
20074
22840
  type: string
20075
22841
  description:
20076
22842
  type: string
22843
+ icon:
22844
+ type: string
20077
22845
  emoji:
20078
22846
  type: string
20079
22847
  kind:
@@ -20090,15 +22858,6 @@ paths:
20090
22858
  - available
20091
22859
  category:
20092
22860
  type: string
20093
- enum:
20094
- - communication
20095
- - productivity
20096
- - development
20097
- - media
20098
- - automation
20099
- - webSocial
20100
- - knowledge
20101
- - integration
20102
22861
  origin:
20103
22862
  type: string
20104
22863
  const: skillssh
@@ -20154,6 +22913,8 @@ paths:
20154
22913
  type: string
20155
22914
  description:
20156
22915
  type: string
22916
+ icon:
22917
+ type: string
20157
22918
  emoji:
20158
22919
  type: string
20159
22920
  kind:
@@ -20170,15 +22931,6 @@ paths:
20170
22931
  - available
20171
22932
  category:
20172
22933
  type: string
20173
- enum:
20174
- - communication
20175
- - productivity
20176
- - development
20177
- - media
20178
- - automation
20179
- - webSocial
20180
- - knowledge
20181
- - integration
20182
22934
  origin:
20183
22935
  type: string
20184
22936
  const: custom
@@ -20343,6 +23095,43 @@ paths:
20343
23095
  required: true
20344
23096
  schema:
20345
23097
  type: string
23098
+ /v1/skills/categories:
23099
+ get:
23100
+ operationId: skills_categories_get
23101
+ summary: List skill categories
23102
+ description: Return all skill category definitions with labels, icons, and descriptions.
23103
+ tags:
23104
+ - skills
23105
+ responses:
23106
+ "200":
23107
+ description: Successful response
23108
+ content:
23109
+ application/json:
23110
+ schema:
23111
+ type: object
23112
+ properties:
23113
+ categories:
23114
+ type: array
23115
+ items:
23116
+ type: object
23117
+ properties:
23118
+ slug:
23119
+ type: string
23120
+ label:
23121
+ type: string
23122
+ description:
23123
+ type: string
23124
+ icon:
23125
+ type: string
23126
+ required:
23127
+ - slug
23128
+ - label
23129
+ - description
23130
+ - icon
23131
+ additionalProperties: false
23132
+ required:
23133
+ - categories
23134
+ additionalProperties: false
20346
23135
  /v1/skills/check-updates:
20347
23136
  post:
20348
23137
  operationId: skills_checkupdates_post
@@ -20419,15 +23208,16 @@ paths:
20419
23208
  type: object
20420
23209
  properties:
20421
23210
  slug:
23211
+ description: Skill slug. One of slug, url, or spec is required.
20422
23212
  type: string
20423
- description: Skill slug
20424
23213
  url:
23214
+ description: Skill URL. One of slug, url, or spec is required.
20425
23215
  type: string
20426
- description: Skill URL
20427
23216
  spec:
23217
+ description: Skill spec. One of slug, url, or spec is required.
20428
23218
  type: string
20429
- description: Skill spec
20430
23219
  version:
23220
+ description: Specific version to install
20431
23221
  type: string
20432
23222
  origin:
20433
23223
  description: Which registry to install from. When omitted, the install flow auto-detects based on slug format.
@@ -20443,11 +23233,6 @@ paths:
20443
23233
  When true, restrict to bundled and Vellum catalog skills only — do not fall through to community
20444
23234
  registries.
20445
23235
  type: boolean
20446
- required:
20447
- - slug
20448
- - url
20449
- - spec
20450
- - version
20451
23236
  additionalProperties: false
20452
23237
  /v1/skills/search:
20453
23238
  get:
@@ -20476,6 +23261,8 @@ paths:
20476
23261
  type: string
20477
23262
  description:
20478
23263
  type: string
23264
+ icon:
23265
+ type: string
20479
23266
  emoji:
20480
23267
  type: string
20481
23268
  kind:
@@ -20492,15 +23279,6 @@ paths:
20492
23279
  - available
20493
23280
  category:
20494
23281
  type: string
20495
- enum:
20496
- - communication
20497
- - productivity
20498
- - development
20499
- - media
20500
- - automation
20501
- - webSocial
20502
- - knowledge
20503
- - integration
20504
23282
  origin:
20505
23283
  type: string
20506
23284
  const: vellum
@@ -20521,6 +23299,8 @@ paths:
20521
23299
  type: string
20522
23300
  description:
20523
23301
  type: string
23302
+ icon:
23303
+ type: string
20524
23304
  emoji:
20525
23305
  type: string
20526
23306
  kind:
@@ -20537,15 +23317,6 @@ paths:
20537
23317
  - available
20538
23318
  category:
20539
23319
  type: string
20540
- enum:
20541
- - communication
20542
- - productivity
20543
- - development
20544
- - media
20545
- - automation
20546
- - webSocial
20547
- - knowledge
20548
- - integration
20549
23320
  origin:
20550
23321
  type: string
20551
23322
  const: clawhub
@@ -20586,6 +23357,8 @@ paths:
20586
23357
  type: string
20587
23358
  description:
20588
23359
  type: string
23360
+ icon:
23361
+ type: string
20589
23362
  emoji:
20590
23363
  type: string
20591
23364
  kind:
@@ -20602,15 +23375,6 @@ paths:
20602
23375
  - available
20603
23376
  category:
20604
23377
  type: string
20605
- enum:
20606
- - communication
20607
- - productivity
20608
- - development
20609
- - media
20610
- - automation
20611
- - webSocial
20612
- - knowledge
20613
- - integration
20614
23378
  origin:
20615
23379
  type: string
20616
23380
  const: skillssh
@@ -20666,6 +23430,8 @@ paths:
20666
23430
  type: string
20667
23431
  description:
20668
23432
  type: string
23433
+ icon:
23434
+ type: string
20669
23435
  emoji:
20670
23436
  type: string
20671
23437
  kind:
@@ -20682,15 +23448,6 @@ paths:
20682
23448
  - available
20683
23449
  category:
20684
23450
  type: string
20685
- enum:
20686
- - communication
20687
- - productivity
20688
- - development
20689
- - media
20690
- - automation
20691
- - webSocial
20692
- - knowledge
20693
- - integration
20694
23451
  origin:
20695
23452
  type: string
20696
23453
  const: custom
@@ -20730,6 +23487,37 @@ paths:
20730
23487
  responses:
20731
23488
  "200":
20732
23489
  description: Successful response
23490
+ content:
23491
+ application/json:
23492
+ schema:
23493
+ type: object
23494
+ properties:
23495
+ channels:
23496
+ type: array
23497
+ items:
23498
+ type: object
23499
+ properties:
23500
+ id:
23501
+ type: string
23502
+ name:
23503
+ type: string
23504
+ type:
23505
+ type: string
23506
+ enum:
23507
+ - channel
23508
+ - group
23509
+ - dm
23510
+ isPrivate:
23511
+ type: boolean
23512
+ required:
23513
+ - id
23514
+ - name
23515
+ - type
23516
+ - isPrivate
23517
+ additionalProperties: false
23518
+ required:
23519
+ - channels
23520
+ additionalProperties: false
20733
23521
  /v1/slack/share:
20734
23522
  post:
20735
23523
  operationId: slack_share_post
@@ -20740,6 +23528,42 @@ paths:
20740
23528
  responses:
20741
23529
  "200":
20742
23530
  description: Successful response
23531
+ content:
23532
+ application/json:
23533
+ schema:
23534
+ type: object
23535
+ properties:
23536
+ ok:
23537
+ type: boolean
23538
+ ts:
23539
+ type: string
23540
+ channel:
23541
+ type: string
23542
+ required:
23543
+ - ok
23544
+ - ts
23545
+ - channel
23546
+ additionalProperties: false
23547
+ requestBody:
23548
+ required: true
23549
+ content:
23550
+ application/json:
23551
+ schema:
23552
+ type: object
23553
+ properties:
23554
+ appId:
23555
+ type: string
23556
+ description: App to share
23557
+ channelId:
23558
+ type: string
23559
+ description: Target Slack channel ID
23560
+ message:
23561
+ description: Optional accompanying message
23562
+ type: string
23563
+ required:
23564
+ - appId
23565
+ - channelId
23566
+ additionalProperties: false
20743
23567
  /v1/stt/providers:
20744
23568
  get:
20745
23569
  operationId: stt_providers_get
@@ -21901,6 +24725,58 @@ paths:
21901
24725
  responses:
21902
24726
  "200":
21903
24727
  description: Successful response
24728
+ content:
24729
+ application/json:
24730
+ schema:
24731
+ type: object
24732
+ properties:
24733
+ rules:
24734
+ type: array
24735
+ items:
24736
+ type: object
24737
+ properties:
24738
+ id:
24739
+ type: string
24740
+ tool:
24741
+ type: string
24742
+ pattern:
24743
+ type: string
24744
+ risk:
24745
+ type: string
24746
+ enum:
24747
+ - low
24748
+ - medium
24749
+ - high
24750
+ description:
24751
+ type: string
24752
+ origin:
24753
+ type: string
24754
+ enum:
24755
+ - default
24756
+ - user_defined
24757
+ userModified:
24758
+ type: boolean
24759
+ deleted:
24760
+ type: boolean
24761
+ createdAt:
24762
+ type: string
24763
+ updatedAt:
24764
+ type: string
24765
+ required:
24766
+ - id
24767
+ - tool
24768
+ - pattern
24769
+ - risk
24770
+ - description
24771
+ - origin
24772
+ - userModified
24773
+ - deleted
24774
+ - createdAt
24775
+ - updatedAt
24776
+ additionalProperties: false
24777
+ required:
24778
+ - rules
24779
+ additionalProperties: false
21904
24780
  parameters:
21905
24781
  - name: tool
21906
24782
  in: query
@@ -22057,6 +24933,61 @@ paths:
22057
24933
  - currentThreshold
22058
24934
  - intent
22059
24935
  additionalProperties: false
24936
+ /v1/tts/providers:
24937
+ get:
24938
+ operationId: tts_providers_get
24939
+ summary: List TTS providers
24940
+ description: Return the catalog of available TTS providers with client-facing metadata.
24941
+ tags:
24942
+ - tts
24943
+ responses:
24944
+ "200":
24945
+ description: Successful response
24946
+ content:
24947
+ application/json:
24948
+ schema:
24949
+ type: object
24950
+ properties:
24951
+ providers:
24952
+ type: array
24953
+ items:
24954
+ type: object
24955
+ properties:
24956
+ id:
24957
+ type: string
24958
+ displayName:
24959
+ type: string
24960
+ subtitle:
24961
+ type: string
24962
+ supportsVoiceSelection:
24963
+ type: boolean
24964
+ apiKeyPlaceholder:
24965
+ type: string
24966
+ credentialsGuide:
24967
+ type: object
24968
+ properties:
24969
+ description:
24970
+ type: string
24971
+ url:
24972
+ type: string
24973
+ linkLabel:
24974
+ type: string
24975
+ required:
24976
+ - description
24977
+ - url
24978
+ - linkLabel
24979
+ additionalProperties: false
24980
+ required:
24981
+ - id
24982
+ - displayName
24983
+ - subtitle
24984
+ - supportsVoiceSelection
24985
+ - apiKeyPlaceholder
24986
+ - credentialsGuide
24987
+ additionalProperties: false
24988
+ required:
24989
+ - providers
24990
+ additionalProperties: false
22060
24991
  /v1/tts/synthesize:
22061
24992
  post:
22062
24993
  operationId: tts_synthesize_post
@@ -22271,7 +25202,13 @@ paths:
22271
25202
  required: false
22272
25203
  schema:
22273
25204
  type: string
22274
- description: "Group by: actor, provider, model, conversation, call_site, inference_profile (required)"
25205
+ description: "Group by: actor, provider, model, conversation, call_site, inference_profile, schedule (required)"
25206
+ - name: scheduleId
25207
+ in: query
25208
+ required: false
25209
+ schema:
25210
+ type: string
25211
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22275
25212
  /v1/usage/daily:
22276
25213
  get:
22277
25214
  operationId: usage_daily_get
@@ -22348,6 +25285,12 @@ paths:
22348
25285
  description:
22349
25286
  IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
22350
25287
  this timezone. Defaults to "UTC" for backwards compatibility.
25288
+ - name: scheduleId
25289
+ in: query
25290
+ required: false
25291
+ schema:
25292
+ type: string
25293
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22351
25294
  /v1/usage/series:
22352
25295
  get:
22353
25296
  operationId: usage_series_get
@@ -22451,7 +25394,7 @@ paths:
22451
25394
  required: false
22452
25395
  schema:
22453
25396
  type: string
22454
- description: "Group by: actor, provider, model, call_site, inference_profile (required)"
25397
+ description: "Group by: actor, provider, model, call_site, inference_profile, schedule (required)"
22455
25398
  - name: tz
22456
25399
  in: query
22457
25400
  required: false
@@ -22460,6 +25403,12 @@ paths:
22460
25403
  description:
22461
25404
  IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
22462
25405
  this timezone. Defaults to "UTC".
25406
+ - name: scheduleId
25407
+ in: query
25408
+ required: false
25409
+ schema:
25410
+ type: string
25411
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22463
25412
  /v1/usage/totals:
22464
25413
  get:
22465
25414
  operationId: usage_totals_get
@@ -22514,6 +25463,12 @@ paths:
22514
25463
  schema:
22515
25464
  type: integer
22516
25465
  description: End epoch millis (required)
25466
+ - name: scheduleId
25467
+ in: query
25468
+ required: false
25469
+ schema:
25470
+ type: string
25471
+ description: Optional schedule id. When set, usage is attributed by cron run windows for that schedule.
22517
25472
  /v1/user-routes/inspect:
22518
25473
  post:
22519
25474
  operationId: userroutes_inspect_post
@@ -22742,6 +25697,41 @@ paths:
22742
25697
  responses:
22743
25698
  "200":
22744
25699
  description: Successful response
25700
+ content:
25701
+ application/json:
25702
+ schema:
25703
+ type: object
25704
+ properties:
25705
+ routes:
25706
+ type: array
25707
+ items:
25708
+ type: object
25709
+ properties:
25710
+ id:
25711
+ type: string
25712
+ assistant_id:
25713
+ type: string
25714
+ type:
25715
+ type: string
25716
+ callback_path:
25717
+ type: string
25718
+ callback_url:
25719
+ type: string
25720
+ source_identifier:
25721
+ anyOf:
25722
+ - type: string
25723
+ - type: "null"
25724
+ required:
25725
+ - id
25726
+ - assistant_id
25727
+ - type
25728
+ - callback_path
25729
+ - callback_url
25730
+ - source_identifier
25731
+ additionalProperties: false
25732
+ required:
25733
+ - routes
25734
+ additionalProperties: false
22745
25735
  /v1/webhooks/register:
22746
25736
  post:
22747
25737
  operationId: webhooks_register_post
@@ -22754,6 +25744,44 @@ paths:
22754
25744
  responses:
22755
25745
  "200":
22756
25746
  description: Successful response
25747
+ content:
25748
+ application/json:
25749
+ schema:
25750
+ type: object
25751
+ properties:
25752
+ callbackUrl:
25753
+ type: string
25754
+ type:
25755
+ type: string
25756
+ path:
25757
+ type: string
25758
+ mode:
25759
+ type: string
25760
+ enum:
25761
+ - platform
25762
+ - self-hosted
25763
+ required:
25764
+ - callbackUrl
25765
+ - type
25766
+ - path
25767
+ - mode
25768
+ additionalProperties: false
25769
+ requestBody:
25770
+ required: true
25771
+ content:
25772
+ application/json:
25773
+ schema:
25774
+ type: object
25775
+ properties:
25776
+ type:
25777
+ type: string
25778
+ path:
25779
+ type: string
25780
+ source:
25781
+ type: string
25782
+ required:
25783
+ - type
25784
+ additionalProperties: false
22757
25785
  /v1/work-items:
22758
25786
  get:
22759
25787
  operationId: workitems_get
@@ -23142,6 +26170,11 @@ paths:
23142
26170
  responses:
23143
26171
  "200":
23144
26172
  description: Successful response
26173
+ content:
26174
+ application/octet-stream:
26175
+ schema:
26176
+ type: string
26177
+ format: binary
23145
26178
  "416":
23146
26179
  description: Range Not Satisfiable
23147
26180
  parameters: