@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
@@ -121,7 +121,7 @@
121
121
  },
122
122
  {
123
123
  "name": "messaging_send",
124
- "description": "Compose a message. For Gmail, creates a draft for review; for other platforms, sends directly. High-risk action. Include a confidence score (0-1).",
124
+ "description": "Send a message, reply to a thread, or create a draft. On Gmail, always creates a draft for review. Supports replies (via thread_id), attachments (via attachment_paths, Gmail only), and all messaging platforms.",
125
125
  "category": "messaging",
126
126
  "risk": "high",
127
127
  "input_schema": {
@@ -133,7 +133,7 @@
133
133
  },
134
134
  "conversation_id": {
135
135
  "type": "string",
136
- "description": "Channel ID, email address, or conversation ID to send to"
136
+ "description": "Conversation/channel ID. For Gmail new messages, use the recipient email address."
137
137
  },
138
138
  "text": {
139
139
  "type": "string",
@@ -147,43 +147,16 @@
147
147
  "type": "string",
148
148
  "description": "Message-ID header for replies (Gmail only)"
149
149
  },
150
- "confidence": {
151
- "type": "number",
152
- "description": "Confidence score (0-1) for this action"
153
- },
154
- "reason": {
155
- "type": "string",
156
- "description": "Brief non-technical explanation of why this tool is being called"
157
- }
158
- },
159
- "required": ["conversation_id", "text", "confidence"]
160
- },
161
- "executor": "tools/messaging-send.ts",
162
- "execution_target": "host"
163
- },
164
- {
165
- "name": "messaging_reply",
166
- "description": "Reply in a thread. For Gmail, creates a threaded draft with reply-all recipients; for other platforms, sends directly. Include a confidence score (0-1).",
167
- "category": "messaging",
168
- "risk": "medium",
169
- "input_schema": {
170
- "type": "object",
171
- "properties": {
172
- "platform": {
173
- "type": "string",
174
- "description": "Platform (e.g. \"slack\", \"gmail\"). Auto-detected if only one is connected."
175
- },
176
- "conversation_id": {
177
- "type": "string",
178
- "description": "Channel ID or conversation ID"
150
+ "attachment_paths": {
151
+ "type": "array",
152
+ "items": {
153
+ "type": "string"
154
+ },
155
+ "description": "Absolute file paths of attachments to include (Gmail only)"
179
156
  },
180
157
  "thread_id": {
181
158
  "type": "string",
182
- "description": "Thread ID to reply to"
183
- },
184
- "text": {
185
- "type": "string",
186
- "description": "Reply text"
159
+ "description": "Thread ID for replies. When provided, the message is sent as a reply within the thread. On Gmail, auto-extracts reply-all recipients and threading headers."
187
160
  },
188
161
  "confidence": {
189
162
  "type": "number",
@@ -194,9 +167,9 @@
194
167
  "description": "Brief non-technical explanation of why this tool is being called"
195
168
  }
196
169
  },
197
- "required": ["conversation_id", "thread_id", "text", "confidence"]
170
+ "required": ["conversation_id", "text", "confidence"]
198
171
  },
199
- "executor": "tools/messaging-reply.ts",
172
+ "executor": "tools/messaging-send.ts",
200
173
  "execution_target": "host"
201
174
  },
202
175
  {
@@ -229,27 +202,6 @@
229
202
  "executor": "tools/messaging-mark-read.ts",
230
203
  "execution_target": "host"
231
204
  },
232
- {
233
- "name": "messaging_analyze_activity",
234
- "description": "Analyze channel or conversation activity levels. Groups conversations as high/medium/low/dead activity.",
235
- "category": "messaging",
236
- "risk": "low",
237
- "input_schema": {
238
- "type": "object",
239
- "properties": {
240
- "platform": {
241
- "type": "string",
242
- "description": "Platform (e.g. \"slack\", \"gmail\"). Auto-detected if only one is connected."
243
- },
244
- "reason": {
245
- "type": "string",
246
- "description": "Brief non-technical explanation of why this tool is being called"
247
- }
248
- }
249
- },
250
- "executor": "tools/messaging-analyze-activity.ts",
251
- "execution_target": "host"
252
- },
253
205
  {
254
206
  "name": "messaging_analyze_style",
255
207
  "description": "Analyze sent messages to extract personal writing style patterns. Saves style characteristics to memory for personalized drafting. Run once to enable style-aware message composition.",
@@ -327,217 +279,57 @@
327
279
  "execution_target": "host"
328
280
  },
329
281
  {
330
- "name": "gmail_archive",
331
- "description": "Archive a Gmail message (remove from inbox). Include a confidence score (0-1).",
332
- "category": "messaging",
333
- "risk": "medium",
334
- "input_schema": {
335
- "type": "object",
336
- "properties": {
337
- "message_id": {
338
- "type": "string",
339
- "description": "Gmail message ID to archive"
340
- },
341
- "confidence": {
342
- "type": "number",
343
- "description": "Confidence score (0-1) for this action"
344
- },
345
- "reason": {
346
- "type": "string",
347
- "description": "Brief non-technical explanation of why this tool is being called"
348
- }
349
- },
350
- "required": ["message_id", "confidence"]
351
- },
352
- "executor": "tools/gmail-archive.ts",
353
- "execution_target": "host"
354
- },
355
- {
356
- "name": "gmail_batch_archive",
357
- "description": "Archive multiple Gmail messages at once. Prefer scan_id + sender_ids (from a prior scan) over raw message_ids. Include a confidence score (0-1).",
282
+ "name": "messaging_sender_digest",
283
+ "description": "Scan connected email platform and group messages by sender to identify high-volume senders (e.g. newsletters). Works with any email provider that supports sender digest. Returns top senders sorted by message count with metadata for bulk cleanup.",
358
284
  "category": "messaging",
359
- "risk": "medium",
285
+ "risk": "low",
360
286
  "input_schema": {
361
287
  "type": "object",
362
288
  "properties": {
363
- "scan_id": {
289
+ "platform": {
364
290
  "type": "string",
365
- "description": "Scan result ID from a prior gmail_sender_digest or gmail_outreach_scan call"
366
- },
367
- "sender_ids": {
368
- "type": "array",
369
- "items": {
370
- "type": "string"
371
- },
372
- "description": "Sender IDs to archive (used with scan_id to resolve message IDs server-side)"
373
- },
374
- "message_ids": {
375
- "type": "array",
376
- "items": {
377
- "type": "string"
378
- },
379
- "description": "Gmail message IDs to archive (fallback \u2014 prefer scan_id + sender_ids)"
380
- },
381
- "confidence": {
382
- "type": "number",
383
- "description": "Confidence score (0-1) for this action"
291
+ "description": "Platform (e.g. \"gmail\"). Auto-detected if only one is connected."
384
292
  },
385
- "reason": {
386
- "type": "string",
387
- "description": "Brief non-technical explanation of why this tool is being called"
388
- }
389
- },
390
- "required": ["confidence"]
391
- },
392
- "executor": "tools/gmail-batch-archive.ts",
393
- "execution_target": "host"
394
- },
395
- {
396
- "name": "gmail_archive_by_query",
397
- "description": "Archive ALL Gmail messages matching a search query. Paginates through all results and archives in bulk. Ideal for high-volume senders where message IDs are not pre-collected. Include a confidence score (0-1).",
398
- "category": "messaging",
399
- "risk": "medium",
400
- "input_schema": {
401
- "type": "object",
402
- "properties": {
403
293
  "query": {
404
294
  "type": "string",
405
- "description": "Gmail search query (e.g. \"from:marketing@example.com category:promotions newer_than:90d\")"
295
+ "description": "Search query (default 'category:promotions newer_than:90d')"
406
296
  },
407
- "confidence": {
297
+ "max_messages": {
408
298
  "type": "number",
409
- "description": "Confidence score (0-1) for this action"
410
- },
411
- "reason": {
412
- "type": "string",
413
- "description": "Brief non-technical explanation of why this tool is being called"
414
- }
415
- },
416
- "required": ["query", "confidence"]
417
- },
418
- "executor": "tools/gmail-archive-by-query.ts",
419
- "execution_target": "host"
420
- },
421
- {
422
- "name": "gmail_label",
423
- "description": "Add or remove labels on a Gmail message. Include a confidence score (0-1).",
424
- "category": "messaging",
425
- "risk": "medium",
426
- "input_schema": {
427
- "type": "object",
428
- "properties": {
429
- "message_id": {
430
- "type": "string",
431
- "description": "Gmail message ID"
432
- },
433
- "add_label_ids": {
434
- "type": "array",
435
- "items": {
436
- "type": "string"
437
- },
438
- "description": "Label IDs to add"
439
- },
440
- "remove_label_ids": {
441
- "type": "array",
442
- "items": {
443
- "type": "string"
444
- },
445
- "description": "Label IDs to remove"
299
+ "description": "Maximum messages to scan (default 5000, cap 5000)"
446
300
  },
447
- "confidence": {
301
+ "max_senders": {
448
302
  "type": "number",
449
- "description": "Confidence score (0-1) for this action"
303
+ "description": "Maximum senders to return (default 30)"
450
304
  },
451
- "reason": {
305
+ "page_token": {
452
306
  "type": "string",
453
- "description": "Brief non-technical explanation of why this tool is being called"
454
- }
455
- },
456
- "required": ["message_id", "confidence"]
457
- },
458
- "executor": "tools/gmail-label.ts",
459
- "execution_target": "host"
460
- },
461
- {
462
- "name": "gmail_batch_label",
463
- "description": "Add or remove labels on multiple Gmail messages. Include a confidence score (0-1).",
464
- "category": "messaging",
465
- "risk": "medium",
466
- "input_schema": {
467
- "type": "object",
468
- "properties": {
469
- "message_ids": {
470
- "type": "array",
471
- "items": {
472
- "type": "string"
473
- },
474
- "description": "Gmail message IDs"
475
- },
476
- "add_label_ids": {
477
- "type": "array",
478
- "items": {
479
- "type": "string"
480
- },
481
- "description": "Label IDs to add"
482
- },
483
- "remove_label_ids": {
484
- "type": "array",
485
- "items": {
486
- "type": "string"
487
- },
488
- "description": "Label IDs to remove"
489
- },
490
- "confidence": {
491
- "type": "number",
492
- "description": "Confidence score (0-1) for this action"
307
+ "description": "Resume token from a previous scan (rarely needed \u2014 scans now cover up to 5,000 messages in a single call)"
493
308
  },
494
309
  "reason": {
495
310
  "type": "string",
496
311
  "description": "Brief non-technical explanation of why this tool is being called"
497
312
  }
498
- },
499
- "required": ["message_ids", "confidence"]
313
+ }
500
314
  },
501
- "executor": "tools/gmail-batch-label.ts",
315
+ "executor": "tools/messaging-sender-digest.ts",
502
316
  "execution_target": "host"
503
317
  },
504
318
  {
505
- "name": "gmail_trash",
506
- "description": "Move a Gmail message to trash. Include a confidence score (0-1).",
319
+ "name": "messaging_archive_by_sender",
320
+ "description": "Archive all messages matching a search query on the connected email platform. Paginates through all results and archives in bulk. Works with any email provider that supports archive by query. Include a confidence score (0-1).",
507
321
  "category": "messaging",
508
322
  "risk": "medium",
509
323
  "input_schema": {
510
324
  "type": "object",
511
325
  "properties": {
512
- "message_id": {
326
+ "platform": {
513
327
  "type": "string",
514
- "description": "Gmail message ID to trash"
515
- },
516
- "confidence": {
517
- "type": "number",
518
- "description": "Confidence score (0-1) for this action"
328
+ "description": "Platform (e.g. \"gmail\"). Auto-detected if only one is connected."
519
329
  },
520
- "reason": {
521
- "type": "string",
522
- "description": "Brief non-technical explanation of why this tool is being called"
523
- }
524
- },
525
- "required": ["message_id", "confidence"]
526
- },
527
- "executor": "tools/gmail-trash.ts",
528
- "execution_target": "host"
529
- },
530
- {
531
- "name": "gmail_unsubscribe",
532
- "description": "Unsubscribe from a mailing list by following the List-Unsubscribe header. Include a confidence score (0-1).",
533
- "category": "messaging",
534
- "risk": "medium",
535
- "input_schema": {
536
- "type": "object",
537
- "properties": {
538
- "message_id": {
330
+ "query": {
539
331
  "type": "string",
540
- "description": "A Gmail message ID from the mailing list to unsubscribe from"
332
+ "description": "Search query (e.g. \"from:marketing@example.com category:promotions newer_than:90d\")"
541
333
  },
542
334
  "confidence": {
543
335
  "type": "number",
@@ -548,983 +340,9 @@
548
340
  "description": "Brief non-technical explanation of why this tool is being called"
549
341
  }
550
342
  },
551
- "required": ["message_id", "confidence"]
552
- },
553
- "executor": "tools/gmail-unsubscribe.ts",
554
- "execution_target": "host"
555
- },
556
- {
557
- "name": "gmail_draft",
558
- "description": "Create a draft email in Gmail. The draft will appear in Gmail Drafts for user review.",
559
- "category": "messaging",
560
- "risk": "low",
561
- "input_schema": {
562
- "type": "object",
563
- "properties": {
564
- "to": {
565
- "type": "string",
566
- "description": "Recipient email address"
567
- },
568
- "subject": {
569
- "type": "string",
570
- "description": "Email subject line"
571
- },
572
- "body": {
573
- "type": "string",
574
- "description": "Email body (plain text)"
575
- },
576
- "in_reply_to": {
577
- "type": "string",
578
- "description": "RFC 822 Message-ID header value (e.g. `<CABx...@mail.gmail.com>`), NOT the Gmail message ID. Look up the original message's Message-ID header."
579
- },
580
- "cc": {
581
- "type": "string",
582
- "description": "CC recipients (comma-separated email addresses)"
583
- },
584
- "bcc": {
585
- "type": "string",
586
- "description": "BCC recipients (comma-separated email addresses)"
587
- },
588
- "reason": {
589
- "type": "string",
590
- "description": "Brief non-technical explanation of why this tool is being called"
591
- }
592
- },
593
- "required": ["to", "subject", "body"]
343
+ "required": ["query", "confidence"]
594
344
  },
595
- "executor": "tools/gmail-draft.ts",
596
- "execution_target": "host"
597
- },
598
- {
599
- "name": "gmail_send_draft",
600
- "description": "Send an existing Gmail draft. Only use when the user has reviewed and explicitly approved sending.",
601
- "category": "messaging",
602
- "risk": "high",
603
- "input_schema": {
604
- "type": "object",
605
- "properties": {
606
- "draft_id": {
607
- "type": "string",
608
- "description": "Gmail draft ID to send"
609
- },
610
- "confidence": {
611
- "type": "number",
612
- "description": "Confidence score (0-1) for this action"
613
- },
614
- "reason": {
615
- "type": "string",
616
- "description": "Brief non-technical explanation of why this tool is being called"
617
- }
618
- },
619
- "required": ["draft_id", "confidence"]
620
- },
621
- "executor": "tools/gmail-send-draft.ts",
622
- "execution_target": "host"
623
- },
624
- {
625
- "name": "gmail_list_attachments",
626
- "description": "List attachments on a Gmail message with filename, MIME type, size, and attachment ID.",
627
- "category": "messaging",
628
- "risk": "low",
629
- "input_schema": {
630
- "type": "object",
631
- "properties": {
632
- "message_id": {
633
- "type": "string",
634
- "description": "Gmail message ID to list attachments for"
635
- },
636
- "reason": {
637
- "type": "string",
638
- "description": "Brief non-technical explanation of why this tool is being called"
639
- }
640
- },
641
- "required": ["message_id"]
642
- },
643
- "executor": "tools/gmail-list-attachments.ts",
644
- "execution_target": "host"
645
- },
646
- {
647
- "name": "gmail_download_attachment",
648
- "description": "Download a Gmail attachment to the working directory.",
649
- "category": "messaging",
650
- "risk": "low",
651
- "input_schema": {
652
- "type": "object",
653
- "properties": {
654
- "message_id": {
655
- "type": "string",
656
- "description": "Gmail message ID"
657
- },
658
- "attachment_id": {
659
- "type": "string",
660
- "description": "Attachment ID from gmail_list_attachments"
661
- },
662
- "filename": {
663
- "type": "string",
664
- "description": "Filename to save as"
665
- },
666
- "reason": {
667
- "type": "string",
668
- "description": "Brief non-technical explanation of why this tool is being called"
669
- }
670
- },
671
- "required": ["message_id", "attachment_id", "filename"]
672
- },
673
- "executor": "tools/gmail-download-attachment.ts",
674
- "execution_target": "host"
675
- },
676
- {
677
- "name": "gmail_send_with_attachments",
678
- "description": "Create a Gmail draft with file attachments for review. Include a confidence score (0-1).",
679
- "category": "messaging",
680
- "risk": "high",
681
- "input_schema": {
682
- "type": "object",
683
- "properties": {
684
- "to": {
685
- "type": "string",
686
- "description": "Recipient email address"
687
- },
688
- "subject": {
689
- "type": "string",
690
- "description": "Email subject line"
691
- },
692
- "body": {
693
- "type": "string",
694
- "description": "Email body (plain text)"
695
- },
696
- "attachment_paths": {
697
- "type": "array",
698
- "items": {
699
- "type": "string"
700
- },
701
- "description": "Absolute file paths of attachments to include"
702
- },
703
- "in_reply_to": {
704
- "type": "string",
705
- "description": "Message-ID header for replies"
706
- },
707
- "thread_id": {
708
- "type": "string",
709
- "description": "Thread ID to continue an existing thread"
710
- },
711
- "confidence": {
712
- "type": "number",
713
- "description": "Confidence score (0-1) for this action"
714
- },
715
- "reason": {
716
- "type": "string",
717
- "description": "Brief non-technical explanation of why this tool is being called"
718
- }
719
- },
720
- "required": ["to", "subject", "body", "attachment_paths", "confidence"]
721
- },
722
- "executor": "tools/gmail-send-with-attachments.ts",
723
- "execution_target": "host"
724
- },
725
- {
726
- "name": "gmail_forward",
727
- "description": "Create a draft forwarding a Gmail message to another recipient, preserving attachments. Include a confidence score (0-1).",
728
- "category": "messaging",
729
- "risk": "high",
730
- "input_schema": {
731
- "type": "object",
732
- "properties": {
733
- "message_id": {
734
- "type": "string",
735
- "description": "Gmail message ID to forward"
736
- },
737
- "to": {
738
- "type": "string",
739
- "description": "Recipient email address"
740
- },
741
- "text": {
742
- "type": "string",
743
- "description": "Optional text to prepend to the forwarded message"
744
- },
745
- "confidence": {
746
- "type": "number",
747
- "description": "Confidence score (0-1) for this action"
748
- },
749
- "reason": {
750
- "type": "string",
751
- "description": "Brief non-technical explanation of why this tool is being called"
752
- }
753
- },
754
- "required": ["message_id", "to", "confidence"]
755
- },
756
- "executor": "tools/gmail-forward.ts",
757
- "execution_target": "host"
758
- },
759
- {
760
- "name": "gmail_summarize_thread",
761
- "description": "Summarize a Gmail thread using LLM analysis. Returns participants, key decisions, open questions, and sentiment.",
762
- "category": "messaging",
763
- "risk": "low",
764
- "input_schema": {
765
- "type": "object",
766
- "properties": {
767
- "thread_id": {
768
- "type": "string",
769
- "description": "Gmail thread ID to summarize"
770
- },
771
- "reason": {
772
- "type": "string",
773
- "description": "Brief non-technical explanation of why this tool is being called"
774
- }
775
- },
776
- "required": ["thread_id"]
777
- },
778
- "executor": "tools/gmail-summarize-thread.ts",
779
- "execution_target": "host"
780
- },
781
- {
782
- "name": "gmail_follow_up",
783
- "description": "Track, list, or untrack Gmail messages for follow-up using a dedicated label. Include a confidence score (0-1).",
784
- "category": "messaging",
785
- "risk": "medium",
786
- "input_schema": {
787
- "type": "object",
788
- "properties": {
789
- "action": {
790
- "type": "string",
791
- "enum": ["track", "list", "untrack"],
792
- "description": "Follow-up action"
793
- },
794
- "message_id": {
795
- "type": "string",
796
- "description": "Gmail message ID (required for track/untrack)"
797
- },
798
- "confidence": {
799
- "type": "number",
800
- "description": "Confidence score (0-1) for this action"
801
- },
802
- "reason": {
803
- "type": "string",
804
- "description": "Brief non-technical explanation of why this tool is being called"
805
- }
806
- },
807
- "required": ["action", "confidence"]
808
- },
809
- "executor": "tools/gmail-follow-up.ts",
810
- "execution_target": "host"
811
- },
812
- {
813
- "name": "gmail_triage",
814
- "description": "LLM-powered inbox triage: classify unread emails by urgency and type, optionally auto-apply actions. Include a confidence score (0-1).",
815
- "category": "messaging",
816
- "risk": "medium",
817
- "input_schema": {
818
- "type": "object",
819
- "properties": {
820
- "max_results": {
821
- "type": "number",
822
- "description": "Maximum emails to triage (default 20)"
823
- },
824
- "auto_apply": {
825
- "type": "boolean",
826
- "description": "Auto-archive can_archive and label needs_reply as Follow-up (default false)"
827
- },
828
- "query": {
829
- "type": "string",
830
- "description": "Gmail search query (default 'is:unread in:inbox')"
831
- },
832
- "confidence": {
833
- "type": "number",
834
- "description": "Confidence score (0-1) for this action"
835
- },
836
- "reason": {
837
- "type": "string",
838
- "description": "Brief non-technical explanation of why this tool is being called"
839
- }
840
- },
841
- "required": ["confidence"]
842
- },
843
- "executor": "tools/gmail-triage.ts",
844
- "execution_target": "host"
845
- },
846
- {
847
- "name": "gmail_filters",
848
- "description": "List, create, or delete Gmail filters for inbox automation. Include a confidence score (0-1).",
849
- "category": "messaging",
850
- "risk": "medium",
851
- "input_schema": {
852
- "type": "object",
853
- "properties": {
854
- "action": {
855
- "type": "string",
856
- "enum": ["list", "create", "delete"],
857
- "description": "Filter action"
858
- },
859
- "from": {
860
- "type": "string",
861
- "description": "Filter criteria: sender (for create)"
862
- },
863
- "to": {
864
- "type": "string",
865
- "description": "Filter criteria: recipient (for create)"
866
- },
867
- "subject": {
868
- "type": "string",
869
- "description": "Filter criteria: subject contains (for create)"
870
- },
871
- "query": {
872
- "type": "string",
873
- "description": "Filter criteria: Gmail query (for create)"
874
- },
875
- "has_attachment": {
876
- "type": "boolean",
877
- "description": "Filter criteria: has attachment (for create)"
878
- },
879
- "add_label_ids": {
880
- "type": "array",
881
- "items": {
882
- "type": "string"
883
- },
884
- "description": "Filter action: label IDs to add (for create)"
885
- },
886
- "remove_label_ids": {
887
- "type": "array",
888
- "items": {
889
- "type": "string"
890
- },
891
- "description": "Filter action: label IDs to remove (for create)"
892
- },
893
- "forward": {
894
- "type": "string",
895
- "description": "Filter action: forward to email (for create)"
896
- },
897
- "filter_id": {
898
- "type": "string",
899
- "description": "Filter ID (for delete)"
900
- },
901
- "confidence": {
902
- "type": "number",
903
- "description": "Confidence score (0-1) for this action"
904
- },
905
- "reason": {
906
- "type": "string",
907
- "description": "Brief non-technical explanation of why this tool is being called"
908
- }
909
- },
910
- "required": ["action", "confidence"]
911
- },
912
- "executor": "tools/gmail-filters.ts",
913
- "execution_target": "host"
914
- },
915
- {
916
- "name": "gmail_vacation",
917
- "description": "Get, enable, or disable Gmail vacation auto-responder. Include a confidence score (0-1).",
918
- "category": "messaging",
919
- "risk": "medium",
920
- "input_schema": {
921
- "type": "object",
922
- "properties": {
923
- "action": {
924
- "type": "string",
925
- "enum": ["get", "enable", "disable"],
926
- "description": "Vacation action"
927
- },
928
- "message": {
929
- "type": "string",
930
- "description": "Auto-reply message body (required for enable)"
931
- },
932
- "subject": {
933
- "type": "string",
934
- "description": "Auto-reply subject (default 'Out of Office')"
935
- },
936
- "start_time": {
937
- "type": "number",
938
- "description": "Start time in epoch milliseconds"
939
- },
940
- "end_time": {
941
- "type": "number",
942
- "description": "End time in epoch milliseconds"
943
- },
944
- "restrict_to_contacts": {
945
- "type": "boolean",
946
- "description": "Only auto-reply to contacts (default false)"
947
- },
948
- "restrict_to_domain": {
949
- "type": "boolean",
950
- "description": "Only auto-reply to same domain (default false)"
951
- },
952
- "confidence": {
953
- "type": "number",
954
- "description": "Confidence score (0-1) for this action"
955
- },
956
- "reason": {
957
- "type": "string",
958
- "description": "Brief non-technical explanation of why this tool is being called"
959
- }
960
- },
961
- "required": ["action", "confidence"]
962
- },
963
- "executor": "tools/gmail-vacation.ts",
964
- "execution_target": "host"
965
- },
966
- {
967
- "name": "gmail_sender_digest",
968
- "description": "Scan Gmail and group messages by sender to identify high-volume senders (e.g. newsletters). Returns top senders sorted by message count with metadata for bulk cleanup.",
969
- "category": "messaging",
970
- "risk": "low",
971
- "input_schema": {
972
- "type": "object",
973
- "properties": {
974
- "query": {
975
- "type": "string",
976
- "description": "Gmail search query (default 'category:promotions newer_than:90d')"
977
- },
978
- "max_messages": {
979
- "type": "number",
980
- "description": "Maximum messages to scan (default 5000, cap 10000)"
981
- },
982
- "max_senders": {
983
- "type": "number",
984
- "description": "Maximum senders to return (default 50)"
985
- },
986
- "page_token": {
987
- "type": "string",
988
- "description": "Resume token from a previous scan (rarely needed \u2014 scans now cover up to 10,000 messages in a single call)"
989
- },
990
- "reason": {
991
- "type": "string",
992
- "description": "Brief non-technical explanation of why this tool is being called"
993
- }
994
- }
995
- },
996
- "executor": "tools/gmail-sender-digest.ts",
997
- "execution_target": "host"
998
- },
999
- {
1000
- "name": "messaging_sender_digest",
1001
- "description": "Scan connected email platform and group messages by sender to identify high-volume senders (e.g. newsletters). Works with any email provider that supports sender digest. Returns top senders sorted by message count with metadata for bulk cleanup.",
1002
- "category": "messaging",
1003
- "risk": "low",
1004
- "input_schema": {
1005
- "type": "object",
1006
- "properties": {
1007
- "platform": {
1008
- "type": "string",
1009
- "description": "Platform (e.g. \"gmail\"). Auto-detected if only one is connected."
1010
- },
1011
- "query": {
1012
- "type": "string",
1013
- "description": "Search query (default 'category:promotions newer_than:90d')"
1014
- },
1015
- "max_messages": {
1016
- "type": "number",
1017
- "description": "Maximum messages to scan (default 5000, cap 5000)"
1018
- },
1019
- "max_senders": {
1020
- "type": "number",
1021
- "description": "Maximum senders to return (default 30)"
1022
- },
1023
- "page_token": {
1024
- "type": "string",
1025
- "description": "Resume token from a previous scan (rarely needed \u2014 scans now cover up to 5,000 messages in a single call)"
1026
- },
1027
- "reason": {
1028
- "type": "string",
1029
- "description": "Brief non-technical explanation of why this tool is being called"
1030
- }
1031
- }
1032
- },
1033
- "executor": "tools/messaging-sender-digest.ts",
1034
- "execution_target": "host"
1035
- },
1036
- {
1037
- "name": "messaging_archive_by_sender",
1038
- "description": "Archive all messages matching a search query on the connected email platform. Paginates through all results and archives in bulk. Works with any email provider that supports archive by query. Include a confidence score (0-1).",
1039
- "category": "messaging",
1040
- "risk": "medium",
1041
- "input_schema": {
1042
- "type": "object",
1043
- "properties": {
1044
- "platform": {
1045
- "type": "string",
1046
- "description": "Platform (e.g. \"gmail\"). Auto-detected if only one is connected."
1047
- },
1048
- "query": {
1049
- "type": "string",
1050
- "description": "Search query (e.g. \"from:marketing@example.com category:promotions newer_than:90d\")"
1051
- },
1052
- "confidence": {
1053
- "type": "number",
1054
- "description": "Confidence score (0-1) for this action"
1055
- },
1056
- "reason": {
1057
- "type": "string",
1058
- "description": "Brief non-technical explanation of why this tool is being called"
1059
- }
1060
- },
1061
- "required": ["query", "confidence"]
1062
- },
1063
- "executor": "tools/messaging-archive-by-sender.ts",
1064
- "execution_target": "host"
1065
- },
1066
- {
1067
- "name": "gmail_outreach_scan",
1068
- "description": "Scan Gmail for cold outreach emails (sales, recruiting, marketing) using LLM classification. Returns top outreach senders with suggested cleanup actions. Read-only \u2014 use gmail_batch_archive and gmail_filters for cleanup.",
1069
- "category": "messaging",
1070
- "risk": "low",
1071
- "input_schema": {
1072
- "type": "object",
1073
- "properties": {
1074
- "max_messages": {
1075
- "type": "number",
1076
- "description": "Maximum messages to scan (default 2000, cap 5000)"
1077
- },
1078
- "max_senders": {
1079
- "type": "number",
1080
- "description": "Maximum outreach senders to return (default 30)"
1081
- },
1082
- "time_range": {
1083
- "type": "string",
1084
- "description": "Gmail time range filter (default '90d')"
1085
- },
1086
- "min_confidence": {
1087
- "type": "number",
1088
- "description": "Minimum confidence threshold 0-1 (default 0.5)"
1089
- },
1090
- "page_token": {
1091
- "type": "string",
1092
- "description": "Resume token from a previous scan (rarely needed \u2014 scans now cover up to 5,000 messages in a single call)"
1093
- },
1094
- "reason": {
1095
- "type": "string",
1096
- "description": "Brief non-technical explanation of why this tool is being called"
1097
- }
1098
- }
1099
- },
1100
- "executor": "tools/gmail-outreach-scan.ts",
1101
- "execution_target": "host"
1102
- },
1103
- {
1104
- "name": "google_contacts",
1105
- "description": "List or search Google Contacts. Requires contacts.readonly scope (re-authorization may be needed).",
1106
- "category": "messaging",
1107
- "risk": "low",
1108
- "input_schema": {
1109
- "type": "object",
1110
- "properties": {
1111
- "action": {
1112
- "type": "string",
1113
- "enum": ["list", "search"],
1114
- "description": "Contacts action"
1115
- },
1116
- "query": {
1117
- "type": "string",
1118
- "description": "Search query (for search action)"
1119
- },
1120
- "page_size": {
1121
- "type": "number",
1122
- "description": "Number of contacts to return (default 50, for list)"
1123
- },
1124
- "page_token": {
1125
- "type": "string",
1126
- "description": "Pagination token (for list)"
1127
- },
1128
- "reason": {
1129
- "type": "string",
1130
- "description": "Brief non-technical explanation of why this tool is being called"
1131
- }
1132
- },
1133
- "required": ["action"]
1134
- },
1135
- "executor": "tools/google-contacts.ts",
1136
- "execution_target": "host"
1137
- },
1138
- {
1139
- "name": "sequence_create",
1140
- "description": "Create an email sequence with multiple steps and delay intervals.",
1141
- "category": "messaging",
1142
- "risk": "low",
1143
- "input_schema": {
1144
- "type": "object",
1145
- "properties": {
1146
- "name": {
1147
- "type": "string",
1148
- "description": "Name of the sequence"
1149
- },
1150
- "channel": {
1151
- "type": "string",
1152
- "description": "Messaging channel (e.g. \"gmail\")"
1153
- },
1154
- "steps": {
1155
- "type": "array",
1156
- "items": {
1157
- "type": "object",
1158
- "properties": {
1159
- "delay_seconds": {
1160
- "type": "number",
1161
- "description": "Delay before sending this step (in seconds)"
1162
- },
1163
- "subject": {
1164
- "type": "string",
1165
- "description": "Subject line template"
1166
- },
1167
- "body_prompt": {
1168
- "type": "string",
1169
- "description": "Prompt or body text for this step"
1170
- },
1171
- "reply_to_thread": {
1172
- "type": "boolean",
1173
- "description": "Whether to reply in the existing thread (default true for step 2+)"
1174
- },
1175
- "require_approval": {
1176
- "type": "boolean",
1177
- "description": "Whether to require user approval before sending (default false)"
1178
- }
1179
- },
1180
- "required": ["body_prompt"]
1181
- },
1182
- "description": "Ordered list of sequence steps"
1183
- },
1184
- "description": {
1185
- "type": "string",
1186
- "description": "Optional description of the sequence"
1187
- },
1188
- "exit_on_reply": {
1189
- "type": "boolean",
1190
- "description": "Whether to stop the sequence when the contact replies (default true)"
1191
- },
1192
- "reason": {
1193
- "type": "string",
1194
- "description": "Brief non-technical explanation of why this tool is being called"
1195
- }
1196
- },
1197
- "required": ["name", "channel", "steps"]
1198
- },
1199
- "executor": "tools/sequence-create.ts",
1200
- "execution_target": "host"
1201
- },
1202
- {
1203
- "name": "sequence_list",
1204
- "description": "List all email sequences with their status and enrollment counts.",
1205
- "category": "messaging",
1206
- "risk": "low",
1207
- "input_schema": {
1208
- "type": "object",
1209
- "properties": {
1210
- "status": {
1211
- "type": "string",
1212
- "enum": ["active", "paused", "archived"],
1213
- "description": "Filter by sequence status"
1214
- },
1215
- "reason": {
1216
- "type": "string",
1217
- "description": "Brief non-technical explanation of why this tool is being called"
1218
- }
1219
- }
1220
- },
1221
- "executor": "tools/sequence-list.ts",
1222
- "execution_target": "host"
1223
- },
1224
- {
1225
- "name": "sequence_get",
1226
- "description": "Get detailed information about a sequence including steps, enrollment counts, and status breakdown.",
1227
- "category": "messaging",
1228
- "risk": "low",
1229
- "input_schema": {
1230
- "type": "object",
1231
- "properties": {
1232
- "id": {
1233
- "type": "string",
1234
- "description": "Sequence ID"
1235
- },
1236
- "reason": {
1237
- "type": "string",
1238
- "description": "Brief non-technical explanation of why this tool is being called"
1239
- }
1240
- },
1241
- "required": ["id"]
1242
- },
1243
- "executor": "tools/sequence-get.ts",
1244
- "execution_target": "host"
1245
- },
1246
- {
1247
- "name": "sequence_update",
1248
- "description": "Update a sequence's name, description, status, steps, or exit-on-reply setting.",
1249
- "category": "messaging",
1250
- "risk": "low",
1251
- "input_schema": {
1252
- "type": "object",
1253
- "properties": {
1254
- "id": {
1255
- "type": "string",
1256
- "description": "Sequence ID to update"
1257
- },
1258
- "name": {
1259
- "type": "string",
1260
- "description": "New name"
1261
- },
1262
- "description": {
1263
- "type": "string",
1264
- "description": "New description"
1265
- },
1266
- "status": {
1267
- "type": "string",
1268
- "enum": ["active", "paused", "archived"],
1269
- "description": "New status"
1270
- },
1271
- "exit_on_reply": {
1272
- "type": "boolean",
1273
- "description": "Whether to exit on contact reply"
1274
- },
1275
- "steps": {
1276
- "type": "array",
1277
- "items": {
1278
- "type": "object",
1279
- "properties": {
1280
- "delay_seconds": {
1281
- "type": "number",
1282
- "description": "Delay before sending this step (in seconds)"
1283
- },
1284
- "subject": {
1285
- "type": "string",
1286
- "description": "Subject line template"
1287
- },
1288
- "body_prompt": {
1289
- "type": "string",
1290
- "description": "Prompt or body text for this step"
1291
- },
1292
- "reply_to_thread": {
1293
- "type": "boolean",
1294
- "description": "Whether to reply in the existing thread"
1295
- },
1296
- "require_approval": {
1297
- "type": "boolean",
1298
- "description": "Whether to require user approval before sending"
1299
- }
1300
- },
1301
- "required": ["body_prompt"]
1302
- },
1303
- "description": "Replacement steps (replaces all existing steps)"
1304
- },
1305
- "reason": {
1306
- "type": "string",
1307
- "description": "Brief non-technical explanation of why this tool is being called"
1308
- }
1309
- },
1310
- "required": ["id"]
1311
- },
1312
- "executor": "tools/sequence-update.ts",
1313
- "execution_target": "host"
1314
- },
1315
- {
1316
- "name": "sequence_delete",
1317
- "description": "Delete a sequence and cancel all its active enrollments.",
1318
- "category": "messaging",
1319
- "risk": "medium",
1320
- "input_schema": {
1321
- "type": "object",
1322
- "properties": {
1323
- "id": {
1324
- "type": "string",
1325
- "description": "Sequence ID to delete"
1326
- },
1327
- "reason": {
1328
- "type": "string",
1329
- "description": "Brief non-technical explanation of why this tool is being called"
1330
- }
1331
- },
1332
- "required": ["id"]
1333
- },
1334
- "executor": "tools/sequence-delete.ts",
1335
- "execution_target": "host"
1336
- },
1337
- {
1338
- "name": "sequence_enroll",
1339
- "description": "Enroll one or more contacts into a sequence. Accepts comma-separated emails or an array.",
1340
- "category": "messaging",
1341
- "risk": "medium",
1342
- "input_schema": {
1343
- "type": "object",
1344
- "properties": {
1345
- "sequence_id": {
1346
- "type": "string",
1347
- "description": "Sequence ID to enroll contacts in"
1348
- },
1349
- "emails": {
1350
- "description": "Email address(es) to enroll \u2014 comma-separated string or array",
1351
- "oneOf": [
1352
- {
1353
- "type": "string"
1354
- },
1355
- {
1356
- "type": "array",
1357
- "items": {
1358
- "type": "string"
1359
- }
1360
- }
1361
- ]
1362
- },
1363
- "context": {
1364
- "type": "object",
1365
- "description": "Optional context object with personalization variables for the enrolled contacts"
1366
- },
1367
- "reason": {
1368
- "type": "string",
1369
- "description": "Brief non-technical explanation of why this tool is being called"
1370
- }
1371
- },
1372
- "required": ["sequence_id", "emails"]
1373
- },
1374
- "executor": "tools/sequence-enroll.ts",
1375
- "execution_target": "host"
1376
- },
1377
- {
1378
- "name": "sequence_enrollment_list",
1379
- "description": "List enrollments for a sequence, optionally filtered by status.",
1380
- "category": "messaging",
1381
- "risk": "low",
1382
- "input_schema": {
1383
- "type": "object",
1384
- "properties": {
1385
- "sequence_id": {
1386
- "type": "string",
1387
- "description": "Filter by sequence ID"
1388
- },
1389
- "status": {
1390
- "type": "string",
1391
- "enum": [
1392
- "active",
1393
- "paused",
1394
- "completed",
1395
- "replied",
1396
- "cancelled",
1397
- "failed"
1398
- ],
1399
- "description": "Filter by enrollment status"
1400
- },
1401
- "reason": {
1402
- "type": "string",
1403
- "description": "Brief non-technical explanation of why this tool is being called"
1404
- }
1405
- }
1406
- },
1407
- "executor": "tools/sequence-enrollment-list.ts",
1408
- "execution_target": "host"
1409
- },
1410
- {
1411
- "name": "sequence_pause",
1412
- "description": "Pause a sequence (stops processing all enrollments) or cancel a specific enrollment.",
1413
- "category": "messaging",
1414
- "risk": "medium",
1415
- "input_schema": {
1416
- "type": "object",
1417
- "properties": {
1418
- "sequence_id": {
1419
- "type": "string",
1420
- "description": "Sequence ID to pause"
1421
- },
1422
- "enrollment_id": {
1423
- "type": "string",
1424
- "description": "Specific enrollment ID to cancel (alternative to pausing whole sequence)"
1425
- },
1426
- "reason": {
1427
- "type": "string",
1428
- "description": "Brief non-technical explanation of why this tool is being called"
1429
- }
1430
- }
1431
- },
1432
- "executor": "tools/sequence-pause.ts",
1433
- "execution_target": "host"
1434
- },
1435
- {
1436
- "name": "sequence_resume",
1437
- "description": "Resume a paused sequence. Active enrollments will be processed on the next scheduler tick.",
1438
- "category": "messaging",
1439
- "risk": "low",
1440
- "input_schema": {
1441
- "type": "object",
1442
- "properties": {
1443
- "sequence_id": {
1444
- "type": "string",
1445
- "description": "Sequence ID to resume"
1446
- },
1447
- "reason": {
1448
- "type": "string",
1449
- "description": "Brief non-technical explanation of why this tool is being called"
1450
- }
1451
- },
1452
- "required": ["sequence_id"]
1453
- },
1454
- "executor": "tools/sequence-resume.ts",
1455
- "execution_target": "host"
1456
- },
1457
- {
1458
- "name": "sequence_cancel",
1459
- "description": "Cancel a specific enrollment, removing the contact from the sequence.",
1460
- "category": "messaging",
1461
- "risk": "medium",
1462
- "input_schema": {
1463
- "type": "object",
1464
- "properties": {
1465
- "enrollment_id": {
1466
- "type": "string",
1467
- "description": "Enrollment ID to cancel"
1468
- },
1469
- "reason": {
1470
- "type": "string",
1471
- "description": "Brief non-technical explanation of why this tool is being called"
1472
- }
1473
- },
1474
- "required": ["enrollment_id"]
1475
- },
1476
- "executor": "tools/sequence-cancel.ts",
1477
- "execution_target": "host"
1478
- },
1479
- {
1480
- "name": "sequence_import",
1481
- "description": "Import contacts from a CSV/TSV file and enroll them in a sequence. First call shows a preview; set auto_enroll=true to enroll.",
1482
- "category": "messaging",
1483
- "risk": "medium",
1484
- "input_schema": {
1485
- "type": "object",
1486
- "properties": {
1487
- "file_path": {
1488
- "type": "string",
1489
- "description": "Absolute path to the CSV/TSV file"
1490
- },
1491
- "sequence_id": {
1492
- "type": "string",
1493
- "description": "Sequence ID to enroll contacts in"
1494
- },
1495
- "auto_enroll": {
1496
- "type": "boolean",
1497
- "description": "Set to true to enroll contacts (default false = preview mode)"
1498
- },
1499
- "reason": {
1500
- "type": "string",
1501
- "description": "Brief non-technical explanation of why this tool is being called"
1502
- }
1503
- },
1504
- "required": ["file_path", "sequence_id"]
1505
- },
1506
- "executor": "tools/sequence-import.ts",
1507
- "execution_target": "host"
1508
- },
1509
- {
1510
- "name": "sequence_analytics",
1511
- "description": "View sequence analytics dashboard with send/reply/completion metrics, per-step funnel, and recent activity.",
1512
- "category": "messaging",
1513
- "risk": "low",
1514
- "input_schema": {
1515
- "type": "object",
1516
- "properties": {
1517
- "sequence_id": {
1518
- "type": "string",
1519
- "description": "Optional sequence ID for detailed step funnel view"
1520
- },
1521
- "reason": {
1522
- "type": "string",
1523
- "description": "Brief non-technical explanation of why this tool is being called"
1524
- }
1525
- }
1526
- },
1527
- "executor": "tools/sequence-analytics.ts",
345
+ "executor": "tools/messaging-archive-by-sender.ts",
1528
346
  "execution_target": "host"
1529
347
  }
1530
348
  ]