@vellumai/assistant 0.12.1-staging.1 → 0.12.1

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 (404) hide show
  1. package/AGENTS.md +0 -4
  2. package/ARCHITECTURE.md +12 -11
  3. package/docs/architecture/turn-actor.md +8 -15
  4. package/openapi.yaml +1 -291
  5. package/package.json +1 -1
  6. package/src/__tests__/always-loaded-tools-guard.test.ts +10 -18
  7. package/src/__tests__/app-compiler.test.ts +0 -6
  8. package/src/__tests__/app-control-tool-schemas.test.ts +2 -5
  9. package/src/__tests__/app-dir-path-guard.test.ts +3 -1
  10. package/src/__tests__/app-source-watcher.test.ts +218 -0
  11. package/src/{calls/__tests__ → __tests__}/call-controller.test.ts +82 -503
  12. package/src/__tests__/computer-use-skill-proxy-bridge.test.ts +2 -5
  13. package/src/__tests__/computer-use-tools.test.ts +5 -17
  14. package/src/__tests__/config-schema-cmd.test.ts +2 -2
  15. package/src/__tests__/config-schema.test.ts +29 -28
  16. package/src/__tests__/config-watcher-skill-reseed.test.ts +359 -0
  17. package/src/__tests__/config-watcher.test.ts +8 -23
  18. package/src/__tests__/connection-model-compat.test.ts +2 -2
  19. package/src/__tests__/conversation-key-store-disk-view.test.ts +1 -1
  20. package/src/__tests__/conversation-pairing.test.ts +0 -26
  21. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +10 -4
  22. package/src/__tests__/conversation-queue.test.ts +207 -48
  23. package/src/__tests__/conversation-retry-discard.test.ts +1 -54
  24. package/src/__tests__/conversation-skill-tools.test.ts +0 -27
  25. package/src/__tests__/conversation-surfaces-app-control.test.ts +3 -8
  26. package/src/__tests__/conversation-surfaces-task-progress.test.ts +0 -67
  27. package/src/__tests__/conversation-title-service.test.ts +10 -14
  28. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +5 -3
  29. package/src/__tests__/conversation-tool-setup-attribution.test.ts +0 -51
  30. package/src/__tests__/credential-record-retire.test.ts +1 -171
  31. package/src/__tests__/credential-routes.test.ts +3 -212
  32. package/src/__tests__/credential-security-invariants.test.ts +1 -2
  33. package/src/__tests__/cu-unified-flow.test.ts +2 -8
  34. package/src/__tests__/drain-kick-guard.test.ts +2 -0
  35. package/src/__tests__/drain-requeue-on-contention.test.ts +6 -0
  36. package/src/__tests__/evict-conversations-for-reload.test.ts +1 -1
  37. package/src/__tests__/host-bash-proxy.test.ts +45 -26
  38. package/src/__tests__/host-browser-proxy.test.ts +17 -6
  39. package/src/__tests__/host-file-proxy-targeted.test.ts +0 -23
  40. package/src/__tests__/host-file-proxy.test.ts +23 -11
  41. package/src/__tests__/host-transfer-proxy-targeted.test.ts +9 -30
  42. package/src/__tests__/llm-catalog-parity.test.ts +0 -25
  43. package/src/__tests__/mcp-auth-routes.test.ts +9 -6
  44. package/src/__tests__/mcp-config-secret-boundary.test.ts +136 -78
  45. package/src/__tests__/mcp-health-check.test.ts +11 -8
  46. package/src/__tests__/mcp-list-plugin-servers.test.ts +10 -8
  47. package/src/{calls/__tests__ → __tests__}/media-stream-audio-transcode.test.ts +1 -1
  48. package/src/{calls/__tests__ → __tests__}/media-stream-output.test.ts +8 -37
  49. package/src/{calls/__tests__ → __tests__}/media-stream-parser.test.ts +1 -1
  50. package/src/{calls/__tests__ → __tests__}/media-stream-server-integration.test.ts +57 -150
  51. package/src/{calls/__tests__ → __tests__}/media-stream-stt-session.test.ts +5 -5
  52. package/src/{calls/__tests__ → __tests__}/media-turn-detector.test.ts +1 -1
  53. package/src/__tests__/messages-after-tiebreaker.test.ts +0 -91
  54. package/src/__tests__/messages-read-boundary-guard.test.ts +1 -1
  55. package/src/__tests__/messaging-send-tool.test.ts +548 -355
  56. package/src/__tests__/model-intents.test.ts +0 -3
  57. package/src/__tests__/outlook-messaging-provider.test.ts +6 -6
  58. package/src/__tests__/platform-client-verify-credential.test.ts +0 -2
  59. package/src/__tests__/plugin-import-boundary-guard.test.ts +0 -13
  60. package/src/__tests__/script-proxy-certs.test.ts +0 -35
  61. package/src/__tests__/skill-feature-flags-integration.test.ts +1 -1
  62. package/src/__tests__/skill-feature-flags.test.ts +2 -2
  63. package/src/__tests__/speaker-identification.test.ts +56 -0
  64. package/src/__tests__/subagent-tool-gate-mode.test.ts +3 -19
  65. package/src/__tests__/subagent-tools.test.ts +2 -3
  66. package/src/__tests__/telephony-tts-guard.test.ts +3 -38
  67. package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +0 -4
  68. package/src/{calls/__tests__/voice-session-bridge-turn-flow.test.ts → __tests__/voice-session-bridge.test.ts} +12 -20
  69. package/src/__tests__/watch-retro-tool-availability.test.ts +17 -8
  70. package/src/__tests__/workspace-git-service.test.ts +0 -26
  71. package/src/acp/__tests__/agent-process.test.ts +4 -258
  72. package/src/acp/__tests__/auth-required.test.ts +0 -96
  73. package/src/acp/__tests__/client-handler.test.ts +2 -90
  74. package/src/acp/__tests__/session-manager-persistence.test.ts +1 -5
  75. package/src/acp/__tests__/session-manager-resume.test.ts +6 -270
  76. package/src/acp/__tests__/session-manager-usage.test.ts +2 -4
  77. package/src/acp/__tests__/session-manager.test.ts +4 -895
  78. package/src/acp/agent-process.test.ts +1 -4
  79. package/src/acp/agent-process.ts +9 -94
  80. package/src/acp/auth-required.ts +1 -50
  81. package/src/acp/auto-install.test.ts +7 -9
  82. package/src/acp/client-handler.ts +3 -16
  83. package/src/acp/resolve-agent.test.ts +6 -220
  84. package/src/acp/resolve-agent.ts +23 -88
  85. package/src/acp/session-manager.test.ts +3 -196
  86. package/src/acp/session-manager.ts +18 -441
  87. package/src/acp/types.ts +5 -50
  88. package/src/api/events/app-files-changed.ts +3 -4
  89. package/src/api/index.ts +0 -6
  90. package/src/apps/app-store.ts +1 -1
  91. package/src/bundler/app-compiler.ts +0 -15
  92. package/src/calls/__tests__/voice-control-protocol.test.ts +25 -58
  93. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -37
  94. package/src/calls/__tests__/voice-triage-escalate.test.ts +0 -105
  95. package/src/calls/call-constants.ts +4 -24
  96. package/src/calls/call-controller.ts +199 -499
  97. package/src/calls/call-transport.ts +0 -16
  98. package/src/calls/media-stream-output.ts +0 -32
  99. package/src/calls/media-stream-server.ts +30 -82
  100. package/src/calls/media-stream-stt-session.ts +0 -15
  101. package/src/calls/resolve-call-tts-provider.ts +2 -33
  102. package/src/calls/speaker-identification.ts +233 -0
  103. package/src/calls/tts-call-strategy.ts +5 -9
  104. package/src/calls/types.ts +0 -2
  105. package/src/calls/voice-control-protocol.ts +21 -53
  106. package/src/calls/voice-session-bridge.ts +46 -59
  107. package/src/calls/voice-triage-escalate.ts +56 -175
  108. package/src/cli/commands/apps.help.ts +13 -67
  109. package/src/cli/commands/apps.ts +0 -183
  110. package/src/cli/commands/channels/index.help.ts +2 -70
  111. package/src/cli/commands/channels/index.ts +3 -16
  112. package/src/cli/commands/credentials.help.ts +2 -6
  113. package/src/cli/commands/credentials.ts +2 -2
  114. package/src/cli/commands/mcp.help.ts +8 -8
  115. package/src/cli/commands/mcp.ts +1 -1
  116. package/src/cli/commands/roadmap.help.ts +1 -5
  117. package/src/cli/commands/roadmap.ts +1 -1
  118. package/src/cli/lib/bundled-marketplace.json +90 -103
  119. package/src/config/__tests__/default-profile-catalog.test.ts +0 -22
  120. package/src/config/__tests__/memory-retrospective-schema.test.ts +1 -15
  121. package/src/config/__tests__/platform-rehydration.test.ts +0 -93
  122. package/src/config/acp-defaults.test.ts +3 -13
  123. package/src/config/acp-defaults.ts +6 -23
  124. package/src/config/acp-schema.ts +2 -30
  125. package/src/config/bundled-skills/acp/SKILL.md +14 -22
  126. package/src/config/bundled-skills/acp/TOOLS.json +1 -5
  127. package/src/config/bundled-skills/app-builder/SKILL.md +9 -12
  128. package/src/config/bundled-skills/app-builder/references/CUSTOM_ROUTES.md +1 -1
  129. package/src/config/bundled-skills/messaging/TOOLS.json +3 -3
  130. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +139 -67
  131. package/src/config/bundled-skills/phone-calls/references/TRANSCRIPTS.md +1 -1
  132. package/src/config/bundled-skills/screen-annotation/SKILL.md +1 -8
  133. package/src/config/bundled-skills/screen-annotation/tools/screen-annotation.test.ts +1 -4
  134. package/src/config/bundled-skills/skill-management/TOOLS.json +2 -2
  135. package/src/config/default-profile-catalog.ts +1 -1
  136. package/src/config/env.ts +2 -2
  137. package/src/config/feature-flag-registry.json +12 -8
  138. package/src/config/memory-v3-gate.test.ts +0 -31
  139. package/src/config/memory-v3-gate.ts +16 -20
  140. package/src/config/platform-rehydration.ts +21 -75
  141. package/src/config/schema.ts +2 -2
  142. package/src/config/schemas/__tests__/live-voice.test.ts +158 -8
  143. package/src/config/schemas/calls.ts +28 -1
  144. package/src/config/schemas/live-voice.ts +173 -1
  145. package/src/config/schemas/mcp.ts +1 -1
  146. package/src/config/schemas/memory-retrospective.ts +0 -10
  147. package/src/config/schemas/skills.ts +14 -0
  148. package/src/credential-execution/process-manager.test.ts +19 -18
  149. package/src/daemon/__tests__/conversation-tool-setup.test.ts +121 -66
  150. package/src/daemon/__tests__/plugin-mcp-reconcile.test.ts +1 -4
  151. package/src/daemon/app-source-watcher.ts +218 -0
  152. package/src/daemon/config-watcher.ts +194 -13
  153. package/src/daemon/conversation-process.ts +64 -35
  154. package/src/daemon/conversation-skill-tools.ts +31 -13
  155. package/src/daemon/conversation-store.ts +1 -1
  156. package/src/daemon/conversation-surfaces.ts +8 -10
  157. package/src/daemon/conversation-tool-setup.ts +43 -37
  158. package/src/daemon/conversation.ts +3 -0
  159. package/src/daemon/host-bash-proxy.ts +12 -8
  160. package/src/daemon/host-browser-proxy.ts +1 -15
  161. package/src/daemon/host-file-proxy.ts +10 -8
  162. package/src/daemon/host-transfer-proxy.ts +18 -14
  163. package/src/daemon/lifecycle.ts +5 -0
  164. package/src/daemon/mcp-reload-service.ts +5 -5
  165. package/src/daemon/message-types/sync.ts +0 -1
  166. package/src/daemon/providers-setup.ts +1 -1
  167. package/src/daemon/shutdown-handlers.ts +9 -1
  168. package/src/daemon/skill-memory-refresh.ts +0 -64
  169. package/src/daemon/tool-side-effects.ts +18 -7
  170. package/src/hooks/types.ts +0 -33
  171. package/src/inbound/platform-callback-registration.ts +5 -4
  172. package/src/live-voice/__tests__/live-voice-metrics.test.ts +3 -0
  173. package/src/live-voice/__tests__/live-voice-progress.test.ts +15 -15
  174. package/src/live-voice/__tests__/live-voice-vad.test.ts +2 -2
  175. package/src/{calls → live-voice}/__tests__/progress-narration.test.ts +4 -4
  176. package/src/{calls → live-voice}/__tests__/progress-phrases.test.ts +1 -1
  177. package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +69 -13
  178. package/src/live-voice/live-voice-session.ts +693 -213
  179. package/src/{calls → live-voice}/progress-narration.ts +2 -2
  180. package/src/live-voice/protocol.ts +2 -0
  181. package/src/mcp/__tests__/effective-config.test.ts +2 -2
  182. package/src/mcp/effective-config.ts +3 -3
  183. package/src/mcp/mcp-header-store.ts +45 -29
  184. package/src/mcp/startup.ts +4 -8
  185. package/src/messaging/provider.ts +3 -10
  186. package/src/messaging/providers/callback-routing.ts +0 -18
  187. package/src/messaging/providers/channel-transport.ts +0 -56
  188. package/src/messaging/providers/discord/transport.ts +0 -17
  189. package/src/messaging/providers/slack/__tests__/adapter-token-routing.test.ts +17 -6
  190. package/src/messaging/providers/slack/adapter.ts +44 -7
  191. package/src/messaging/providers/slack/transport.ts +0 -16
  192. package/src/messaging/providers/telegram-bot/adapter.ts +48 -1
  193. package/src/messaging/providers/telegram-bot/client.ts +26 -0
  194. package/src/messaging/providers/telegram-bot/transport.ts +0 -20
  195. package/src/messaging/providers/whatsapp/adapter.ts +48 -1
  196. package/src/messaging/providers/whatsapp/client.ts +29 -0
  197. package/src/messaging/providers/whatsapp/transport.ts +0 -18
  198. package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +0 -8
  199. package/src/notifications/__tests__/assistant-reply-producer.test.ts +0 -55
  200. package/src/notifications/__tests__/home-feed-side-effect.test.ts +3 -153
  201. package/src/notifications/assistant-reply-producer.ts +3 -8
  202. package/src/notifications/conversation-pairing.ts +16 -36
  203. package/src/notifications/delivered-post-record.ts +1 -11
  204. package/src/notifications/home-feed-side-effect.ts +7 -55
  205. package/src/outbound-proxy/certs.ts +5 -3
  206. package/src/permissions/checker.test.ts +6 -11
  207. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  208. package/src/persistence/conversation-crud.ts +63 -71
  209. package/src/persistence/conversation-lineage.ts +4 -12
  210. package/src/persistence/conversation-title-service.ts +26 -9
  211. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  212. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  213. package/src/persistence/message-reads.ts +0 -30
  214. package/src/persistence/migrations/157-invite-contact-id.ts +6 -18
  215. package/src/persistence/schema/memory-core.ts +0 -5
  216. package/src/platform/client.test.ts +0 -2
  217. package/src/platform/client.ts +10 -2
  218. package/src/plugin-api/constants.ts +0 -2
  219. package/src/plugin-api/index.ts +0 -1
  220. package/src/plugin-api/types.ts +0 -2
  221. package/src/plugins/defaults/index.ts +0 -2
  222. package/src/plugins/defaults/memory/__tests__/memory-retrospective-accounting.test.ts +0 -46
  223. package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +5 -9
  224. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +10 -20
  225. package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +0 -219
  226. package/src/plugins/defaults/memory/__tests__/memory-retrospective-sweep.test.ts +0 -31
  227. package/src/plugins/defaults/memory/__tests__/memory-retrospective-trigger-check.test.ts +0 -63
  228. package/src/plugins/defaults/memory/__tests__/shutdown-hook.test.ts +0 -4
  229. package/src/plugins/defaults/memory/graph/capability-seed.ts +6 -4
  230. package/src/plugins/defaults/memory/hooks/init.ts +0 -10
  231. package/src/plugins/defaults/memory/hooks/shutdown.ts +0 -2
  232. package/src/plugins/defaults/memory/jobs-worker.ts +0 -13
  233. package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +60 -34
  234. package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +5 -3
  235. package/src/plugins/defaults/memory/memory-retrospective-job.ts +3 -12
  236. package/src/plugins/defaults/memory/memory-retrospective-state.ts +71 -312
  237. package/src/plugins/defaults/memory/memory-retrospective-sweep.ts +1 -2
  238. package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +3 -5
  239. package/src/plugins/defaults/memory/startup.ts +1 -6
  240. package/src/plugins/defaults/memory/substrate/__tests__/skill-content.test.ts +9 -7
  241. package/src/plugins/defaults/memory/substrate/skill-content.ts +2 -2
  242. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +0 -89
  243. package/src/plugins/defaults/memory/worker.ts +0 -6
  244. package/src/plugins/mcp-servers.ts +75 -15
  245. package/src/providers/__tests__/connection-model-compat.test.ts +3 -3
  246. package/src/providers/gemini/client.ts +23 -9
  247. package/src/providers/model-catalog.ts +0 -34
  248. package/src/providers/model-intents.ts +5 -10
  249. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +18 -146
  250. package/src/providers/openai/__tests__/tool-choice-mapping.test.ts +1 -83
  251. package/src/providers/openai/chat-completions-provider.ts +78 -192
  252. package/src/providers/openai/codex-models.ts +4 -0
  253. package/src/runtime/AGENTS.md +0 -2
  254. package/src/runtime/auth/same-actor.ts +3 -38
  255. package/src/runtime/http-server.ts +151 -160
  256. package/src/runtime/routes/__tests__/acp-routes.test.ts +4 -159
  257. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +1 -108
  258. package/src/runtime/routes/__tests__/mcp-add-default-risk.test.ts +12 -16
  259. package/src/runtime/routes/acp-routes.test.ts +0 -15
  260. package/src/runtime/routes/acp-routes.ts +9 -72
  261. package/src/runtime/routes/app-management-routes.ts +0 -73
  262. package/src/runtime/routes/app-routes.ts +1 -1
  263. package/src/runtime/routes/conversation-list-routes.ts +3 -14
  264. package/src/runtime/routes/conversation-query-routes.ts +0 -40
  265. package/src/runtime/routes/credential-routes.ts +10 -19
  266. package/src/runtime/routes/diagnostics-routes.ts +3 -55
  267. package/src/runtime/routes/index.ts +0 -4
  268. package/src/runtime/routes/log-export-routes.ts +0 -2
  269. package/src/runtime/routes/mcp-auth-routes.ts +47 -39
  270. package/src/runtime/routes/migration-routes.ts +21 -8
  271. package/src/runtime/routes/platform-routes.ts +15 -18
  272. package/src/runtime/services/__tests__/conversation-serializer.test.ts +0 -28
  273. package/src/runtime/services/conversation-serializer.ts +3 -16
  274. package/src/runtime/sync/resource-sync-events.ts +1 -2
  275. package/src/schedule/worker.ts +1 -1
  276. package/src/security/ces-rpc-record-backend.ts +0 -7
  277. package/src/subagent/consult-context.ts +25 -12
  278. package/src/tools/acp/list-agents.test.ts +1 -3
  279. package/src/tools/acp/spawn.test.ts +11 -146
  280. package/src/tools/acp/spawn.ts +3 -21
  281. package/src/tools/acp/status.ts +3 -40
  282. package/src/tools/app-control/skill-proxy-bridge.ts +1 -2
  283. package/src/tools/capability-offer.test.ts +2 -22
  284. package/src/tools/capability-offer.ts +1 -16
  285. package/src/tools/computer-use/definitions.ts +2 -4
  286. package/src/tools/computer-use/skill-proxy-bridge.ts +1 -2
  287. package/src/tools/credentials/metadata-store.ts +0 -100
  288. package/src/tools/host-filesystem/edit.test.ts +1 -2
  289. package/src/tools/host-filesystem/edit.ts +2 -2
  290. package/src/tools/host-filesystem/read.test.ts +1 -2
  291. package/src/tools/host-filesystem/read.ts +2 -2
  292. package/src/tools/host-filesystem/transfer.test.ts +1 -2
  293. package/src/tools/host-filesystem/transfer.ts +2 -2
  294. package/src/tools/host-filesystem/write.test.ts +1 -2
  295. package/src/tools/host-filesystem/write.ts +2 -2
  296. package/src/tools/host-terminal/host-shell.test.ts +0 -16
  297. package/src/tools/host-terminal/host-shell.ts +20 -4
  298. package/src/tools/policy-context.ts +7 -6
  299. package/src/tools/subagent/spawn.ts +8 -5
  300. package/src/tools/watch/watch-retro-report.ts +8 -0
  301. package/src/util/__tests__/language-subtag.test.ts +1 -23
  302. package/src/util/fs-watcher-error.ts +36 -0
  303. package/src/util/language-subtag.ts +0 -16
  304. package/src/util/platform.ts +0 -8
  305. package/src/workspace/git-service.ts +54 -5
  306. package/src/workspace/migrations/registry.ts +0 -6
  307. package/scripts/smoke-desktop-window-theme.ts +0 -186
  308. package/src/__tests__/git-porcelain.test.ts +0 -47
  309. package/src/__tests__/helpers/set-workspace-mcp.ts +0 -11
  310. package/src/__tests__/message-deleted-hook-dispatch.test.ts +0 -119
  311. package/src/__tests__/resolve-app.test.ts +0 -135
  312. package/src/__tests__/source-fingerprint.test.ts +0 -184
  313. package/src/__tests__/workspace-migration-154-repair-retired-codex-gpt-5-4-model-ids.test.ts +0 -336
  314. package/src/acp/__tests__/helpers/acp-model-option.ts +0 -51
  315. package/src/acp/model-config.test.ts +0 -166
  316. package/src/acp/model-config.ts +0 -138
  317. package/src/api/events/acp-session-model-update.test.ts +0 -88
  318. package/src/api/events/acp-session-model-update.ts +0 -46
  319. package/src/apps/resolve-app.ts +0 -81
  320. package/src/apps/source-fingerprint.ts +0 -266
  321. package/src/calls/__tests__/barge-in-guard.test.ts +0 -81
  322. package/src/calls/__tests__/voice-leg-coordinator.test.ts +0 -229
  323. package/src/calls/__tests__/voice-progress-cadence.test.ts +0 -274
  324. package/src/calls/barge-in-guard.ts +0 -118
  325. package/src/calls/voice-leg-coordinator.ts +0 -189
  326. package/src/calls/voice-progress-cadence.ts +0 -423
  327. package/src/cli/commands/__tests__/apps.test.ts +0 -245
  328. package/src/cli/commands/__tests__/roadmap.help.test.ts +0 -19
  329. package/src/cli/commands/channels/__tests__/send.test.ts +0 -218
  330. package/src/cli/commands/channels/send.ts +0 -128
  331. package/src/config/__tests__/platform-identity.test.ts +0 -117
  332. package/src/config/acp-agent-write.ts +0 -43
  333. package/src/config/acp-schema.test.ts +0 -81
  334. package/src/config/platform-identity.ts +0 -144
  335. package/src/config/schemas/__tests__/voice.test.ts +0 -148
  336. package/src/config/schemas/voice.ts +0 -150
  337. package/src/daemon/__tests__/skill-memory-refresh-mtime.test.ts +0 -133
  338. package/src/daemon/app-change-notify.ts +0 -45
  339. package/src/desktop/__tests__/fake-desktop.ts +0 -119
  340. package/src/desktop/desktop-chrome-policy.test.ts +0 -71
  341. package/src/desktop/desktop-chrome-policy.ts +0 -42
  342. package/src/desktop/desktop-dependencies.test.ts +0 -102
  343. package/src/desktop/desktop-dependencies.ts +0 -306
  344. package/src/desktop/desktop-feature.test.ts +0 -18
  345. package/src/desktop/desktop-feature.ts +0 -19
  346. package/src/desktop/desktop-panel-config.test.ts +0 -135
  347. package/src/desktop/desktop-panel-config.ts +0 -149
  348. package/src/desktop/desktop-session-manager.test.ts +0 -627
  349. package/src/desktop/desktop-session-manager.ts +0 -814
  350. package/src/desktop/desktop-stream-bridge.test.ts +0 -395
  351. package/src/desktop/desktop-stream-bridge.ts +0 -214
  352. package/src/desktop/desktop-wallpaper.test.ts +0 -191
  353. package/src/desktop/desktop-wallpaper.ts +0 -113
  354. package/src/desktop/desktop-window-theme.ts +0 -170
  355. package/src/i18n/AGENTS.md +0 -22
  356. package/src/i18n/__tests__/i18n.test.ts +0 -108
  357. package/src/i18n/index.ts +0 -16
  358. package/src/i18n/locales.ts +0 -93
  359. package/src/i18n/messages.ts +0 -61
  360. package/src/i18n/title.ts +0 -25
  361. package/src/mcp/__tests__/workspace-mcp-config.test.ts +0 -135
  362. package/src/mcp/spec-schema.ts +0 -111
  363. package/src/mcp/workspace-mcp-config.ts +0 -188
  364. package/src/messaging/providers/__tests__/proactive-address.test.ts +0 -95
  365. package/src/persistence/conversation-title-placeholders.ts +0 -23
  366. package/src/persistence/message-cursor.ts +0 -78
  367. package/src/persistence/migrations/__tests__/157-invite-contact-id.test.ts +0 -149
  368. package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-backfill.test.ts +0 -118
  369. package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-preserve.test.ts +0 -83
  370. package/src/plugins/defaults/memory/hooks/message-deleted.ts +0 -21
  371. package/src/plugins/defaults/memory/memory-retrospective-cursor-backfill.ts +0 -126
  372. package/src/plugins/defaults/memory/memory-retrospective-cursor-preserve.ts +0 -79
  373. package/src/plugins/defaults/memory/memory-retrospective-cursor.ts +0 -28
  374. package/src/plugins/defaults/memory/skill-md-mtime-poll.ts +0 -9
  375. package/src/providers/gemini-thought-signature.test.ts +0 -63
  376. package/src/providers/gemini-thought-signature.ts +0 -44
  377. package/src/providers/openai/__tests__/chat-completions-provider-thought-signature.test.ts +0 -613
  378. package/src/providers/openai/__tests__/google-thought-signature.test.ts +0 -235
  379. package/src/providers/openai/google-thought-signature.ts +0 -320
  380. package/src/runtime/__tests__/channel-send.test.ts +0 -443
  381. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +0 -89
  382. package/src/runtime/__tests__/live-voice-upgrade.test.ts +0 -58
  383. package/src/runtime/__tests__/runtime-ws-test-utils.ts +0 -72
  384. package/src/runtime/__tests__/watch-stream-upgrade.test.ts +0 -59
  385. package/src/runtime/channel-send.ts +0 -316
  386. package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +0 -205
  387. package/src/runtime/routes/__tests__/channel-send-routes.test.ts +0 -127
  388. package/src/runtime/routes/__tests__/dictation-cleanup-guard.test.ts +0 -107
  389. package/src/runtime/routes/channel-send-routes.ts +0 -85
  390. package/src/runtime/routes/desktop-setup-routes.test.ts +0 -74
  391. package/src/runtime/routes/desktop-setup-routes.ts +0 -35
  392. package/src/security/__tests__/ces-http-record-backend.test.ts +0 -137
  393. package/src/security/ces-http-record-backend.ts +0 -120
  394. package/src/skills/__tests__/workspace-skill-md-signature.test.ts +0 -60
  395. package/src/skills/workspace-skill-md-signature.ts +0 -50
  396. package/src/tools/acp/status.test.ts +0 -94
  397. package/src/util/ca-bundle.ts +0 -13
  398. package/src/workspace/git-porcelain.ts +0 -66
  399. package/src/workspace/migrations/154-repair-retired-codex-gpt-5-4-model-ids.ts +0 -258
  400. package/src/workspace/migrations/155-move-front-model-config-to-voice.ts +0 -78
  401. package/src/workspace/migrations/156-extract-workspace-mcp-json.ts +0 -214
  402. package/src/workspace/migrations/__tests__/155-move-front-model-config-to-voice.test.ts +0 -102
  403. package/src/workspace/migrations/__tests__/156-extract-workspace-mcp-json.test.ts +0 -199
  404. /package/src/{calls → live-voice}/progress-phrases.ts +0 -0
@@ -4,30 +4,25 @@ import type { CliCommandHelp } from "../lib/cli-command-help.js";
4
4
 
5
5
  export const appsHelp: CliCommandHelp = {
6
6
  name: "apps",
7
- description: "List, inspect, and compile apps",
7
+ description: "Inspect apps and their on-disk source",
8
8
  helpText: `
9
9
  Apps are mini-applications the assistant can surface. Each has a name and a
10
10
  source directory holding its HTML/TSX definition, pages, and records.
11
11
 
12
12
  Apps come from two places, distinguished by their source path:
13
- workspace User-created apps under the workspace apps directory.
13
+ workspace User-created apps under the workspace apps directory
14
+ (~/.vellum/apps/<slug>/).
14
15
  plugin Apps bundled by an installed plugin, each a directory under
15
- the plugin's apps/ folder. Stray directories without a plugin
16
- package.json, and disabled plugins, contribute nothing.
16
+ ~/.vellum/plugins/<name>/apps/<app>/. Stray directories without
17
+ a plugin package.json, and disabled plugins, contribute nothing.
17
18
 
18
- Create and delete workspace apps through the app-builder skill and its tools
19
- (app_create, app_delete). This command lists apps, inspects whether source
20
- has changed since the last compile, and compiles an app once you are done
21
- editing. File edits do not compile on their own.
22
-
23
- list and inspect read the workspace directly (the assistant does not need to
24
- be running). refresh compiles inside the running assistant so open surfaces
25
- pick up the new build, including plugin apps with local source changes.
19
+ This surface is read-only. Workspace apps are created, edited, and deleted
20
+ through the app-builder skill and its tools (app-create, app-update,
21
+ app-delete); plugin apps are owned by their plugin.
26
22
 
27
23
  Examples:
28
24
  $ assistant apps list
29
- $ assistant apps inspect Budget
30
- $ assistant apps refresh Budget`,
25
+ $ assistant apps list --json`,
31
26
  subcommands: [
32
27
  {
33
28
  name: "list",
@@ -36,10 +31,10 @@ Examples:
36
31
  { flags: "--json", description: "Machine-readable JSON output" },
37
32
  ],
38
33
  helpText: `
39
- Lists every app with its name and the absolute path to its source directory.
40
- The path itself shows whether the app is a workspace app or bundled by a
41
- plugin. Workspace apps are listed first, then plugin-bundled apps; both are
42
- sorted by name.
34
+ Lists every app with its name and the absolute path to its source directory —
35
+ the path itself shows whether the app is a workspace app or bundled by a plugin
36
+ (~/.vellum/plugins/<name>/apps/...). Workspace apps are listed first, then
37
+ plugin-bundled apps; both are sorted by name.
43
38
 
44
39
  Pass --json for machine-readable output.
45
40
 
@@ -47,54 +42,5 @@ Examples:
47
42
  $ assistant apps list
48
43
  $ assistant apps list --json`,
49
44
  },
50
- {
51
- name: "inspect",
52
- args: "<app_name>",
53
- description:
54
- "Show whether an app's source has changed since the last compile",
55
- options: [
56
- { flags: "--json", description: "Machine-readable JSON output" },
57
- ],
58
- helpText: `
59
- Arguments:
60
- app_name App display name, directory slug, or id. Run 'assistant apps list'
61
- to see available apps.
62
-
63
- Compares the on-disk source against the fingerprint recorded in dist/ at the
64
- last successful compile. Reports clean (no changes), stale (source drifted),
65
- never compiled, or unknown baseline (compiled before fingerprints existed).
66
-
67
- Does not compile. Use 'assistant apps refresh <app_name>' after inspect when
68
- source has changed.
69
-
70
- Examples:
71
- $ assistant apps inspect Budget
72
- $ assistant apps inspect Budget --json`,
73
- },
74
- {
75
- name: "refresh",
76
- args: "<app_name>",
77
- description:
78
- "Compile an app and refresh open surfaces. Requires a running assistant",
79
- options: [
80
- { flags: "--json", description: "Machine-readable JSON output" },
81
- ],
82
- helpText: `
83
- Arguments:
84
- app_name App display name, directory slug, or id. Run 'assistant apps list'
85
- to see available apps.
86
-
87
- Compiles src/ into dist/ inside the running assistant, then refreshes any
88
- open surfaces and published deployments. Call this once after a batch of
89
- edits, not after every file write. Workspace and plugin apps are both
90
- accepted so local plugin source changes can be compiled without waiting
91
- for the plugin watcher.
92
-
93
- The assistant must be running.
94
-
95
- Examples:
96
- $ assistant apps refresh Budget
97
- $ assistant apps refresh Budget --json`,
98
- },
99
45
  ],
100
46
  };
@@ -1,13 +1,8 @@
1
1
  import type { Command } from "commander";
2
2
 
3
- import {
4
- cliIpcCall,
5
- exitCodeFromIpcResult,
6
- } from "../../ipc/cli-client.js";
7
3
  import { applyCommandHelp, subcommand } from "../lib/cli-command-help.js";
8
4
  import { registerCommand } from "../lib/register-command.js";
9
5
  import { log } from "../logger.js";
10
- import { shouldOutputJson, writeError, writeOutput } from "../output.js";
11
6
  import { appsHelp } from "./apps.help.js";
12
7
 
13
8
  interface AppListEntry {
@@ -15,36 +10,6 @@ interface AppListEntry {
15
10
  source: string;
16
11
  }
17
12
 
18
- interface AppsRefreshResponse {
19
- ok: true;
20
- appId: string;
21
- name: string;
22
- compiled: boolean;
23
- compile_duration_ms: number;
24
- compile_errors?: Array<{
25
- text: string;
26
- location?: { file: string; line: number; column: number };
27
- }>;
28
- compile_warnings?: Array<{
29
- text: string;
30
- location?: { file: string; line: number; column: number };
31
- }>;
32
- }
33
-
34
- function refreshHint(appId: string): string {
35
- return `Run 'assistant apps refresh ${appId}' to compile.`;
36
- }
37
-
38
- function formatDiagnostic(diag: {
39
- text: string;
40
- location?: { file: string; line: number; column: number };
41
- }): string {
42
- if (!diag.location) {
43
- return diag.text;
44
- }
45
- return `${diag.location.file}:${diag.location.line}: ${diag.text}`;
46
- }
47
-
48
13
  export function registerAppsCommand(program: Command): void {
49
14
  registerCommand(program, {
50
15
  name: appsHelp.name,
@@ -81,154 +46,6 @@ export function registerAppsCommand(program: Command): void {
81
46
  log.info(` ${e.name.padEnd(nameWidth)} ${e.source}`);
82
47
  }
83
48
  });
84
-
85
- subcommand(apps, "inspect").action(
86
- async (appName: string, opts: { json?: boolean }, cmd: Command) => {
87
- const { resolveAppQuery, appNotFoundMessage, appAmbiguousMessage } =
88
- await import("../../apps/resolve-app.js");
89
- const { inspectAppSource } = await import(
90
- "../../apps/source-fingerprint.js"
91
- );
92
-
93
- const resolved = resolveAppQuery(appName);
94
- if (!resolved.ok) {
95
- const message =
96
- resolved.reason === "ambiguous"
97
- ? appAmbiguousMessage(resolved.query, resolved.matches)
98
- : appNotFoundMessage(resolved.query);
99
- writeError(cmd, message);
100
- process.exitCode = 1;
101
- return;
102
- }
103
-
104
- const { app } = resolved;
105
- const inspect = inspectAppSource(app.sourcePath);
106
- const origin =
107
- app.origin.kind === "plugin"
108
- ? { kind: "plugin" as const, plugin: app.origin.pluginName }
109
- : { kind: "workspace" as const };
110
-
111
- if (opts.json || shouldOutputJson(cmd)) {
112
- writeOutput(cmd, {
113
- ok: true,
114
- app: {
115
- id: app.id,
116
- name: app.name,
117
- source: app.sourcePath,
118
- origin,
119
- },
120
- compile: inspect,
121
- });
122
- return;
123
- }
124
-
125
- const originLabel =
126
- origin.kind === "plugin"
127
- ? `plugin ${origin.plugin}`
128
- : "workspace";
129
- log.info(`App: ${app.name} (${originLabel})`);
130
- log.info(`Id: ${app.id}`);
131
- log.info(`Source: ${app.sourcePath}`);
132
-
133
- if (inspect.status === "clean") {
134
- const when = inspect.compiledAt
135
- ? ` (compiled ${inspect.compiledAt})`
136
- : "";
137
- log.info(`Compile: up to date${when}`);
138
- return;
139
- }
140
- if (inspect.status === "never_compiled") {
141
- log.info("Compile: never compiled");
142
- log.info(refreshHint(app.id));
143
- return;
144
- }
145
- if (inspect.status === "unknown_baseline") {
146
- log.info(
147
- "Compile: compiled, but no source fingerprint is recorded.",
148
- );
149
- log.info(
150
- `Run 'assistant apps refresh ${app.id}' to record one and rebuild.`,
151
- );
152
- return;
153
- }
154
-
155
- const when = inspect.compiledAt
156
- ? ` (last compiled ${inspect.compiledAt})`
157
- : "";
158
- log.info(`Compile: source changed since last compile${when}`);
159
- if (inspect.modified.length > 0) {
160
- log.info("Modified:");
161
- for (const path of inspect.modified) {
162
- log.info(` ${path}`);
163
- }
164
- }
165
- if (inspect.added.length > 0) {
166
- log.info("Added:");
167
- for (const path of inspect.added) {
168
- log.info(` ${path}`);
169
- }
170
- }
171
- if (inspect.removed.length > 0) {
172
- log.info("Removed:");
173
- for (const path of inspect.removed) {
174
- log.info(` ${path}`);
175
- }
176
- }
177
- log.info(refreshHint(app.id));
178
- },
179
- );
180
-
181
- subcommand(apps, "refresh").action(
182
- async (appName: string, opts: { json?: boolean }, cmd: Command) => {
183
- const { resolveAppQuery, appNotFoundMessage, appAmbiguousMessage } =
184
- await import("../../apps/resolve-app.js");
185
-
186
- const resolved = resolveAppQuery(appName);
187
- if (!resolved.ok) {
188
- const message =
189
- resolved.reason === "ambiguous"
190
- ? appAmbiguousMessage(resolved.query, resolved.matches)
191
- : appNotFoundMessage(resolved.query);
192
- writeError(cmd, message);
193
- process.exitCode = 1;
194
- return;
195
- }
196
-
197
- const result = await cliIpcCall<AppsRefreshResponse>("apps_refresh", {
198
- pathParams: { id: resolved.app.id },
199
- });
200
-
201
- if (!result.ok || !result.result) {
202
- writeError(cmd, result.error ?? "Refresh failed");
203
- process.exitCode = exitCodeFromIpcResult(result);
204
- return;
205
- }
206
-
207
- const payload = result.result;
208
- if (opts.json || shouldOutputJson(cmd)) {
209
- writeOutput(cmd, payload);
210
- if (!payload.compiled) {
211
- process.exitCode = 1;
212
- }
213
- return;
214
- }
215
-
216
- if (!payload.compiled) {
217
- log.error(
218
- `Compile failed for "${payload.name}" (${payload.compile_duration_ms}ms).`,
219
- );
220
- for (const diag of payload.compile_errors ?? []) {
221
- log.error(` ${formatDiagnostic(diag)}`);
222
- }
223
- process.exitCode = 1;
224
- return;
225
- }
226
-
227
- log.info(
228
- `Compiled "${payload.name}" in ${payload.compile_duration_ms}ms.`,
229
- );
230
- },
231
- );
232
49
  },
233
50
  });
234
51
  }
@@ -36,14 +36,9 @@ assistant's own bot on that channel (${BOT_CHANNELS}), resolving the bot
36
36
  credential from the channel id so no token is handled. Acting as a person
37
37
  through their OAuth integration is 'assistant oauth request'.
38
38
 
39
- To say something in a chat, use 'send' rather than 'request': it goes
40
- through the channel's transport, so the post is threaded and rendered like
41
- every other message the assistant sends there, and it is recorded.
42
-
43
39
  Examples:
44
40
  $ assistant channels list
45
41
  $ assistant channels get slack
46
- $ assistant channels send slack C0123456789 --text 'deploy is green'
47
42
  $ assistant channels request slack /auth.test --json
48
43
  $ assistant channels request slack -X POST \\
49
44
  -d '{"channel":"D0123456789","limit":20}' /conversations.history --json`,
@@ -70,9 +65,8 @@ This command can do anything the bot's API allows, including sending,
70
65
  editing, deleting, uploading, and reacting, so it is classified high risk
71
66
  and asks for approval like any action with irreversible effects. Reads are
72
67
  not distinguished from writes: the effect is the endpoint's. To send a
73
- message, use 'assistant channels send', which posts through the channel's
74
- transport and records what it sent; a message posted through this command
75
- reaches the platform directly and leaves no record of what was said.
68
+ message, use the messaging tool, which records what it sent; do not post
69
+ through this command.
76
70
 
77
71
  Arguments:
78
72
  <channel> One of: ${BOT_CHANNELS}. A channel with no bot credential of
@@ -92,68 +86,6 @@ Examples:
92
86
  $ assistant channels request slack -X POST \\
93
87
  -d '{"channel":"D0123456789","limit":100}' /conversations.history --json
94
88
  $ assistant channels request discord /users/@me --json`,
95
- },
96
- {
97
- name: "send",
98
- description:
99
- "Post text to a chat on the channel, as the assistant's bot, recorded",
100
- arguments: [
101
- {
102
- name: "<channel>",
103
- description: `Channel to post on. One with a transport that can be addressed from a named chat; anything else is refused before the send.`,
104
- },
105
- {
106
- name: "<chat-id>",
107
- description:
108
- "The chat in the channel's own id space (a Slack channel or DM id, a Telegram chat id, a Discord channel id, a WhatsApp number).",
109
- },
110
- ],
111
- options: [
112
- {
113
- flags: "--text <text>",
114
- description: "The message text. Required.",
115
- },
116
- {
117
- flags: "--thread <id>",
118
- description:
119
- "Post inside this thread or topic, in the channel's own id space. Omit to post to the chat itself.",
120
- },
121
- {
122
- flags: "--plain",
123
- description:
124
- "Send the text verbatim instead of the channel's rich rendering.",
125
- },
126
- {
127
- flags: "--json",
128
- description: "Machine-readable compact JSON output",
129
- },
130
- ],
131
- helpText: `
132
- Posts one message through the channel's own transport, the same path a
133
- reply takes. Once the channel acknowledges it, the daemon records it in
134
- the chat's conversation, which is what lets the assistant see later what
135
- it said here and lets a reaction or an edit naming that post resolve back
136
- to it. Recording is best effort and never fails a send that already went
137
- out, so the result names the conversation only when the record was
138
- written.
139
-
140
- This sends a message people will read, so it is classified high risk and
141
- asks for approval like any other action with effects nobody can take back.
142
-
143
- The send fails, and records nothing, when the channel does not acknowledge
144
- it or names no message id for it. A channel the assistant cannot address
145
- from a named chat is refused before anything is sent. If the daemon does
146
- not answer in time, the message may still go out: that is reported as an
147
- unknown outcome rather than a failure, so check the chat before sending
148
- again.
149
-
150
- Attachments are not sent from here.
151
-
152
- Examples:
153
- $ assistant channels send slack C0123456789 --text 'deploy is green'
154
- $ assistant channels send slack C0123456789 --thread 1700000000.000100 \
155
- --text 'and the smoke tests passed'
156
- $ assistant channels send telegram 123456789 --text 'morning' --json`,
157
89
  },
158
90
  {
159
91
  name: "list",
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * `assistant channels`: inspect messaging channels, and act as their bots.
3
3
  *
4
- * list : overview of every channel + ready state
5
- * get <channel> : detailed live snapshot of a single channel
6
- * request <channel> <url> : call the channel's platform API as its bot
7
- * send <channel> <chat-id> : post text to a chat, recorded
4
+ * list : overview of every channel + ready state
5
+ * get <channel> : detailed live snapshot of a single channel
6
+ * request <channel> <url> : call the channel's platform API as its bot
8
7
  *
9
8
  * `get` always re-runs remote probes (it invalidates the readiness cache
10
9
  * before reading), so the CLI answer matches the live source-of-truth.
@@ -13,11 +12,6 @@
13
12
  * channel's bot credential and makes the same authenticated request
14
13
  * `oauth request` makes, without the caller naming a provider.
15
14
  *
16
- * `send` is the send door (see ./send.ts): it runs the daemon's one send
17
- * implementation for the channel, so the post is threaded, rendered, and
18
- * recorded like every other message the assistant sends there. Posting
19
- * through `request` instead reaches the platform API and leaves no record.
20
- *
21
15
  * A mutating `refresh` verb (for reconnecting channels, e.g. supplying
22
16
  * fresh Slack tokens) is intentionally not part of this group.
23
17
  */
@@ -32,7 +26,6 @@ import { log } from "../../logger.js";
32
26
  import { shouldOutputJson, writeOutput } from "../../output.js";
33
27
  import { CHANNELS_PLUGIN_SEARCH_HINT, channelsHelp } from "./index.help.js";
34
28
  import { registerChannelsRequestCommand } from "./request.js";
35
- import { registerChannelsSendCommand } from "./send.js";
36
29
 
37
30
  // ---------------------------------------------------------------------------
38
31
  // Snapshot shape
@@ -218,12 +211,6 @@ export function registerChannelsCommand(program: Command): void {
218
211
  // -----------------------------------------------------------------------
219
212
 
220
213
  registerChannelsRequestCommand(channels);
221
-
222
- // -----------------------------------------------------------------------
223
- // send: post text to a chat, through the channel's transport
224
- // -----------------------------------------------------------------------
225
-
226
- registerChannelsSendCommand(channels);
227
214
  },
228
215
  });
229
216
  }
@@ -45,12 +45,8 @@ Examples:
45
45
  },
46
46
  ],
47
47
  helpText: `
48
- Lists credentials from the live credential vault. Each entry includes the same
49
- fields as inspect: scrubbed value, timestamps, policy, and metadata.
50
-
51
- Fails immediately with an error if the credential vault is unreachable. An
52
- empty list means the vault answered and has no matching credentials, not that
53
- the store is down.
48
+ Lists all credentials in the vault. Each entry includes the same fields as
49
+ "inspect" — scrubbed value, timestamps, policy, and metadata.
54
50
 
55
51
  The --search flag filters results by case-insensitive substring match against
56
52
  the credential's service name, field name, label, or description. For example, --search
@@ -343,8 +343,8 @@ export function registerCredentialsCommand(program: Command): void {
343
343
  } else {
344
344
  printCredentialHuman(output);
345
345
  if (output.brokerUnreachable) {
346
- log.warn(
347
- " Credential store is unreachable. Retry in a moment, or check that the credential vault is running.",
346
+ log.info(
347
+ " ⚠ Credential store is unreachable — ensure the assistant is running",
348
348
  );
349
349
  }
350
350
  }
@@ -7,8 +7,8 @@ export const mcpHelp: CliCommandHelp = {
7
7
  description: "Manage MCP (Model Context Protocol) servers",
8
8
  helpText: `
9
9
  MCP servers extend the assistant's capabilities with external tools. Servers
10
- are configured in the assistant's mcp.json, or declared by an installed
11
- plugin in its root mcp.json. Each
10
+ are configured in the assistant's config.json under the mcp.servers key, or
11
+ declared by an installed plugin in its root mcp.json. Each
12
12
  server uses one of three transport types:
13
13
 
14
14
  stdio Local process communicating over stdin/stdout
@@ -30,8 +30,8 @@ Examples:
30
30
  options: [{ flags: "--json", description: "Output as JSON" }],
31
31
  helpText: `
32
32
  Shows each MCP server with its current status and configuration. Servers come
33
- from two places: the workspace mcp.json, and the root mcp.json of any
34
- installed plugin that declares one.
33
+ from two places: the mcp.servers key in config.json, and the root mcp.json of
34
+ any installed plugin that declares one.
35
35
 
36
36
  Name The server identifier
37
37
  Status Health check result for workspace servers:
@@ -43,7 +43,7 @@ installed plugin that declares one.
43
43
  health-checked, so no stored credential can reach a URL a
44
44
  plugin chose.
45
45
  Source Shown only for plugin-declared servers, naming the plugin.
46
- Servers from workspace mcp.json print no Source line.
46
+ Servers from config.json print no Source line.
47
47
  Transport stdio, sse, or streamable-http
48
48
  URL/Command The server URL (sse/streamable-http) or command (stdio)
49
49
 
@@ -64,7 +64,7 @@ on their next turn automatically. The assistant must be running.
64
64
 
65
65
  Examples:
66
66
  $ vellum mcp reload
67
- $ vellum mcp reload # after editing mcp.json to add a new server
67
+ $ vellum mcp reload # after editing config.json to add a new server
68
68
  $ vellum mcp reload # after running "vellum mcp auth <server>"`,
69
69
  },
70
70
  {
@@ -95,7 +95,7 @@ Examples:
95
95
  ],
96
96
  helpText: `
97
97
  Arguments:
98
- name Unique identifier for the server (used as the key in mcp.json)
98
+ name Unique identifier for the server (used as the key in config.json)
99
99
 
100
100
  Transport-specific requirements:
101
101
  stdio Requires --command (and optional --args for arguments)
@@ -149,7 +149,7 @@ Examples:
149
149
  Arguments:
150
150
  name Name of the MCP server to remove
151
151
 
152
- Removes the server entry from mcp.json and performs best-effort cleanup of
152
+ Removes the server entry from config.json and performs best-effort cleanup of
153
153
  any stored OAuth credentials (tokens, client info, discovery metadata) for
154
154
  sse/streamable-http servers. If no OAuth credentials exist, the cleanup is
155
155
  silently skipped.
@@ -20,7 +20,7 @@ interface McpServerEntry {
20
20
  command?: string;
21
21
  args?: string[];
22
22
  };
23
- /** Workspace `mcp.json` or a plugin's `mcp.json`. */
23
+ /** Workspace `config.json` or a plugin's `mcp.json`. */
24
24
  source?: "workspace" | "plugin";
25
25
  /** Plugin that declared the server, when `source` is `plugin`. */
26
26
  pluginName?: string;
@@ -4,12 +4,8 @@ import type { CliCommandHelp } from "../lib/cli-command-help.js";
4
4
 
5
5
  export const roadmapHelp: CliCommandHelp = {
6
6
  name: "roadmap",
7
- description:
8
- "Read and file public feature proposals as the assistant. For bugs and support, instruct the user to join the Discord community at https://vellum.ai/community",
7
+ description: "Read and file public Vellum roadmap feedback as the assistant",
9
8
  helpText: `
10
- Items created here must be public feature proposals. For bugs and support
11
- concerns, instruct the user to join the Discord community at https://vellum.ai/community.
12
-
13
9
  Items, upvotes, and comments filed here are attributed to the assistant, not
14
10
  to its owner: the assistant signs these calls with its own platform API key.
15
11
  The owner's own roadmap identity lives on \`vellum roadmap\`.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * `assistant roadmap`: read and file public feature proposals as the
2
+ * `assistant roadmap`: read and file public Vellum roadmap feedback as the
3
3
  * assistant itself.
4
4
  *
5
5
  * Forwards to the daemon's roadmap routes and renders the result. The