@vellumai/assistant 0.4.43 → 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 (713) hide show
  1. package/.prettierignore +4 -0
  2. package/ARCHITECTURE.md +46 -44
  3. package/README.md +15 -16
  4. package/bun.lock +10 -35
  5. package/docs/architecture/integrations.md +102 -215
  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 -3
  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-asset.test.ts +1 -1
  40. package/src/__tests__/bundled-skill-retrieval-guard.test.ts +23 -9
  41. package/src/__tests__/call-controller.test.ts +0 -1
  42. package/src/__tests__/call-conversation-messages.test.ts +0 -1
  43. package/src/__tests__/call-domain.test.ts +0 -1
  44. package/src/__tests__/call-pointer-messages.test.ts +0 -1
  45. package/src/__tests__/call-recovery.test.ts +0 -1
  46. package/src/__tests__/call-routes-http.test.ts +0 -1
  47. package/src/__tests__/call-store.test.ts +0 -1
  48. package/src/__tests__/canonical-guardian-store.test.ts +0 -1
  49. package/src/__tests__/channel-approval-routes.test.ts +1 -1
  50. package/src/__tests__/channel-approvals.test.ts +1 -1
  51. package/src/__tests__/channel-delivery-store.test.ts +0 -1
  52. package/src/__tests__/channel-guardian.test.ts +5 -7
  53. package/src/__tests__/channel-retry-sweep.test.ts +0 -1
  54. package/src/__tests__/checker.test.ts +32 -36
  55. package/src/__tests__/compaction.benchmark.test.ts +16 -14
  56. package/src/__tests__/computer-use-session-lifecycle.test.ts +10 -11
  57. package/src/__tests__/computer-use-session-working-dir.test.ts +2 -6
  58. package/src/__tests__/computer-use-skill-lifecycle-cleanup.test.ts +2 -5
  59. package/src/__tests__/computer-use-tools.test.ts +35 -31
  60. package/src/__tests__/config-schema.test.ts +11 -15
  61. package/src/__tests__/config-watcher.test.ts +0 -1
  62. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +0 -1
  63. package/src/__tests__/conflict-store.test.ts +0 -1
  64. package/src/__tests__/connection-policy.test.ts +4 -7
  65. package/src/__tests__/contacts-tools.test.ts +0 -1
  66. package/src/__tests__/context-memory-e2e.test.ts +2 -4
  67. package/src/__tests__/context-overflow-reducer.test.ts +2 -4
  68. package/src/__tests__/context-window-manager.test.ts +147 -60
  69. package/src/__tests__/contradiction-checker.test.ts +0 -1
  70. package/src/__tests__/conversation-attention-store.test.ts +0 -1
  71. package/src/__tests__/conversation-attention-telegram.test.ts +1 -1
  72. package/src/__tests__/conversation-pairing.test.ts +2 -2
  73. package/src/__tests__/conversation-routes-guardian-reply.test.ts +31 -7
  74. package/src/__tests__/conversation-routes-slash-commands.test.ts +381 -0
  75. package/src/__tests__/conversation-store.test.ts +0 -1
  76. package/src/__tests__/conversation-unread-route.test.ts +1 -2
  77. package/src/__tests__/credential-security-invariants.test.ts +8 -8
  78. package/src/__tests__/cross-provider-web-search.test.ts +353 -0
  79. package/src/__tests__/daemon-assistant-events.test.ts +6 -7
  80. package/src/__tests__/db-schedule-syntax-migration.test.ts +15 -3
  81. package/src/__tests__/delete-managed-skill-tool.test.ts +5 -9
  82. package/src/__tests__/deterministic-verification-control-plane.test.ts +0 -1
  83. package/src/__tests__/diagnostics-export.test.ts +189 -0
  84. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +0 -1
  85. package/src/__tests__/emit-signal-routing-intent.test.ts +3 -3
  86. package/src/__tests__/entity-extractor.test.ts +0 -1
  87. package/src/__tests__/entity-search.test.ts +0 -1
  88. package/src/__tests__/ephemeral-permissions.test.ts +2 -4
  89. package/src/__tests__/error-handler-friendly-messages.test.ts +46 -0
  90. package/src/__tests__/file-read-tool.test.ts +86 -0
  91. package/src/__tests__/followup-tools.test.ts +0 -1
  92. package/src/__tests__/frontmatter.test.ts +77 -34
  93. package/src/__tests__/gateway-only-enforcement.test.ts +0 -1
  94. package/src/__tests__/gateway-only-guard.test.ts +1 -1
  95. package/src/__tests__/guardian-action-conversation-turn.test.ts +0 -1
  96. package/src/__tests__/guardian-action-followup-executor.test.ts +0 -1
  97. package/src/__tests__/guardian-action-followup-store.test.ts +0 -1
  98. package/src/__tests__/guardian-action-grant-mint-consume.test.ts +0 -1
  99. package/src/__tests__/guardian-action-late-reply.test.ts +0 -1
  100. package/src/__tests__/guardian-action-store.test.ts +0 -1
  101. package/src/__tests__/guardian-action-sweep.test.ts +0 -1
  102. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +0 -1
  103. package/src/__tests__/guardian-dispatch.test.ts +1 -2
  104. package/src/__tests__/guardian-grant-minting.test.ts +1 -1
  105. package/src/__tests__/guardian-outbound-http.test.ts +0 -1
  106. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +0 -1
  107. package/src/__tests__/guardian-routing-invariants.test.ts +1 -1
  108. package/src/__tests__/guardian-routing-state.test.ts +0 -1
  109. package/src/__tests__/guardian-verification-voice-binding.test.ts +0 -1
  110. package/src/__tests__/guardian-verify-setup-skill-regression.test.ts +3 -5
  111. package/src/__tests__/handlers-user-message-approval-consumption.test.ts +28 -426
  112. package/src/__tests__/host-bash-proxy.test.ts +335 -0
  113. package/src/__tests__/host-file-proxy.test.ts +374 -0
  114. package/src/__tests__/host-shell-tool.test.ts +147 -1
  115. package/src/__tests__/http-user-message-parity.test.ts +361 -0
  116. package/src/__tests__/inbound-invite-redemption.test.ts +0 -1
  117. package/src/__tests__/integration-status.test.ts +3 -8
  118. package/src/__tests__/intent-routing.test.ts +7 -46
  119. package/src/__tests__/invite-redemption-service.test.ts +0 -1
  120. package/src/__tests__/invite-routes-http.test.ts +0 -1
  121. package/src/__tests__/llm-usage-store.test.ts +0 -1
  122. package/src/__tests__/managed-avatar-client.test.ts +101 -55
  123. package/src/__tests__/managed-skill-lifecycle.test.ts +9 -18
  124. package/src/__tests__/managed-store.test.ts +94 -21
  125. package/src/__tests__/media-reuse-story.e2e.test.ts +0 -1
  126. package/src/__tests__/memory-context-benchmark.benchmark.test.ts +2 -4
  127. package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -1
  128. package/src/__tests__/memory-recall-quality.test.ts +0 -1
  129. package/src/__tests__/memory-regressions.experimental.test.ts +0 -1
  130. package/src/__tests__/memory-regressions.test.ts +0 -1
  131. package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -1
  132. package/src/__tests__/memory-upsert-concurrency.test.ts +0 -1
  133. package/src/__tests__/messaging-send-tool.test.ts +35 -0
  134. package/src/__tests__/messaging-skill-split.test.ts +138 -0
  135. package/src/__tests__/migration-cross-version-compatibility.test.ts +0 -1
  136. package/src/__tests__/migration-export-http.test.ts +2 -3
  137. package/src/__tests__/migration-import-commit-http.test.ts +1 -2
  138. package/src/__tests__/migration-import-preflight-http.test.ts +1 -2
  139. package/src/__tests__/migration-validate-http.test.ts +1 -2
  140. package/src/__tests__/native-web-search.test.ts +475 -0
  141. package/src/__tests__/navigate-settings-tab.test.ts +84 -0
  142. package/src/__tests__/non-member-access-request.test.ts +0 -1
  143. package/src/__tests__/notification-broadcaster.test.ts +15 -15
  144. package/src/__tests__/notification-decision-strategy.test.ts +6 -6
  145. package/src/__tests__/notification-deep-link.test.ts +7 -7
  146. package/src/__tests__/notification-guardian-path.test.ts +2 -3
  147. package/src/__tests__/notification-telegram-adapter.test.ts +1 -1
  148. package/src/__tests__/notification-thread-candidates.test.ts +4 -4
  149. package/src/__tests__/onboarding-starter-tasks.test.ts +0 -1
  150. package/src/__tests__/onboarding-template-contract.test.ts +0 -10
  151. package/src/__tests__/playbook-execution.test.ts +0 -1
  152. package/src/__tests__/playbook-tools.test.ts +0 -1
  153. package/src/__tests__/profile-compiler.test.ts +0 -1
  154. package/src/__tests__/provider-fail-open-selection.test.ts +12 -2
  155. package/src/__tests__/provider-managed-proxy-integration.test.ts +25 -0
  156. package/src/__tests__/qdrant-collection-migration.test.ts +223 -0
  157. package/src/__tests__/recording-handler.test.ts +30 -94
  158. package/src/__tests__/registry.test.ts +28 -35
  159. package/src/__tests__/relay-server.test.ts +0 -1
  160. package/src/__tests__/ride-shotgun-handler.test.ts +4 -20
  161. package/src/__tests__/runtime-attachment-metadata.test.ts +0 -1
  162. package/src/__tests__/runtime-events-sse-parity.test.ts +3 -4
  163. package/src/__tests__/runtime-events-sse.test.ts +0 -1
  164. package/src/__tests__/sandbox-diagnostics.test.ts +0 -1
  165. package/src/__tests__/scaffold-managed-skill-tool.test.ts +30 -28
  166. package/src/__tests__/schedule-store.test.ts +441 -1
  167. package/src/__tests__/schedule-tools.test.ts +468 -7
  168. package/src/__tests__/scheduler-recurrence.test.ts +196 -23
  169. package/src/__tests__/scoped-approval-grants.test.ts +0 -1
  170. package/src/__tests__/scoped-grant-security-matrix.test.ts +0 -1
  171. package/src/__tests__/secret-prompt-log-hygiene.test.ts +6 -3
  172. package/src/__tests__/secret-response-routing.test.ts +4 -1
  173. package/src/__tests__/send-endpoint-busy.test.ts +14 -5
  174. package/src/__tests__/send-notification-tool.test.ts +0 -7
  175. package/src/__tests__/sequence-store.test.ts +0 -1
  176. package/src/__tests__/server-history-render.test.ts +1 -2
  177. package/src/__tests__/session-abort-tool-results.test.ts +0 -1
  178. package/src/__tests__/session-agent-loop.test.ts +46 -6
  179. package/src/__tests__/session-confirmation-signals.test.ts +7 -46
  180. package/src/__tests__/session-conflict-gate.test.ts +2 -6
  181. package/src/__tests__/session-error.test.ts +5 -14
  182. package/src/__tests__/session-init.benchmark.test.ts +3 -5
  183. package/src/__tests__/session-load-history-repair.test.ts +0 -1
  184. package/src/__tests__/session-media-retry.test.ts +12 -74
  185. package/src/__tests__/session-pre-run-repair.test.ts +0 -1
  186. package/src/__tests__/session-profile-injection.test.ts +2 -6
  187. package/src/__tests__/session-provider-retry-repair.test.ts +2 -6
  188. package/src/__tests__/session-queue.test.ts +94 -139
  189. package/src/__tests__/session-skill-tools.test.ts +115 -115
  190. package/src/__tests__/session-slash-known.test.ts +0 -1
  191. package/src/__tests__/session-slash-queue.test.ts +0 -1
  192. package/src/__tests__/session-slash-unknown.test.ts +0 -1
  193. package/src/__tests__/session-surfaces-task-progress.test.ts +34 -0
  194. package/src/__tests__/session-usage.test.ts +0 -1
  195. package/src/__tests__/session-workspace-cache-state.test.ts +2 -6
  196. package/src/__tests__/session-workspace-injection.test.ts +2 -6
  197. package/src/__tests__/session-workspace-tool-tracking.test.ts +2 -6
  198. package/src/__tests__/skill-feature-flags-integration.test.ts +180 -184
  199. package/src/__tests__/skill-feature-flags.test.ts +125 -18
  200. package/src/__tests__/skill-load-feature-flag.test.ts +1 -2
  201. package/src/__tests__/skill-load-tool.test.ts +194 -2
  202. package/src/__tests__/skill-projection-feature-flag.test.ts +27 -16
  203. package/src/__tests__/skill-projection.benchmark.test.ts +15 -14
  204. package/src/__tests__/skills.test.ts +14 -53
  205. package/src/__tests__/slack-channel-config.test.ts +0 -1
  206. package/src/__tests__/slack-inbound-verification.test.ts +0 -1
  207. package/src/__tests__/slack-skill.test.ts +1 -1
  208. package/src/__tests__/starter-task-flow.test.ts +9 -19
  209. package/src/__tests__/subagent-tools.test.ts +2 -2
  210. package/src/__tests__/system-prompt.test.ts +7 -7
  211. package/src/__tests__/task-compiler.test.ts +0 -1
  212. package/src/__tests__/task-management-tools.test.ts +0 -1
  213. package/src/__tests__/task-memory-cleanup.test.ts +0 -1
  214. package/src/__tests__/task-runner.test.ts +0 -1
  215. package/src/__tests__/task-scheduler.test.ts +0 -1
  216. package/src/__tests__/terminal-tools.test.ts +0 -1
  217. package/src/__tests__/test-support/computer-use-skill-harness.ts +2 -4
  218. package/src/__tests__/thread-seed-composer.test.ts +5 -5
  219. package/src/__tests__/tool-approval-handler.test.ts +0 -1
  220. package/src/__tests__/tool-execution-abort-cleanup.test.ts +0 -1
  221. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +0 -1
  222. package/src/__tests__/tool-executor.test.ts +8 -86
  223. package/src/__tests__/tool-grant-request-escalation.test.ts +0 -1
  224. package/src/__tests__/tool-notification-listener.test.ts +1 -1
  225. package/src/__tests__/tool-preview-lifecycle.test.ts +416 -0
  226. package/src/__tests__/trust-store.test.ts +84 -8
  227. package/src/__tests__/trusted-contact-approval-notifier.test.ts +0 -1
  228. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +0 -1
  229. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +0 -1
  230. package/src/__tests__/trusted-contact-multichannel.test.ts +0 -1
  231. package/src/__tests__/trusted-contact-verification.test.ts +0 -1
  232. package/src/__tests__/twilio-provider.test.ts +0 -1
  233. package/src/__tests__/twilio-routes.test.ts +0 -1
  234. package/src/__tests__/{request-file-tool.test.ts → ui-file-upload-surface.test.ts} +11 -72
  235. package/src/__tests__/update-bulletin.test.ts +0 -1
  236. package/src/__tests__/usage-cache-backfill-migration.test.ts +0 -1
  237. package/src/__tests__/usage-routes.test.ts +0 -1
  238. package/src/__tests__/verification-control-plane-policy.test.ts +4 -4
  239. package/src/__tests__/voice-invite-redemption.test.ts +0 -1
  240. package/src/__tests__/voice-scoped-grant-consumer.test.ts +0 -1
  241. package/src/__tests__/voice-session-bridge.test.ts +9 -1
  242. package/src/__tests__/web-fetch.test.ts +57 -0
  243. package/src/__tests__/workspace-git-service.test.ts +5 -14
  244. package/src/__tests__/workspace-policy.test.ts +0 -1
  245. package/src/agent/loop.ts +22 -34
  246. package/src/bundler/bundle-signer.ts +4 -4
  247. package/src/calls/call-controller.ts +1 -1
  248. package/src/calls/relay-server.ts +1 -1
  249. package/src/calls/twilio-rest.ts +1 -1
  250. package/src/calls/voice-session-bridge.ts +3 -1
  251. package/src/cli/__tests__/notifications.test.ts +3 -4
  252. package/src/cli/commands/map.ts +2 -6
  253. package/src/cli/commands/mcp.ts +73 -15
  254. package/src/cli/commands/notifications.ts +4 -4
  255. package/src/cli/commands/sessions.ts +9 -1
  256. package/src/cli/commands/skills.ts +6 -10
  257. package/src/cli/http-client.ts +2 -3
  258. package/src/cli/main-screen.tsx +10 -10
  259. package/src/cli/program.ts +0 -4
  260. package/src/cli/reference.ts +0 -2
  261. package/src/cli.ts +15 -9
  262. package/src/config/__tests__/bundled-tool-registry-guard.test.ts +120 -0
  263. package/src/config/bundled-skills/_shared/CLI_RETRIEVAL_PATTERN.md +11 -0
  264. package/src/config/bundled-skills/app-builder/SKILL.md +6 -7
  265. package/src/config/bundled-skills/app-builder/TOOLS.json +0 -4
  266. package/src/config/bundled-skills/browser/SKILL.md +6 -1
  267. package/src/config/bundled-skills/chatgpt-import/SKILL.md +5 -1
  268. package/src/config/bundled-skills/claude-code/SKILL.md +5 -1
  269. package/src/config/bundled-skills/computer-use/SKILL.md +6 -1
  270. package/src/config/bundled-skills/computer-use/TOOLS.json +6 -69
  271. package/src/config/bundled-skills/computer-use/tools/computer-use-click.ts +10 -1
  272. package/src/config/bundled-skills/contacts/SKILL.md +10 -1
  273. package/src/config/bundled-skills/contacts/TOOLS.json +35 -0
  274. package/src/config/bundled-skills/{messaging → contacts}/tools/google-contacts.ts +9 -2
  275. package/src/config/bundled-skills/document/SKILL.md +4 -1
  276. package/src/config/bundled-skills/doordash/SKILL.md +8 -2
  277. package/src/config/bundled-skills/doordash/__tests__/doordash-session.test.ts +1 -82
  278. package/src/config/bundled-skills/doordash/doordash-cli.ts +17 -28
  279. package/src/config/bundled-skills/doordash/lib/session.ts +21 -17
  280. package/src/config/bundled-skills/doordash/lib/shared/platform.ts +4 -1
  281. package/src/config/bundled-skills/followups/SKILL.md +4 -1
  282. package/src/config/bundled-skills/gmail/SKILL.md +180 -0
  283. package/src/config/bundled-skills/gmail/TOOLS.json +506 -0
  284. package/src/config/bundled-skills/gmail/tools/gmail-archive.ts +149 -0
  285. package/src/config/bundled-skills/gmail/tools/gmail-attachments.ts +110 -0
  286. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-draft.ts +1 -1
  287. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-filters.ts +1 -1
  288. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-follow-up.ts +1 -1
  289. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-forward.ts +1 -1
  290. package/src/config/bundled-skills/gmail/tools/gmail-label.ts +50 -0
  291. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-outreach-scan.ts +8 -90
  292. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-send-draft.ts +1 -1
  293. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-sender-digest.ts +2 -2
  294. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-trash.ts +1 -1
  295. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-unsubscribe.ts +1 -1
  296. package/src/config/bundled-skills/{messaging → gmail}/tools/gmail-vacation.ts +1 -1
  297. package/src/config/bundled-skills/gmail/tools/shared.ts +47 -0
  298. package/src/config/bundled-skills/google-calendar/SKILL.md +5 -1
  299. package/src/config/bundled-skills/image-studio/SKILL.md +5 -1
  300. package/src/config/bundled-skills/knowledge-graph/SKILL.md +4 -1
  301. package/src/config/bundled-skills/media-processing/SKILL.md +7 -13
  302. package/src/config/bundled-skills/media-processing/TOOLS.json +0 -22
  303. package/src/config/bundled-skills/media-processing/tools/generate-clip.ts +12 -1
  304. package/src/config/bundled-skills/messaging/SKILL.md +23 -139
  305. package/src/config/bundled-skills/messaging/TOOLS.json +33 -1215
  306. package/src/config/bundled-skills/messaging/tools/gmail-mime-helpers.ts +42 -0
  307. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +165 -2
  308. package/src/config/bundled-skills/messaging/tools/messaging-sender-digest.ts +1 -13
  309. package/src/config/bundled-skills/messaging/tools/shared.ts +81 -34
  310. package/src/config/bundled-skills/notifications/SKILL.md +5 -1
  311. package/src/config/bundled-skills/orchestration/SKILL.md +30 -0
  312. package/src/config/bundled-skills/orchestration/TOOLS.json +35 -0
  313. package/src/config/bundled-skills/{reminder/tools/reminder-cancel.ts → orchestration/tools/swarm-delegate.ts} +3 -3
  314. package/src/config/bundled-skills/phone-calls/SKILL.md +9 -1
  315. package/src/config/bundled-skills/playbooks/SKILL.md +4 -1
  316. package/src/config/bundled-skills/schedule/SKILL.md +70 -9
  317. package/src/config/bundled-skills/schedule/TOOLS.json +38 -6
  318. package/src/config/bundled-skills/screen-watch/SKILL.md +28 -0
  319. package/src/config/bundled-skills/screen-watch/TOOLS.json +35 -0
  320. package/src/config/bundled-skills/{reminder/tools/reminder-create.ts → screen-watch/tools/start-screen-watch.ts} +3 -3
  321. package/src/config/bundled-skills/sequences/SKILL.md +47 -0
  322. package/src/config/bundled-skills/sequences/TOOLS.json +340 -0
  323. package/src/config/bundled-skills/sequences/tools/sequence-update.ts +128 -0
  324. package/src/config/bundled-skills/sequences/tools/shared.ts +9 -0
  325. package/src/config/bundled-skills/settings/SKILL.md +12 -0
  326. package/src/config/bundled-skills/settings/TOOLS.json +112 -0
  327. package/src/config/bundled-skills/settings/tools/navigate-settings-tab.ts +43 -0
  328. package/src/config/bundled-skills/settings/tools/open-system-settings.ts +52 -0
  329. package/src/config/bundled-skills/{computer-use/tools/computer-use-right-click.ts → settings/tools/set-avatar.ts} +2 -6
  330. package/src/{tools/system/voice-config.ts → config/bundled-skills/settings/tools/voice-config-update.ts} +59 -96
  331. package/src/config/bundled-skills/skill-management/SKILL.md +18 -0
  332. package/src/config/bundled-skills/skill-management/TOOLS.json +90 -0
  333. package/src/config/bundled-skills/{computer-use/tools/computer-use-double-click.ts → skill-management/tools/delete-managed.ts} +2 -6
  334. package/src/config/bundled-skills/skill-management/tools/scaffold-managed.ts +12 -0
  335. package/src/config/bundled-skills/slack/SKILL.md +5 -1
  336. package/src/config/bundled-skills/subagent/SKILL.md +4 -1
  337. package/src/config/bundled-skills/tasks/SKILL.md +5 -2
  338. package/src/config/bundled-skills/transcribe/SKILL.md +4 -1
  339. package/src/config/bundled-skills/watcher/SKILL.md +4 -1
  340. package/src/config/bundled-tool-registry.ts +118 -107
  341. package/src/config/env.ts +5 -2
  342. package/src/config/feature-flag-registry.json +33 -9
  343. package/src/config/loader.ts +10 -2
  344. package/src/config/schema.ts +19 -16
  345. package/src/config/schemas/inference.ts +12 -22
  346. package/src/config/schemas/memory-storage.ts +19 -1
  347. package/src/config/schemas/platform.ts +0 -16
  348. package/src/config/skill-state.ts +11 -8
  349. package/src/config/skills.ts +83 -32
  350. package/src/context/token-estimator.ts +11 -0
  351. package/src/context/window-manager.ts +180 -151
  352. package/src/daemon/computer-use-session.ts +11 -43
  353. package/src/daemon/daemon-control.ts +4 -1
  354. package/src/daemon/handlers/config-channels.ts +5 -9
  355. package/src/daemon/handlers/config-ingress.ts +0 -4
  356. package/src/daemon/handlers/config-model.ts +7 -13
  357. package/src/daemon/handlers/config-telegram.ts +4 -8
  358. package/src/daemon/handlers/config-voice.ts +2 -5
  359. package/src/daemon/handlers/dictation.ts +2 -12
  360. package/src/daemon/handlers/identity.ts +0 -105
  361. package/src/daemon/handlers/recording.ts +3 -23
  362. package/src/daemon/handlers/session-history.ts +42 -10
  363. package/src/daemon/handlers/sessions.ts +53 -72
  364. package/src/daemon/handlers/shared.ts +7 -28
  365. package/src/daemon/handlers/skills.ts +31 -27
  366. package/src/daemon/host-bash-proxy.ts +148 -0
  367. package/src/daemon/host-file-proxy.ts +135 -0
  368. package/src/daemon/lifecycle.ts +53 -41
  369. package/src/daemon/mcp-reload-service.ts +123 -0
  370. package/src/daemon/message-protocol.ts +6 -0
  371. package/src/daemon/message-types/apps.ts +0 -25
  372. package/src/daemon/message-types/browser.ts +1 -1
  373. package/src/daemon/message-types/computer-use.ts +1 -4
  374. package/src/daemon/message-types/guardian-actions.ts +1 -1
  375. package/src/daemon/message-types/host-bash.ts +18 -0
  376. package/src/daemon/message-types/host-file.ts +44 -0
  377. package/src/daemon/message-types/integrations.ts +1 -73
  378. package/src/daemon/message-types/messages.ts +15 -0
  379. package/src/daemon/message-types/schedules.ts +11 -27
  380. package/src/daemon/message-types/sessions.ts +8 -2
  381. package/src/daemon/message-types/settings.ts +1 -1
  382. package/src/daemon/message-types/shared.ts +1 -1
  383. package/src/daemon/message-types/surfaces.ts +2 -0
  384. package/src/daemon/ride-shotgun-handler.ts +35 -43
  385. package/src/daemon/seed-files.ts +3 -27
  386. package/src/daemon/server.ts +45 -28
  387. package/src/daemon/session-agent-loop-handlers.ts +72 -9
  388. package/src/daemon/session-agent-loop.ts +97 -66
  389. package/src/daemon/session-attachments.ts +1 -1
  390. package/src/daemon/session-error.ts +17 -16
  391. package/src/daemon/session-lifecycle.ts +20 -1
  392. package/src/daemon/session-media-retry.ts +1 -15
  393. package/src/daemon/session-messaging.ts +14 -6
  394. package/src/daemon/session-process.ts +36 -7
  395. package/src/daemon/session-queue-manager.ts +62 -103
  396. package/src/daemon/session-runtime-assembly.ts +27 -7
  397. package/src/daemon/session-skill-tools.ts +12 -11
  398. package/src/daemon/session-slash.ts +7 -0
  399. package/src/daemon/session-surfaces.ts +192 -118
  400. package/src/daemon/session-tool-setup.ts +146 -6
  401. package/src/daemon/session.ts +75 -37
  402. package/src/errors.ts +0 -2
  403. package/src/export/formatter.ts +6 -0
  404. package/src/mcp/mcp-oauth-provider.ts +1 -3
  405. package/src/media/avatar-router.ts +20 -28
  406. package/src/media/avatar-types.ts +7 -14
  407. package/src/media/managed-avatar-client.ts +70 -34
  408. package/src/memory/app-store.ts +0 -18
  409. package/src/memory/conversation-title-service.ts +1 -2
  410. package/src/memory/db-init.ts +16 -0
  411. package/src/memory/embedding-backend.ts +129 -27
  412. package/src/memory/embedding-gemini.test.ts +256 -0
  413. package/src/memory/embedding-gemini.ts +47 -13
  414. package/src/memory/embedding-local.ts +14 -2
  415. package/src/memory/embedding-ollama.ts +15 -2
  416. package/src/memory/embedding-openai.ts +15 -2
  417. package/src/memory/embedding-types.test.ts +116 -0
  418. package/src/memory/embedding-types.ts +61 -0
  419. package/src/memory/fingerprint.ts +1 -1
  420. package/src/memory/indexer.ts +25 -1
  421. package/src/memory/job-handlers/embedding.test.ts +258 -0
  422. package/src/memory/job-handlers/embedding.ts +81 -1
  423. package/src/memory/job-handlers/index-maintenance.ts +35 -1
  424. package/src/memory/job-handlers/media-processing.ts +11 -1
  425. package/src/memory/job-utils.ts +21 -6
  426. package/src/memory/jobs-store.ts +5 -1
  427. package/src/memory/jobs-worker.ts +8 -0
  428. package/src/memory/message-content.ts +66 -0
  429. package/src/memory/migrations/100-core-tables.ts +1 -31
  430. package/src/memory/migrations/104-core-indexes.ts +0 -11
  431. package/src/memory/migrations/145-drop-accounts-table.ts +19 -0
  432. package/src/memory/migrations/146-schedule-oneshot-routing.ts +94 -0
  433. package/src/memory/migrations/147-migrate-reminders-to-schedules.ts +129 -0
  434. package/src/memory/migrations/148-drop-reminders-table.ts +18 -0
  435. package/src/memory/migrations/index.ts +4 -0
  436. package/src/memory/migrations/registry.ts +19 -0
  437. package/src/memory/qdrant-client.ts +158 -43
  438. package/src/memory/retriever.test.ts +0 -1
  439. package/src/memory/retriever.ts +12 -2
  440. package/src/memory/schema/infrastructure.ts +5 -37
  441. package/src/memory/search/formatting.ts +34 -9
  442. package/src/memory/search/semantic.ts +57 -2
  443. package/src/memory/search/types.ts +2 -1
  444. package/src/notifications/AGENTS.md +2 -2
  445. package/src/notifications/README.md +59 -58
  446. package/src/notifications/adapters/macos.ts +1 -1
  447. package/src/notifications/broadcaster.ts +5 -5
  448. package/src/notifications/copy-composer.ts +1 -1
  449. package/src/notifications/decision-engine.ts +2 -2
  450. package/src/notifications/destination-resolver.ts +2 -2
  451. package/src/notifications/emit-signal.ts +8 -8
  452. package/src/notifications/signal.ts +1 -1
  453. package/src/notifications/thread-seed-composer.ts +1 -1
  454. package/src/oauth/connect-orchestrator.ts +1 -1
  455. package/src/oauth/token-persistence.ts +1 -1
  456. package/src/permissions/checker.ts +12 -1
  457. package/src/permissions/defaults.ts +13 -17
  458. package/src/permissions/trust-store.ts +37 -0
  459. package/src/permissions/workspace-policy.ts +0 -1
  460. package/src/prompts/__tests__/build-cli-reference-section.test.ts +11 -0
  461. package/src/prompts/computer-use-prompt.ts +1 -1
  462. package/src/prompts/system-prompt.ts +33 -35
  463. package/src/prompts/templates/BOOTSTRAP.md +0 -3
  464. package/src/prompts/templates/SOUL.md +1 -2
  465. package/src/prompts/templates/UPDATES.md +16 -7
  466. package/src/providers/anthropic/client.ts +87 -33
  467. package/src/providers/gemini/client.ts +6 -0
  468. package/src/providers/managed-proxy/constants.ts +5 -0
  469. package/src/providers/openai/client.ts +15 -0
  470. package/src/providers/registry.ts +4 -6
  471. package/src/providers/types.ts +24 -2
  472. package/src/runtime/AGENTS.md +18 -0
  473. package/src/runtime/assistant-event-hub.ts +2 -3
  474. package/src/runtime/assistant-event.ts +4 -4
  475. package/src/runtime/auth/__tests__/context.test.ts +5 -5
  476. package/src/runtime/auth/__tests__/credential-service.test.ts +0 -1
  477. package/src/runtime/auth/__tests__/guard-tests.test.ts +3 -2
  478. package/src/runtime/auth/__tests__/{ipc-auth-context.test.ts → local-auth-context.test.ts} +21 -21
  479. package/src/runtime/auth/__tests__/route-policy.test.ts +2 -2
  480. package/src/runtime/auth/__tests__/scopes.test.ts +9 -8
  481. package/src/runtime/auth/__tests__/subject.test.ts +8 -8
  482. package/src/runtime/auth/__tests__/token-service.test.ts +0 -1
  483. package/src/runtime/auth/route-policy.ts +8 -8
  484. package/src/runtime/auth/scopes.ts +2 -1
  485. package/src/runtime/auth/subject.ts +4 -4
  486. package/src/runtime/auth/token-service.ts +1 -24
  487. package/src/runtime/auth/types.ts +3 -3
  488. package/src/runtime/guardian-action-followup-executor.ts +1 -1
  489. package/src/runtime/guardian-action-grant-minter.ts +1 -1
  490. package/src/runtime/guardian-action-service.ts +3 -3
  491. package/src/runtime/http-server.ts +15 -2
  492. package/src/runtime/http-types.ts +10 -0
  493. package/src/runtime/invite-service.ts +3 -3
  494. package/src/runtime/local-actor-identity.ts +17 -22
  495. package/src/runtime/middleware/error-handler.ts +14 -1
  496. package/src/runtime/pending-interactions.ts +21 -9
  497. package/src/runtime/routes/app-management-routes.ts +63 -67
  498. package/src/runtime/routes/approval-routes.ts +1 -3
  499. package/src/runtime/routes/brain-graph/brain-graph.html +1845 -0
  500. package/src/runtime/routes/brain-graph-routes.ts +4 -42
  501. package/src/runtime/routes/btw-routes.ts +155 -0
  502. package/src/runtime/routes/computer-use-routes.ts +77 -31
  503. package/src/runtime/routes/conversation-routes.ts +234 -47
  504. package/src/runtime/routes/diagnostics-routes.ts +154 -43
  505. package/src/runtime/routes/documents-routes.ts +2 -2
  506. package/src/runtime/routes/global-search-routes.ts +1 -1
  507. package/src/runtime/routes/host-bash-routes.ts +83 -0
  508. package/src/runtime/routes/host-file-routes.ts +79 -0
  509. package/src/runtime/routes/integrations/slack/share.ts +1 -1
  510. package/src/runtime/routes/log-export-routes.ts +120 -0
  511. package/src/runtime/routes/mcp-routes.ts +20 -0
  512. package/src/runtime/routes/migration-routes.ts +3 -3
  513. package/src/runtime/routes/pairing-routes.ts +1 -1
  514. package/src/runtime/routes/recording-routes.ts +6 -4
  515. package/src/runtime/routes/schedule-routes.ts +31 -5
  516. package/src/runtime/routes/session-management-routes.ts +2 -6
  517. package/src/runtime/routes/session-query-routes.ts +18 -15
  518. package/src/runtime/routes/settings-routes.ts +7 -351
  519. package/src/runtime/routes/skills-routes.ts +7 -6
  520. package/src/runtime/routes/subagents-routes.ts +4 -10
  521. package/src/runtime/routes/surface-action-routes.ts +3 -14
  522. package/src/runtime/routes/surface-content-routes.ts +22 -5
  523. package/src/runtime/routes/work-items-routes.ts +21 -25
  524. package/src/runtime/routes/workspace-routes.test.ts +3 -3
  525. package/src/runtime/routes/workspace-utils.ts +1 -1
  526. package/src/runtime/telegram-streaming-delivery.ts +3 -0
  527. package/src/runtime/verification-outbound-actions.ts +2 -2
  528. package/src/schedule/integration-status.ts +0 -6
  529. package/src/schedule/schedule-store.ts +234 -43
  530. package/src/schedule/scheduler.ts +73 -74
  531. package/src/security/oauth2.ts +1 -1
  532. package/src/sequence/store.ts +12 -2
  533. package/src/skills/frontmatter.ts +19 -77
  534. package/src/skills/managed-store.ts +11 -2
  535. package/src/subagent/manager.ts +5 -3
  536. package/src/tasks/ephemeral-permissions.ts +3 -5
  537. package/src/tools/AGENTS.md +37 -0
  538. package/src/tools/apps/executors.ts +0 -6
  539. package/src/tools/browser/browser-manager.ts +17 -11
  540. package/src/tools/browser/jit-auth.ts +4 -1
  541. package/src/tools/claude-code/claude-code.ts +1 -1
  542. package/src/tools/computer-use/definitions.ts +48 -60
  543. package/src/tools/document/document-tool.ts +6 -6
  544. package/src/tools/document/editor-template.ts +10 -8
  545. package/src/tools/filesystem/edit.ts +2 -1
  546. package/src/tools/filesystem/read.ts +20 -2
  547. package/src/tools/filesystem/write.ts +2 -1
  548. package/src/tools/host-filesystem/edit.ts +17 -1
  549. package/src/tools/host-filesystem/read.ts +16 -1
  550. package/src/tools/host-filesystem/write.ts +15 -1
  551. package/src/tools/host-terminal/host-shell.ts +24 -0
  552. package/src/tools/memory/definitions.ts +45 -81
  553. package/src/tools/memory/handlers.test.ts +0 -1
  554. package/src/tools/memory/handlers.ts +1 -1
  555. package/src/tools/memory/register.ts +26 -60
  556. package/src/tools/network/script-proxy/session-manager.ts +6 -8
  557. package/src/tools/network/web-fetch.ts +7 -1
  558. package/src/tools/network/web-search.ts +2 -1
  559. package/src/tools/registry.ts +23 -0
  560. package/src/tools/schedule/create.ts +113 -5
  561. package/src/tools/schedule/list.ts +57 -15
  562. package/src/tools/schedule/update.ts +73 -3
  563. package/src/tools/shared/filesystem/image-read.ts +192 -0
  564. package/src/tools/side-effects.ts +1 -7
  565. package/src/tools/skills/delete-managed.ts +27 -64
  566. package/src/tools/skills/execute.ts +54 -0
  567. package/src/tools/skills/load.ts +127 -5
  568. package/src/tools/skills/scaffold-managed.ts +93 -172
  569. package/src/tools/subagent/message.ts +0 -7
  570. package/src/tools/subagent/spawn.ts +1 -1
  571. package/src/tools/swarm/delegate.ts +0 -3
  572. package/src/tools/system/avatar-generator.ts +13 -19
  573. package/src/tools/system/request-permission.ts +2 -1
  574. package/src/tools/terminal/safe-env.ts +1 -0
  575. package/src/tools/tool-manifest.ts +41 -47
  576. package/src/tools/types.ts +6 -2
  577. package/src/tools/ui-surface/definitions.ts +0 -55
  578. package/src/util/errors.ts +12 -10
  579. package/src/workspace/git-service.ts +0 -2
  580. package/src/__tests__/account-registry.test.ts +0 -258
  581. package/src/__tests__/email-classifier.test.ts +0 -25
  582. package/src/__tests__/gmail-integration.test.ts +0 -97
  583. package/src/__tests__/handle-user-message-secret-resume.test.ts +0 -172
  584. package/src/__tests__/home-base-bootstrap.test.ts +0 -84
  585. package/src/__tests__/managed-twitter-guardrails.test.ts +0 -353
  586. package/src/__tests__/prebuilt-home-base-seed.test.ts +0 -79
  587. package/src/__tests__/recording-intent-fallback.test.ts +0 -199
  588. package/src/__tests__/recording-intent.test.ts +0 -985
  589. package/src/__tests__/recording-state-machine.test.ts +0 -1574
  590. package/src/__tests__/reminder-store.test.ts +0 -350
  591. package/src/__tests__/reminder.test.ts +0 -337
  592. package/src/__tests__/scan-result-store.test.ts +0 -121
  593. package/src/__tests__/twitter-platform-proxy-client.test.ts +0 -450
  594. package/src/__tests__/view-image-tool.test.ts +0 -241
  595. package/src/cli/commands/amazon/cart.ts +0 -513
  596. package/src/cli/commands/amazon/checkout.ts +0 -394
  597. package/src/cli/commands/amazon/client.ts +0 -513
  598. package/src/cli/commands/amazon/index.ts +0 -920
  599. package/src/cli/commands/amazon/product-details.ts +0 -145
  600. package/src/cli/commands/amazon/request-extractor.ts +0 -187
  601. package/src/cli/commands/amazon/search.ts +0 -76
  602. package/src/cli/commands/amazon/session.ts +0 -116
  603. package/src/cli/commands/twitter/__tests__/cli-error-shaping.test.ts +0 -265
  604. package/src/cli/commands/twitter/__tests__/cli-read-routing.test.ts +0 -483
  605. package/src/cli/commands/twitter/__tests__/cli-routing.test.ts +0 -412
  606. package/src/cli/commands/twitter/__tests__/oauth-client.test.ts +0 -197
  607. package/src/cli/commands/twitter/client.ts +0 -989
  608. package/src/cli/commands/twitter/index.ts +0 -1160
  609. package/src/cli/commands/twitter/oauth-client.ts +0 -94
  610. package/src/cli/commands/twitter/router.ts +0 -396
  611. package/src/cli/commands/twitter/session.ts +0 -121
  612. package/src/config/bundled-skills/agentmail/SKILL.md +0 -132
  613. package/src/config/bundled-skills/agentmail/icon.svg +0 -21
  614. package/src/config/bundled-skills/amazon/SKILL.md +0 -137
  615. package/src/config/bundled-skills/amazon/icon.svg +0 -13
  616. package/src/config/bundled-skills/api-mapping/SKILL.md +0 -78
  617. package/src/config/bundled-skills/api-mapping/icon.svg +0 -18
  618. package/src/config/bundled-skills/cli-discover/SKILL.md +0 -68
  619. package/src/config/bundled-skills/deploy-fullstack-vercel/SKILL.md +0 -179
  620. package/src/config/bundled-skills/document-writer/SKILL.md +0 -195
  621. package/src/config/bundled-skills/elevenlabs-voice/SKILL.md +0 -140
  622. package/src/config/bundled-skills/email-setup/SKILL.md +0 -68
  623. package/src/config/bundled-skills/frontend-design/SKILL.md +0 -44
  624. package/src/config/bundled-skills/frontend-design/icon.svg +0 -16
  625. package/src/config/bundled-skills/google-oauth-setup/SKILL.md +0 -452
  626. package/src/config/bundled-skills/guardian-verify-setup/SKILL.md +0 -203
  627. package/src/config/bundled-skills/influencer/SKILL.md +0 -144
  628. package/src/config/bundled-skills/influencer/scripts/client.ts +0 -1269
  629. package/src/config/bundled-skills/influencer/scripts/influencer.ts +0 -267
  630. package/src/config/bundled-skills/macos-automation/SKILL.md +0 -65
  631. package/src/config/bundled-skills/macos-automation/icon.svg +0 -12
  632. package/src/config/bundled-skills/mcp-setup/SKILL.md +0 -75
  633. package/src/config/bundled-skills/media-processing/tools/media-diagnostics.ts +0 -184
  634. package/src/config/bundled-skills/messaging/tools/gmail-archive-by-query.ts +0 -80
  635. package/src/config/bundled-skills/messaging/tools/gmail-archive.ts +0 -29
  636. package/src/config/bundled-skills/messaging/tools/gmail-batch-archive.ts +0 -56
  637. package/src/config/bundled-skills/messaging/tools/gmail-batch-label.ts +0 -34
  638. package/src/config/bundled-skills/messaging/tools/gmail-download-attachment.ts +0 -47
  639. package/src/config/bundled-skills/messaging/tools/gmail-label.ts +0 -31
  640. package/src/config/bundled-skills/messaging/tools/gmail-list-attachments.ts +0 -67
  641. package/src/config/bundled-skills/messaging/tools/gmail-send-with-attachments.ts +0 -97
  642. package/src/config/bundled-skills/messaging/tools/gmail-summarize-thread.ts +0 -87
  643. package/src/config/bundled-skills/messaging/tools/gmail-triage.ts +0 -135
  644. package/src/config/bundled-skills/messaging/tools/messaging-analyze-activity.ts +0 -24
  645. package/src/config/bundled-skills/messaging/tools/messaging-reply.ts +0 -201
  646. package/src/config/bundled-skills/messaging/tools/send-notification.ts +0 -1
  647. package/src/config/bundled-skills/messaging/tools/sequence-cancel.ts +0 -27
  648. package/src/config/bundled-skills/messaging/tools/sequence-pause.ts +0 -48
  649. package/src/config/bundled-skills/messaging/tools/sequence-resume.ts +0 -27
  650. package/src/config/bundled-skills/messaging/tools/sequence-update.ts +0 -56
  651. package/src/config/bundled-skills/notion/SKILL.md +0 -240
  652. package/src/config/bundled-skills/notion-oauth-setup/SKILL.md +0 -126
  653. package/src/config/bundled-skills/oauth-setup/SKILL.md +0 -143
  654. package/src/config/bundled-skills/public-ingress/SKILL.md +0 -258
  655. package/src/config/bundled-skills/reminder/SKILL.md +0 -79
  656. package/src/config/bundled-skills/reminder/TOOLS.json +0 -89
  657. package/src/config/bundled-skills/reminder/tools/reminder-list.ts +0 -12
  658. package/src/config/bundled-skills/restaurant-reservation/SKILL.md +0 -141
  659. package/src/config/bundled-skills/screen-recording/SKILL.md +0 -148
  660. package/src/config/bundled-skills/self-upgrade/SKILL.md +0 -69
  661. package/src/config/bundled-skills/skills-catalog/SKILL.md +0 -78
  662. package/src/config/bundled-skills/slack-app-setup/SKILL.md +0 -178
  663. package/src/config/bundled-skills/slack-digest-setup/SKILL.md +0 -163
  664. package/src/config/bundled-skills/slack-oauth-setup/SKILL.md +0 -157
  665. package/src/config/bundled-skills/start-the-day/SKILL.md +0 -70
  666. package/src/config/bundled-skills/start-the-day/icon.svg +0 -13
  667. package/src/config/bundled-skills/telegram-setup/SKILL.md +0 -105
  668. package/src/config/bundled-skills/time-based-actions/SKILL.md +0 -142
  669. package/src/config/bundled-skills/twilio-setup/SKILL.md +0 -232
  670. package/src/config/bundled-skills/twitter/SKILL.md +0 -319
  671. package/src/config/bundled-skills/twitter/icon.svg +0 -14
  672. package/src/config/bundled-skills/typescript-eval/SKILL.md +0 -60
  673. package/src/config/bundled-skills/vercel-token-setup/SKILL.md +0 -214
  674. package/src/config/bundled-skills/voice-setup/SKILL.md +0 -131
  675. package/src/config/bundled-skills/voice-setup/icon.svg +0 -20
  676. package/src/daemon/handlers/pairing.ts +0 -119
  677. package/src/daemon/handlers/session-user-message.ts +0 -961
  678. package/src/daemon/recording-executor.ts +0 -180
  679. package/src/daemon/recording-intent-fallback.ts +0 -162
  680. package/src/daemon/recording-intent.ts +0 -493
  681. package/src/home-base/app-link-store.ts +0 -78
  682. package/src/home-base/bootstrap.ts +0 -74
  683. package/src/home-base/prebuilt/brain-graph.html +0 -1483
  684. package/src/home-base/prebuilt/index.html +0 -702
  685. package/src/home-base/prebuilt/seed-metadata.json +0 -21
  686. package/src/home-base/prebuilt/seed.ts +0 -122
  687. package/src/home-base/prebuilt-home-base-updater.ts +0 -36
  688. package/src/memory/account-store.ts +0 -117
  689. package/src/messaging/activity-analyzer.ts +0 -76
  690. package/src/messaging/email-classifier.ts +0 -208
  691. package/src/messaging/index.ts +0 -2
  692. package/src/messaging/outreach-classifier.ts +0 -185
  693. package/src/messaging/thread-summarizer.ts +0 -346
  694. package/src/messaging/types.ts +0 -17
  695. package/src/tools/browser/x-auto-navigate.ts +0 -254
  696. package/src/tools/credentials/account-registry.ts +0 -144
  697. package/src/tools/filesystem/view-image.ts +0 -244
  698. package/src/tools/reminder/reminder-store.ts +0 -194
  699. package/src/tools/reminder/reminder.ts +0 -158
  700. package/src/tools/system/navigate-settings.ts +0 -74
  701. package/src/tools/system/open-system-settings.ts +0 -85
  702. package/src/tools/system/version.ts +0 -54
  703. package/src/twitter/platform-proxy-client.ts +0 -405
  704. package/src/util/cookie-session.ts +0 -98
  705. /package/src/config/bundled-skills/{messaging → gmail}/tools/scan-result-store.ts +0 -0
  706. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-analytics.ts +0 -0
  707. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-create.ts +0 -0
  708. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-delete.ts +0 -0
  709. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-enroll.ts +0 -0
  710. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-enrollment-list.ts +0 -0
  711. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-get.ts +0 -0
  712. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-import.ts +0 -0
  713. /package/src/config/bundled-skills/{messaging → sequences}/tools/sequence-list.ts +0 -0
@@ -1,132 +0,0 @@
1
- ---
2
- name: agentmail
3
- description: Run email operations through a provider-agnostic CLI wrapper
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"📬","vellum":{"display-name":"Email CLI Ops","user-invocable":true}}
6
- ---
7
-
8
- ## How to run
9
-
10
- `vellum` is your own CLI binary — it is already installed and available on the PATH.
11
- Run all commands via `bash`. Do NOT attempt to install, build, or locate the CLI — just execute it directly.
12
-
13
- Example: `bash("assistant email status --json")`
14
-
15
- Never use browser/computer-use unless user explicitly approves fallback.
16
-
17
- ## When to Use This Skill
18
-
19
- This skill manages the **assistant's own** AgentMail address (`@agentmail.to`) — not the user's personal email. Only use this skill when the user explicitly asks the assistant to send email **from the assistant's own address**, manage the assistant's inbox, or perform operations on the assistant's AgentMail account. Generic email requests ("send an email", "check my email", "draft a reply") are about the **user's Gmail** and should be handled by the Messaging skill instead.
20
-
21
- ## Rules
22
-
23
- - Always run `assistant email` commands via `bash` and parse JSON output.
24
- - Always do `assistant email status --json` preflight first.
25
- - Prefer `draft create` before any send — never bypass draft flow.
26
- - Require explicit user confirmation before `draft approve-send --confirm`.
27
- - When uncertain, draft to ops@ inbox and notify user.
28
- - Never send cold outreach without explicit user authorization.
29
-
30
- ## API Key Setup
31
-
32
- If `assistant email status --json` returns an error about a missing API key, prompt the user for their AgentMail API key using the secure credential prompt. **Never ask the user to paste the key in chat.**
33
-
34
- Use `credential_store` with:
35
- - action: `prompt`
36
- - service: `agentmail`
37
- - field: `api_key`
38
- - label: `AgentMail API Key`
39
- - description: `Get your API key from console.agentmail.to`
40
- - placeholder: `am_us_...`
41
- - allowed_tools: `["bash"]`
42
- - usage_description: `AgentMail email operations via vellum CLI`
43
-
44
- After the credential is stored, retry `assistant email status --json` to confirm it works.
45
-
46
- ## Workflow
47
-
48
- 1. **Preflight:** `assistant email status --json` (if API key error, run API Key Setup above)
49
- 2. **Quick inbox:** `assistant email inbox create --username <name>` (creates e.g. sam@agentmail.to — no custom domain needed)
50
- 3. **Custom domain setup (optional):** domain -> dns -> verify -> inboxes -> webhook
51
- 4. **Draft path:** `assistant email draft create ...` — always draft first
52
- 5. **Send path:** show draft -> user confirms -> `draft approve-send --draft-id <id> --confirm`
53
- 6. **Inbound triage:** list -> get -> summarize -> propose reply draft
54
- 7. **Guardrails:** check with `guardrails get`, use `guardrails set` to change
55
-
56
- ## Command Reference
57
-
58
- ### Provider
59
-
60
- ```
61
- assistant email provider get [--json] # Show active provider
62
- assistant email provider set <provider> [--json] # Switch provider
63
- ```
64
-
65
- ### Status
66
-
67
- ```
68
- assistant email status [--json] # Provider health + guardrails
69
- ```
70
-
71
- ### Inbox Management
72
-
73
- ```
74
- assistant email inbox create --username <name> [--domain <d>] [--display-name <n>] [--json] # Create a new inbox (e.g. --username sam)
75
- assistant email inbox list [--json] # List all inboxes
76
- ```
77
-
78
- ### Setup
79
-
80
- ```
81
- assistant email setup domain --domain <d> [--dry-run] [--json]
82
- assistant email setup dns --domain <d> [--json]
83
- assistant email setup verify --domain <d> [--json]
84
- assistant email setup inboxes --domain <d> [--json] # Creates standard hello@/support@/ops@ inboxes
85
- assistant email setup webhook --url <u> [--secret <s>] [--json]
86
- ```
87
-
88
- ### Drafts
89
-
90
- ```
91
- assistant email draft create --from <addr> --to <addr> --subject <s> --body <b> [--cc <addr>] [--in-reply-to <msg-id>] [--json]
92
- assistant email draft list [--status pending|approved|sent|rejected] [--json]
93
- assistant email draft get <draft-id> [--json]
94
- assistant email draft approve-send --draft-id <id> --confirm [--json]
95
- assistant email draft reject --draft-id <id> [--reason <text>] [--json]
96
- assistant email draft delete <draft-id> [--json]
97
- ```
98
-
99
- ### Inbound
100
-
101
- ```
102
- assistant email inbound list [--thread-id <id>] [--json]
103
- assistant email inbound get <message-id> [--json]
104
- ```
105
-
106
- ### Threads
107
-
108
- ```
109
- assistant email thread list [--json]
110
- assistant email thread get <thread-id> [--json]
111
- ```
112
-
113
- ### Guardrails
114
-
115
- ```
116
- assistant email guardrails get [--json]
117
- assistant email guardrails set --paused <true|false> --daily-cap <n> [--json]
118
- assistant email guardrails block <pattern> [--json]
119
- assistant email guardrails allow <pattern> [--json]
120
- assistant email guardrails rules [--json]
121
- assistant email guardrails unrule <rule-id> [--json]
122
- ```
123
-
124
- ## Output Format
125
-
126
- All commands output JSON (pretty-printed by default, compact with `--json`).
127
- Every response includes `ok: true|false`.
128
-
129
- Exit codes:
130
- - `0` = success (`ok: true`)
131
- - `1` = error (`ok: false, error: "..."`)
132
- - `2` = guardrail blocked (`ok: false, error: "outbound_paused|daily_cap_reached|address_blocked"`)
@@ -1,21 +0,0 @@
1
- <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2
- <rect width="16" height="16" fill="#0a0e27"/>
3
- <rect x="2" y="3" width="12" height="8" fill="#1e40af" stroke="#60a5fa" stroke-width="1"/>
4
- <rect x="2" y="3" width="12" height="2" fill="#3b82f6"/>
5
- <rect x="3" y="4" width="10" height="1" fill="#0a0e27"/>
6
- <rect x="3" y="5" width="5" height="1" fill="#93c5fd"/>
7
- <rect x="3" y="6" width="5" height="1" fill="#bfdbfe"/>
8
- <rect x="9" y="5" width="3" height="1" fill="#bfdbfe"/>
9
- <rect x="9" y="6" width="3" height="1" fill="#93c5fd"/>
10
- <rect x="2" y="12" width="3" height="1" fill="#059669"/>
11
- <rect x="3" y="13" width="2" height="1" fill="#10b981"/>
12
- <rect x="2" y="14" width="1" height="1" fill="#10b981"/>
13
- <rect x="3" y="14" width="1" height="1" fill="#34d399"/>
14
- <rect x="6" y="12" width="8" height="1" fill="#1f2937"/>
15
- <rect x="6" y="13" width="8" height="1" fill="#374151"/>
16
- <rect x="6" y="14" width="8" height="1" fill="#1f2937"/>
17
- <rect x="7" y="13" width="1" height="1" fill="#60a5fa"/>
18
- <rect x="9" y="13" width="1" height="1" fill="#60a5fa"/>
19
- <rect x="11" y="13" width="1" height="1" fill="#60a5fa"/>
20
- <rect x="13" y="13" width="1" height="1" fill="#60a5fa"/>
21
- </svg>
@@ -1,137 +0,0 @@
1
- ---
2
- name: amazon
3
- description: Shop on Amazon and Amazon Fresh using the built-in CLI integration
4
- compatibility: "Designed for Vellum personal assistants"
5
- metadata: {"emoji":"📦","vellum":{"display-name":"Amazon","user-invocable":true}}
6
- ---
7
-
8
- You can shop on Amazon (and Amazon Fresh for groceries) for the user using the `assistant amazon` CLI.
9
-
10
- ## CLI Setup
11
-
12
- **IMPORTANT: Always use `host_bash` (not `bash`) for all `assistant amazon` commands.** The Amazon CLI needs host access for session cookies and the `vellum` binary — neither of which are available inside the sandbox.
13
-
14
- `assistant amazon` is a built-in subcommand of the Vellum assistant CLI — it is NOT a separate tool you need to find or install. It should already be on your PATH. If `vellum` is not found, prepend `PATH="$HOME/.local/bin:$PATH"` to the command. Do NOT search for the binary, inspect wrapper scripts, or try to discover how the CLI works. Just run the commands as documented below.
15
-
16
- ## Typical Flow — Regular Amazon Shopping
17
-
18
- When the user asks you to order something from Amazon:
19
-
20
- 1. **Check session** — run `assistant amazon status --json`. If `loggedIn` is false or the session is expired, tell the user: "A Chrome window will open to the Amazon login page. Please sign in there — I'll detect your login automatically and minimize the window." Then run `assistant amazon refresh --json`. This starts a Ride Shotgun learn session that records your login and auto-stops once it detects you've signed in. The session is imported automatically. **This command blocks until login is complete — just wait for it.**
21
-
22
- 2. **Search** — run `assistant amazon search "<query>" --json` to find matching products. Present the top results with ASIN, title, price, and Prime status. If the user named a specific product, pick the best match. If ambiguous, ask.
23
-
24
- 3. **Product details** (if needed) — run `assistant amazon product <asin> --json` to get full details including price and variations. For products with variants (size, color, etc.), see the Variations section below.
25
-
26
- 4. **Add to cart** — run `assistant amazon cart add --asin <asin> [--quantity <n>] --json`. The response includes the updated cart with all items.
27
-
28
- 5. **Review cart** — run `assistant amazon cart view --json` and show the user what's in their cart with prices. Ask if they want to add anything else or proceed.
29
-
30
- 6. **Payment methods** — run `assistant amazon payment-methods --json` to see saved cards.
31
-
32
- 7. **Checkout summary** — run `assistant amazon checkout --json` to get order totals (subtotal, shipping, tax, total).
33
-
34
- 8. **Place order** — after the user explicitly confirms, run `assistant amazon order place [--payment-method-id <id>] --json`. The response contains `orderId` on success.
35
-
36
- ## Typical Flow — Amazon Fresh Groceries
37
-
38
- Amazon Fresh delivers groceries. The flow is the same as regular Amazon, with these additions:
39
-
40
- 1. **Search Fresh** — use the `--fresh` flag: `assistant amazon search "<query>" --fresh --json`
41
-
42
- 2. **Add Fresh items** — use the `--fresh` flag: `assistant amazon cart add --asin <asin> --fresh --json`
43
-
44
- 3. **Select delivery slot** — Fresh orders require a delivery window:
45
- - `assistant amazon fresh delivery-slots --json` — list available slots
46
- - `assistant amazon fresh select-slot --slot-id <id> --json` — select a slot
47
- - Do this BEFORE checkout.
48
-
49
- 4. **Checkout and order** — same as regular Amazon.
50
-
51
- ## Handling Variations
52
-
53
- Many Amazon products (clothing, electronics) have variations (size, color, style):
54
-
55
- 1. Run `assistant amazon product <asin> --json` to get the product and its `variations[]` array
56
- 2. Each variation has: `dimensionName` (e.g. "size"), `value` (e.g. "Large"), `asin` (child ASIN), `isAvailable`, `priceValue`
57
- 3. Use the child ASIN when adding to cart: `assistant amazon cart add --asin <child-asin> --json`
58
-
59
- Alternatively, run `assistant amazon variations <asin> --json` to list just the variations.
60
-
61
- ## Session Storage
62
-
63
- Session cookies are stored in the encrypted credential store under the key `amazon:session:cookies`. You can inspect the stored session with:
64
-
65
- ```bash
66
- assistant credentials inspect amazon:session:cookies
67
- ```
68
-
69
- Session capture (`assistant amazon refresh`) and session checks (`assistant amazon status`) use the credential store automatically — no manual file management is needed.
70
-
71
- ## Important Behavior
72
-
73
- - **Chrome extension relay required.** The Amazon CLI uses `assistant browser chrome relay` internally for browser automation. The Chrome extension must be connected before Amazon commands will work. If a command fails with a connection error, tell the user: "Please open Chrome, click the Vellum extension icon, and click Connect — then I'll retry."
74
- - **Always confirm before placing order.** Never call `order place` without explicit user approval. Show the cart and total first.
75
- - **Be proactive.** If the user says "order AA batteries", don't ask clarifying questions upfront — search, find the product, and suggest it. Only ask when you need a choice the user hasn't specified.
76
- - **Handle expired sessions gracefully.** If any command returns `"error": "session_expired"`, run `assistant amazon refresh --json` to re-capture the session.
77
- - **Show prices.** Always show prices when presenting products or the cart summary.
78
- - **Use `--json` flag** on all commands for reliable parsing.
79
- - **Do NOT use the browser skill.** All Amazon interaction goes through the CLI, not browser automation.
80
- - **Rate limiting.** Amazon may rate-limit rapid sequential requests. Wait 8–10 seconds between cart operations. If you get a 403 error, wait 15–20 seconds and retry.
81
- - **Always-allow tip.** At the start of an ordering flow, suggest the user enable "always allow" for `assistant amazon` commands: "Tip: You can type 'a' to always allow `assistant amazon` commands for this session so you won't be prompted each time."
82
- - **Fresh slot required.** Amazon Fresh orders require a delivery slot to be selected before checkout. If the user skips this step, remind them to run `assistant amazon fresh delivery-slots --json` and select a slot.
83
-
84
- ## Command Reference
85
-
86
- ```
87
- assistant amazon status --json # Check if logged in
88
- assistant amazon refresh --json # Capture fresh session via Ride Shotgun
89
- assistant amazon login --recording <path> # Import session from a recording file
90
- assistant amazon logout # Clear session
91
-
92
- assistant amazon search "<query>" [--fresh] [--limit <n>] --json
93
- assistant amazon product <asin> [--fresh] --json
94
- assistant amazon variations <asin> --json
95
-
96
- assistant amazon cart view --json
97
- assistant amazon cart add --asin <asin> [--quantity <n>] [--fresh] --json
98
- assistant amazon cart remove --cart-item-id <id> --json
99
-
100
- assistant amazon fresh delivery-slots --json
101
- assistant amazon fresh select-slot --slot-id <id> --json
102
-
103
- assistant amazon payment-methods --json
104
- assistant amazon checkout --json
105
- assistant amazon order place [--payment-method-id <id>] --json
106
- ```
107
-
108
- ## Example Interactions
109
-
110
- **User**: "Order a pack of AA batteries from Amazon"
111
-
112
- 1. `assistant amazon status --json` → logged in
113
- 2. `assistant amazon search "AA batteries" --json` → finds products
114
- 3. Show top results: "Duracell AA 20-pack ($12.99, Prime), Amazon Basics AA 48-pack ($14.49, Prime)..."
115
- 4. User picks Duracell → `assistant amazon cart add --asin B00000J1ER --json`
116
- 5. `assistant amazon cart view --json` → show cart summary
117
- 6. `assistant amazon checkout --json` → show total
118
- 7. "Your cart has 1x Duracell AA Batteries 20-pack ($12.99), total $12.99 with free Prime shipping. Ready to order?"
119
- 8. User confirms → `assistant amazon order place --json`
120
-
121
- **User**: "Order a large blue t-shirt from Amazon"
122
-
123
- 1. `assistant amazon search "blue t-shirt" --json` → finds products
124
- 2. User picks a shirt → `assistant amazon variations <parentAsin> --json` → shows Size + Color combinations
125
- 3. Find the child ASIN for Large + Blue → `assistant amazon cart add --asin <childAsin> --json`
126
-
127
- **User**: "Order milk and eggs from Amazon Fresh"
128
-
129
- 1. `assistant amazon status --json` → logged in
130
- 2. `assistant amazon search "whole milk" --fresh --json` → Fresh results
131
- 3. `assistant amazon cart add --asin <milkAsin> --fresh --json`
132
- 4. `assistant amazon search "eggs" --fresh --json` → Fresh results
133
- 5. `assistant amazon cart add --asin <eggsAsin> --fresh --json`
134
- 6. `assistant amazon fresh delivery-slots --json` → show available slots
135
- 7. User picks a slot → `assistant amazon fresh select-slot --slot-id <id> --json`
136
- 8. `assistant amazon checkout --json` → show totals
137
- 9. User confirms → `assistant amazon order place --json`
@@ -1,13 +0,0 @@
1
- <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
2
- <rect width="16" height="16" fill="#ffffff"/>
3
- <rect x="2" y="3" width="12" height="9" fill="#FF9900" stroke="#232F3E" stroke-width="1"/>
4
- <rect x="3" y="4" width="10" height="7" fill="#FF9900"/>
5
- <rect x="4" y="5" width="2" height="2" fill="#232F3E"/>
6
- <rect x="7" y="5" width="2" height="2" fill="#232F3E"/>
7
- <rect x="10" y="5" width="2" height="2" fill="#232F3E"/>
8
- <rect x="4" y="8" width="2" height="2" fill="#232F3E"/>
9
- <rect x="7" y="8" width="2" height="2" fill="#232F3E"/>
10
- <rect x="10" y="8" width="2" height="2" fill="#232F3E"/>
11
- <path d="M 3 13 Q 8 14 13 13" stroke="#232F3E" stroke-width="1" fill="none"/>
12
- <rect x="2" y="13" width="12" height="1" fill="#232F3E"/>
13
- </svg>
@@ -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
- ```