@vellumai/assistant 0.12.1-dev.202609141913.5e16607 → 0.12.1-staging.2

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 (439) 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/docs/guardian-request-flow.md +0 -16
  5. package/openapi.yaml +49 -291
  6. package/package.json +1 -1
  7. package/src/__tests__/always-loaded-tools-guard.test.ts +10 -18
  8. package/src/__tests__/app-compiler.test.ts +0 -6
  9. package/src/__tests__/app-control-tool-schemas.test.ts +2 -5
  10. package/src/__tests__/app-dir-path-guard.test.ts +3 -1
  11. package/src/__tests__/app-source-watcher.test.ts +218 -0
  12. package/src/{calls/__tests__ → __tests__}/call-controller.test.ts +82 -503
  13. package/src/__tests__/computer-use-skill-proxy-bridge.test.ts +2 -5
  14. package/src/__tests__/computer-use-tools.test.ts +5 -17
  15. package/src/__tests__/config-schema-cmd.test.ts +2 -2
  16. package/src/__tests__/config-schema.test.ts +29 -28
  17. package/src/__tests__/config-watcher-skill-reseed.test.ts +359 -0
  18. package/src/__tests__/config-watcher.test.ts +8 -23
  19. package/src/__tests__/connection-model-compat.test.ts +2 -2
  20. package/src/__tests__/conversation-key-store-disk-view.test.ts +1 -1
  21. package/src/__tests__/conversation-pairing.test.ts +0 -26
  22. package/src/__tests__/conversation-process-app-control-preactivation.test.ts +10 -4
  23. package/src/__tests__/conversation-queue.test.ts +207 -48
  24. package/src/__tests__/conversation-retry-discard.test.ts +1 -54
  25. package/src/__tests__/conversation-skill-tools.test.ts +0 -27
  26. package/src/__tests__/conversation-surfaces-app-control.test.ts +3 -8
  27. package/src/__tests__/conversation-surfaces-task-progress.test.ts +0 -67
  28. package/src/__tests__/conversation-title-service.test.ts +10 -14
  29. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +5 -3
  30. package/src/__tests__/conversation-tool-setup-attribution.test.ts +0 -51
  31. package/src/__tests__/credential-record-retire.test.ts +1 -171
  32. package/src/__tests__/credential-routes.test.ts +3 -212
  33. package/src/__tests__/credential-security-invariants.test.ts +2 -4
  34. package/src/__tests__/cu-unified-flow.test.ts +2 -8
  35. package/src/__tests__/document-sync-tags.test.ts +0 -25
  36. package/src/__tests__/drain-kick-guard.test.ts +2 -0
  37. package/src/__tests__/drain-requeue-on-contention.test.ts +6 -0
  38. package/src/__tests__/evict-conversations-for-reload.test.ts +1 -1
  39. package/src/__tests__/host-bash-proxy.test.ts +45 -26
  40. package/src/__tests__/host-browser-proxy.test.ts +17 -6
  41. package/src/__tests__/host-file-proxy-targeted.test.ts +0 -23
  42. package/src/__tests__/host-file-proxy.test.ts +23 -11
  43. package/src/__tests__/host-transfer-proxy-targeted.test.ts +9 -30
  44. package/src/__tests__/llm-catalog-parity.test.ts +0 -25
  45. package/src/__tests__/mcp-auth-routes.test.ts +9 -6
  46. package/src/__tests__/mcp-config-secret-boundary.test.ts +136 -78
  47. package/src/__tests__/mcp-health-check.test.ts +11 -8
  48. package/src/__tests__/mcp-list-plugin-servers.test.ts +10 -8
  49. package/src/{calls/__tests__ → __tests__}/media-stream-audio-transcode.test.ts +1 -1
  50. package/src/{calls/__tests__ → __tests__}/media-stream-output.test.ts +8 -37
  51. package/src/{calls/__tests__ → __tests__}/media-stream-parser.test.ts +1 -1
  52. package/src/{calls/__tests__ → __tests__}/media-stream-server-integration.test.ts +57 -150
  53. package/src/{calls/__tests__ → __tests__}/media-stream-stt-session.test.ts +5 -5
  54. package/src/{calls/__tests__ → __tests__}/media-turn-detector.test.ts +1 -1
  55. package/src/__tests__/messages-after-tiebreaker.test.ts +0 -91
  56. package/src/__tests__/messages-read-boundary-guard.test.ts +1 -1
  57. package/src/__tests__/messaging-send-tool.test.ts +548 -355
  58. package/src/__tests__/model-intents.test.ts +0 -3
  59. package/src/__tests__/notification-vellum-adapter.test.ts +2 -85
  60. package/src/__tests__/outlook-messaging-provider.test.ts +6 -6
  61. package/src/__tests__/platform-callback-registration.test.ts +16 -8
  62. package/src/__tests__/platform-client-verify-credential.test.ts +0 -2
  63. package/src/__tests__/plugin-import-boundary-guard.test.ts +0 -13
  64. package/src/__tests__/script-proxy-certs.test.ts +0 -35
  65. package/src/__tests__/skill-feature-flags-integration.test.ts +1 -1
  66. package/src/__tests__/skill-feature-flags.test.ts +2 -2
  67. package/src/__tests__/speaker-identification.test.ts +56 -0
  68. package/src/__tests__/subagent-tool-gate-mode.test.ts +3 -19
  69. package/src/__tests__/subagent-tools.test.ts +2 -3
  70. package/src/__tests__/telephony-tts-guard.test.ts +3 -38
  71. package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +0 -4
  72. package/src/{calls/__tests__/voice-session-bridge-turn-flow.test.ts → __tests__/voice-session-bridge.test.ts} +12 -20
  73. package/src/__tests__/watch-retro-tool-availability.test.ts +17 -8
  74. package/src/__tests__/workspace-git-service.test.ts +0 -26
  75. package/src/acp/__tests__/agent-process.test.ts +4 -258
  76. package/src/acp/__tests__/auth-required.test.ts +0 -96
  77. package/src/acp/__tests__/client-handler.test.ts +2 -90
  78. package/src/acp/__tests__/session-manager-persistence.test.ts +1 -5
  79. package/src/acp/__tests__/session-manager-resume.test.ts +6 -270
  80. package/src/acp/__tests__/session-manager-usage.test.ts +2 -4
  81. package/src/acp/__tests__/session-manager.test.ts +4 -895
  82. package/src/acp/agent-process.test.ts +1 -4
  83. package/src/acp/agent-process.ts +9 -94
  84. package/src/acp/auth-required.ts +1 -50
  85. package/src/acp/auto-install.test.ts +7 -9
  86. package/src/acp/client-handler.ts +3 -16
  87. package/src/acp/resolve-agent.test.ts +6 -220
  88. package/src/acp/resolve-agent.ts +23 -88
  89. package/src/acp/session-manager.test.ts +3 -196
  90. package/src/acp/session-manager.ts +18 -441
  91. package/src/acp/types.ts +5 -50
  92. package/src/api/events/app-files-changed.ts +3 -4
  93. package/src/api/events/notification-intent.ts +0 -2
  94. package/src/api/index.ts +0 -6
  95. package/src/apps/app-store.ts +1 -1
  96. package/src/bundler/app-compiler.ts +0 -15
  97. package/src/calls/__tests__/voice-control-protocol.test.ts +25 -58
  98. package/src/calls/__tests__/voice-session-bridge.test.ts +1 -37
  99. package/src/calls/__tests__/voice-triage-escalate.test.ts +0 -105
  100. package/src/calls/call-constants.ts +4 -24
  101. package/src/calls/call-controller.ts +199 -499
  102. package/src/calls/call-transport.ts +0 -16
  103. package/src/calls/media-stream-output.ts +0 -32
  104. package/src/calls/media-stream-server.ts +30 -82
  105. package/src/calls/media-stream-stt-session.ts +0 -15
  106. package/src/calls/resolve-call-tts-provider.ts +2 -33
  107. package/src/calls/speaker-identification.ts +233 -0
  108. package/src/calls/tts-call-strategy.ts +5 -9
  109. package/src/calls/types.ts +0 -2
  110. package/src/calls/voice-control-protocol.ts +21 -53
  111. package/src/calls/voice-session-bridge.ts +46 -59
  112. package/src/calls/voice-triage-escalate.ts +56 -175
  113. package/src/cli/commands/apps.help.ts +13 -67
  114. package/src/cli/commands/apps.ts +0 -183
  115. package/src/cli/commands/bash.help.ts +13 -8
  116. package/src/cli/commands/bash.ts +25 -7
  117. package/src/cli/commands/channels/index.help.ts +2 -70
  118. package/src/cli/commands/channels/index.ts +3 -16
  119. package/src/cli/commands/credentials.help.ts +2 -6
  120. package/src/cli/commands/credentials.ts +2 -2
  121. package/src/cli/commands/mcp.help.ts +8 -8
  122. package/src/cli/commands/mcp.ts +1 -1
  123. package/src/cli/commands/roadmap.help.ts +1 -5
  124. package/src/cli/commands/roadmap.ts +1 -1
  125. package/src/cli/lib/bundled-marketplace.json +90 -103
  126. package/src/config/__tests__/default-profile-catalog.test.ts +0 -22
  127. package/src/config/__tests__/memory-retrospective-schema.test.ts +1 -15
  128. package/src/config/__tests__/platform-rehydration.test.ts +9 -99
  129. package/src/config/acp-defaults.test.ts +3 -13
  130. package/src/config/acp-defaults.ts +6 -23
  131. package/src/config/acp-schema.ts +2 -30
  132. package/src/config/bundled-skills/acp/SKILL.md +14 -22
  133. package/src/config/bundled-skills/acp/TOOLS.json +1 -5
  134. package/src/config/bundled-skills/app-builder/SKILL.md +9 -12
  135. package/src/config/bundled-skills/app-builder/references/CUSTOM_ROUTES.md +1 -1
  136. package/src/config/bundled-skills/messaging/SKILL.md +3 -3
  137. package/src/config/bundled-skills/messaging/TOOLS.json +3 -3
  138. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +139 -67
  139. package/src/config/bundled-skills/phone-calls/references/TRANSCRIPTS.md +1 -1
  140. package/src/config/bundled-skills/schedule/SKILL.md +4 -3
  141. package/src/config/bundled-skills/screen-annotation/SKILL.md +1 -8
  142. package/src/config/bundled-skills/screen-annotation/tools/screen-annotation.test.ts +1 -4
  143. package/src/config/bundled-skills/skill-management/TOOLS.json +2 -2
  144. package/src/config/default-profile-catalog.ts +1 -1
  145. package/src/config/env.ts +2 -2
  146. package/src/config/feature-flag-registry.json +12 -24
  147. package/src/config/loader.ts +0 -1
  148. package/src/config/memory-v3-gate.test.ts +0 -31
  149. package/src/config/memory-v3-gate.ts +16 -20
  150. package/src/config/platform-rehydration.ts +27 -11
  151. package/src/config/schema.ts +2 -2
  152. package/src/config/schemas/__tests__/live-voice.test.ts +158 -8
  153. package/src/config/schemas/calls.ts +28 -1
  154. package/src/config/schemas/live-voice.ts +173 -1
  155. package/src/config/schemas/mcp.ts +1 -1
  156. package/src/config/schemas/memory-retrospective.ts +0 -10
  157. package/src/config/schemas/services.ts +0 -8
  158. package/src/config/schemas/skills.ts +14 -0
  159. package/src/credential-execution/process-manager.test.ts +19 -18
  160. package/src/daemon/__tests__/conversation-tool-setup.test.ts +121 -66
  161. package/src/daemon/__tests__/plugin-mcp-reconcile.test.ts +1 -4
  162. package/src/daemon/app-source-watcher.ts +218 -0
  163. package/src/daemon/config-watcher.ts +194 -13
  164. package/src/daemon/conversation-process.ts +64 -35
  165. package/src/daemon/conversation-skill-tools.ts +31 -13
  166. package/src/daemon/conversation-store.ts +1 -1
  167. package/src/daemon/conversation-surfaces.ts +8 -10
  168. package/src/daemon/conversation-tool-setup.ts +43 -37
  169. package/src/daemon/conversation.ts +3 -0
  170. package/src/daemon/host-bash-proxy.ts +12 -8
  171. package/src/daemon/host-browser-proxy.ts +1 -15
  172. package/src/daemon/host-file-proxy.ts +10 -8
  173. package/src/daemon/host-transfer-proxy.ts +18 -14
  174. package/src/daemon/lifecycle.ts +5 -0
  175. package/src/daemon/mcp-reload-service.ts +5 -5
  176. package/src/daemon/message-types/sync.ts +0 -1
  177. package/src/daemon/orphan-reaper.ts +1 -1
  178. package/src/daemon/providers-setup.ts +1 -1
  179. package/src/daemon/shutdown-handlers.ts +9 -1
  180. package/src/daemon/skill-memory-refresh.ts +0 -64
  181. package/src/daemon/tool-side-effects.ts +18 -7
  182. package/src/home/__tests__/feed-writer.test.ts +0 -22
  183. package/src/home/feed-writer.ts +2 -11
  184. package/src/hooks/types.ts +0 -33
  185. package/src/inbound/platform-callback-registration.ts +5 -4
  186. package/src/live-voice/__tests__/live-voice-metrics.test.ts +3 -0
  187. package/src/live-voice/__tests__/live-voice-progress.test.ts +15 -15
  188. package/src/live-voice/__tests__/live-voice-vad.test.ts +2 -2
  189. package/src/{calls → live-voice}/__tests__/progress-narration.test.ts +4 -4
  190. package/src/{calls → live-voice}/__tests__/progress-phrases.test.ts +1 -1
  191. package/src/live-voice/__tests__/runtime-websocket-shell.test.ts +69 -13
  192. package/src/live-voice/live-voice-session.ts +693 -213
  193. package/src/{calls → live-voice}/progress-narration.ts +2 -2
  194. package/src/live-voice/protocol.ts +2 -0
  195. package/src/mcp/__tests__/effective-config.test.ts +2 -2
  196. package/src/mcp/effective-config.ts +3 -3
  197. package/src/mcp/mcp-header-store.ts +45 -29
  198. package/src/mcp/startup.ts +4 -8
  199. package/src/messaging/provider.ts +3 -10
  200. package/src/messaging/providers/callback-routing.ts +0 -18
  201. package/src/messaging/providers/channel-transport.ts +0 -56
  202. package/src/messaging/providers/discord/transport.ts +0 -17
  203. package/src/messaging/providers/slack/__tests__/adapter-token-routing.test.ts +17 -6
  204. package/src/messaging/providers/slack/adapter.ts +44 -7
  205. package/src/messaging/providers/slack/transport.ts +0 -16
  206. package/src/messaging/providers/telegram-bot/adapter.ts +48 -1
  207. package/src/messaging/providers/telegram-bot/client.ts +26 -0
  208. package/src/messaging/providers/telegram-bot/transport.ts +0 -20
  209. package/src/messaging/providers/whatsapp/adapter.ts +48 -1
  210. package/src/messaging/providers/whatsapp/client.ts +29 -0
  211. package/src/messaging/providers/whatsapp/transport.ts +0 -18
  212. package/src/monitoring/__tests__/workspace-git-heartbeat.test.ts +0 -8
  213. package/src/notifications/__tests__/assistant-reply-producer.test.ts +0 -55
  214. package/src/notifications/__tests__/guardian-feed-projection.test.ts +2 -158
  215. package/src/notifications/__tests__/home-feed-side-effect.test.ts +3 -153
  216. package/src/notifications/__tests__/schedule-result-producer.test.ts +3 -99
  217. package/src/notifications/adapters/macos.ts +0 -3
  218. package/src/notifications/assistant-reply-producer.ts +3 -8
  219. package/src/notifications/conversation-pairing.ts +16 -36
  220. package/src/notifications/delivered-post-record.ts +1 -11
  221. package/src/notifications/guardian-feed-projection.ts +5 -125
  222. package/src/notifications/home-feed-side-effect.ts +7 -55
  223. package/src/notifications/schedule-result-producer.ts +22 -66
  224. package/src/oauth/__tests__/seed-providers-managed.test.ts +0 -54
  225. package/src/oauth/byo-connection.test.ts +0 -45
  226. package/src/oauth/byo-connection.ts +6 -36
  227. package/src/oauth/connection-resolver.test.ts +0 -73
  228. package/src/oauth/connection-resolver.ts +2 -95
  229. package/src/oauth/seed-providers.ts +0 -165
  230. package/src/outbound-proxy/certs.ts +5 -3
  231. package/src/permissions/checker.test.ts +6 -11
  232. package/src/persistence/compaction-log-store-clickhouse.ts +3 -3
  233. package/src/persistence/conversation-crud.ts +63 -71
  234. package/src/persistence/conversation-lineage.ts +4 -12
  235. package/src/persistence/conversation-title-service.ts +26 -9
  236. package/src/persistence/llm-request-log-sink-clickhouse.ts +3 -3
  237. package/src/persistence/llm-request-log-source-clickhouse.ts +3 -3
  238. package/src/persistence/message-reads.ts +0 -30
  239. package/src/persistence/migrations/157-invite-contact-id.ts +6 -18
  240. package/src/persistence/schema/memory-core.ts +0 -5
  241. package/src/platform/client.test.ts +2 -4
  242. package/src/platform/client.ts +10 -2
  243. package/src/plugin-api/constants.ts +0 -2
  244. package/src/plugin-api/index.ts +0 -1
  245. package/src/plugin-api/types.ts +0 -2
  246. package/src/plugins/defaults/index.ts +0 -2
  247. package/src/plugins/defaults/memory/__tests__/memory-retrospective-accounting.test.ts +0 -46
  248. package/src/plugins/defaults/memory/__tests__/memory-retrospective-enqueue.test.ts +5 -9
  249. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +10 -20
  250. package/src/plugins/defaults/memory/__tests__/memory-retrospective-state.test.ts +0 -219
  251. package/src/plugins/defaults/memory/__tests__/memory-retrospective-sweep.test.ts +0 -31
  252. package/src/plugins/defaults/memory/__tests__/memory-retrospective-trigger-check.test.ts +0 -63
  253. package/src/plugins/defaults/memory/__tests__/shutdown-hook.test.ts +0 -4
  254. package/src/plugins/defaults/memory/graph/capability-seed.ts +6 -4
  255. package/src/plugins/defaults/memory/hooks/init.ts +0 -10
  256. package/src/plugins/defaults/memory/hooks/shutdown.ts +0 -2
  257. package/src/plugins/defaults/memory/jobs-worker.ts +0 -13
  258. package/src/plugins/defaults/memory/memory-retrospective-accounting.ts +60 -34
  259. package/src/plugins/defaults/memory/memory-retrospective-enqueue.ts +5 -3
  260. package/src/plugins/defaults/memory/memory-retrospective-job.ts +3 -12
  261. package/src/plugins/defaults/memory/memory-retrospective-state.ts +71 -312
  262. package/src/plugins/defaults/memory/memory-retrospective-sweep.ts +1 -2
  263. package/src/plugins/defaults/memory/memory-retrospective-trigger-check.ts +3 -5
  264. package/src/plugins/defaults/memory/startup.ts +1 -6
  265. package/src/plugins/defaults/memory/substrate/__tests__/skill-content.test.ts +9 -7
  266. package/src/plugins/defaults/memory/substrate/skill-content.ts +2 -2
  267. package/src/plugins/defaults/memory/v3/__tests__/pool-select.test.ts +0 -89
  268. package/src/plugins/defaults/memory/worker.ts +0 -6
  269. package/src/plugins/mcp-servers.ts +75 -15
  270. package/src/providers/__tests__/connection-model-compat.test.ts +3 -3
  271. package/src/providers/gemini/client.ts +23 -9
  272. package/src/providers/inference/auth.ts +3 -2
  273. package/src/providers/inference/connection-availability.ts +8 -27
  274. package/src/providers/inference/resolve-auth.ts +4 -22
  275. package/src/providers/model-catalog.ts +0 -34
  276. package/src/providers/model-intents.ts +5 -10
  277. package/src/providers/openai/__tests__/chat-completions-provider-reasoning.test.ts +18 -146
  278. package/src/providers/openai/__tests__/tool-choice-mapping.test.ts +1 -83
  279. package/src/providers/openai/chat-completions-provider.ts +78 -192
  280. package/src/providers/openai/codex-models.ts +4 -0
  281. package/src/runtime/AGENTS.md +0 -2
  282. package/src/runtime/auth/same-actor.ts +3 -38
  283. package/src/runtime/http-server.ts +151 -160
  284. package/src/runtime/routes/__tests__/acp-routes.test.ts +4 -159
  285. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +1 -108
  286. package/src/runtime/routes/__tests__/default-provider-routes.test.ts +2 -2
  287. package/src/runtime/routes/__tests__/mcp-add-default-risk.test.ts +12 -16
  288. package/src/runtime/routes/acp-routes.test.ts +0 -15
  289. package/src/runtime/routes/acp-routes.ts +9 -72
  290. package/src/runtime/routes/app-management-routes.ts +0 -73
  291. package/src/runtime/routes/app-routes.ts +1 -1
  292. package/src/runtime/routes/conversation-list-routes.ts +3 -14
  293. package/src/runtime/routes/conversation-query-routes.ts +0 -40
  294. package/src/runtime/routes/credential-routes.ts +10 -19
  295. package/src/runtime/routes/debug-bash-routes.ts +173 -0
  296. package/src/runtime/routes/diagnostics-routes.ts +3 -55
  297. package/src/runtime/routes/index.ts +2 -4
  298. package/src/runtime/routes/log-export-routes.ts +0 -2
  299. package/src/runtime/routes/mcp-auth-routes.ts +47 -39
  300. package/src/runtime/routes/migration-routes.ts +20 -6
  301. package/src/runtime/routes/platform-routes.ts +15 -18
  302. package/src/runtime/services/__tests__/conversation-serializer.test.ts +0 -28
  303. package/src/runtime/services/conversation-serializer.ts +3 -16
  304. package/src/runtime/sync/resource-sync-events.ts +1 -2
  305. package/src/schedule/worker.ts +1 -1
  306. package/src/security/ces-rpc-record-backend.ts +0 -7
  307. package/src/subagent/consult-context.ts +25 -12
  308. package/src/tools/acp/list-agents.test.ts +1 -3
  309. package/src/tools/acp/spawn.test.ts +11 -146
  310. package/src/tools/acp/spawn.ts +3 -21
  311. package/src/tools/acp/status.ts +3 -40
  312. package/src/tools/app-control/skill-proxy-bridge.ts +1 -2
  313. package/src/tools/capability-offer.test.ts +2 -22
  314. package/src/tools/capability-offer.ts +1 -16
  315. package/src/tools/computer-use/definitions.ts +2 -4
  316. package/src/tools/computer-use/skill-proxy-bridge.ts +1 -2
  317. package/src/tools/credentials/metadata-store.ts +0 -100
  318. package/src/tools/host-filesystem/edit.test.ts +1 -2
  319. package/src/tools/host-filesystem/edit.ts +2 -2
  320. package/src/tools/host-filesystem/read.test.ts +1 -2
  321. package/src/tools/host-filesystem/read.ts +2 -2
  322. package/src/tools/host-filesystem/transfer.test.ts +1 -2
  323. package/src/tools/host-filesystem/transfer.ts +2 -2
  324. package/src/tools/host-filesystem/write.test.ts +1 -2
  325. package/src/tools/host-filesystem/write.ts +2 -2
  326. package/src/tools/host-terminal/host-shell.test.ts +0 -16
  327. package/src/tools/host-terminal/host-shell.ts +20 -4
  328. package/src/tools/policy-context.ts +7 -6
  329. package/src/tools/subagent/spawn.ts +8 -5
  330. package/src/tools/watch/watch-retro-report.ts +8 -0
  331. package/src/util/__tests__/language-subtag.test.ts +1 -23
  332. package/src/util/fs-watcher-error.ts +36 -0
  333. package/src/util/language-subtag.ts +0 -16
  334. package/src/util/platform.ts +0 -8
  335. package/src/workspace/git-service.ts +54 -5
  336. package/src/workspace/migrations/registry.ts +0 -6
  337. package/scripts/smoke-desktop-window-theme.ts +0 -186
  338. package/src/__tests__/git-porcelain.test.ts +0 -47
  339. package/src/__tests__/helpers/set-workspace-mcp.ts +0 -11
  340. package/src/__tests__/message-deleted-hook-dispatch.test.ts +0 -119
  341. package/src/__tests__/resolve-app.test.ts +0 -135
  342. package/src/__tests__/service-account-token.test.ts +0 -247
  343. package/src/__tests__/source-fingerprint.test.ts +0 -184
  344. package/src/__tests__/workspace-migration-154-repair-retired-codex-gpt-5-4-model-ids.test.ts +0 -336
  345. package/src/acp/__tests__/helpers/acp-model-option.ts +0 -51
  346. package/src/acp/model-config.test.ts +0 -166
  347. package/src/acp/model-config.ts +0 -138
  348. package/src/api/events/acp-session-model-update.test.ts +0 -88
  349. package/src/api/events/acp-session-model-update.ts +0 -46
  350. package/src/apps/resolve-app.ts +0 -81
  351. package/src/apps/source-fingerprint.ts +0 -266
  352. package/src/calls/__tests__/barge-in-guard.test.ts +0 -81
  353. package/src/calls/__tests__/voice-leg-coordinator.test.ts +0 -229
  354. package/src/calls/__tests__/voice-progress-cadence.test.ts +0 -274
  355. package/src/calls/barge-in-guard.ts +0 -118
  356. package/src/calls/voice-leg-coordinator.ts +0 -189
  357. package/src/calls/voice-progress-cadence.ts +0 -423
  358. package/src/cli/commands/__tests__/apps.test.ts +0 -245
  359. package/src/cli/commands/__tests__/bash.test.ts +0 -53
  360. package/src/cli/commands/__tests__/roadmap.help.test.ts +0 -19
  361. package/src/cli/commands/channels/__tests__/send.test.ts +0 -218
  362. package/src/cli/commands/channels/send.ts +0 -128
  363. package/src/config/__tests__/platform-identity.test.ts +0 -255
  364. package/src/config/acp-agent-write.ts +0 -43
  365. package/src/config/acp-schema.test.ts +0 -81
  366. package/src/config/platform-identity.ts +0 -201
  367. package/src/config/schemas/__tests__/voice.test.ts +0 -148
  368. package/src/config/schemas/voice.ts +0 -150
  369. package/src/daemon/__tests__/skill-memory-refresh-mtime.test.ts +0 -133
  370. package/src/daemon/app-change-notify.ts +0 -45
  371. package/src/desktop/__tests__/fake-desktop.ts +0 -119
  372. package/src/desktop/desktop-chrome-policy.test.ts +0 -71
  373. package/src/desktop/desktop-chrome-policy.ts +0 -42
  374. package/src/desktop/desktop-dependencies.test.ts +0 -102
  375. package/src/desktop/desktop-dependencies.ts +0 -306
  376. package/src/desktop/desktop-feature.test.ts +0 -18
  377. package/src/desktop/desktop-feature.ts +0 -19
  378. package/src/desktop/desktop-panel-config.test.ts +0 -135
  379. package/src/desktop/desktop-panel-config.ts +0 -149
  380. package/src/desktop/desktop-session-manager.test.ts +0 -627
  381. package/src/desktop/desktop-session-manager.ts +0 -814
  382. package/src/desktop/desktop-stream-bridge.test.ts +0 -395
  383. package/src/desktop/desktop-stream-bridge.ts +0 -214
  384. package/src/desktop/desktop-wallpaper.test.ts +0 -191
  385. package/src/desktop/desktop-wallpaper.ts +0 -113
  386. package/src/desktop/desktop-window-theme.ts +0 -170
  387. package/src/i18n/AGENTS.md +0 -22
  388. package/src/i18n/__tests__/i18n.test.ts +0 -108
  389. package/src/i18n/index.ts +0 -16
  390. package/src/i18n/locales.ts +0 -93
  391. package/src/i18n/messages.ts +0 -61
  392. package/src/i18n/title.ts +0 -25
  393. package/src/mcp/__tests__/workspace-mcp-config.test.ts +0 -135
  394. package/src/mcp/spec-schema.ts +0 -111
  395. package/src/mcp/workspace-mcp-config.ts +0 -188
  396. package/src/messaging/providers/__tests__/proactive-address.test.ts +0 -95
  397. package/src/persistence/conversation-title-placeholders.ts +0 -23
  398. package/src/persistence/message-cursor.ts +0 -78
  399. package/src/persistence/migrations/__tests__/157-invite-contact-id.test.ts +0 -149
  400. package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-backfill.test.ts +0 -118
  401. package/src/plugins/defaults/memory/__tests__/memory-retrospective-cursor-preserve.test.ts +0 -83
  402. package/src/plugins/defaults/memory/hooks/message-deleted.ts +0 -21
  403. package/src/plugins/defaults/memory/memory-retrospective-cursor-backfill.ts +0 -126
  404. package/src/plugins/defaults/memory/memory-retrospective-cursor-preserve.ts +0 -79
  405. package/src/plugins/defaults/memory/memory-retrospective-cursor.ts +0 -28
  406. package/src/plugins/defaults/memory/skill-md-mtime-poll.ts +0 -9
  407. package/src/providers/gemini-thought-signature.test.ts +0 -63
  408. package/src/providers/gemini-thought-signature.ts +0 -44
  409. package/src/providers/inference/service-account-token.ts +0 -248
  410. package/src/providers/openai/__tests__/chat-completions-provider-thought-signature.test.ts +0 -613
  411. package/src/providers/openai/__tests__/google-thought-signature.test.ts +0 -235
  412. package/src/providers/openai/google-thought-signature.ts +0 -320
  413. package/src/runtime/__tests__/channel-send.test.ts +0 -443
  414. package/src/runtime/__tests__/desktop-stream-upgrade.test.ts +0 -89
  415. package/src/runtime/__tests__/live-voice-upgrade.test.ts +0 -58
  416. package/src/runtime/__tests__/runtime-ws-test-utils.ts +0 -72
  417. package/src/runtime/__tests__/watch-stream-upgrade.test.ts +0 -59
  418. package/src/runtime/channel-send.ts +0 -316
  419. package/src/runtime/routes/__tests__/apps-refresh-route.test.ts +0 -205
  420. package/src/runtime/routes/__tests__/channel-send-routes.test.ts +0 -127
  421. package/src/runtime/routes/__tests__/dictation-cleanup-guard.test.ts +0 -107
  422. package/src/runtime/routes/channel-send-routes.ts +0 -85
  423. package/src/runtime/routes/desktop-setup-routes.test.ts +0 -74
  424. package/src/runtime/routes/desktop-setup-routes.ts +0 -35
  425. package/src/security/__tests__/ces-http-record-backend.test.ts +0 -137
  426. package/src/security/ces-http-record-backend.ts +0 -120
  427. package/src/skills/__tests__/workspace-skill-md-signature.test.ts +0 -60
  428. package/src/skills/workspace-skill-md-signature.ts +0 -50
  429. package/src/tools/acp/status.test.ts +0 -94
  430. package/src/tools/terminal/__tests__/sanitized-bash.test.ts +0 -57
  431. package/src/tools/terminal/sanitized-bash.ts +0 -105
  432. package/src/util/ca-bundle.ts +0 -13
  433. package/src/workspace/git-porcelain.ts +0 -66
  434. package/src/workspace/migrations/154-repair-retired-codex-gpt-5-4-model-ids.ts +0 -258
  435. package/src/workspace/migrations/155-move-front-model-config-to-voice.ts +0 -78
  436. package/src/workspace/migrations/156-extract-workspace-mcp-json.ts +0 -214
  437. package/src/workspace/migrations/__tests__/155-move-front-model-config-to-voice.test.ts +0 -102
  438. package/src/workspace/migrations/__tests__/156-extract-workspace-mcp-json.test.ts +0 -199
  439. /package/src/{calls → live-voice}/progress-phrases.ts +0 -0
@@ -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
@@ -16,7 +16,7 @@
16
16
  "category": "productivity",
17
17
  "homepage": "https://github.com/vellum-ai/admin-copilot",
18
18
  "license": "MIT",
19
- "icon": "\ud83e\uddd1\u200d\ud83d\udcbc"
19
+ "icon": "🧑‍💼"
20
20
  },
21
21
  {
22
22
  "name": "agent-wrapped",
@@ -30,7 +30,7 @@
30
30
  "license": "MIT",
31
31
  "submittedBy": "marina",
32
32
  "homepage": "https://agent-wrapped.com",
33
- "icon": "\ud83c\udf81"
33
+ "icon": "🎁"
34
34
  },
35
35
  {
36
36
  "name": "ai-hero-engineer-kit",
@@ -39,11 +39,11 @@
39
39
  "repo": "marinatrajk/ai-hero-engineer-kit",
40
40
  "ref": "18d33c62b15a3e2cc22dc070723fe3077749dcec"
41
41
  },
42
- "description": "Five engineering skills adapted from Matt Pocock's '5 Agent Skills I Use Every Day' \u2014 plans, PRDs, vertical-slice issues, TDD loop, and codebase deepening in one install.",
42
+ "description": "Five engineering skills adapted from Matt Pocock's '5 Agent Skills I Use Every Day' — plans, PRDs, vertical-slice issues, TDD loop, and codebase deepening in one install.",
43
43
  "category": "developer",
44
44
  "homepage": "https://github.com/marinatrajk/ai-hero-engineer-kit",
45
45
  "license": "MIT",
46
- "icon": "\ud83e\uddf0"
46
+ "icon": "🧰"
47
47
  },
48
48
  {
49
49
  "name": "amex-perk-reminder",
@@ -56,7 +56,7 @@
56
56
  "category": "lifestyle",
57
57
  "homepage": "https://github.com/AnitaKirkovska/amex-perk-reminder",
58
58
  "license": "MIT",
59
- "icon": "\ud83d\udcb3"
59
+ "icon": "💳"
60
60
  },
61
61
  {
62
62
  "name": "astrology-horoscope",
@@ -69,20 +69,7 @@
69
69
  "category": "hobby",
70
70
  "homepage": "https://github.com/vellum-ai/astrology-horoscope",
71
71
  "license": "MIT",
72
- "icon": "\ud83d\udd2e"
73
- },
74
- {
75
- "name": "battleship",
76
- "source": {
77
- "source": "github",
78
- "repo": "vellum-ai/battleship",
79
- "ref": "32391ea3af71597b7507bb710bd29ab8308a4604"
80
- },
81
- "description": "Play Battleship against your assistant. Fire shots, track hits and misses, and sink the fleet before the assistant sinks yours.",
82
- "category": "hobby",
83
- "homepage": "https://github.com/vellum-ai/battleship",
84
- "license": "MIT",
85
- "icon": "\u2693"
72
+ "icon": "🔮"
86
73
  },
87
74
  {
88
75
  "name": "caveman",
@@ -95,7 +82,7 @@
95
82
  "category": "productivity",
96
83
  "homepage": "https://github.com/JuliusBrussee/caveman",
97
84
  "license": "MIT",
98
- "icon": "\ud83e\uddb4"
85
+ "icon": "🦴"
99
86
  },
100
87
  {
101
88
  "name": "coffee-aficionado",
@@ -120,7 +107,7 @@
120
107
  "category": "productivity",
121
108
  "homepage": "https://github.com/vellum-ai/cofounder",
122
109
  "license": "MIT",
123
- "icon": "\ud83e\udd1d"
110
+ "icon": "🤝"
124
111
  },
125
112
  {
126
113
  "name": "cognee",
@@ -133,7 +120,7 @@
133
120
  "description": "Cognee knowledge graph memory for Vellum Assistant: session-aware storage, auto-routing recall, and persistent learning across sessions. Supports local mode and Cognee Cloud.",
134
121
  "category": "memory",
135
122
  "homepage": "https://github.com/topoteretes/cognee-integrations/tree/main/integrations/vellum-assistant",
136
- "icon": "\ud83d\udd78\ufe0f"
123
+ "icon": "🕸️"
137
124
  },
138
125
  {
139
126
  "name": "creatorland",
@@ -147,7 +134,7 @@
147
134
  "category": "marketing",
148
135
  "homepage": "https://github.com/creatorland/creatorland-mcp-skills/tree/main/plugins/creatorland-data",
149
136
  "license": "MIT",
150
- "icon": "\ud83c\udfa8"
137
+ "icon": "🎨"
151
138
  },
152
139
  {
153
140
  "name": "dynamic-notch",
@@ -160,7 +147,7 @@
160
147
  "category": "interface",
161
148
  "homepage": "https://github.com/AnitaKirkovska/dynamic-notch",
162
149
  "license": "MIT",
163
- "icon": "\ud83d\udcbb"
150
+ "icon": "💻"
164
151
  },
165
152
  {
166
153
  "name": "family-briefing",
@@ -173,7 +160,7 @@
173
160
  "category": "productivity",
174
161
  "homepage": "https://github.com/AnitaKirkovska/family-briefing",
175
162
  "license": "MIT",
176
- "icon": "\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66"
163
+ "icon": "👨‍👩‍👧‍👦"
177
164
  },
178
165
  {
179
166
  "name": "fitness-companion",
@@ -186,7 +173,7 @@
186
173
  "category": "health",
187
174
  "homepage": "https://github.com/vellum-ai/fitness-companion",
188
175
  "license": "MIT",
189
- "icon": "\ud83d\udcaa"
176
+ "icon": "💪"
190
177
  },
191
178
  {
192
179
  "name": "git-workflow",
@@ -199,7 +186,7 @@
199
186
  "category": "developer",
200
187
  "homepage": "https://github.com/vellum-ai/git-workflow",
201
188
  "license": "MIT",
202
- "icon": "\ud83d\udd00"
189
+ "icon": "🔀"
203
190
  },
204
191
  {
205
192
  "name": "google-drive-search",
@@ -212,20 +199,7 @@
212
199
  "category": "productivity",
213
200
  "homepage": "https://github.com/ZeebBoyBlue/google-drive-search",
214
201
  "license": "Apache-2.0",
215
- "icon": "\ud83d\udd0d"
216
- },
217
- {
218
- "name": "imessage",
219
- "source": {
220
- "source": "github",
221
- "repo": "vellum-ai/imessage",
222
- "ref": "41b8e9ad87b4975bf3fbdc9a8e46deda489d3d51"
223
- },
224
- "description": "iMessage and SMS channel for the Vellum assistant, backed by a Photon line.",
225
- "category": "productivity",
226
- "homepage": "https://github.com/vellum-ai/imessage",
227
- "license": "MIT",
228
- "icon": "\ud83d\udcf2"
202
+ "icon": "🔍"
229
203
  },
230
204
  {
231
205
  "name": "influencer-marketing",
@@ -238,33 +212,33 @@
238
212
  "category": "marketing",
239
213
  "homepage": "https://github.com/ZeebBoyBlue/influencer",
240
214
  "license": "MIT",
241
- "icon": "\ud83d\udce3"
215
+ "icon": "📣"
242
216
  },
243
217
  {
244
- "name": "kitchen-companion",
218
+ "name": "imessage",
245
219
  "source": {
246
220
  "source": "github",
247
- "repo": "vellum-ai/kitchen-companion",
248
- "ref": "b6ebdda6992dfa1fd2186a600a642f538fb64584"
221
+ "repo": "vellum-ai/imessage",
222
+ "ref": "41b8e9ad87b4975bf3fbdc9a8e46deda489d3d51"
249
223
  },
250
- "description": "Full kitchen companion. Scan your fridge with a photo to stock a pantry inventory and get 3 makeable-now recipes, get alerts before food expires, clip recipes from any URL into a clean format, and generate meal plans with grocery lists from what you actually have.",
251
- "category": "lifestyle",
252
- "homepage": "https://github.com/vellum-ai/kitchen-companion",
224
+ "description": "iMessage and SMS channel for the Vellum assistant, backed by a Photon line.",
225
+ "category": "productivity",
226
+ "homepage": "https://github.com/vellum-ai/imessage",
253
227
  "license": "MIT",
254
- "icon": "\ud83c\udf73"
228
+ "icon": "📲"
255
229
  },
256
230
  {
257
- "name": "ledger",
231
+ "name": "kitchen-companion",
258
232
  "source": {
259
233
  "source": "github",
260
- "repo": "simensgreen/ledger",
261
- "ref": "7fc04fd77b20ad4b27ccd51be22c101274b370f6"
234
+ "repo": "vellum-ai/kitchen-companion",
235
+ "ref": "b6ebdda6992dfa1fd2186a600a642f538fb64584"
262
236
  },
263
- "description": "Structured storage for Vellum agents: tables via JSON Schema, query/aggregate via JSON, named saved queries.",
264
- "category": "developer",
265
- "homepage": "https://github.com/simensgreen/ledger",
237
+ "description": "Full kitchen companion. Scan your fridge with a photo to stock a pantry inventory and get 3 makeable-now recipes, get alerts before food expires, clip recipes from any URL into a clean format, and generate meal plans with grocery lists from what you actually have.",
238
+ "category": "lifestyle",
239
+ "homepage": "https://github.com/vellum-ai/kitchen-companion",
266
240
  "license": "MIT",
267
- "icon": "\ud83d\uddc4\ufe0f"
241
+ "icon": "🍳"
268
242
  },
269
243
  {
270
244
  "name": "level-up",
@@ -277,7 +251,7 @@
277
251
  "category": "developer",
278
252
  "homepage": "https://github.com/vellum-ai/level-up",
279
253
  "license": "MIT",
280
- "icon": "\ud83c\udd99"
254
+ "icon": "🆙"
281
255
  },
282
256
  {
283
257
  "name": "marketing-expert",
@@ -290,7 +264,7 @@
290
264
  "category": "marketing",
291
265
  "homepage": "https://github.com/vellum-ai/marketing-expert",
292
266
  "license": "MIT",
293
- "icon": "\ud83d\udcc8"
267
+ "icon": "📈"
294
268
  },
295
269
  {
296
270
  "name": "markitdown-vellum",
@@ -299,11 +273,11 @@
299
273
  "repo": "simensgreen/markitdown-vellum",
300
274
  "ref": "5e5a4ecfd6c60d613778106442003a1ed302fc3c"
301
275
  },
302
- "description": "Convert workspace documents (PDF, DOCX, PPTX, XLSX, images, MSG, \u2026) to markdown via @cognipeer/to-markdown, with Vellum vision OCR or Tesseract.",
276
+ "description": "Convert workspace documents (PDF, DOCX, PPTX, XLSX, images, MSG, …) to markdown via @cognipeer/to-markdown, with Vellum vision OCR or Tesseract.",
303
277
  "category": "productivity",
304
278
  "homepage": "https://github.com/simensgreen/markitdown-vellum",
305
279
  "license": "MIT",
306
- "icon": "\ud83d\udcc4"
280
+ "icon": "📄"
307
281
  },
308
282
  {
309
283
  "name": "model-router",
@@ -316,7 +290,7 @@
316
290
  "category": "productivity",
317
291
  "homepage": "https://github.com/AnitaKirkovska/model-router",
318
292
  "license": "MIT",
319
- "icon": "\ud83d\udea6"
293
+ "icon": "🚦"
320
294
  },
321
295
  {
322
296
  "name": "motion-design",
@@ -329,7 +303,7 @@
329
303
  "category": "creative",
330
304
  "homepage": "https://github.com/vellum-ai/motion-design",
331
305
  "license": "MIT",
332
- "icon": "\ud83c\udfac"
306
+ "icon": "🎬"
333
307
  },
334
308
  {
335
309
  "name": "natural",
@@ -342,19 +316,7 @@
342
316
  "category": "finance",
343
317
  "homepage": "https://www.natural.com",
344
318
  "license": "MIT",
345
- "icon": "\ud83d\udcb3"
346
- },
347
- {
348
- "name": "octolens",
349
- "source": {
350
- "source": "github",
351
- "repo": "vellum-ai/octolens",
352
- "ref": "d9117f5c6b97b3bff75dec1a04bedc32571c6538"
353
- },
354
- "description": "Social listening plugin for Octolens. Monitor brand mentions, competitor activity, and industry conversations across 13+ platforms. Query mentions, run analytics, manage keywords and feeds via REST API tools, or connect the Octolens MCP server for natural-language workflows.",
355
- "category": "growth",
356
- "homepage": "https://github.com/vellum-ai/octolens",
357
- "license": "MIT"
319
+ "icon": "💳"
358
320
  },
359
321
  {
360
322
  "name": "openseo",
@@ -368,7 +330,7 @@
368
330
  "category": "marketing",
369
331
  "homepage": "https://openseo.so",
370
332
  "license": "MIT",
371
- "icon": "\ud83d\udd0e"
333
+ "icon": "🔎"
372
334
  },
373
335
  {
374
336
  "name": "originkit",
@@ -381,7 +343,7 @@
381
343
  "category": "productivity",
382
344
  "homepage": "https://github.com/vellum-ai/originkit",
383
345
  "license": "MIT",
384
- "icon": "\ud83e\uddf1"
346
+ "icon": "🧱"
385
347
  },
386
348
  {
387
349
  "name": "personal-finance",
@@ -394,7 +356,7 @@
394
356
  "category": "productivity",
395
357
  "homepage": "https://github.com/AnitaKirkovska/personal-finance",
396
358
  "license": "MIT",
397
- "icon": "\ud83d\udcb0"
359
+ "icon": "💰"
398
360
  },
399
361
  {
400
362
  "name": "plant-doctor",
@@ -407,7 +369,7 @@
407
369
  "category": "lifestyle",
408
370
  "homepage": "https://github.com/vellum-ai/plant-doctor",
409
371
  "license": "MIT",
410
- "icon": "\ud83e\udeb4"
372
+ "icon": "🪴"
411
373
  },
412
374
  {
413
375
  "name": "polyglot",
@@ -420,7 +382,7 @@
420
382
  "category": "education",
421
383
  "homepage": "https://github.com/vellum-ai/polyglot",
422
384
  "license": "MIT",
423
- "icon": "\ud83d\udde3\ufe0f"
385
+ "icon": "🗣️"
424
386
  },
425
387
  {
426
388
  "name": "proactive-slacks",
@@ -433,7 +395,7 @@
433
395
  "category": "productivity",
434
396
  "homepage": "https://github.com/AnitaKirkovska/proactive-slacks",
435
397
  "license": "MIT",
436
- "icon": "\ud83d\udcac"
398
+ "icon": "💬"
437
399
  },
438
400
  {
439
401
  "name": "reading-pal",
@@ -446,20 +408,7 @@
446
408
  "category": "hobby",
447
409
  "homepage": "https://github.com/vellum-ai/reading-pal",
448
410
  "license": "MIT",
449
- "icon": "\ud83d\udcda"
450
- },
451
- {
452
- "name": "restaurant-invoice-auditor",
453
- "description": "Audits restaurant food delivery slips in 14 seconds, flags silent price hikes and pack-size shrinkage, and stages approved bills in QuickBooks.",
454
- "category": "commerce",
455
- "icon": "\ud83e\uddfe",
456
- "license": "MIT",
457
- "homepage": "https://github.com/ZeebBoyBlue/restaurant-invoice-auditor",
458
- "source": {
459
- "source": "github",
460
- "repo": "ZeebBoyBlue/restaurant-invoice-auditor",
461
- "ref": "f1905e639941e98172c5032b6d722f668882d75d"
462
- }
411
+ "icon": "📚"
463
412
  },
464
413
  {
465
414
  "name": "simple-memory",
@@ -472,7 +421,7 @@
472
421
  "category": "memory",
473
422
  "homepage": "https://github.com/vellum-ai/simple-memory",
474
423
  "license": "MIT",
475
- "icon": "\ud83e\udde0"
424
+ "icon": "🧠"
476
425
  },
477
426
  {
478
427
  "name": "smb-inbox-brief",
@@ -485,7 +434,7 @@
485
434
  "category": "productivity",
486
435
  "homepage": "https://github.com/AnitaKirkovska/smb-inbox-brief",
487
436
  "license": "MIT",
488
- "icon": "\ud83d\udce7"
437
+ "icon": "📧"
489
438
  },
490
439
  {
491
440
  "name": "tennis-companion",
@@ -498,7 +447,7 @@
498
447
  "category": "health",
499
448
  "homepage": "https://github.com/vellum-ai/tennis-companion",
500
449
  "license": "MIT",
501
- "icon": "\ud83c\udfbe"
450
+ "icon": "🎾"
502
451
  },
503
452
  {
504
453
  "name": "travel-planner",
@@ -511,7 +460,7 @@
511
460
  "category": "lifestyle",
512
461
  "homepage": "https://github.com/AnitaKirkovska/travel-planner",
513
462
  "license": "MIT",
514
- "icon": "\u2708\ufe0f"
463
+ "icon": "✈️"
515
464
  },
516
465
  {
517
466
  "name": "unabyss",
@@ -524,7 +473,7 @@
524
473
  "category": "memory",
525
474
  "homepage": "https://unabyss.com",
526
475
  "license": "MIT",
527
- "icon": "\ud83c\udf0a"
476
+ "icon": "🌊"
528
477
  },
529
478
  {
530
479
  "name": "vellum-client-qa",
@@ -537,7 +486,20 @@
537
486
  "category": "developer",
538
487
  "homepage": "https://github.com/vellum-ai/vellum-client-qa",
539
488
  "license": "MIT",
540
- "icon": "\ud83e\uddea"
489
+ "icon": "🧪"
490
+ },
491
+ {
492
+ "name": "ledger",
493
+ "source": {
494
+ "source": "github",
495
+ "repo": "simensgreen/ledger",
496
+ "ref": "7fc04fd77b20ad4b27ccd51be22c101274b370f6"
497
+ },
498
+ "description": "Structured storage for Vellum agents: tables via JSON Schema, query/aggregate via JSON, named saved queries.",
499
+ "category": "developer",
500
+ "homepage": "https://github.com/simensgreen/ledger",
501
+ "license": "MIT",
502
+ "icon": "🗄️"
541
503
  },
542
504
  {
543
505
  "name": "virlo",
@@ -551,7 +513,7 @@
551
513
  "category": "marketing",
552
514
  "homepage": "https://github.com/Virlo-AI/virlo-integrations/tree/main/integrations/vellum",
553
515
  "license": "MIT",
554
- "icon": "\ud83d\udcf1"
516
+ "icon": "📱"
555
517
  },
556
518
  {
557
519
  "name": "writing-coach",
@@ -564,7 +526,32 @@
564
526
  "category": "hobby",
565
527
  "homepage": "https://github.com/vellum-ai/writing-coach",
566
528
  "license": "MIT",
567
- "icon": "\u270d\ufe0f"
529
+ "icon": "✍️"
530
+ },
531
+ {
532
+ "name": "battleship",
533
+ "source": {
534
+ "source": "github",
535
+ "repo": "vellum-ai/battleship",
536
+ "ref": "32391ea3af71597b7507bb710bd29ab8308a4604"
537
+ },
538
+ "description": "Play Battleship against your assistant. Fire shots, track hits and misses, and sink the fleet before the assistant sinks yours.",
539
+ "category": "hobby",
540
+ "homepage": "https://github.com/vellum-ai/battleship",
541
+ "license": "MIT",
542
+ "icon": "⚓"
543
+ },
544
+ {
545
+ "name": "octolens",
546
+ "source": {
547
+ "source": "github",
548
+ "repo": "vellum-ai/octolens",
549
+ "ref": "d9117f5c6b97b3bff75dec1a04bedc32571c6538"
550
+ },
551
+ "description": "Social listening plugin for Octolens. Monitor brand mentions, competitor activity, and industry conversations across 13+ platforms. Query mentions, run analytics, manage keywords and feeds via REST API tools, or connect the Octolens MCP server for natural-language workflows.",
552
+ "category": "growth",
553
+ "homepage": "https://github.com/vellum-ai/octolens",
554
+ "license": "MIT"
568
555
  }
569
556
  ]
570
557
  }
@@ -540,28 +540,6 @@ describe("resolveDefaultProfileForProvider", () => {
540
540
  expect(entry).toBe(workspace.balanced);
541
541
  });
542
542
 
543
- // Google limits gemini-2.5-flash-lite to grandfathered accounts (other API
544
- // keys get HTTP 404 "no longer available to new users"), so a default
545
- // profile resolving to it lists as available and fails every request on a
546
- // fresh BYOK key.
547
- test("gemini BYOK defaults never resolve to a model Google refuses new keys", () => {
548
- const budget = resolveDefaultProfileForProvider(
549
- managedStubs(),
550
- "cost-optimized",
551
- dp("gemini"),
552
- );
553
- expect(budget?.provider).toBe("gemini");
554
- expect(budget?.model).toBe("gemini-3.1-flash-lite");
555
- for (const key of DEFAULT_PROFILE_KEYS) {
556
- const entry = resolveDefaultProfileForProvider(
557
- managedStubs(),
558
- key,
559
- dp("gemini"),
560
- );
561
- expect(entry?.model).not.toBe("gemini-2.5-flash-lite");
562
- }
563
- });
564
-
565
543
  test("a managed-source stub contributes only label/status/topP over the provider-resolved body", () => {
566
544
  const workspace: Record<string, ProfileEntry> = {
567
545
  balanced: {
@@ -12,10 +12,9 @@ import { describe, expect, test } from "bun:test";
12
12
  import { MemoryRetrospectiveConfigSchema } from "../schemas/memory-retrospective.js";
13
13
 
14
14
  describe("memory.retrospective config schema", () => {
15
- test("an empty block leaves retrospectives and skill improvement on", () => {
15
+ test("an empty block leaves retrospectives on", () => {
16
16
  const parsed = MemoryRetrospectiveConfigSchema.parse({});
17
17
  expect(parsed.enabled).toBe(true);
18
- expect(parsed.skillImprovement).toBe(true);
19
18
  expect(parsed).not.toHaveProperty("forkStrategy");
20
19
  });
21
20
 
@@ -28,19 +27,6 @@ describe("memory.retrospective config schema", () => {
28
27
  ).toBe(false);
29
28
  });
30
29
 
31
- test("skillImprovement is an independent boolean-only authoring switch", () => {
32
- const parsed = MemoryRetrospectiveConfigSchema.parse({
33
- skillImprovement: false,
34
- });
35
- expect(parsed.enabled).toBe(true);
36
- expect(parsed.skillImprovement).toBe(false);
37
- expect(
38
- MemoryRetrospectiveConfigSchema.safeParse({
39
- skillImprovement: "false",
40
- }).success,
41
- ).toBe(false);
42
- });
43
-
44
30
  test("a leftover forkStrategy key is ignored", () => {
45
31
  const parsed = MemoryRetrospectiveConfigSchema.parse({
46
32
  forkStrategy: "cloning",