@vellumai/assistant 0.4.44 → 0.4.45

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 (681) hide show
  1. package/.prettierignore +4 -0
  2. package/ARCHITECTURE.md +34 -31
  3. package/README.md +4 -4
  4. package/bun.lock +10 -35
  5. package/docs/architecture/integrations.md +102 -197
  6. package/docs/architecture/keychain-broker.md +1 -1
  7. package/docs/architecture/memory.md +2 -2
  8. package/docs/architecture/scheduling.md +1 -1
  9. package/docs/architecture/security.md +11 -11
  10. package/docs/error-handling.md +1 -1
  11. package/docs/trusted-contact-access.md +3 -3
  12. package/drizzle/meta/0000_snapshot.json +34 -100
  13. package/drizzle/meta/_journal.json +1 -1
  14. package/drizzle.config.ts +4 -4
  15. package/package.json +3 -2
  16. package/scripts/capture-x-graphql.ts +237 -141
  17. package/scripts/generate-bundled-tool-registry.ts +223 -0
  18. package/src/__tests__/access-request-decision.test.ts +0 -1
  19. package/src/__tests__/actor-token-service.test.ts +23 -24
  20. package/src/__tests__/agent-loop.test.ts +0 -131
  21. package/src/__tests__/always-loaded-tools-guard.test.ts +71 -0
  22. package/src/__tests__/amazon-cdp-integration.test.ts +11 -9
  23. package/src/__tests__/approval-primitive.test.ts +0 -1
  24. package/src/__tests__/approval-routes-http.test.ts +11 -1
  25. package/src/__tests__/asset-materialize-tool.test.ts +0 -1
  26. package/src/__tests__/asset-search-tool.test.ts +0 -1
  27. package/src/__tests__/assistant-attachment-directive.test.ts +1 -1
  28. package/src/__tests__/assistant-events-sse-hardening.test.ts +0 -1
  29. package/src/__tests__/assistant-feature-flag-guardrails.test.ts +0 -2
  30. package/src/__tests__/assistant-feature-flags-integration.test.ts +70 -18
  31. package/src/__tests__/assistant-id-boundary-guard.test.ts +6 -6
  32. package/src/__tests__/attachments-store.test.ts +0 -1
  33. package/src/__tests__/avatar-e2e.test.ts +74 -115
  34. package/src/__tests__/avatar-router.test.ts +25 -62
  35. package/src/__tests__/browser-manager.test.ts +24 -0
  36. package/src/__tests__/browser-skill-baseline-tool-payload.test.ts +4 -3
  37. package/src/__tests__/browser-skill-endstate.test.ts +8 -11
  38. package/src/__tests__/btw-routes.test.ts +326 -0
  39. package/src/__tests__/bundled-skill-retrieval-guard.test.ts +23 -9
  40. package/src/__tests__/call-controller.test.ts +0 -1
  41. package/src/__tests__/call-conversation-messages.test.ts +0 -1
  42. package/src/__tests__/call-domain.test.ts +0 -1
  43. package/src/__tests__/call-pointer-messages.test.ts +0 -1
  44. package/src/__tests__/call-recovery.test.ts +0 -1
  45. package/src/__tests__/call-routes-http.test.ts +0 -1
  46. package/src/__tests__/call-store.test.ts +0 -1
  47. package/src/__tests__/canonical-guardian-store.test.ts +0 -1
  48. package/src/__tests__/channel-approval-routes.test.ts +1 -1
  49. package/src/__tests__/channel-approvals.test.ts +1 -1
  50. package/src/__tests__/channel-delivery-store.test.ts +0 -1
  51. package/src/__tests__/channel-guardian.test.ts +5 -7
  52. package/src/__tests__/channel-retry-sweep.test.ts +0 -1
  53. package/src/__tests__/checker.test.ts +4 -11
  54. package/src/__tests__/compaction.benchmark.test.ts +16 -14
  55. package/src/__tests__/computer-use-session-lifecycle.test.ts +10 -11
  56. package/src/__tests__/computer-use-session-working-dir.test.ts +2 -6
  57. package/src/__tests__/computer-use-skill-lifecycle-cleanup.test.ts +2 -5
  58. package/src/__tests__/computer-use-tools.test.ts +35 -31
  59. package/src/__tests__/config-schema.test.ts +11 -15
  60. package/src/__tests__/config-watcher.test.ts +0 -1
  61. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +0 -1
  62. package/src/__tests__/conflict-store.test.ts +0 -1
  63. package/src/__tests__/connection-policy.test.ts +4 -7
  64. package/src/__tests__/contacts-tools.test.ts +0 -1
  65. package/src/__tests__/context-memory-e2e.test.ts +2 -4
  66. package/src/__tests__/context-overflow-reducer.test.ts +2 -4
  67. package/src/__tests__/context-window-manager.test.ts +147 -60
  68. package/src/__tests__/contradiction-checker.test.ts +0 -1
  69. package/src/__tests__/conversation-attention-store.test.ts +0 -1
  70. package/src/__tests__/conversation-attention-telegram.test.ts +1 -1
  71. package/src/__tests__/conversation-pairing.test.ts +2 -2
  72. package/src/__tests__/conversation-routes-guardian-reply.test.ts +25 -1
  73. package/src/__tests__/conversation-routes-slash-commands.test.ts +381 -0
  74. package/src/__tests__/conversation-store.test.ts +0 -1
  75. package/src/__tests__/conversation-unread-route.test.ts +1 -2
  76. package/src/__tests__/credential-security-invariants.test.ts +7 -8
  77. package/src/__tests__/cross-provider-web-search.test.ts +353 -0
  78. package/src/__tests__/daemon-assistant-events.test.ts +6 -7
  79. package/src/__tests__/db-schedule-syntax-migration.test.ts +15 -3
  80. package/src/__tests__/delete-managed-skill-tool.test.ts +5 -9
  81. package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -1
  82. package/src/__tests__/diagnostics-export.test.ts +189 -0
  83. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +0 -1
  84. package/src/__tests__/emit-signal-routing-intent.test.ts +3 -3
  85. package/src/__tests__/entity-extractor.test.ts +0 -1
  86. package/src/__tests__/entity-search.test.ts +0 -1
  87. package/src/__tests__/ephemeral-permissions.test.ts +2 -4
  88. package/src/__tests__/file-read-tool.test.ts +86 -0
  89. package/src/__tests__/followup-tools.test.ts +0 -1
  90. package/src/__tests__/frontmatter.test.ts +77 -34
  91. package/src/__tests__/gateway-only-enforcement.test.ts +0 -1
  92. package/src/__tests__/gateway-only-guard.test.ts +1 -1
  93. package/src/__tests__/guardian-action-conversation-turn.test.ts +0 -1
  94. package/src/__tests__/guardian-action-followup-executor.test.ts +0 -1
  95. package/src/__tests__/guardian-action-followup-store.test.ts +0 -1
  96. package/src/__tests__/guardian-action-grant-mint-consume.test.ts +0 -1
  97. package/src/__tests__/guardian-action-late-reply.test.ts +0 -1
  98. package/src/__tests__/guardian-action-store.test.ts +0 -1
  99. package/src/__tests__/guardian-action-sweep.test.ts +0 -1
  100. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +0 -1
  101. package/src/__tests__/guardian-dispatch.test.ts +1 -2
  102. package/src/__tests__/guardian-grant-minting.test.ts +1 -1
  103. package/src/__tests__/guardian-outbound-http.test.ts +0 -1
  104. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +0 -1
  105. package/src/__tests__/guardian-routing-invariants.test.ts +1 -1
  106. package/src/__tests__/guardian-routing-state.test.ts +0 -1
  107. package/src/__tests__/guardian-verification-voice-binding.test.ts +0 -1
  108. package/src/__tests__/guardian-verify-setup-skill-regression.test.ts +3 -5
  109. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +28 -426
  110. package/src/__tests__/host-bash-proxy.test.ts +335 -0
  111. package/src/__tests__/host-file-proxy.test.ts +374 -0
  112. package/src/__tests__/host-shell-tool.test.ts +147 -1
  113. package/src/__tests__/http-user-message-parity.test.ts +361 -0
  114. package/src/__tests__/inbound-invite-redemption.test.ts +0 -1
  115. package/src/__tests__/integration-status.test.ts +3 -8
  116. package/src/__tests__/intent-routing.test.ts +7 -46
  117. package/src/__tests__/invite-redemption-service.test.ts +0 -1
  118. package/src/__tests__/invite-routes-http.test.ts +0 -1
  119. package/src/__tests__/llm-usage-store.test.ts +0 -1
  120. package/src/__tests__/managed-avatar-client.test.ts +101 -55
  121. package/src/__tests__/managed-skill-lifecycle.test.ts +9 -18
  122. package/src/__tests__/managed-store.test.ts +94 -21
  123. package/src/__tests__/media-reuse-story.e2e.test.ts +0 -1
  124. package/src/__tests__/memory-context-benchmark.benchmark.test.ts +2 -4
  125. package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -1
  126. package/src/__tests__/memory-recall-quality.test.ts +0 -1
  127. package/src/__tests__/memory-regressions.experimental.test.ts +0 -1
  128. package/src/__tests__/memory-regressions.test.ts +0 -1
  129. package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -1
  130. package/src/__tests__/memory-upsert-concurrency.test.ts +0 -1
  131. package/src/__tests__/messaging-send-tool.test.ts +35 -0
  132. package/src/__tests__/messaging-skill-split.test.ts +138 -0
  133. package/src/__tests__/migration-cross-version-compatibility.test.ts +0 -1
  134. package/src/__tests__/migration-export-http.test.ts +2 -3
  135. package/src/__tests__/migration-import-commit-http.test.ts +1 -2
  136. package/src/__tests__/migration-import-preflight-http.test.ts +1 -2
  137. package/src/__tests__/migration-validate-http.test.ts +1 -2
  138. package/src/__tests__/native-web-search.test.ts +475 -0
  139. package/src/__tests__/navigate-settings-tab.test.ts +84 -0
  140. package/src/__tests__/non-member-access-request.test.ts +0 -1
  141. package/src/__tests__/notification-broadcaster.test.ts +15 -15
  142. package/src/__tests__/notification-decision-strategy.test.ts +6 -6
  143. package/src/__tests__/notification-deep-link.test.ts +7 -7
  144. package/src/__tests__/notification-guardian-path.test.ts +2 -3
  145. package/src/__tests__/notification-telegram-adapter.test.ts +1 -1
  146. package/src/__tests__/notification-thread-candidates.test.ts +4 -4
  147. package/src/__tests__/onboarding-starter-tasks.test.ts +0 -1
  148. package/src/__tests__/playbook-execution.test.ts +0 -1
  149. package/src/__tests__/playbook-tools.test.ts +0 -1
  150. package/src/__tests__/profile-compiler.test.ts +0 -1
  151. package/src/__tests__/provider-managed-proxy-integration.test.ts +25 -0
  152. package/src/__tests__/qdrant-collection-migration.test.ts +223 -0
  153. package/src/__tests__/recording-handler.test.ts +30 -94
  154. package/src/__tests__/registry.test.ts +28 -35
  155. package/src/__tests__/relay-server.test.ts +0 -1
  156. package/src/__tests__/ride-shotgun-handler.test.ts +4 -20
  157. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -1
  158. package/src/__tests__/runtime-events-sse-parity.test.ts +3 -4
  159. package/src/__tests__/runtime-events-sse.test.ts +0 -1
  160. package/src/__tests__/sandbox-diagnostics.test.ts +0 -1
  161. package/src/__tests__/scaffold-managed-skill-tool.test.ts +30 -28
  162. package/src/__tests__/schedule-store.test.ts +441 -1
  163. package/src/__tests__/schedule-tools.test.ts +468 -7
  164. package/src/__tests__/scheduler-recurrence.test.ts +196 -23
  165. package/src/__tests__/scoped-approval-grants.test.ts +0 -1
  166. package/src/__tests__/scoped-grant-security-matrix.test.ts +0 -1
  167. package/src/__tests__/secret-prompt-log-hygiene.test.ts +6 -3
  168. package/src/__tests__/secret-response-routing.test.ts +4 -1
  169. package/src/__tests__/send-endpoint-busy.test.ts +14 -2
  170. package/src/__tests__/send-notification-tool.test.ts +0 -7
  171. package/src/__tests__/sequence-store.test.ts +0 -1
  172. package/src/__tests__/server-history-render.test.ts +1 -2
  173. package/src/__tests__/session-abort-tool-results.test.ts +0 -1
  174. package/src/__tests__/session-agent-loop.test.ts +46 -6
  175. package/src/__tests__/session-confirmation-signals.test.ts +0 -1
  176. package/src/__tests__/session-conflict-gate.test.ts +2 -6
  177. package/src/__tests__/session-error.test.ts +5 -14
  178. package/src/__tests__/session-init.benchmark.test.ts +3 -5
  179. package/src/__tests__/session-load-history-repair.test.ts +0 -1
  180. package/src/__tests__/session-media-retry.test.ts +12 -74
  181. package/src/__tests__/session-pre-run-repair.test.ts +0 -1
  182. package/src/__tests__/session-profile-injection.test.ts +2 -6
  183. package/src/__tests__/session-provider-retry-repair.test.ts +2 -6
  184. package/src/__tests__/session-queue.test.ts +94 -139
  185. package/src/__tests__/session-skill-tools.test.ts +115 -115
  186. package/src/__tests__/session-slash-known.test.ts +0 -1
  187. package/src/__tests__/session-slash-queue.test.ts +0 -1
  188. package/src/__tests__/session-slash-unknown.test.ts +0 -1
  189. package/src/__tests__/session-surfaces-task-progress.test.ts +34 -0
  190. package/src/__tests__/session-usage.test.ts +0 -1
  191. package/src/__tests__/session-workspace-cache-state.test.ts +2 -6
  192. package/src/__tests__/session-workspace-injection.test.ts +2 -6
  193. package/src/__tests__/session-workspace-tool-tracking.test.ts +2 -6
  194. package/src/__tests__/skill-feature-flags-integration.test.ts +180 -184
  195. package/src/__tests__/skill-feature-flags.test.ts +125 -18
  196. package/src/__tests__/skill-load-feature-flag.test.ts +1 -2
  197. package/src/__tests__/skill-load-tool.test.ts +194 -2
  198. package/src/__tests__/skill-projection-feature-flag.test.ts +27 -16
  199. package/src/__tests__/skill-projection.benchmark.test.ts +15 -14
  200. package/src/__tests__/skills.test.ts +14 -53
  201. package/src/__tests__/slack-channel-config.test.ts +0 -1
  202. package/src/__tests__/slack-inbound-verification.test.ts +0 -1
  203. package/src/__tests__/slack-skill.test.ts +1 -1
  204. package/src/__tests__/subagent-tools.test.ts +2 -2
  205. package/src/__tests__/system-prompt.test.ts +4 -3
  206. package/src/__tests__/task-compiler.test.ts +0 -1
  207. package/src/__tests__/task-management-tools.test.ts +0 -1
  208. package/src/__tests__/task-memory-cleanup.test.ts +0 -1
  209. package/src/__tests__/task-runner.test.ts +0 -1
  210. package/src/__tests__/task-scheduler.test.ts +0 -1
  211. package/src/__tests__/terminal-tools.test.ts +0 -1
  212. package/src/__tests__/test-support/computer-use-skill-harness.ts +2 -4
  213. package/src/__tests__/thread-seed-composer.test.ts +5 -5
  214. package/src/__tests__/tool-approval-handler.test.ts +0 -1
  215. package/src/__tests__/tool-execution-abort-cleanup.test.ts +0 -1
  216. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +0 -1
  217. package/src/__tests__/tool-executor.test.ts +8 -86
  218. package/src/__tests__/tool-grant-request-escalation.test.ts +0 -1
  219. package/src/__tests__/tool-notification-listener.test.ts +1 -1
  220. package/src/__tests__/tool-preview-lifecycle.test.ts +416 -0
  221. package/src/__tests__/trust-store.test.ts +80 -4
  222. package/src/__tests__/trusted-contact-approval-notifier.test.ts +0 -1
  223. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +0 -1
  224. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +0 -1
  225. package/src/__tests__/trusted-contact-multichannel.test.ts +0 -1
  226. package/src/__tests__/trusted-contact-verification.test.ts +0 -1
  227. package/src/__tests__/twilio-provider.test.ts +0 -1
  228. package/src/__tests__/twilio-routes.test.ts +0 -1
  229. package/src/__tests__/{request-file-tool.test.ts → ui-file-upload-surface.test.ts} +11 -72
  230. package/src/__tests__/update-bulletin.test.ts +0 -1
  231. package/src/__tests__/usage-cache-backfill-migration.test.ts +0 -1
  232. package/src/__tests__/usage-routes.test.ts +0 -1
  233. package/src/__tests__/verification-control-plane-policy.test.ts +4 -4
  234. package/src/__tests__/voice-invite-redemption.test.ts +0 -1
  235. package/src/__tests__/voice-scoped-grant-consumer.test.ts +0 -1
  236. package/src/__tests__/voice-session-bridge.test.ts +9 -1
  237. package/src/__tests__/web-fetch.test.ts +57 -0
  238. package/src/__tests__/workspace-git-service.test.ts +5 -14
  239. package/src/__tests__/workspace-policy.test.ts +0 -1
  240. package/src/agent/loop.ts +22 -34
  241. package/src/bundler/bundle-signer.ts +4 -4
  242. package/src/calls/call-controller.ts +1 -1
  243. package/src/calls/relay-server.ts +1 -1
  244. package/src/calls/twilio-rest.ts +1 -1
  245. package/src/calls/voice-session-bridge.ts +3 -1
  246. package/src/cli/__tests__/notifications.test.ts +3 -4
  247. package/src/cli/commands/map.ts +2 -6
  248. package/src/cli/commands/mcp.ts +73 -15
  249. package/src/cli/commands/notifications.ts +4 -4
  250. package/src/cli/commands/sessions.ts +9 -1
  251. package/src/cli/commands/skills.ts +6 -10
  252. package/src/cli/http-client.ts +2 -3
  253. package/src/cli/main-screen.tsx +10 -10
  254. package/src/cli/program.ts +0 -4
  255. package/src/cli/reference.ts +0 -2
  256. package/src/cli.ts +15 -9
  257. package/src/config/__tests__/bundled-tool-registry-guard.test.ts +120 -0
  258. package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +11 -0
  259. package/src/config/bundled-skills/app-builder/SKILL.md +6 -1
  260. package/src/config/bundled-skills/browser/SKILL.md +6 -1
  261. package/src/config/bundled-skills/chatgpt-import/SKILL.md +5 -1
  262. package/src/config/bundled-skills/claude-code/SKILL.md +5 -1
  263. package/src/config/bundled-skills/computer-use/SKILL.md +6 -1
  264. package/src/config/bundled-skills/computer-use/TOOLS.json +6 -69
  265. package/src/config/bundled-skills/computer-use/tools/computer-use-click.ts +10 -1
  266. package/src/config/bundled-skills/contacts/SKILL.md +10 -1
  267. package/src/config/bundled-skills/contacts/TOOLS.json +35 -0
  268. package/src/config/bundled-skills/{messaging → contacts}/tools/google-contacts.ts +9 -2
  269. package/src/config/bundled-skills/document/SKILL.md +4 -1
  270. package/src/config/bundled-skills/doordash/SKILL.md +8 -1
  271. package/src/config/bundled-skills/doordash/lib/shared/platform.ts +4 -1
  272. package/src/config/bundled-skills/followups/SKILL.md +4 -1
  273. package/src/config/bundled-skills/gmail/SKILL.md +180 -0
  274. package/src/config/bundled-skills/gmail/TOOLS.json +506 -0
  275. package/src/config/bundled-skills/gmail/tools/gmail-archive.ts +149 -0
  276. package/src/config/bundled-skills/gmail/tools/gmail-attachments.ts +110 -0
  277. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-draft.ts +1 -1
  278. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-filters.ts +1 -1
  279. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-follow-up.ts +1 -1
  280. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-forward.ts +1 -1
  281. package/src/config/bundled-skills/gmail/tools/gmail-label.ts +50 -0
  282. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-outreach-scan.ts +8 -90
  283. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-send-draft.ts +1 -1
  284. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-sender-digest.ts +2 -2
  285. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-trash.ts +1 -1
  286. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-unsubscribe.ts +1 -1
  287. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-vacation.ts +1 -1
  288. package/src/config/bundled-skills/gmail/tools/shared.ts +47 -0
  289. package/src/config/bundled-skills/google-calendar/SKILL.md +5 -1
  290. package/src/config/bundled-skills/image-studio/SKILL.md +5 -1
  291. package/src/config/bundled-skills/knowledge-graph/SKILL.md +4 -1
  292. package/src/config/bundled-skills/media-processing/SKILL.md +7 -13
  293. package/src/config/bundled-skills/media-processing/TOOLS.json +0 -22
  294. package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +12 -1
  295. package/src/config/bundled-skills/messaging/SKILL.md +23 -139
  296. package/src/config/bundled-skills/messaging/TOOLS.json +33 -1215
  297. package/src/config/bundled-skills/messaging/tools/gmail-mime-helpers.ts +42 -0
  298. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +165 -2
  299. package/src/config/bundled-skills/messaging/tools/messaging-sender-digest.ts +1 -13
  300. package/src/config/bundled-skills/messaging/tools/shared.ts +81 -34
  301. package/src/config/bundled-skills/notifications/SKILL.md +5 -1
  302. package/src/config/bundled-skills/orchestration/SKILL.md +30 -0
  303. package/src/config/bundled-skills/orchestration/TOOLS.json +35 -0
  304. package/src/config/bundled-skills/{reminder/tools/reminder-create.ts → orchestration/tools/swarm-delegate.ts} +3 -3
  305. package/src/config/bundled-skills/phone-calls/SKILL.md +9 -1
  306. package/src/config/bundled-skills/playbooks/SKILL.md +4 -1
  307. package/src/config/bundled-skills/schedule/SKILL.md +70 -9
  308. package/src/config/bundled-skills/schedule/TOOLS.json +38 -6
  309. package/src/config/bundled-skills/screen-watch/SKILL.md +28 -0
  310. package/src/config/bundled-skills/screen-watch/TOOLS.json +35 -0
  311. package/src/config/bundled-skills/{reminder/tools/reminder-cancel.ts → screen-watch/tools/start-screen-watch.ts} +3 -3
  312. package/src/config/bundled-skills/sequences/SKILL.md +47 -0
  313. package/src/config/bundled-skills/sequences/TOOLS.json +340 -0
  314. package/src/config/bundled-skills/sequences/tools/sequence-update.ts +128 -0
  315. package/src/config/bundled-skills/sequences/tools/shared.ts +9 -0
  316. package/src/config/bundled-skills/settings/SKILL.md +12 -0
  317. package/src/config/bundled-skills/settings/TOOLS.json +112 -0
  318. package/src/config/bundled-skills/settings/tools/navigate-settings-tab.ts +43 -0
  319. package/src/config/bundled-skills/settings/tools/open-system-settings.ts +52 -0
  320. package/src/config/bundled-skills/{computer-use/tools/computer-use-right-click.ts → settings/tools/set-avatar.ts} +2 -6
  321. package/src/{tools/system/voice-config.ts → config/bundled-skills/settings/tools/voice-config-update.ts} +59 -96
  322. package/src/config/bundled-skills/skill-management/SKILL.md +18 -0
  323. package/src/config/bundled-skills/skill-management/TOOLS.json +90 -0
  324. package/src/config/bundled-skills/{computer-use/tools/computer-use-double-click.ts → skill-management/tools/delete-managed.ts} +2 -6
  325. package/src/config/bundled-skills/skill-management/tools/scaffold-managed.ts +12 -0
  326. package/src/config/bundled-skills/slack/SKILL.md +5 -1
  327. package/src/config/bundled-skills/subagent/SKILL.md +4 -1
  328. package/src/config/bundled-skills/tasks/SKILL.md +5 -2
  329. package/src/config/bundled-skills/transcribe/SKILL.md +4 -1
  330. package/src/config/bundled-skills/watcher/SKILL.md +4 -1
  331. package/src/config/bundled-tool-registry.ts +118 -107
  332. package/src/config/env.ts +5 -2
  333. package/src/config/feature-flag-registry.json +25 -9
  334. package/src/config/loader.ts +10 -2
  335. package/src/config/schema.ts +19 -16
  336. package/src/config/schemas/inference.ts +12 -22
  337. package/src/config/schemas/memory-storage.ts +19 -1
  338. package/src/config/schemas/platform.ts +0 -16
  339. package/src/config/skill-state.ts +11 -8
  340. package/src/config/skills.ts +83 -32
  341. package/src/context/token-estimator.ts +11 -0
  342. package/src/context/window-manager.ts +180 -151
  343. package/src/daemon/computer-use-session.ts +11 -43
  344. package/src/daemon/daemon-control.ts +4 -1
  345. package/src/daemon/handlers/config-channels.ts +5 -9
  346. package/src/daemon/handlers/config-ingress.ts +0 -4
  347. package/src/daemon/handlers/config-model.ts +7 -13
  348. package/src/daemon/handlers/config-telegram.ts +4 -8
  349. package/src/daemon/handlers/config-voice.ts +2 -5
  350. package/src/daemon/handlers/dictation.ts +2 -12
  351. package/src/daemon/handlers/identity.ts +0 -105
  352. package/src/daemon/handlers/recording.ts +3 -23
  353. package/src/daemon/handlers/session-history.ts +1 -1
  354. package/src/daemon/handlers/sessions.ts +53 -72
  355. package/src/daemon/handlers/shared.ts +7 -28
  356. package/src/daemon/handlers/skills.ts +31 -27
  357. package/src/daemon/host-bash-proxy.ts +148 -0
  358. package/src/daemon/host-file-proxy.ts +135 -0
  359. package/src/daemon/lifecycle.ts +49 -24
  360. package/src/daemon/mcp-reload-service.ts +123 -0
  361. package/src/daemon/message-protocol.ts +6 -0
  362. package/src/daemon/message-types/browser.ts +1 -1
  363. package/src/daemon/message-types/computer-use.ts +1 -4
  364. package/src/daemon/message-types/guardian-actions.ts +1 -1
  365. package/src/daemon/message-types/host-bash.ts +18 -0
  366. package/src/daemon/message-types/host-file.ts +44 -0
  367. package/src/daemon/message-types/integrations.ts +1 -67
  368. package/src/daemon/message-types/messages.ts +15 -0
  369. package/src/daemon/message-types/schedules.ts +11 -27
  370. package/src/daemon/message-types/sessions.ts +2 -1
  371. package/src/daemon/message-types/settings.ts +1 -1
  372. package/src/daemon/message-types/shared.ts +1 -1
  373. package/src/daemon/ride-shotgun-handler.ts +2 -42
  374. package/src/daemon/server.ts +43 -10
  375. package/src/daemon/session-agent-loop-handlers.ts +48 -7
  376. package/src/daemon/session-agent-loop.ts +97 -66
  377. package/src/daemon/session-attachments.ts +1 -1
  378. package/src/daemon/session-error.ts +17 -16
  379. package/src/daemon/session-lifecycle.ts +20 -1
  380. package/src/daemon/session-media-retry.ts +1 -15
  381. package/src/daemon/session-messaging.ts +14 -6
  382. package/src/daemon/session-process.ts +36 -7
  383. package/src/daemon/session-queue-manager.ts +62 -103
  384. package/src/daemon/session-runtime-assembly.ts +27 -0
  385. package/src/daemon/session-skill-tools.ts +12 -11
  386. package/src/daemon/session-slash.ts +7 -0
  387. package/src/daemon/session-surfaces.ts +19 -97
  388. package/src/daemon/session-tool-setup.ts +146 -6
  389. package/src/daemon/session.ts +77 -13
  390. package/src/errors.ts +0 -2
  391. package/src/export/formatter.ts +6 -0
  392. package/src/mcp/mcp-oauth-provider.ts +1 -3
  393. package/src/media/avatar-router.ts +20 -28
  394. package/src/media/avatar-types.ts +7 -14
  395. package/src/media/managed-avatar-client.ts +70 -34
  396. package/src/memory/conversation-title-service.ts +1 -2
  397. package/src/memory/db-init.ts +16 -0
  398. package/src/memory/embedding-backend.ts +129 -27
  399. package/src/memory/embedding-gemini.test.ts +256 -0
  400. package/src/memory/embedding-gemini.ts +47 -13
  401. package/src/memory/embedding-local.ts +14 -2
  402. package/src/memory/embedding-ollama.ts +15 -2
  403. package/src/memory/embedding-openai.ts +15 -2
  404. package/src/memory/embedding-types.test.ts +116 -0
  405. package/src/memory/embedding-types.ts +61 -0
  406. package/src/memory/fingerprint.ts +1 -1
  407. package/src/memory/indexer.ts +25 -1
  408. package/src/memory/job-handlers/embedding.test.ts +258 -0
  409. package/src/memory/job-handlers/embedding.ts +81 -1
  410. package/src/memory/job-handlers/index-maintenance.ts +35 -1
  411. package/src/memory/job-handlers/media-processing.ts +11 -1
  412. package/src/memory/job-utils.ts +21 -6
  413. package/src/memory/jobs-store.ts +5 -1
  414. package/src/memory/jobs-worker.ts +8 -0
  415. package/src/memory/message-content.ts +66 -0
  416. package/src/memory/migrations/100-core-tables.ts +1 -31
  417. package/src/memory/migrations/104-core-indexes.ts +0 -11
  418. package/src/memory/migrations/145-drop-accounts-table.ts +19 -0
  419. package/src/memory/migrations/146-schedule-oneshot-routing.ts +94 -0
  420. package/src/memory/migrations/147-migrate-reminders-to-schedules.ts +129 -0
  421. package/src/memory/migrations/148-drop-reminders-table.ts +18 -0
  422. package/src/memory/migrations/index.ts +4 -0
  423. package/src/memory/migrations/registry.ts +19 -0
  424. package/src/memory/qdrant-client.ts +158 -43
  425. package/src/memory/retriever.test.ts +0 -1
  426. package/src/memory/retriever.ts +12 -2
  427. package/src/memory/schema/infrastructure.ts +5 -29
  428. package/src/memory/search/formatting.ts +34 -9
  429. package/src/memory/search/semantic.ts +57 -2
  430. package/src/memory/search/types.ts +2 -1
  431. package/src/notifications/AGENTS.md +2 -2
  432. package/src/notifications/README.md +59 -58
  433. package/src/notifications/adapters/macos.ts +1 -1
  434. package/src/notifications/broadcaster.ts +5 -5
  435. package/src/notifications/copy-composer.ts +1 -1
  436. package/src/notifications/decision-engine.ts +2 -2
  437. package/src/notifications/destination-resolver.ts +2 -2
  438. package/src/notifications/emit-signal.ts +8 -8
  439. package/src/notifications/signal.ts +1 -1
  440. package/src/notifications/thread-seed-composer.ts +1 -1
  441. package/src/oauth/connect-orchestrator.ts +1 -1
  442. package/src/oauth/token-persistence.ts +1 -1
  443. package/src/permissions/checker.ts +12 -1
  444. package/src/permissions/defaults.ts +10 -14
  445. package/src/permissions/trust-store.ts +37 -0
  446. package/src/permissions/workspace-policy.ts +0 -1
  447. package/src/prompts/__tests__/build-cli-reference-section.test.ts +11 -0
  448. package/src/prompts/computer-use-prompt.ts +1 -1
  449. package/src/prompts/system-prompt.ts +29 -30
  450. package/src/prompts/templates/SOUL.md +1 -2
  451. package/src/prompts/templates/UPDATES.md +16 -7
  452. package/src/providers/anthropic/client.ts +87 -33
  453. package/src/providers/gemini/client.ts +6 -0
  454. package/src/providers/managed-proxy/constants.ts +5 -0
  455. package/src/providers/openai/client.ts +15 -0
  456. package/src/providers/registry.ts +2 -2
  457. package/src/providers/types.ts +24 -2
  458. package/src/runtime/AGENTS.md +18 -0
  459. package/src/runtime/assistant-event-hub.ts +2 -3
  460. package/src/runtime/assistant-event.ts +4 -4
  461. package/src/runtime/auth/__tests__/context.test.ts +5 -5
  462. package/src/runtime/auth/__tests__/credential-service.test.ts +0 -1
  463. package/src/runtime/auth/__tests__/guard-tests.test.ts +2 -2
  464. package/src/runtime/auth/__tests__/{ipc-auth-context.test.ts → local-auth-context.test.ts} +21 -21
  465. package/src/runtime/auth/__tests__/route-policy.test.ts +2 -2
  466. package/src/runtime/auth/__tests__/scopes.test.ts +7 -7
  467. package/src/runtime/auth/__tests__/subject.test.ts +8 -8
  468. package/src/runtime/auth/__tests__/token-service.test.ts +0 -1
  469. package/src/runtime/auth/route-policy.ts +8 -4
  470. package/src/runtime/auth/scopes.ts +1 -1
  471. package/src/runtime/auth/subject.ts +4 -4
  472. package/src/runtime/auth/token-service.ts +0 -23
  473. package/src/runtime/auth/types.ts +3 -3
  474. package/src/runtime/guardian-action-followup-executor.ts +1 -1
  475. package/src/runtime/guardian-action-grant-minter.ts +1 -1
  476. package/src/runtime/guardian-action-service.ts +3 -3
  477. package/src/runtime/http-server.ts +15 -2
  478. package/src/runtime/invite-service.ts +3 -3
  479. package/src/runtime/local-actor-identity.ts +17 -22
  480. package/src/runtime/pending-interactions.ts +21 -9
  481. package/src/runtime/routes/app-management-routes.ts +2 -3
  482. package/src/runtime/routes/approval-routes.ts +1 -3
  483. package/src/runtime/routes/btw-routes.ts +155 -0
  484. package/src/runtime/routes/computer-use-routes.ts +77 -31
  485. package/src/runtime/routes/conversation-routes.ts +230 -46
  486. package/src/runtime/routes/diagnostics-routes.ts +63 -29
  487. package/src/runtime/routes/documents-routes.ts +2 -2
  488. package/src/runtime/routes/global-search-routes.ts +1 -1
  489. package/src/runtime/routes/host-bash-routes.ts +83 -0
  490. package/src/runtime/routes/host-file-routes.ts +79 -0
  491. package/src/runtime/routes/integrations/slack/share.ts +1 -1
  492. package/src/runtime/routes/log-export-routes.ts +120 -0
  493. package/src/runtime/routes/mcp-routes.ts +20 -0
  494. package/src/runtime/routes/migration-routes.ts +3 -3
  495. package/src/runtime/routes/pairing-routes.ts +1 -1
  496. package/src/runtime/routes/recording-routes.ts +6 -4
  497. package/src/runtime/routes/schedule-routes.ts +31 -5
  498. package/src/runtime/routes/session-management-routes.ts +2 -6
  499. package/src/runtime/routes/session-query-routes.ts +18 -15
  500. package/src/runtime/routes/settings-routes.ts +7 -261
  501. package/src/runtime/routes/skills-routes.ts +7 -6
  502. package/src/runtime/routes/subagents-routes.ts +4 -10
  503. package/src/runtime/routes/surface-action-routes.ts +3 -14
  504. package/src/runtime/routes/surface-content-routes.ts +22 -5
  505. package/src/runtime/routes/work-items-routes.ts +21 -25
  506. package/src/runtime/routes/workspace-routes.test.ts +3 -3
  507. package/src/runtime/routes/workspace-utils.ts +1 -1
  508. package/src/runtime/telegram-streaming-delivery.ts +3 -0
  509. package/src/runtime/verification-outbound-actions.ts +2 -2
  510. package/src/schedule/integration-status.ts +0 -6
  511. package/src/schedule/schedule-store.ts +234 -43
  512. package/src/schedule/scheduler.ts +73 -74
  513. package/src/security/oauth2.ts +1 -1
  514. package/src/sequence/store.ts +12 -2
  515. package/src/skills/frontmatter.ts +19 -77
  516. package/src/skills/managed-store.ts +11 -2
  517. package/src/subagent/manager.ts +5 -3
  518. package/src/tasks/ephemeral-permissions.ts +3 -5
  519. package/src/tools/AGENTS.md +0 -1
  520. package/src/tools/browser/browser-manager.ts +17 -11
  521. package/src/tools/browser/jit-auth.ts +4 -1
  522. package/src/tools/claude-code/claude-code.ts +1 -1
  523. package/src/tools/computer-use/definitions.ts +48 -60
  524. package/src/tools/document/document-tool.ts +6 -6
  525. package/src/tools/filesystem/edit.ts +2 -1
  526. package/src/tools/filesystem/read.ts +20 -2
  527. package/src/tools/filesystem/write.ts +2 -1
  528. package/src/tools/host-filesystem/edit.ts +17 -1
  529. package/src/tools/host-filesystem/read.ts +16 -1
  530. package/src/tools/host-filesystem/write.ts +15 -1
  531. package/src/tools/host-terminal/host-shell.ts +24 -0
  532. package/src/tools/memory/definitions.ts +45 -81
  533. package/src/tools/memory/handlers.test.ts +0 -1
  534. package/src/tools/memory/handlers.ts +1 -1
  535. package/src/tools/memory/register.ts +26 -60
  536. package/src/tools/network/script-proxy/session-manager.ts +6 -8
  537. package/src/tools/network/web-fetch.ts +7 -1
  538. package/src/tools/network/web-search.ts +2 -1
  539. package/src/tools/registry.ts +23 -0
  540. package/src/tools/schedule/create.ts +113 -5
  541. package/src/tools/schedule/list.ts +57 -15
  542. package/src/tools/schedule/update.ts +73 -3
  543. package/src/tools/shared/filesystem/image-read.ts +192 -0
  544. package/src/tools/side-effects.ts +1 -7
  545. package/src/tools/skills/delete-managed.ts +27 -64
  546. package/src/tools/skills/execute.ts +54 -0
  547. package/src/tools/skills/load.ts +127 -5
  548. package/src/tools/skills/scaffold-managed.ts +93 -172
  549. package/src/tools/subagent/message.ts +0 -7
  550. package/src/tools/subagent/spawn.ts +1 -1
  551. package/src/tools/swarm/delegate.ts +0 -3
  552. package/src/tools/system/avatar-generator.ts +13 -19
  553. package/src/tools/system/request-permission.ts +2 -1
  554. package/src/tools/terminal/safe-env.ts +1 -0
  555. package/src/tools/tool-manifest.ts +41 -47
  556. package/src/tools/types.ts +6 -2
  557. package/src/tools/ui-surface/definitions.ts +0 -55
  558. package/src/util/errors.ts +0 -10
  559. package/src/workspace/git-service.ts +0 -2
  560. package/src/__tests__/account-registry.test.ts +0 -258
  561. package/src/__tests__/email-classifier.test.ts +0 -25
  562. package/src/__tests__/gmail-integration.test.ts +0 -97
  563. package/src/__tests__/handle-user-message-secret-resume.test.ts +0 -172
  564. package/src/__tests__/managed-twitter-guardrails.test.ts +0 -357
  565. package/src/__tests__/recording-intent-fallback.test.ts +0 -199
  566. package/src/__tests__/recording-intent.test.ts +0 -985
  567. package/src/__tests__/recording-state-machine.test.ts +0 -1574
  568. package/src/__tests__/reminder-store.test.ts +0 -350
  569. package/src/__tests__/reminder.test.ts +0 -337
  570. package/src/__tests__/scan-result-store.test.ts +0 -121
  571. package/src/__tests__/twitter-platform-proxy-client.test.ts +0 -475
  572. package/src/__tests__/view-image-tool.test.ts +0 -241
  573. package/src/cli/commands/amazon/cart.ts +0 -513
  574. package/src/cli/commands/amazon/checkout.ts +0 -394
  575. package/src/cli/commands/amazon/client.ts +0 -513
  576. package/src/cli/commands/amazon/index.ts +0 -885
  577. package/src/cli/commands/amazon/product-details.ts +0 -145
  578. package/src/cli/commands/amazon/request-extractor.ts +0 -187
  579. package/src/cli/commands/amazon/search.ts +0 -76
  580. package/src/cli/commands/amazon/session.ts +0 -108
  581. package/src/cli/commands/twitter/__tests__/cli-read-routing.test.ts +0 -345
  582. package/src/cli/commands/twitter/__tests__/cli-routing.test.ts +0 -252
  583. package/src/cli/commands/twitter/__tests__/oauth-client.test.ts +0 -151
  584. package/src/cli/commands/twitter/index.ts +0 -420
  585. package/src/cli/commands/twitter/oauth-client.ts +0 -60
  586. package/src/cli/commands/twitter/router.ts +0 -351
  587. package/src/cli/commands/twitter/types.ts +0 -30
  588. package/src/config/bundled-skills/agentmail/SKILL.md +0 -132
  589. package/src/config/bundled-skills/agentmail/icon.svg +0 -21
  590. package/src/config/bundled-skills/amazon/SKILL.md +0 -136
  591. package/src/config/bundled-skills/amazon/icon.svg +0 -13
  592. package/src/config/bundled-skills/api-mapping/SKILL.md +0 -78
  593. package/src/config/bundled-skills/api-mapping/icon.svg +0 -18
  594. package/src/config/bundled-skills/cli-discover/SKILL.md +0 -68
  595. package/src/config/bundled-skills/deploy-fullstack-vercel/SKILL.md +0 -179
  596. package/src/config/bundled-skills/document-writer/SKILL.md +0 -195
  597. package/src/config/bundled-skills/elevenlabs-voice/SKILL.md +0 -140
  598. package/src/config/bundled-skills/email-setup/SKILL.md +0 -68
  599. package/src/config/bundled-skills/frontend-design/SKILL.md +0 -44
  600. package/src/config/bundled-skills/frontend-design/icon.svg +0 -16
  601. package/src/config/bundled-skills/google-oauth-setup/SKILL.md +0 -452
  602. package/src/config/bundled-skills/guardian-verify-setup/SKILL.md +0 -203
  603. package/src/config/bundled-skills/influencer/SKILL.md +0 -144
  604. package/src/config/bundled-skills/influencer/scripts/client.ts +0 -1269
  605. package/src/config/bundled-skills/influencer/scripts/influencer.ts +0 -267
  606. package/src/config/bundled-skills/macos-automation/SKILL.md +0 -65
  607. package/src/config/bundled-skills/macos-automation/icon.svg +0 -12
  608. package/src/config/bundled-skills/mcp-setup/SKILL.md +0 -75
  609. package/src/config/bundled-skills/media-processing/tools/media-diagnostics.ts +0 -184
  610. package/src/config/bundled-skills/messaging/tools/gmail-archive-by-query.ts +0 -80
  611. package/src/config/bundled-skills/messaging/tools/gmail-archive.ts +0 -29
  612. package/src/config/bundled-skills/messaging/tools/gmail-batch-archive.ts +0 -56
  613. package/src/config/bundled-skills/messaging/tools/gmail-batch-label.ts +0 -34
  614. package/src/config/bundled-skills/messaging/tools/gmail-download-attachment.ts +0 -47
  615. package/src/config/bundled-skills/messaging/tools/gmail-label.ts +0 -31
  616. package/src/config/bundled-skills/messaging/tools/gmail-list-attachments.ts +0 -67
  617. package/src/config/bundled-skills/messaging/tools/gmail-send-with-attachments.ts +0 -97
  618. package/src/config/bundled-skills/messaging/tools/gmail-summarize-thread.ts +0 -87
  619. package/src/config/bundled-skills/messaging/tools/gmail-triage.ts +0 -135
  620. package/src/config/bundled-skills/messaging/tools/messaging-analyze-activity.ts +0 -24
  621. package/src/config/bundled-skills/messaging/tools/messaging-reply.ts +0 -201
  622. package/src/config/bundled-skills/messaging/tools/send-notification.ts +0 -1
  623. package/src/config/bundled-skills/messaging/tools/sequence-cancel.ts +0 -27
  624. package/src/config/bundled-skills/messaging/tools/sequence-pause.ts +0 -48
  625. package/src/config/bundled-skills/messaging/tools/sequence-resume.ts +0 -27
  626. package/src/config/bundled-skills/messaging/tools/sequence-update.ts +0 -56
  627. package/src/config/bundled-skills/notion/SKILL.md +0 -240
  628. package/src/config/bundled-skills/notion-oauth-setup/SKILL.md +0 -126
  629. package/src/config/bundled-skills/oauth-setup/SKILL.md +0 -143
  630. package/src/config/bundled-skills/public-ingress/SKILL.md +0 -258
  631. package/src/config/bundled-skills/reminder/SKILL.md +0 -79
  632. package/src/config/bundled-skills/reminder/TOOLS.json +0 -89
  633. package/src/config/bundled-skills/reminder/tools/reminder-list.ts +0 -12
  634. package/src/config/bundled-skills/restaurant-reservation/SKILL.md +0 -141
  635. package/src/config/bundled-skills/screen-recording/SKILL.md +0 -148
  636. package/src/config/bundled-skills/self-upgrade/SKILL.md +0 -69
  637. package/src/config/bundled-skills/skills-catalog/SKILL.md +0 -78
  638. package/src/config/bundled-skills/slack-app-setup/SKILL.md +0 -178
  639. package/src/config/bundled-skills/slack-digest-setup/SKILL.md +0 -163
  640. package/src/config/bundled-skills/slack-oauth-setup/SKILL.md +0 -157
  641. package/src/config/bundled-skills/start-the-day/SKILL.md +0 -70
  642. package/src/config/bundled-skills/start-the-day/icon.svg +0 -13
  643. package/src/config/bundled-skills/telegram-setup/SKILL.md +0 -105
  644. package/src/config/bundled-skills/time-based-actions/SKILL.md +0 -142
  645. package/src/config/bundled-skills/twilio-setup/SKILL.md +0 -232
  646. package/src/config/bundled-skills/twitter/SKILL.md +0 -206
  647. package/src/config/bundled-skills/twitter/icon.svg +0 -14
  648. package/src/config/bundled-skills/typescript-eval/SKILL.md +0 -60
  649. package/src/config/bundled-skills/vercel-token-setup/SKILL.md +0 -214
  650. package/src/config/bundled-skills/voice-setup/SKILL.md +0 -131
  651. package/src/config/bundled-skills/voice-setup/icon.svg +0 -20
  652. package/src/daemon/handlers/pairing.ts +0 -119
  653. package/src/daemon/handlers/session-user-message.ts +0 -961
  654. package/src/daemon/recording-executor.ts +0 -180
  655. package/src/daemon/recording-intent-fallback.ts +0 -162
  656. package/src/daemon/recording-intent.ts +0 -493
  657. package/src/memory/account-store.ts +0 -117
  658. package/src/messaging/activity-analyzer.ts +0 -76
  659. package/src/messaging/email-classifier.ts +0 -208
  660. package/src/messaging/index.ts +0 -2
  661. package/src/messaging/outreach-classifier.ts +0 -185
  662. package/src/messaging/thread-summarizer.ts +0 -346
  663. package/src/messaging/types.ts +0 -17
  664. package/src/tools/browser/x-auto-navigate.ts +0 -254
  665. package/src/tools/credentials/account-registry.ts +0 -144
  666. package/src/tools/filesystem/view-image.ts +0 -244
  667. package/src/tools/reminder/reminder-store.ts +0 -194
  668. package/src/tools/reminder/reminder.ts +0 -158
  669. package/src/tools/system/navigate-settings.ts +0 -74
  670. package/src/tools/system/open-system-settings.ts +0 -85
  671. package/src/tools/system/version.ts +0 -54
  672. package/src/twitter/platform-proxy-client.ts +0 -408
  673. /package/src/config/bundled-skills/{messaging → gmail}/tools/scan-result-store.ts +0 -0
  674. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-analytics.ts +0 -0
  675. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-create.ts +0 -0
  676. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-delete.ts +0 -0
  677. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-enroll.ts +0 -0
  678. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-enrollment-list.ts +0 -0
  679. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-get.ts +0 -0
  680. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-import.ts +0 -0
  681. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-list.ts +0 -0
@@ -1,78 +0,0 @@
1
- ---
2
- name: api-mapping
3
- description: Record and analyze API surfaces of web services
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"🗺️","vellum":{"display-name":"API Mapping","user-invocable":true}}
6
- ---
7
-
8
- You can record and analyze the API surface of any web service using the `map` CLI.
9
-
10
- ## CLI Setup
11
-
12
- **IMPORTANT: Always use `host_bash` (not `bash`) for all `map` commands.** The API mapping CLI needs host access for Chrome CDP, network recording, and browser automation — none of which are available inside the sandbox.
13
-
14
- `map` is a standalone CLI tool installed at `~/.vellum/bin/map`. It should already be on your PATH. If `map` is not found, prepend `PATH="$HOME/.vellum/bin:$PATH"` to the command. Do NOT search for the binary or try to discover how the CLI works. Just run the commands as documented below.
15
-
16
- ## Typical Flow
17
-
18
- When the user wants to map a web service's API (e.g. "Map the Notion API" or "Figure out how Figma's API works"):
19
-
20
- 1. **Ask about the objective** — Ask the user: "What service do you want to map?" and "What are you trying to build or integrate with?" This helps focus the recording on the relevant parts of the API surface.
21
-
22
- 2. **Choose mode** — Ask the user: "Should I browse automatically, or do you want to drive?" This determines whether to use auto mode or manual mode:
23
- - **Auto mode**: The CLI launches a headless browser, navigates the service, and records API calls automatically. Best for broad discovery.
24
- - **Manual mode**: A Chrome window opens for the user to interact with the service while the CLI records all API traffic in the background. Best for capturing a specific workflow.
25
-
26
- 3. **Run the mapping** — Execute the appropriate `map` command:
27
- - Auto mode: `map <domain> --json`
28
- - Manual mode: `map <domain> --manual --json`
29
- - For longer sessions: `map <domain> --duration 120 --json`
30
-
31
- 4. **Wait for recording to complete** — In auto mode, the CLI will browse and record for the default duration (60 seconds) then stop. In manual mode, the CLI blocks until the user closes the browser or presses Ctrl+C. The command outputs a JSON summary of all discovered endpoints.
32
-
33
- 5. **Analyze the API map** — Review the output and present findings to the user:
34
- - List discovered endpoints grouped by resource type (e.g., `/api/v1/users`, `/api/v1/documents`)
35
- - Note authentication patterns (Bearer tokens, cookies, API keys)
36
- - Identify CRUD operations and their HTTP methods
37
- - Highlight any WebSocket or streaming endpoints
38
- - Call out rate limiting headers or pagination patterns
39
-
40
- 6. **Offer next steps** — Based on the discovered API surface, offer to:
41
- - Create CLI tools that wrap the discovered endpoints
42
- - Generate TypeScript types from observed request/response payloads
43
- - Build a focused integration for the user's specific use case
44
- - Re-record with a longer duration or manual mode to capture more endpoints
45
-
46
- ## Important Behavior
47
-
48
- - **Be proactive.** If the user names a service, start mapping immediately rather than asking unnecessary clarifying questions. Ask about mode preference, then go.
49
- - **Always use `--json` flag** on all commands for reliable parsing.
50
- - **Present findings clearly.** Group endpoints logically, show HTTP methods, and highlight the most useful ones for the user's stated objective.
51
- - **Suggest manual mode for authenticated services.** If auto mode returns mostly auth redirects or login pages, suggest switching to manual mode so the user can log in first.
52
- - **Handle errors gracefully.** If the domain is unreachable or the recording captures no API calls, suggest checking the domain, trying manual mode, or increasing the duration.
53
-
54
- ## Command Reference
55
-
56
- ```
57
- map <domain> --json # Auto mode: browse and record API calls (default 60s)
58
- map <domain> --manual --json # Manual mode: user drives the browser, CLI records
59
- map <domain> --duration <secs> --json # Auto mode with custom duration
60
- map <domain> --manual --duration <secs> --json # Manual mode with custom timeout
61
- ```
62
-
63
- ## Example Interaction
64
-
65
- **User**: "Map the Notion API"
66
-
67
- 1. Ask: "What are you trying to build with Notion? And should I browse automatically, or do you want to drive the browser?"
68
- 2. User says: "I want to build a CLI to manage my pages. I'll drive."
69
- 3. `map notion.com --manual --json` -> Chrome window opens
70
- 4. Tell user: "A Chrome window is open. Log into Notion and do a representative workflow — create a page, edit it, maybe move it. I'll record all API calls in the background. Close the browser when you're done."
71
- 5. User closes browser -> CLI outputs discovered endpoints
72
- 6. Present findings: "I found 14 API endpoints. Here are the key ones for page management:
73
- - `POST /api/v3/getSpaces` — lists workspaces
74
- - `POST /api/v3/syncRecordValues` — fetches page content
75
- - `POST /api/v3/submitTransaction` — creates/updates pages
76
- - `POST /api/v3/enqueueTask` — async operations (export, duplicate)
77
- Authentication: Cookie-based session with `token_v2`."
78
- 7. Offer: "Want me to create a CLI tool that wraps these endpoints for managing Notion pages?"
@@ -1,18 +0,0 @@
1
- <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2
- <rect width="16" height="16" fill="#0f172a"/>
3
- <rect x="2" y="2" width="12" height="12" fill="#1e293b"/>
4
- <rect x="3" y="3" width="10" height="10" fill="#0f172a" stroke="#3b82f6" stroke-width="1"/>
5
- <rect x="4" y="4" width="2" height="2" fill="#3b82f6"/>
6
- <rect x="10" y="4" width="2" height="2" fill="#3b82f6"/>
7
- <rect x="4" y="10" width="2" height="2" fill="#3b82f6"/>
8
- <rect x="10" y="10" width="2" height="2" fill="#3b82f6"/>
9
- <line x1="5" y1="5" x2="11" y2="5" stroke="#10b981" stroke-width="1"/>
10
- <line x1="5" y1="5" x2="5" y2="11" stroke="#10b981" stroke-width="1"/>
11
- <line x1="11" y1="5" x2="11" y2="11" stroke="#10b981" stroke-width="1"/>
12
- <line x1="5" y1="11" x2="11" y2="11" stroke="#10b981" stroke-width="1"/>
13
- <rect x="7" y="7" width="2" height="2" fill="#f59e0b"/>
14
- <line x1="5" y1="8" x2="7" y2="8" stroke="#60a5fa" stroke-width="1"/>
15
- <line x1="9" y1="8" x2="11" y2="8" stroke="#60a5fa" stroke-width="1"/>
16
- <line x1="8" y1="5" x2="8" y2="7" stroke="#60a5fa" stroke-width="1"/>
17
- <line x1="8" y1="9" x2="8" y2="11" stroke="#60a5fa" stroke-width="1"/>
18
- </svg>
@@ -1,68 +0,0 @@
1
- ---
2
- name: cli-discover
3
- description: Discover which CLI tools are installed, their versions, and authentication status
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"🔍","vellum":{"display-name":"CLI Discovery","user-invocable":false}}
6
- ---
7
-
8
- # CLI Discovery
9
-
10
- When you need to discover what CLI tools are available on the system, use `host_bash` to check directly. Do not use sandboxed `bash` for discovery — it may not see host-installed CLIs or auth state, leading to false negatives.
11
-
12
- ## Checking if a CLI exists
13
-
14
- ```bash
15
- which <name> # returns path if found, exits non-zero if missing
16
- command -v <name> # alternative, works in all POSIX shells
17
- ```
18
-
19
- ## Getting version info
20
-
21
- ```bash
22
- <name> --version # most CLIs support this flag
23
- ```
24
-
25
- Use a 5-second timeout to avoid hanging on unresponsive CLIs.
26
-
27
- ## Auth-check commands
28
-
29
- For CLIs that support authentication, check whether the user is logged in:
30
-
31
- | CLI | Auth check command |
32
- |-----|-------------------|
33
- | `gh` | `gh auth status` |
34
- | `aws` | `aws sts get-caller-identity` |
35
- | `gcloud` | `gcloud auth list --filter=status:ACTIVE --format=value(account)` |
36
- | `az` | `az account show` |
37
- | `vercel` | `vercel whoami` |
38
- | `netlify` | `netlify status` |
39
- | `fly` | `fly auth whoami` |
40
- | `heroku` | `heroku auth:whoami` |
41
- | `railway` | `railway whoami` |
42
-
43
- ## Common CLIs worth checking
44
-
45
- When doing a broad discovery, check these categories:
46
-
47
- - **Version control & code hosting:** `gh`, `git`, `gitlab`
48
- - **Project management:** `linear`, `jira`
49
- - **Communication:** `slack`
50
- - **Cloud providers:** `aws`, `gcloud`, `az`
51
- - **Containers & infra:** `docker`, `kubectl`, `terraform`
52
- - **Runtimes & package managers:** `node`, `bun`, `deno`, `python3`, `pip3`
53
- - **HTTP clients:** `curl`, `httpie`
54
- - **Hosting & deploy:** `vercel`, `netlify`, `fly`, `heroku`, `railway`
55
-
56
- ## Output format
57
-
58
- Report findings in markdown:
59
-
60
- ```markdown
61
- ## Available CLIs
62
-
63
- - **git** (/usr/bin/git) — git version 2.x.x
64
- - **gh** (/usr/bin/gh) — gh version 2.x.x [authenticated: user@example.com]
65
- - **bun** (~/.bun/bin/bun) — 1.x.x
66
-
67
- ## Not found: jira, linear, slack
68
- ```
@@ -1,179 +0,0 @@
1
- ---
2
- name: deploy-fullstack-vercel
3
- description: Build and deploy a full-stack app (React frontend + Python/FastAPI backend) to Vercel as a serverless demo with seeded data
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"🚀","vellum":{"display-name":"Deploy Fullstack to Vercel"}}
6
- ---
7
-
8
- # Deploy Fullstack to Vercel
9
-
10
- Deploy a full-stack app with a React/Vite frontend and Python/FastAPI backend to Vercel as a serverless demo. No auth required — meant for demos, portfolio pieces, and quick showcases.
11
-
12
- ## When to Use
13
-
14
- - User says "deploy this to Vercel", "host this", "publish this"
15
- - User has a project with a frontend + backend they want live
16
- - User wants a quick demo deployment (no persistent database needed)
17
-
18
- ## Prerequisites
19
-
20
- - A project with a frontend (React/Vite) and backend (FastAPI/Python)
21
- - Vercel CLI installed (`npm install -g vercel`) and authenticated (`vercel login`)
22
-
23
- ## Workflow
24
-
25
- ### 1. Build the Frontend
26
-
27
- ```bash
28
- cd <project>/frontend
29
- npm install
30
- npx vite build
31
- ```
32
-
33
- This produces static files in `frontend/dist/`.
34
-
35
- ### 2. Create the Vercel Deploy Directory
36
-
37
- ```
38
- <project>/vercel-deploy/
39
- ├── api/
40
- │ ├── index.py ← FastAPI app wrapper (entry point)
41
- │ ├── database.py ← DB config (use /tmp for SQLite)
42
- │ ├── models.py
43
- │ ├── schemas.py
44
- │ ├── seed_data.py ← Must seed ALL required data (users, etc.)
45
- │ ├── routers/
46
- │ │ ├── __init__.py
47
- │ │ └── *.py
48
- │ └── requirements.txt ← Python deps (fastapi, sqlalchemy, pydantic)
49
- ├── index.html ← From frontend/dist/
50
- ├── assets/ ← From frontend/dist/assets/
51
- └── vercel.json
52
- ```
53
-
54
- **Key steps:**
55
- ```bash
56
- mkdir -p <project>/vercel-deploy/api
57
-
58
- # Copy frontend build output to deploy root
59
- cp -r <project>/frontend/dist/* <project>/vercel-deploy/
60
-
61
- # Copy backend files into api/
62
- cp <project>/backend/models.py <project>/vercel-deploy/api/
63
- cp <project>/backend/database.py <project>/vercel-deploy/api/
64
- cp <project>/backend/schemas.py <project>/vercel-deploy/api/
65
- cp <project>/backend/seed_data.py <project>/vercel-deploy/api/
66
- cp -r <project>/backend/routers <project>/vercel-deploy/api/
67
- cp <project>/backend/requirements.txt <project>/vercel-deploy/api/
68
- ```
69
-
70
- ### 3. Create api/index.py (Serverless Entry Point)
71
-
72
- ```python
73
- import sys, os
74
- sys.path.insert(0, os.path.dirname(__file__))
75
-
76
- from fastapi import FastAPI
77
- from fastapi.middleware.cors import CORSMiddleware
78
- from database import engine, Base, SessionLocal
79
- from seed_data import seed_exercises, seed_default_user # all seed functions
80
- from routers import users, exercises, workouts, schedule, progress
81
-
82
- # Create tables and seed on EVERY cold start
83
- Base.metadata.create_all(bind=engine)
84
- db = SessionLocal()
85
- try:
86
- seed_exercises(db)
87
- seed_default_user(db) # IMPORTANT: seed all required data
88
- finally:
89
- db.close()
90
-
91
- app = FastAPI(title="MyApp")
92
-
93
- app.add_middleware(
94
- CORSMiddleware,
95
- allow_origins=["*"],
96
- allow_credentials=True,
97
- allow_methods=["*"],
98
- allow_headers=["*"],
99
- )
100
-
101
- app.include_router(users.router)
102
- # ... other routers
103
-
104
- @app.get("/api/health")
105
- def health_check():
106
- return {"status": "ok"}
107
- ```
108
-
109
- ### 4. Update database.py for Vercel
110
-
111
- **Critical:** Vercel serverless functions can only write to `/tmp`. Update the SQLite path:
112
-
113
- ```python
114
- SQLALCHEMY_DATABASE_URL = "sqlite:////tmp/app.db"
115
- ```
116
-
117
- ### 5. Seed ALL Required Data
118
-
119
- **This is the #1 gotcha.** Since `/tmp` is ephemeral, every cold start gets a fresh database. If your frontend assumes certain data exists (like user ID 1), you MUST seed it:
120
-
121
- ```python
122
- def seed_default_user(db: Session):
123
- count = db.query(UserProfile).count()
124
- if count > 0:
125
- return
126
- user = UserProfile(name="Demo User", ...)
127
- db.add(user)
128
- db.commit()
129
- ```
130
-
131
- ### 6. Create vercel.json
132
-
133
- ```json
134
- {
135
- "rewrites": [
136
- { "source": "/api/(.*)", "destination": "/api/index.py" },
137
- { "source": "/((?!assets/).*)", "destination": "/index.html" }
138
- ]
139
- }
140
- ```
141
-
142
- This routes:
143
- - `/api/*` → Python serverless function
144
- - Everything else → React SPA (index.html)
145
-
146
- ### 7. Deploy
147
-
148
- ```bash
149
- cd <project>/vercel-deploy
150
- vercel --yes --prod
151
- ```
152
-
153
- ### 8. Verify
154
-
155
- ```bash
156
- curl -s <deployed-url>/api/health
157
- # Should return: {"status":"ok"}
158
- ```
159
-
160
- ## Gotchas & Limitations
161
-
162
- | Issue | Solution |
163
- |-------|----------|
164
- | SQLite resets on cold start | Seed ALL required data in index.py startup |
165
- | No persistent storage | Acceptable for demos. For production, use Vercel Postgres or Supabase |
166
- | No auth | Fine for demos/portfolios. Add auth layer for real apps |
167
- | `requirements.txt` location | Must be inside `api/` folder (next to index.py) |
168
- | Module imports in routers | Use `sys.path.insert(0, os.path.dirname(__file__))` in index.py |
169
- | CORS | Set `allow_origins=["*"]` for demo deployments |
170
- | `--name` flag deprecated | Don't use `--name` with Vercel CLI, just deploy from the directory |
171
-
172
- ## Vercel CLI Quick Reference
173
-
174
- ```bash
175
- npm install -g vercel # Install
176
- vercel login # Authenticate (opens browser)
177
- vercel --yes --prod # Deploy to production (skip prompts)
178
- vercel logs --project <name> # Check function logs
179
- ```
@@ -1,195 +0,0 @@
1
- ---
2
- name: document-writer
3
- description: Create and edit long-form documents like blog posts, articles, essays, and reports using the built-in rich text editor
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"📝","vellum":{"display-name":"Document Writer","user-invocable":true}}
6
- ---
7
-
8
- You are helping your user write long-form content (blog posts, articles, essays, reports, documentation) using the built-in document editor. This skill should be used whenever the user asks to write, draft, or create any document-like content.
9
-
10
- ## When to Use This Skill
11
-
12
- **ALWAYS use this skill when the user asks for:**
13
- - Blog posts
14
- - Articles
15
- - Essays
16
- - Reports
17
- - Guides or tutorials
18
- - Documentation
19
- - Any long-form written content (500+ words)
20
-
21
- **DO NOT use this skill for:**
22
- - Short responses or explanations (< 500 words)
23
- - Code snippets or technical implementations
24
- - Interactive apps or dashboards (use `app_create` instead)
25
- - Quick summaries
26
-
27
- ## Workflow
28
-
29
- ### Step 1: Create the Document
30
-
31
- Use `document_create` to open the built-in rich text editor:
32
-
33
- ```json
34
- {
35
- "title": "The title of the document (inferred from user's request)",
36
- "initial_content": "Optional starting content in Markdown format"
37
- }
38
- ```
39
-
40
- **Important:** The editor opens in the Documents tab of the Directory panel, with chat docked to the side. The user can see both the editor and chat simultaneously.
41
-
42
- ### Step 2: Generate Content
43
-
44
- Write the content in **Markdown format**. Use proper structure:
45
-
46
- - `#` for main title
47
- - `##` for section headings
48
- - `###` for subsections
49
- - `**bold**` and `*italic*` for emphasis
50
- - ` ```language ` for code blocks
51
- - `[text](url)` for links
52
- - `- ` or `1. ` for lists
53
- - `> ` for blockquotes
54
- - Tables, images, and other Markdown features as appropriate
55
-
56
- **Quality standards:**
57
- - Write in clear, engaging prose appropriate for the content type
58
- - Use active voice and vary sentence structure
59
- - Break content into logical sections with descriptive headings
60
- - Include transitions between sections
61
- - For technical content: use code blocks with syntax highlighting
62
- - For data-heavy content: use Markdown tables
63
-
64
- ### Step 3: Stream Content to Editor
65
-
66
- Use `document_update` to send content to the editor as you generate it:
67
-
68
- ```json
69
- {
70
- "surface_id": "doc-xyz",
71
- "content": "# Main Title\n\nYour content here...",
72
- "mode": "append"
73
- }
74
- ```
75
-
76
- **Streaming strategy:**
77
- - Generate content in logical chunks (paragraphs or sections)
78
- - Use `mode: "append"` to stream chunks as you write
79
- - The content appears in real-time in the editor
80
- - Don't wait to generate everything before sending - stream it!
81
-
82
- ### Step 4: Handle User Edits and Requests
83
-
84
- The user can request changes via the docked chat while viewing the document:
85
-
86
- **Common requests:**
87
- - "Make the intro shorter"
88
- - "Add a section about X"
89
- - "Change the tone to be more formal"
90
- - "Fix the grammar in paragraph 3"
91
-
92
- **How to respond:**
93
- - Acknowledge the request
94
- - Generate the updated content
95
- - Use `document_update` with:
96
- - `mode: "replace"` for complete rewrites
97
- - `mode: "append"` for additions at the end
98
- - For edits in the middle: use `mode: "replace"` with the full updated document
99
-
100
- ### Step 5: Finalize
101
-
102
- Once the user is satisfied:
103
- - Confirm the document is complete
104
- - Remind them that it's automatically saved in the Generated panel
105
- - Let them know they can continue editing manually or ask for more changes
106
-
107
- ## Examples
108
-
109
- ### Example 1: Blog Post Request
110
-
111
- **User:** "Write a blog post about the future of AI"
112
-
113
- **Your response:**
114
- ```
115
- I'll create a document for your blog post about the future of AI.
116
- ```
117
-
118
- Then:
119
- 1. Call `document_create` with `title: "The Future of AI"`
120
- 2. Generate content in chunks, calling `document_update` repeatedly:
121
- - First chunk: `# The Future of AI\n\nArtificial intelligence is...`
122
- - Second chunk: `## Current State\n\nToday, AI systems...`
123
- - Third chunk: `## Emerging Trends\n\n1. **Multimodal AI**...`
124
- - Continue until complete
125
-
126
- ### Example 2: Edit Request
127
-
128
- **User (after initial creation):** "Add a section about ethical considerations"
129
-
130
- **Your response:**
131
- ```
132
- I'll add a section on AI ethics.
133
- ```
134
-
135
- Then:
136
- 1. Call `document_update` with `mode: "append"` and content:
137
- ```markdown
138
- ## Ethical Considerations
139
-
140
- As AI systems become more powerful, we must address...
141
- ```
142
-
143
- ### Example 3: Full Rewrite
144
-
145
- **User:** "Rewrite this in a more casual tone"
146
-
147
- **Your response:**
148
- ```
149
- I'll rewrite the article in a more casual, conversational tone.
150
- ```
151
-
152
- Then:
153
- 1. Call `document_update` with `mode: "replace"` and the complete rewritten content
154
-
155
- ## Important Notes
156
-
157
- - **Documents are automatically saved** and accessible via the Generated panel
158
- - The user can **manually edit documents** at any time - your role is to assist with generation and refinement
159
- - The editor supports **drag-and-drop images**, which are converted to base64 inline
160
- - **Word count is tracked** automatically and displayed to the user
161
- - **Toast UI Editor** is used, which provides both Markdown and WYSIWYG editing modes
162
- - Always **acknowledge the document creation** before calling `document_create`
163
-
164
- ## Error Handling
165
-
166
- - If `document_create` fails, the user may not have the client connected. Ask them to check their connection.
167
- - If the user asks to edit a specific part but you don't have the full document context, ask them to clarify which section or provide more context.
168
- - If you're unsure about the content direction, ask clarifying questions before generating.
169
-
170
- ## Anti-Patterns (DO NOT DO THIS)
171
-
172
- ❌ **Don't use `app_create` for blog posts or articles**
173
- - Blog posts should use `document_create`, not `app_create`
174
- - Apps are for interactive content with state/data
175
-
176
- ❌ **Don't write everything at once without streaming**
177
- - Use `document_update` with `mode: "append"` to stream chunks
178
- - Users want to see content appear in real-time
179
-
180
- ❌ **Don't ask for explicit approval before creating the document**
181
- - If the user asks for a blog post, create it immediately
182
- - They can always request changes after
183
-
184
- ❌ **Don't output the full content in chat**
185
- - The content goes in the document editor, not in the chat response
186
- - Just acknowledge what you're doing and stream to the editor
187
-
188
- ## Success Criteria
189
-
190
- ✅ Document editor opens in the Documents tab
191
- ✅ Content appears in real-time as you generate it
192
- ✅ User can see both the editor and chat side-by-side
193
- ✅ Content is well-structured with proper Markdown formatting
194
- ✅ User can request edits via chat and you respond appropriately
195
- ✅ Final document is saved and accessible in Generated panel
@@ -1,140 +0,0 @@
1
- ---
2
- name: elevenlabs-voice
3
- description: Select and tune an ElevenLabs TTS voice — curated voice list, custom/cloned voices via API key, and tuning parameters
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"🗣️","vellum":{"display-name":"ElevenLabs Voice","user-invocable":true}}
6
- ---
7
-
8
- ## Overview
9
-
10
- ElevenLabs provides text-to-speech voices for both **in-app TTS** and **phone calls**. The shared config key `elevenlabs.voiceId` controls the voice across all channels. Use the `voice_config_update` tool to change the voice — it writes to the config file and pushes to the macOS app via SSE in one call.
11
-
12
- ## Choose a Voice
13
-
14
- Pick a voice that matches the your identity and the user's preferences. Offer to show the full list if they want to choose themselves.
15
-
16
- ### Female voices
17
-
18
- | Voice | Style | Voice ID |
19
- | --------- | -------------------------- | ---------------------- |
20
- | Rachel | Calm, warm, conversational | `21m00Tcm4TlvDq8ikWAM` |
21
- | Sarah | Soft, young, approachable | `EXAVITQu4vr4xnSDxMaL` |
22
- | Charlotte | Warm, Swedish-accented | `XB0fDUnXU5powFXDhCwa` |
23
- | Alice | Confident, British | `Xb7hH8MSUJpSbSDYk0k2` |
24
- | Matilda | Warm, friendly, young | `XrExE9yKIg1WjnnlVkGX` |
25
- | Lily | Warm, British | `pFZP5JQG7iQjIQuC4Bku` |
26
-
27
- ### Male voices
28
-
29
- | Voice | Style | Voice ID |
30
- | ------- | ------------------------------- | ---------------------- |
31
- | Antoni | Warm, well-rounded | `ErXwobaYiN019PkySvjV` |
32
- | Josh | Deep, young, clear | `TxGEqnHWrfWFTfGW9XjX` |
33
- | Arnold | Crisp, narrative | `VR6AewLTigWG4xSOukaG` |
34
- | Adam | Deep, middle-aged, professional | `pNInz6obpgDQGcFmaJgB` |
35
- | Bill | Trustworthy, American | `pqHfZKP75CvOlQylNhV4` |
36
- | George | Warm, British, distinguished | `JBFqnCBsd6RMkjVDRZzb` |
37
- | Daniel | Authoritative, British | `onwK4e9ZLuTAKqWW03F9` |
38
- | Charlie | Casual, Australian | `IKne3meq5aSn9XLyUdCD` |
39
- | Liam | Young, articulate | `TX3LPaxmHKxFdv7VOQHJ` |
40
-
41
- ### Setting the voice
42
-
43
- To set the chosen voice, use `voice_config_update`. This writes to the config file (`elevenlabs.voiceId`) for phone calls **and** pushes to the macOS app via SSE (`ttsVoiceId`) for in-app TTS in one call:
44
-
45
- ```
46
- voice_config_update setting="tts_voice_id" value="<selected-voice-id>"
47
- ```
48
-
49
- Verify it worked:
50
-
51
- ```bash
52
- assistant config get elevenlabs.voiceId
53
- ```
54
-
55
- Tell the user what voice you chose and why, but also offer to show all available voices so they can choose for themselves.
56
-
57
- ## ElevenLabs API Key Setup
58
-
59
- For advanced voice selection (browsing the full library, custom/cloned voices), the user needs an ElevenLabs API key. A free tier is available at https://elevenlabs.io.
60
-
61
- To collect the API key securely:
62
-
63
- ```
64
- credential_store action="prompt" service="elevenlabs" field="api_key"
65
- ```
66
-
67
- ## Advanced Voice Selection (with API key)
68
-
69
- Users with an ElevenLabs API key can go beyond the curated list above.
70
-
71
- ### Check for an existing key
72
-
73
- ```bash
74
- assistant credentials inspect elevenlabs:api_key --json
75
- ```
76
-
77
- ### Browse the voice library
78
-
79
- ```bash
80
- curl -s "https://api.elevenlabs.io/v2/voices?category=premade&page_size=50" \
81
- -H "xi-api-key: $(assistant credentials reveal elevenlabs:api_key)" | python3 -m json.tool
82
- ```
83
-
84
- ### Search for a specific style
85
-
86
- ```bash
87
- curl -s "https://api.elevenlabs.io/v2/voices?search=warm+female&page_size=10" \
88
- -H "xi-api-key: $(assistant credentials reveal elevenlabs:api_key)" | python3 -m json.tool
89
- ```
90
-
91
- ### Custom and cloned voices
92
-
93
- If the user has created a custom voice or voice clone in their ElevenLabs account, they can use its voice ID directly. These voices work in both in-app TTS and Twilio ConversationRelay.
94
-
95
- ### Preview voices
96
-
97
- Each voice in the API response includes a `preview_url` with an audio sample the user can listen to before deciding.
98
-
99
- ### Set the chosen voice
100
-
101
- After the user picks a voice from the library:
102
-
103
- ```
104
- voice_config_update setting="tts_voice_id" value="<selected-voice-id>"
105
- ```
106
-
107
- ## Voice Tuning
108
-
109
- Fine-tune how the selected voice sounds. These parameters apply to all ElevenLabs modes (in-app TTS and phone calls):
110
-
111
- ```bash
112
- # Playback speed (0.7 = slower, 1.0 = normal, 1.2 = faster)
113
- assistant config set elevenlabs.speed 1.0
114
-
115
- # Stability (0.0 = more expressive/variable, 1.0 = more consistent/monotone)
116
- assistant config set elevenlabs.stability 0.5
117
-
118
- # Similarity boost (0.0 = more creative, 1.0 = closer to original voice)
119
- assistant config set elevenlabs.similarityBoost 0.75
120
- ```
121
-
122
- Lower stability makes the voice more expressive but less predictable — good for conversational calls. Higher stability is better for scripted or formal contexts.
123
-
124
- ## Voice Model Tuning
125
-
126
- By default, the system sends a **bare** `voiceId` to Twilio ConversationRelay (no model/tuning suffix). This is the safest default across voice IDs.
127
-
128
- To optionally force Twilio's extended voice spec, set a model ID:
129
-
130
- ```bash
131
- assistant config set elevenlabs.voiceModelId "flash_v2_5"
132
- ```
133
-
134
- When `voiceModelId` is set, the emitted voice string becomes: `voiceId-model-speed_stability_similarity`.
135
-
136
- To clear and revert to the bare voiceId default:
137
-
138
- ```bash
139
- assistant config set elevenlabs.voiceModelId ""
140
- ```