@vellumai/assistant 0.10.7 → 0.10.8-dev.202607102228.5945895

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 (1558) hide show
  1. package/AGENTS.md +3 -1
  2. package/ARCHITECTURE.md +9 -9
  3. package/README.md +1 -1
  4. package/docs/architecture/memory.md +1 -3
  5. package/docs/credential-execution-service.md +9 -96
  6. package/docs/runbook-trusted-contacts.md +132 -93
  7. package/docs/trusted-contact-access.md +125 -115
  8. package/docs/workspace-tools.md +4 -2
  9. package/eslint-rules/__tests__/cli-no-daemon-internals.test.ts +62 -360
  10. package/eslint-rules/cli-no-daemon-internals.js +91 -269
  11. package/eslint.config.mjs +4 -4
  12. package/knip.json +2 -1
  13. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/package.json +1 -2
  14. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/attachment-naming.test.ts +104 -0
  15. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +0 -2
  16. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/attachment-naming.ts +118 -0
  17. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/credential-rpc.ts +3 -5
  18. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/index.ts +2 -4
  19. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/rpc.ts +4 -447
  20. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/package.json +1 -2
  21. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/attachment-naming.test.ts +104 -0
  22. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +0 -2
  23. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/attachment-naming.ts +118 -0
  24. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/credential-rpc.ts +3 -5
  25. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/index.ts +2 -4
  26. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/rpc.ts +4 -447
  27. package/node_modules/@vellumai/gateway-client/src/__tests__/invite-contract.test.ts +0 -18
  28. package/node_modules/@vellumai/gateway-client/src/__tests__/trust-verdict-contract.test.ts +40 -6
  29. package/node_modules/@vellumai/gateway-client/src/channel-permission-contract.ts +13 -0
  30. package/node_modules/@vellumai/gateway-client/src/index.ts +24 -2
  31. package/node_modules/@vellumai/gateway-client/src/invite-contract.ts +146 -16
  32. package/node_modules/@vellumai/gateway-client/src/trust-verdict-contract.ts +22 -4
  33. package/node_modules/@vellumai/service-contracts/package.json +1 -2
  34. package/node_modules/@vellumai/service-contracts/src/__tests__/attachment-naming.test.ts +104 -0
  35. package/node_modules/@vellumai/service-contracts/src/__tests__/contracts.test.ts +0 -2
  36. package/node_modules/@vellumai/service-contracts/src/attachment-naming.ts +118 -0
  37. package/node_modules/@vellumai/service-contracts/src/credential-rpc.ts +3 -5
  38. package/node_modules/@vellumai/service-contracts/src/index.ts +2 -4
  39. package/node_modules/@vellumai/service-contracts/src/rpc.ts +4 -447
  40. package/openapi.yaml +1648 -676
  41. package/package.json +4 -5
  42. package/scripts/build-test-fixtures.ts +105 -0
  43. package/scripts/memory-inspect.ts +2 -8
  44. package/scripts/test.ts +597 -0
  45. package/src/__tests__/access-request-card-view.test.ts +38 -0
  46. package/src/__tests__/activation-early-marking.test.ts +1 -8
  47. package/src/__tests__/actor-token-service.test.ts +1 -22
  48. package/src/__tests__/add-message-preassigned-id.test.ts +1 -1
  49. package/src/__tests__/agent-image-optimize.test.ts +104 -1
  50. package/src/__tests__/agent-loop-callsite-precedence.test.ts +0 -5
  51. package/src/__tests__/agent-loop-compaction-events.test.ts +1 -1
  52. package/src/__tests__/agent-loop-compaction-strip.test.ts +1 -1
  53. package/src/__tests__/agent-loop-exit-reason.test.ts +1 -1
  54. package/src/__tests__/agent-loop-mutable-latest-user-message.test.ts +0 -6
  55. package/src/__tests__/agent-loop-override-profile.test.ts +66 -5
  56. package/src/__tests__/agent-loop-pushes-post-hook-prompt.test.ts +1 -9
  57. package/src/__tests__/agent-loop-regrowth-guard.test.ts +1 -1
  58. package/src/__tests__/agent-loop-set-system-prompt.test.ts +1 -7
  59. package/src/__tests__/agent-wake-disk-pressure-callsite.test.ts +1 -0
  60. package/src/__tests__/agent-wake-override-profile.test.ts +21 -1
  61. package/src/__tests__/annotate-activity-metadata.test.ts +4 -10
  62. package/src/__tests__/annotate-risk-options.test.ts +4 -10
  63. package/src/__tests__/anthropic-error-formatting.test.ts +193 -2
  64. package/src/__tests__/anthropic-gateway-shared.test.ts +140 -0
  65. package/src/__tests__/anthropic-provider.test.ts +58 -0
  66. package/src/__tests__/app-bundler.test.ts +0 -8
  67. package/src/__tests__/app-conversation-ids-backfill.test.ts +1 -8
  68. package/src/__tests__/app-routes-csp.test.ts +0 -8
  69. package/src/__tests__/approval-cascade.test.ts +0 -21
  70. package/src/__tests__/approval-interception-trust-gates.test.ts +0 -7
  71. package/src/__tests__/approval-primitive.test.ts +1 -9
  72. package/src/__tests__/approval-routes-http.test.ts +1 -16
  73. package/src/__tests__/assistant-attachment-directive.test.ts +1 -0
  74. package/src/__tests__/assistant-attachments.test.ts +211 -0
  75. package/src/__tests__/assistant-event-hub-machine-name.test.ts +0 -7
  76. package/src/__tests__/assistant-events-sse-hardening.test.ts +0 -7
  77. package/src/__tests__/assistant-feature-flag-guard.test.ts +3 -3
  78. package/src/__tests__/assistant-feature-flag-guardrails.test.ts +1 -1
  79. package/src/__tests__/attachment-stored-path-annotation.test.ts +0 -7
  80. package/src/__tests__/attachment-upload-trusted-source.test.ts +0 -7
  81. package/src/__tests__/attachments-store-heic-normalize.test.ts +0 -7
  82. package/src/__tests__/attachments-store.test.ts +43 -8
  83. package/src/__tests__/attachments.test.ts +77 -0
  84. package/src/__tests__/audit-log-rotation.test.ts +1 -9
  85. package/src/__tests__/auth-fallback-events-store.test.ts +0 -7
  86. package/src/__tests__/available-skills.test.ts +266 -0
  87. package/src/__tests__/avatar-generator.test.ts +0 -9
  88. package/src/__tests__/background-shell-host-bash.test.ts +0 -7
  89. package/src/__tests__/background-workers-disk-pressure.test.ts +4 -3
  90. package/src/__tests__/browser-fill-credential.test.ts +0 -7
  91. package/src/__tests__/browser-manager.test.ts +1 -8
  92. package/src/__tests__/btw-routes.test.ts +0 -7
  93. package/src/__tests__/build-persisted-content.test.ts +0 -8
  94. package/src/__tests__/call-constants.test.ts +1 -1
  95. package/src/__tests__/call-controller.test.ts +783 -34
  96. package/src/__tests__/call-conversation-messages.test.ts +2 -9
  97. package/src/__tests__/call-domain.test.ts +7 -24
  98. package/src/__tests__/call-pointer-message-composer.test.ts +0 -8
  99. package/src/__tests__/call-pointer-messages.test.ts +1 -8
  100. package/src/__tests__/call-recovery.test.ts +1 -8
  101. package/src/__tests__/call-routes-http.test.ts +0 -7
  102. package/src/__tests__/call-setup-flow-invite.test.ts +1 -1
  103. package/src/__tests__/call-setup-flow-midcall-trust.test.ts +76 -97
  104. package/src/__tests__/call-setup-flow-name-capture.test.ts +1 -1
  105. package/src/__tests__/call-setup-flow-verification.test.ts +1 -1
  106. package/src/__tests__/call-setup-flow.test.ts +2 -2
  107. package/src/__tests__/call-site-routing-provider.test.ts +1 -5
  108. package/src/__tests__/call-state.test.ts +1 -8
  109. package/src/__tests__/call-store.test.ts +1 -8
  110. package/src/__tests__/cancel-resolves-conversation-key.test.ts +0 -7
  111. package/src/__tests__/canonical-guardian-store.test.ts +1 -8
  112. package/src/__tests__/catalog-cache.test.ts +0 -8
  113. package/src/__tests__/catalog-files.test.ts +0 -8
  114. package/src/__tests__/catalog-install-normalize.test.ts +0 -7
  115. package/src/__tests__/ces-rpc-credential-backend.test.ts +0 -7
  116. package/src/__tests__/channel-approval-routes.test.ts +0 -7
  117. package/src/__tests__/channel-approvals.test.ts +0 -7
  118. package/src/__tests__/channel-delivery-store.test.ts +0 -7
  119. package/src/__tests__/channel-guardian.test.ts +29 -16
  120. package/src/__tests__/channel-inbound-disk-pressure.test.ts +0 -7
  121. package/src/__tests__/channel-reply-delivery.test.ts +18 -5
  122. package/src/__tests__/channel-retry-sweep.test.ts +0 -7
  123. package/src/__tests__/clawhub-files.test.ts +0 -8
  124. package/src/__tests__/clawhub.test.ts +0 -7
  125. package/src/__tests__/clear-all-lexical.test.ts +0 -6
  126. package/src/__tests__/client-os-metadata-persistence.test.ts +0 -5
  127. package/src/__tests__/compaction-direct.test.ts +47 -0
  128. package/src/__tests__/compaction-events.test.ts +14 -29
  129. package/src/__tests__/compaction-ledger-store.test.ts +1 -7
  130. package/src/__tests__/compaction-summary-head-persisted-count.test.ts +417 -0
  131. package/src/__tests__/compaction-trail-store.test.ts +2 -8
  132. package/src/__tests__/compaction.benchmark.test.ts +0 -5
  133. package/src/__tests__/compactor-call-site-logging.test.ts +0 -21
  134. package/src/__tests__/compactor-fixed-boundary.test.ts +334 -0
  135. package/src/__tests__/compactor-low-watermark-cut.test.ts +8 -23
  136. package/src/__tests__/compactor-media-strip.test.ts +0 -21
  137. package/src/__tests__/compactor-preserved-tail-count.test.ts +0 -21
  138. package/src/__tests__/compactor-summary-call-truncation.test.ts +0 -21
  139. package/src/__tests__/compactor-web-search-strip.test.ts +21 -25
  140. package/src/__tests__/config-get-vision-flag.test.ts +0 -6
  141. package/src/__tests__/config-loader-backfill.test.ts +332 -316
  142. package/src/__tests__/config-loader-platform-defaults.test.ts +0 -21
  143. package/src/__tests__/config-loader-validation-reset-notice.test.ts +183 -0
  144. package/src/__tests__/config-schema.test.ts +85 -30
  145. package/src/__tests__/config-set-route.test.ts +0 -6
  146. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +12 -24
  147. package/src/__tests__/config-watcher-skill-reseed.test.ts +1 -8
  148. package/src/__tests__/config-watcher.test.ts +22 -12
  149. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +1 -9
  150. package/src/__tests__/contact-store-interaction-info.test.ts +1 -8
  151. package/src/__tests__/contact-store-user-file.test.ts +1 -14
  152. package/src/__tests__/contacts-tools.test.ts +0 -7
  153. package/src/__tests__/contacts-write.test.ts +1 -8
  154. package/src/__tests__/context-search-memory-source.test.ts +0 -1
  155. package/src/__tests__/context-search-memory-v2-source.test.ts +0 -6
  156. package/src/__tests__/context-window-manager-compact-retry.test.ts +118 -21
  157. package/src/__tests__/context-window-manager-overflow-rung.test.ts +0 -21
  158. package/src/__tests__/conversation-abort-tool-results.test.ts +0 -5
  159. package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +0 -12
  160. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +5 -12
  161. package/src/__tests__/conversation-agent-loop-overflow.test.ts +45 -21
  162. package/src/__tests__/conversation-agent-loop.test.ts +192 -70
  163. package/src/__tests__/conversation-app-control-instantiation.test.ts +20 -8
  164. package/src/__tests__/conversation-app-control-lifecycle.test.ts +0 -9
  165. package/src/__tests__/conversation-attachments.test.ts +1 -7
  166. package/src/__tests__/conversation-attention-store.test.ts +1 -9
  167. package/src/__tests__/conversation-attention-telegram.test.ts +0 -8
  168. package/src/__tests__/conversation-clear-safety.test.ts +0 -7
  169. package/src/__tests__/conversation-confirmation-signals.test.ts +0 -21
  170. package/src/__tests__/conversation-crud-enabled-plugins.test.ts +1 -7
  171. package/src/__tests__/conversation-crud-inference-profile.test.ts +1 -7
  172. package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +0 -7
  173. package/src/__tests__/conversation-disk-view-integration.test.ts +0 -7
  174. package/src/__tests__/conversation-disk-view.test.ts +0 -7
  175. package/src/__tests__/conversation-enabledplugins-route.test.ts +2 -8
  176. package/src/__tests__/conversation-error.test.ts +299 -3
  177. package/src/__tests__/conversation-fork-crud.test.ts +52 -37
  178. package/src/__tests__/conversation-fork-retrospective.test.ts +486 -7
  179. package/src/__tests__/conversation-fork-route.test.ts +0 -7
  180. package/src/__tests__/conversation-history-web-search.test.ts +39 -17
  181. package/src/__tests__/conversation-inference-profile-list.test.ts +0 -6
  182. package/src/__tests__/conversation-inference-profile-route.test.ts +0 -5
  183. package/src/__tests__/conversation-init.benchmark.test.ts +6 -2
  184. package/src/__tests__/conversation-initial-prompt.test.ts +1 -1
  185. package/src/__tests__/conversation-key-store-disk-view.test.ts +0 -7
  186. package/src/__tests__/conversation-lifecycle.test.ts +108 -62
  187. package/src/__tests__/conversation-list-source.test.ts +0 -7
  188. package/src/__tests__/conversation-load-history-repair.test.ts +39 -53
  189. package/src/__tests__/conversation-load-history-stripped.test.ts +12 -19
  190. package/src/__tests__/conversation-loop-db-lock-resilience.test.ts +10 -15
  191. package/src/__tests__/conversation-message-id-uuidv7.test.ts +73 -0
  192. package/src/__tests__/conversation-pairing.test.ts +0 -7
  193. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +0 -5
  194. package/src/__tests__/conversation-process-callsite.test.ts +14 -7
  195. package/src/__tests__/conversation-provider-retry-repair.test.ts +0 -5
  196. package/src/__tests__/conversation-queue.test.ts +91 -21
  197. package/src/__tests__/conversation-routes-disk-view.test.ts +0 -11
  198. package/src/__tests__/conversation-routes-enabled-plugins.test.ts +3 -11
  199. package/src/__tests__/conversation-routes-guardian-reply.test.ts +3 -11
  200. package/src/__tests__/conversation-routes-hidden-queue.test.ts +3 -11
  201. package/src/__tests__/conversation-routes-slash-commands.test.ts +24 -13
  202. package/src/__tests__/conversation-runtime-assembly.test.ts +37 -9
  203. package/src/__tests__/conversation-skill-tools.test.ts +31 -15
  204. package/src/__tests__/conversation-slash-commands.test.ts +5 -4
  205. package/src/__tests__/conversation-slash-queue.test.ts +0 -5
  206. package/src/__tests__/conversation-slash-unknown.test.ts +0 -5
  207. package/src/__tests__/conversation-speed-override.test.ts +13 -23
  208. package/src/__tests__/conversation-starter-routes.test.ts +0 -7
  209. package/src/__tests__/conversation-store.test.ts +9 -22
  210. package/src/__tests__/conversation-summarize-route.test.ts +445 -0
  211. package/src/__tests__/conversation-summarize-up-to.test.ts +711 -0
  212. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +0 -8
  213. package/src/__tests__/conversation-surfaces-data-persist.test.ts +4 -2
  214. package/src/__tests__/conversation-title-service.test.ts +0 -7
  215. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +0 -19
  216. package/src/__tests__/conversation-tool-setup-attribution.test.ts +4 -8
  217. package/src/__tests__/conversation-unread-route.test.ts +0 -7
  218. package/src/__tests__/conversation-usage.test.ts +10 -8
  219. package/src/__tests__/conversation-wait-for-idle.test.ts +391 -0
  220. package/src/__tests__/conversation-workspace-cache-state.test.ts +0 -5
  221. package/src/__tests__/conversation-workspace-injection.test.ts +0 -5
  222. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +0 -5
  223. package/src/__tests__/conversations-import-system-filter.test.ts +0 -7
  224. package/src/__tests__/credential-broker-browser-fill.test.ts +0 -9
  225. package/src/__tests__/credential-broker-server-use.test.ts +0 -9
  226. package/src/__tests__/credential-execution-api-key-propagation.test.ts +0 -40
  227. package/src/__tests__/credential-execution-client.test.ts +3 -38
  228. package/src/__tests__/credential-execution-managed-contract.test.ts +10 -106
  229. package/src/__tests__/credential-health-service.test.ts +0 -9
  230. package/src/__tests__/credential-metadata-store.test.ts +0 -8
  231. package/src/__tests__/credential-prompt-route.test.ts +80 -9
  232. package/src/__tests__/credential-request-route.test.ts +76 -0
  233. package/src/__tests__/credential-resolve.test.ts +0 -8
  234. package/src/__tests__/credential-security-invariants.test.ts +3 -10
  235. package/src/__tests__/credential-token-resolver.test.ts +0 -9
  236. package/src/__tests__/custom-profile-ensure.test.ts +232 -0
  237. package/src/__tests__/daemon-assistant-events.test.ts +1 -9
  238. package/src/__tests__/daemon-credential-client.test.ts +0 -7
  239. package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +1 -8
  240. package/src/__tests__/db-conversation-inference-profile-migration.test.ts +1 -7
  241. package/src/__tests__/db-llm-request-log-provider-migration.test.ts +0 -8
  242. package/src/__tests__/db-processing-resume-attempts-migration.test.ts +116 -0
  243. package/src/__tests__/db-readiness-http-gate.test.ts +0 -7
  244. package/src/__tests__/db-rename-inference-profile-snake-case-migration.test.ts +1 -7
  245. package/src/__tests__/default-provider-ensure.test.ts +343 -0
  246. package/src/__tests__/delete-managed-skill-tool.test.ts +0 -7
  247. package/src/__tests__/delete-propagation.test.ts +0 -7
  248. package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -7
  249. package/src/__tests__/device-id.test.ts +1 -9
  250. package/src/__tests__/disk-pressure-tools.test.ts +0 -4
  251. package/src/__tests__/dm-backfill.test.ts +0 -7
  252. package/src/__tests__/dm-persistence.test.ts +0 -5
  253. package/src/__tests__/docker-signing-key-bootstrap.test.ts +1 -8
  254. package/src/__tests__/drain-requeue-on-contention.test.ts +202 -0
  255. package/src/__tests__/dynamic-skill-background-guard.test.ts +174 -0
  256. package/src/__tests__/edit-propagation.test.ts +1 -8
  257. package/src/__tests__/embedding-managed-proxy-selection.test.ts +0 -8
  258. package/src/__tests__/emit-signal-routing-intent.test.ts +175 -7
  259. package/src/__tests__/encrypted-store.test.ts +0 -9
  260. package/src/__tests__/ensure-conversation-exists.test.ts +85 -0
  261. package/src/__tests__/events-client-registration.test.ts +0 -7
  262. package/src/__tests__/events-dev-bypass-actor.test.ts +2 -9
  263. package/src/__tests__/events-tail-route.test.ts +172 -0
  264. package/src/__tests__/file-write-tool.test.ts +9 -13
  265. package/src/__tests__/followup-tools.test.ts +0 -7
  266. package/src/__tests__/gateway-flag-listener.test.ts +2 -23
  267. package/src/__tests__/gemini-inline-media.test.ts +2 -2
  268. package/src/__tests__/gemini-provider.test.ts +140 -1
  269. package/src/__tests__/get-skill-detail-audit.test.ts +89 -1
  270. package/src/__tests__/graph-extraction-event-date.test.ts +0 -9
  271. package/src/__tests__/guardian-action-sweep.test.ts +0 -7
  272. package/src/__tests__/guardian-binding-drift-heal.test.ts +0 -7
  273. package/src/__tests__/guardian-card-withdrawal.test.ts +0 -8
  274. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +1 -9
  275. package/src/__tests__/guardian-dispatch.test.ts +0 -7
  276. package/src/__tests__/guardian-expiry-notifier.test.ts +1 -9
  277. package/src/__tests__/guardian-outbound-http.test.ts +0 -7
  278. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +1 -8
  279. package/src/__tests__/guardian-routing-invariants.test.ts +0 -8
  280. package/src/__tests__/guardian-routing-state.test.ts +1 -9
  281. package/src/__tests__/guardian-verification-voice-binding.test.ts +0 -7
  282. package/src/__tests__/handlers-skills-memory-v2-reseed.test.ts +0 -2
  283. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +4 -5
  284. package/src/__tests__/headless-browser-interactions.test.ts +0 -7
  285. package/src/__tests__/headless-browser-mode.test.ts +0 -9
  286. package/src/__tests__/headless-browser-navigate.test.ts +91 -13
  287. package/src/__tests__/headless-browser-read-tools.test.ts +0 -7
  288. package/src/__tests__/headless-browser-snapshot.test.ts +0 -7
  289. package/src/__tests__/heartbeat-disk-pressure.test.ts +0 -9
  290. package/src/__tests__/helpers/set-config.ts +40 -0
  291. package/src/__tests__/host-bash-proxy.test.ts +3 -3
  292. package/src/__tests__/host-browser-proxy.test.ts +15 -20
  293. package/src/__tests__/host-cu-routes-targeted.test.ts +0 -1
  294. package/src/__tests__/host-shell-tool.test.ts +5 -69
  295. package/src/__tests__/http-conversation-lineage.test.ts +0 -7
  296. package/src/__tests__/http-user-message-parity.test.ts +0 -7
  297. package/src/__tests__/identity-routes.test.ts +1 -9
  298. package/src/__tests__/image-recovery-hook.test.ts +36 -0
  299. package/src/__tests__/inbound-admitted-introduction-nudge.test.ts +296 -0
  300. package/src/__tests__/inbound-invite-redemption.test.ts +0 -7
  301. package/src/__tests__/inbound-slack-persistence.test.ts +0 -5
  302. package/src/__tests__/inbound-trust-verdict.test.ts +1 -8
  303. package/src/__tests__/inference-profile-reaper.test.ts +1 -7
  304. package/src/__tests__/inference-profile-session-handler.test.ts +0 -6
  305. package/src/__tests__/inference-profile-session-ipc.test.ts +0 -6
  306. package/src/__tests__/ingress-url-consistency.test.ts +1 -23
  307. package/src/__tests__/injection-block.test.ts +0 -1
  308. package/src/__tests__/injector-chain.test.ts +17 -0
  309. package/src/__tests__/injector-config-validation-reset-notice.test.ts +121 -0
  310. package/src/__tests__/injector-pkb-v2-silenced.test.ts +8 -0
  311. package/src/__tests__/injector-registry-order-guard.test.ts +1 -0
  312. package/src/__tests__/inline-command-runner.test.ts +0 -7
  313. package/src/__tests__/inline-skill-load-permissions.test.ts +29 -31
  314. package/src/__tests__/internal-telemetry-routes.test.ts +72 -7
  315. package/src/__tests__/interrupted-turn-reconciler.test.ts +126 -0
  316. package/src/__tests__/introduction-card-resolver.test.ts +0 -9
  317. package/src/__tests__/invite-redeemed-ipc.test.ts +0 -7
  318. package/src/__tests__/invite-routes-http.test.ts +46 -11
  319. package/src/__tests__/job-handler-registration-guard.test.ts +1 -1
  320. package/src/__tests__/jobs-store-qdrant-breaker.test.ts +0 -7
  321. package/src/__tests__/jobs-store-upsert-debounced.test.ts +0 -7
  322. package/src/__tests__/lexical-index-dual-write.test.ts +2 -8
  323. package/src/__tests__/list-messages-attachments.test.ts +0 -7
  324. package/src/__tests__/list-messages-background-tool-completion.test.ts +0 -7
  325. package/src/__tests__/list-messages-client-message-id.test.ts +0 -7
  326. package/src/__tests__/list-messages-hidden-metadata.test.ts +0 -7
  327. package/src/__tests__/list-messages-page-latest.test.ts +0 -7
  328. package/src/__tests__/list-messages-queued.test.ts +9 -10
  329. package/src/__tests__/list-messages-tool-merge.test.ts +0 -7
  330. package/src/__tests__/llm-catalog-parity.test.ts +20 -0
  331. package/src/__tests__/llm-context-resolution.test.ts +26 -1
  332. package/src/__tests__/llm-context-route-provider.test.ts +1 -8
  333. package/src/__tests__/llm-request-log-agent-loop-exit-reason.test.ts +9 -16
  334. package/src/__tests__/llm-request-log-call-site.test.ts +5 -12
  335. package/src/__tests__/llm-request-log-clickhouse-routing.test.ts +117 -0
  336. package/src/__tests__/llm-request-log-clickhouse-writer-guards.test.ts +115 -0
  337. package/src/__tests__/llm-request-log-disabled-writes.test.ts +72 -0
  338. package/src/__tests__/llm-request-log-sink-clickhouse.test.ts +211 -0
  339. package/src/__tests__/llm-request-log-source-clickhouse.test.ts +1 -22
  340. package/src/__tests__/llm-request-log-source-factory.test.ts +0 -21
  341. package/src/__tests__/llm-request-log-turn-query.test.ts +0 -7
  342. package/src/__tests__/llm-resolver-override-or-default.test.ts +563 -0
  343. package/src/__tests__/llm-resolver.test.ts +167 -6
  344. package/src/__tests__/llm-usage-store.test.ts +1 -7
  345. package/src/__tests__/log-export-routes.test.ts +0 -7
  346. package/src/__tests__/log-export-workspace.test.ts +0 -7
  347. package/src/__tests__/managed-profile-guard.test.ts +240 -6
  348. package/src/__tests__/managed-skill-lifecycle.test.ts +0 -7
  349. package/src/__tests__/managed-store.test.ts +1 -16
  350. package/src/__tests__/mcp-auth-routes.test.ts +1 -8
  351. package/src/__tests__/mcp-config-secret-boundary.test.ts +17 -5
  352. package/src/__tests__/media-generate-image.test.ts +20 -7
  353. package/src/__tests__/media-stream-output.test.ts +755 -71
  354. package/src/__tests__/media-stream-server-integration.test.ts +290 -60
  355. package/src/__tests__/media-stream-stt-session.test.ts +26 -13
  356. package/src/__tests__/memory-config-file-parity.test.ts +187 -0
  357. package/src/__tests__/memory-identity-context-parity.test.ts +103 -0
  358. package/src/__tests__/memory-jobs-worker-backoff.test.ts +8 -7
  359. package/src/__tests__/memory-jobs-worker-cleanup-cadence.test.ts +296 -0
  360. package/src/__tests__/memory-jobs-worker-lanes.test.ts +0 -7
  361. package/src/__tests__/memory-recall-log-store.test.ts +0 -7
  362. package/src/__tests__/memory-upsert-concurrency.test.ts +0 -7
  363. package/src/__tests__/message-queue.test.ts +40 -0
  364. package/src/__tests__/messages-after-tiebreaker.test.ts +1 -8
  365. package/src/__tests__/messaging-send-tool.test.ts +0 -7
  366. package/src/__tests__/migration-cross-version-compatibility.test.ts +0 -7
  367. package/src/__tests__/migration-export-http.test.ts +10 -12
  368. package/src/__tests__/migration-export-streaming.test.ts +0 -7
  369. package/src/__tests__/migration-export-to-gcs.test.ts +60 -7
  370. package/src/__tests__/migration-import-commit-http.test.ts +11 -12
  371. package/src/__tests__/migration-import-from-gcs.test.ts +0 -7
  372. package/src/__tests__/migration-import-from-url.test.ts +0 -7
  373. package/src/__tests__/migration-import-preflight-http.test.ts +10 -11
  374. package/src/__tests__/migration-jobs-status.test.ts +8 -11
  375. package/src/__tests__/migration-validate-http.test.ts +2 -8
  376. package/src/__tests__/model-intents.test.ts +18 -0
  377. package/src/__tests__/mtime-cache.test.ts +102 -9
  378. package/src/__tests__/non-member-access-request.test.ts +145 -7
  379. package/src/__tests__/notification-broadcaster.test.ts +0 -7
  380. package/src/__tests__/notification-candidate-guardian-context.test.ts +1 -8
  381. package/src/__tests__/notification-decision-fallback.test.ts +0 -7
  382. package/src/__tests__/notification-decision-identity.test.ts +0 -7
  383. package/src/__tests__/notification-decision-recipient-context.test.ts +0 -7
  384. package/src/__tests__/notification-deep-link.test.ts +415 -11
  385. package/src/__tests__/notification-guardian-path.test.ts +0 -7
  386. package/src/__tests__/notification-platform-adapter.test.ts +0 -7
  387. package/src/__tests__/notification-routing-intent.test.ts +1 -9
  388. package/src/__tests__/notification-schedule-notify-dedup.test.ts +1 -9
  389. package/src/__tests__/notification-telegram-adapter.test.ts +0 -7
  390. package/src/__tests__/oauth-cli.test.ts +0 -1
  391. package/src/__tests__/oauth-connect-orchestrator.test.ts +0 -8
  392. package/src/__tests__/oauth-connect-routes.test.ts +19 -18
  393. package/src/__tests__/oauth-provider-profiles.test.ts +0 -7
  394. package/src/__tests__/oauth-provider-visibility.test.ts +0 -7
  395. package/src/__tests__/oauth-store.test.ts +0 -7
  396. package/src/__tests__/openai-provider.test.ts +11 -0
  397. package/src/__tests__/openrouter-provider-only.test.ts +16 -5
  398. package/src/__tests__/openrouter-token-estimation.test.ts +2 -2
  399. package/src/__tests__/outbound-slack-persistence.test.ts +9 -7
  400. package/src/__tests__/outlook-email-watcher.test.ts +0 -9
  401. package/src/__tests__/path-policy.test.ts +0 -7
  402. package/src/__tests__/pending-interactions-resolved-event.test.ts +26 -4
  403. package/src/__tests__/persist-media-references.test.ts +112 -0
  404. package/src/__tests__/persist-unsendable-image-downscale.test.ts +9 -4
  405. package/src/__tests__/persist-unsendable-image.test.ts +39 -7
  406. package/src/__tests__/persist-user-message-set-processing-failure.test.ts +41 -0
  407. package/src/__tests__/persistence-secret-redaction.test.ts +7 -7
  408. package/src/__tests__/persona-resolver.test.ts +1 -1
  409. package/src/__tests__/personal-memory-auth-bypass.test.ts +2 -4
  410. package/src/__tests__/platform-bash-auto-approve.test.ts +20 -10
  411. package/src/__tests__/platform-callback-registration.test.ts +10 -9
  412. package/src/__tests__/platform-proxy-context.test.ts +0 -8
  413. package/src/__tests__/playbook-execution.test.ts +2 -33
  414. package/src/__tests__/playbook-tools.test.ts +0 -7
  415. package/src/__tests__/plugin-api-model-profiles.test.ts +25 -4
  416. package/src/__tests__/plugin-effective-enabled-set.test.ts +29 -29
  417. package/src/__tests__/plugin-hook-pipeline-hardening.test.ts +249 -0
  418. package/src/__tests__/plugin-import-boundary-guard.test.ts +13 -25
  419. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +316 -0
  420. package/src/__tests__/plugin-types.test.ts +1 -1
  421. package/src/__tests__/pointer-conversation-trust.test.ts +2 -4
  422. package/src/__tests__/pricing.test.ts +85 -2
  423. package/src/__tests__/process-message-background-slack.test.ts +4 -5
  424. package/src/__tests__/process-message-display-content.test.ts +102 -10
  425. package/src/__tests__/processing-flag-persist-failure.test.ts +0 -5
  426. package/src/__tests__/provider-commit-message-generator.test.ts +15 -8
  427. package/src/__tests__/provider-error-scenarios.test.ts +68 -5
  428. package/src/__tests__/provider-platform-proxy-integration.test.ts +17 -2
  429. package/src/__tests__/provider-registry-ollama.test.ts +14 -1
  430. package/src/__tests__/provider-send-message-override-profile.test.ts +13 -5
  431. package/src/__tests__/provider-streaming.benchmark.test.ts +1 -6
  432. package/src/__tests__/provider-usage-tracking.test.ts +9 -6
  433. package/src/__tests__/proxy-approval-callback.test.ts +0 -6
  434. package/src/__tests__/prune-old-conversations-job.test.ts +1 -9
  435. package/src/__tests__/prune-old-tool-invocations-job.test.ts +1 -9
  436. package/src/__tests__/public-ingress-urls.test.ts +1 -24
  437. package/src/__tests__/qdrant-collection-migration.test.ts +0 -7
  438. package/src/__tests__/qdrant-manager.test.ts +0 -8
  439. package/src/__tests__/ratelimit.test.ts +1 -8
  440. package/src/__tests__/reaction-persistence.test.ts +0 -7
  441. package/src/__tests__/rebuild-index-graph-nodes.test.ts +0 -11
  442. package/src/__tests__/registry.test.ts +39 -12
  443. package/src/__tests__/request-secret-standalone-channel-gate.test.ts +270 -0
  444. package/src/__tests__/require-fresh-approval.test.ts +47 -182
  445. package/src/__tests__/resolve-trust-class.test.ts +1 -1
  446. package/src/__tests__/retry-openrouter-only-normalization.test.ts +9 -5
  447. package/src/__tests__/retry-thinking-adaptive-only.test.ts +19 -5
  448. package/src/__tests__/retry-thinking-tool-choice.test.ts +65 -5
  449. package/src/__tests__/retry-verbosity-normalization.test.ts +9 -5
  450. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -7
  451. package/src/__tests__/runtime-events-sse-bilingual.test.ts +0 -7
  452. package/src/__tests__/runtime-events-sse-parity.test.ts +0 -7
  453. package/src/__tests__/runtime-events-sse-reconnect.test.ts +0 -7
  454. package/src/__tests__/runtime-events-sse.test.ts +0 -7
  455. package/src/__tests__/scaffold-managed-skill-tool.test.ts +131 -9
  456. package/src/__tests__/schedule-retry.test.ts +0 -8
  457. package/src/__tests__/schedule-routes-workflow-validation.test.ts +0 -7
  458. package/src/__tests__/schedule-routes.test.ts +0 -7
  459. package/src/__tests__/schedule-store.test.ts +0 -8
  460. package/src/__tests__/schedule-tools.test.ts +0 -7
  461. package/src/__tests__/scheduler-disk-pressure.test.ts +0 -10
  462. package/src/__tests__/scheduler-recurrence.test.ts +19 -96
  463. package/src/__tests__/scheduler-reuse-conversation.test.ts +75 -88
  464. package/src/__tests__/scheduler-wake.test.ts +12 -60
  465. package/src/__tests__/scheduler-worker-standdown.test.ts +0 -8
  466. package/src/__tests__/scoped-approval-grants.test.ts +1 -9
  467. package/src/__tests__/scoped-grant-security-matrix.test.ts +1 -9
  468. package/src/__tests__/secret-allowlist.test.ts +1 -8
  469. package/src/__tests__/secret-ingress-channel.test.ts +0 -7
  470. package/src/__tests__/secret-ingress-cli.test.ts +0 -7
  471. package/src/__tests__/secret-ingress-http.test.ts +3 -11
  472. package/src/__tests__/secret-patterns.test.ts +27 -0
  473. package/src/__tests__/secret-prompter-channel-fallback.test.ts +35 -9
  474. package/src/__tests__/secret-response-routing.test.ts +1 -1
  475. package/src/__tests__/secret-routes-platform-proxy.test.ts +0 -7
  476. package/src/__tests__/secure-keys-managed-failover.test.ts +0 -7
  477. package/src/__tests__/secure-keys.test.ts +142 -33
  478. package/src/__tests__/send-endpoint-busy.test.ts +0 -19
  479. package/src/__tests__/sequence-store.test.ts +0 -9
  480. package/src/__tests__/server-history-render.test.ts +61 -8
  481. package/src/__tests__/service-contracts-import-guard.test.ts +4 -9
  482. package/src/__tests__/set-permission-mode.test.ts +0 -7
  483. package/src/__tests__/settings-routes.test.ts +0 -7
  484. package/src/__tests__/shell-credential-ref.test.ts +0 -8
  485. package/src/__tests__/shell-tool-proxy-mode.test.ts +0 -7
  486. package/src/__tests__/skill-projection-feature-flag.test.ts +35 -17
  487. package/src/__tests__/skill-projection.benchmark.test.ts +7 -7
  488. package/src/__tests__/skill-script-runner-sandbox.test.ts +0 -7
  489. package/src/__tests__/skills-files-catalog-fallback.test.ts +0 -7
  490. package/src/__tests__/slack-channels-routes.test.ts +34 -16
  491. package/src/__tests__/slack-inbound-verification.test.ts +0 -7
  492. package/src/__tests__/slack-reaction-canonical-approval.test.ts +0 -8
  493. package/src/__tests__/slack-users-routes.test.ts +148 -0
  494. package/src/__tests__/slim-skill-category.test.ts +0 -7
  495. package/src/__tests__/stale-approval-dedup.test.ts +0 -7
  496. package/src/__tests__/subagent-call-site-routing.test.ts +45 -11
  497. package/src/__tests__/subagent-detail.test.ts +2 -1
  498. package/src/__tests__/subagent-fork-prompt-role.test.ts +0 -5
  499. package/src/__tests__/subagent-fork-spawn.test.ts +0 -37
  500. package/src/__tests__/subagent-spawn-and-await.test.ts +0 -5
  501. package/src/__tests__/subagent-tool-gate-mode.test.ts +1 -7
  502. package/src/__tests__/subagent-tools.test.ts +77 -36
  503. package/src/__tests__/suggestion-routes.test.ts +28 -42
  504. package/src/__tests__/summarize-boundary.test.ts +169 -0
  505. package/src/__tests__/task-compiler.test.ts +0 -7
  506. package/src/__tests__/task-management-tools.test.ts +0 -7
  507. package/src/__tests__/task-memory-cleanup.test.ts +0 -18
  508. package/src/__tests__/task-scheduler.test.ts +40 -9
  509. package/src/__tests__/telegram-bot-username-resolution.test.ts +0 -8
  510. package/src/__tests__/telephony-tts-guard.test.ts +118 -26
  511. package/src/__tests__/test-preload.ts +11 -1
  512. package/src/__tests__/thread-backfill.test.ts +2 -8
  513. package/src/__tests__/token-manager.test.ts +0 -9
  514. package/src/__tests__/tool-approval-handler.test.ts +57 -88
  515. package/src/__tests__/{tool-audit-listener.test.ts → tool-audit.test.ts} +230 -255
  516. package/src/__tests__/tool-execution-abort-cleanup.test.ts +5 -33
  517. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +1 -8
  518. package/src/__tests__/tool-executor-lifecycle-events.test.ts +308 -411
  519. package/src/__tests__/tool-executor.test.ts +37 -26
  520. package/src/__tests__/tool-grant-request-escalation.test.ts +17 -31
  521. package/src/__tests__/tool-preview-lifecycle.test.ts +2 -8
  522. package/src/__tests__/tool-profiler.test.ts +139 -0
  523. package/src/__tests__/tool-result-metadata-plumbing.test.ts +0 -8
  524. package/src/__tests__/tool-start-timestamp.test.ts +4 -10
  525. package/src/__tests__/tools-get-route.test.ts +75 -3
  526. package/src/__tests__/trust-context-guards.test.ts +1 -1
  527. package/src/__tests__/trusted-contact-approval-notifier.test.ts +1 -1
  528. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +9 -26
  529. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +0 -7
  530. package/src/__tests__/trusted-contact-multichannel.test.ts +0 -7
  531. package/src/__tests__/trusted-contact-verification.test.ts +6 -139
  532. package/src/__tests__/turn-boundary-resolution.test.ts +0 -7
  533. package/src/__tests__/turn-events-store.test.ts +51 -7
  534. package/src/__tests__/turn-outcome-read.test.ts +75 -0
  535. package/src/__tests__/twilio-config.test.ts +0 -7
  536. package/src/__tests__/twilio-provider.test.ts +0 -7
  537. package/src/__tests__/twilio-routes-twiml.test.ts +1 -8
  538. package/src/__tests__/twilio-routes.test.ts +12 -5
  539. package/src/__tests__/twilio-validation.test.ts +0 -7
  540. package/src/__tests__/usage-attribution.test.ts +91 -1
  541. package/src/__tests__/usage-cache-backfill-migration.test.ts +0 -7
  542. package/src/__tests__/usage-routes.test.ts +1 -8
  543. package/src/__tests__/vbundle-pax-and-symlink.test.ts +0 -7
  544. package/src/__tests__/vercel-ai-gateway-provider.test.ts +283 -0
  545. package/src/__tests__/vercel-config.test.ts +0 -7
  546. package/src/__tests__/verification-control-plane-policy.test.ts +60 -31
  547. package/src/__tests__/voice-approval-resolver-relay.test.ts +3 -9
  548. package/src/__tests__/voice-config-update.test.ts +1 -22
  549. package/src/__tests__/voice-guardian-cold-cache-warm.test.ts +8 -17
  550. package/src/__tests__/voice-scoped-grant-consumer.test.ts +1 -10
  551. package/src/__tests__/voice-session-bridge-processing-wait.test.ts +0 -7
  552. package/src/__tests__/voice-session-bridge.test.ts +116 -68
  553. package/src/__tests__/workspace-git-service.test.ts +207 -2
  554. package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +0 -8
  555. package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +0 -8
  556. package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +0 -8
  557. package/src/__tests__/workspace-migration-126-strip-managed-profile-bodies.test.ts +192 -0
  558. package/src/__tests__/workspace-migration-127-backfill-default-provider.test.ts +277 -0
  559. package/src/__tests__/workspace-migration-128-repair-stale-openrouter-grok-model-ids.test.ts +135 -0
  560. package/src/__tests__/workspace-migration-129-remove-analyze-conversation-config.test.ts +190 -0
  561. package/src/__tests__/workspace-tool-loader.test.ts +5 -1
  562. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +1 -10
  563. package/src/a2a/__tests__/task-store.test.ts +0 -9
  564. package/src/acp/__tests__/session-manager-persistence.test.ts +1 -8
  565. package/src/acp/__tests__/session-manager-resume.test.ts +0 -7
  566. package/src/acp/__tests__/session-manager-startup.test.ts +1 -8
  567. package/src/agent/attachments.ts +57 -0
  568. package/src/agent/image-optimize.ts +80 -0
  569. package/src/agent/loop-exclusive-tool.test.ts +28 -5
  570. package/src/agent/loop.ts +25 -63
  571. package/src/api/responses/conversation-message.ts +9 -15
  572. package/src/approvals/guardian-expiry-notifier.ts +6 -0
  573. package/src/approvals/guardian-request-resolvers.ts +42 -21
  574. package/src/background-wake/wake-intent-hooks.test.ts +2 -10
  575. package/src/browser/operation-meta.ts +493 -0
  576. package/src/browser/operations.ts +2 -477
  577. package/src/calls/__tests__/call-setup-router.test.ts +341 -321
  578. package/src/calls/__tests__/channel-admission-reader.test.ts +50 -24
  579. package/src/calls/__tests__/fish-audio-client.test.ts +35 -11
  580. package/src/calls/__tests__/inbound-trust-reader.test.ts +157 -34
  581. package/src/calls/__tests__/tts-text-sanitizer.test.ts +22 -0
  582. package/src/calls/__tests__/voice-session-bridge.test.ts +884 -0
  583. package/src/calls/access-request-wait.ts +3 -1
  584. package/src/calls/audio-store.ts +6 -6
  585. package/src/calls/call-constants.ts +1 -1
  586. package/src/calls/call-controller.ts +242 -64
  587. package/src/calls/call-setup-flow-types.ts +2 -2
  588. package/src/calls/call-setup-flow.ts +19 -57
  589. package/src/calls/call-setup-router.ts +63 -39
  590. package/src/calls/call-speech-output.ts +39 -39
  591. package/src/calls/call-transport.ts +17 -5
  592. package/src/calls/channel-admission-reader.ts +38 -28
  593. package/src/calls/fish-audio-client.ts +24 -52
  594. package/src/calls/gateway-invite-reader.ts +15 -19
  595. package/src/calls/inbound-trust-reader.ts +74 -25
  596. package/src/calls/media-stream-audio-transcode.ts +1 -1
  597. package/src/calls/media-stream-output.ts +482 -64
  598. package/src/calls/media-stream-server.ts +156 -83
  599. package/src/calls/media-stream-stt-session.ts +1 -0
  600. package/src/calls/resolve-call-tts-provider.ts +60 -17
  601. package/src/calls/telephony-tts-capability.ts +13 -13
  602. package/src/calls/tts-text-sanitizer.ts +5 -3
  603. package/src/calls/unresolved-caller-trust.ts +36 -0
  604. package/src/calls/voice-session-bridge.ts +397 -52
  605. package/src/channels/__tests__/gateway-invites.test.ts +257 -0
  606. package/src/channels/gateway-invites.ts +142 -0
  607. package/src/channels/gateway-verification-sessions.ts +4 -8
  608. package/src/cli/AGENTS.md +60 -51
  609. package/src/cli/commands/__tests__/inference-models.test.ts +86 -0
  610. package/src/cli/commands/__tests__/inference-profiles.test.ts +254 -0
  611. package/src/cli/commands/__tests__/inference-providers.test.ts +171 -0
  612. package/src/cli/commands/__tests__/schedules.test.ts +133 -1
  613. package/src/cli/commands/__tests__/usage.test.ts +131 -0
  614. package/src/cli/commands/attachment.help.ts +100 -0
  615. package/src/cli/commands/attachment.ts +92 -157
  616. package/src/cli/commands/audit.help.ts +40 -0
  617. package/src/cli/commands/audit.ts +66 -86
  618. package/src/cli/commands/auth.help.ts +46 -0
  619. package/src/cli/commands/auth.ts +10 -43
  620. package/src/cli/commands/avatar.help.ts +236 -0
  621. package/src/cli/commands/avatar.ts +66 -250
  622. package/src/cli/commands/backup.help.ts +190 -0
  623. package/src/cli/commands/backup.ts +109 -276
  624. package/src/cli/commands/bash.help.ts +45 -0
  625. package/src/cli/commands/bash.ts +55 -75
  626. package/src/cli/commands/browser.help.ts +196 -0
  627. package/src/cli/commands/browser.ts +241 -352
  628. package/src/cli/commands/config.ts +166 -164
  629. package/src/cli/commands/contacts.ts +13 -22
  630. package/src/cli/commands/credentials.ts +38 -28
  631. package/src/cli/commands/db/repair-step-conversation-backfill.ts +19 -10
  632. package/src/cli/commands/db/repair.ts +20 -8
  633. package/src/cli/commands/default-action.ts +8 -3
  634. package/src/cli/commands/domain.ts +36 -22
  635. package/src/cli/commands/email.ts +77 -36
  636. package/src/cli/commands/inference-callsites.ts +158 -0
  637. package/src/cli/commands/inference-models.ts +84 -0
  638. package/src/cli/commands/inference-profiles.ts +371 -0
  639. package/src/cli/commands/inference-providers-default.ts +89 -0
  640. package/src/cli/commands/inference-providers.ts +117 -24
  641. package/src/cli/commands/inference.ts +6 -0
  642. package/src/cli/commands/keys.ts +27 -38
  643. package/src/cli/commands/memory/index.ts +8 -0
  644. package/src/cli/commands/memory/memory-retrospective.ts +7 -5
  645. package/src/cli/commands/memory/memory-v2-compare-render.ts +2 -2
  646. package/src/cli/commands/memory/nodes.ts +301 -0
  647. package/src/cli/commands/oauth/shared.ts +1 -1
  648. package/src/cli/commands/oauth/status.test.ts +6 -6
  649. package/src/cli/commands/oauth/status.ts +12 -6
  650. package/src/cli/commands/oauth/token.ts +1 -26
  651. package/src/cli/commands/plugins.ts +210 -116
  652. package/src/cli/commands/schedules.ts +17 -2
  653. package/src/cli/commands/tools-run.ts +4 -4
  654. package/src/cli/commands/tools.ts +23 -7
  655. package/src/cli/commands/ui.ts +2 -3
  656. package/src/cli/commands/usage.ts +59 -21
  657. package/src/cli/index.help.ts +31 -0
  658. package/src/cli/lib/__tests__/cli-output.test.ts +20 -0
  659. package/src/cli/lib/__tests__/diff-plugin.test.ts +2 -5
  660. package/src/cli/lib/__tests__/inspect-plugin.test.ts +1 -1
  661. package/src/cli/lib/__tests__/install-from-github.test.ts +37 -5
  662. package/src/cli/lib/__tests__/install-from-platform.test.ts +497 -0
  663. package/src/cli/lib/__tests__/list-installed-plugins.test.ts +36 -0
  664. package/src/cli/lib/__tests__/plugin-artifact.test.ts +54 -1
  665. package/src/cli/lib/__tests__/plugin-details.test.ts +137 -1
  666. package/src/cli/lib/__tests__/plugin-icon-file.test.ts +142 -0
  667. package/src/cli/lib/__tests__/plugin-marketplace.test.ts +1 -1
  668. package/src/cli/lib/__tests__/plugin-pin-history.test.ts +1 -1
  669. package/src/cli/lib/__tests__/search-plugins.test.ts +1 -1
  670. package/src/cli/lib/__tests__/uninstall-plugin.test.ts +82 -21
  671. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +1 -1
  672. package/src/cli/lib/cli-command-help.ts +119 -0
  673. package/src/cli/lib/cli-output.ts +55 -0
  674. package/src/cli/lib/diff-plugin.ts +2 -2
  675. package/src/cli/lib/fetch-like.ts +11 -0
  676. package/src/cli/lib/inspect-plugin.ts +2 -2
  677. package/src/cli/lib/install-from-github.ts +61 -15
  678. package/src/cli/lib/install-from-platform.ts +618 -0
  679. package/src/cli/lib/list-installed-plugins.ts +39 -5
  680. package/src/cli/lib/plugin-artifact.ts +30 -0
  681. package/src/cli/lib/plugin-constants.ts +27 -0
  682. package/src/cli/lib/plugin-details.ts +51 -11
  683. package/src/cli/lib/plugin-icon-file.ts +101 -0
  684. package/src/cli/lib/plugin-marketplace.ts +1 -4
  685. package/src/cli/lib/plugin-pin-history.ts +27 -12
  686. package/src/cli/lib/publish-plugin.ts +3 -3
  687. package/src/cli/lib/search-plugins.ts +2 -6
  688. package/src/cli/lib/uninstall-plugin.ts +24 -2
  689. package/src/cli/lib/upgrade-plugin.ts +8 -22
  690. package/src/cli/program.ts +0 -2
  691. package/src/cli.ts +22 -13
  692. package/src/config/__tests__/default-profile-catalog.test.ts +384 -0
  693. package/src/config/__tests__/default-provider.test.ts +245 -0
  694. package/src/config/__tests__/deployment-context-defaults.test.ts +0 -21
  695. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +0 -21
  696. package/src/config/__tests__/loader-last-known-good.test.ts +208 -0
  697. package/src/config/__tests__/loader-sparse-array-cleanup.test.ts +145 -0
  698. package/src/config/__tests__/profile-materialization.test.ts +297 -0
  699. package/src/config/__tests__/seed-default-provider.test.ts +210 -0
  700. package/src/config/__tests__/sync-gated-profiles.test.ts +27 -34
  701. package/src/config/assistant-feature-flags.ts +1 -1
  702. package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +9 -8
  703. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +0 -6
  704. package/src/config/bundled-skills/phone-calls/references/CONFIG.md +2 -2
  705. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +0 -3
  706. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +0 -3
  707. package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +1 -3
  708. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +0 -4
  709. package/src/config/bundled-skills/schedule/SKILL.md +17 -0
  710. package/src/config/bundled-skills/transcribe/tools/transcribe-media.test.ts +0 -7
  711. package/src/config/call-site-defaults.ts +5 -2
  712. package/src/config/default-profile-catalog.ts +481 -0
  713. package/src/config/default-profile-names.ts +44 -0
  714. package/src/config/default-provider-resolution.ts +33 -0
  715. package/src/config/default-provider.ts +38 -0
  716. package/src/config/env-registry.ts +2 -0
  717. package/src/config/env.ts +0 -6
  718. package/src/config/feature-flag-registry.json +42 -50
  719. package/src/config/inference-profile-validation.ts +5 -4
  720. package/src/config/llm-resolver.ts +447 -24
  721. package/src/config/loader.ts +345 -10
  722. package/src/config/profile-materialization.ts +151 -0
  723. package/src/config/schema.ts +2 -52
  724. package/src/config/schemas/__tests__/live-voice.test.ts +108 -0
  725. package/src/config/schemas/__tests__/llm-request-logs.test.ts +33 -5
  726. package/src/config/schemas/call-site-catalog.ts +0 -6
  727. package/src/config/schemas/calls.ts +9 -0
  728. package/src/config/schemas/conversations.ts +1 -1
  729. package/src/config/schemas/live-voice.ts +77 -0
  730. package/src/config/schemas/llm-request-logs.ts +78 -27
  731. package/src/config/schemas/llm.ts +53 -2
  732. package/src/config/schemas/memory-lifecycle.ts +0 -6
  733. package/src/config/schemas/memory.ts +57 -1
  734. package/src/config/seed-inference-profiles.ts +100 -289
  735. package/src/config/sync-gated-profiles.ts +17 -23
  736. package/src/contacts/canonical-guardian-store.ts +6 -0
  737. package/src/contacts/contact-store.ts +272 -51
  738. package/src/contacts/contacts-write.ts +0 -22
  739. package/src/contacts/guardian-contact-reader.ts +3 -2
  740. package/src/contacts/member-write-relay.ts +2 -19
  741. package/src/contacts/types.ts +2 -1
  742. package/src/context/compactor.ts +230 -38
  743. package/src/context/image-dimensions.ts +25 -3
  744. package/src/context/token-estimator.ts +11 -7
  745. package/src/conversations/__tests__/message-consolidation.test.ts +6 -5
  746. package/src/conversations/job-handlers/summarization.ts +0 -2
  747. package/src/conversations/message-consolidation.ts +34 -112
  748. package/src/credential-execution/executable-discovery.ts +16 -144
  749. package/src/credential-execution/process-manager.test.ts +1 -112
  750. package/src/credential-execution/process-manager.ts +13 -379
  751. package/src/credential-execution/prompted-credential.ts +1 -1
  752. package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +1 -1
  753. package/src/daemon/__tests__/inference-profile-notification.test.ts +0 -8
  754. package/src/daemon/__tests__/inflight-message-content.test.ts +219 -0
  755. package/src/daemon/__tests__/native-web-search-metadata.test.ts +0 -8
  756. package/src/daemon/__tests__/wake-conversation-ops-completion.test.ts +0 -6
  757. package/src/daemon/__tests__/web-search-status-text.test.ts +0 -8
  758. package/src/daemon/approval-generators.ts +17 -11
  759. package/src/daemon/assistant-attachments.ts +86 -87
  760. package/src/daemon/config-watcher.ts +67 -21
  761. package/src/daemon/conversation-agent-loop-handlers.ts +146 -50
  762. package/src/daemon/conversation-agent-loop.ts +136 -34
  763. package/src/daemon/conversation-error.ts +291 -109
  764. package/src/daemon/conversation-history.ts +6 -12
  765. package/src/daemon/conversation-initial-prompt.ts +1 -1
  766. package/src/daemon/conversation-launch.ts +1 -1
  767. package/src/daemon/conversation-lifecycle.ts +5 -22
  768. package/src/daemon/conversation-media-retry.ts +3 -2
  769. package/src/daemon/conversation-messaging.ts +296 -66
  770. package/src/daemon/conversation-notifiers.ts +1 -1
  771. package/src/daemon/conversation-process.ts +162 -12
  772. package/src/daemon/conversation-queue-manager.ts +12 -0
  773. package/src/daemon/conversation-runtime-assembly.ts +197 -53
  774. package/src/daemon/conversation-skill-tools.ts +27 -9
  775. package/src/daemon/conversation-slash.ts +2 -4
  776. package/src/daemon/conversation-store.ts +11 -13
  777. package/src/daemon/conversation-surfaces.ts +145 -176
  778. package/src/daemon/conversation-tool-setup.ts +18 -12
  779. package/src/daemon/conversation-turn-finalize.ts +18 -1
  780. package/src/daemon/conversation.ts +265 -85
  781. package/src/daemon/disk-pressure-policy.ts +1 -1
  782. package/src/daemon/event-loop-watchdog.test.ts +1 -6
  783. package/src/daemon/event-loop-watchdog.ts +2 -20
  784. package/src/daemon/handlers/__tests__/config-a2a-accept.test.ts +0 -7
  785. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +1 -8
  786. package/src/daemon/handlers/__tests__/config-a2a-invite.test.ts +1 -8
  787. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +1 -8
  788. package/src/daemon/handlers/__tests__/config-a2a.test.ts +1 -8
  789. package/src/daemon/handlers/config-a2a.ts +0 -3
  790. package/src/daemon/handlers/conversation-history.ts +6 -4
  791. package/src/daemon/handlers/shared.ts +224 -79
  792. package/src/daemon/handlers/skills.ts +8 -0
  793. package/src/daemon/inflight-message-content.ts +228 -0
  794. package/src/daemon/interrupted-turn-reconciler.ts +134 -0
  795. package/src/daemon/lifecycle.ts +120 -64
  796. package/src/daemon/main.ts +1 -5
  797. package/src/daemon/message-types/conversations.ts +2 -0
  798. package/src/daemon/message-types/host-bash.ts +1 -1
  799. package/src/daemon/message-types/skills.ts +6 -0
  800. package/src/daemon/message-types/sync.ts +1 -0
  801. package/src/daemon/orphan-reaper.test.ts +1 -6
  802. package/src/daemon/persist-media-references.ts +151 -0
  803. package/src/daemon/pointer-conversation-trust.ts +2 -4
  804. package/src/daemon/process-message.ts +82 -8
  805. package/src/daemon/providers-setup.ts +1 -4
  806. package/src/daemon/shutdown-handlers.ts +0 -4
  807. package/src/daemon/sqlite-corruption-watchdog.test.ts +0 -13
  808. package/src/daemon/sqlite-corruption-watchdog.ts +2 -15
  809. package/src/daemon/summarize-boundary.ts +62 -0
  810. package/src/daemon/tool-setup-types.ts +1 -1
  811. package/src/daemon/trust-context-types.ts +61 -0
  812. package/src/daemon/trust-context.ts +5 -55
  813. package/src/daemon/wake-conversation-ops.ts +4 -1
  814. package/src/documents/document-comments-store.test.ts +1 -7
  815. package/src/export/__tests__/transcript-formatter.test.ts +13 -8
  816. package/src/export/formatter.ts +8 -17
  817. package/src/export/transcript-formatter.ts +13 -40
  818. package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +0 -9
  819. package/src/heartbeat/__tests__/heartbeat-service.test.ts +0 -2
  820. package/src/home/__tests__/home-content-refresh.test.ts +0 -7
  821. package/src/home/__tests__/suggested-prompts.test.ts +4 -12
  822. package/src/home/conversation-starter-checkpoints.ts +9 -5
  823. package/src/home/job-handlers/conversation-starters.ts +24 -54
  824. package/src/home/suggested-prompts-cache.ts +91 -0
  825. package/src/home/suggested-prompts.ts +4 -77
  826. package/src/hooks/__tests__/hook-live-reload.test.ts +62 -48
  827. package/src/hooks/hook-loader.ts +215 -194
  828. package/src/hooks/types.ts +2 -2
  829. package/src/ipc/__tests__/contacts-info-ipc.test.ts +66 -11
  830. package/src/ipc/assistant-server.ts +14 -34
  831. package/src/ipc/gateway-flag-listener.ts +14 -25
  832. package/src/ipc/gateway-validated-call.ts +32 -0
  833. package/src/ipc/routes/__tests__/contacts-mirror-ipc-routes.test.ts +149 -17
  834. package/src/ipc/routes/__tests__/contacts-mirror-merge-contact.test.ts +197 -0
  835. package/src/ipc/routes/__tests__/contacts-mirror-upsert-full.test.ts +368 -0
  836. package/src/ipc/routes/__tests__/guardian-label-ipc-routes.test.ts +74 -0
  837. package/src/ipc/routes/__tests__/invite-ipc-routes.test.ts +0 -7
  838. package/src/ipc/routes/__tests__/memory-v2-backfill.test.ts +5 -7
  839. package/src/ipc/routes/contacts-info-ipc-routes.ts +5 -2
  840. package/src/ipc/routes/contacts-mirror-ipc-routes.ts +78 -1
  841. package/src/ipc/routes/db-proxy.ts +9 -15
  842. package/src/ipc/routes/guardian-label-ipc-routes.ts +42 -0
  843. package/src/live-voice/__tests__/live-voice-archive.test.ts +1 -8
  844. package/src/live-voice/__tests__/live-voice-credential-preflight.test.ts +275 -0
  845. package/src/live-voice/__tests__/live-voice-integration.test.ts +124 -0
  846. package/src/live-voice/__tests__/live-voice-metrics.test.ts +67 -0
  847. package/src/live-voice/__tests__/live-voice-session-preflight.test.ts +156 -0
  848. package/src/live-voice/__tests__/live-voice-stt.test.ts +464 -19
  849. package/src/live-voice/__tests__/live-voice-tts-session.test.ts +350 -4
  850. package/src/live-voice/__tests__/live-voice-tts.test.ts +186 -10
  851. package/src/live-voice/__tests__/live-voice-vad.test.ts +372 -10
  852. package/src/live-voice/__tests__/protocol.test.ts +2 -0
  853. package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +61 -9
  854. package/src/live-voice/live-voice-credential-preflight.ts +205 -0
  855. package/src/live-voice/live-voice-metrics.ts +44 -0
  856. package/src/live-voice/live-voice-session-manager.ts +19 -0
  857. package/src/live-voice/live-voice-session.ts +1015 -276
  858. package/src/live-voice/live-voice-tts.ts +50 -4
  859. package/src/live-voice/protocol.ts +8 -0
  860. package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +3 -7
  861. package/src/messaging/channel-binding-schema.ts +15 -7
  862. package/src/messaging/providers/a2a/__tests__/deliver.test.ts +0 -9
  863. package/src/messaging/providers/slack/__tests__/download.test.ts +1 -8
  864. package/src/messaging/providers/slack/binding-metadata.test.ts +63 -0
  865. package/src/messaging/providers/slack/binding-metadata.ts +6 -0
  866. package/src/messaging/providers/slack/conversation-utils.ts +7 -4
  867. package/src/messaging/providers/slack/send.test.ts +0 -7
  868. package/src/messaging/providers/slack/types.ts +2 -0
  869. package/src/messaging/providers/slack/withdraw.test.ts +0 -6
  870. package/src/messaging/providers/telegram-bot/send.test.ts +0 -7
  871. package/src/monitoring/__tests__/resource-sampler.test.ts +2 -4
  872. package/src/monitoring/__tests__/stall-capture.test.ts +1 -1
  873. package/src/monitoring/process-memory.ts +6 -1
  874. package/src/monitoring/resource-sample-types.ts +71 -0
  875. package/src/monitoring/resource-sampler.ts +7 -69
  876. package/src/monitoring/stall-capture.ts +1 -1
  877. package/src/notifications/__tests__/broadcaster.test.ts +100 -9
  878. package/src/notifications/__tests__/connected-channels.test.ts +11 -8
  879. package/src/notifications/__tests__/decision-engine.test.ts +0 -7
  880. package/src/notifications/__tests__/destination-resolver.test.ts +18 -12
  881. package/src/notifications/__tests__/deterministic-checks.test.ts +1 -9
  882. package/src/notifications/access-request-copy.ts +33 -1
  883. package/src/notifications/adapters/slack.ts +7 -2
  884. package/src/notifications/approval-card-data.ts +4 -2
  885. package/src/notifications/broadcaster.ts +118 -67
  886. package/src/notifications/copy-composer.ts +6 -2
  887. package/src/notifications/emit-signal.ts +23 -1
  888. package/src/notifications/signal.ts +5 -4
  889. package/src/notifications/types.ts +1 -1
  890. package/src/notifications/urgency.ts +5 -0
  891. package/src/oauth/byo-connection.test.ts +1 -10
  892. package/src/oauth/connect-orchestrator.ts +1 -1
  893. package/src/oauth/connection-resolver.test.ts +140 -7
  894. package/src/oauth/connection-resolver.ts +48 -12
  895. package/src/oauth/oauth-store.ts +4 -11
  896. package/src/onboarding/__tests__/onboarding-events-store.test.ts +0 -8
  897. package/src/permissions/approval-policy.test.ts +0 -314
  898. package/src/permissions/approval-policy.ts +38 -90
  899. package/src/permissions/checker.test.ts +3 -14
  900. package/src/permissions/checker.ts +95 -19
  901. package/src/permissions/confirmation-canonical-request.ts +118 -0
  902. package/src/permissions/gateway-threshold-reader.test.ts +0 -8
  903. package/src/permissions/ipc-risk-types.ts +2 -0
  904. package/src/permissions/prompter.ts +16 -3
  905. package/src/permissions/secret-prompt-types.ts +34 -0
  906. package/src/permissions/secret-prompter.ts +21 -19
  907. package/src/permissions/types.ts +0 -14
  908. package/src/persistence/__tests__/bulk-write-gate.test.ts +159 -0
  909. package/src/persistence/__tests__/conversation-queries-search.test.ts +0 -7
  910. package/src/persistence/__tests__/immediate-transaction-guard.test.ts +70 -0
  911. package/src/persistence/__tests__/message-content-file.test.ts +259 -0
  912. package/src/persistence/__tests__/slow-query-log.test.ts +125 -0
  913. package/src/persistence/attachments-store.ts +90 -26
  914. package/src/persistence/auto-analysis-constants.ts +4 -13
  915. package/src/persistence/bulk-write-gate.ts +82 -0
  916. package/src/persistence/cleanup-schedule-state.ts +51 -21
  917. package/src/persistence/conversation-bootstrap.ts +3 -3
  918. package/src/persistence/conversation-crud.ts +382 -105
  919. package/src/persistence/conversation-disk-view.ts +32 -15
  920. package/src/persistence/conversation-group-migration.test.ts +1 -8
  921. package/src/persistence/conversation-key-store.ts +0 -2
  922. package/src/persistence/conversation-plugin-facade.ts +190 -0
  923. package/src/persistence/conversation-row-batch-delete.ts +16 -1
  924. package/src/persistence/conversation-title-service.ts +59 -22
  925. package/src/persistence/conversation-types.ts +19 -4
  926. package/src/persistence/db-async-query.ts +18 -9
  927. package/src/persistence/db-connection.ts +20 -4
  928. package/src/persistence/db-init.ts +16 -173
  929. package/src/persistence/db-maintenance.ts +78 -6
  930. package/src/persistence/embeddings/__tests__/messages-lexical-index.test.ts +0 -7
  931. package/src/persistence/embeddings/plugin-facade.ts +37 -0
  932. package/src/persistence/embeddings/qdrant-client.ts +2 -18
  933. package/src/persistence/fork-message-copy.ts +18 -4
  934. package/src/persistence/job-handlers/__tests__/message-lexical-backfill.test.ts +0 -7
  935. package/src/persistence/job-handlers/__tests__/message-lexical-enqueue.test.ts +0 -6
  936. package/src/persistence/job-handlers/__tests__/message-lexical.test.ts +0 -7
  937. package/src/persistence/job-handlers/message-lexical-backfill.ts +8 -5
  938. package/src/persistence/job-handlers/message-lexical.ts +2 -2
  939. package/src/persistence/jobs-store.ts +48 -85
  940. package/src/persistence/llm-request-log-sink-clickhouse.ts +325 -0
  941. package/src/persistence/llm-request-log-store.ts +213 -100
  942. package/src/persistence/llm-request-log-writer-types.ts +80 -0
  943. package/src/persistence/message-content-file.ts +301 -0
  944. package/src/persistence/message-content.ts +33 -72
  945. package/src/persistence/migrations/321-canonical-guardian-request-trigger.ts +27 -0
  946. package/src/persistence/migrations/322-add-processing-resume-attempts.ts +31 -0
  947. package/src/persistence/migrations/323-delete-non-default-memory-scopes.test.ts +148 -0
  948. package/src/persistence/migrations/323-delete-non-default-memory-scopes.ts +35 -0
  949. package/src/persistence/migrations/324-message-finalized-column.ts +26 -0
  950. package/src/persistence/migrations/325-create-config-setting-events.ts +40 -0
  951. package/src/persistence/migrations/326-move-injection-events-to-memory-db.ts +104 -0
  952. package/src/persistence/migrations/327-create-flush-checkpoints.ts +86 -0
  953. package/src/persistence/migrations/__tests__/297-move-llm-request-logs.test.ts +2 -2
  954. package/src/persistence/migrations/__tests__/327-create-flush-checkpoints.test.ts +124 -0
  955. package/src/persistence/schema/conversations.ts +25 -1
  956. package/src/persistence/schema/guardian.ts +5 -0
  957. package/src/persistence/schema/infrastructure.ts +33 -0
  958. package/src/persistence/schema/memory-core.ts +17 -28
  959. package/src/persistence/schema/memory-graph.ts +0 -4
  960. package/src/persistence/schema/memory-injection.ts +3 -1
  961. package/src/persistence/schema/tasks.ts +0 -1
  962. package/src/persistence/slow-query-log.ts +58 -21
  963. package/src/persistence/steps.ts +14 -0
  964. package/src/platform/consent-cache.test.ts +0 -7
  965. package/src/platform/managed-speech.test.ts +218 -0
  966. package/src/platform/managed-speech.ts +195 -0
  967. package/src/playbooks/playbook-compiler.ts +2 -10
  968. package/src/plugin-api/index.ts +79 -0
  969. package/src/plugin-api/model-profiles.test.ts +31 -3
  970. package/src/plugin-api/model-profiles.ts +3 -1
  971. package/src/plugin-api/types.ts +12 -3
  972. package/src/plugin-api/vision-support.ts +4 -3
  973. package/src/plugins/AGENTS.md +19 -0
  974. package/src/plugins/__tests__/plugin-state-boundary-guard.test.ts +65 -0
  975. package/src/plugins/defaults/compaction/compact.ts +13 -0
  976. package/src/plugins/defaults/compaction/window-manager.ts +207 -43
  977. package/src/plugins/defaults/image-fallback/__tests__/caption-cache-persistence.test.ts +216 -0
  978. package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +281 -2
  979. package/src/plugins/defaults/image-fallback/__tests__/vision-recovery.test.ts +268 -0
  980. package/src/plugins/defaults/image-fallback/hooks/conversation-deleted.ts +27 -0
  981. package/src/plugins/defaults/image-fallback/hooks/init.ts +16 -0
  982. package/src/plugins/defaults/image-fallback/hooks/post-compact.ts +52 -0
  983. package/src/plugins/defaults/image-fallback/hooks/post-model-call.ts +80 -0
  984. package/src/plugins/defaults/image-fallback/hooks/post-tool-use.ts +7 -4
  985. package/src/plugins/defaults/image-fallback/hooks/shutdown.ts +14 -0
  986. package/src/plugins/defaults/image-fallback/hooks/stop.ts +23 -0
  987. package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +12 -12
  988. package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +73 -15
  989. package/src/plugins/defaults/image-fallback/src/caption-cache.ts +206 -20
  990. package/src/plugins/defaults/image-fallback/src/recovery-state.ts +49 -0
  991. package/src/plugins/defaults/image-fallback/src/vision-caption.ts +11 -3
  992. package/src/plugins/defaults/image-fallback/src/vision-error.ts +19 -0
  993. package/src/plugins/defaults/image-recovery/detect.ts +32 -10
  994. package/src/plugins/defaults/image-recovery/hooks/post-model-call.ts +20 -18
  995. package/src/plugins/defaults/image-recovery/recover.ts +97 -61
  996. package/src/plugins/defaults/index.ts +29 -5
  997. package/src/plugins/defaults/injector-order.ts +1 -0
  998. package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +1 -8
  999. package/src/plugins/defaults/memory/__tests__/clear-stale-processing-flags.test.ts +1 -8
  1000. package/src/plugins/defaults/memory/__tests__/conversation-queries.test.ts +1 -8
  1001. package/src/plugins/defaults/memory/__tests__/conversation-row-batch-delete.test.ts +0 -6
  1002. package/src/plugins/defaults/memory/__tests__/db-maintenance.test.ts +105 -11
  1003. package/src/plugins/defaults/memory/__tests__/db-memory-attach.test.ts +22 -18
  1004. package/src/plugins/defaults/memory/__tests__/embedding-cache.test.ts +0 -6
  1005. package/src/plugins/defaults/memory/__tests__/find-most-recent-retrospective-for.test.ts +1 -8
  1006. package/src/plugins/defaults/memory/__tests__/fork-message-copy.test.ts +0 -6
  1007. package/src/plugins/defaults/memory/__tests__/jobs-store-enqueue-gate.test.ts +7 -70
  1008. package/src/plugins/defaults/memory/__tests__/jobs-worker-memory-disabled.test.ts +0 -7
  1009. package/src/plugins/defaults/memory/__tests__/jobs-worker-pkb-schedule.test.ts +7 -0
  1010. package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +0 -5
  1011. package/src/plugins/defaults/memory/__tests__/jobs-worker-v2-schedule.test.ts +7 -0
  1012. package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +0 -7
  1013. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +186 -19
  1014. package/src/plugins/defaults/memory/__tests__/memory-retrospective-skill-card.test.ts +926 -0
  1015. package/src/plugins/defaults/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +136 -82
  1016. package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +0 -6
  1017. package/src/plugins/defaults/memory/__tests__/memory-retrospective-trigger-check.test.ts +217 -2
  1018. package/src/plugins/defaults/memory/__tests__/memory-v2-activation-log-store.test.ts +0 -7
  1019. package/src/plugins/defaults/memory/__tests__/memory-v2-concept-frequency.test.ts +0 -7
  1020. package/src/plugins/defaults/memory/__tests__/table-relocation.test.ts +49 -0
  1021. package/src/plugins/defaults/memory/activation-session-store.ts +1 -1
  1022. package/src/plugins/defaults/memory/anisotropy.ts +1 -1
  1023. package/src/plugins/defaults/memory/config.ts +155 -6
  1024. package/src/plugins/defaults/memory/context-search/agent-protocol.ts +1 -1
  1025. package/src/plugins/defaults/memory/context-search/search.ts +1 -1
  1026. package/src/plugins/defaults/memory/context-search/sources/conversations.ts +26 -23
  1027. package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +1 -1
  1028. package/src/plugins/defaults/memory/context-search/sources/memory.ts +1 -1
  1029. package/src/plugins/defaults/memory/embeddings.ts +8 -40
  1030. package/src/plugins/defaults/memory/filing-jobs.ts +1 -1
  1031. package/src/plugins/defaults/memory/fork-conversation-memory.ts +8 -4
  1032. package/src/plugins/defaults/memory/frontmatter.ts +1 -1
  1033. package/src/plugins/defaults/memory/graph/__tests__/handle-remember-v2.test.ts +4 -25
  1034. package/src/plugins/defaults/memory/graph/bootstrap.ts +13 -19
  1035. package/src/plugins/defaults/memory/graph/capability-seed.ts +62 -33
  1036. package/src/plugins/defaults/memory/graph/consolidation.ts +8 -15
  1037. package/src/plugins/defaults/memory/graph/conversation-graph-memory.ts +12 -4
  1038. package/src/plugins/defaults/memory/graph/decay.ts +5 -10
  1039. package/src/plugins/defaults/memory/graph/extraction-job.ts +2 -3
  1040. package/src/plugins/defaults/memory/graph/extraction.test.ts +1 -9
  1041. package/src/plugins/defaults/memory/graph/extraction.ts +149 -64
  1042. package/src/plugins/defaults/memory/graph/graph-search.test.ts +0 -6
  1043. package/src/plugins/defaults/memory/graph/graph-search.ts +33 -15
  1044. package/src/plugins/defaults/memory/graph/image-ref-utils.ts +7 -3
  1045. package/src/plugins/defaults/memory/graph/injection.test.ts +0 -1
  1046. package/src/plugins/defaults/memory/graph/injection.ts +1 -1
  1047. package/src/plugins/defaults/memory/graph/narrative.ts +2 -4
  1048. package/src/plugins/defaults/memory/graph/pattern-scan.ts +2 -5
  1049. package/src/plugins/defaults/memory/graph/retriever.test.ts +27 -28
  1050. package/src/plugins/defaults/memory/graph/retriever.ts +89 -42
  1051. package/src/plugins/defaults/memory/graph/scoring.test.ts +0 -1
  1052. package/src/plugins/defaults/memory/graph/store.test.ts +6 -58
  1053. package/src/plugins/defaults/memory/graph/store.ts +5 -43
  1054. package/src/plugins/defaults/memory/graph/tool-handlers.test.ts +318 -0
  1055. package/src/plugins/defaults/memory/graph/tool-handlers.ts +244 -8
  1056. package/src/plugins/defaults/memory/graph/tools.ts +1 -1
  1057. package/src/plugins/defaults/memory/graph/types.ts +0 -3
  1058. package/src/plugins/defaults/memory/graph-topology/__tests__/build-memory-graph.test.ts +130 -0
  1059. package/src/plugins/defaults/memory/graph-topology/build-memory-graph.ts +303 -0
  1060. package/src/plugins/defaults/memory/graph-topology/flag.ts +14 -0
  1061. package/src/plugins/defaults/memory/graph-topology/types.ts +84 -0
  1062. package/src/plugins/defaults/memory/hooks/init.ts +1 -1
  1063. package/src/plugins/defaults/memory/hooks/user-prompt-submit.ts +10 -10
  1064. package/src/plugins/defaults/memory/host-utils.ts +80 -0
  1065. package/src/plugins/defaults/memory/identity-context.ts +39 -0
  1066. package/src/plugins/defaults/memory/indexer.ts +18 -54
  1067. package/src/plugins/defaults/memory/injectors.ts +5 -8
  1068. package/src/plugins/defaults/memory/job-handler-registration.ts +0 -4
  1069. package/src/plugins/defaults/memory/job-handlers/backfill.ts +10 -8
  1070. package/src/plugins/defaults/memory/job-handlers/embedding.test.ts +0 -8
  1071. package/src/plugins/defaults/memory/job-handlers/embedding.ts +31 -17
  1072. package/src/plugins/defaults/memory/job-handlers/index-maintenance.ts +13 -6
  1073. package/src/plugins/defaults/memory/job-handlers.ts +10 -9
  1074. package/src/plugins/defaults/memory/jobs/__tests__/embed-concept-page.test.ts +0 -7
  1075. package/src/plugins/defaults/memory/jobs/embed-concept-page.ts +3 -3
  1076. package/src/plugins/defaults/memory/jobs/embed-pkb-file.test.ts +41 -28
  1077. package/src/plugins/defaults/memory/jobs/embed-pkb-file.ts +10 -5
  1078. package/src/plugins/defaults/memory/jobs-worker.ts +161 -50
  1079. package/src/plugins/defaults/memory/logging.ts +17 -0
  1080. package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +143 -0
  1081. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +19 -7
  1082. package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +5 -6
  1083. package/src/plugins/defaults/memory/memory-retrospective-fork-boundary.ts +57 -20
  1084. package/src/plugins/defaults/memory/memory-retrospective-job.ts +220 -79
  1085. package/src/plugins/defaults/memory/memory-retrospective-skill-card.ts +448 -0
  1086. package/src/plugins/defaults/memory/memory-retrospective-startup-cleanup.ts +52 -39
  1087. package/src/plugins/defaults/memory/memory-retrospective-state.ts +14 -10
  1088. package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +8 -3
  1089. package/src/plugins/defaults/memory/message-media.ts +80 -0
  1090. package/src/plugins/defaults/memory/paths.ts +48 -0
  1091. package/src/plugins/defaults/memory/pkb/autoinject.ts +1 -1
  1092. package/src/plugins/defaults/memory/pkb/context.ts +2 -2
  1093. package/src/plugins/defaults/memory/pkb/pkb-index.test.ts +25 -44
  1094. package/src/plugins/defaults/memory/pkb/pkb-index.ts +24 -25
  1095. package/src/plugins/defaults/memory/pkb/pkb-reconcile.test.ts +46 -34
  1096. package/src/plugins/defaults/memory/pkb/pkb-reconcile.ts +4 -9
  1097. package/src/plugins/defaults/memory/pkb/pkb-search.test.ts +5 -17
  1098. package/src/plugins/defaults/memory/pkb/pkb-search.ts +2 -9
  1099. package/src/plugins/defaults/memory/pkb/types.ts +1 -12
  1100. package/src/plugins/defaults/memory/pkb-schedule.ts +2 -2
  1101. package/src/plugins/defaults/memory/rerank-local.ts +3 -4
  1102. package/src/plugins/defaults/memory/routes/__tests__/memory-v2-simulate-route.test.ts +9 -17
  1103. package/src/plugins/defaults/memory/routes/memory-eval-routes.ts +2 -2
  1104. package/src/plugins/defaults/memory/routes/memory-graph-routes.ts +71 -0
  1105. package/src/plugins/defaults/memory/routes/memory-item-routes.test.ts +149 -9
  1106. package/src/plugins/defaults/memory/routes/memory-item-routes.ts +147 -12
  1107. package/src/plugins/defaults/memory/routes/memory-v2-routes.ts +7 -11
  1108. package/src/plugins/defaults/memory/routes/memory-v3-routes.ts +1 -1
  1109. package/src/plugins/defaults/memory/startup.ts +3 -4
  1110. package/src/plugins/defaults/memory/task-memory-cleanup.ts +1 -1
  1111. package/src/plugins/defaults/memory/tools.test.ts +1 -9
  1112. package/src/plugins/defaults/memory/tools.ts +0 -1
  1113. package/src/plugins/defaults/memory/v2/__tests__/activation.test.ts +0 -5
  1114. package/src/plugins/defaults/memory/v2/__tests__/backfill-jobs.test.ts +0 -6
  1115. package/src/plugins/defaults/memory/v2/__tests__/cli-command-store.test.ts +6 -6
  1116. package/src/plugins/defaults/memory/v2/__tests__/consolidation-job.test.ts +48 -6
  1117. package/src/plugins/defaults/memory/v2/__tests__/harness-compare.test.ts +0 -5
  1118. package/src/plugins/defaults/memory/v2/__tests__/harness-oracle.test.ts +0 -5
  1119. package/src/plugins/defaults/memory/v2/__tests__/harness-replay-input.test.ts +0 -5
  1120. package/src/plugins/defaults/memory/v2/__tests__/injection-events.test.ts +61 -69
  1121. package/src/plugins/defaults/memory/v2/__tests__/injection.test.ts +0 -5
  1122. package/src/plugins/defaults/memory/v2/__tests__/migration.test.ts +0 -6
  1123. package/src/plugins/defaults/memory/v2/__tests__/page-index.test.ts +0 -5
  1124. package/src/plugins/defaults/memory/v2/__tests__/prompts-consolidation.test.ts +28 -0
  1125. package/src/plugins/defaults/memory/v2/__tests__/qdrant.test.ts +3 -6
  1126. package/src/plugins/defaults/memory/v2/__tests__/reranker.test.ts +3 -5
  1127. package/src/plugins/defaults/memory/v2/__tests__/router.test.ts +16 -27
  1128. package/src/plugins/defaults/memory/v2/__tests__/sim.test.ts +0 -5
  1129. package/src/plugins/defaults/memory/v2/__tests__/skill-content.test.ts +1 -1
  1130. package/src/plugins/defaults/memory/v2/__tests__/skill-store.test.ts +56 -22
  1131. package/src/plugins/defaults/memory/v2/__tests__/static-context.test.ts +9 -6
  1132. package/src/plugins/defaults/memory/v2/__tests__/sweep-job.test.ts +6 -6
  1133. package/src/plugins/defaults/memory/v2/backfill-jobs.ts +31 -16
  1134. package/src/plugins/defaults/memory/v2/cli-command-content.ts +78 -0
  1135. package/src/plugins/defaults/memory/v2/cli-command-store.ts +32 -11
  1136. package/src/plugins/defaults/memory/v2/consolidation-job.ts +45 -5
  1137. package/src/plugins/defaults/memory/v2/frontmatter-sweep.ts +1 -1
  1138. package/src/plugins/defaults/memory/v2/harness/harness-types.ts +12 -0
  1139. package/src/plugins/defaults/memory/v2/harness/retriever.ts +1 -8
  1140. package/src/plugins/defaults/memory/v2/harness/router-retriever.ts +1 -8
  1141. package/src/plugins/defaults/memory/v2/harness/trace.ts +1 -1
  1142. package/src/plugins/defaults/memory/v2/injection-events.ts +34 -15
  1143. package/src/plugins/defaults/memory/v2/injection.ts +3 -4
  1144. package/src/plugins/defaults/memory/v2/memory-v2-startup.test.ts +0 -5
  1145. package/src/plugins/defaults/memory/v2/memory-v2-startup.ts +2 -2
  1146. package/src/plugins/defaults/memory/v2/migration.ts +1 -1
  1147. package/src/plugins/defaults/memory/v2/page-index.ts +1 -1
  1148. package/src/plugins/defaults/memory/v2/prompts/consolidation.ts +6 -2
  1149. package/src/plugins/defaults/memory/v2/prompts/router.ts +1 -1
  1150. package/src/plugins/defaults/memory/v2/qdrant.ts +2 -2
  1151. package/src/plugins/defaults/memory/v2/reranker.ts +2 -2
  1152. package/src/plugins/defaults/memory/v2/router.ts +10 -20
  1153. package/src/plugins/defaults/memory/v2/skill-content.ts +23 -4
  1154. package/src/plugins/defaults/memory/v2/skill-store.ts +44 -43
  1155. package/src/plugins/defaults/memory/v2/static-context.ts +7 -12
  1156. package/src/plugins/defaults/memory/v2/sweep-job.ts +24 -13
  1157. package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +19 -0
  1158. package/src/plugins/defaults/memory/v3/__tests__/dense.test.ts +0 -5
  1159. package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +17 -0
  1160. package/src/plugins/defaults/memory/v3/__tests__/live-integration.test.ts +14 -4
  1161. package/src/plugins/defaults/memory/v3/__tests__/maintain-job.test.ts +23 -17
  1162. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +20 -6
  1163. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +2 -0
  1164. package/src/plugins/defaults/memory/v3/__tests__/section-dense-store.test.ts +0 -5
  1165. package/src/plugins/defaults/memory/v3/candidate-match.ts +20 -11
  1166. package/src/plugins/defaults/memory/v3/dense.ts +1 -1
  1167. package/src/plugins/defaults/memory/v3/injector.ts +1 -1
  1168. package/src/plugins/defaults/memory/v3/learned-edges.test.ts +14 -0
  1169. package/src/plugins/defaults/memory/v3/learned-edges.ts +6 -1
  1170. package/src/plugins/defaults/memory/v3/maintain-job.ts +39 -31
  1171. package/src/plugins/defaults/memory/v3/orchestrate.ts +1 -1
  1172. package/src/plugins/defaults/memory/v3/page-content.ts +1 -1
  1173. package/src/plugins/defaults/memory/v3/pool-select.ts +2 -3
  1174. package/src/plugins/defaults/memory/v3/prune.test.ts +10 -0
  1175. package/src/plugins/defaults/memory/v3/prune.ts +1 -1
  1176. package/src/plugins/defaults/memory/v3/section-dense-store.ts +1 -1
  1177. package/src/plugins/defaults/memory/v3/selection-log-store.ts +1 -1
  1178. package/src/plugins/defaults/memory/v3/shadow-plugin.ts +47 -25
  1179. package/src/plugins/defaults/memory/v3-eval/eval-packets.ts +31 -11
  1180. package/src/plugins/defaults/memory/worker.ts +2 -2
  1181. package/src/plugins/defaults/workspace/injectors.ts +116 -5
  1182. package/src/plugins/mtime-cache.ts +207 -105
  1183. package/src/plugins/pipeline.ts +195 -5
  1184. package/src/plugins/surface-import.ts +52 -14
  1185. package/src/plugins/types.ts +10 -15
  1186. package/src/prompts/persona-resolver.ts +1 -1
  1187. package/src/prompts/system-prompt.ts +2 -4
  1188. package/src/prompts/templates/system-sections.ts +12 -0
  1189. package/src/providers/__tests__/connection-model-compat.test.ts +0 -5
  1190. package/src/providers/__tests__/count-tokens-forwarding.test.ts +1 -21
  1191. package/src/providers/__tests__/dispatch-connection-routing.test.ts +12 -6
  1192. package/src/providers/__tests__/preflight-resolved-config.test.ts +189 -0
  1193. package/src/providers/__tests__/registry-native-web-search.test.ts +21 -3
  1194. package/src/providers/__tests__/retry-callsite.test.ts +207 -8
  1195. package/src/providers/__tests__/satellite-connection-routing.test.ts +12 -6
  1196. package/src/providers/__tests__/vellum-mismatch-routing.test.ts +0 -5
  1197. package/src/providers/anthropic/client.ts +109 -7
  1198. package/src/providers/anthropic-gateway-shared.ts +63 -0
  1199. package/src/providers/call-site-routing.ts +1 -0
  1200. package/src/providers/connection-resolution.ts +192 -6
  1201. package/src/providers/content-block-schema.ts +149 -0
  1202. package/src/providers/gemini/client.ts +84 -22
  1203. package/src/providers/gemini/inline-media.ts +2 -3
  1204. package/src/providers/inference/__tests__/base-url-route-validation.test.ts +5 -0
  1205. package/src/providers/inference/__tests__/codex-token-refresh.test.ts +1 -15
  1206. package/src/providers/inference/adapter-factory.ts +13 -0
  1207. package/src/providers/inference/connection-availability.ts +193 -0
  1208. package/src/providers/inference/connections.ts +6 -10
  1209. package/src/providers/media-resolve.ts +193 -0
  1210. package/src/providers/model-catalog.ts +337 -17
  1211. package/src/providers/model-intents.ts +6 -0
  1212. package/src/providers/openai/__tests__/api-error-normalization.test.ts +98 -0
  1213. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +112 -0
  1214. package/src/providers/openai/api-error-normalization.ts +61 -0
  1215. package/src/providers/openai/chat-completions-provider.ts +73 -10
  1216. package/src/providers/openai/responses-provider.ts +10 -3
  1217. package/src/providers/openrouter/client.ts +6 -39
  1218. package/src/providers/platform-proxy/constants.ts +4 -0
  1219. package/src/providers/provider-availability.ts +23 -1
  1220. package/src/providers/provider-send-message.ts +19 -3
  1221. package/src/providers/registry.ts +5 -1
  1222. package/src/providers/retry.ts +91 -29
  1223. package/src/providers/speech-to-text/__tests__/resolve.test.ts +31 -0
  1224. package/src/providers/speech-to-text/deepgram-realtime.test.ts +393 -1
  1225. package/src/providers/speech-to-text/deepgram-realtime.ts +213 -13
  1226. package/src/providers/speech-to-text/resolve.ts +33 -5
  1227. package/src/providers/types.ts +69 -24
  1228. package/src/providers/vellum-model-routing.ts +11 -0
  1229. package/src/providers/vercel-ai-gateway/client.ts +142 -0
  1230. package/src/runtime/__tests__/actor-trust-resolver.test.ts +132 -0
  1231. package/src/runtime/__tests__/agent-wake.test.ts +232 -16
  1232. package/src/runtime/__tests__/background-job-runner.test.ts +71 -2
  1233. package/src/runtime/__tests__/guardian-vellum-migration.test.ts +5 -15
  1234. package/src/runtime/__tests__/local-principal-trust.test.ts +0 -6
  1235. package/src/runtime/__tests__/member-verdict-cache.test.ts +2 -15
  1236. package/src/runtime/__tests__/trust-verdict-consumer.test.ts +91 -30
  1237. package/src/runtime/access-request-helper.ts +75 -3
  1238. package/src/runtime/actor-trust-resolver.ts +33 -108
  1239. package/src/runtime/agent-wake.ts +45 -25
  1240. package/src/runtime/assistant-event-hub.ts +0 -105
  1241. package/src/runtime/auth/__tests__/middleware.test.ts +1 -10
  1242. package/src/runtime/auth/__tests__/route-policy.test.ts +0 -7
  1243. package/src/runtime/auth/__tests__/token-service.test.ts +1 -8
  1244. package/src/runtime/background-job-runner.ts +57 -2
  1245. package/src/runtime/capabilities.ts +3 -3
  1246. package/src/runtime/channel-reply-delivery.ts +38 -19
  1247. package/src/runtime/channel-retry-sweep.ts +1 -1
  1248. package/src/runtime/confirmation-request-guardian-bridge.ts +4 -3
  1249. package/src/runtime/effective-capabilities.test.ts +0 -36
  1250. package/src/runtime/effective-capabilities.ts +8 -23
  1251. package/src/runtime/guardian-vellum-migration.ts +12 -16
  1252. package/src/runtime/http-router-types.ts +119 -0
  1253. package/src/runtime/http-router.ts +2 -115
  1254. package/src/runtime/http-server.ts +11 -2
  1255. package/src/runtime/http-types.ts +1 -1
  1256. package/src/runtime/introduction-policy.ts +89 -0
  1257. package/src/runtime/local-actor-identity.ts +4 -50
  1258. package/src/runtime/local-principal-trust.ts +1 -1
  1259. package/src/runtime/member-verdict-cache.ts +0 -0
  1260. package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +51 -1
  1261. package/src/runtime/migrations/__tests__/origin-mode.test.ts +62 -0
  1262. package/src/runtime/migrations/gcs-signed-url.ts +21 -7
  1263. package/src/runtime/migrations/origin-mode.ts +16 -11
  1264. package/src/runtime/pending-interactions.ts +8 -3
  1265. package/src/runtime/routes/__tests__/acp-routes.test.ts +0 -7
  1266. package/src/runtime/routes/__tests__/backup-routes.test.ts +0 -7
  1267. package/src/runtime/routes/__tests__/bookmark-routes.test.ts +0 -1
  1268. package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +0 -16
  1269. package/src/runtime/routes/__tests__/client-routes.test.ts +0 -7
  1270. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +4 -5
  1271. package/src/runtime/routes/__tests__/consolidation-routes.test.ts +8 -8
  1272. package/src/runtime/routes/__tests__/contact-routes.test.ts +2 -3
  1273. package/src/runtime/routes/__tests__/content-source-routes.test.ts +0 -7
  1274. package/src/runtime/routes/__tests__/conversation-compaction-routes.test.ts +31 -9
  1275. package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +0 -7
  1276. package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +0 -8
  1277. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +260 -11
  1278. package/src/runtime/routes/__tests__/conversation-surface-routes.test.ts +0 -7
  1279. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +499 -0
  1280. package/src/runtime/routes/__tests__/global-search-routes.test.ts +0 -1
  1281. package/src/runtime/routes/__tests__/inference-callsites-routes.test.ts +54 -0
  1282. package/src/runtime/routes/__tests__/inference-models-routes.test.ts +54 -0
  1283. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +403 -0
  1284. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +219 -6
  1285. package/src/runtime/routes/__tests__/inference-routes-registration.test.ts +42 -0
  1286. package/src/runtime/routes/__tests__/invite-relay-routes.test.ts +70 -15
  1287. package/src/runtime/routes/__tests__/monitoring-routes.test.ts +1 -1
  1288. package/src/runtime/routes/__tests__/plugins-routes.test.ts +182 -38
  1289. package/src/runtime/routes/__tests__/retrospective-routes.test.ts +1 -8
  1290. package/src/runtime/routes/__tests__/sanity-routes.test.ts +0 -7
  1291. package/src/runtime/routes/__tests__/stt-routes.test.ts +0 -9
  1292. package/src/runtime/routes/__tests__/suggest-trust-rule-routes.test.ts +0 -7
  1293. package/src/runtime/routes/__tests__/task-routes.test.ts +2 -2
  1294. package/src/runtime/routes/__tests__/theme-routes.test.ts +66 -0
  1295. package/src/runtime/routes/__tests__/tts-routes.test.ts +0 -7
  1296. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +1 -9
  1297. package/src/runtime/routes/__tests__/wake-conversation-routes.test.ts +0 -7
  1298. package/src/runtime/routes/acp-routes.ts +20 -14
  1299. package/src/runtime/routes/approval-routes.ts +21 -2
  1300. package/src/runtime/routes/canned-message-complete.ts +82 -0
  1301. package/src/runtime/routes/channel-metadata.ts +49 -0
  1302. package/src/runtime/routes/contact-routes.ts +75 -43
  1303. package/src/runtime/routes/conversation-attention-routes.ts +1 -1
  1304. package/src/runtime/routes/conversation-cli-routes.ts +2 -2
  1305. package/src/runtime/routes/conversation-compaction-routes.ts +5 -0
  1306. package/src/runtime/routes/conversation-management-routes.ts +147 -2
  1307. package/src/runtime/routes/conversation-query-routes.ts +378 -43
  1308. package/src/runtime/routes/conversation-routes.ts +89 -181
  1309. package/src/runtime/routes/conversation-starter-routes.ts +12 -23
  1310. package/src/runtime/routes/credential-prompt-routes.ts +48 -4
  1311. package/src/runtime/routes/credential-request-routes.ts +85 -0
  1312. package/src/runtime/routes/credential-routes.ts +40 -5
  1313. package/src/runtime/routes/default-provider-routes.ts +132 -0
  1314. package/src/runtime/routes/errors.ts +17 -0
  1315. package/src/runtime/routes/events-routes.ts +158 -39
  1316. package/src/runtime/routes/guardian-approval-interception.ts +1 -1
  1317. package/src/runtime/routes/http-adapter.ts +1 -1
  1318. package/src/runtime/routes/inbound-message-handler.ts +61 -6
  1319. package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +58 -26
  1320. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +73 -87
  1321. package/src/runtime/routes/inbound-stages/admission-policy.ts +2 -1
  1322. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +1 -8
  1323. package/src/runtime/routes/inbound-stages/background-dispatch.ts +3 -2
  1324. package/src/runtime/routes/inbound-stages/bootstrap-intercept.test.ts +0 -5
  1325. package/src/runtime/routes/inbound-stages/edit-intercept.ts +5 -1
  1326. package/src/runtime/routes/inbound-stages/escalation-intercept.test.ts +0 -5
  1327. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +0 -9
  1328. package/src/runtime/routes/inbound-stages/guardian-reply-intercept.test.ts +0 -9
  1329. package/src/runtime/routes/inbound-stages/reaction-intercept.test.ts +302 -0
  1330. package/src/runtime/routes/inbound-stages/reaction-intercept.ts +27 -37
  1331. package/src/runtime/routes/inbound-stages/secret-ingress-check.ts +1 -1
  1332. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +0 -9
  1333. package/src/runtime/routes/index.ts +16 -4
  1334. package/src/runtime/routes/inference-callsites-routes.ts +211 -0
  1335. package/src/runtime/routes/inference-models-routes.ts +104 -0
  1336. package/src/runtime/routes/inference-profile-session-handler.ts +2 -1
  1337. package/src/runtime/routes/inference-profiles-routes.ts +717 -0
  1338. package/src/runtime/routes/inference-provider-connection-routes.ts +38 -1
  1339. package/src/runtime/routes/inference-send-routes.ts +2 -1
  1340. package/src/runtime/routes/integrations/slack/channels.ts +26 -4
  1341. package/src/runtime/routes/integrations/slack/users.ts +78 -0
  1342. package/src/runtime/routes/internal-telemetry-routes.ts +44 -0
  1343. package/src/runtime/routes/llm-call-sites-routes.ts +2 -1
  1344. package/src/runtime/routes/llm-request-logs-access.ts +19 -0
  1345. package/src/runtime/routes/migration-routes.ts +94 -47
  1346. package/src/runtime/routes/monitoring-routes.ts +1 -1
  1347. package/src/runtime/routes/notification-routes.ts +1 -1
  1348. package/src/runtime/routes/playground/__tests__/reset-circuit.test.ts +0 -7
  1349. package/src/runtime/routes/plugins-routes.ts +169 -16
  1350. package/src/runtime/routes/schedule-routes.ts +38 -1
  1351. package/src/runtime/routes/secret-routes.ts +0 -7
  1352. package/src/runtime/routes/settings-routes.ts +160 -22
  1353. package/src/runtime/routes/skills-routes.ts +6 -0
  1354. package/src/runtime/routes/subagents-routes.ts +17 -18
  1355. package/src/runtime/routes/surface-action-routes.ts +4 -2
  1356. package/src/runtime/routes/theme-routes.ts +36 -0
  1357. package/src/runtime/routes/types.ts +2 -1
  1358. package/src/runtime/routes/workflow-routes.ts +1 -1
  1359. package/src/runtime/services/__tests__/auto-analysis-guard.test.ts +2 -16
  1360. package/src/runtime/services/__tests__/conversation-serializer.test.ts +0 -1
  1361. package/src/runtime/services/auto-analysis-guard.ts +5 -5
  1362. package/src/runtime/services/conversation-serializer.ts +2 -3
  1363. package/src/runtime/sync/resource-sync-events.ts +4 -0
  1364. package/src/runtime/trust-context-resolver.ts +9 -9
  1365. package/src/runtime/trust-verdict-consumer.ts +46 -5
  1366. package/src/schedule/scheduler.ts +61 -18
  1367. package/src/security/__tests__/oauth2-device-code.test.ts +12 -60
  1368. package/src/security/__tests__/provider-key-env-fallback.test.ts +0 -10
  1369. package/src/security/__tests__/secret-normalize.test.ts +96 -0
  1370. package/src/security/secret-normalize.ts +41 -0
  1371. package/src/security/secret-patterns.ts +3 -0
  1372. package/src/security/secure-keys.ts +222 -49
  1373. package/src/sequence/engine.ts +15 -6
  1374. package/src/signals/user-message.ts +3 -1
  1375. package/src/skills/available-skills.ts +134 -0
  1376. package/src/skills/install-meta.ts +8 -0
  1377. package/src/skills/managed-store.ts +10 -0
  1378. package/src/stt/types.ts +33 -2
  1379. package/src/subagent/manager.ts +5 -6
  1380. package/src/tasks/SPEC.md +10 -17
  1381. package/src/tasks/tool-sanitizer.ts +3 -1
  1382. package/src/telemetry/__tests__/config-setting-events-store.test.ts +126 -0
  1383. package/src/telemetry/__tests__/flush-checkpoints.test.ts +56 -0
  1384. package/src/telemetry/__tests__/watchdog-events-store.test.ts +0 -8
  1385. package/src/telemetry/config-setting-events-store.ts +97 -0
  1386. package/src/telemetry/flush-checkpoints.ts +70 -0
  1387. package/src/telemetry/skill-loaded-events-store.test.ts +0 -8
  1388. package/src/telemetry/telemetry-event-sources.ts +571 -0
  1389. package/src/telemetry/tool-audit.ts +285 -0
  1390. package/src/telemetry/tool-executed-events-store.test.ts +19 -27
  1391. package/src/telemetry/tool-executed-events-store.ts +5 -5
  1392. package/src/telemetry/turn-events-store.ts +36 -0
  1393. package/src/telemetry/turn-outcome.ts +116 -0
  1394. package/src/telemetry/turn-trace-store.test.ts +156 -8
  1395. package/src/telemetry/turn-trace-store.ts +53 -4
  1396. package/src/telemetry/types.ts +91 -2
  1397. package/src/telemetry/usage-telemetry-reporter.test.ts +373 -119
  1398. package/src/telemetry/usage-telemetry-reporter.ts +110 -675
  1399. package/src/telemetry/watchdog-direct-emit.test.ts +0 -5
  1400. package/src/theme/workspace-theme.test.ts +269 -0
  1401. package/src/theme/workspace-theme.ts +304 -0
  1402. package/src/tools/AGENTS.md +0 -26
  1403. package/src/tools/acp/spawn.test.ts +0 -7
  1404. package/src/tools/browser/browser-execution.ts +99 -75
  1405. package/src/tools/browser/cdp-client/__tests__/cdp-inspect-client.test.ts +1 -11
  1406. package/src/tools/browser/cdp-client/__tests__/local-cdp-client.test.ts +0 -10
  1407. package/src/tools/browser/network-recorder.test.ts +0 -11
  1408. package/src/tools/document/document-comment-tool.test.ts +1 -7
  1409. package/src/tools/execution-target.test.ts +31 -0
  1410. package/src/tools/execution-target.ts +1 -1
  1411. package/src/tools/executor.ts +63 -275
  1412. package/src/tools/filesystem/write.ts +0 -2
  1413. package/src/tools/host-terminal/host-shell.test.ts +0 -7
  1414. package/src/tools/host-terminal/host-shell.ts +6 -49
  1415. package/src/tools/permission-checker.ts +33 -81
  1416. package/src/tools/registry.ts +261 -166
  1417. package/src/tools/run-standalone.ts +6 -13
  1418. package/src/tools/side-effects.ts +0 -1
  1419. package/src/tools/skills/find-similar-skills.test.ts +5 -9
  1420. package/src/tools/skills/scaffold-managed.ts +31 -4
  1421. package/src/tools/skills/skill-script-runner.ts +17 -31
  1422. package/src/tools/skills/skill-tool-factory.ts +2 -6
  1423. package/src/tools/subagent/read.ts +6 -4
  1424. package/src/tools/subagent/spawn.ts +28 -29
  1425. package/src/tools/terminal/safe-env.ts +8 -3
  1426. package/src/tools/terminal/shell.test.ts +0 -6
  1427. package/src/tools/terminal/shell.ts +1 -50
  1428. package/src/tools/tool-approval-handler.ts +99 -166
  1429. package/src/tools/tool-defaults.ts +2 -6
  1430. package/src/tools/tool-manifest.ts +0 -49
  1431. package/src/{events/tool-profiling-listener.ts → tools/tool-profiler.ts} +64 -32
  1432. package/src/tools/tool-types.ts +4 -95
  1433. package/src/tools/types.ts +27 -140
  1434. package/src/tools/workflows/manage-workflows.ts +2 -1
  1435. package/src/tools/workflows/run-workflow.test.ts +6 -1
  1436. package/src/tools/workflows/run-workflow.ts +2 -4
  1437. package/src/tools/workspace-tools/loader.ts +26 -14
  1438. package/src/tts/__tests__/pcm-chunk-aligner.test.ts +48 -0
  1439. package/src/tts/__tests__/pcm-sample-rates.test.ts +59 -0
  1440. package/src/tts/__tests__/provider-adapters.test.ts +891 -22
  1441. package/src/tts/__tests__/provider-catalog.test.ts +43 -10
  1442. package/src/tts/__tests__/speakable-segments.test.ts +427 -0
  1443. package/src/tts/__tests__/synthesis-stream.test.ts +5 -1
  1444. package/src/tts/pcm-chunk-aligner.ts +29 -0
  1445. package/src/tts/pcm-sample-rates.ts +47 -0
  1446. package/src/tts/provider-definition.ts +6 -7
  1447. package/src/tts/providers/__tests__/xai-tts-socket.test.ts +406 -0
  1448. package/src/tts/providers/deepgram-provider.ts +160 -102
  1449. package/src/tts/providers/elevenlabs-provider.ts +182 -105
  1450. package/src/tts/providers/fish-audio-provider.ts +72 -105
  1451. package/src/tts/providers/xai-provider.ts +131 -22
  1452. package/src/tts/providers/xai-tts-socket.ts +311 -0
  1453. package/src/tts/speakable-segments.ts +188 -0
  1454. package/src/tts/stream-read.ts +136 -0
  1455. package/src/tts/synthesis-stream.ts +9 -5
  1456. package/src/tts/synthesize-text.ts +15 -5
  1457. package/src/tts/types.ts +21 -0
  1458. package/src/usage/attribution.ts +43 -9
  1459. package/src/util/errors.ts +26 -0
  1460. package/src/util/image-conversion.ts +23 -5
  1461. package/src/util/logger.ts +67 -68
  1462. package/src/util/platform.ts +19 -60
  1463. package/src/util/pricing.ts +14 -11
  1464. package/src/util/process-tree.ts +25 -13
  1465. package/src/util/provider-error-patterns.ts +21 -0
  1466. package/src/util/sqlite-query-label.ts +51 -0
  1467. package/src/util/sqlite-retry.ts +14 -2
  1468. package/src/util/unicode.ts +1 -1
  1469. package/src/watcher/__tests__/engine-auth-notify.test.ts +316 -0
  1470. package/src/watcher/engine.ts +87 -2
  1471. package/src/workflows/capabilities.test.ts +2 -32
  1472. package/src/workflows/capabilities.ts +18 -25
  1473. package/src/workflows/engine-integration.test.ts +1 -7
  1474. package/src/workflows/engine.test.ts +2 -10
  1475. package/src/workflows/engine.ts +1 -1
  1476. package/src/workflows/fanout-load.test.ts +1 -1
  1477. package/src/workflows/journal-store.test.ts +1 -9
  1478. package/src/workflows/leaf-runner.test.ts +0 -6
  1479. package/src/workflows/leaf-runner.ts +4 -5
  1480. package/src/workflows/library.test.ts +1 -9
  1481. package/src/workflows/run-manager.test.ts +2 -10
  1482. package/src/workflows/run-manager.ts +2 -4
  1483. package/src/workspace/adaptive-thinking-repair.ts +1 -1
  1484. package/src/workspace/custom-profile-ensure.ts +133 -0
  1485. package/src/workspace/default-provider-ensure.ts +162 -0
  1486. package/src/workspace/git-service.ts +160 -15
  1487. package/src/workspace/migrations/028-recover-conversations-from-disk-view.ts +0 -1
  1488. package/src/workspace/migrations/097-enable-adaptive-thinking-managed-profiles.ts +1 -1
  1489. package/src/workspace/migrations/126-strip-managed-profile-bodies.ts +92 -0
  1490. package/src/workspace/migrations/127-backfill-default-provider.ts +176 -0
  1491. package/src/workspace/migrations/128-repair-stale-openrouter-grok-model-ids.ts +112 -0
  1492. package/src/workspace/migrations/129-remove-analyze-conversation-config.ts +59 -0
  1493. package/src/workspace/migrations/registry.ts +8 -0
  1494. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/grants.test.ts +0 -686
  1495. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/grants.ts +0 -184
  1496. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/rendering.ts +0 -135
  1497. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/grants.test.ts +0 -686
  1498. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/grants.ts +0 -184
  1499. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/rendering.ts +0 -135
  1500. package/node_modules/@vellumai/service-contracts/src/__tests__/grants.test.ts +0 -686
  1501. package/node_modules/@vellumai/service-contracts/src/grants.ts +0 -184
  1502. package/node_modules/@vellumai/service-contracts/src/rendering.ts +0 -135
  1503. package/scripts/generate-bundled-tool-registry.ts +0 -223
  1504. package/scripts/test.sh +0 -494
  1505. package/src/__tests__/actor-trust-resolver-address-fallback.test.ts +0 -255
  1506. package/src/__tests__/agent-loop-sentry-hygiene.test.ts +0 -137
  1507. package/src/__tests__/auto-analysis-end-to-end.test.ts +0 -621
  1508. package/src/__tests__/auto-analysis-prompt.test.ts +0 -50
  1509. package/src/__tests__/config-analysis.test.ts +0 -83
  1510. package/src/__tests__/conversation-analysis-routes.test.ts +0 -156
  1511. package/src/__tests__/credential-execution-admin-cli.test.ts +0 -504
  1512. package/src/__tests__/credential-execution-approval-bridge.test.ts +0 -297
  1513. package/src/__tests__/credential-execution-feature-gates.test.ts +0 -185
  1514. package/src/__tests__/credential-execution-shell-lockdown.test.ts +0 -120
  1515. package/src/__tests__/credential-execution-tools.test.ts +0 -289
  1516. package/src/__tests__/db-proxy-transaction.test.ts +0 -206
  1517. package/src/__tests__/event-bus.test.ts +0 -222
  1518. package/src/__tests__/reaction-intercept-cold-cache-warm.test.ts +0 -141
  1519. package/src/__tests__/reaction-intercept-member-verdict-warm.test.ts +0 -157
  1520. package/src/__tests__/skill-memory.test.ts +0 -85
  1521. package/src/__tests__/skill-runtime-path.test.ts +0 -63
  1522. package/src/__tests__/tool-domain-event-publisher.test.ts +0 -216
  1523. package/src/__tests__/tool-metrics-listener.test.ts +0 -194
  1524. package/src/__tests__/tool-profiling-listener.test.ts +0 -219
  1525. package/src/cli/commands/credential-execution.ts +0 -362
  1526. package/src/config/__tests__/bundled-tool-registry-guard.test.ts +0 -120
  1527. package/src/config/bundled-tool-registry.ts +0 -281
  1528. package/src/config/schemas/analysis.ts +0 -32
  1529. package/src/credential-execution/approval-bridge.ts +0 -320
  1530. package/src/credential-execution/feature-gates.ts +0 -61
  1531. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +0 -449
  1532. package/src/events/bus.ts +0 -177
  1533. package/src/events/domain-events.ts +0 -68
  1534. package/src/events/tool-audit-listener.ts +0 -184
  1535. package/src/events/tool-domain-event-publisher.ts +0 -90
  1536. package/src/events/tool-metrics-listener.ts +0 -134
  1537. package/src/events/tool-permission-telemetry-listener.ts +0 -44
  1538. package/src/instrument.ts +0 -213
  1539. package/src/ipc/routes/db-proxy-transaction.ts +0 -151
  1540. package/src/plugins/defaults/memory/__tests__/find-analysis-conversation.test.ts +0 -197
  1541. package/src/runtime/routes/conversation-analysis-routes.ts +0 -75
  1542. package/src/runtime/routes/work-items-routes.test.ts +0 -74
  1543. package/src/runtime/routes/work-items-routes.ts +0 -881
  1544. package/src/runtime/services/__tests__/analyze-conversation.test.ts +0 -477
  1545. package/src/runtime/services/__tests__/auto-analysis-enqueue.test.ts +0 -386
  1546. package/src/runtime/services/__tests__/auto-analysis-prompt.test.ts +0 -53
  1547. package/src/runtime/services/__tests__/conversation-analyze-job.test.ts +0 -213
  1548. package/src/runtime/services/__tests__/manual-analysis-prompt.test.ts +0 -41
  1549. package/src/runtime/services/analyze-conversation.ts +0 -332
  1550. package/src/runtime/services/auto-analysis-enqueue.ts +0 -130
  1551. package/src/runtime/services/auto-analysis-prompt.ts +0 -55
  1552. package/src/runtime/services/conversation-analyze-job.ts +0 -53
  1553. package/src/skills/skill-memory.ts +0 -44
  1554. package/src/tools/credential-execution/make-authenticated-request.ts +0 -198
  1555. package/src/tools/credential-execution/manage-secure-command-tool.ts +0 -371
  1556. package/src/tools/credential-execution/run-authenticated-command.ts +0 -261
  1557. package/src/tools/flag-gated-tools.test.ts +0 -76
  1558. package/src/util/sentry-log-stream.ts +0 -51
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.10.7
6
+ version: 0.10.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
@@ -4037,18 +4037,10 @@ paths:
4037
4037
  anyOf:
4038
4038
  - type: number
4039
4039
  - type: "null"
4040
- verifiedVia:
4041
- anyOf:
4042
- - type: string
4043
- - type: "null"
4044
4040
  memberDisplayName:
4045
4041
  type: string
4046
4042
  interactionCount:
4047
4043
  type: number
4048
- lastInteraction:
4049
- anyOf:
4050
- - type: number
4051
- - type: "null"
4052
4044
  hasInterceptableVerificationSession:
4053
4045
  type: boolean
4054
4046
  required:
@@ -4514,6 +4506,60 @@ paths:
4514
4506
  - domains
4515
4507
  - callSites
4516
4508
  additionalProperties: false
4509
+ /v1/config/llm/default-provider:
4510
+ get:
4511
+ operationId: config_llm_defaultprovider_get
4512
+ summary: Get the default provider and its availability
4513
+ description:
4514
+ Returns `llm.defaultProvider`, the connection name it resolves to, and whether that connection is currently
4515
+ usable (connection exists, credential stored, Vellum authenticated). Availability is informational — a broken
4516
+ default is a valid persisted state that surfaces explainable errors at resolution time.
4517
+ tags:
4518
+ - config
4519
+ responses:
4520
+ "200":
4521
+ description: Successful response
4522
+ content:
4523
+ application/json:
4524
+ schema:
4525
+ $ref: "#/components/schemas/DefaultProviderStatus"
4526
+ put:
4527
+ operationId: config_llm_defaultprovider_put
4528
+ summary: Set the default provider
4529
+ description:
4530
+ Replaces `llm.defaultProvider`. Strict-validates the body (unlike the generic config write paths, which
4531
+ silently drop invalid values). Does not require the referenced connection to exist — a dangling name is allowed
4532
+ by design and reported via the availability status.
4533
+ tags:
4534
+ - config
4535
+ requestBody:
4536
+ required: true
4537
+ content:
4538
+ application/json:
4539
+ schema:
4540
+ type: object
4541
+ properties:
4542
+ provider:
4543
+ type: string
4544
+ enum:
4545
+ - anthropic
4546
+ - openai
4547
+ - gemini
4548
+ - fireworks
4549
+ - openrouter
4550
+ - vellum
4551
+ connectionName:
4552
+ type: string
4553
+ minLength: 1
4554
+ required:
4555
+ - provider
4556
+ responses:
4557
+ "200":
4558
+ description: Successful response
4559
+ content:
4560
+ application/json:
4561
+ schema:
4562
+ $ref: "#/components/schemas/DefaultProviderStatus"
4517
4563
  /v1/config/llm/profiles:
4518
4564
  get:
4519
4565
  operationId: config_llm_profiles_get
@@ -6097,12 +6143,6 @@ paths:
6097
6143
  schema:
6098
6144
  type: integer
6099
6145
  description: Pagination offset (default 0)
6100
- - name: scope_id
6101
- in: query
6102
- required: false
6103
- schema:
6104
- type: string
6105
- description: Scope ID (default "default")
6106
6146
  responses:
6107
6147
  "200":
6108
6148
  description: Successful response
@@ -6350,6 +6390,14 @@ paths:
6350
6390
  required:
6351
6391
  - channelId
6352
6392
  additionalProperties: false
6393
+ sourceLink:
6394
+ type: object
6395
+ properties:
6396
+ appUrl:
6397
+ type: string
6398
+ webUrl:
6399
+ type: string
6400
+ additionalProperties: false
6353
6401
  required:
6354
6402
  - sourceChannel
6355
6403
  - externalChatId
@@ -6695,212 +6743,13 @@ paths:
6695
6743
  required:
6696
6744
  - channelId
6697
6745
  additionalProperties: false
6698
- required:
6699
- - sourceChannel
6700
- - externalChatId
6701
- - externalUserId
6702
- - displayName
6703
- - username
6704
- additionalProperties: false
6705
- conversationOriginChannel:
6706
- anyOf:
6707
- - type: string
6708
- enum:
6709
- - telegram
6710
- - phone
6711
- - vellum
6712
- - whatsapp
6713
- - slack
6714
- - email
6715
- - platform
6716
- - a2a
6717
- - type: "null"
6718
- assistantAttention:
6719
- type: object
6720
- properties:
6721
- hasUnseenLatestAssistantMessage:
6722
- type: boolean
6723
- latestAssistantMessageAt:
6724
- type: number
6725
- lastSeenAssistantMessageAt:
6726
- type: number
6727
- lastSeenConfidence:
6728
- type: string
6729
- enum:
6730
- - explicit
6731
- - inferred
6732
- lastSeenSignalType:
6733
- type: string
6734
- enum:
6735
- - macos_notification_view
6736
- - macos_conversation_opened
6737
- - ios_conversation_opened
6738
- - web_bulk_mark_read
6739
- - telegram_inbound_message
6740
- - telegram_callback
6741
- - slack_inbound_message
6742
- - slack_callback
6743
- required:
6744
- - hasUnseenLatestAssistantMessage
6745
- additionalProperties: false
6746
- isPinned:
6747
- type: boolean
6748
- const: true
6749
- displayOrder:
6750
- anyOf:
6751
- - type: number
6752
- - type: "null"
6753
- groupId:
6754
- anyOf:
6755
- - type: string
6756
- - type: "null"
6757
- forkParent:
6758
- type: object
6759
- properties:
6760
- conversationId:
6761
- type: string
6762
- messageId:
6763
- type: string
6764
- title:
6765
- type: string
6766
- required:
6767
- - conversationId
6768
- - messageId
6769
- - title
6770
- additionalProperties: false
6771
- archivedAt:
6772
- type: number
6773
- surfacedAt:
6774
- type: number
6775
- inferenceProfile:
6776
- type: string
6777
- enabledPlugins:
6778
- anyOf:
6779
- - type: array
6780
- items:
6781
- type: string
6782
- - type: "null"
6783
- isProcessing:
6784
- type: boolean
6785
- required:
6786
- - id
6787
- - title
6788
- - createdAt
6789
- - updatedAt
6790
- - lastMessageAt
6791
- - conversationType
6792
- - source
6793
- - groupId
6794
- - isProcessing
6795
- additionalProperties: false
6796
- required:
6797
- - conversation
6798
- additionalProperties: false
6799
- /v1/conversations/{id}/analyze:
6800
- post:
6801
- operationId: conversations_by_id_analyze_post
6802
- summary: Analyze a conversation
6803
- description: Create a new conversation with a structured self-assessment of an existing conversation.
6804
- tags:
6805
- - conversations
6806
- parameters:
6807
- - name: id
6808
- in: path
6809
- required: true
6810
- schema:
6811
- type: string
6812
- responses:
6813
- "200":
6814
- description: Successful response
6815
- content:
6816
- application/json:
6817
- schema:
6818
- type: object
6819
- properties:
6820
- conversation:
6821
- type: object
6822
- properties:
6823
- id:
6824
- type: string
6825
- title:
6826
- type: string
6827
- createdAt:
6828
- type: number
6829
- updatedAt:
6830
- type: number
6831
- lastMessageAt:
6832
- anyOf:
6833
- - type: number
6834
- - type: "null"
6835
- conversationType:
6836
- type: string
6837
- enum:
6838
- - standard
6839
- - background
6840
- - scheduled
6841
- source:
6842
- type: string
6843
- scheduleJobId:
6844
- type: string
6845
- channelBinding:
6846
- type: object
6847
- properties:
6848
- sourceChannel:
6849
- type: string
6850
- externalChatId:
6851
- type: string
6852
- externalChatName:
6853
- type: string
6854
- externalThreadId:
6855
- type: string
6856
- externalUserId:
6857
- anyOf:
6858
- - type: string
6859
- - type: "null"
6860
- displayName:
6861
- anyOf:
6862
- - type: string
6863
- - type: "null"
6864
- username:
6865
- anyOf:
6866
- - type: string
6867
- - type: "null"
6868
- slackThread:
6869
- type: object
6870
- properties:
6871
- channelId:
6872
- type: string
6873
- threadTs:
6874
- type: string
6875
- link:
6876
- type: object
6877
- properties:
6878
- appUrl:
6879
- type: string
6880
- webUrl:
6881
- type: string
6882
- additionalProperties: false
6883
- required:
6884
- - channelId
6885
- - threadTs
6886
- additionalProperties: false
6887
- slackChannel:
6746
+ sourceLink:
6888
6747
  type: object
6889
6748
  properties:
6890
- channelId:
6749
+ appUrl:
6891
6750
  type: string
6892
- name:
6751
+ webUrl:
6893
6752
  type: string
6894
- link:
6895
- type: object
6896
- properties:
6897
- webUrl:
6898
- type: string
6899
- required:
6900
- - webUrl
6901
- additionalProperties: false
6902
- required:
6903
- - channelId
6904
6753
  additionalProperties: false
6905
6754
  required:
6906
6755
  - sourceChannel
@@ -8054,6 +7903,14 @@ paths:
8054
7903
  required:
8055
7904
  - channelId
8056
7905
  additionalProperties: false
7906
+ sourceLink:
7907
+ type: object
7908
+ properties:
7909
+ appUrl:
7910
+ type: string
7911
+ webUrl:
7912
+ type: string
7913
+ additionalProperties: false
8057
7914
  required:
8058
7915
  - sourceChannel
8059
7916
  - externalChatId
@@ -9225,6 +9082,48 @@ paths:
9225
9082
  - ok
9226
9083
  - updated
9227
9084
  additionalProperties: false
9085
+ /v1/conversations/summarize:
9086
+ post:
9087
+ operationId: conversations_summarize_post
9088
+ summary: Summarize a conversation up to a message
9089
+ description:
9090
+ Replace the conversation's context before the given message with a generated summary. The boundary snaps to
9091
+ the start of the turn containing beforeMessageId; that turn and everything after stay verbatim. Messages are
9092
+ never deleted.
9093
+ tags:
9094
+ - conversations
9095
+ requestBody:
9096
+ required: true
9097
+ content:
9098
+ application/json:
9099
+ schema:
9100
+ type: object
9101
+ properties:
9102
+ conversationId:
9103
+ type: string
9104
+ beforeMessageId:
9105
+ type: string
9106
+ description: Summarize all messages before this one
9107
+ required:
9108
+ - conversationId
9109
+ - beforeMessageId
9110
+ responses:
9111
+ "202":
9112
+ description: Successful response
9113
+ content:
9114
+ application/json:
9115
+ schema:
9116
+ type: object
9117
+ properties:
9118
+ accepted:
9119
+ type: boolean
9120
+ const: true
9121
+ conversationId:
9122
+ type: string
9123
+ required:
9124
+ - accepted
9125
+ - conversationId
9126
+ additionalProperties: false
9228
9127
  /v1/conversations/switch:
9229
9128
  post:
9230
9129
  operationId: conversations_switch_post
@@ -9349,6 +9248,54 @@ paths:
9349
9248
  - invoked
9350
9249
  - producedToolCalls
9351
9250
  additionalProperties: false
9251
+ /v1/credential-requests:
9252
+ post:
9253
+ operationId: credentialrequests_post
9254
+ summary: Mint a one-time credential-collection link
9255
+ description:
9256
+ Create a single-use tokenized URL that collects one credential value via the public credential-entry page.
9257
+ Link state lives in the gateway; the value is stored via the credential vault on submission.
9258
+ tags:
9259
+ - credentials
9260
+ requestBody:
9261
+ required: true
9262
+ content:
9263
+ application/json:
9264
+ schema:
9265
+ type: object
9266
+ properties:
9267
+ service:
9268
+ type: string
9269
+ minLength: 1
9270
+ field:
9271
+ type: string
9272
+ minLength: 1
9273
+ label:
9274
+ type: string
9275
+ required:
9276
+ - service
9277
+ - field
9278
+ responses:
9279
+ "200":
9280
+ description: Successful response
9281
+ content:
9282
+ application/json:
9283
+ schema:
9284
+ type: object
9285
+ properties:
9286
+ ok:
9287
+ type: boolean
9288
+ url:
9289
+ type: string
9290
+ token:
9291
+ type: string
9292
+ expiresAt:
9293
+ type: number
9294
+ error:
9295
+ type: string
9296
+ required:
9297
+ - ok
9298
+ additionalProperties: false
9352
9299
  /v1/credentials/delete:
9353
9300
  post:
9354
9301
  operationId: credentials_delete_post
@@ -9552,6 +9499,12 @@ paths:
9552
9499
  type: boolean
9553
9500
  cancelled:
9554
9501
  type: boolean
9502
+ pending:
9503
+ type: boolean
9504
+ collectionUrl:
9505
+ type: string
9506
+ expiresAt:
9507
+ type: number
9555
9508
  error:
9556
9509
  type: string
9557
9510
  service:
@@ -9634,6 +9587,34 @@ paths:
9634
9587
  type: array
9635
9588
  items:
9636
9589
  type: string
9590
+ allowedDomains:
9591
+ description: Domains the credential may be sent to
9592
+ type: array
9593
+ items:
9594
+ type: string
9595
+ injectionTemplates:
9596
+ description: How the credential is injected into requests
9597
+ type: array
9598
+ items:
9599
+ type: object
9600
+ properties:
9601
+ hostPattern:
9602
+ type: string
9603
+ minLength: 1
9604
+ injectionType:
9605
+ type: string
9606
+ enum:
9607
+ - header
9608
+ - query
9609
+ headerName:
9610
+ type: string
9611
+ valuePrefix:
9612
+ type: string
9613
+ queryParamName:
9614
+ type: string
9615
+ required:
9616
+ - hostPattern
9617
+ - injectionType
9637
9618
  required:
9638
9619
  - service
9639
9620
  - field
@@ -11320,6 +11301,76 @@ paths:
11320
11301
  responses:
11321
11302
  "204":
11322
11303
  description: Successful response
11304
+ /v1/events/tail:
11305
+ get:
11306
+ operationId: events_tail_get
11307
+ summary: Fetch a conversation's buffered event tail
11308
+ description:
11309
+ Return the ring-buffered assistant events for one conversation with seq greater than fromSeq — the
11310
+ request/response twin of reconnecting the SSE stream with lastSeenSeq. A client recovering from a delivery gap
11311
+ fetches the /messages snapshot (anchored at its seq watermark) and then this tail from that anchor, folding the
11312
+ returned envelopes through the same apply path as live events; snapshot plus tail is deterministically complete.
11313
+ complete=false means the ring no longer reaches back to fromSeq and the snapshot alone must serve as the
11314
+ recovery.
11315
+ tags:
11316
+ - events
11317
+ parameters:
11318
+ - name: conversationId
11319
+ in: query
11320
+ required: false
11321
+ schema:
11322
+ type: string
11323
+ description: Assistant-minted internal conversation id whose events to return. Required.
11324
+ - name: fromSeq
11325
+ in: query
11326
+ required: false
11327
+ schema:
11328
+ type: string
11329
+ description:
11330
+ Return buffered events with seq strictly greater than this value — typically the seq watermark of a
11331
+ just-fetched /messages snapshot. Must be a non-negative integer.
11332
+ - name: toSeq
11333
+ in: query
11334
+ required: false
11335
+ schema:
11336
+ type: string
11337
+ description:
11338
+ Optional inclusive upper bound on returned seqs. A caller that already knows where its live delivery
11339
+ resumed (e.g. the first live event after a gap) can trim the response to exactly the hole. Purely a
11340
+ bandwidth trim — client folds are seq-idempotent, so overlap with live delivery is harmless without it. Must
11341
+ be an integer >= fromSeq.
11342
+ responses:
11343
+ "200":
11344
+ description: Successful response
11345
+ content:
11346
+ application/json:
11347
+ schema:
11348
+ type: object
11349
+ properties:
11350
+ events:
11351
+ type: array
11352
+ items: {}
11353
+ description:
11354
+ Buffered assistant event envelopes ({id, conversationId, emittedAt, seq, message}) with seq > fromSeq,
11355
+ ascending, filtered to the conversation and to the caller's delivery set (client identity
11356
+ headers). Same wire shape as the /events SSE data frames.
11357
+ complete:
11358
+ type: boolean
11359
+ description:
11360
+ True when the ring still covered fromSeq, so the returned events are the contiguous tail. False when
11361
+ eviction broke contiguity — events is empty and the caller must recover from the snapshot alone.
11362
+ frontier:
11363
+ anyOf:
11364
+ - type: number
11365
+ - type: "null"
11366
+ description:
11367
+ Seq of the last returned event (or fromSeq when the tail is empty but contiguous). Null when complete is
11368
+ false.
11369
+ required:
11370
+ - events
11371
+ - complete
11372
+ - frontier
11373
+ additionalProperties: false
11323
11374
  /v1/export:
11324
11375
  post:
11325
11376
  operationId: export_post
@@ -13744,6 +13795,96 @@ paths:
13744
13795
  - images
13745
13796
  - resolvedModel
13746
13797
  additionalProperties: false
13798
+ /v1/inference/active-profile:
13799
+ put:
13800
+ operationId: inference_activeprofile_put
13801
+ summary: Set the active (chat) inference profile
13802
+ description:
13803
+ Set llm.activeProfile after validating the name against the effective profile catalog (provider-aware
13804
+ default expansion included). Unknown or disabled profiles are rejected so the chat-model selection cannot be
13805
+ silently stripped on the next config load.
13806
+ tags:
13807
+ - inference
13808
+ requestBody:
13809
+ required: true
13810
+ content:
13811
+ application/json:
13812
+ schema:
13813
+ type: object
13814
+ properties:
13815
+ name:
13816
+ type: string
13817
+ minLength: 1
13818
+ required:
13819
+ - name
13820
+ responses:
13821
+ "200":
13822
+ description: Successful response
13823
+ content:
13824
+ application/json:
13825
+ schema:
13826
+ type: object
13827
+ properties:
13828
+ ok:
13829
+ type: boolean
13830
+ const: true
13831
+ activeProfile:
13832
+ type: string
13833
+ required:
13834
+ - ok
13835
+ - activeProfile
13836
+ additionalProperties: false
13837
+ "400":
13838
+ description: Unknown or disabled profile name
13839
+ /v1/inference/callsites:
13840
+ get:
13841
+ operationId: inference_callsites_get
13842
+ summary: List call-site resolutions
13843
+ description:
13844
+ "Return the effective resolution for every LLM call site: the winning profile, its source (override /
13845
+ active / call-site pin / shipped default), and the resolved provider/model plus notable tuning."
13846
+ tags:
13847
+ - inference
13848
+ responses:
13849
+ "200":
13850
+ description: Successful response
13851
+ content:
13852
+ application/json:
13853
+ schema:
13854
+ type: object
13855
+ properties:
13856
+ callSites:
13857
+ type: array
13858
+ items:
13859
+ $ref: "#/components/schemas/CallSiteResolutionSummary"
13860
+ required:
13861
+ - callSites
13862
+ additionalProperties: false
13863
+ /v1/inference/callsites/{site}:
13864
+ get:
13865
+ operationId: inference_callsites_by_site_get
13866
+ summary: Get a call-site resolution detail
13867
+ description:
13868
+ "Return the full resolution for one call site: the winner, the resolution chain (rungs considered and
13869
+ skipped), the shipped default fragment, the user's pin fragment, and a preflight-derived resolution error when
13870
+ dispatch would provably fail."
13871
+ tags:
13872
+ - inference
13873
+ parameters:
13874
+ - name: site
13875
+ in: path
13876
+ required: true
13877
+ schema:
13878
+ type: string
13879
+ responses:
13880
+ "200":
13881
+ description: Successful response
13882
+ content:
13883
+ application/json:
13884
+ schema:
13885
+ $ref: "#/components/schemas/CallSiteResolutionDetail"
13886
+ "400":
13887
+ description: Unknown call site
13747
13888
  /v1/inference/chatgpt-subscription/auth:
13748
13889
  post:
13749
13890
  operationId: inference_chatgptsubscription_auth_post
@@ -13805,11 +13946,13 @@ paths:
13805
13946
  required:
13806
13947
  - ok
13807
13948
  additionalProperties: false
13808
- /v1/inference/provider-connections:
13949
+ /v1/inference/models:
13809
13950
  get:
13810
- operationId: inference_providerconnections_get
13811
- summary: List provider connections
13812
- description: Return all provider connections. Optionally filter by provider with ?provider=<name>.
13951
+ operationId: inference_models_get
13952
+ summary: List inference catalog models
13953
+ description:
13954
+ Return every model in the code-owned provider catalog, each tagged with its provider. Optionally filter by
13955
+ provider with ?provider=<id>.
13813
13956
  tags:
13814
13957
  - inference
13815
13958
  parameters:
@@ -13819,8 +13962,8 @@ paths:
13819
13962
  schema:
13820
13963
  type: string
13821
13964
  description:
13822
- "Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
13823
- openai-compatible, minimax, atlascloud, vellum"
13965
+ "Filter by provider id. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
13966
+ vercel-ai-gateway, openai-compatible, minimax, atlascloud"
13824
13967
  responses:
13825
13968
  "200":
13826
13969
  description: Successful response
@@ -13829,17 +13972,45 @@ paths:
13829
13972
  schema:
13830
13973
  type: object
13831
13974
  properties:
13832
- connections:
13975
+ models:
13833
13976
  type: array
13834
13977
  items:
13835
- $ref: "#/components/schemas/ProviderConnection"
13978
+ $ref: "#/components/schemas/CatalogModel"
13836
13979
  required:
13837
- - connections
13980
+ - models
13981
+ additionalProperties: false
13982
+ "400":
13983
+ description: Unknown provider filter
13984
+ /v1/inference/profiles:
13985
+ get:
13986
+ operationId: inference_profiles_get
13987
+ summary: List effective inference profiles
13988
+ description:
13989
+ "Return the effective profile catalog: code-defined managed defaults merged with user profiles, each
13990
+ annotated with source and (when it has a connection) availability."
13991
+ tags:
13992
+ - inference
13993
+ responses:
13994
+ "200":
13995
+ description: Successful response
13996
+ content:
13997
+ application/json:
13998
+ schema:
13999
+ type: object
14000
+ properties:
14001
+ profiles:
14002
+ type: array
14003
+ items:
14004
+ $ref: "#/components/schemas/InferenceProfileSummary"
14005
+ required:
14006
+ - profiles
13838
14007
  additionalProperties: false
13839
14008
  post:
13840
- operationId: inference_providerconnections_post
13841
- summary: Create a provider connection
13842
- description: Create a new named provider connection. Fails with 409 if a connection with this name already exists.
14009
+ operationId: inference_profiles_post
14010
+ summary: Create an inference profile
14011
+ description:
14012
+ Create a validated custom profile. The provider must be a known LLM provider, the model must be in the
14013
+ catalog (unless allowUnlisted), and a referenced connection must exist. Managed default names cannot be created.
13843
14014
  tags:
13844
14015
  - inference
13845
14016
  requestBody:
@@ -13853,17 +14024,220 @@ paths:
13853
14024
  type: string
13854
14025
  minLength: 1
13855
14026
  provider:
13856
- $ref: "#/components/schemas/ConnectionProvider"
13857
- auth:
13858
- $ref: "#/components/schemas/Auth"
13859
- label:
13860
14027
  type: string
13861
14028
  minLength: 1
13862
- base_url:
13863
- anyOf:
13864
- - type: string
13865
- format: uri
13866
- - type: "null"
14029
+ model:
14030
+ type: string
14031
+ minLength: 1
14032
+ connection:
14033
+ type: string
14034
+ minLength: 1
14035
+ label:
14036
+ type: string
14037
+ minLength: 1
14038
+ effort:
14039
+ type: string
14040
+ maxTokens:
14041
+ type: integer
14042
+ exclusiveMinimum: 0
14043
+ maximum: 9007199254740991
14044
+ temperature:
14045
+ type: number
14046
+ thinking:
14047
+ type: boolean
14048
+ description:
14049
+ type: string
14050
+ allowUnlisted:
14051
+ type: boolean
14052
+ required:
14053
+ - name
14054
+ - provider
14055
+ - model
14056
+ responses:
14057
+ "201":
14058
+ description: Successful response
14059
+ content:
14060
+ application/json:
14061
+ schema:
14062
+ $ref: "#/components/schemas/InferenceProfileWriteResult"
14063
+ "400":
14064
+ description: Invalid provider, uncataloged model, or missing connection
14065
+ "409":
14066
+ description: A profile with this name already exists
14067
+ /v1/inference/profiles/{name}:
14068
+ delete:
14069
+ operationId: inference_profiles_by_name_delete
14070
+ summary: Delete an inference profile
14071
+ description: Delete a custom profile. Managed default profiles cannot be deleted (they are re-seeded on boot).
14072
+ tags:
14073
+ - inference
14074
+ parameters:
14075
+ - name: name
14076
+ in: path
14077
+ required: true
14078
+ schema:
14079
+ type: string
14080
+ responses:
14081
+ "200":
14082
+ description: Successful response
14083
+ content:
14084
+ application/json:
14085
+ schema:
14086
+ type: object
14087
+ properties:
14088
+ ok:
14089
+ type: boolean
14090
+ const: true
14091
+ name:
14092
+ type: string
14093
+ required:
14094
+ - ok
14095
+ - name
14096
+ additionalProperties: false
14097
+ "400":
14098
+ description: Attempt to delete a managed profile
14099
+ "404":
14100
+ description: Profile not found
14101
+ "409":
14102
+ description: Profile is still referenced by activeProfile, advisorProfile, a call site, or a mix arm
14103
+ get:
14104
+ operationId: inference_profiles_by_name_get
14105
+ summary: Get an effective inference profile
14106
+ description: Return a single effective profile by name, with availability.
14107
+ tags:
14108
+ - inference
14109
+ parameters:
14110
+ - name: name
14111
+ in: path
14112
+ required: true
14113
+ schema:
14114
+ type: string
14115
+ responses:
14116
+ "200":
14117
+ description: Successful response
14118
+ content:
14119
+ application/json:
14120
+ schema:
14121
+ $ref: "#/components/schemas/InferenceProfileDetail"
14122
+ "404":
14123
+ description: Profile not found
14124
+ patch:
14125
+ operationId: inference_profiles_by_name_patch
14126
+ summary: Update an inference profile
14127
+ description:
14128
+ Partial update of a custom profile with the same write-time validation as create. Managed default profiles
14129
+ are read-only.
14130
+ tags:
14131
+ - inference
14132
+ parameters:
14133
+ - name: name
14134
+ in: path
14135
+ required: true
14136
+ schema:
14137
+ type: string
14138
+ requestBody:
14139
+ required: true
14140
+ content:
14141
+ application/json:
14142
+ schema:
14143
+ type: object
14144
+ properties:
14145
+ provider:
14146
+ type: string
14147
+ minLength: 1
14148
+ model:
14149
+ type: string
14150
+ minLength: 1
14151
+ connection:
14152
+ type: string
14153
+ minLength: 1
14154
+ label:
14155
+ type: string
14156
+ minLength: 1
14157
+ effort:
14158
+ type: string
14159
+ maxTokens:
14160
+ type: integer
14161
+ exclusiveMinimum: 0
14162
+ maximum: 9007199254740991
14163
+ temperature:
14164
+ type: number
14165
+ thinking:
14166
+ type: boolean
14167
+ description:
14168
+ type: string
14169
+ allowUnlisted:
14170
+ type: boolean
14171
+ responses:
14172
+ "200":
14173
+ description: Successful response
14174
+ content:
14175
+ application/json:
14176
+ schema:
14177
+ $ref: "#/components/schemas/InferenceProfileWriteResult"
14178
+ "400":
14179
+ description: Invalid fields, or attempt to edit a managed profile
14180
+ "404":
14181
+ description: Profile not found
14182
+ /v1/inference/provider-connections:
14183
+ get:
14184
+ operationId: inference_providerconnections_get
14185
+ summary: List provider connections
14186
+ description: Return all provider connections. Optionally filter by provider with ?provider=<name>.
14187
+ tags:
14188
+ - inference
14189
+ parameters:
14190
+ - name: provider
14191
+ in: query
14192
+ required: false
14193
+ schema:
14194
+ type: string
14195
+ description:
14196
+ "Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
14197
+ vercel-ai-gateway, openai-compatible, minimax, atlascloud, vellum"
14198
+ responses:
14199
+ "200":
14200
+ description: Successful response
14201
+ content:
14202
+ application/json:
14203
+ schema:
14204
+ type: object
14205
+ properties:
14206
+ connections:
14207
+ type: array
14208
+ items:
14209
+ $ref: "#/components/schemas/ProviderConnection"
14210
+ required:
14211
+ - connections
14212
+ additionalProperties: false
14213
+ post:
14214
+ operationId: inference_providerconnections_post
14215
+ summary: Create a provider connection
14216
+ description: Create a new named provider connection. Fails with 409 if a connection with this name already exists.
14217
+ tags:
14218
+ - inference
14219
+ requestBody:
14220
+ required: true
14221
+ content:
14222
+ application/json:
14223
+ schema:
14224
+ type: object
14225
+ properties:
14226
+ name:
14227
+ type: string
14228
+ minLength: 1
14229
+ provider:
14230
+ $ref: "#/components/schemas/ConnectionProvider"
14231
+ auth:
14232
+ $ref: "#/components/schemas/Auth"
14233
+ label:
14234
+ type: string
14235
+ minLength: 1
14236
+ base_url:
14237
+ anyOf:
14238
+ - type: string
14239
+ format: uri
14240
+ - type: "null"
13867
14241
  models:
13868
14242
  anyOf:
13869
14243
  - type: array
@@ -15565,6 +15939,54 @@ paths:
15565
15939
  required:
15566
15940
  - skipped
15567
15941
  additionalProperties: false
15942
+ /v1/internal/telemetry/watchdog:
15943
+ post:
15944
+ operationId: internal_telemetry_watchdog_post
15945
+ summary: Relay a watchdog telemetry event
15946
+ description:
15947
+ Emits a gateway-origin watchdog telemetry event directly to platform ingest, bypassing the SQLite watchdog
15948
+ buffer, so integrity alarms never depend on the state they report on.
15949
+ tags:
15950
+ - internal
15951
+ - telemetry
15952
+ requestBody:
15953
+ required: true
15954
+ content:
15955
+ application/json:
15956
+ schema:
15957
+ type: object
15958
+ properties:
15959
+ check_name:
15960
+ type: string
15961
+ minLength: 1
15962
+ maxLength: 128
15963
+ detail:
15964
+ anyOf:
15965
+ - type: object
15966
+ propertyNames:
15967
+ type: string
15968
+ additionalProperties: {}
15969
+ - type: "null"
15970
+ value:
15971
+ anyOf:
15972
+ - type: number
15973
+ - type: "null"
15974
+ required:
15975
+ - check_name
15976
+ responses:
15977
+ "200":
15978
+ description: Successful response
15979
+ content:
15980
+ application/json:
15981
+ schema:
15982
+ type: object
15983
+ properties:
15984
+ ok:
15985
+ type: boolean
15986
+ const: true
15987
+ required:
15988
+ - ok
15989
+ additionalProperties: false
15568
15990
  /v1/internal/twilio/status:
15569
15991
  post:
15570
15992
  operationId: internal_twilio_status_post
@@ -15930,41 +16352,148 @@ paths:
15930
16352
  format: binary
15931
16353
  "500":
15932
16354
  description: Failed to create archive
15933
- /v1/memory-items:
16355
+ /v1/memory-graph:
15934
16356
  get:
15935
- operationId: memoryitems_get
15936
- summary: List memory items
15937
- description: Return memory items with filtering, search, sorting, and pagination.
16357
+ operationId: memorygraph_get
16358
+ summary: Get the memory graph
16359
+ description:
16360
+ Return the assistant's memory as a backend-agnostic graph of nodes (concepts, skills, capabilities) and
16361
+ edges (authored links and learned associations). Returns supported=false when the active backend exposes no
16362
+ graph.
15938
16363
  tags:
15939
16364
  - memory
15940
- parameters:
15941
- - name: kind
15942
- in: query
15943
- required: false
15944
- schema:
15945
- type: string
15946
- description: Filter by kind
15947
- - name: status
15948
- in: query
15949
- required: false
15950
- schema:
15951
- type: string
15952
- description: Filter by status (default active)
15953
- - name: search
15954
- in: query
15955
- required: false
15956
- schema:
15957
- type: string
15958
- description: Full-text search query
15959
- - name: sort
15960
- in: query
15961
- required: false
15962
- schema:
15963
- type: string
15964
- description: Sort field (default lastSeenAt)
15965
- - name: order
15966
- in: query
15967
- required: false
16365
+ responses:
16366
+ "200":
16367
+ description: Successful response
16368
+ content:
16369
+ application/json:
16370
+ schema:
16371
+ type: object
16372
+ properties:
16373
+ backend:
16374
+ anyOf:
16375
+ - type: string
16376
+ - type: "null"
16377
+ supported:
16378
+ type: boolean
16379
+ nodes:
16380
+ type: array
16381
+ items:
16382
+ type: object
16383
+ properties:
16384
+ id:
16385
+ type: string
16386
+ label:
16387
+ type: string
16388
+ summary:
16389
+ type: string
16390
+ kind:
16391
+ type: string
16392
+ weight:
16393
+ type: number
16394
+ updatedAtMs:
16395
+ type: number
16396
+ required:
16397
+ - id
16398
+ - label
16399
+ additionalProperties: false
16400
+ edges:
16401
+ type: array
16402
+ items:
16403
+ type: object
16404
+ properties:
16405
+ source:
16406
+ type: string
16407
+ target:
16408
+ type: string
16409
+ kind:
16410
+ type: string
16411
+ weight:
16412
+ type: number
16413
+ description:
16414
+ type: string
16415
+ directed:
16416
+ type: boolean
16417
+ required:
16418
+ - source
16419
+ - target
16420
+ additionalProperties: false
16421
+ truncated:
16422
+ type: boolean
16423
+ required:
16424
+ - backend
16425
+ - supported
16426
+ - nodes
16427
+ - edges
16428
+ additionalProperties: false
16429
+ /v1/memory-graph-node:
16430
+ get:
16431
+ operationId: memorygraphnode_get
16432
+ summary: Get a memory graph node's content
16433
+ description:
16434
+ "Return the rendered markdown content of a single concept node by id, for the graph's node-detail view.
16435
+ `found: false` when the node has no readable page."
16436
+ tags:
16437
+ - memory
16438
+ parameters:
16439
+ - name: id
16440
+ in: query
16441
+ required: false
16442
+ schema:
16443
+ type: string
16444
+ description: "Node id from the graph payload (memory-v3: the concept-page slug)."
16445
+ responses:
16446
+ "200":
16447
+ description: Successful response
16448
+ content:
16449
+ application/json:
16450
+ schema:
16451
+ type: object
16452
+ properties:
16453
+ found:
16454
+ type: boolean
16455
+ title:
16456
+ type: string
16457
+ content:
16458
+ type: string
16459
+ required:
16460
+ - found
16461
+ additionalProperties: false
16462
+ /v1/memory-items:
16463
+ get:
16464
+ operationId: memoryitems_get
16465
+ summary: List memory items
16466
+ description: Return memory items with filtering, search, sorting, and pagination.
16467
+ tags:
16468
+ - memory
16469
+ parameters:
16470
+ - name: kind
16471
+ in: query
16472
+ required: false
16473
+ schema:
16474
+ type: string
16475
+ description: Filter by kind
16476
+ - name: status
16477
+ in: query
16478
+ required: false
16479
+ schema:
16480
+ type: string
16481
+ description: Filter by status (default active)
16482
+ - name: search
16483
+ in: query
16484
+ required: false
16485
+ schema:
16486
+ type: string
16487
+ description: Full-text search query
16488
+ - name: sort
16489
+ in: query
16490
+ required: false
16491
+ schema:
16492
+ type: string
16493
+ description: Sort field (default lastSeenAt)
16494
+ - name: order
16495
+ in: query
16496
+ required: false
15968
16497
  schema:
15969
16498
  type: string
15970
16499
  description: asc or desc (default desc)
@@ -16084,7 +16613,7 @@ paths:
16084
16613
  type: object
16085
16614
  properties: {}
16086
16615
  additionalProperties: {}
16087
- description: Memory item with scopeLabel and graph metadata
16616
+ description: Memory item with graph metadata
16088
16617
  required:
16089
16618
  - item
16090
16619
  additionalProperties: false
@@ -16135,6 +16664,147 @@ paths:
16135
16664
  additionalProperties: false
16136
16665
  "409":
16137
16666
  description: Another memory item with this content already exists
16667
+ /v1/memory-nodes:
16668
+ get:
16669
+ operationId: memorynodes_get
16670
+ summary: List memory graph nodes
16671
+ description:
16672
+ Return active memory graph nodes ordered by significance. With `search`, all nodes are scanned so the
16673
+ content filter is exhaustive; without it the query is capped at `limit` rows.
16674
+ tags:
16675
+ - memory
16676
+ parameters:
16677
+ - name: search
16678
+ in: query
16679
+ required: false
16680
+ schema:
16681
+ type: string
16682
+ description: Filter nodes whose content contains the query
16683
+ - name: limit
16684
+ in: query
16685
+ required: false
16686
+ schema:
16687
+ type: integer
16688
+ description: Max results (default 50, max 200)
16689
+ responses:
16690
+ "200":
16691
+ description: Successful response
16692
+ content:
16693
+ application/json:
16694
+ schema:
16695
+ type: object
16696
+ properties:
16697
+ success:
16698
+ type: boolean
16699
+ message:
16700
+ type: string
16701
+ nodes:
16702
+ type: array
16703
+ items:
16704
+ type: object
16705
+ properties:
16706
+ id:
16707
+ type: string
16708
+ content:
16709
+ type: string
16710
+ type:
16711
+ type: string
16712
+ fidelity:
16713
+ type: string
16714
+ created:
16715
+ type: number
16716
+ required:
16717
+ - id
16718
+ - content
16719
+ - type
16720
+ - fidelity
16721
+ - created
16722
+ additionalProperties: false
16723
+ total:
16724
+ type: number
16725
+ required:
16726
+ - success
16727
+ - message
16728
+ - nodes
16729
+ - total
16730
+ additionalProperties: false
16731
+ /v1/memory-nodes/delete:
16732
+ post:
16733
+ operationId: memorynodes_delete_post
16734
+ summary: Delete a memory graph node by content match
16735
+ description:
16736
+ "Delete the single memory graph node matching `content`: a case-insensitive exact match takes priority;
16737
+ with no exact match, a substring match is tried. Fails as `{ success: false }` when zero or multiple nodes
16738
+ match."
16739
+ tags:
16740
+ - memory
16741
+ requestBody:
16742
+ required: true
16743
+ content:
16744
+ application/json:
16745
+ schema:
16746
+ type: object
16747
+ properties:
16748
+ content:
16749
+ type: string
16750
+ required:
16751
+ - content
16752
+ responses:
16753
+ "200":
16754
+ description: Successful response
16755
+ content:
16756
+ application/json:
16757
+ schema:
16758
+ type: object
16759
+ properties:
16760
+ success:
16761
+ type: boolean
16762
+ message:
16763
+ type: string
16764
+ required:
16765
+ - success
16766
+ - message
16767
+ additionalProperties: false
16768
+ /v1/memory-nodes/update:
16769
+ post:
16770
+ operationId: memorynodes_update_post
16771
+ summary: Update a memory graph node by content match
16772
+ description:
16773
+ "Replace the content of the single memory graph node matching `oldContent`: a case-insensitive exact match
16774
+ takes priority; with no exact match, a substring match is tried. Fails as `{ success: false }` when zero or
16775
+ multiple nodes match, or when another active node already has `newContent`."
16776
+ tags:
16777
+ - memory
16778
+ requestBody:
16779
+ required: true
16780
+ content:
16781
+ application/json:
16782
+ schema:
16783
+ type: object
16784
+ properties:
16785
+ oldContent:
16786
+ type: string
16787
+ newContent:
16788
+ type: string
16789
+ required:
16790
+ - oldContent
16791
+ - newContent
16792
+ responses:
16793
+ "200":
16794
+ description: Successful response
16795
+ content:
16796
+ application/json:
16797
+ schema:
16798
+ type: object
16799
+ properties:
16800
+ success:
16801
+ type: boolean
16802
+ message:
16803
+ type: string
16804
+ required:
16805
+ - success
16806
+ - message
16807
+ additionalProperties: false
16138
16808
  /v1/memory/eval/run:
16139
16809
  post:
16140
16810
  operationId: memory_eval_run_post
@@ -17057,10 +17727,6 @@ paths:
17057
17727
  enum:
17058
17728
  - user
17059
17729
  - assistant
17060
- content:
17061
- type: string
17062
- deprecated: true
17063
- description: "Deprecated: superseded by contentBlocks. Flat plain-text body (joined text segments)."
17064
17730
  timestamp:
17065
17731
  type: string
17066
17732
  attachments:
@@ -17115,6 +17781,10 @@ paths:
17115
17781
  type: array
17116
17782
  items:
17117
17783
  type: string
17784
+ imageAttachmentIds:
17785
+ type: array
17786
+ items:
17787
+ type: string
17118
17788
  startedAt:
17119
17789
  type: number
17120
17790
  previewStartedAt:
@@ -17547,6 +18217,10 @@ paths:
17547
18217
  type: array
17548
18218
  items:
17549
18219
  type: string
18220
+ imageAttachmentIds:
18221
+ type: array
18222
+ items:
18223
+ type: string
17550
18224
  startedAt:
17551
18225
  type: number
17552
18226
  previewStartedAt:
@@ -21404,6 +22078,19 @@ paths:
21404
22078
  anyOf:
21405
22079
  - type: string
21406
22080
  - type: "null"
22081
+ icon:
22082
+ description: Author-declared emoji icon from the plugin's package.json vellum.icon; absent when none.
22083
+ type: string
22084
+ hasIcon:
22085
+ description:
22086
+ Whether the plugin ships a valid author-bundled `icon.png` (PNG magic + dimensions + size validated).
22087
+ Drives whether a client fetches the bundled icon.
22088
+ type: boolean
22089
+ iconVersion:
22090
+ description:
22091
+ Content hash of the validated `icon.png`; present only when `hasIcon` is true. Use it as a cache-buster for
22092
+ the bundled-icon endpoint.
22093
+ type: string
21407
22094
  required:
21408
22095
  - id
21409
22096
  - name
@@ -21432,7 +22119,8 @@ paths:
21432
22119
  Remove the directory at `<workspaceDir>/plugins/<name>/`. Mirrors the CLI's `assistant plugins uninstall
21433
22120
  <name>` (without the interactive confirmation — the API caller is responsible for any prompt). The plugin name
21434
22121
  is sanitized by the same regex the CLI uses; `../escape`-style values, hidden names, and absolute paths return
21435
- 400. Missing plugins return 404. The assistant must be restarted to drop the plugin from the running runtime.
22122
+ 400. Missing plugins return 404. The plugin is dropped from the running runtime live on the next read (no
22123
+ restart required).
21436
22124
  tags:
21437
22125
  - plugins
21438
22126
  parameters:
@@ -21572,6 +22260,23 @@ paths:
21572
22260
  description:
21573
22261
  Prebuilt client artifact from `package.json` `vellum.artifact`, or null when the plugin ships none or its
21574
22262
  descriptor is incomplete (e.g. a placeholder sha256).
22263
+ icon:
22264
+ anyOf:
22265
+ - type: string
22266
+ - type: "null"
22267
+ description: Author-declared emoji icon from the plugin's `package.json` `vellum.icon`, or null when none.
22268
+ hasIcon:
22269
+ type: boolean
22270
+ description:
22271
+ Whether the locally installed copy ships a valid author-bundled `icon.png` (PNG magic + dimensions + size
22272
+ validated). Always false when the plugin is not installed.
22273
+ iconVersion:
22274
+ anyOf:
22275
+ - type: string
22276
+ - type: "null"
22277
+ description:
22278
+ Content hash of the validated `icon.png`; null when `hasIcon` is false. Use it as a cache-buster for the
22279
+ bundled-icon endpoint.
21575
22280
  required:
21576
22281
  - name
21577
22282
  - installed
@@ -21583,6 +22288,9 @@ paths:
21583
22288
  - readme
21584
22289
  - ref
21585
22290
  - artifact
22291
+ - icon
22292
+ - hasIcon
22293
+ - iconVersion
21586
22294
  additionalProperties: false
21587
22295
  "400":
21588
22296
  description: The plugin name failed sanitization (e.g. contained slashes, dots, or uppercase letters).
@@ -21765,9 +22473,38 @@ paths:
21765
22473
  description: No plugin directory exists with the given name.
21766
22474
  "409":
21767
22475
  description: The plugin is already enabled.
21768
- /v1/plugins/{name}/inspect:
22476
+ /v1/plugins/{name}/icon:
21769
22477
  get:
21770
- operationId: plugins_by_name_inspect_get
22478
+ operationId: plugins_by_name_icon_get
22479
+ summary: Serve a plugin's bundled icon
22480
+ description:
22481
+ Serve the installed plugin's validated author-bundled `icon.png` as `image/png`. The PNG is re-validated on
22482
+ read (magic bytes + IHDR dimensions + size) and served with an immutable `Cache-Control` plus a content-hash
22483
+ `ETag` — the `iconVersion` reported by `GET /v1/plugins` and `GET /v1/plugins/:name` — so clients cache
22484
+ aggressively and only refetch when the hash changes. A plugin with no valid bundled icon returns 404; a
22485
+ malformed name returns 400. Pair with the `hasIcon` / `iconVersion` fields on the list and detail responses to
22486
+ decide whether to fetch.
22487
+ tags:
22488
+ - plugins
22489
+ parameters:
22490
+ - name: name
22491
+ in: path
22492
+ required: true
22493
+ schema:
22494
+ type: string
22495
+ responses:
22496
+ "200":
22497
+ description: Successful response
22498
+ content:
22499
+ image/png:
22500
+ schema:
22501
+ type: string
22502
+ format: binary
22503
+ "404":
22504
+ description: No installed plugin with the given name has an icon.
22505
+ /v1/plugins/{name}/inspect:
22506
+ get:
22507
+ operationId: plugins_by_name_inspect_get
21771
22508
  summary: Inspect a plugin's install drift
21772
22509
  description:
21773
22510
  'Compare the locally installed copy of a plugin against the marketplace''s current pinned commit and report
@@ -22030,14 +22767,14 @@ paths:
22030
22767
  `<workspaceDir>/plugins/<name>/`. Always resolves against the curated marketplace pin (no caller-supplied ref),
22031
22768
  mirroring `plugins install`''s curation boundary. A no-op (`outcome: "already-up-to-date"`) when the installed
22032
22769
  commit already equals the pin; pass `dryRun` to preview the move (`outcome: "would-upgrade"`) without touching
22033
- the install. Installs lacking provenance are re-pinned to the current SHA. The assistant must be restarted to
22034
- load the upgraded code. `strategy` controls how local edits are reconciled: `overwrite` (default) discards them
22035
- and re-installs the pin wholesale; `ours`/`theirs`/`assistant` perform a three-way merge against the
22036
- re-materialized install commit, carrying non-conflicting edits from both sides forward and resolving conflicting
22037
- hunks toward the local edit (`ours`) or the pin (`theirs`), or writing git conflict markers into the file and
22038
- reporting them in `conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge strategy
22039
- whose install-time baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins upgrade
22040
- <name> [--strategy <s>]`.'
22770
+ the install. Installs lacking provenance are re-pinned to the current SHA. The upgraded code is picked up live
22771
+ on the next read (no restart required). `strategy` controls how local edits are reconciled: `overwrite`
22772
+ (default) discards them and re-installs the pin wholesale; `ours`/`theirs`/`assistant` perform a three-way merge
22773
+ against the re-materialized install commit, carrying non-conflicting edits from both sides forward and resolving
22774
+ conflicting hunks toward the local edit (`ours`) or the pin (`theirs`), or writing git conflict markers into the
22775
+ file and reporting them in `conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge
22776
+ strategy whose install-time baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins
22777
+ upgrade <name> [--strategy <s>]`.'
22041
22778
  tags:
22042
22779
  - plugins
22043
22780
  parameters:
@@ -22239,9 +22976,9 @@ paths:
22239
22976
  "Install a plugin by name from the canonical source — a whitelisted `plugins/marketplace.json` entry.
22240
22977
  Always resolves against the curated default git ref (no caller-supplied ref): installing from an unreviewed
22241
22978
  revision would bypass the marketplace curation boundary and let attacker-controlled code be loaded. Materializes
22242
- the plugin under `<workspaceDir>/plugins/<name>/`; the assistant must be restarted to load it. Mirrors the CLI's
22243
- `assistant plugins install <name>`. An already-installed name without `force` returns 409; a name that resolves
22244
- to nothing returns 404. Sibling to `POST /v1/skills/install`."
22979
+ the plugin under `<workspaceDir>/plugins/<name>/`; the plugin is picked up live on the next read (no restart
22980
+ required). Mirrors the CLI's `assistant plugins install <name>`. An already-installed name without `force`
22981
+ returns 409; a name that resolves to nothing returns 404. Sibling to `POST /v1/skills/install`."
22245
22982
  tags:
22246
22983
  - plugins
22247
22984
  requestBody:
@@ -24432,6 +25169,29 @@ paths:
24432
25169
  anyOf:
24433
25170
  - type: number
24434
25171
  - type: "null"
25172
+ conversations:
25173
+ type: array
25174
+ items:
25175
+ type: object
25176
+ properties:
25177
+ id:
25178
+ type: string
25179
+ title:
25180
+ anyOf:
25181
+ - type: string
25182
+ - type: "null"
25183
+ exists:
25184
+ type: boolean
25185
+ archivedAt:
25186
+ anyOf:
25187
+ - type: number
25188
+ - type: "null"
25189
+ required:
25190
+ - id
25191
+ - title
25192
+ - exists
25193
+ - archivedAt
25194
+ additionalProperties: false
24435
25195
  estimatedCostUsd:
24436
25196
  type: number
24437
25197
  createdAt:
@@ -24448,6 +25208,7 @@ paths:
24448
25208
  - conversationId
24449
25209
  - conversationExists
24450
25210
  - conversationArchivedAt
25211
+ - conversations
24451
25212
  - estimatedCostUsd
24452
25213
  - createdAt
24453
25214
  additionalProperties: false
@@ -26247,6 +27008,11 @@ paths:
26247
27008
  origin:
26248
27009
  type: string
26249
27010
  const: assistant-memory
27011
+ sourceConversationId:
27012
+ description:
27013
+ Conversation whose trace the retrospective distilled this skill from. Present only when recorded in
27014
+ install-meta.
27015
+ type: string
26250
27016
  required:
26251
27017
  - id
26252
27018
  - name
@@ -27373,8 +28139,9 @@ paths:
27373
28139
  - "true"
27374
28140
  - "false"
27375
28141
  description:
27376
- "When 'true', only return conversations the connected identity is in: channels/groups with is_member, plus
27377
- all DMs and group DMs"
28142
+ "When 'true', only return rooms the connected identity is in: channels with is_member plus group DMs. 1:1
28143
+ DMs are excluded — they are person-scoped, and Slack materializes IM rows without any conversation
28144
+ happening."
27378
28145
  responses:
27379
28146
  "200":
27380
28147
  description: Successful response
@@ -27472,6 +28239,47 @@ paths:
27472
28239
  - ts
27473
28240
  - channel
27474
28241
  additionalProperties: false
28242
+ /v1/slack/users:
28243
+ get:
28244
+ operationId: slack_users_get
28245
+ summary: List Slack workspace users
28246
+ description:
28247
+ List human members of the connected Slack workspace for the contact account-linking picker. Deleted users
28248
+ and bots are excluded.
28249
+ tags:
28250
+ - integrations
28251
+ responses:
28252
+ "200":
28253
+ description: Successful response
28254
+ content:
28255
+ application/json:
28256
+ schema:
28257
+ type: object
28258
+ properties:
28259
+ users:
28260
+ type: array
28261
+ items:
28262
+ type: object
28263
+ properties:
28264
+ id:
28265
+ type: string
28266
+ username:
28267
+ type: string
28268
+ displayName:
28269
+ type: string
28270
+ imageUrl:
28271
+ anyOf:
28272
+ - type: string
28273
+ - type: "null"
28274
+ required:
28275
+ - id
28276
+ - username
28277
+ - displayName
28278
+ - imageUrl
28279
+ additionalProperties: false
28280
+ required:
28281
+ - users
28282
+ additionalProperties: false
27475
28283
  /v1/sounds/available:
27476
28284
  get:
27477
28285
  operationId: sounds_available_get
@@ -28593,11 +29401,12 @@ paths:
28593
29401
  summary: List registered tools with metadata and schemas
28594
29402
  description:
28595
29403
  "Return registered tools. Without `conversationId`, returns every tool in the global registry; `tools`
28596
- carries per-tool metadata (description, author-asserted risk level, category, and contributing source: core,
28597
- skill, plugin, or MCP server) and `names`/`schemas` additionally cover skill tools whose manifests are present
28598
- but not yet loaded, for the permission-simulator catalog. With `conversationId`, scopes the result to the tools
28599
- available to that conversation as of its most recent turn (including skill/MCP tools registered over its
28600
- lifecycle); 404 if no such conversation is active."
29404
+ carries per-tool metadata (description, author-asserted risk level, category, and contributing source: default
29405
+ (built-in), skill, plugin, or MCP server) and `names`/`schemas` additionally cover skill tools whose manifests
29406
+ are present but not yet loaded, for the permission-simulator catalog. With `conversationId`, scopes the result
29407
+ to the tools available to that conversation as of its most recent turn (including skill/MCP tools registered
29408
+ over its lifecycle); 404 if no such conversation is active. With `agent`, simulates the subagent tool projection
29409
+ for a given role or resolves a live subagent's conversation."
28601
29410
  tags:
28602
29411
  - tools
28603
29412
  parameters:
@@ -28607,6 +29416,14 @@ paths:
28607
29416
  schema:
28608
29417
  type: string
28609
29418
  description: When set, scope the tool inventory to this conversation's most recent turn instead of the global registry.
29419
+ - name: agent
29420
+ in: query
29421
+ required: false
29422
+ schema:
29423
+ type: string
29424
+ description:
29425
+ A subagent role name or a live subagent id. Simulates the subagent tool projection for that role or
29426
+ resolves the live subagent's conversation.
28610
29427
  responses:
28611
29428
  "200":
28612
29429
  description: Successful response
@@ -28644,8 +29461,8 @@ paths:
28644
29461
  source:
28645
29462
  type: string
28646
29463
  description:
28647
- 'Tool origin: "core" for built-ins, otherwise "<kind>:<id>" (e.g. "plugin:echo", "skill:my-skill",
28648
- "mcp:server").'
29464
+ Tool origin as "<kind>:<id>" (e.g. "default:default" for built-ins, "plugin:echo", "skill:my-skill",
29465
+ "mcp:server").
28649
29466
  required:
28650
29467
  - name
28651
29468
  - description
@@ -29790,28 +30607,13 @@ paths:
29790
30607
  - path
29791
30608
  - mode
29792
30609
  additionalProperties: false
29793
- /v1/work-items:
30610
+ /v1/workflows:
29794
30611
  get:
29795
- operationId: workitems_get
29796
- summary: List work items
29797
- description: Return work items, optionally filtered by status.
30612
+ operationId: workflows_get
30613
+ summary: List saved workflows
30614
+ description: Return the saved (named) workflows the assistant can run.
29798
30615
  tags:
29799
- - work-items
29800
- parameters:
29801
- - name: status
29802
- in: query
29803
- required: false
29804
- schema:
29805
- type: string
29806
- enum:
29807
- - pending
29808
- - running
29809
- - awaiting_review
29810
- - done
29811
- - failed
29812
- - cancelled
29813
- - archived
29814
- description: Filter by work item status
30616
+ - workflows
29815
30617
  responses:
29816
30618
  "200":
29817
30619
  description: Successful response
@@ -29820,376 +30622,127 @@ paths:
29820
30622
  schema:
29821
30623
  type: object
29822
30624
  properties:
29823
- items:
30625
+ workflows:
29824
30626
  type: array
29825
- items: {}
30627
+ items:
30628
+ type: object
30629
+ properties:
30630
+ name:
30631
+ type: string
30632
+ description:
30633
+ type: string
30634
+ path:
30635
+ type: string
30636
+ required:
30637
+ - name
30638
+ - description
30639
+ - path
30640
+ additionalProperties: false
30641
+ description: Saved workflow entries
29826
30642
  required:
29827
- - items
30643
+ - workflows
29828
30644
  additionalProperties: false
29829
- /v1/work-items/{id}:
29830
- delete:
29831
- operationId: workitems_by_id_delete
29832
- summary: Delete a work item
29833
- description: Permanently remove a work item.
29834
- tags:
29835
- - work-items
29836
- parameters:
29837
- - name: id
29838
- in: path
29839
- required: true
29840
- schema:
29841
- type: string
29842
- responses:
29843
- "200":
29844
- description: Successful response
30645
+ /v1/workflows/runs:
29845
30646
  get:
29846
- operationId: workitems_by_id_get
29847
- summary: Get a work item
29848
- description: Return a single work item by ID.
30647
+ operationId: workflows_runs_get
30648
+ summary: List workflow runs
30649
+ description: Return recent workflow runs, newest first.
29849
30650
  tags:
29850
- - work-items
30651
+ - workflows
29851
30652
  parameters:
29852
- - name: id
29853
- in: path
29854
- required: true
30653
+ - name: limit
30654
+ in: query
30655
+ required: false
30656
+ schema:
30657
+ type: integer
30658
+ description: Max runs to return (default 50, max 200)
30659
+ - name: status
30660
+ in: query
30661
+ required: false
29855
30662
  schema:
29856
30663
  type: string
30664
+ description: Filter by run status (running, completed, failed, aborted, cap_exceeded, interrupted).
29857
30665
  responses:
29858
30666
  "200":
29859
30667
  description: Successful response
29860
- patch:
29861
- operationId: workitems_by_id_patch
29862
- summary: Update a work item
29863
- description: Partially update a work item's title, notes, status, or priority.
30668
+ content:
30669
+ application/json:
30670
+ schema:
30671
+ type: object
30672
+ properties:
30673
+ runs:
30674
+ type: array
30675
+ items:
30676
+ type: object
30677
+ properties:
30678
+ id:
30679
+ type: string
30680
+ name:
30681
+ anyOf:
30682
+ - type: string
30683
+ - type: "null"
30684
+ scriptHash:
30685
+ type: string
30686
+ status:
30687
+ type: string
30688
+ enum:
30689
+ - running
30690
+ - completed
30691
+ - failed
30692
+ - aborted
30693
+ - cap_exceeded
30694
+ - interrupted
30695
+ conversationId:
30696
+ anyOf:
30697
+ - type: string
30698
+ - type: "null"
30699
+ agentsSpawned:
30700
+ type: number
30701
+ inputTokens:
30702
+ type: number
30703
+ outputTokens:
30704
+ type: number
30705
+ error:
30706
+ anyOf:
30707
+ - type: string
30708
+ - type: "null"
30709
+ createdAt:
30710
+ anyOf:
30711
+ - type: number
30712
+ - type: "null"
30713
+ updatedAt:
30714
+ anyOf:
30715
+ - type: number
30716
+ - type: "null"
30717
+ finishedAt:
30718
+ anyOf:
30719
+ - type: number
30720
+ - type: "null"
30721
+ required:
30722
+ - id
30723
+ - name
30724
+ - scriptHash
30725
+ - status
30726
+ - conversationId
30727
+ - agentsSpawned
30728
+ - inputTokens
30729
+ - outputTokens
30730
+ - error
30731
+ - createdAt
30732
+ - updatedAt
30733
+ - finishedAt
30734
+ additionalProperties: false
30735
+ description: Workflow run objects
30736
+ required:
30737
+ - runs
30738
+ additionalProperties: false
30739
+ /v1/workflows/runs/{id}:
30740
+ get:
30741
+ operationId: workflows_runs_by_id_get
30742
+ summary: Get workflow run
30743
+ description: Return a single workflow run by ID.
29864
30744
  tags:
29865
- - work-items
29866
- parameters:
29867
- - name: id
29868
- in: path
29869
- required: true
29870
- schema:
29871
- type: string
29872
- requestBody:
29873
- required: true
29874
- content:
29875
- application/json:
29876
- schema:
29877
- type: object
29878
- properties:
29879
- title:
29880
- type: string
29881
- notes:
29882
- type: string
29883
- status:
29884
- type: string
29885
- priorityTier:
29886
- type: integer
29887
- minimum: -9007199254740991
29888
- maximum: 9007199254740991
29889
- sortIndex:
29890
- type: integer
29891
- minimum: -9007199254740991
29892
- maximum: 9007199254740991
29893
- required:
29894
- - title
29895
- - notes
29896
- - status
29897
- - priorityTier
29898
- - sortIndex
29899
- responses:
29900
- "200":
29901
- description: Successful response
29902
- /v1/work-items/{id}/approve-permissions:
29903
- post:
29904
- operationId: workitems_by_id_approvepermissions_post
29905
- summary: Approve tool permissions
29906
- description: Pre-approve a set of tools for a work item before it runs.
29907
- tags:
29908
- - work-items
29909
- parameters:
29910
- - name: id
29911
- in: path
29912
- required: true
29913
- schema:
29914
- type: string
29915
- requestBody:
29916
- required: true
29917
- content:
29918
- application/json:
29919
- schema:
29920
- type: object
29921
- properties:
29922
- approvedTools:
29923
- type: array
29924
- items: {}
29925
- description: Array of tool names to approve
29926
- required:
29927
- - approvedTools
29928
- responses:
29929
- "200":
29930
- description: Successful response
29931
- /v1/work-items/{id}/cancel:
29932
- post:
29933
- operationId: workitems_by_id_cancel_post
29934
- summary: Cancel a running work item
29935
- description: Abort a running work item and set its status to cancelled.
29936
- tags:
29937
- - work-items
29938
- parameters:
29939
- - name: id
29940
- in: path
29941
- required: true
29942
- schema:
29943
- type: string
29944
- responses:
29945
- "200":
29946
- description: Successful response
29947
- "404":
29948
- description: Work item not found
29949
- "409":
29950
- description: Work item is not running
29951
- /v1/work-items/{id}/complete:
29952
- post:
29953
- operationId: workitems_by_id_complete_post
29954
- summary: Complete a work item
29955
- description: Transition a work item from awaiting_review to done.
29956
- tags:
29957
- - work-items
29958
- parameters:
29959
- - name: id
29960
- in: path
29961
- required: true
29962
- schema:
29963
- type: string
29964
- responses:
29965
- "200":
29966
- description: Successful response
29967
- /v1/work-items/{id}/output:
29968
- get:
29969
- operationId: workitems_by_id_output_get
29970
- summary: Get work item output
29971
- description: Return the final output of a completed work item run.
29972
- tags:
29973
- - work-items
29974
- parameters:
29975
- - name: id
29976
- in: path
29977
- required: true
29978
- schema:
29979
- type: string
29980
- responses:
29981
- "200":
29982
- description: Successful response
29983
- content:
29984
- application/json:
29985
- schema:
29986
- type: object
29987
- properties:
29988
- id:
29989
- type: string
29990
- success:
29991
- type: boolean
29992
- output:
29993
- type: object
29994
- properties: {}
29995
- additionalProperties: {}
29996
- required:
29997
- - id
29998
- - success
29999
- - output
30000
- additionalProperties: false
30001
- /v1/work-items/{id}/preflight:
30002
- post:
30003
- operationId: workitems_by_id_preflight_post
30004
- summary: Preflight check
30005
- description: Check tool permissions needed before running a work item.
30006
- tags:
30007
- - work-items
30008
- parameters:
30009
- - name: id
30010
- in: path
30011
- required: true
30012
- schema:
30013
- type: string
30014
- responses:
30015
- "200":
30016
- description: Successful response
30017
- content:
30018
- application/json:
30019
- schema:
30020
- type: object
30021
- properties:
30022
- id:
30023
- type: string
30024
- success:
30025
- type: boolean
30026
- permissions:
30027
- type: object
30028
- properties: {}
30029
- additionalProperties: {}
30030
- required:
30031
- - id
30032
- - success
30033
- - permissions
30034
- additionalProperties: false
30035
- /v1/work-items/{id}/run:
30036
- post:
30037
- operationId: workitems_by_id_run_post
30038
- summary: Run a work item
30039
- description: Execute the task associated with a work item. Returns immediately; execution happens in the background.
30040
- tags:
30041
- - work-items
30042
- parameters:
30043
- - name: id
30044
- in: path
30045
- required: true
30046
- schema:
30047
- type: string
30048
- responses:
30049
- "200":
30050
- description: Successful response
30051
- "403":
30052
- description: Required tool permissions not approved
30053
- "404":
30054
- description: Work item or associated task not found
30055
- "409":
30056
- description: Work item is already running or not runnable
30057
- /v1/workflows:
30058
- get:
30059
- operationId: workflows_get
30060
- summary: List saved workflows
30061
- description: Return the saved (named) workflows the assistant can run.
30062
- tags:
30063
- - workflows
30064
- responses:
30065
- "200":
30066
- description: Successful response
30067
- content:
30068
- application/json:
30069
- schema:
30070
- type: object
30071
- properties:
30072
- workflows:
30073
- type: array
30074
- items:
30075
- type: object
30076
- properties:
30077
- name:
30078
- type: string
30079
- description:
30080
- type: string
30081
- path:
30082
- type: string
30083
- required:
30084
- - name
30085
- - description
30086
- - path
30087
- additionalProperties: false
30088
- description: Saved workflow entries
30089
- required:
30090
- - workflows
30091
- additionalProperties: false
30092
- /v1/workflows/runs:
30093
- get:
30094
- operationId: workflows_runs_get
30095
- summary: List workflow runs
30096
- description: Return recent workflow runs, newest first.
30097
- tags:
30098
- - workflows
30099
- parameters:
30100
- - name: limit
30101
- in: query
30102
- required: false
30103
- schema:
30104
- type: integer
30105
- description: Max runs to return (default 50, max 200)
30106
- - name: status
30107
- in: query
30108
- required: false
30109
- schema:
30110
- type: string
30111
- description: Filter by run status (running, completed, failed, aborted, cap_exceeded, interrupted).
30112
- responses:
30113
- "200":
30114
- description: Successful response
30115
- content:
30116
- application/json:
30117
- schema:
30118
- type: object
30119
- properties:
30120
- runs:
30121
- type: array
30122
- items:
30123
- type: object
30124
- properties:
30125
- id:
30126
- type: string
30127
- name:
30128
- anyOf:
30129
- - type: string
30130
- - type: "null"
30131
- scriptHash:
30132
- type: string
30133
- status:
30134
- type: string
30135
- enum:
30136
- - running
30137
- - completed
30138
- - failed
30139
- - aborted
30140
- - cap_exceeded
30141
- - interrupted
30142
- conversationId:
30143
- anyOf:
30144
- - type: string
30145
- - type: "null"
30146
- agentsSpawned:
30147
- type: number
30148
- inputTokens:
30149
- type: number
30150
- outputTokens:
30151
- type: number
30152
- error:
30153
- anyOf:
30154
- - type: string
30155
- - type: "null"
30156
- createdAt:
30157
- anyOf:
30158
- - type: number
30159
- - type: "null"
30160
- updatedAt:
30161
- anyOf:
30162
- - type: number
30163
- - type: "null"
30164
- finishedAt:
30165
- anyOf:
30166
- - type: number
30167
- - type: "null"
30168
- required:
30169
- - id
30170
- - name
30171
- - scriptHash
30172
- - status
30173
- - conversationId
30174
- - agentsSpawned
30175
- - inputTokens
30176
- - outputTokens
30177
- - error
30178
- - createdAt
30179
- - updatedAt
30180
- - finishedAt
30181
- additionalProperties: false
30182
- description: Workflow run objects
30183
- required:
30184
- - runs
30185
- additionalProperties: false
30186
- /v1/workflows/runs/{id}:
30187
- get:
30188
- operationId: workflows_runs_by_id_get
30189
- summary: Get workflow run
30190
- description: Return a single workflow run by ID.
30191
- tags:
30192
- - workflows
30745
+ - workflows
30193
30746
  parameters:
30194
30747
  - name: id
30195
30748
  in: path
@@ -30625,6 +31178,93 @@ paths:
30625
31178
  - oldPath
30626
31179
  - newPath
30627
31180
  additionalProperties: false
31181
+ /v1/workspace/theme:
31182
+ get:
31183
+ operationId: workspace_theme_get
31184
+ summary: Get workspace theme
31185
+ description:
31186
+ "Return validated design-token overrides from the workspace ui/theme.json. Absent or rejected files yield
31187
+ theme: null with the rejection reasons in issues; clients fall back to built-in theme defaults."
31188
+ tags:
31189
+ - workspace
31190
+ responses:
31191
+ "200":
31192
+ description: Successful response
31193
+ content:
31194
+ application/json:
31195
+ schema:
31196
+ type: object
31197
+ properties:
31198
+ theme:
31199
+ anyOf:
31200
+ - type: object
31201
+ properties:
31202
+ version:
31203
+ type: number
31204
+ const: 1
31205
+ base:
31206
+ type: string
31207
+ enum:
31208
+ - light
31209
+ - dark
31210
+ - velvet
31211
+ - system
31212
+ tokens:
31213
+ type: object
31214
+ properties:
31215
+ accent:
31216
+ type: string
31217
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31218
+ background:
31219
+ type: string
31220
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31221
+ surface:
31222
+ type: string
31223
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31224
+ surfaceRaised:
31225
+ type: string
31226
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31227
+ border:
31228
+ type: string
31229
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31230
+ text:
31231
+ type: string
31232
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31233
+ textMuted:
31234
+ type: string
31235
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31236
+ assistantBubbleBackground:
31237
+ type: string
31238
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31239
+ assistantBubbleText:
31240
+ type: string
31241
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31242
+ userBubbleBackground:
31243
+ type: string
31244
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31245
+ userBubbleText:
31246
+ type: string
31247
+ pattern: ^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$
31248
+ additionalProperties: false
31249
+ required:
31250
+ - version
31251
+ additionalProperties: false
31252
+ - type: "null"
31253
+ source:
31254
+ type: string
31255
+ enum:
31256
+ - workspace
31257
+ - invalid
31258
+ - none
31259
+ issues:
31260
+ type: array
31261
+ items:
31262
+ type: string
31263
+ required:
31264
+ - theme
31265
+ - source
31266
+ - issues
31267
+ additionalProperties: false
30628
31268
  /v1/workspace/tree:
30629
31269
  get:
30630
31270
  operationId: workspace_tree_get
@@ -31098,6 +31738,7 @@ components:
31098
31738
  - ollama
31099
31739
  - fireworks
31100
31740
  - openrouter
31741
+ - vercel-ai-gateway
31101
31742
  - openai-compatible
31102
31743
  - minimax
31103
31744
  - atlascloud
@@ -31474,6 +32115,7 @@ components:
31474
32115
  - fireworks
31475
32116
  - together
31476
32117
  - openrouter
32118
+ - vercel-ai-gateway
31477
32119
  - openai-compatible
31478
32120
  - minimax
31479
32121
  - atlascloud
@@ -31670,6 +32312,24 @@ components:
31670
32312
  provider_connection:
31671
32313
  type: string
31672
32314
  additionalProperties: false
32315
+ defaultProvider:
32316
+ type: object
32317
+ properties:
32318
+ provider:
32319
+ type: string
32320
+ enum:
32321
+ - anthropic
32322
+ - openai
32323
+ - gemini
32324
+ - fireworks
32325
+ - openrouter
32326
+ - vellum
32327
+ connectionName:
32328
+ type: string
32329
+ minLength: 1
32330
+ required:
32331
+ - provider
32332
+ additionalProperties: false
31673
32333
  profiles:
31674
32334
  type: object
31675
32335
  propertyNames:
@@ -32024,6 +32684,318 @@ components:
32024
32684
  invariant:
32025
32685
  type: boolean
32026
32686
  additionalProperties: {}
32687
+ DefaultProviderStatus:
32688
+ type: object
32689
+ properties:
32690
+ provider:
32691
+ anyOf:
32692
+ - type: string
32693
+ enum:
32694
+ - anthropic
32695
+ - openai
32696
+ - gemini
32697
+ - fireworks
32698
+ - openrouter
32699
+ - vellum
32700
+ - type: "null"
32701
+ connectionName:
32702
+ type: string
32703
+ resolvedConnectionName:
32704
+ anyOf:
32705
+ - type: string
32706
+ - type: "null"
32707
+ availability:
32708
+ type: object
32709
+ properties:
32710
+ status:
32711
+ type: string
32712
+ enum:
32713
+ - ok
32714
+ - missing_default
32715
+ - missing_connection
32716
+ - missing_credential
32717
+ - provider_mismatch
32718
+ - unsupported_auth
32719
+ - vellum_unauthenticated
32720
+ - unknown
32721
+ message:
32722
+ type: string
32723
+ required:
32724
+ - status
32725
+ additionalProperties: false
32726
+ required:
32727
+ - provider
32728
+ - resolvedConnectionName
32729
+ - availability
32730
+ additionalProperties: false
32731
+ CallSiteResolutionSummary:
32732
+ type: object
32733
+ properties:
32734
+ callSite:
32735
+ type: string
32736
+ profile:
32737
+ anyOf:
32738
+ - type: string
32739
+ - type: "null"
32740
+ label:
32741
+ anyOf:
32742
+ - type: string
32743
+ - type: "null"
32744
+ source:
32745
+ type: string
32746
+ enum:
32747
+ - override
32748
+ - active
32749
+ - call_site
32750
+ - default
32751
+ provider:
32752
+ type: string
32753
+ model:
32754
+ type: string
32755
+ effort:
32756
+ type: string
32757
+ maxTokens:
32758
+ type: number
32759
+ maxInputTokens:
32760
+ type: number
32761
+ required:
32762
+ - callSite
32763
+ - profile
32764
+ - label
32765
+ - source
32766
+ - provider
32767
+ - model
32768
+ - effort
32769
+ - maxTokens
32770
+ additionalProperties: false
32771
+ CallSiteResolutionDetail:
32772
+ type: object
32773
+ properties:
32774
+ callSite:
32775
+ type: string
32776
+ winner:
32777
+ type: object
32778
+ properties:
32779
+ profile:
32780
+ anyOf:
32781
+ - type: string
32782
+ - type: "null"
32783
+ label:
32784
+ anyOf:
32785
+ - type: string
32786
+ - type: "null"
32787
+ source:
32788
+ type: string
32789
+ enum:
32790
+ - override
32791
+ - active
32792
+ - call_site
32793
+ - default
32794
+ required:
32795
+ - profile
32796
+ - label
32797
+ - source
32798
+ additionalProperties: false
32799
+ resolved:
32800
+ type: object
32801
+ properties:
32802
+ provider:
32803
+ type: string
32804
+ model:
32805
+ type: string
32806
+ maxTokens:
32807
+ type: number
32808
+ effort:
32809
+ type: string
32810
+ temperature:
32811
+ anyOf:
32812
+ - type: number
32813
+ - type: "null"
32814
+ maxInputTokens:
32815
+ type: number
32816
+ required:
32817
+ - provider
32818
+ - model
32819
+ - maxTokens
32820
+ - effort
32821
+ - temperature
32822
+ additionalProperties: false
32823
+ resolutionChain:
32824
+ type: array
32825
+ items:
32826
+ type: object
32827
+ properties:
32828
+ requested:
32829
+ type: string
32830
+ reason:
32831
+ type: string
32832
+ enum:
32833
+ - missing
32834
+ - disabled
32835
+ - incomplete
32836
+ required:
32837
+ - requested
32838
+ - reason
32839
+ additionalProperties: false
32840
+ shippedDefault:
32841
+ type: object
32842
+ propertyNames:
32843
+ type: string
32844
+ additionalProperties: {}
32845
+ userPin:
32846
+ anyOf:
32847
+ - type: object
32848
+ propertyNames:
32849
+ type: string
32850
+ additionalProperties: {}
32851
+ - type: "null"
32852
+ resolutionError:
32853
+ type: object
32854
+ properties:
32855
+ reason:
32856
+ type: string
32857
+ message:
32858
+ type: string
32859
+ required:
32860
+ - reason
32861
+ - message
32862
+ additionalProperties: false
32863
+ required:
32864
+ - callSite
32865
+ - winner
32866
+ - resolved
32867
+ - resolutionChain
32868
+ - shippedDefault
32869
+ - userPin
32870
+ additionalProperties: false
32871
+ CatalogModel:
32872
+ type: object
32873
+ properties:
32874
+ provider:
32875
+ type: string
32876
+ id:
32877
+ type: string
32878
+ displayName:
32879
+ type: string
32880
+ contextWindowTokens:
32881
+ type: number
32882
+ maxOutputTokens:
32883
+ type: number
32884
+ supportsThinking:
32885
+ type: boolean
32886
+ supportsVision:
32887
+ type: boolean
32888
+ supportsToolUse:
32889
+ type: boolean
32890
+ featureFlag:
32891
+ type: string
32892
+ required:
32893
+ - provider
32894
+ - id
32895
+ - displayName
32896
+ additionalProperties: false
32897
+ InferenceProfileSummary:
32898
+ type: object
32899
+ properties:
32900
+ name:
32901
+ type: string
32902
+ label:
32903
+ anyOf:
32904
+ - type: string
32905
+ - type: "null"
32906
+ provider:
32907
+ anyOf:
32908
+ - type: string
32909
+ - type: "null"
32910
+ model:
32911
+ anyOf:
32912
+ - type: string
32913
+ - type: "null"
32914
+ status:
32915
+ type: string
32916
+ enum:
32917
+ - active
32918
+ - disabled
32919
+ source:
32920
+ type: string
32921
+ enum:
32922
+ - managed
32923
+ - user
32924
+ provider_connection:
32925
+ type: string
32926
+ availability:
32927
+ anyOf:
32928
+ - $ref: "#/components/schemas/ProfileConnectionAvailability"
32929
+ - type: "null"
32930
+ required:
32931
+ - name
32932
+ - label
32933
+ - provider
32934
+ - model
32935
+ - status
32936
+ - source
32937
+ - availability
32938
+ additionalProperties: false
32939
+ ProfileConnectionAvailability:
32940
+ type: object
32941
+ properties:
32942
+ status:
32943
+ type: string
32944
+ enum:
32945
+ - ok
32946
+ - missing_connection
32947
+ - missing_credential
32948
+ - provider_mismatch
32949
+ - unsupported_auth
32950
+ - vellum_unauthenticated
32951
+ - unknown
32952
+ message:
32953
+ type: string
32954
+ required:
32955
+ - status
32956
+ additionalProperties: false
32957
+ InferenceProfileWriteResult:
32958
+ type: object
32959
+ properties:
32960
+ ok:
32961
+ type: boolean
32962
+ const: true
32963
+ name:
32964
+ type: string
32965
+ entry:
32966
+ type: object
32967
+ propertyNames:
32968
+ type: string
32969
+ additionalProperties: {}
32970
+ warnings:
32971
+ type: array
32972
+ items:
32973
+ type: string
32974
+ required:
32975
+ - ok
32976
+ - name
32977
+ - entry
32978
+ - warnings
32979
+ additionalProperties: false
32980
+ InferenceProfileDetail:
32981
+ type: object
32982
+ properties:
32983
+ name:
32984
+ type: string
32985
+ entry:
32986
+ type: object
32987
+ propertyNames:
32988
+ type: string
32989
+ additionalProperties: {}
32990
+ availability:
32991
+ anyOf:
32992
+ - $ref: "#/components/schemas/ProfileConnectionAvailability"
32993
+ - type: "null"
32994
+ required:
32995
+ - name
32996
+ - entry
32997
+ - availability
32998
+ additionalProperties: false
32027
32999
  ProviderConnection:
32028
33000
  type: object
32029
33001
  properties: