@vellumai/assistant 0.12.1 → 0.12.2-dev.202609162314.7778bc8

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 (872) hide show
  1. package/.env.example +2 -0
  2. package/AGENTS.md +5 -1
  3. package/ARCHITECTURE.md +20 -21
  4. package/Dockerfile +7 -7
  5. package/docs/architecture/integrations.md +7 -0
  6. package/docs/architecture/memory.md +11 -2
  7. package/docs/architecture/turn-actor.md +15 -8
  8. package/docs/credential-execution-service.md +1 -1
  9. package/docs/desktop-browser-cli.md +35 -0
  10. package/docs/guardian-request-flow.md +16 -0
  11. package/node_modules/@vellumai/environments/src/shell.test.ts +21 -0
  12. package/node_modules/@vellumai/environments/src/shell.ts +24 -0
  13. package/node_modules/@vellumai/gateway-client/src/inbound-contract.ts +8 -2
  14. package/node_modules/@vellumai/slack-text/src/index.ts +13 -8
  15. package/node_modules/@vellumai/slack-text/src/label-resolution-entities.test.ts +95 -0
  16. package/openapi.yaml +579 -111
  17. package/package.json +7 -4
  18. package/scripts/bundled-plugin-packages.ts +154 -0
  19. package/scripts/generate-bundled-plugin-packages.ts +29 -0
  20. package/scripts/postinstall.ts +33 -0
  21. package/scripts/smoke-desktop-browser-cli.ts +280 -0
  22. package/scripts/smoke-desktop-window-theme.ts +186 -0
  23. package/scripts/sync-llm-catalog.ts +3 -0
  24. package/scripts/test.ts +15 -13
  25. package/scripts/voice-ttft-spike.ts +2 -2
  26. package/src/__tests__/agent-loop.test.ts +259 -0
  27. package/src/__tests__/always-loaded-tools-guard.test.ts +18 -10
  28. package/src/__tests__/anthropic-provider.test.ts +55 -63
  29. package/src/__tests__/app-compiler.test.ts +6 -0
  30. package/src/__tests__/app-control-tool-schemas.test.ts +5 -2
  31. package/src/__tests__/app-dir-path-guard.test.ts +1 -3
  32. package/src/__tests__/approval-interception-trust-gates.test.ts +40 -0
  33. package/src/__tests__/assistant-event-hub-machine-name.test.ts +6 -7
  34. package/src/__tests__/assistant-event-hub.test.ts +44 -0
  35. package/src/__tests__/attachments-store.test.ts +22 -3
  36. package/src/__tests__/channel-approval.test.ts +9 -14
  37. package/src/__tests__/channel-reply-delivery.test.ts +56 -0
  38. package/src/__tests__/computer-use-screenshot-attachments.test.ts +411 -0
  39. package/src/__tests__/computer-use-screenshot-selection.test.ts +50 -0
  40. package/src/__tests__/computer-use-skill-manifest-regression.test.ts +1 -1
  41. package/src/__tests__/computer-use-skill-proxy-bridge.test.ts +5 -2
  42. package/src/__tests__/computer-use-tools.test.ts +19 -7
  43. package/src/__tests__/config-schema-cmd.test.ts +2 -2
  44. package/src/__tests__/config-schema.test.ts +29 -30
  45. package/src/__tests__/config-sounds-sync.test.ts +23 -0
  46. package/src/__tests__/config-watcher.test.ts +23 -8
  47. package/src/__tests__/connection-model-compat.test.ts +2 -2
  48. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +2 -0
  49. package/src/__tests__/conversation-agent-loop-overflow.test.ts +2 -0
  50. package/src/__tests__/conversation-agent-loop.test.ts +257 -6
  51. package/src/__tests__/conversation-attachments.test.ts +106 -0
  52. package/src/__tests__/conversation-error.test.ts +4 -1
  53. package/src/__tests__/conversation-fork-crud.test.ts +191 -0
  54. package/src/__tests__/conversation-key-store-disk-view.test.ts +1 -1
  55. package/src/__tests__/conversation-pairing.test.ts +26 -0
  56. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +4 -10
  57. package/src/__tests__/conversation-queue.test.ts +48 -207
  58. package/src/__tests__/conversation-retry-discard.test.ts +54 -1
  59. package/src/__tests__/conversation-runtime-assembly.test.ts +33 -3
  60. package/src/__tests__/conversation-skill-tools.test.ts +27 -0
  61. package/src/__tests__/conversation-surfaces-app-control.test.ts +8 -3
  62. package/src/__tests__/conversation-surfaces-point-at-budget.test.ts +1 -0
  63. package/src/__tests__/conversation-surfaces-point-at-capability.test.ts +1 -0
  64. package/src/__tests__/conversation-surfaces-task-progress.test.ts +67 -0
  65. package/src/__tests__/conversation-title-service.test.ts +14 -10
  66. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +3 -5
  67. package/src/__tests__/conversation-tool-setup-attribution.test.ts +51 -0
  68. package/src/__tests__/credential-execution-client.test.ts +70 -53
  69. package/src/__tests__/credential-record-retire.test.ts +171 -1
  70. package/src/__tests__/credential-routes.test.ts +250 -3
  71. package/src/__tests__/credential-security-invariants.test.ts +5 -3
  72. package/src/__tests__/cu-unified-flow.test.ts +14 -4
  73. package/src/__tests__/db-conversation-tool-surface.test.ts +144 -0
  74. package/src/__tests__/document-sync-tags.test.ts +25 -0
  75. package/src/__tests__/drain-kick-guard.test.ts +0 -2
  76. package/src/__tests__/drain-requeue-on-contention.test.ts +0 -6
  77. package/src/__tests__/events-tail-route.test.ts +33 -0
  78. package/src/__tests__/evict-conversations-for-reload.test.ts +1 -1
  79. package/src/__tests__/external-plugin-loader.test.ts +52 -0
  80. package/src/__tests__/git-porcelain.test.ts +47 -0
  81. package/src/__tests__/headless-browser-mode.test.ts +48 -0
  82. package/src/__tests__/heartbeat-service.test.ts +56 -40
  83. package/src/__tests__/helpers/set-workspace-mcp.ts +11 -0
  84. package/src/__tests__/history-repair.test.ts +53 -0
  85. package/src/__tests__/host-bash-proxy.test.ts +26 -45
  86. package/src/__tests__/host-browser-proxy.test.ts +6 -17
  87. package/src/__tests__/host-cu-proxy.test.ts +712 -18
  88. package/src/__tests__/host-file-proxy-targeted.test.ts +23 -0
  89. package/src/__tests__/host-file-proxy.test.ts +11 -23
  90. package/src/__tests__/host-transfer-proxy-targeted.test.ts +30 -9
  91. package/src/__tests__/inference-profile-session-handler.test.ts +26 -0
  92. package/src/__tests__/list-all-apps.test.ts +40 -8
  93. package/src/__tests__/list-messages-camera-frame.test.ts +121 -0
  94. package/src/__tests__/list-messages-tool-merge.test.ts +85 -1
  95. package/src/__tests__/llm-catalog-parity.test.ts +51 -3
  96. package/src/__tests__/managed-store.test.ts +121 -0
  97. package/src/__tests__/mcp-auth-routes.test.ts +104 -8
  98. package/src/__tests__/mcp-client-auth.test.ts +54 -0
  99. package/src/__tests__/mcp-config-secret-boundary.test.ts +78 -136
  100. package/src/__tests__/mcp-health-check.test.ts +40 -43
  101. package/src/__tests__/mcp-list-plugin-servers.test.ts +85 -42
  102. package/src/__tests__/mcp-tool-annotations-risk.test.ts +4 -2
  103. package/src/__tests__/message-deleted-hook-dispatch.test.ts +119 -0
  104. package/src/__tests__/messages-after-tiebreaker.test.ts +91 -0
  105. package/src/__tests__/messages-read-boundary-guard.test.ts +1 -1
  106. package/src/__tests__/messaging-send-tool.test.ts +355 -548
  107. package/src/__tests__/model-intents.test.ts +3 -0
  108. package/src/__tests__/notification-vellum-adapter.test.ts +85 -2
  109. package/src/__tests__/oauth-apps-routes.test.ts +1 -0
  110. package/src/__tests__/oauth-commands-routes.test.ts +282 -101
  111. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -0
  112. package/src/__tests__/oauth-provider-profiles.test.ts +18 -0
  113. package/src/__tests__/oauth-provider-serializer.test.ts +23 -0
  114. package/src/__tests__/oauth-providers-routes.test.ts +3 -0
  115. package/src/__tests__/openai-provider.test.ts +1 -0
  116. package/src/__tests__/outlook-messaging-provider.test.ts +6 -6
  117. package/src/__tests__/persist-media-references.test.ts +50 -0
  118. package/src/__tests__/platform-callback-registration.test.ts +8 -16
  119. package/src/__tests__/platform-client-verify-credential.test.ts +2 -0
  120. package/src/__tests__/plugin-import-boundary-guard.test.ts +13 -0
  121. package/src/__tests__/qdrant-manager.test.ts +132 -0
  122. package/src/__tests__/resolve-app.test.ts +135 -0
  123. package/src/__tests__/run-conversation-turn-persistence.test.ts +138 -1
  124. package/src/__tests__/scaffold-managed-skill-tool.test.ts +317 -6
  125. package/src/__tests__/schedule-routes.test.ts +20 -0
  126. package/src/__tests__/scheduler-result-notification.test.ts +23 -4
  127. package/src/__tests__/script-proxy-certs.test.ts +35 -0
  128. package/src/__tests__/secret-routes-acp-guard.test.ts +59 -1
  129. package/src/__tests__/secret-routes-platform-proxy.test.ts +86 -31
  130. package/src/__tests__/secret-routes-scrub.test.ts +22 -27
  131. package/src/__tests__/secure-keys-managed-failover.test.ts +8 -0
  132. package/src/__tests__/secure-keys.test.ts +7 -3
  133. package/src/__tests__/server-tool-pairing.test.ts +107 -0
  134. package/src/__tests__/service-account-token.test.ts +247 -0
  135. package/src/__tests__/skill-feature-flags-integration.test.ts +1 -1
  136. package/src/__tests__/skill-feature-flags.test.ts +2 -2
  137. package/src/__tests__/skills.test.ts +20 -4
  138. package/src/__tests__/source-fingerprint.test.ts +184 -0
  139. package/src/__tests__/subagent-tool-gate-mode.test.ts +239 -3
  140. package/src/__tests__/subagent-tools.test.ts +3 -2
  141. package/src/__tests__/telephony-tts-guard.test.ts +38 -3
  142. package/src/__tests__/terminal-tools.test.ts +8 -0
  143. package/src/__tests__/test-support/computer-use-skill-harness.ts +3 -2
  144. package/src/__tests__/tool-result-follow-up.test.ts +99 -0
  145. package/src/__tests__/tool-result-metadata-plumbing.test.ts +63 -0
  146. package/src/__tests__/ui-channel-variants.test.ts +1 -56
  147. package/src/__tests__/unicode.test.ts +49 -0
  148. package/src/__tests__/user-plugin-loader.test.ts +21 -0
  149. package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +4 -0
  150. package/src/__tests__/watch-retro-tool-availability.test.ts +8 -17
  151. package/src/__tests__/workspace-git-service.test.ts +26 -0
  152. package/src/__tests__/workspace-migration-154-repair-retired-codex-gpt-5-4-model-ids.test.ts +336 -0
  153. package/src/acp/__tests__/acp-claude-oauth.test.ts +257 -6
  154. package/src/acp/__tests__/acp-credentials.test.ts +13 -0
  155. package/src/acp/__tests__/agent-process.test.ts +258 -4
  156. package/src/acp/__tests__/auth-required.test.ts +96 -0
  157. package/src/acp/__tests__/claude-token-refresh.test.ts +257 -0
  158. package/src/acp/__tests__/client-handler.test.ts +90 -2
  159. package/src/acp/__tests__/helpers/acp-model-option.ts +51 -0
  160. package/src/acp/__tests__/prepare-agent-env.test.ts +60 -1
  161. package/src/acp/__tests__/session-manager-persistence.test.ts +5 -1
  162. package/src/acp/__tests__/session-manager-resume.test.ts +270 -6
  163. package/src/acp/__tests__/session-manager-usage.test.ts +4 -2
  164. package/src/acp/__tests__/session-manager.test.ts +895 -4
  165. package/src/acp/acp-claude-oauth.ts +328 -14
  166. package/src/acp/acp-credentials.ts +19 -0
  167. package/src/acp/agent-process.test.ts +4 -1
  168. package/src/acp/agent-process.ts +96 -10
  169. package/src/acp/auth-required.ts +50 -1
  170. package/src/acp/auto-install.test.ts +9 -7
  171. package/src/acp/claude-token-refresh.ts +150 -0
  172. package/src/acp/client-handler.ts +16 -3
  173. package/src/acp/model-config.test.ts +166 -0
  174. package/src/acp/model-config.ts +138 -0
  175. package/src/acp/prepare-agent-env.ts +21 -6
  176. package/src/acp/resolve-agent.test.ts +220 -6
  177. package/src/acp/resolve-agent.ts +88 -23
  178. package/src/acp/session-manager.test.ts +196 -3
  179. package/src/acp/session-manager.ts +441 -18
  180. package/src/acp/session-snapshot.ts +260 -0
  181. package/src/acp/types.ts +50 -5
  182. package/src/agent/loop.ts +38 -12
  183. package/src/agent/tool-result-follow-up.ts +70 -0
  184. package/src/api/attachment-provenance.test.ts +68 -0
  185. package/src/api/computer-use-tool.test.ts +55 -0
  186. package/src/api/computer-use-tool.ts +27 -0
  187. package/src/api/events/acp-session-model-update.test.ts +88 -0
  188. package/src/api/events/acp-session-model-update.ts +46 -0
  189. package/src/api/events/app-files-changed.ts +4 -3
  190. package/src/api/events/assistant-outbound-attachment.ts +3 -0
  191. package/src/api/events/desktop-activity-changed.ts +10 -0
  192. package/src/api/events/notification-intent.ts +2 -0
  193. package/src/api/events/question-request.ts +1 -0
  194. package/src/api/events/user-message-echo.ts +7 -1
  195. package/src/api/index.ts +17 -0
  196. package/src/api/responses/conversation-message.ts +8 -0
  197. package/src/approvals/approval-primitive.ts +5 -2
  198. package/src/approvals/scoped-approval-grants.ts +6 -2
  199. package/src/apps/app-store.ts +7 -6
  200. package/src/apps/resolve-app.ts +81 -0
  201. package/src/apps/source-fingerprint.ts +266 -0
  202. package/src/avatar/identity-avatar.ts +7 -2
  203. package/src/browser/operations.ts +2 -1
  204. package/src/browser/types.ts +7 -0
  205. package/src/browser/virtual-desktop-target.ts +34 -0
  206. package/src/bundler/app-compiler.ts +15 -0
  207. package/src/calls/__tests__/barge-in-guard.test.ts +81 -0
  208. package/src/{__tests__ → calls/__tests__}/call-controller.test.ts +503 -82
  209. package/src/{__tests__ → calls/__tests__}/media-stream-audio-transcode.test.ts +1 -1
  210. package/src/{__tests__ → calls/__tests__}/media-stream-output.test.ts +37 -8
  211. package/src/{__tests__ → calls/__tests__}/media-stream-parser.test.ts +1 -1
  212. package/src/{__tests__ → calls/__tests__}/media-stream-server-integration.test.ts +150 -57
  213. package/src/{__tests__ → calls/__tests__}/media-stream-stt-session.test.ts +5 -5
  214. package/src/{__tests__ → calls/__tests__}/media-turn-detector.test.ts +1 -1
  215. package/src/{live-voice → calls}/__tests__/progress-narration.test.ts +27 -4
  216. package/src/{live-voice → calls}/__tests__/progress-phrases.test.ts +1 -1
  217. package/src/calls/__tests__/voice-control-protocol.test.ts +151 -27
  218. package/src/calls/__tests__/voice-leg-coordinator.test.ts +229 -0
  219. package/src/calls/__tests__/voice-progress-cadence.test.ts +274 -0
  220. package/src/{__tests__/voice-session-bridge.test.ts → calls/__tests__/voice-session-bridge-turn-flow.test.ts} +20 -12
  221. package/src/calls/__tests__/voice-session-bridge.test.ts +140 -3
  222. package/src/calls/__tests__/voice-triage-escalate.test.ts +105 -0
  223. package/src/calls/barge-in-guard.ts +118 -0
  224. package/src/calls/call-constants.ts +24 -4
  225. package/src/calls/call-controller.ts +499 -199
  226. package/src/calls/call-transport.ts +16 -0
  227. package/src/calls/media-stream-output.ts +32 -0
  228. package/src/calls/media-stream-server.ts +82 -30
  229. package/src/calls/media-stream-stt-session.ts +15 -0
  230. package/src/{live-voice → calls}/progress-narration.ts +17 -4
  231. package/src/calls/resolve-call-tts-provider.ts +33 -2
  232. package/src/calls/tts-call-strategy.ts +9 -5
  233. package/src/calls/types.ts +2 -0
  234. package/src/calls/voice-control-protocol.ts +194 -21
  235. package/src/calls/voice-leg-coordinator.ts +189 -0
  236. package/src/calls/voice-progress-cadence.ts +423 -0
  237. package/src/calls/voice-session-bridge.ts +140 -76
  238. package/src/calls/voice-triage-escalate.ts +178 -59
  239. package/src/cli/commands/__tests__/apps.test.ts +245 -0
  240. package/src/cli/commands/__tests__/bash.test.ts +53 -0
  241. package/src/cli/commands/__tests__/browser.test.ts +84 -3
  242. package/src/cli/commands/__tests__/cli-test-harness.ts +21 -3
  243. package/src/cli/commands/__tests__/plugins.test.ts +85 -0
  244. package/src/cli/commands/__tests__/roadmap.help.test.ts +19 -0
  245. package/src/cli/commands/__tests__/schedules.test.ts +14 -0
  246. package/src/cli/commands/apps.help.ts +67 -13
  247. package/src/cli/commands/apps.ts +183 -0
  248. package/src/cli/commands/bash.help.ts +9 -13
  249. package/src/cli/commands/bash.ts +7 -25
  250. package/src/cli/commands/browser.help.ts +47 -0
  251. package/src/cli/commands/browser.ts +52 -8
  252. package/src/cli/commands/channels/__tests__/send.test.ts +218 -0
  253. package/src/cli/commands/channels/index.help.ts +70 -2
  254. package/src/cli/commands/channels/index.ts +16 -3
  255. package/src/cli/commands/channels/send.ts +128 -0
  256. package/src/cli/commands/credentials.help.ts +9 -5
  257. package/src/cli/commands/credentials.ts +2 -2
  258. package/src/cli/commands/mcp.help.ts +8 -8
  259. package/src/cli/commands/mcp.ts +1 -1
  260. package/src/cli/commands/oauth/index.help.ts +10 -0
  261. package/src/cli/commands/oauth/providers.ts +12 -0
  262. package/src/cli/commands/oauth/request.test.ts +179 -2
  263. package/src/cli/commands/oauth/request.ts +41 -10
  264. package/src/cli/commands/oauth/status.ts +5 -0
  265. package/src/cli/commands/plugins.ts +73 -23
  266. package/src/cli/commands/roadmap.help.ts +5 -1
  267. package/src/cli/commands/roadmap.ts +1 -1
  268. package/src/cli/commands/schedules.ts +2 -0
  269. package/src/cli/lib/__tests__/inspect-plugin.test.ts +54 -0
  270. package/src/cli/lib/__tests__/install-from-github.test.ts +219 -0
  271. package/src/cli/lib/__tests__/install-from-platform.test.ts +77 -2
  272. package/src/cli/lib/__tests__/list-installed-plugins.test.ts +45 -3
  273. package/src/cli/lib/__tests__/local-plugin-upgrade.test.ts +251 -0
  274. package/src/cli/lib/__tests__/plugin-catalog-cache.test.ts +65 -2
  275. package/src/cli/lib/__tests__/plugin-catalog-platform.test.ts +14 -0
  276. package/src/cli/lib/__tests__/plugin-catalog-resolve.test.ts +27 -1
  277. package/src/cli/lib/__tests__/plugin-details.test.ts +35 -2
  278. package/src/cli/lib/__tests__/plugin-marketplace.test.ts +20 -0
  279. package/src/cli/lib/__tests__/plugins-install-offline.test.ts +43 -0
  280. package/src/cli/lib/__tests__/search-plugins.test.ts +31 -0
  281. package/src/cli/lib/__tests__/uninstall-plugin.test.ts +122 -5
  282. package/src/cli/lib/bundled-marketplace.json +962 -81
  283. package/src/cli/lib/bundled-plugin-packages.json +786 -0
  284. package/src/cli/lib/bundled-plugin-packages.ts +87 -0
  285. package/src/cli/lib/diff-plugin.ts +1 -1
  286. package/src/cli/lib/inspect-plugin.ts +87 -12
  287. package/src/cli/lib/install-from-github.ts +150 -94
  288. package/src/cli/lib/install-from-platform.ts +14 -9
  289. package/src/cli/lib/list-installed-plugins.ts +21 -35
  290. package/src/cli/lib/plugin-catalog-cache.ts +22 -3
  291. package/src/cli/lib/plugin-catalog-local.ts +13 -3
  292. package/src/cli/lib/plugin-catalog-platform.ts +6 -1
  293. package/src/cli/lib/plugin-catalog-resolve.ts +20 -0
  294. package/src/cli/lib/plugin-details.ts +33 -8
  295. package/src/cli/lib/plugin-marketplace.ts +121 -21
  296. package/src/cli/lib/plugin-pin-history.ts +5 -2
  297. package/src/cli/lib/search-plugins.ts +58 -16
  298. package/src/cli/lib/uninstall-plugin.ts +59 -1
  299. package/src/cli/lib/upgrade-plugin.ts +61 -8
  300. package/src/cli/output.ts +18 -4
  301. package/src/config/__tests__/default-profile-catalog.test.ts +22 -0
  302. package/src/config/__tests__/default-provider.test.ts +4 -0
  303. package/src/config/__tests__/memory-retrospective-schema.test.ts +15 -1
  304. package/src/config/__tests__/platform-identity.test.ts +255 -0
  305. package/src/config/__tests__/platform-rehydration.test.ts +99 -9
  306. package/src/config/__tests__/plugin-resident-skill-discovery.test.ts +21 -0
  307. package/src/config/acp-agent-write.ts +43 -0
  308. package/src/config/acp-defaults.test.ts +13 -3
  309. package/src/config/acp-defaults.ts +23 -6
  310. package/src/config/acp-schema.test.ts +81 -0
  311. package/src/config/acp-schema.ts +30 -2
  312. package/src/config/bundled-skills/acp/SKILL.md +23 -15
  313. package/src/config/bundled-skills/acp/TOOLS.json +7 -3
  314. package/src/config/bundled-skills/app-builder/SKILL.md +12 -9
  315. package/src/config/bundled-skills/app-builder/references/CUSTOM_ROUTES.md +1 -1
  316. package/src/config/bundled-skills/computer-use/SKILL.md +59 -2
  317. package/src/config/bundled-skills/computer-use/TOOLS.json +101 -2
  318. package/src/config/bundled-skills/computer-use/tools/computer-use-sequence.ts +12 -0
  319. package/src/config/bundled-skills/media-processing/services/preprocess.ts +2 -1
  320. package/src/config/bundled-skills/media-processing/services/processing-pipeline.ts +2 -1
  321. package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +2 -1
  322. package/src/config/bundled-skills/messaging/SKILL.md +3 -3
  323. package/src/config/bundled-skills/messaging/TOOLS.json +3 -3
  324. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +67 -139
  325. package/src/config/bundled-skills/phone-calls/references/TRANSCRIPTS.md +1 -1
  326. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +2 -1
  327. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +2 -1
  328. package/src/config/bundled-skills/schedule/SKILL.md +7 -8
  329. package/src/config/bundled-skills/screen-annotation/SKILL.md +10 -3
  330. package/src/config/bundled-skills/screen-annotation/tools/screen-annotation.test.ts +4 -1
  331. package/src/config/bundled-skills/skill-management/SKILL.md +1 -1
  332. package/src/config/bundled-skills/skill-management/TOOLS.json +13 -9
  333. package/src/config/bundled-skills/transcribe/tools/transcribe-media.ts +5 -2
  334. package/src/config/default-profile-catalog.ts +1 -1
  335. package/src/config/env.ts +2 -2
  336. package/src/config/feature-flag-registry.json +33 -13
  337. package/src/config/loader.ts +11 -17
  338. package/src/config/memory-v3-gate.test.ts +31 -0
  339. package/src/config/memory-v3-gate.ts +20 -16
  340. package/src/config/platform-identity.ts +201 -0
  341. package/src/config/platform-rehydration.ts +11 -27
  342. package/src/config/profile-text-generation.test.ts +51 -0
  343. package/src/config/profile-text-generation.ts +51 -0
  344. package/src/config/schema.ts +2 -2
  345. package/src/config/schemas/__tests__/live-voice.test.ts +8 -158
  346. package/src/config/schemas/__tests__/voice.test.ts +148 -0
  347. package/src/config/schemas/calls.ts +1 -28
  348. package/src/config/schemas/live-voice.ts +1 -173
  349. package/src/config/schemas/llm.ts +7 -2
  350. package/src/config/schemas/mcp.ts +15 -9
  351. package/src/config/schemas/memory-retrospective.ts +10 -0
  352. package/src/config/schemas/monitoring.ts +9 -0
  353. package/src/config/schemas/services.ts +18 -0
  354. package/src/config/schemas/skills.ts +0 -14
  355. package/src/config/schemas/voice.ts +150 -0
  356. package/src/config/skills.ts +13 -21
  357. package/src/credential-execution/ces-runtime.ts +2 -2
  358. package/src/credential-execution/executable-discovery.ts +36 -134
  359. package/src/credential-execution/process-manager.test.ts +37 -42
  360. package/src/credential-execution/process-manager.ts +24 -19
  361. package/src/credential-health/credential-health-service.ts +11 -17
  362. package/src/daemon/__tests__/conversation-tool-setup-exclude.test.ts +47 -0
  363. package/src/daemon/__tests__/conversation-tool-setup.test.ts +109 -121
  364. package/src/daemon/__tests__/plugin-mcp-reconcile.test.ts +5 -1
  365. package/src/daemon/__tests__/skill-memory-refresh-mtime.test.ts +133 -0
  366. package/src/daemon/__tests__/turn-tail-deleted-conversation.test.ts +36 -0
  367. package/src/daemon/app-change-notify.ts +45 -0
  368. package/src/daemon/assistant-attachments.ts +20 -12
  369. package/src/daemon/config-watcher.ts +13 -194
  370. package/src/daemon/conversation-agent-loop-handlers.ts +74 -3
  371. package/src/daemon/conversation-agent-loop.ts +12 -0
  372. package/src/daemon/conversation-attachments.ts +93 -12
  373. package/src/daemon/conversation-client-surface.ts +26 -0
  374. package/src/daemon/conversation-error.ts +3 -2
  375. package/src/daemon/conversation-media-retry.ts +2 -1
  376. package/src/daemon/conversation-process.ts +35 -64
  377. package/src/daemon/conversation-runtime-assembly.ts +21 -8
  378. package/src/daemon/conversation-skill-tools.ts +13 -31
  379. package/src/daemon/conversation-store.ts +1 -1
  380. package/src/daemon/conversation-surfaces.ts +21 -10
  381. package/src/daemon/conversation-tool-setup.ts +135 -109
  382. package/src/daemon/conversation-turn-finalize.ts +26 -13
  383. package/src/daemon/conversation.ts +17 -3
  384. package/src/daemon/daemon-control.ts +3 -7
  385. package/src/daemon/dictation-profile-store.ts +2 -1
  386. package/src/daemon/handlers/shared.ts +2 -1
  387. package/src/daemon/handlers/skills.ts +6 -3
  388. package/src/daemon/host-bash-proxy.ts +8 -12
  389. package/src/daemon/host-browser-proxy.ts +15 -1
  390. package/src/daemon/host-cu-proxy.ts +275 -45
  391. package/src/daemon/host-file-proxy.ts +8 -10
  392. package/src/daemon/host-proxy-preactivation.ts +4 -1
  393. package/src/daemon/host-transfer-proxy.ts +14 -18
  394. package/src/daemon/lifecycle.ts +4 -9
  395. package/src/daemon/mcp-reload-service.ts +13 -6
  396. package/src/daemon/message-types/shared.ts +1 -0
  397. package/src/daemon/message-types/sync.ts +2 -0
  398. package/src/daemon/orphan-reaper.ts +4 -3
  399. package/src/daemon/persist-media-references.ts +20 -3
  400. package/src/daemon/providers-setup.ts +5 -1
  401. package/src/daemon/reaction-history-render.ts +2 -1
  402. package/src/daemon/shutdown-handlers.ts +1 -9
  403. package/src/daemon/skill-memory-refresh.ts +64 -0
  404. package/src/daemon/tool-setup-types.ts +6 -0
  405. package/src/daemon/tool-side-effects.ts +7 -18
  406. package/src/daemon/wake-conversation-ops.ts +38 -15
  407. package/src/desktop/__tests__/fake-desktop.ts +123 -0
  408. package/src/desktop/desktop-automation-lease.test.ts +438 -0
  409. package/src/desktop/desktop-automation-lease.ts +355 -0
  410. package/src/desktop/desktop-browser-client.test.ts +413 -0
  411. package/src/desktop/desktop-browser-client.ts +430 -0
  412. package/src/desktop/desktop-browser-cursor.ts +40 -0
  413. package/src/desktop/desktop-browser-endpoint.test.ts +78 -0
  414. package/src/desktop/desktop-browser-endpoint.ts +145 -0
  415. package/src/desktop/desktop-browser-operations.ts +130 -0
  416. package/src/desktop/desktop-chrome-policy.test.ts +79 -0
  417. package/src/desktop/desktop-chrome-policy.ts +47 -0
  418. package/src/desktop/desktop-chrome-session.test.ts +48 -0
  419. package/src/desktop/desktop-chrome-session.ts +87 -0
  420. package/src/desktop/desktop-dependencies.test.ts +131 -0
  421. package/src/desktop/desktop-dependencies.ts +329 -0
  422. package/src/desktop/desktop-display.ts +9 -0
  423. package/src/desktop/desktop-help.ts +16 -0
  424. package/src/desktop/desktop-panel-config.test.ts +135 -0
  425. package/src/desktop/desktop-panel-config.ts +162 -0
  426. package/src/desktop/desktop-session-manager.test.ts +813 -0
  427. package/src/desktop/desktop-session-manager.ts +970 -0
  428. package/src/desktop/desktop-stream-bridge.test.ts +395 -0
  429. package/src/desktop/desktop-stream-bridge.ts +214 -0
  430. package/src/desktop/desktop-wallpaper.test.ts +191 -0
  431. package/src/desktop/desktop-wallpaper.ts +113 -0
  432. package/src/desktop/desktop-window-drag.ts +177 -0
  433. package/src/desktop/desktop-window-manager-config.test.ts +230 -0
  434. package/src/desktop/desktop-window-manager-config.ts +238 -0
  435. package/src/desktop/desktop-window-theme.ts +170 -0
  436. package/src/desktop/virtual-desktop-feature.ts +18 -0
  437. package/src/desktop/virtual-desktop-platform.test.ts +61 -0
  438. package/src/heartbeat/heartbeat-service.ts +21 -3
  439. package/src/home/__tests__/feed-writer.test.ts +22 -0
  440. package/src/home/feed-writer.ts +11 -2
  441. package/src/hooks/types.ts +33 -0
  442. package/src/i18n/AGENTS.md +22 -0
  443. package/src/i18n/__tests__/i18n.test.ts +112 -0
  444. package/src/i18n/index.ts +16 -0
  445. package/src/i18n/locales.ts +93 -0
  446. package/src/i18n/messages.ts +70 -0
  447. package/src/i18n/title.ts +25 -0
  448. package/src/inbound/platform-callback-registration.ts +4 -5
  449. package/src/ipc/__tests__/browser-ipc.test.ts +230 -2
  450. package/src/ipc/__tests__/cancel-on-disconnect.test.ts +54 -0
  451. package/src/ipc/assistant-server.ts +15 -1
  452. package/src/ipc/cli-client.ts +13 -5
  453. package/src/live-voice/__tests__/live-voice-agent-turn.test.ts +143 -0
  454. package/src/live-voice/__tests__/live-voice-events.test.ts +9 -7
  455. package/src/live-voice/__tests__/live-voice-look-follow-up.test.ts +374 -0
  456. package/src/live-voice/__tests__/live-voice-metrics.test.ts +0 -3
  457. package/src/live-voice/__tests__/live-voice-progress.test.ts +94 -15
  458. package/src/live-voice/__tests__/live-voice-session-telemetry.test.ts +19 -0
  459. package/src/live-voice/__tests__/live-voice-sight-frame-echo.test.ts +238 -0
  460. package/src/live-voice/__tests__/live-voice-vad.test.ts +660 -5
  461. package/src/live-voice/__tests__/protocol.test.ts +95 -0
  462. package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +13 -69
  463. package/src/live-voice/__tests__/session-controls.test.ts +156 -0
  464. package/src/live-voice/live-voice-metrics.ts +9 -0
  465. package/src/live-voice/live-voice-photo.ts +25 -6
  466. package/src/live-voice/live-voice-session.ts +1081 -760
  467. package/src/live-voice/protocol.ts +89 -2
  468. package/src/live-voice/session-controls.ts +197 -0
  469. package/src/mcp/__tests__/credential-target.test.ts +59 -0
  470. package/src/mcp/__tests__/effective-config.test.ts +13 -2
  471. package/src/mcp/__tests__/manager-state.test.ts +128 -0
  472. package/src/mcp/__tests__/manager-tool-caps.test.ts +111 -0
  473. package/src/mcp/__tests__/mcp-auth-orchestrator.test.ts +20 -6
  474. package/src/mcp/__tests__/mcp-auth-state-target.test.ts +49 -0
  475. package/src/mcp/__tests__/plugin-mcp-oauth-cleanup.test.ts +107 -0
  476. package/src/mcp/__tests__/plugin-mcp-oauth-provider-isolation.test.ts +89 -0
  477. package/src/mcp/__tests__/plugin-server-credential-isolation.test.ts +63 -11
  478. package/src/mcp/__tests__/reload-signal-emission.test.ts +39 -2
  479. package/src/mcp/__tests__/startup.test.ts +30 -7
  480. package/src/mcp/__tests__/tool-caps.test.ts +107 -0
  481. package/src/mcp/__tests__/workspace-mcp-config.test.ts +135 -0
  482. package/src/mcp/client.ts +64 -16
  483. package/src/mcp/credential-target.ts +105 -0
  484. package/src/mcp/effective-config.ts +45 -18
  485. package/src/mcp/manager.ts +201 -81
  486. package/src/mcp/mcp-auth-orchestrator.ts +17 -4
  487. package/src/mcp/mcp-auth-state.ts +38 -6
  488. package/src/mcp/mcp-header-store.ts +29 -45
  489. package/src/mcp/mcp-oauth-provider.ts +101 -33
  490. package/src/mcp/spec-schema.ts +111 -0
  491. package/src/mcp/startup.ts +41 -17
  492. package/src/mcp/tool-caps.ts +176 -0
  493. package/src/mcp/workspace-mcp-config.ts +188 -0
  494. package/src/messaging/provider-message-metadata.ts +3 -3
  495. package/src/messaging/provider.ts +10 -3
  496. package/src/messaging/providers/__tests__/proactive-address.test.ts +95 -0
  497. package/src/messaging/providers/callback-routing.ts +18 -0
  498. package/src/messaging/providers/channel-transport.ts +56 -0
  499. package/src/messaging/providers/discord/transport.ts +17 -0
  500. package/src/messaging/providers/slack/__tests__/adapter-token-routing.test.ts +6 -17
  501. package/src/messaging/providers/slack/adapter.ts +7 -44
  502. package/src/messaging/providers/slack/transport.ts +16 -0
  503. package/src/messaging/providers/telegram-bot/adapter.ts +1 -48
  504. package/src/messaging/providers/telegram-bot/client.ts +0 -26
  505. package/src/messaging/providers/telegram-bot/transport.ts +20 -0
  506. package/src/messaging/providers/whatsapp/adapter.ts +1 -48
  507. package/src/messaging/providers/whatsapp/transport.ts +18 -0
  508. package/src/monitoring/__tests__/mount-watch.test.ts +236 -0
  509. package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +8 -0
  510. package/src/monitoring/mount-watch.ts +348 -0
  511. package/src/monitoring/plugin-auto-update.ts +6 -0
  512. package/src/monitoring/worker.ts +9 -0
  513. package/src/notifications/__tests__/assistant-reply-producer.test.ts +55 -0
  514. package/src/notifications/__tests__/copy-composer.test.ts +70 -0
  515. package/src/notifications/__tests__/decision-engine.test.ts +175 -0
  516. package/src/notifications/__tests__/guardian-feed-projection.test.ts +158 -2
  517. package/src/notifications/__tests__/home-feed-side-effect.test.ts +153 -3
  518. package/src/notifications/__tests__/schedule-result-producer.test.ts +99 -3
  519. package/src/notifications/adapters/macos.ts +3 -0
  520. package/src/notifications/assistant-reply-producer.ts +8 -3
  521. package/src/notifications/conversation-pairing.ts +36 -16
  522. package/src/notifications/copy-composer.ts +11 -3
  523. package/src/notifications/decision-engine.ts +43 -8
  524. package/src/notifications/delivered-post-record.ts +11 -1
  525. package/src/notifications/guardian-feed-projection.ts +125 -5
  526. package/src/notifications/home-feed-side-effect.ts +55 -7
  527. package/src/notifications/schedule-result-producer.ts +64 -22
  528. package/src/oauth/AGENTS.md +4 -0
  529. package/src/oauth/__tests__/identity-verifier.test.ts +36 -1
  530. package/src/oauth/__tests__/seed-providers-managed.test.ts +149 -0
  531. package/src/oauth/byo-connection.test.ts +105 -0
  532. package/src/oauth/byo-connection.ts +36 -6
  533. package/src/oauth/connection-resolver.test.ts +100 -0
  534. package/src/oauth/connection-resolver.ts +120 -3
  535. package/src/oauth/identity-verifier.ts +24 -0
  536. package/src/oauth/oauth-store.ts +11 -1
  537. package/src/oauth/provider-serializer.ts +10 -0
  538. package/src/oauth/scope-utils.ts +24 -0
  539. package/src/oauth/seed-providers.ts +367 -27
  540. package/src/onboarding/checkin-event.ts +2 -1
  541. package/src/outbound-proxy/certs.ts +3 -5
  542. package/src/permissions/checker.test.ts +11 -6
  543. package/src/permissions/confirmation-guardian-request.test.ts +16 -0
  544. package/src/permissions/confirmation-guardian-request.ts +2 -3
  545. package/src/permissions/question-prompter.test.ts +31 -0
  546. package/src/permissions/question-prompter.ts +2 -0
  547. package/src/persistence/attachments-store.ts +84 -44
  548. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  549. package/src/persistence/conversation-crud.ts +182 -83
  550. package/src/persistence/conversation-lineage.ts +12 -4
  551. package/src/persistence/conversation-plugin-facade.ts +13 -0
  552. package/src/persistence/conversation-queries.ts +2 -2
  553. package/src/persistence/conversation-title-placeholders.ts +23 -0
  554. package/src/persistence/conversation-title-service.ts +9 -26
  555. package/src/persistence/conversation-tool-surface.ts +86 -0
  556. package/src/persistence/conversation-types.test.ts +32 -0
  557. package/src/persistence/conversation-types.ts +26 -4
  558. package/src/persistence/embeddings/qdrant-manager.ts +163 -18
  559. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  560. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  561. package/src/persistence/message-cursor.ts +78 -0
  562. package/src/persistence/message-reads.ts +30 -0
  563. package/src/persistence/migrations/157-invite-contact-id.ts +18 -6
  564. package/src/persistence/migrations/378-create-conversation-tool-surfaces.test.ts +78 -0
  565. package/src/persistence/migrations/378-create-conversation-tool-surfaces.ts +29 -0
  566. package/src/persistence/migrations/379-oauth-providers-response-ok-field.test.ts +92 -0
  567. package/src/persistence/migrations/379-oauth-providers-response-ok-field.ts +32 -0
  568. package/src/persistence/migrations/__tests__/157-invite-contact-id.test.ts +149 -0
  569. package/src/persistence/schema/conversation-tool-surfaces.ts +22 -0
  570. package/src/persistence/schema/index.ts +1 -0
  571. package/src/persistence/schema/memory-core.ts +5 -0
  572. package/src/persistence/schema/oauth.ts +1 -0
  573. package/src/persistence/steps.ts +15 -3
  574. package/src/platform/client.test.ts +4 -2
  575. package/src/platform/client.ts +2 -10
  576. package/src/plugin-api/constants.ts +2 -0
  577. package/src/plugin-api/conversation-turn.ts +31 -7
  578. package/src/plugin-api/index.ts +10 -1
  579. package/src/plugin-api/plugin-channel-turn-trust.test.ts +133 -0
  580. package/src/plugin-api/plugin-channel-turn-trust.ts +71 -0
  581. package/src/plugin-api/types.ts +2 -0
  582. package/src/plugins/__tests__/installed-plugin-dirs.test.ts +14 -1
  583. package/src/plugins/__tests__/mcp-servers.test.ts +38 -8
  584. package/src/plugins/defaults/index.ts +2 -0
  585. package/src/plugins/defaults/memory/AGENTS.md +14 -2
  586. package/src/plugins/defaults/memory/__tests__/buffer-file.test.ts +365 -0
  587. package/src/plugins/defaults/memory/__tests__/buffer-format.test.ts +43 -0
  588. package/src/plugins/defaults/memory/__tests__/fixtures/buffer-appender.ts +17 -0
  589. package/src/plugins/defaults/memory/__tests__/memory-retrospective-accounting.test.ts +46 -0
  590. package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-backfill.test.ts +118 -0
  591. package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-preserve.test.ts +83 -0
  592. package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +9 -5
  593. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +66 -10
  594. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +20 -0
  595. package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +219 -0
  596. package/src/plugins/defaults/memory/__tests__/memory-retrospective-sweep.test.ts +31 -0
  597. package/src/plugins/defaults/memory/__tests__/memory-retrospective-trigger-check.test.ts +63 -0
  598. package/src/plugins/defaults/memory/__tests__/memory-run-evidence.test.ts +161 -0
  599. package/src/plugins/defaults/memory/__tests__/shutdown-hook.test.ts +4 -0
  600. package/src/plugins/defaults/memory/buffer-file.ts +354 -0
  601. package/src/plugins/defaults/memory/buffer-format.ts +40 -0
  602. package/src/plugins/defaults/memory/context-search/agent-runner.ts +3 -3
  603. package/src/plugins/defaults/memory/context-search/format.ts +4 -2
  604. package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +7 -3
  605. package/src/plugins/defaults/memory/context-search/sources/workspace.ts +4 -2
  606. package/src/plugins/defaults/memory/graph/capability-seed.ts +6 -8
  607. package/src/plugins/defaults/memory/graph/tool-handlers.ts +1 -42
  608. package/src/plugins/defaults/memory/hooks/init.ts +10 -0
  609. package/src/plugins/defaults/memory/hooks/message-deleted.ts +21 -0
  610. package/src/plugins/defaults/memory/hooks/shutdown.ts +2 -0
  611. package/src/plugins/defaults/memory/injectors.ts +4 -3
  612. package/src/plugins/defaults/memory/jobs-worker.ts +13 -0
  613. package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +34 -60
  614. package/src/plugins/defaults/memory/memory-retrospective-cursor-backfill.ts +126 -0
  615. package/src/plugins/defaults/memory/memory-retrospective-cursor-preserve.ts +79 -0
  616. package/src/plugins/defaults/memory/memory-retrospective-cursor.ts +28 -0
  617. package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +3 -5
  618. package/src/plugins/defaults/memory/memory-retrospective-job.ts +67 -184
  619. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +1 -1
  620. package/src/plugins/defaults/memory/memory-retrospective-state.ts +312 -71
  621. package/src/plugins/defaults/memory/memory-retrospective-sweep.ts +2 -1
  622. package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +5 -3
  623. package/src/plugins/defaults/memory/memory-run-evidence.ts +213 -0
  624. package/src/plugins/defaults/memory/skill-md-mtime-poll.ts +9 -0
  625. package/src/plugins/defaults/memory/src/memory-item-routes.test.ts +1 -1
  626. package/src/plugins/defaults/memory/startup.ts +28 -2
  627. package/src/plugins/defaults/memory/substrate/__tests__/consolidation-job.test.ts +407 -99
  628. package/src/plugins/defaults/memory/substrate/__tests__/consolidation-prompt-flag-gating-guard.test.ts +10 -0
  629. package/src/plugins/defaults/memory/substrate/__tests__/prompts-consolidation.test.ts +107 -7
  630. package/src/plugins/defaults/memory/substrate/__tests__/skill-content.test.ts +7 -9
  631. package/src/plugins/defaults/memory/substrate/consolidation-job.ts +307 -86
  632. package/src/plugins/defaults/memory/substrate/consolidation-tool-surface.ts +34 -0
  633. package/src/plugins/defaults/memory/substrate/page-index.ts +7 -1
  634. package/src/plugins/defaults/memory/substrate/prompts/consolidation.ts +89 -49
  635. package/src/plugins/defaults/memory/substrate/skill-content.ts +2 -2
  636. package/src/plugins/defaults/memory/substrate/sweep-job.ts +1 -1
  637. package/src/plugins/defaults/memory/tools.ts +1 -1
  638. package/src/plugins/defaults/memory/v1/graph/consolidation.ts +4 -2
  639. package/src/plugins/defaults/memory/v1/graph/extraction.ts +4 -1
  640. package/src/plugins/defaults/memory/v1/graph/retriever.ts +4 -1
  641. package/src/plugins/defaults/memory/v2/__tests__/migration.test.ts +5 -0
  642. package/src/plugins/defaults/memory/v2/__tests__/reranker.test.ts +5 -2
  643. package/src/plugins/defaults/memory/v2/reranker.ts +7 -1
  644. package/src/plugins/defaults/memory/v3/__tests__/card.test.ts +24 -0
  645. package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +81 -1
  646. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +87 -0
  647. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +125 -0
  648. package/src/plugins/defaults/memory/v3/__tests__/sections.test.ts +26 -0
  649. package/src/plugins/defaults/memory/v3/__tests__/shadow-plugin.test.ts +51 -0
  650. package/src/plugins/defaults/memory/v3/card.ts +4 -2
  651. package/src/plugins/defaults/memory/v3/injector.ts +212 -178
  652. package/src/plugins/defaults/memory/v3/orchestrate.ts +86 -22
  653. package/src/plugins/defaults/memory/v3/pool-select.ts +13 -8
  654. package/src/plugins/defaults/memory/v3/sections.ts +10 -3
  655. package/src/plugins/defaults/memory/v3/shadow-plugin.ts +13 -1
  656. package/src/plugins/defaults/memory/worker.ts +6 -0
  657. package/src/plugins/defaults/tool-error/hooks/post-tool-use.ts +4 -1
  658. package/src/plugins/defaults/tool-result-truncate/terminal.ts +1 -46
  659. package/src/plugins/external-plugin-loader.ts +49 -86
  660. package/src/plugins/installed-plugin-dirs.ts +6 -4
  661. package/src/plugins/mcp-servers.ts +24 -90
  662. package/src/plugins/mtime-cache.ts +2 -1
  663. package/src/plugins/user-loader.ts +2 -1
  664. package/src/providers/__tests__/connection-model-compat.test.ts +3 -3
  665. package/src/providers/__tests__/retry-callsite.test.ts +41 -0
  666. package/src/providers/__tests__/retry-outbound-sanitize.test.ts +176 -0
  667. package/src/providers/anthropic/client.ts +0 -47
  668. package/src/providers/gemini/client.ts +9 -23
  669. package/src/providers/gemini-thought-signature.test.ts +63 -0
  670. package/src/providers/gemini-thought-signature.ts +44 -0
  671. package/src/providers/inference/__tests__/endpoint-probe.test.ts +87 -3
  672. package/src/providers/inference/adapter-factory.ts +6 -0
  673. package/src/providers/inference/auth.ts +2 -3
  674. package/src/providers/inference/connection-availability.ts +27 -8
  675. package/src/providers/inference/endpoint-probe.ts +36 -12
  676. package/src/providers/inference/resolve-auth.ts +22 -4
  677. package/src/providers/inference/service-account-token.ts +248 -0
  678. package/src/providers/jev/client.test.ts +260 -0
  679. package/src/providers/jev/client.ts +518 -0
  680. package/src/providers/model-catalog.ts +92 -3
  681. package/src/providers/model-intents.ts +10 -5
  682. package/src/providers/openai/__tests__/chat-completions-output-token-limit.test.ts +141 -0
  683. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +146 -18
  684. package/src/providers/openai/__tests__/chat-completions-provider-thought-signature.test.ts +613 -0
  685. package/src/providers/openai/__tests__/google-thought-signature.test.ts +235 -0
  686. package/src/providers/openai/__tests__/tool-choice-mapping.test.ts +83 -1
  687. package/src/providers/openai/chat-completions-provider.ts +212 -79
  688. package/src/providers/openai/codex-models.ts +0 -4
  689. package/src/providers/openai/google-thought-signature.ts +320 -0
  690. package/src/providers/openai/responses-provider.ts +9 -2
  691. package/src/providers/opencode/client.test.ts +240 -4
  692. package/src/providers/opencode/client.ts +129 -3
  693. package/src/providers/openrouter/client.ts +20 -0
  694. package/src/providers/outbound-request-sanitize.ts +96 -0
  695. package/src/providers/retry.ts +30 -19
  696. package/src/providers/server-tool-pairing.ts +16 -7
  697. package/src/providers/unparseable-tool-args.ts +5 -1
  698. package/src/runtime/AGENTS.md +9 -3
  699. package/src/runtime/__tests__/agent-wake.test.ts +86 -1
  700. package/src/runtime/__tests__/channel-send.test.ts +443 -0
  701. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +132 -0
  702. package/src/runtime/__tests__/host-observe.test.ts +40 -1
  703. package/src/runtime/__tests__/live-voice-upgrade.test.ts +58 -0
  704. package/src/runtime/__tests__/runtime-ws-test-utils.ts +72 -0
  705. package/src/runtime/__tests__/watch-stream-upgrade.test.ts +59 -0
  706. package/src/runtime/agent-wake.ts +22 -5
  707. package/src/runtime/assistant-event-hub.ts +21 -3
  708. package/src/runtime/auth/same-actor.ts +38 -3
  709. package/src/runtime/channel-send.ts +316 -0
  710. package/src/runtime/guardian-action-service.ts +2 -17
  711. package/src/runtime/guardian-reply-router.ts +1 -8
  712. package/src/runtime/host-observe.ts +11 -1
  713. package/src/runtime/http-server.ts +160 -151
  714. package/src/runtime/migrations/__tests__/vbundle-import-policy.test.ts +89 -0
  715. package/src/runtime/migrations/vbundle-import-policy.ts +33 -11
  716. package/src/runtime/routes/__tests__/acp-claude-auth-routes.test.ts +16 -5
  717. package/src/runtime/routes/__tests__/acp-routes.test.ts +178 -4
  718. package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +275 -0
  719. package/src/runtime/routes/__tests__/channel-send-routes.test.ts +127 -0
  720. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +108 -1
  721. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +2 -2
  722. package/src/runtime/routes/__tests__/dictation-cleanup-guard.test.ts +107 -0
  723. package/src/runtime/routes/__tests__/inference-profiles-routes.test.ts +24 -2
  724. package/src/runtime/routes/__tests__/mcp-add-default-risk.test.ts +16 -12
  725. package/src/runtime/routes/__tests__/plugins-routes.test.ts +127 -3
  726. package/src/runtime/routes/acp-claude-auth-routes.ts +11 -3
  727. package/src/runtime/routes/acp-routes.test.ts +15 -0
  728. package/src/runtime/routes/acp-routes.ts +84 -165
  729. package/src/runtime/routes/app-management-routes.ts +90 -2
  730. package/src/runtime/routes/app-routes.ts +1 -1
  731. package/src/runtime/routes/browser-context.ts +39 -0
  732. package/src/runtime/routes/browser-routes.ts +16 -47
  733. package/src/runtime/routes/browser-tabs-routes.ts +72 -29
  734. package/src/runtime/routes/channel-route-shared.ts +1 -9
  735. package/src/runtime/routes/channel-send-routes.ts +85 -0
  736. package/src/runtime/routes/conversation-list-routes.ts +14 -3
  737. package/src/runtime/routes/conversation-query-routes.ts +40 -0
  738. package/src/runtime/routes/conversation-routes.ts +45 -7
  739. package/src/runtime/routes/credential-routes.ts +20 -14
  740. package/src/runtime/routes/desktop-setup-routes.test.ts +89 -0
  741. package/src/runtime/routes/desktop-setup-routes.ts +41 -0
  742. package/src/runtime/routes/diagnostics-routes.ts +61 -4
  743. package/src/runtime/routes/events-routes.ts +4 -0
  744. package/src/runtime/routes/guardian-approval-interception.ts +24 -0
  745. package/src/runtime/routes/host-cu-routes.ts +6 -0
  746. package/src/runtime/routes/inbound-message-handler.ts +2 -3
  747. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +1 -1
  748. package/src/runtime/routes/inbound-stages/background-dispatch.ts +7 -4
  749. package/src/runtime/routes/index.ts +4 -2
  750. package/src/runtime/routes/inference-profile-session-handler.ts +11 -1
  751. package/src/runtime/routes/inference-profiles-routes.ts +9 -0
  752. package/src/runtime/routes/log-export-routes.ts +2 -0
  753. package/src/runtime/routes/mcp-auth-routes.ts +141 -137
  754. package/src/runtime/routes/migration-routes.ts +6 -20
  755. package/src/runtime/routes/oauth-commands-routes.ts +98 -45
  756. package/src/runtime/routes/oauth-providers.ts +11 -0
  757. package/src/runtime/routes/oauth-request-hints.test.ts +246 -0
  758. package/src/runtime/routes/oauth-request-hints.ts +149 -0
  759. package/src/runtime/routes/platform-routes.ts +18 -15
  760. package/src/runtime/routes/plugins-routes.ts +83 -50
  761. package/src/runtime/routes/schedule-routes.ts +2 -0
  762. package/src/runtime/routes/secret-routes.ts +99 -119
  763. package/src/runtime/routes/workspace-routes.test.ts +55 -26
  764. package/src/runtime/routes/workspace-routes.ts +46 -63
  765. package/src/runtime/routes/workspace-tree-walk.test.ts +244 -0
  766. package/src/runtime/routes/workspace-tree-walk.ts +240 -0
  767. package/src/runtime/routes/workspace-utils.ts +17 -0
  768. package/src/runtime/services/__tests__/conversation-serializer.test.ts +28 -0
  769. package/src/runtime/services/conversation-serializer.ts +16 -3
  770. package/src/runtime/sync/resource-sync-events.ts +6 -1
  771. package/src/schedule/__tests__/worker-mcp-bootstrap.test.ts +107 -0
  772. package/src/schedule/__tests__/worker-mcp-readiness.test.ts +173 -0
  773. package/src/schedule/__tests__/worker-mcp-tools.test.ts +13 -47
  774. package/src/schedule/run-script.ts +4 -3
  775. package/src/schedule/schedule-store.ts +9 -2
  776. package/src/schedule/scheduler.ts +47 -11
  777. package/src/schedule/tool-surface-readiness.ts +65 -0
  778. package/src/schedule/worker-mcp.ts +85 -0
  779. package/src/schedule/worker.ts +9 -31
  780. package/src/security/__tests__/ces-http-record-backend.test.ts +137 -0
  781. package/src/security/ces-http-record-backend.ts +120 -0
  782. package/src/security/ces-rpc-record-backend.ts +7 -0
  783. package/src/security/secure-keys.ts +60 -48
  784. package/src/security/untrusted-content.ts +3 -1
  785. package/src/skills/__tests__/workspace-skill-md-signature.test.ts +60 -0
  786. package/src/skills/managed-store.ts +153 -31
  787. package/src/skills/workspace-skill-md-signature.ts +50 -0
  788. package/src/subagent/consult-context.ts +12 -25
  789. package/src/tools/__tests__/side-effect-abort-guard.test.ts +1 -0
  790. package/src/tools/acp/list-agents.test.ts +3 -1
  791. package/src/tools/acp/spawn.test.ts +146 -11
  792. package/src/tools/acp/spawn.ts +21 -3
  793. package/src/tools/acp/status.test.ts +349 -0
  794. package/src/tools/acp/status.ts +112 -9
  795. package/src/tools/app-control/skill-proxy-bridge.ts +2 -1
  796. package/src/tools/ask-question/ask-question-tool.test.ts +167 -5
  797. package/src/tools/ask-question/ask-question-tool.ts +119 -23
  798. package/src/tools/browser/browser-execution.ts +52 -15
  799. package/src/tools/browser/cdp-client/__tests__/factory.test.ts +69 -0
  800. package/src/tools/browser/cdp-client/accessibility-snapshot.ts +9 -3
  801. package/src/tools/browser/cdp-client/cdp-inspect/__tests__/ws-transport.test.ts +1 -0
  802. package/src/tools/browser/cdp-client/cdp-inspect/discovery.ts +2 -1
  803. package/src/tools/browser/cdp-client/cdp-inspect/ws-transport.ts +5 -0
  804. package/src/tools/browser/cdp-client/extension-cdp-client.ts +3 -2
  805. package/src/tools/browser/network-recorder.ts +2 -1
  806. package/src/tools/capability-offer.test.ts +22 -2
  807. package/src/tools/capability-offer.ts +16 -1
  808. package/src/tools/computer-use/definitions.ts +123 -5
  809. package/src/tools/computer-use/skill-proxy-bridge.ts +2 -1
  810. package/src/tools/credentials/metadata-store.ts +100 -0
  811. package/src/tools/filesystem/search.ts +2 -1
  812. package/src/tools/host-filesystem/edit.test.ts +2 -1
  813. package/src/tools/host-filesystem/edit.ts +2 -2
  814. package/src/tools/host-filesystem/read.test.ts +2 -1
  815. package/src/tools/host-filesystem/read.ts +2 -2
  816. package/src/tools/host-filesystem/transfer.test.ts +2 -1
  817. package/src/tools/host-filesystem/transfer.ts +2 -2
  818. package/src/tools/host-filesystem/write.test.ts +2 -1
  819. package/src/tools/host-filesystem/write.ts +2 -2
  820. package/src/tools/host-terminal/host-shell.test.ts +16 -0
  821. package/src/tools/host-terminal/host-shell.ts +16 -26
  822. package/src/tools/network/web-search.ts +6 -1
  823. package/src/tools/policy-context.ts +6 -7
  824. package/src/tools/shared/filesystem/file-ops-service.ts +1 -31
  825. package/src/tools/shared/shell-output.test.ts +10 -0
  826. package/src/tools/shared/shell-output.ts +14 -2
  827. package/src/tools/skills/find-similar-skills.test.ts +214 -2
  828. package/src/tools/skills/find-similar-skills.ts +62 -9
  829. package/src/tools/skills/resolve-execute-invocation.ts +24 -0
  830. package/src/tools/skills/sandbox-runner.ts +13 -2
  831. package/src/tools/skills/scaffold-managed.ts +78 -16
  832. package/src/tools/subagent/spawn.ts +5 -8
  833. package/src/tools/terminal/__tests__/safe-env.test.ts +33 -4
  834. package/src/tools/terminal/__tests__/sanitized-bash.test.ts +43 -0
  835. package/src/tools/terminal/safe-env.ts +35 -24
  836. package/src/tools/terminal/sanitized-bash.ts +118 -0
  837. package/src/tools/terminal/shell-launch.test.ts +162 -0
  838. package/src/tools/terminal/shell.test.ts +29 -0
  839. package/src/tools/terminal/shell.ts +13 -7
  840. package/src/tools/ui-surface/channel-variants.ts +10 -59
  841. package/src/tools/watch/watch-retro-report.ts +0 -8
  842. package/src/types/host-capabilities.ts +5 -3
  843. package/src/util/__tests__/language-subtag.test.ts +23 -1
  844. package/src/util/abort-reasons.ts +12 -1
  845. package/src/util/browser-human-verification.ts +14 -0
  846. package/src/util/ca-bundle.ts +13 -0
  847. package/src/util/host-process.test.ts +17 -1
  848. package/src/util/host-process.ts +24 -0
  849. package/src/util/language-subtag.ts +16 -0
  850. package/src/util/platform.ts +8 -0
  851. package/src/util/plugin-manifest.ts +203 -0
  852. package/src/util/unicode.ts +44 -1
  853. package/src/watch/watch-retro.ts +6 -8
  854. package/src/watch/watch-timeline.ts +2 -2
  855. package/src/workflows/run-manager.ts +2 -1
  856. package/src/workspace/git-porcelain.ts +66 -0
  857. package/src/workspace/git-service.ts +6 -55
  858. package/src/workspace/migrations/154-repair-retired-codex-gpt-5-4-model-ids.ts +258 -0
  859. package/src/workspace/migrations/155-move-front-model-config-to-voice.ts +78 -0
  860. package/src/workspace/migrations/156-extract-workspace-mcp-json.ts +214 -0
  861. package/src/workspace/migrations/__tests__/155-move-front-model-config-to-voice.test.ts +102 -0
  862. package/src/workspace/migrations/__tests__/156-extract-workspace-mcp-json.test.ts +199 -0
  863. package/src/workspace/migrations/registry.ts +6 -0
  864. package/src/__tests__/app-source-watcher.test.ts +0 -218
  865. package/src/__tests__/config-watcher-skill-reseed.test.ts +0 -359
  866. package/src/__tests__/speaker-identification.test.ts +0 -56
  867. package/src/calls/speaker-identification.ts +0 -233
  868. package/src/daemon/app-source-watcher.ts +0 -218
  869. package/src/messaging/providers/whatsapp/client.ts +0 -29
  870. package/src/runtime/routes/debug-bash-routes.ts +0 -173
  871. package/src/util/fs-watcher-error.ts +0 -36
  872. /package/src/{live-voice → calls}/progress-phrases.ts +0 -0
package/openapi.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  openapi: 3.1.0
4
4
  info:
5
5
  title: Vellum Assistant API
6
- version: 0.12.1
6
+ version: 0.12.2
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
@@ -469,6 +469,33 @@ paths:
469
469
  type: string
470
470
  authErrorCode:
471
471
  type: string
472
+ model:
473
+ type: string
474
+ availableModels:
475
+ type: array
476
+ items:
477
+ type: object
478
+ properties:
479
+ value:
480
+ type: string
481
+ label:
482
+ type: string
483
+ description:
484
+ type: string
485
+ group:
486
+ type: string
487
+ required:
488
+ - value
489
+ - label
490
+ additionalProperties: false
491
+ modelRevisionEpoch:
492
+ type: string
493
+ format: uuid
494
+ pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
495
+ modelRevision:
496
+ type: integer
497
+ minimum: 0
498
+ maximum: 9007199254740991
472
499
  usedTokens:
473
500
  type: number
474
501
  contextSize:
@@ -548,6 +575,9 @@ paths:
548
575
  cwd:
549
576
  type: string
550
577
  description: Working directory
578
+ model:
579
+ description: Optional model id or alias to request for the session.
580
+ type: string
551
581
  required:
552
582
  - agent
553
583
  - task
@@ -566,10 +596,25 @@ paths:
566
596
  type: string
567
597
  agent:
568
598
  type: string
599
+ requestedModel:
600
+ anyOf:
601
+ - type: string
602
+ - type: "null"
603
+ description: The model explicitly requested for this spawn, if any.
604
+ effectiveModel:
605
+ anyOf:
606
+ - type: string
607
+ - type: "null"
608
+ description: The top-level session model reported by the ACP adapter, if any.
609
+ modelWarning:
610
+ description: Why the requested model was not applied. The session is running on the agent's own model.
611
+ type: string
569
612
  required:
570
613
  - acpSessionId
571
614
  - protocolSessionId
572
615
  - agent
616
+ - requestedModel
617
+ - effectiveModel
573
618
  additionalProperties: false
574
619
  /v1/activation/dismiss:
575
620
  post:
@@ -1580,6 +1625,93 @@ paths:
1580
1625
  required:
1581
1626
  - published
1582
1627
  additionalProperties: false
1628
+ /v1/apps/{id}/refresh:
1629
+ post:
1630
+ operationId: apps_by_id_refresh_post
1631
+ summary: Compile an app
1632
+ description: Compile workspace or plugin app source into dist/ and refresh open surfaces.
1633
+ tags:
1634
+ - apps
1635
+ parameters:
1636
+ - name: id
1637
+ in: path
1638
+ required: true
1639
+ schema:
1640
+ type: string
1641
+ responses:
1642
+ "200":
1643
+ description: Successful response
1644
+ content:
1645
+ application/json:
1646
+ schema:
1647
+ type: object
1648
+ properties:
1649
+ ok:
1650
+ type: boolean
1651
+ const: true
1652
+ appId:
1653
+ type: string
1654
+ name:
1655
+ type: string
1656
+ compiled:
1657
+ type: boolean
1658
+ compile_duration_ms:
1659
+ type: number
1660
+ compile_errors:
1661
+ type: array
1662
+ items:
1663
+ type: object
1664
+ properties:
1665
+ text:
1666
+ type: string
1667
+ location:
1668
+ type: object
1669
+ properties:
1670
+ file:
1671
+ type: string
1672
+ line:
1673
+ type: number
1674
+ column:
1675
+ type: number
1676
+ required:
1677
+ - file
1678
+ - line
1679
+ - column
1680
+ additionalProperties: false
1681
+ required:
1682
+ - text
1683
+ additionalProperties: false
1684
+ compile_warnings:
1685
+ type: array
1686
+ items:
1687
+ type: object
1688
+ properties:
1689
+ text:
1690
+ type: string
1691
+ location:
1692
+ type: object
1693
+ properties:
1694
+ file:
1695
+ type: string
1696
+ line:
1697
+ type: number
1698
+ column:
1699
+ type: number
1700
+ required:
1701
+ - file
1702
+ - line
1703
+ - column
1704
+ additionalProperties: false
1705
+ required:
1706
+ - text
1707
+ additionalProperties: false
1708
+ required:
1709
+ - ok
1710
+ - appId
1711
+ - name
1712
+ - compiled
1713
+ - compile_duration_ms
1714
+ additionalProperties: false
1583
1715
  /v1/apps/{id}/share-cloud:
1584
1716
  post:
1585
1717
  operationId: apps_by_id_sharecloud_post
@@ -4014,6 +4146,8 @@ paths:
4014
4146
  conversationId:
4015
4147
  type: string
4016
4148
  minLength: 1
4149
+ desktop:
4150
+ type: boolean
4017
4151
  required:
4018
4152
  - operation
4019
4153
  responses:
@@ -4049,7 +4183,7 @@ paths:
4049
4183
  post:
4050
4184
  operationId: browser_tabs_post
4051
4185
  summary: Manage browser tabs
4052
- description: List, create, select, or close browser tabs via the Chrome extension backend.
4186
+ description: List, create, select, or close browser tabs in the Chrome extension or streamed desktop browser.
4053
4187
  tags:
4054
4188
  - browser
4055
4189
  requestBody:
@@ -4073,6 +4207,10 @@ paths:
4073
4207
  conversationId:
4074
4208
  type: string
4075
4209
  minLength: 1
4210
+ desktop:
4211
+ type: boolean
4212
+ browserMode:
4213
+ type: string
4076
4214
  tabId:
4077
4215
  type: number
4078
4216
  url:
@@ -4904,7 +5042,7 @@ paths:
4904
5042
  type: string
4905
5043
  required:
4906
5044
  - type
4907
- slackBotMentioned:
5045
+ botMentioned:
4908
5046
  type: boolean
4909
5047
  slackEditedTs:
4910
5048
  type: string
@@ -5350,6 +5488,101 @@ paths:
5350
5488
  responses:
5351
5489
  "200":
5352
5490
  description: Successful response
5491
+ /v1/channels/send:
5492
+ post:
5493
+ operationId: channels_send_post
5494
+ summary: Send text to a channel chat
5495
+ description: Deliver text to a chat on a channel through the channel's transport, recorded after the channel acknowledges it.
5496
+ tags:
5497
+ - channels
5498
+ requestBody:
5499
+ required: true
5500
+ content:
5501
+ application/json:
5502
+ schema:
5503
+ type: object
5504
+ properties:
5505
+ channel:
5506
+ type: string
5507
+ enum:
5508
+ - telegram
5509
+ - phone
5510
+ - vellum
5511
+ - whatsapp
5512
+ - slack
5513
+ - email
5514
+ - platform
5515
+ - a2a
5516
+ - discord
5517
+ - plugin
5518
+ description: Channel to send on
5519
+ target:
5520
+ type: object
5521
+ properties:
5522
+ kind:
5523
+ type: string
5524
+ const: chat
5525
+ chatId:
5526
+ type: string
5527
+ minLength: 1
5528
+ description: Chat id in the channel's own id space
5529
+ threadId:
5530
+ description: Thread within the chat, in the channel's own id space
5531
+ type: string
5532
+ minLength: 1
5533
+ required:
5534
+ - kind
5535
+ - chatId
5536
+ text:
5537
+ type: string
5538
+ minLength: 1
5539
+ description: Text to send
5540
+ renderRichly:
5541
+ description: Ask the channel for its rich rendering, where it has one
5542
+ type: boolean
5543
+ required:
5544
+ - channel
5545
+ - target
5546
+ - text
5547
+ responses:
5548
+ "200":
5549
+ description: Successful response
5550
+ content:
5551
+ application/json:
5552
+ schema:
5553
+ type: object
5554
+ properties:
5555
+ channel:
5556
+ type: string
5557
+ enum:
5558
+ - telegram
5559
+ - phone
5560
+ - vellum
5561
+ - whatsapp
5562
+ - slack
5563
+ - email
5564
+ - platform
5565
+ - a2a
5566
+ - discord
5567
+ - plugin
5568
+ chatId:
5569
+ type: string
5570
+ threadId:
5571
+ type: string
5572
+ messageIds:
5573
+ type: array
5574
+ items:
5575
+ type: string
5576
+ lastMessageId:
5577
+ type: string
5578
+ recordedIn:
5579
+ type: string
5580
+ required:
5581
+ - channel
5582
+ - chatId
5583
+ - messageIds
5584
+ - lastMessageId
5585
+ additionalProperties: false
5353
5586
  /v1/clients:
5354
5587
  get:
5355
5588
  operationId: clients_get
@@ -11146,7 +11379,9 @@ paths:
11146
11379
  post:
11147
11380
  operationId: credentials_list_post
11148
11381
  summary: List all credentials with metadata
11149
- description: Return all stored credentials with metadata, OAuth connection info, and platform-managed credentials.
11382
+ description:
11383
+ Return credentials from the live credential vault, with OAuth connection info and platform-managed
11384
+ credentials. Fails if the vault is unreachable.
11150
11385
  tags:
11151
11386
  - credentials
11152
11387
  requestBody:
@@ -11481,54 +11716,6 @@ paths:
11481
11716
  - schedules
11482
11717
  - timestamp
11483
11718
  additionalProperties: false
11484
- /v1/debug/bash:
11485
- post:
11486
- operationId: debug_bash_post
11487
- summary: Execute a shell command in the assistant process
11488
- description: Developer debugging tool. Requires the assistant to be running with VELLUM_DEBUG=1.
11489
- tags:
11490
- - debug
11491
- requestBody:
11492
- required: true
11493
- content:
11494
- application/json:
11495
- schema:
11496
- type: object
11497
- properties:
11498
- command:
11499
- type: string
11500
- description: Shell command to execute via bash -c
11501
- timeoutMs:
11502
- description: "Execution timeout in milliseconds (default: 30000)"
11503
- type: number
11504
- required:
11505
- - command
11506
- responses:
11507
- "200":
11508
- description: Successful response
11509
- content:
11510
- application/json:
11511
- schema:
11512
- type: object
11513
- properties:
11514
- stdout:
11515
- type: string
11516
- stderr:
11517
- type: string
11518
- exitCode:
11519
- anyOf:
11520
- - type: number
11521
- - type: "null"
11522
- timedOut:
11523
- type: boolean
11524
- error:
11525
- type: string
11526
- required:
11527
- - stdout
11528
- - stderr
11529
- - exitCode
11530
- - timedOut
11531
- additionalProperties: false
11532
11719
  /v1/debug/database:
11533
11720
  get:
11534
11721
  operationId: debug_database_get
@@ -11732,6 +11919,71 @@ paths:
11732
11919
  required:
11733
11920
  - defers
11734
11921
  additionalProperties: false
11922
+ /v1/desktop/setup:
11923
+ get:
11924
+ operationId: desktop_setup_get
11925
+ summary: Get virtual desktop setup status
11926
+ tags:
11927
+ - desktop
11928
+ responses:
11929
+ "200":
11930
+ description: Successful response
11931
+ content:
11932
+ application/json:
11933
+ schema:
11934
+ type: object
11935
+ properties:
11936
+ state:
11937
+ type: string
11938
+ enum:
11939
+ - required
11940
+ - installing
11941
+ - ready
11942
+ - failed
11943
+ - unsupported
11944
+ automationActive:
11945
+ type: boolean
11946
+ stage:
11947
+ type: string
11948
+ enum:
11949
+ - packages
11950
+ - chrome
11951
+ - checking
11952
+ required:
11953
+ - state
11954
+ additionalProperties: false
11955
+ post:
11956
+ operationId: desktop_setup_post
11957
+ summary: Install virtual desktop components
11958
+ tags:
11959
+ - desktop
11960
+ responses:
11961
+ "200":
11962
+ description: Successful response
11963
+ content:
11964
+ application/json:
11965
+ schema:
11966
+ type: object
11967
+ properties:
11968
+ state:
11969
+ type: string
11970
+ enum:
11971
+ - required
11972
+ - installing
11973
+ - ready
11974
+ - failed
11975
+ - unsupported
11976
+ automationActive:
11977
+ type: boolean
11978
+ stage:
11979
+ type: string
11980
+ enum:
11981
+ - packages
11982
+ - chrome
11983
+ - checking
11984
+ required:
11985
+ - state
11986
+ additionalProperties: false
11735
11987
  /v1/diagnostics/env-vars:
11736
11988
  get:
11737
11989
  operationId: diagnostics_envvars_get
@@ -15739,6 +15991,13 @@ paths:
15739
15991
  type: string
15740
15992
  userGuidance:
15741
15993
  type: string
15994
+ timings:
15995
+ type: object
15996
+ propertyNames:
15997
+ type: string
15998
+ additionalProperties:
15999
+ type: number
16000
+ description: Per-phase helper timings in milliseconds
15742
16001
  required:
15743
16002
  - requestId
15744
16003
  responses:
@@ -16297,7 +16556,8 @@ paths:
16297
16556
  type: string
16298
16557
  description:
16299
16558
  "Filter by provider id. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
16300
- vercel-ai-gateway, litellm, opencode, openai-compatible, minimax, atlascloud, baseten, poolside, vellum"
16559
+ vercel-ai-gateway, litellm, opencode, openai-compatible, minimax, atlascloud, baseten, poolside, jev,
16560
+ vellum"
16301
16561
  responses:
16302
16562
  "200":
16303
16563
  description: Successful response
@@ -16569,8 +16829,8 @@ paths:
16569
16829
  type: string
16570
16830
  description:
16571
16831
  "Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
16572
- vercel-ai-gateway, litellm, opencode, openai-compatible, minimax, atlascloud, baseten, poolside, vellum,
16573
- chatgpt"
16832
+ vercel-ai-gateway, litellm, opencode, openai-compatible, minimax, atlascloud, baseten, poolside, jev,
16833
+ vellum, chatgpt"
16574
16834
  responses:
16575
16835
  "200":
16576
16836
  description: Successful response
@@ -18177,7 +18437,7 @@ paths:
18177
18437
  get:
18178
18438
  operationId: internal_mcp_list_get
18179
18439
  summary: List MCP servers with health status
18180
- description: Returns configured MCP servers with live health-check results (connected, needs auth, error).
18440
+ description: Returns configured MCP servers with recorded runtime status without opening new connections.
18181
18441
  tags:
18182
18442
  - internal
18183
18443
  responses:
@@ -20733,6 +20993,8 @@ paths:
20733
20993
  type: string
20734
20994
  fileBacked:
20735
20995
  type: boolean
20996
+ computerUseScreenshot:
20997
+ type: boolean
20736
20998
  required:
20737
20999
  - id
20738
21000
  - filename
@@ -21060,6 +21322,9 @@ paths:
21060
21322
  additionalProperties: false
21061
21323
  freeTextPlaceholder:
21062
21324
  type: string
21325
+ presentation:
21326
+ type: string
21327
+ const: virtual_desktop
21063
21328
  required:
21064
21329
  - id
21065
21330
  - question
@@ -21102,6 +21367,9 @@ paths:
21102
21367
  additionalProperties: false
21103
21368
  freeTextPlaceholder:
21104
21369
  type: string
21370
+ presentation:
21371
+ type: string
21372
+ const: virtual_desktop
21105
21373
  required:
21106
21374
  - id
21107
21375
  - question
@@ -21571,6 +21839,9 @@ paths:
21571
21839
  additionalProperties: false
21572
21840
  freeTextPlaceholder:
21573
21841
  type: string
21842
+ presentation:
21843
+ type: string
21844
+ const: virtual_desktop
21574
21845
  required:
21575
21846
  - id
21576
21847
  - question
@@ -21613,6 +21884,9 @@ paths:
21613
21884
  additionalProperties: false
21614
21885
  freeTextPlaceholder:
21615
21886
  type: string
21887
+ presentation:
21888
+ type: string
21889
+ const: virtual_desktop
21616
21890
  required:
21617
21891
  - id
21618
21892
  - question
@@ -21740,6 +22014,8 @@ paths:
21740
22014
  type: string
21741
22015
  fileBacked:
21742
22016
  type: boolean
22017
+ computerUseScreenshot:
22018
+ type: boolean
21743
22019
  required:
21744
22020
  - id
21745
22021
  - filename
@@ -21826,6 +22102,9 @@ paths:
21826
22102
  type: boolean
21827
22103
  noResponse:
21828
22104
  type: boolean
22105
+ cameraFrame:
22106
+ type: boolean
22107
+ const: true
21829
22108
  assistantTextVisibility:
21830
22109
  type: string
21831
22110
  enum:
@@ -24229,6 +24508,22 @@ paths:
24229
24508
  anyOf:
24230
24509
  - type: string
24231
24510
  - type: "null"
24511
+ tenant_host:
24512
+ anyOf:
24513
+ - type: object
24514
+ properties:
24515
+ pattern:
24516
+ type: string
24517
+ label:
24518
+ type: string
24519
+ placeholder:
24520
+ type: string
24521
+ required:
24522
+ - pattern
24523
+ - label
24524
+ - placeholder
24525
+ additionalProperties: false
24526
+ - type: "null"
24232
24527
  acts_as:
24233
24528
  type: string
24234
24529
  enum:
@@ -24245,6 +24540,7 @@ paths:
24245
24540
  - supports_managed_mode
24246
24541
  - managed_service_is_paid
24247
24542
  - feature_flag
24543
+ - tenant_host
24248
24544
  - acts_as
24249
24545
  additionalProperties: false
24250
24546
  - type: "null"
@@ -24763,6 +25059,22 @@ paths:
24763
25059
  anyOf:
24764
25060
  - type: string
24765
25061
  - type: "null"
25062
+ tenant_host:
25063
+ anyOf:
25064
+ - type: object
25065
+ properties:
25066
+ pattern:
25067
+ type: string
25068
+ label:
25069
+ type: string
25070
+ placeholder:
25071
+ type: string
25072
+ required:
25073
+ - pattern
25074
+ - label
25075
+ - placeholder
25076
+ additionalProperties: false
25077
+ - type: "null"
24766
25078
  acts_as:
24767
25079
  type: string
24768
25080
  enum:
@@ -24779,6 +25091,7 @@ paths:
24779
25091
  - supports_managed_mode
24780
25092
  - managed_service_is_paid
24781
25093
  - feature_flag
25094
+ - tenant_host
24782
25095
  - acts_as
24783
25096
  additionalProperties: false
24784
25097
  required:
@@ -25427,6 +25740,9 @@ paths:
25427
25740
  additionalProperties: false
25428
25741
  freeTextPlaceholder:
25429
25742
  type: string
25743
+ presentation:
25744
+ type: string
25745
+ const: virtual_desktop
25430
25746
  required:
25431
25747
  - id
25432
25748
  - question
@@ -26258,6 +26574,12 @@ paths:
26258
26574
  target:
26259
26575
  type: string
26260
26576
  description: Absolute path that was removed on the assistant host. Useful for audit logs and confirmation toasts.
26577
+ warnings:
26578
+ description: Stable keys for non-fatal cleanup limitations that should be localized at the presentation edge.
26579
+ type: array
26580
+ items:
26581
+ type: string
26582
+ const: plugin.uninstall.mcp_oauth_credentials_unchecked
26261
26583
  required:
26262
26584
  - name
26263
26585
  - target
@@ -26324,26 +26646,44 @@ paths:
26324
26646
  description: Resolved version (installed copy first, then repo `package.json`).
26325
26647
  source:
26326
26648
  anyOf:
26327
- - type: object
26328
- properties:
26329
- kind:
26330
- type: string
26331
- const: github
26332
- repo:
26333
- type: string
26334
- description: "`owner/repo` of the external plugin repository."
26335
- path:
26336
- description: Directory within the repo, when the plugin is not at the root.
26337
- type: string
26338
- ref:
26339
- type: string
26340
- description: Pinned git ref the plugin is fetched from.
26341
- required:
26342
- - kind
26343
- - repo
26344
- - ref
26345
- additionalProperties: false
26346
- description: "Origin of the match: a whitelisted external plugin repository."
26649
+ - oneOf:
26650
+ - type: object
26651
+ properties:
26652
+ kind:
26653
+ type: string
26654
+ const: github
26655
+ repo:
26656
+ type: string
26657
+ description: "`owner/repo` of the external plugin repository."
26658
+ path:
26659
+ description: Directory within the repo, when the plugin is not at the root.
26660
+ type: string
26661
+ ref:
26662
+ type: string
26663
+ description: Pinned git ref the plugin is fetched from.
26664
+ required:
26665
+ - kind
26666
+ - repo
26667
+ - ref
26668
+ additionalProperties: false
26669
+ - type: object
26670
+ properties:
26671
+ kind:
26672
+ type: string
26673
+ const: local
26674
+ path:
26675
+ type: string
26676
+ description: Package key in the assistant bundle.
26677
+ version:
26678
+ type: string
26679
+ description: Bundled package version.
26680
+ required:
26681
+ - kind
26682
+ - path
26683
+ - version
26684
+ additionalProperties: false
26685
+ description: Reviewed source of the marketplace entry.
26686
+ type: object
26347
26687
  - type: "null"
26348
26688
  description: Pinned origin from the marketplace entry, or null when an installed copy has no catalog entry.
26349
26689
  readme:
@@ -26698,28 +27038,42 @@ paths:
26698
27038
  description: ISO-8601 install timestamp from the sidecar; null when absent.
26699
27039
  source:
26700
27040
  anyOf:
26701
- - type: object
26702
- properties:
26703
- kind:
26704
- type: string
26705
- description: Source kind. Only `github` is written today.
26706
- owner:
26707
- type: string
26708
- repo:
26709
- type: string
26710
- path:
26711
- description: Repo-relative directory holding the plugin root; absent = repo root.
26712
- type: string
26713
- ref:
26714
- type: string
26715
- description: Ref the install resolved through (the pinned commit SHA for marketplace installs).
26716
- required:
26717
- - kind
26718
- - owner
26719
- - repo
26720
- - ref
26721
- additionalProperties: false
27041
+ - oneOf:
27042
+ - type: object
27043
+ properties:
27044
+ kind:
27045
+ type: string
27046
+ const: github
27047
+ owner:
27048
+ type: string
27049
+ repo:
27050
+ type: string
27051
+ path:
27052
+ type: string
27053
+ ref:
27054
+ type: string
27055
+ required:
27056
+ - kind
27057
+ - owner
27058
+ - repo
27059
+ - ref
27060
+ additionalProperties: false
27061
+ - type: object
27062
+ properties:
27063
+ kind:
27064
+ type: string
27065
+ const: local
27066
+ path:
27067
+ type: string
27068
+ version:
27069
+ type: string
27070
+ required:
27071
+ - kind
27072
+ - path
27073
+ - version
27074
+ additionalProperties: false
26722
27075
  description: Source coordinates recorded in the install-time provenance sidecar.
27076
+ type: object
26723
27077
  - type: "null"
26724
27078
  description: Source recorded at install time; null when no sidecar exists.
26725
27079
  localChanges:
@@ -26778,6 +27132,9 @@ paths:
26778
27132
  anyOf:
26779
27133
  - type: object
26780
27134
  properties:
27135
+ kind:
27136
+ type: string
27137
+ const: local
26781
27138
  repo:
26782
27139
  type: string
26783
27140
  description: "`owner/repo` of the external plugin repository."
@@ -26813,6 +27170,9 @@ paths:
26813
27170
  marketplaceRef:
26814
27171
  type: string
26815
27172
  description: Ref of the canonical repo the marketplace manifest was read from.
27173
+ version:
27174
+ description: Bundled package version.
27175
+ type: string
26816
27176
  required:
26817
27177
  - repo
26818
27178
  - path
@@ -27249,7 +27609,7 @@ paths:
27249
27609
  description: Install name. Matches `assistant plugins install <name>`.
27250
27610
  path:
27251
27611
  type: string
27252
- description: "Human-readable origin: a `github:owner/repo@ref` locator for the external plugin."
27612
+ description: Human-readable catalog origin locator.
27253
27613
  description:
27254
27614
  description: Short description, when known (external entries only today).
27255
27615
  type: string
@@ -27263,27 +27623,87 @@ paths:
27263
27623
  - type: string
27264
27624
  - type: "null"
27265
27625
  description: Marketplace category slug (Skills taxonomy); null when the entry declares none.
27266
- source:
27626
+ integration:
27267
27627
  type: object
27268
27628
  properties:
27269
27629
  kind:
27270
27630
  type: string
27271
- const: github
27272
- repo:
27631
+ const: mcp
27632
+ displayName:
27633
+ type: string
27634
+ documentationUrl:
27635
+ type: string
27636
+ verifiedAt:
27637
+ type: string
27638
+ verification:
27273
27639
  type: string
27274
- description: "`owner/repo` of the external plugin repository."
27275
- path:
27276
- description: Directory within the repo, when the plugin is not at the root.
27640
+ const: documentation-only
27641
+ setup:
27642
+ type: object
27643
+ properties:
27644
+ mode:
27645
+ type: string
27646
+ enum:
27647
+ - oauth
27648
+ - manual
27649
+ instructions:
27650
+ type: string
27651
+ required:
27652
+ - mode
27653
+ - instructions
27654
+ additionalProperties: false
27655
+ logo:
27277
27656
  type: string
27278
- ref:
27657
+ oauthProvider:
27279
27658
  type: string
27280
- description: Pinned git ref the plugin is fetched from.
27281
27659
  required:
27282
27660
  - kind
27283
- - repo
27284
- - ref
27661
+ - displayName
27662
+ - documentationUrl
27663
+ - verifiedAt
27664
+ - verification
27665
+ - setup
27666
+ - logo
27285
27667
  additionalProperties: false
27286
- description: "Origin of the match: a whitelisted external plugin repository."
27668
+ source:
27669
+ oneOf:
27670
+ - type: object
27671
+ properties:
27672
+ kind:
27673
+ type: string
27674
+ const: github
27675
+ repo:
27676
+ type: string
27677
+ description: "`owner/repo` of the external plugin repository."
27678
+ path:
27679
+ description: Directory within the repo, when the plugin is not at the root.
27680
+ type: string
27681
+ ref:
27682
+ type: string
27683
+ description: Pinned git ref the plugin is fetched from.
27684
+ required:
27685
+ - kind
27686
+ - repo
27687
+ - ref
27688
+ additionalProperties: false
27689
+ - type: object
27690
+ properties:
27691
+ kind:
27692
+ type: string
27693
+ const: local
27694
+ path:
27695
+ type: string
27696
+ description: Package key in the assistant bundle.
27697
+ version:
27698
+ type: string
27699
+ description: Bundled package version.
27700
+ required:
27701
+ - kind
27702
+ - path
27703
+ - version
27704
+ additionalProperties: false
27705
+ description: Reviewed source of the marketplace entry.
27706
+ type: object
27287
27707
  required:
27288
27708
  - name
27289
27709
  - path
@@ -28738,6 +29158,8 @@ paths:
28738
29158
  - single_channel
28739
29159
  - multi_channel
28740
29160
  - all_channels
29161
+ quiet:
29162
+ type: boolean
28741
29163
  reuseConversation:
28742
29164
  type: boolean
28743
29165
  wakeConversationId:
@@ -28807,6 +29229,7 @@ paths:
28807
29229
  - mode
28808
29230
  - status
28809
29231
  - routingIntent
29232
+ - quiet
28810
29233
  - reuseConversation
28811
29234
  - wakeConversationId
28812
29235
  - workflowName
@@ -28986,6 +29409,8 @@ paths:
28986
29409
  - single_channel
28987
29410
  - multi_channel
28988
29411
  - all_channels
29412
+ quiet:
29413
+ type: boolean
28989
29414
  reuseConversation:
28990
29415
  type: boolean
28991
29416
  wakeConversationId:
@@ -29055,6 +29480,7 @@ paths:
29055
29480
  - mode
29056
29481
  - status
29057
29482
  - routingIntent
29483
+ - quiet
29058
29484
  - reuseConversation
29059
29485
  - wakeConversationId
29060
29486
  - workflowName
@@ -29186,6 +29612,8 @@ paths:
29186
29612
  - single_channel
29187
29613
  - multi_channel
29188
29614
  - all_channels
29615
+ quiet:
29616
+ type: boolean
29189
29617
  reuseConversation:
29190
29618
  type: boolean
29191
29619
  wakeConversationId:
@@ -29255,6 +29683,7 @@ paths:
29255
29683
  - mode
29256
29684
  - status
29257
29685
  - routingIntent
29686
+ - quiet
29258
29687
  - reuseConversation
29259
29688
  - wakeConversationId
29260
29689
  - workflowName
@@ -29383,6 +29812,8 @@ paths:
29383
29812
  - single_channel
29384
29813
  - multi_channel
29385
29814
  - all_channels
29815
+ quiet:
29816
+ type: boolean
29386
29817
  reuseConversation:
29387
29818
  type: boolean
29388
29819
  wakeConversationId:
@@ -29452,6 +29883,7 @@ paths:
29452
29883
  - mode
29453
29884
  - status
29454
29885
  - routingIntent
29886
+ - quiet
29455
29887
  - reuseConversation
29456
29888
  - wakeConversationId
29457
29889
  - workflowName
@@ -29640,6 +30072,8 @@ paths:
29640
30072
  - single_channel
29641
30073
  - multi_channel
29642
30074
  - all_channels
30075
+ quiet:
30076
+ type: boolean
29643
30077
  reuseConversation:
29644
30078
  type: boolean
29645
30079
  wakeConversationId:
@@ -29709,6 +30143,7 @@ paths:
29709
30143
  - mode
29710
30144
  - status
29711
30145
  - routingIntent
30146
+ - quiet
29712
30147
  - reuseConversation
29713
30148
  - wakeConversationId
29714
30149
  - workflowName
@@ -29840,6 +30275,8 @@ paths:
29840
30275
  - single_channel
29841
30276
  - multi_channel
29842
30277
  - all_channels
30278
+ quiet:
30279
+ type: boolean
29843
30280
  reuseConversation:
29844
30281
  type: boolean
29845
30282
  wakeConversationId:
@@ -29909,6 +30346,7 @@ paths:
29909
30346
  - mode
29910
30347
  - status
29911
30348
  - routingIntent
30349
+ - quiet
29912
30350
  - reuseConversation
29913
30351
  - wakeConversationId
29914
30352
  - workflowName
@@ -30043,6 +30481,8 @@ paths:
30043
30481
  - single_channel
30044
30482
  - multi_channel
30045
30483
  - all_channels
30484
+ quiet:
30485
+ type: boolean
30046
30486
  reuseConversation:
30047
30487
  type: boolean
30048
30488
  wakeConversationId:
@@ -30112,6 +30552,7 @@ paths:
30112
30552
  - mode
30113
30553
  - status
30114
30554
  - routingIntent
30555
+ - quiet
30115
30556
  - reuseConversation
30116
30557
  - wakeConversationId
30117
30558
  - workflowName
@@ -30382,6 +30823,8 @@ paths:
30382
30823
  - single_channel
30383
30824
  - multi_channel
30384
30825
  - all_channels
30826
+ quiet:
30827
+ type: boolean
30385
30828
  reuseConversation:
30386
30829
  type: boolean
30387
30830
  wakeConversationId:
@@ -30451,6 +30894,7 @@ paths:
30451
30894
  - mode
30452
30895
  - status
30453
30896
  - routingIntent
30897
+ - quiet
30454
30898
  - reuseConversation
30455
30899
  - wakeConversationId
30456
30900
  - workflowName
@@ -36805,8 +37249,18 @@ paths:
36805
37249
  schema:
36806
37250
  type: string
36807
37251
  description:
36808
- "Compute recursive byte size for each directory entry (true/false). Budget-bounded — large subtrees may
36809
- return size: null."
37252
+ "Compute recursive byte size for each directory entry (true/false). Budget-bounded: large subtrees may
37253
+ return size: null. Not applied to a recursive listing, which carries every file for the client to sum."
37254
+ - name: recursive
37255
+ in: query
37256
+ required: false
37257
+ schema:
37258
+ type: string
37259
+ description:
37260
+ "List the whole subtree in one response (true/false). Depth-first, each directory's entries in listing
37261
+ order, so grouping by parent path recovers per-directory listings. Bounded: sets truncated when the entry
37262
+ cap or deadline stops the walk, and does not enter directories the workspace gitignore rules exclude, which
37263
+ are named in skipped."
36810
37264
  responses:
36811
37265
  "200":
36812
37266
  description: Successful response
@@ -36850,6 +37304,19 @@ paths:
36850
37304
  - modifiedAt
36851
37305
  additionalProperties: false
36852
37306
  description: Directory entry objects
37307
+ truncated:
37308
+ description:
37309
+ A recursive walk stopped at its entry cap or deadline, so deeper entries are missing. Absent from
37310
+ assistants that predate recursive listings.
37311
+ type: boolean
37312
+ skipped:
37313
+ description:
37314
+ Directories a recursive walk listed but did not enter, whether because a workspace gitignore rule excludes
37315
+ them, they are symlinks, or they could not be read. Each can still be listed on its own. Absent
37316
+ from assistants that predate recursive listings.
37317
+ type: array
37318
+ items:
37319
+ type: string
36853
37320
  required:
36854
37321
  - path
36855
37322
  - entries
@@ -37933,6 +38400,7 @@ components:
37933
38400
  - atlascloud
37934
38401
  - baseten
37935
38402
  - poolside
38403
+ - jev
37936
38404
  - vellum
37937
38405
  - chatgpt
37938
38406
  Auth: