@vellumai/assistant 0.6.3 → 0.6.5

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 (1114) hide show
  1. package/.prettierignore +5 -0
  2. package/ARCHITECTURE.md +298 -39
  3. package/Dockerfile +14 -3
  4. package/README.md +3 -4
  5. package/bun.lock +13 -16
  6. package/docs/architecture/integrations.md +1 -20
  7. package/docs/architecture/security.md +16 -16
  8. package/docs/backup-troubleshooting.md +52 -0
  9. package/docs/browser-use-architecture-phase2.md +174 -0
  10. package/docs/error-handling.md +111 -0
  11. package/docs/skills.md +10 -10
  12. package/docs/stt-provider-onboarding.md +121 -0
  13. package/knip.json +20 -3
  14. package/node_modules/@vellumai/ces-contracts/bun.lock +8 -6
  15. package/node_modules/@vellumai/ces-contracts/package.json +5 -4
  16. package/node_modules/@vellumai/ces-contracts/src/__tests__/trust-rules.test.ts +471 -0
  17. package/node_modules/@vellumai/ces-contracts/src/trust-rules.ts +398 -4
  18. package/node_modules/@vellumai/credential-storage/bun.lock +2 -2
  19. package/node_modules/@vellumai/credential-storage/package.json +2 -2
  20. package/node_modules/@vellumai/credential-storage/src/oauth-runtime.ts +20 -2
  21. package/node_modules/@vellumai/egress-proxy/bun.lock +2 -2
  22. package/node_modules/@vellumai/egress-proxy/package.json +2 -2
  23. package/openapi.yaml +1094 -72
  24. package/package.json +9 -8
  25. package/scripts/generate-openapi.ts +50 -12
  26. package/scripts/test.sh +73 -18
  27. package/src/__tests__/agent-image-optimize.test.ts +28 -0
  28. package/src/__tests__/agent-loop-callsite-precedence.test.ts +318 -0
  29. package/src/__tests__/agent-loop-sentry-hygiene.test.ts +137 -0
  30. package/src/__tests__/agent-loop.test.ts +235 -1
  31. package/src/__tests__/anthropic-error-formatting.test.ts +98 -0
  32. package/src/__tests__/anthropic-provider.test.ts +434 -12
  33. package/src/__tests__/approval-cascade.test.ts +31 -10
  34. package/src/__tests__/approval-routes-http.test.ts +134 -10
  35. package/src/__tests__/assistant-attachments.test.ts +44 -0
  36. package/src/__tests__/assistant-feature-flags-integration.test.ts +29 -0
  37. package/src/__tests__/auto-analysis-end-to-end.test.ts +550 -0
  38. package/src/__tests__/auto-analysis-prompt.test.ts +50 -0
  39. package/src/__tests__/browser-fill-credential.test.ts +12 -1
  40. package/src/__tests__/browser-identifier-parity-guard.test.ts +53 -0
  41. package/src/__tests__/browser-skill-baseline-tool-payload.test.ts +23 -33
  42. package/src/__tests__/browser-skill-endstate.test.ts +52 -159
  43. package/src/__tests__/btw-routes.test.ts +54 -1
  44. package/src/__tests__/call-controller.test.ts +582 -22
  45. package/src/__tests__/call-site-routing-provider.test.ts +214 -0
  46. package/src/__tests__/catalog-cache.test.ts +27 -4
  47. package/src/__tests__/catalog-files.test.ts +138 -0
  48. package/src/__tests__/channel-approval-routes.test.ts +4 -4
  49. package/src/__tests__/channel-invite-transport.test.ts +2 -2
  50. package/src/__tests__/channel-readiness-routes.test.ts +16 -20
  51. package/src/__tests__/channel-readiness-service.test.ts +12 -7
  52. package/src/__tests__/channel-reply-delivery.test.ts +300 -2
  53. package/src/__tests__/checker.test.ts +576 -502
  54. package/src/__tests__/clawhub-files.test.ts +347 -0
  55. package/src/__tests__/cli-command-risk-guard.test.ts +30 -33
  56. package/src/__tests__/commit-message-enrichment-service.test.ts +36 -19
  57. package/src/__tests__/compaction-circuit-breaker.test.ts +336 -0
  58. package/src/__tests__/compaction.benchmark.test.ts +1 -1
  59. package/src/__tests__/config-analysis.test.ts +83 -0
  60. package/src/__tests__/config-loader-backfill.test.ts +174 -0
  61. package/src/__tests__/config-loader-corrupt.test.ts +183 -0
  62. package/src/__tests__/config-loader-quarantine-bulletin.test.ts +202 -0
  63. package/src/__tests__/config-schema-cmd.test.ts +11 -5
  64. package/src/__tests__/config-schema.test.ts +1458 -198
  65. package/src/__tests__/config-watcher-cleanup-throttle.test.ts +339 -0
  66. package/src/__tests__/config-watcher.test.ts +45 -10
  67. package/src/__tests__/contact-store-user-file.test.ts +511 -0
  68. package/src/__tests__/contacts-write.test.ts +197 -0
  69. package/src/__tests__/context-token-estimator.test.ts +191 -1
  70. package/src/__tests__/context-window-manager.test.ts +618 -2
  71. package/src/__tests__/conversation-abort-tool-results.test.ts +32 -16
  72. package/src/__tests__/conversation-agent-loop-overflow.test.ts +62 -17
  73. package/src/__tests__/conversation-agent-loop.test.ts +510 -84
  74. package/src/__tests__/conversation-attachments.test.ts +1 -1
  75. package/src/__tests__/conversation-confirmation-signals.test.ts +165 -9
  76. package/src/__tests__/conversation-error.test.ts +102 -1
  77. package/src/__tests__/conversation-history-web-search.test.ts +17 -4
  78. package/src/__tests__/conversation-init.benchmark.test.ts +42 -1
  79. package/src/__tests__/conversation-launcher-skill-regression.test.ts +51 -0
  80. package/src/__tests__/conversation-lifecycle.test.ts +336 -0
  81. package/src/__tests__/conversation-list-source.test.ts +145 -0
  82. package/src/__tests__/conversation-load-history-repair.test.ts +27 -10
  83. package/src/__tests__/conversation-pre-run-repair.test.ts +32 -16
  84. package/src/__tests__/conversation-process-callsite.test.ts +306 -0
  85. package/src/__tests__/conversation-provider-retry-repair.test.ts +32 -16
  86. package/src/__tests__/conversation-queue.test.ts +932 -76
  87. package/src/__tests__/conversation-routes-disk-view.test.ts +299 -1
  88. package/src/__tests__/conversation-routes-slash-commands.test.ts +31 -3
  89. package/src/__tests__/conversation-runtime-assembly.test.ts +2790 -55
  90. package/src/__tests__/conversation-runtime-workspace.test.ts +12 -12
  91. package/src/__tests__/conversation-skill-tools.test.ts +12 -143
  92. package/src/__tests__/conversation-slash-commands.test.ts +33 -0
  93. package/src/__tests__/conversation-slash-queue.test.ts +120 -34
  94. package/src/__tests__/conversation-slash-unknown.test.ts +32 -16
  95. package/src/__tests__/conversation-speed-override.test.ts +30 -11
  96. package/src/__tests__/conversation-surfaces-standalone-payloads.test.ts +1035 -0
  97. package/src/__tests__/conversation-surfaces-standalone.test.ts +630 -0
  98. package/src/__tests__/conversation-title-service.test.ts +2 -2
  99. package/src/__tests__/conversation-tool-setup-batch-authorized.test.ts +226 -0
  100. package/src/__tests__/conversation-unread-route.test.ts +2 -2
  101. package/src/__tests__/conversation-usage.test.ts +3 -1
  102. package/src/__tests__/conversation-workspace-cache-state.test.ts +31 -10
  103. package/src/__tests__/conversation-workspace-injection.test.ts +45 -15
  104. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +46 -16
  105. package/src/__tests__/credential-broker-browser-fill.test.ts +110 -0
  106. package/src/__tests__/credential-health-service.test.ts +352 -0
  107. package/src/__tests__/credential-security-invariants.test.ts +8 -3
  108. package/src/__tests__/credential-storage-oauth-compat.test.ts +18 -0
  109. package/src/__tests__/credential-storage-static-compat.test.ts +28 -0
  110. package/src/__tests__/credential-vault-unit.test.ts +495 -3
  111. package/src/__tests__/credentials-cli.test.ts +32 -16
  112. package/src/__tests__/cross-provider-web-search.test.ts +230 -35
  113. package/src/__tests__/daemon-server-persist-and-process-callsite.test.ts +92 -0
  114. package/src/__tests__/delete-propagation.test.ts +437 -0
  115. package/src/__tests__/deterministic-verification-control-plane.test.ts +10 -1
  116. package/src/__tests__/device-id.test.ts +112 -0
  117. package/src/__tests__/dm-backfill.test.ts +417 -0
  118. package/src/__tests__/dm-persistence.test.ts +227 -0
  119. package/src/__tests__/docker-signing-key-bootstrap.test.ts +167 -4
  120. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +1 -3
  121. package/src/__tests__/edit-propagation.test.ts +280 -0
  122. package/src/__tests__/email-html-renderer.test.ts +71 -0
  123. package/src/__tests__/email-invite-adapter.test.ts +36 -32
  124. package/src/__tests__/emit-event-signal.test.ts +71 -0
  125. package/src/__tests__/ephemeral-permissions.test.ts +93 -3
  126. package/src/__tests__/estimator-calibration-integration.test.ts +208 -0
  127. package/src/__tests__/estimator-calibration.test.ts +213 -0
  128. package/src/__tests__/extension-id-sync-guard.test.ts +101 -15
  129. package/src/__tests__/file-write-tool.test.ts +151 -1
  130. package/src/__tests__/filing-service.test.ts +255 -0
  131. package/src/__tests__/fixtures/mock-chrome-extension.ts +11 -0
  132. package/src/__tests__/gateway-only-enforcement.test.ts +206 -1
  133. package/src/__tests__/gateway-only-guard.test.ts +0 -1
  134. package/src/__tests__/gemini-provider.test.ts +64 -3
  135. package/src/__tests__/get-skill-detail-audit.test.ts +325 -0
  136. package/src/__tests__/guardian-grant-minting.test.ts +8 -0
  137. package/src/__tests__/headless-browser-interactions.test.ts +44 -1
  138. package/src/__tests__/headless-browser-mode.test.ts +614 -0
  139. package/src/__tests__/headless-browser-navigate.test.ts +142 -5
  140. package/src/__tests__/headless-browser-read-tools.test.ts +11 -0
  141. package/src/__tests__/headless-browser-snapshot.test.ts +10 -0
  142. package/src/__tests__/heartbeat-service.test.ts +166 -32
  143. package/src/__tests__/home-state-routes.test.ts +162 -0
  144. package/src/__tests__/host-bash-proxy.test.ts +0 -5
  145. package/src/__tests__/host-browser-e2e-cloud.test.ts +138 -4
  146. package/src/__tests__/host-browser-e2e-self-hosted.test.ts +4 -4
  147. package/src/__tests__/host-browser-ws-events-e2e.test.ts +103 -0
  148. package/src/__tests__/host-cu-proxy.test.ts +0 -5
  149. package/src/__tests__/host-shell-tool.test.ts +124 -18
  150. package/src/__tests__/http-user-message-parity.test.ts +29 -1
  151. package/src/__tests__/identity-intro-cache.test.ts +40 -10
  152. package/src/__tests__/inbound-slack-persistence.test.ts +340 -0
  153. package/src/__tests__/init-feature-flag-overrides.test.ts +38 -112
  154. package/src/__tests__/intent-routing.test.ts +1 -40
  155. package/src/__tests__/jobs-store-upsert-debounced.test.ts +141 -0
  156. package/src/__tests__/llm-catalog-parity.test.ts +174 -0
  157. package/src/__tests__/llm-context-normalization.test.ts +609 -0
  158. package/src/__tests__/llm-context-route-provider.test.ts +86 -5
  159. package/src/__tests__/llm-resolver.test.ts +214 -0
  160. package/src/__tests__/llm-schema.test.ts +223 -0
  161. package/src/__tests__/llm-usage-store.test.ts +363 -0
  162. package/src/__tests__/managed-proxy-context.test.ts +6 -2
  163. package/src/__tests__/media-stream-output.test.ts +555 -0
  164. package/src/__tests__/media-stream-parser.test.ts +374 -0
  165. package/src/__tests__/media-stream-server-integration.test.ts +1234 -0
  166. package/src/__tests__/media-stream-stt-session.test.ts +588 -0
  167. package/src/__tests__/media-turn-detector.test.ts +440 -0
  168. package/src/__tests__/message-queue.test.ts +125 -0
  169. package/src/__tests__/messaging-skill-split.test.ts +3 -34
  170. package/src/__tests__/migration-export-http.test.ts +6 -6
  171. package/src/__tests__/migration-import-commit-http.test.ts +8 -6
  172. package/src/__tests__/migration-import-from-url.test.ts +684 -0
  173. package/src/__tests__/migration-import-preflight-http.test.ts +6 -5
  174. package/src/__tests__/migration-validate-http.test.ts +3 -3
  175. package/src/__tests__/mock-gateway-ipc.ts +151 -0
  176. package/src/__tests__/model-intents.test.ts +10 -84
  177. package/src/__tests__/notification-decision-fallback.test.ts +0 -10
  178. package/src/__tests__/notification-decision-identity.test.ts +0 -9
  179. package/src/__tests__/notification-decision-recipient-context.test.ts +0 -9
  180. package/src/__tests__/oauth-apps-routes.test.ts +1 -0
  181. package/src/__tests__/oauth-cli.test.ts +2 -0
  182. package/src/__tests__/oauth-connect-orchestrator.test.ts +2 -0
  183. package/src/__tests__/oauth-provider-serializer.test.ts +1 -0
  184. package/src/__tests__/oauth-providers-routes.test.ts +2 -0
  185. package/src/__tests__/oauth-store.test.ts +95 -7
  186. package/src/__tests__/oauth2-gateway-transport.test.ts +257 -9
  187. package/src/__tests__/oauth2-refresh-retry.test.ts +279 -0
  188. package/src/__tests__/onboarding-template-contract.test.ts +6 -13
  189. package/src/__tests__/openai-provider.test.ts +183 -0
  190. package/src/__tests__/openai-responses-cutover-guard.test.ts +184 -0
  191. package/src/__tests__/openai-responses-provider.test.ts +1501 -0
  192. package/src/__tests__/openrouter-provider-only.test.ts +135 -0
  193. package/src/__tests__/openrouter-token-estimation.test.ts +100 -0
  194. package/src/__tests__/outbound-slack-persistence.test.ts +293 -0
  195. package/src/__tests__/permission-checker-host-gate.test.ts +1 -1
  196. package/src/__tests__/permission-mode.test.ts +16 -0
  197. package/src/__tests__/permission-types.test.ts +0 -1
  198. package/src/__tests__/persona-resolver.test.ts +251 -0
  199. package/src/__tests__/pkb-autoinject.test.ts +37 -1
  200. package/src/__tests__/platform-bash-auto-approve.test.ts +5 -1
  201. package/src/__tests__/platform.test.ts +92 -1
  202. package/src/__tests__/post-turn-tool-result-truncation.test.ts +47 -0
  203. package/src/__tests__/prechat-onboarding-contract.test.ts +267 -0
  204. package/src/__tests__/pricing.test.ts +224 -3
  205. package/src/__tests__/profiler-routes.test.ts +1 -1
  206. package/src/__tests__/provider-commit-message-generator.test.ts +14 -84
  207. package/src/__tests__/provider-env-vars-scope.test.ts +52 -0
  208. package/src/__tests__/provider-error-scenarios.test.ts +135 -6
  209. package/src/__tests__/provider-managed-proxy-integration.test.ts +42 -11
  210. package/src/__tests__/provider-registry-ollama.test.ts +1 -2
  211. package/src/__tests__/proxy-approval-callback.test.ts +0 -1
  212. package/src/__tests__/qdrant-manager.test.ts +29 -8
  213. package/src/__tests__/reaction-persistence.test.ts +560 -0
  214. package/src/__tests__/regenerate-fire-and-forget-trace.test.ts +194 -0
  215. package/src/__tests__/relationship-state-contract.test.ts +175 -0
  216. package/src/__tests__/relay-server.test.ts +424 -6
  217. package/src/__tests__/require-fresh-approval.test.ts +1 -1
  218. package/src/__tests__/retry-openrouter-only-normalization.test.ts +136 -0
  219. package/src/__tests__/retry-thinking-tool-choice.test.ts +226 -0
  220. package/src/__tests__/risk-classifier-parity.test.ts +230 -0
  221. package/src/__tests__/sanitize-config-for-transfer.test.ts +78 -1
  222. package/src/__tests__/search-skills-unified.test.ts +118 -0
  223. package/src/__tests__/secret-ingress-http.test.ts +28 -0
  224. package/src/__tests__/secret-prompter-channel-fallback.test.ts +125 -0
  225. package/src/__tests__/secret-routes-managed-proxy.test.ts +2 -3
  226. package/src/__tests__/secret-scanner-executor.test.ts +5 -1
  227. package/src/__tests__/secure-keys.test.ts +107 -0
  228. package/src/__tests__/send-endpoint-busy.test.ts +34 -2
  229. package/src/__tests__/sequence-store.test.ts +1 -1
  230. package/src/__tests__/server-history-render.test.ts +80 -0
  231. package/src/__tests__/settings-routes.test.ts +201 -0
  232. package/src/__tests__/shell-parser-property.test.ts +13 -13
  233. package/src/__tests__/skill-cache-store.test.ts +182 -0
  234. package/src/__tests__/skill-load-feature-flag.test.ts +1 -0
  235. package/src/__tests__/skills-file-content-endpoint.test.ts +276 -145
  236. package/src/__tests__/skills-files-catalog-fallback.test.ts +381 -93
  237. package/src/__tests__/skills.test.ts +19 -30
  238. package/src/__tests__/skillssh-files.test.ts +446 -0
  239. package/src/__tests__/slack-app-setup-skill-regression.test.ts +3 -1
  240. package/src/__tests__/slack-block-formatting.test.ts +110 -0
  241. package/src/__tests__/slack-channel-config.test.ts +564 -1
  242. package/src/__tests__/slack-skill.test.ts +3 -8
  243. package/src/__tests__/starter-bundle.test.ts +35 -0
  244. package/src/__tests__/stt-catalog-parity.test.ts +282 -0
  245. package/src/__tests__/stt-stream-session.test.ts +535 -0
  246. package/src/__tests__/subagent-call-site-routing.test.ts +280 -0
  247. package/src/__tests__/suggestion-routes.test.ts +160 -3
  248. package/src/__tests__/system-prompt.test.ts +126 -53
  249. package/src/__tests__/task-runner.test.ts +3 -1
  250. package/src/__tests__/tcc-sandbox-deny.test.ts +198 -0
  251. package/src/__tests__/telephony-stt-routing.test.ts +329 -0
  252. package/src/__tests__/terminal-tools.test.ts +26 -7
  253. package/src/__tests__/test-preload.ts +18 -0
  254. package/src/__tests__/test-support/browser-skill-harness.ts +2 -49
  255. package/src/__tests__/thread-backfill.test.ts +941 -0
  256. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +2 -2
  257. package/src/__tests__/tool-executor-lifecycle-events.test.ts +10 -6
  258. package/src/__tests__/tool-executor-shell-integration.test.ts +4 -0
  259. package/src/__tests__/tool-executor.test.ts +88 -113
  260. package/src/__tests__/tool-result-truncation.test.ts +36 -0
  261. package/src/__tests__/trust-store.test.ts +442 -103
  262. package/src/__tests__/trusted-contact-approval-notifier.test.ts +1 -1
  263. package/src/__tests__/tts-catalog-parity.test.ts +345 -0
  264. package/src/__tests__/twilio-routes-twiml.test.ts +512 -114
  265. package/src/__tests__/twilio-routes.test.ts +376 -0
  266. package/src/__tests__/unicode.test.ts +293 -0
  267. package/src/__tests__/update-bulletin-job.test.ts +389 -0
  268. package/src/__tests__/usage-cache-backfill-migration.test.ts +3 -1
  269. package/src/__tests__/usage-routes.test.ts +25 -4
  270. package/src/__tests__/user-reference.test.ts +46 -61
  271. package/src/__tests__/verification-control-plane-policy.test.ts +5 -22
  272. package/src/__tests__/voice-config-update.test.ts +403 -0
  273. package/src/__tests__/voice-quality.test.ts +434 -19
  274. package/src/__tests__/voice-session-bridge.test.ts +39 -0
  275. package/src/__tests__/volume-security-guard.test.ts +3 -2
  276. package/src/__tests__/web-search-history.test.ts +337 -0
  277. package/src/__tests__/workspace-heartbeat-service.test.ts +7 -0
  278. package/src/__tests__/workspace-migration-033-stt-service-explicit-config.test.ts +547 -0
  279. package/src/__tests__/workspace-migration-034-remove-calls-voice-transcription-provider.test.ts +596 -0
  280. package/src/__tests__/workspace-migration-039-drop-legacy-llm-keys.test.ts +343 -0
  281. package/src/__tests__/workspace-migration-043-release-notes-latex-rendering.test.ts +202 -0
  282. package/src/__tests__/workspace-migration-045-release-notes-meet-avatar.test.ts +210 -0
  283. package/src/__tests__/workspace-migration-drop-user-md.test.ts +368 -0
  284. package/src/__tests__/workspace-migration-meets.test.ts +244 -0
  285. package/src/__tests__/workspace-migration-seed-device-id.test.ts +14 -20
  286. package/src/__tests__/workspace-migration-unify-llm-callsite-configs.test.ts +841 -0
  287. package/src/__tests__/workspace-policy.test.ts +1 -11
  288. package/src/acp/client-handler.ts +1 -2
  289. package/src/agent/image-optimize.ts +24 -12
  290. package/src/agent/loop.ts +251 -19
  291. package/src/avatar/resvg-lazy.test.ts +136 -0
  292. package/src/avatar/resvg-lazy.ts +82 -9
  293. package/src/avatar/traits-png-sync.ts +21 -1
  294. package/src/backup/__tests__/backup-key.test.ts +152 -0
  295. package/src/backup/__tests__/backup-worker.test.ts +767 -0
  296. package/src/backup/__tests__/list-snapshots.test.ts +87 -0
  297. package/src/backup/__tests__/local-writer.test.ts +218 -0
  298. package/src/backup/__tests__/offsite-writer.test.ts +641 -0
  299. package/src/backup/__tests__/paths.test.ts +300 -0
  300. package/src/backup/__tests__/restore.test.ts +498 -0
  301. package/src/backup/__tests__/snapshot-lock.test.ts +352 -0
  302. package/src/backup/__tests__/stream-crypt.test.ts +228 -0
  303. package/src/backup/backup-key.ts +137 -0
  304. package/src/backup/backup-worker.ts +459 -0
  305. package/src/backup/list-snapshots.ts +147 -0
  306. package/src/backup/local-writer.ts +133 -0
  307. package/src/backup/offsite-writer.ts +222 -0
  308. package/src/backup/paths.ts +226 -0
  309. package/src/backup/restore.ts +322 -0
  310. package/src/backup/snapshot-lock.ts +431 -0
  311. package/src/backup/stream-crypt.ts +263 -0
  312. package/src/browser/__tests__/operations.test.ts +163 -0
  313. package/src/browser/identifiers.ts +51 -0
  314. package/src/browser/operations.ts +660 -0
  315. package/src/browser/types.ts +81 -0
  316. package/src/bundler/package-resolver.ts +4 -0
  317. package/src/calls/audio-store.ts +11 -5
  318. package/src/calls/call-controller.ts +226 -71
  319. package/src/calls/call-domain.ts +9 -0
  320. package/src/calls/call-speech-output.ts +190 -0
  321. package/src/calls/call-transport.ts +77 -0
  322. package/src/calls/guardian-question-copy.ts +2 -2
  323. package/src/calls/media-stream-audio-transcode.ts +173 -0
  324. package/src/calls/media-stream-output.ts +660 -0
  325. package/src/calls/media-stream-parser.ts +300 -0
  326. package/src/calls/media-stream-protocol.ts +166 -0
  327. package/src/calls/media-stream-server.ts +592 -0
  328. package/src/calls/media-stream-stt-session.ts +460 -0
  329. package/src/calls/media-turn-detector.ts +230 -0
  330. package/src/calls/relay-server.ts +90 -75
  331. package/src/calls/resolve-call-tts-provider.ts +136 -0
  332. package/src/calls/telephony-stt-routing.ts +145 -0
  333. package/src/calls/tts-call-strategy.ts +161 -0
  334. package/src/calls/tts-text-sanitizer.ts +32 -16
  335. package/src/calls/twilio-routes.ts +281 -17
  336. package/src/calls/voice-quality.ts +78 -35
  337. package/src/calls/voice-session-bridge.ts +9 -1
  338. package/src/channels/types.ts +16 -0
  339. package/src/cli/AGENTS.md +1 -1
  340. package/src/cli/__tests__/run-assistant-command.ts +11 -1
  341. package/src/cli/commands/__tests__/attachment.test.ts +438 -0
  342. package/src/cli/commands/__tests__/backup.test.ts +1165 -0
  343. package/src/cli/commands/__tests__/browser.test.ts +554 -0
  344. package/src/cli/commands/__tests__/cache.test.ts +623 -0
  345. package/src/cli/commands/__tests__/domain-register.test.ts +234 -0
  346. package/src/cli/commands/__tests__/domain-status.test.ts +132 -0
  347. package/src/cli/commands/__tests__/email-attachment.test.ts +422 -0
  348. package/src/cli/commands/__tests__/email-download.test.ts +16 -1
  349. package/src/cli/commands/__tests__/email-list.test.ts +28 -4
  350. package/src/cli/commands/__tests__/email-register.test.ts +4 -4
  351. package/src/cli/commands/__tests__/email-send.test.ts +130 -5
  352. package/src/cli/commands/__tests__/email-status.test.ts +5 -1
  353. package/src/cli/commands/__tests__/email-unregister.test.ts +34 -5
  354. package/src/cli/commands/__tests__/image-generation.test.ts +666 -0
  355. package/src/cli/commands/__tests__/inference-send.test.ts +451 -0
  356. package/src/cli/commands/__tests__/stt-transcribe.test.ts +454 -0
  357. package/src/cli/commands/__tests__/task.test.ts +913 -0
  358. package/src/cli/commands/__tests__/tts-synthesize.test.ts +594 -0
  359. package/src/cli/commands/__tests__/ui-confirm.test.ts +650 -0
  360. package/src/cli/commands/__tests__/ui.test.ts +1215 -0
  361. package/src/cli/commands/__tests__/watchers.test.ts +716 -0
  362. package/src/cli/commands/attachment.ts +182 -0
  363. package/src/cli/commands/backup.ts +993 -0
  364. package/src/cli/commands/browser.ts +350 -0
  365. package/src/cli/commands/cache.ts +341 -0
  366. package/src/cli/commands/completions.ts +0 -3
  367. package/src/cli/commands/config.ts +6 -6
  368. package/src/cli/commands/conversations-import.ts +347 -0
  369. package/src/cli/commands/conversations.ts +90 -0
  370. package/src/cli/commands/credentials.ts +0 -1
  371. package/src/cli/commands/domain.ts +210 -0
  372. package/src/cli/commands/email.ts +308 -16
  373. package/src/cli/commands/image-generation.ts +300 -0
  374. package/src/cli/commands/inference.ts +200 -0
  375. package/src/cli/commands/memory.ts +127 -17
  376. package/src/cli/commands/oauth/__tests__/connect.test.ts +12 -0
  377. package/src/cli/commands/oauth/__tests__/providers-delete.test.ts +1 -0
  378. package/src/cli/commands/oauth/__tests__/providers-register.test.ts +1 -0
  379. package/src/cli/commands/oauth/__tests__/providers-update.test.ts +1 -0
  380. package/src/cli/commands/oauth/mode.ts +12 -3
  381. package/src/cli/commands/oauth/providers.ts +15 -0
  382. package/src/cli/commands/oauth/shared.ts +2 -1
  383. package/src/cli/commands/platform/__tests__/callback-routes-list.test.ts +4 -10
  384. package/src/cli/commands/platform/__tests__/connect.test.ts +6 -1
  385. package/src/cli/commands/platform/__tests__/disconnect.test.ts +7 -2
  386. package/src/cli/commands/platform/__tests__/status.test.ts +6 -1
  387. package/src/cli/commands/stt.ts +339 -0
  388. package/src/cli/commands/task.ts +795 -0
  389. package/src/cli/commands/trust.ts +50 -19
  390. package/src/cli/commands/tts.ts +273 -0
  391. package/src/cli/commands/ui.ts +670 -0
  392. package/src/cli/commands/watchers.ts +509 -0
  393. package/src/cli/lib/daemon-credential-client.ts +0 -19
  394. package/src/cli/program.ts +53 -8
  395. package/src/cli.ts +0 -37
  396. package/src/config/__tests__/backup-schema.test.ts +134 -0
  397. package/src/config/assistant-feature-flags.ts +61 -62
  398. package/src/config/bundled-skills/app-builder/references/CUSTOM_ROUTES.md +37 -1
  399. package/src/config/bundled-skills/contacts/SKILL.md +2 -2
  400. package/src/config/bundled-skills/conversations/tools/rename-conversation.ts +23 -1
  401. package/src/config/bundled-skills/media-processing/SKILL.md +3 -9
  402. package/src/config/bundled-skills/media-processing/TOOLS.json +1 -6
  403. package/src/config/bundled-skills/media-processing/__tests__/audio-transcribe.test.ts +125 -0
  404. package/src/config/bundled-skills/media-processing/__tests__/extract-keyframes.test.ts +181 -0
  405. package/src/config/bundled-skills/media-processing/__tests__/preprocess-audio.test.ts +141 -0
  406. package/src/config/bundled-skills/media-processing/services/audio-transcribe.ts +32 -87
  407. package/src/config/bundled-skills/media-processing/services/preprocess.ts +8 -4
  408. package/src/config/bundled-skills/media-processing/services/reduce.ts +1 -1
  409. package/src/config/bundled-skills/media-processing/tools/extract-keyframes.ts +0 -10
  410. package/src/config/bundled-skills/messaging/SKILL.md +5 -5
  411. package/src/config/bundled-skills/messaging/TOOLS.json +4 -0
  412. package/src/config/bundled-skills/messaging/tools/messaging-archive-by-sender.ts +9 -2
  413. package/src/config/bundled-skills/messaging/tools/messaging-read.ts +15 -1
  414. package/src/config/bundled-skills/messaging/tools/messaging-search.ts +21 -1
  415. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +11 -12
  416. package/src/config/bundled-skills/phone-calls/SKILL.md +2 -2
  417. package/src/config/bundled-skills/phone-calls/references/CONFIG.md +28 -18
  418. package/src/config/bundled-skills/phone-calls/references/TROUBLESHOOTING.md +3 -3
  419. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  420. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +26 -22
  421. package/src/config/bundled-skills/transcribe/SKILL.md +9 -14
  422. package/src/config/bundled-skills/transcribe/TOOLS.json +2 -7
  423. package/src/config/bundled-skills/transcribe/tools/transcribe-media.test.ts +256 -0
  424. package/src/config/bundled-skills/transcribe/tools/transcribe-media.ts +38 -188
  425. package/src/config/bundled-tool-registry.ts +0 -167
  426. package/src/config/env-registry.ts +24 -0
  427. package/src/config/env.ts +39 -10
  428. package/src/config/feature-flag-registry.json +63 -15
  429. package/src/config/llm-resolver.ts +128 -0
  430. package/src/config/loader.ts +220 -22
  431. package/src/config/raw-config-utils.ts +30 -2
  432. package/src/config/sanitize-for-transfer.ts +35 -0
  433. package/src/config/schema.ts +65 -51
  434. package/src/config/schemas/__tests__/stt.test.ts +43 -0
  435. package/src/config/schemas/analysis.ts +32 -0
  436. package/src/config/schemas/backup.ts +72 -0
  437. package/src/config/schemas/calls.ts +1 -30
  438. package/src/config/schemas/elevenlabs.ts +0 -59
  439. package/src/config/schemas/filing.ts +49 -14
  440. package/src/config/schemas/heartbeat.ts +27 -10
  441. package/src/config/schemas/host-browser.ts +47 -1
  442. package/src/config/schemas/inference.ts +3 -23
  443. package/src/config/schemas/llm.ts +318 -0
  444. package/src/config/schemas/memory-lifecycle.ts +14 -2
  445. package/src/config/schemas/memory-processing.ts +1 -9
  446. package/src/config/schemas/notifications.ts +4 -11
  447. package/src/config/schemas/platform.ts +3 -9
  448. package/src/config/schemas/security.ts +33 -0
  449. package/src/config/schemas/services.ts +53 -4
  450. package/src/config/schemas/stt.ts +60 -0
  451. package/src/config/schemas/tts.ts +283 -0
  452. package/src/config/schemas/updates.ts +14 -0
  453. package/src/config/schemas/workspace-git.ts +3 -40
  454. package/src/config/skills.ts +6 -2
  455. package/src/config/types.ts +4 -0
  456. package/src/contacts/contact-store.ts +56 -11
  457. package/src/contacts/contacts-write.ts +38 -1
  458. package/src/context/__tests__/compact-prompt.test.ts +45 -0
  459. package/src/context/__tests__/microcompact.test.ts +805 -0
  460. package/src/context/estimator-calibration.ts +136 -0
  461. package/src/context/microcompact.ts +443 -0
  462. package/src/context/post-turn-tool-result-truncation.ts +3 -2
  463. package/src/context/prompts/compact.md +12 -0
  464. package/src/context/token-estimator.ts +61 -3
  465. package/src/context/tool-result-truncation.ts +2 -1
  466. package/src/context/window-manager.ts +272 -35
  467. package/src/credential-execution/approval-bridge.ts +0 -1
  468. package/src/credential-execution/executable-discovery.ts +23 -2
  469. package/src/credential-execution/process-manager.test.ts +109 -0
  470. package/src/credential-execution/process-manager.ts +96 -2
  471. package/src/credential-health/credential-health-service.ts +366 -0
  472. package/src/daemon/__tests__/conversation-lifecycle-auto-analyze.test.ts +324 -0
  473. package/src/daemon/__tests__/conversation-surfaces-launch.test.ts +497 -0
  474. package/src/daemon/__tests__/conversation-tool-setup.test.ts +17 -8
  475. package/src/daemon/__tests__/lifecycle-startup-ordering.test.ts +127 -0
  476. package/src/daemon/approval-generators.ts +29 -4
  477. package/src/daemon/assistant-attachments.ts +24 -13
  478. package/src/daemon/classifier.ts +2 -2
  479. package/src/daemon/config-watcher.ts +99 -6
  480. package/src/daemon/context-overflow-reducer.ts +4 -1
  481. package/src/daemon/conversation-agent-loop-handlers.ts +85 -12
  482. package/src/daemon/conversation-agent-loop.ts +563 -104
  483. package/src/daemon/conversation-attachments.ts +2 -6
  484. package/src/daemon/conversation-error.ts +46 -0
  485. package/src/daemon/conversation-history.ts +40 -6
  486. package/src/daemon/conversation-launch.ts +220 -0
  487. package/src/daemon/conversation-lifecycle.ts +85 -11
  488. package/src/daemon/conversation-messaging.ts +110 -7
  489. package/src/daemon/conversation-notifiers.ts +5 -0
  490. package/src/daemon/conversation-process.ts +591 -23
  491. package/src/daemon/conversation-queue-manager.ts +27 -0
  492. package/src/daemon/conversation-runtime-assembly.ts +769 -28
  493. package/src/daemon/conversation-slash.ts +38 -2
  494. package/src/daemon/conversation-surfaces.ts +483 -5
  495. package/src/daemon/conversation-tool-setup.ts +35 -5
  496. package/src/daemon/conversation-usage.ts +8 -5
  497. package/src/daemon/conversation.ts +193 -47
  498. package/src/daemon/external-skills-bootstrap.ts +41 -0
  499. package/src/daemon/guardian-action-generators.ts +34 -14
  500. package/src/daemon/handlers/config-model.test.ts +86 -0
  501. package/src/daemon/handlers/config-model.ts +54 -12
  502. package/src/daemon/handlers/config-slack-channel.ts +269 -94
  503. package/src/daemon/handlers/conversations.ts +13 -3
  504. package/src/daemon/handlers/shared.ts +51 -1
  505. package/src/daemon/handlers/skills.ts +323 -79
  506. package/src/daemon/handlers/slack-channel-oauth-install.ts +197 -0
  507. package/src/daemon/host-browser-proxy.ts +2 -1
  508. package/src/daemon/lifecycle.ts +185 -26
  509. package/src/daemon/message-protocol.ts +6 -0
  510. package/src/daemon/message-types/conversations.ts +48 -1
  511. package/src/daemon/message-types/home.ts +40 -0
  512. package/src/daemon/message-types/meet.ts +143 -0
  513. package/src/daemon/message-types/messages.ts +23 -1
  514. package/src/daemon/message-types/schedules.ts +34 -2
  515. package/src/daemon/message-types/skills.ts +16 -0
  516. package/src/daemon/message-types/surfaces.ts +2 -0
  517. package/src/daemon/message-types/trust.ts +0 -2
  518. package/src/daemon/parse-actual-tokens-from-error.test.ts +57 -1
  519. package/src/daemon/parse-actual-tokens-from-error.ts +66 -0
  520. package/src/daemon/pkb-context-tracker.test.ts +169 -0
  521. package/src/daemon/pkb-context-tracker.ts +125 -0
  522. package/src/daemon/pkb-reminder-builder.test.ts +70 -0
  523. package/src/daemon/pkb-reminder-builder.ts +31 -0
  524. package/src/daemon/providers-setup.ts +6 -0
  525. package/src/daemon/server.ts +463 -10
  526. package/src/daemon/shutdown-handlers.ts +32 -4
  527. package/src/daemon/shutdown-registry.ts +40 -0
  528. package/src/daemon/tool-side-effects.ts +9 -9
  529. package/src/daemon/watch-handler.ts +4 -4
  530. package/src/daemon/web-search-history.ts +126 -0
  531. package/src/email/html-renderer.ts +76 -0
  532. package/src/events/domain-events.ts +0 -1
  533. package/src/filing/filing-service.ts +9 -10
  534. package/src/heartbeat/heartbeat-service.ts +156 -22
  535. package/src/home/__tests__/assistant-feed-authoring.test.ts +156 -0
  536. package/src/home/__tests__/emit-feed-event.test.ts +169 -0
  537. package/src/home/__tests__/feed-scheduler.test.ts +222 -0
  538. package/src/home/__tests__/feed-types.test.ts +275 -0
  539. package/src/home/__tests__/feed-writer.test.ts +688 -0
  540. package/src/home/__tests__/phase5-exit-criteria.test.ts +212 -0
  541. package/src/home/__tests__/platform-gmail-digest.test.ts +222 -0
  542. package/src/home/__tests__/progress-formula.test.ts +213 -0
  543. package/src/home/__tests__/relationship-state-writer.test.ts +740 -0
  544. package/src/home/__tests__/rollup-producer.test.ts +442 -0
  545. package/src/home/assistant-feed-authoring.ts +128 -0
  546. package/src/home/emit-feed-event.ts +162 -0
  547. package/src/home/feed-scheduler.ts +263 -0
  548. package/src/home/feed-types.ts +235 -0
  549. package/src/home/feed-writer.ts +469 -0
  550. package/src/home/platform-gmail-digest.ts +163 -0
  551. package/src/home/progress-formula.ts +86 -0
  552. package/src/home/relationship-state-writer.ts +824 -0
  553. package/src/home/relationship-state.ts +143 -0
  554. package/src/home/rollup-producer.ts +413 -0
  555. package/src/home/suggested-prompts.ts +101 -0
  556. package/src/hooks/runner.ts +7 -0
  557. package/src/inbound/platform-callback-registration.ts +12 -3
  558. package/src/inbound/public-ingress-urls.ts +12 -0
  559. package/src/instrument.ts +1 -1
  560. package/src/ipc/__tests__/attachment-ipc.test.ts +213 -0
  561. package/src/ipc/__tests__/browser-ipc.test.ts +339 -0
  562. package/src/ipc/__tests__/cache-ipc.test.ts +266 -0
  563. package/src/ipc/__tests__/cli-ipc.test.ts +200 -0
  564. package/src/ipc/__tests__/socket-path.test.ts +73 -0
  565. package/src/ipc/__tests__/task-ipc.test.ts +577 -0
  566. package/src/ipc/__tests__/ui-request-route.test.ts +495 -0
  567. package/src/ipc/__tests__/watcher-ipc.test.ts +295 -0
  568. package/src/ipc/cli-client.ts +152 -0
  569. package/src/ipc/cli-server.ts +252 -0
  570. package/src/ipc/gateway-client.ts +180 -0
  571. package/src/ipc/routes/attachment.ts +114 -0
  572. package/src/ipc/routes/browser-context.ts +61 -0
  573. package/src/ipc/routes/browser.ts +96 -0
  574. package/src/ipc/routes/cache.ts +96 -0
  575. package/src/ipc/routes/index.ts +21 -0
  576. package/src/ipc/routes/task-queue.ts +226 -0
  577. package/src/ipc/routes/task.ts +173 -0
  578. package/src/ipc/routes/ui-request.ts +50 -0
  579. package/src/ipc/routes/wake-conversation.ts +19 -0
  580. package/src/ipc/routes/watcher.ts +203 -0
  581. package/src/ipc/socket-path.ts +100 -0
  582. package/src/memory/__tests__/auto-analysis-enqueue.test.ts +356 -0
  583. package/src/memory/__tests__/auto-analysis-guard.test.ts +57 -0
  584. package/src/memory/__tests__/conversation-analyze-job.test.ts +233 -0
  585. package/src/memory/__tests__/conversation-group-migration.test.ts +99 -0
  586. package/src/memory/__tests__/find-analysis-conversation.test.ts +196 -0
  587. package/src/memory/admin.ts +18 -0
  588. package/src/memory/app-store.ts +1 -1
  589. package/src/memory/attachments-store.ts +70 -0
  590. package/src/memory/auto-analysis-enqueue.ts +127 -0
  591. package/src/memory/auto-analysis-guard.ts +27 -0
  592. package/src/memory/cleanup-schedule-state.ts +37 -0
  593. package/src/memory/conversation-analyze-job.ts +74 -0
  594. package/src/memory/conversation-attention-store.ts +13 -6
  595. package/src/memory/conversation-crud.ts +199 -0
  596. package/src/memory/conversation-disk-view.ts +7 -0
  597. package/src/memory/conversation-group-migration.ts +65 -1
  598. package/src/memory/conversation-queries.ts +6 -5
  599. package/src/memory/conversation-title-service.ts +7 -4
  600. package/src/memory/db-init.ts +8 -0
  601. package/src/memory/db-maintenance.ts +108 -0
  602. package/src/memory/db.ts +1 -0
  603. package/src/memory/embedding-backend.ts +1 -1
  604. package/src/memory/graph/compaction.ts +299 -0
  605. package/src/memory/graph/consolidation.ts +4 -4
  606. package/src/memory/graph/conversation-graph-memory.ts +104 -29
  607. package/src/memory/graph/extraction.test.ts +295 -2
  608. package/src/memory/graph/extraction.ts +181 -51
  609. package/src/memory/graph/graph-search.test.ts +92 -0
  610. package/src/memory/graph/graph-search.ts +4 -1
  611. package/src/memory/graph/narrative.ts +2 -2
  612. package/src/memory/graph/pattern-scan.ts +2 -2
  613. package/src/memory/graph/retriever.test.ts +459 -0
  614. package/src/memory/graph/retriever.ts +257 -66
  615. package/src/memory/graph/scoring.test.ts +186 -0
  616. package/src/memory/graph/scoring.ts +31 -1
  617. package/src/memory/graph/store.ts +41 -0
  618. package/src/memory/graph/tool-handlers.ts +27 -0
  619. package/src/memory/graph/tools.ts +6 -1
  620. package/src/memory/group-crud.ts +6 -1
  621. package/src/memory/indexer.ts +95 -16
  622. package/src/memory/job-handlers/cleanup.ts +11 -8
  623. package/src/memory/job-handlers/conversation-starters.ts +39 -30
  624. package/src/memory/job-handlers/summarization.ts +2 -2
  625. package/src/memory/job-utils.ts +7 -1
  626. package/src/memory/jobs/embed-pkb-file.test.ts +168 -0
  627. package/src/memory/jobs/embed-pkb-file.ts +54 -0
  628. package/src/memory/jobs-store.ts +106 -5
  629. package/src/memory/jobs-worker.ts +26 -9
  630. package/src/memory/llm-usage-store.ts +92 -56
  631. package/src/memory/migrations/140-backfill-usage-cache-accounting.ts +1 -1
  632. package/src/memory/migrations/219-oauth-providers-token-exchange-body-format.ts +15 -0
  633. package/src/memory/migrations/220-normalize-user-file-by-principal.ts +190 -0
  634. package/src/memory/migrations/221-conversations-archived-at.ts +16 -0
  635. package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +82 -0
  636. package/src/memory/migrations/index.ts +7 -0
  637. package/src/memory/migrations/registry.ts +8 -0
  638. package/src/memory/pkb/pkb-index.test.ts +368 -0
  639. package/src/memory/pkb/pkb-index.ts +255 -0
  640. package/src/memory/pkb/pkb-reconcile.test.ts +251 -0
  641. package/src/memory/pkb/pkb-reconcile.ts +148 -0
  642. package/src/memory/pkb/pkb-search.test.ts +438 -0
  643. package/src/memory/pkb/pkb-search.ts +137 -0
  644. package/src/memory/pkb/types.ts +53 -0
  645. package/src/memory/qdrant-client.ts +122 -1
  646. package/src/memory/qdrant-manager.ts +43 -16
  647. package/src/memory/schema/conversations.ts +2 -0
  648. package/src/memory/schema/oauth.ts +3 -0
  649. package/src/memory/slack-thread-store.ts +37 -0
  650. package/src/memory/usage-buckets.ts +396 -0
  651. package/src/messaging/providers/gmail/adapter.ts +6 -16
  652. package/src/messaging/providers/gmail/client.ts +79 -6
  653. package/src/messaging/providers/gmail/types.ts +7 -0
  654. package/src/messaging/providers/slack/__tests__/adapter-token-routing.test.ts +282 -0
  655. package/src/messaging/providers/slack/adapter.ts +155 -38
  656. package/src/messaging/providers/slack/backfill.test.ts +257 -0
  657. package/src/messaging/providers/slack/backfill.ts +101 -0
  658. package/src/messaging/providers/slack/client.ts +16 -0
  659. package/src/messaging/providers/slack/message-metadata.test.ts +316 -0
  660. package/src/messaging/providers/slack/message-metadata.ts +123 -0
  661. package/src/messaging/providers/slack/render-transcript.test.ts +1373 -0
  662. package/src/messaging/providers/slack/render-transcript.ts +443 -0
  663. package/src/messaging/providers/slack/types.ts +4 -0
  664. package/src/messaging/style-analyzer.ts +5 -2
  665. package/src/notifications/README.md +9 -5
  666. package/src/notifications/decision-engine.ts +6 -12
  667. package/src/notifications/preference-extractor.ts +2 -6
  668. package/src/notifications/signal.ts +5 -0
  669. package/src/oauth/__tests__/identity-verifier.test.ts +1 -0
  670. package/src/oauth/byo-connection.test.ts +18 -1
  671. package/src/oauth/byo-connection.ts +3 -1
  672. package/src/oauth/connect-orchestrator.ts +2 -0
  673. package/src/oauth/connection-resolver.ts +6 -2
  674. package/src/oauth/connection.ts +2 -0
  675. package/src/oauth/oauth-store.ts +10 -0
  676. package/src/oauth/platform-connection.test.ts +145 -0
  677. package/src/oauth/platform-connection.ts +62 -31
  678. package/src/oauth/seed-providers.ts +10 -1
  679. package/src/permissions/approval-policy.test.ts +948 -0
  680. package/src/permissions/approval-policy.ts +257 -0
  681. package/src/permissions/bash-risk-classifier.test.ts +1208 -0
  682. package/src/permissions/bash-risk-classifier.ts +707 -0
  683. package/src/permissions/checker.ts +218 -699
  684. package/src/permissions/command-registry.test.ts +535 -0
  685. package/src/permissions/command-registry.ts +825 -0
  686. package/src/permissions/defaults.ts +71 -75
  687. package/src/permissions/file-risk-classifier.test.ts +535 -0
  688. package/src/permissions/file-risk-classifier.ts +274 -0
  689. package/src/permissions/risk-types.ts +205 -0
  690. package/src/permissions/secret-prompter.ts +53 -2
  691. package/src/permissions/skill-risk-classifier.test.ts +311 -0
  692. package/src/permissions/skill-risk-classifier.ts +214 -0
  693. package/src/permissions/trust-client.ts +52 -25
  694. package/src/permissions/trust-store-interface.ts +1 -6
  695. package/src/permissions/trust-store.ts +164 -65
  696. package/src/permissions/types.ts +23 -14
  697. package/src/permissions/web-risk-classifier.test.ts +170 -0
  698. package/src/permissions/web-risk-classifier.ts +89 -0
  699. package/src/permissions/workspace-policy.ts +1 -13
  700. package/src/platform/client.test.ts +10 -0
  701. package/src/platform/client.ts +19 -1
  702. package/src/platform/sync-identity.ts +129 -0
  703. package/src/prompts/persona-resolver.ts +127 -3
  704. package/src/prompts/system-prompt.ts +78 -38
  705. package/src/prompts/templates/BOOTSTRAP.md +5 -5
  706. package/src/prompts/templates/SOUL.md +5 -3
  707. package/src/prompts/templates/channels/slack.md +20 -0
  708. package/src/prompts/update-bulletin-job.ts +190 -0
  709. package/src/prompts/user-reference.ts +20 -17
  710. package/src/providers/__tests__/context-overflow-error.test.ts +328 -0
  711. package/src/providers/__tests__/provider-env-vars.test.ts +102 -0
  712. package/src/providers/__tests__/provider-secret-catalog.test.ts +42 -0
  713. package/src/providers/__tests__/retry-callsite.test.ts +424 -0
  714. package/src/providers/anthropic/client.ts +335 -70
  715. package/src/providers/call-site-routing.ts +71 -0
  716. package/src/providers/fireworks/client.ts +2 -2
  717. package/src/providers/gemini/client.ts +74 -3
  718. package/src/providers/managed-proxy/constants.ts +2 -1
  719. package/src/providers/model-catalog.ts +502 -28
  720. package/src/providers/model-intents.ts +8 -8
  721. package/src/providers/ollama/client.ts +2 -2
  722. package/src/providers/openai/chat-completions-provider.ts +530 -0
  723. package/src/providers/openai/client.ts +25 -440
  724. package/src/providers/openai/responses-provider.ts +579 -0
  725. package/src/providers/openrouter/client.ts +168 -4
  726. package/src/providers/provider-env-vars.ts +56 -0
  727. package/src/providers/provider-secret-catalog.ts +139 -0
  728. package/src/providers/provider-send-message.ts +22 -5
  729. package/src/providers/ratelimit.ts +4 -0
  730. package/src/providers/registry.ts +21 -10
  731. package/src/providers/retry.ts +185 -39
  732. package/src/providers/speech-to-text/__tests__/provider-catalog.test.ts +251 -0
  733. package/src/providers/speech-to-text/__tests__/resolve.test.ts +883 -0
  734. package/src/providers/speech-to-text/deepgram-realtime.test.ts +980 -0
  735. package/src/providers/speech-to-text/deepgram-realtime.ts +767 -0
  736. package/src/providers/speech-to-text/deepgram.test.ts +332 -0
  737. package/src/providers/speech-to-text/deepgram.ts +115 -0
  738. package/src/providers/speech-to-text/google-gemini-live-stream.test.ts +743 -0
  739. package/src/providers/speech-to-text/google-gemini-live-stream.ts +625 -0
  740. package/src/providers/speech-to-text/google-gemini.test.ts +226 -0
  741. package/src/providers/speech-to-text/google-gemini.ts +101 -0
  742. package/src/providers/speech-to-text/openai-whisper-stream.test.ts +564 -0
  743. package/src/providers/speech-to-text/openai-whisper-stream.ts +381 -0
  744. package/src/providers/speech-to-text/openai-whisper.test.ts +1 -37
  745. package/src/providers/speech-to-text/openai-whisper.ts +63 -33
  746. package/src/providers/speech-to-text/provider-catalog.ts +323 -0
  747. package/src/providers/speech-to-text/resolve.ts +393 -6
  748. package/src/providers/speech-to-text/xai-realtime.test.ts +578 -0
  749. package/src/providers/speech-to-text/xai-realtime.ts +796 -0
  750. package/src/providers/speech-to-text/xai.test.ts +155 -0
  751. package/src/providers/speech-to-text/xai.ts +97 -0
  752. package/src/providers/types.ts +102 -3
  753. package/src/runtime/AGENTS.md +45 -3
  754. package/src/runtime/__tests__/agent-wake.test.ts +872 -0
  755. package/src/runtime/__tests__/interactive-ui.test.ts +673 -0
  756. package/src/runtime/__tests__/runtime-mode.test.ts +62 -0
  757. package/src/runtime/__tests__/slack-block-formatting.test.ts +481 -0
  758. package/src/runtime/agent-wake.ts +553 -0
  759. package/src/runtime/auth/__tests__/route-policy.test.ts +40 -0
  760. package/src/runtime/auth/route-policy.ts +34 -5
  761. package/src/runtime/auth/token-service.ts +56 -1
  762. package/src/runtime/btw-sidechain.ts +15 -3
  763. package/src/runtime/capability-tokens.ts +10 -10
  764. package/src/runtime/channel-invite-transport.ts +1 -1
  765. package/src/runtime/channel-invite-transports/email.ts +14 -6
  766. package/src/runtime/channel-readiness-service.ts +12 -22
  767. package/src/runtime/channel-reply-delivery.ts +106 -2
  768. package/src/runtime/chrome-extension-registry.ts +38 -2
  769. package/src/runtime/decision-token.ts +116 -0
  770. package/src/runtime/gateway-client.ts +2 -2
  771. package/src/runtime/http-router.ts +32 -0
  772. package/src/runtime/http-server.ts +447 -11
  773. package/src/runtime/http-types.ts +29 -3
  774. package/src/runtime/interactive-ui.ts +362 -0
  775. package/src/runtime/invite-instruction-generator.ts +2 -2
  776. package/src/runtime/migrations/__tests__/gcs-signed-url.test.ts +176 -0
  777. package/src/runtime/migrations/__tests__/vbundle-import-credentials.test.ts +36 -0
  778. package/src/runtime/migrations/__tests__/vbundle-legacy-user-md.test.ts +360 -0
  779. package/src/runtime/migrations/__tests__/vbundle-metadata-merge-integration.test.ts +390 -0
  780. package/src/runtime/migrations/__tests__/vbundle-metadata-merge.test.ts +221 -0
  781. package/src/runtime/migrations/__tests__/vbundle-streaming-importer.test.ts +1540 -0
  782. package/src/runtime/migrations/__tests__/vbundle-streaming-validator.test.ts +453 -0
  783. package/src/runtime/migrations/__tests__/vbundle-tar-stream.test.ts +222 -0
  784. package/src/runtime/migrations/gcs-signed-url.ts +162 -0
  785. package/src/runtime/migrations/migration-transport.ts +1 -0
  786. package/src/runtime/migrations/migration-wizard.ts +1 -0
  787. package/src/runtime/migrations/vbundle-import-analyzer.ts +77 -1
  788. package/src/runtime/migrations/vbundle-importer.ts +187 -8
  789. package/src/runtime/migrations/vbundle-metadata-merge.ts +124 -0
  790. package/src/runtime/migrations/vbundle-streaming-importer.ts +2522 -0
  791. package/src/runtime/migrations/vbundle-streaming-validator.ts +244 -0
  792. package/src/runtime/migrations/vbundle-tar-stream.ts +217 -0
  793. package/src/runtime/migrations/vbundle-validator.ts +15 -6
  794. package/src/runtime/pending-interactions.ts +0 -11
  795. package/src/runtime/routes/__tests__/backup-routes.test.ts +967 -0
  796. package/src/runtime/routes/__tests__/home-feed-routes.test.ts +618 -0
  797. package/src/runtime/routes/__tests__/migration-import-credential-filter.test.ts +247 -0
  798. package/src/runtime/routes/__tests__/migration-vellum-metadata-reconcile.test.ts +246 -0
  799. package/src/runtime/routes/__tests__/stt-routes.test.ts +406 -0
  800. package/src/runtime/routes/__tests__/tts-routes.test.ts +474 -0
  801. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +148 -17
  802. package/src/runtime/routes/app-management-routes.ts +12 -18
  803. package/src/runtime/routes/approval-prompt-ts-tracker.ts +58 -0
  804. package/src/runtime/routes/approval-routes.ts +12 -17
  805. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +9 -0
  806. package/src/runtime/routes/attachment-routes.test.ts +9 -3
  807. package/src/runtime/routes/attachment-routes.ts +216 -17
  808. package/src/runtime/routes/avatar-routes.ts +20 -4
  809. package/src/runtime/routes/backup-routes.ts +519 -0
  810. package/src/runtime/routes/browser-extension-pair-routes.ts +82 -23
  811. package/src/runtime/routes/btw-routes.ts +9 -10
  812. package/src/runtime/routes/contact-routes.test.ts +298 -0
  813. package/src/runtime/routes/contact-routes.ts +132 -5
  814. package/src/runtime/routes/conversation-analysis-routes.ts +22 -142
  815. package/src/runtime/routes/conversation-management-routes.ts +133 -0
  816. package/src/runtime/routes/conversation-routes.ts +487 -160
  817. package/src/runtime/routes/debug-routes.ts +1 -1
  818. package/src/runtime/routes/diagnostics-routes.ts +6 -4
  819. package/src/runtime/routes/events-routes.ts +16 -0
  820. package/src/runtime/routes/filing-routes.ts +93 -0
  821. package/src/runtime/routes/guardian-approval-interception.ts +33 -3
  822. package/src/runtime/routes/guardian-approval-prompt.ts +13 -3
  823. package/src/runtime/routes/home-feed-routes.ts +452 -0
  824. package/src/runtime/routes/home-state-routes.ts +138 -0
  825. package/src/runtime/routes/host-browser-routes.ts +3 -14
  826. package/src/runtime/routes/identity-intro-cache.ts +7 -3
  827. package/src/runtime/routes/identity-routes.ts +3 -17
  828. package/src/runtime/routes/inbound-message-handler.ts +912 -2
  829. package/src/runtime/routes/inbound-stages/background-dispatch.test.ts +113 -2
  830. package/src/runtime/routes/inbound-stages/background-dispatch.ts +61 -3
  831. package/src/runtime/routes/inbound-stages/edit-intercept.ts +129 -6
  832. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +46 -39
  833. package/src/runtime/routes/inbound-stages/transcribe-audio.ts +15 -15
  834. package/src/runtime/routes/integrations/slack/__tests__/channel.test.ts +137 -0
  835. package/src/runtime/routes/integrations/slack/__tests__/share.test.ts +179 -0
  836. package/src/runtime/routes/integrations/slack/channel.ts +36 -6
  837. package/src/runtime/routes/integrations/slack/share.ts +45 -7
  838. package/src/runtime/routes/llm-context-normalization.ts +325 -0
  839. package/src/runtime/routes/memory-item-routes.test.ts +3 -2
  840. package/src/runtime/routes/migration-routes.ts +722 -91
  841. package/src/runtime/routes/settings-routes.ts +26 -7
  842. package/src/runtime/routes/skills-routes.ts +76 -7
  843. package/src/runtime/routes/stt-routes.ts +233 -0
  844. package/src/runtime/routes/surface-action-routes.ts +41 -2
  845. package/src/runtime/routes/trust-rules-routes.ts +30 -14
  846. package/src/runtime/routes/tts-routes.ts +108 -24
  847. package/src/runtime/routes/usage-routes.ts +30 -2
  848. package/src/runtime/routes/user-route-dispatcher.ts +50 -5
  849. package/src/runtime/routes/user-routes.ts +13 -1
  850. package/src/runtime/routes/work-items-routes.test.ts +1 -1
  851. package/src/runtime/routes/work-items-routes.ts +11 -3
  852. package/src/runtime/runtime-mode.ts +33 -0
  853. package/src/runtime/services/__tests__/analyze-conversation.test.ts +426 -0
  854. package/src/runtime/services/__tests__/analyze-deps-singleton.test.ts +67 -0
  855. package/src/runtime/services/__tests__/auto-analysis-prompt.test.ts +53 -0
  856. package/src/runtime/services/__tests__/manual-analysis-prompt.test.ts +41 -0
  857. package/src/runtime/services/analyze-conversation.ts +340 -0
  858. package/src/runtime/services/analyze-deps-singleton.ts +32 -0
  859. package/src/runtime/services/auto-analysis-prompt.ts +55 -0
  860. package/src/runtime/skill-route-registry.ts +71 -0
  861. package/src/runtime/slack-block-formatting.ts +437 -10
  862. package/src/schedule/scheduler.ts +58 -0
  863. package/src/security/__tests__/provider-key-env-fallback.test.ts +119 -0
  864. package/src/security/__tests__/untrusted-content.test.ts +109 -0
  865. package/src/security/oauth2.ts +122 -37
  866. package/src/security/secure-keys.ts +32 -10
  867. package/src/security/token-manager.ts +35 -13
  868. package/src/security/untrusted-content.ts +102 -0
  869. package/src/sequence/engine.ts +23 -0
  870. package/src/sequence/types.ts +1 -1
  871. package/src/skills/catalog-cache.ts +26 -7
  872. package/src/skills/catalog-files.ts +64 -2
  873. package/src/skills/catalog-install.ts +31 -3
  874. package/src/skills/category-inference.ts +122 -0
  875. package/src/skills/clawhub-files.ts +213 -0
  876. package/src/skills/clawhub.ts +84 -23
  877. package/src/skills/skill-cache-store.ts +97 -0
  878. package/src/skills/skill-file-provider.ts +40 -0
  879. package/src/skills/skillssh-files.ts +395 -0
  880. package/src/skills/skillssh-registry.ts +4 -4
  881. package/src/stt/__tests__/daemon-batch-transcriber.test.ts +468 -0
  882. package/src/stt/__tests__/types.test.ts +89 -0
  883. package/src/stt/daemon-batch-transcriber.ts +228 -0
  884. package/src/stt/stt-stream-session.ts +506 -0
  885. package/src/stt/types.ts +334 -0
  886. package/src/stt/wav-encoder.test.ts +373 -0
  887. package/src/stt/wav-encoder.ts +175 -0
  888. package/src/subagent/manager.ts +79 -27
  889. package/src/tasks/ephemeral-permissions.ts +9 -4
  890. package/src/telemetry/usage-telemetry-reporter.ts +27 -5
  891. package/src/tools/browser/__tests__/browser-mode.test.ts +119 -0
  892. package/src/tools/browser/__tests__/browser-status.test.ts +166 -0
  893. package/src/tools/browser/browser-execution.ts +1208 -41
  894. package/src/tools/browser/browser-manager.ts +45 -0
  895. package/src/tools/browser/browser-mode-constants.ts +12 -0
  896. package/src/tools/browser/browser-mode.ts +92 -0
  897. package/src/tools/browser/browser-status-constants.ts +33 -0
  898. package/src/tools/browser/cdp-client/__tests__/cdp-inspect-client.test.ts +393 -0
  899. package/src/tools/browser/cdp-client/__tests__/extension-cdp-client.test.ts +29 -0
  900. package/src/tools/browser/cdp-client/__tests__/factory.test.ts +1648 -32
  901. package/src/tools/browser/cdp-client/cdp-inspect/__tests__/discovery.test.ts +264 -0
  902. package/src/tools/browser/cdp-client/cdp-inspect/discovery.ts +205 -17
  903. package/src/tools/browser/cdp-client/cdp-inspect-client.ts +254 -21
  904. package/src/tools/browser/cdp-client/errors.ts +15 -0
  905. package/src/tools/browser/cdp-client/extension-cdp-client.ts +39 -16
  906. package/src/tools/browser/cdp-client/factory.ts +797 -87
  907. package/src/tools/browser/cdp-client/index.ts +16 -2
  908. package/src/tools/browser/cdp-client/types.ts +68 -0
  909. package/src/tools/credentials/tool-policy.ts +39 -5
  910. package/src/tools/credentials/vault.ts +41 -7
  911. package/src/tools/executor.ts +4 -0
  912. package/src/tools/filesystem/write.ts +52 -0
  913. package/src/tools/host-terminal/host-shell.ts +45 -5
  914. package/src/tools/memory/register.test.ts +185 -0
  915. package/src/tools/memory/register.ts +3 -1
  916. package/src/tools/network/web-fetch.ts +25 -12
  917. package/src/tools/network/web-search.ts +20 -2
  918. package/src/tools/permission-checker.ts +36 -15
  919. package/src/tools/policy-context.ts +25 -8
  920. package/src/tools/registry.ts +55 -3
  921. package/src/tools/shared/shell-output.ts +3 -1
  922. package/src/tools/side-effects.ts +0 -9
  923. package/src/tools/skills/execute.ts +2 -2
  924. package/src/tools/skills/sandbox-runner.ts +6 -2
  925. package/src/tools/terminal/backends/native.ts +51 -2
  926. package/src/tools/terminal/safe-env.ts +11 -2
  927. package/src/tools/terminal/shell.ts +16 -4
  928. package/src/tools/tool-manifest.ts +6 -0
  929. package/src/tools/types.ts +29 -3
  930. package/src/tools/ui-surface/definitions.ts +6 -1
  931. package/src/tools/verification-control-plane-policy.ts +1 -1
  932. package/src/tts/__tests__/provider-adapters.test.ts +1061 -0
  933. package/src/tts/__tests__/provider-catalog-consistency.test.ts +196 -0
  934. package/src/tts/__tests__/provider-catalog.test.ts +183 -0
  935. package/src/tts/__tests__/provider-registry.test.ts +90 -0
  936. package/src/tts/provider-catalog.ts +219 -0
  937. package/src/tts/provider-registry.ts +73 -0
  938. package/src/tts/providers/deepgram-provider.ts +219 -0
  939. package/src/tts/providers/elevenlabs-provider.ts +211 -0
  940. package/src/tts/providers/fish-audio-provider.ts +183 -0
  941. package/src/tts/providers/index.ts +44 -0
  942. package/src/tts/providers/register-builtins.ts +130 -0
  943. package/src/tts/providers/xai-provider.ts +224 -0
  944. package/src/tts/synthesize-text.ts +110 -0
  945. package/src/tts/tts-config-resolver.ts +78 -0
  946. package/src/tts/types.ts +199 -0
  947. package/src/types/onboarding-context.ts +7 -0
  948. package/src/types/tar-stream.d.ts +66 -0
  949. package/src/util/abort-reasons.ts +58 -0
  950. package/src/util/device-id.ts +32 -16
  951. package/src/util/errors.ts +9 -1
  952. package/src/util/json.ts +17 -0
  953. package/src/util/platform.ts +56 -12
  954. package/src/util/pricing.ts +78 -5
  955. package/src/util/spawn.ts +1 -1
  956. package/src/util/truncate.ts +4 -2
  957. package/src/util/unicode.ts +201 -0
  958. package/src/version.ts +19 -24
  959. package/src/watcher/engine.ts +24 -1
  960. package/src/watcher/providers/google-calendar.ts +134 -8
  961. package/src/watcher/providers/outlook-calendar.ts +42 -2
  962. package/src/watcher/watcher-store.ts +31 -0
  963. package/src/workspace/git-service.ts +23 -4
  964. package/src/workspace/migrations/003-seed-device-id.ts +9 -3
  965. package/src/workspace/migrations/017-seed-persona-dirs.ts +68 -4
  966. package/src/workspace/migrations/029-seed-pkb.ts +1 -1
  967. package/src/workspace/migrations/031-drop-user-md.ts +317 -0
  968. package/src/workspace/migrations/031-llm-log-retention-zero-to-null.ts +73 -0
  969. package/src/workspace/migrations/032-tts-provider-unification.ts +227 -0
  970. package/src/workspace/migrations/033-stt-service-explicit-config.ts +122 -0
  971. package/src/workspace/migrations/034-remove-calls-voice-transcription-provider.ts +215 -0
  972. package/src/workspace/migrations/035-seed-slack-channel-persona.ts +50 -0
  973. package/src/workspace/migrations/036-update-pkb-index-bar.ts +37 -0
  974. package/src/workspace/migrations/037-create-meets-dir.ts +61 -0
  975. package/src/workspace/migrations/038-unify-llm-callsite-configs.ts +516 -0
  976. package/src/workspace/migrations/039-drop-legacy-llm-keys.ts +171 -0
  977. package/src/workspace/migrations/040-seed-latency-callsite-defaults.ts +154 -0
  978. package/src/workspace/migrations/041-backfill-google-gmail-settings-scope.ts +57 -0
  979. package/src/workspace/migrations/042-fix-backfill-google-gmail-settings-scope.ts +70 -0
  980. package/src/workspace/migrations/043-release-notes-latex-rendering.ts +75 -0
  981. package/src/workspace/migrations/044-bump-stale-provider-stream-timeout.ts +51 -0
  982. package/src/workspace/migrations/045-release-notes-meet-avatar.ts +130 -0
  983. package/src/workspace/migrations/AGENTS.md +1 -1
  984. package/src/workspace/migrations/registry.ts +32 -0
  985. package/src/workspace/provider-commit-message-generator.ts +19 -38
  986. package/src/workspace/top-level-renderer.ts +13 -1
  987. package/src/workspace/turn-commit.ts +31 -0
  988. package/src/__tests__/email-cli.test.ts +0 -297
  989. package/src/__tests__/email-service-config-fallback.test.ts +0 -102
  990. package/src/__tests__/outlook-attachments.test.ts +0 -301
  991. package/src/__tests__/outlook-automation-tools.test.ts +0 -425
  992. package/src/__tests__/outlook-categories.test.ts +0 -212
  993. package/src/__tests__/outlook-compose-tools.test.ts +0 -325
  994. package/src/__tests__/outlook-declutter-tools.test.ts +0 -585
  995. package/src/__tests__/outlook-follow-up.test.ts +0 -196
  996. package/src/__tests__/outlook-trash.test.ts +0 -77
  997. package/src/__tests__/outlook-unsubscribe.test.ts +0 -250
  998. package/src/__tests__/update-bulletin-format.test.ts +0 -122
  999. package/src/__tests__/update-bulletin-state.test.ts +0 -135
  1000. package/src/__tests__/update-bulletin.test.ts +0 -277
  1001. package/src/__tests__/update-template-contract.test.ts +0 -29
  1002. package/src/cli/commands/browser-relay.ts +0 -466
  1003. package/src/cli/commands/doctor.ts +0 -341
  1004. package/src/config/bundled-skills/browser/SKILL.md +0 -63
  1005. package/src/config/bundled-skills/browser/TOOLS.json +0 -393
  1006. package/src/config/bundled-skills/browser/tools/browser-click.ts +0 -12
  1007. package/src/config/bundled-skills/browser/tools/browser-close.ts +0 -12
  1008. package/src/config/bundled-skills/browser/tools/browser-extract.ts +0 -12
  1009. package/src/config/bundled-skills/browser/tools/browser-fill-credential.ts +0 -12
  1010. package/src/config/bundled-skills/browser/tools/browser-hover.ts +0 -12
  1011. package/src/config/bundled-skills/browser/tools/browser-navigate.ts +0 -12
  1012. package/src/config/bundled-skills/browser/tools/browser-press-key.ts +0 -12
  1013. package/src/config/bundled-skills/browser/tools/browser-screenshot.ts +0 -12
  1014. package/src/config/bundled-skills/browser/tools/browser-scroll.ts +0 -12
  1015. package/src/config/bundled-skills/browser/tools/browser-select-option.ts +0 -12
  1016. package/src/config/bundled-skills/browser/tools/browser-snapshot.ts +0 -12
  1017. package/src/config/bundled-skills/browser/tools/browser-type.ts +0 -12
  1018. package/src/config/bundled-skills/browser/tools/browser-wait-for-download.ts +0 -32
  1019. package/src/config/bundled-skills/browser/tools/browser-wait-for.ts +0 -12
  1020. package/src/config/bundled-skills/chatgpt-import/SKILL.md +0 -27
  1021. package/src/config/bundled-skills/chatgpt-import/TOOLS.json +0 -27
  1022. package/src/config/bundled-skills/chatgpt-import/tools/chatgpt-import.ts +0 -378
  1023. package/src/config/bundled-skills/gmail/SKILL.md +0 -175
  1024. package/src/config/bundled-skills/gmail/TOOLS.json +0 -558
  1025. package/src/config/bundled-skills/gmail/tools/gmail-archive.ts +0 -149
  1026. package/src/config/bundled-skills/gmail/tools/gmail-attachments.ts +0 -112
  1027. package/src/config/bundled-skills/gmail/tools/gmail-draft.ts +0 -44
  1028. package/src/config/bundled-skills/gmail/tools/gmail-filters.ts +0 -81
  1029. package/src/config/bundled-skills/gmail/tools/gmail-follow-up.ts +0 -108
  1030. package/src/config/bundled-skills/gmail/tools/gmail-forward.ts +0 -146
  1031. package/src/config/bundled-skills/gmail/tools/gmail-label.ts +0 -53
  1032. package/src/config/bundled-skills/gmail/tools/gmail-outreach-scan.ts +0 -220
  1033. package/src/config/bundled-skills/gmail/tools/gmail-send-draft.ts +0 -26
  1034. package/src/config/bundled-skills/gmail/tools/gmail-sender-digest.ts +0 -251
  1035. package/src/config/bundled-skills/gmail/tools/gmail-trash.ts +0 -29
  1036. package/src/config/bundled-skills/gmail/tools/gmail-unsubscribe.ts +0 -122
  1037. package/src/config/bundled-skills/gmail/tools/gmail-vacation.ts +0 -67
  1038. package/src/config/bundled-skills/gmail/tools/scan-result-store.ts +0 -100
  1039. package/src/config/bundled-skills/gmail/tools/shared.ts +0 -47
  1040. package/src/config/bundled-skills/google-calendar/SKILL.md +0 -51
  1041. package/src/config/bundled-skills/google-calendar/TOOLS.json +0 -226
  1042. package/src/config/bundled-skills/google-calendar/calendar-client.ts +0 -223
  1043. package/src/config/bundled-skills/google-calendar/tools/calendar-check-availability.ts +0 -27
  1044. package/src/config/bundled-skills/google-calendar/tools/calendar-create-event.ts +0 -48
  1045. package/src/config/bundled-skills/google-calendar/tools/calendar-get-event.ts +0 -19
  1046. package/src/config/bundled-skills/google-calendar/tools/calendar-list-events.ts +0 -36
  1047. package/src/config/bundled-skills/google-calendar/tools/calendar-rsvp.ts +0 -58
  1048. package/src/config/bundled-skills/google-calendar/tools/shared.ts +0 -17
  1049. package/src/config/bundled-skills/google-calendar/types.ts +0 -97
  1050. package/src/config/bundled-skills/outlook/SKILL.md +0 -196
  1051. package/src/config/bundled-skills/outlook/TOOLS.json +0 -530
  1052. package/src/config/bundled-skills/outlook/tools/outlook-attachments.ts +0 -85
  1053. package/src/config/bundled-skills/outlook/tools/outlook-categories.ts +0 -77
  1054. package/src/config/bundled-skills/outlook/tools/outlook-draft.ts +0 -84
  1055. package/src/config/bundled-skills/outlook/tools/outlook-follow-up.ts +0 -94
  1056. package/src/config/bundled-skills/outlook/tools/outlook-forward.ts +0 -49
  1057. package/src/config/bundled-skills/outlook/tools/outlook-outreach-scan.ts +0 -237
  1058. package/src/config/bundled-skills/outlook/tools/outlook-rules.ts +0 -161
  1059. package/src/config/bundled-skills/outlook/tools/outlook-send-draft.ts +0 -32
  1060. package/src/config/bundled-skills/outlook/tools/outlook-sender-digest.ts +0 -272
  1061. package/src/config/bundled-skills/outlook/tools/outlook-trash.ts +0 -29
  1062. package/src/config/bundled-skills/outlook/tools/outlook-unsubscribe.ts +0 -129
  1063. package/src/config/bundled-skills/outlook/tools/outlook-vacation.ts +0 -87
  1064. package/src/config/bundled-skills/outlook/tools/shared.ts +0 -20
  1065. package/src/config/bundled-skills/outlook-calendar/SKILL.md +0 -51
  1066. package/src/config/bundled-skills/outlook-calendar/TOOLS.json +0 -221
  1067. package/src/config/bundled-skills/outlook-calendar/calendar-client.ts +0 -252
  1068. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.ts +0 -53
  1069. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.ts +0 -74
  1070. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.ts +0 -18
  1071. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.ts +0 -46
  1072. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.ts +0 -36
  1073. package/src/config/bundled-skills/outlook-calendar/tools/shared.ts +0 -17
  1074. package/src/config/bundled-skills/outlook-calendar/types.ts +0 -120
  1075. package/src/config/bundled-skills/slack/SKILL.md +0 -107
  1076. package/src/config/bundled-skills/tasks/SKILL.md +0 -37
  1077. package/src/config/bundled-skills/tasks/TOOLS.json +0 -353
  1078. package/src/config/bundled-skills/tasks/icon.svg +0 -34
  1079. package/src/config/bundled-skills/tasks/tools/task-delete.ts +0 -12
  1080. package/src/config/bundled-skills/tasks/tools/task-list-add.ts +0 -12
  1081. package/src/config/bundled-skills/tasks/tools/task-list-remove.ts +0 -12
  1082. package/src/config/bundled-skills/tasks/tools/task-list-show.ts +0 -12
  1083. package/src/config/bundled-skills/tasks/tools/task-list-update.ts +0 -12
  1084. package/src/config/bundled-skills/tasks/tools/task-list.ts +0 -12
  1085. package/src/config/bundled-skills/tasks/tools/task-queue-run.ts +0 -12
  1086. package/src/config/bundled-skills/tasks/tools/task-run.ts +0 -12
  1087. package/src/config/bundled-skills/tasks/tools/task-save.ts +0 -12
  1088. package/src/config/bundled-skills/watcher/SKILL.md +0 -31
  1089. package/src/config/bundled-skills/watcher/TOOLS.json +0 -167
  1090. package/src/config/bundled-skills/watcher/tools/watcher-create.ts +0 -12
  1091. package/src/config/bundled-skills/watcher/tools/watcher-delete.ts +0 -12
  1092. package/src/config/bundled-skills/watcher/tools/watcher-digest.ts +0 -12
  1093. package/src/config/bundled-skills/watcher/tools/watcher-list.ts +0 -12
  1094. package/src/config/bundled-skills/watcher/tools/watcher-update.ts +0 -12
  1095. package/src/email/guardrails.ts +0 -221
  1096. package/src/email/provider.ts +0 -117
  1097. package/src/email/providers/agentmail.ts +0 -361
  1098. package/src/email/providers/index.ts +0 -65
  1099. package/src/email/service.ts +0 -384
  1100. package/src/email/types.ts +0 -126
  1101. package/src/prompts/templates/UPDATES.md +0 -38
  1102. package/src/prompts/templates/USER.md +0 -13
  1103. package/src/prompts/update-bulletin-format.ts +0 -68
  1104. package/src/prompts/update-bulletin-state.ts +0 -58
  1105. package/src/prompts/update-bulletin-template-path.ts +0 -13
  1106. package/src/prompts/update-bulletin.ts +0 -128
  1107. package/src/providers/speech-to-text/types.ts +0 -17
  1108. package/src/runtime/routes/browser-cdp-routes.ts +0 -229
  1109. package/src/shared/provider-env-vars.ts +0 -19
  1110. package/src/tools/watcher/create.ts +0 -86
  1111. package/src/tools/watcher/delete.ts +0 -36
  1112. package/src/tools/watcher/digest.ts +0 -54
  1113. package/src/tools/watcher/list.ts +0 -83
  1114. package/src/tools/watcher/update.ts +0 -71
package/openapi.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  openapi: 3.0.0
4
4
  info:
5
5
  title: Vellum Assistant API
6
- version: 0.6.3
6
+ version: 0.6.5
7
7
  description: Auto-generated OpenAPI specification for the Vellum Assistant runtime HTTP server.
8
8
  servers:
9
9
  - url: http://127.0.0.1:7821
@@ -948,7 +948,10 @@ paths:
948
948
  post:
949
949
  operationId: attachments_post
950
950
  summary: Upload attachment
951
- description: Upload an attachment as base64 data or file path reference.
951
+ description:
952
+ Upload an attachment. Supports application/json (base64 data or file path reference), multipart/form-data
953
+ (file + filename + mimeType fields), and application/octet-stream (raw bytes with filename and mimeType query
954
+ params).
952
955
  tags:
953
956
  - attachments
954
957
  responses:
@@ -1118,6 +1121,172 @@ paths:
1118
1121
  - eyeStyle
1119
1122
  - color
1120
1123
  additionalProperties: false
1124
+ /v1/backups:
1125
+ get:
1126
+ operationId: backups_get
1127
+ summary: List backup snapshots
1128
+ description:
1129
+ Lists local and offsite backup snapshots. Each offsite destination includes a `reachable` flag reflecting
1130
+ whether the backing volume is currently available. When `backup.offsite.enabled` is false the `offsite` array is
1131
+ empty and `offsiteEnabled` is false — clients should gate offsite UI on `offsiteEnabled` rather than
1132
+ `offsite.length`.
1133
+ tags:
1134
+ - backups
1135
+ responses:
1136
+ "200":
1137
+ description: Successful response
1138
+ content:
1139
+ application/json:
1140
+ schema:
1141
+ type: object
1142
+ properties:
1143
+ local:
1144
+ type: array
1145
+ items: {}
1146
+ offsite:
1147
+ type: array
1148
+ items:
1149
+ type: object
1150
+ properties:
1151
+ destination:
1152
+ type: object
1153
+ properties: {}
1154
+ additionalProperties: {}
1155
+ snapshots:
1156
+ type: array
1157
+ items: {}
1158
+ reachable:
1159
+ type: boolean
1160
+ required:
1161
+ - destination
1162
+ - snapshots
1163
+ - reachable
1164
+ additionalProperties: false
1165
+ offsiteEnabled:
1166
+ type: boolean
1167
+ nextRunAt:
1168
+ anyOf:
1169
+ - type: string
1170
+ - type: "null"
1171
+ required:
1172
+ - local
1173
+ - offsite
1174
+ - offsiteEnabled
1175
+ - nextRunAt
1176
+ additionalProperties: false
1177
+ /v1/backups/create:
1178
+ post:
1179
+ operationId: backups_create_post
1180
+ summary: Create a backup snapshot immediately
1181
+ description:
1182
+ Trigger a manual snapshot. Bypasses the enabled and interval gates, but honors the in-progress mutex — a
1183
+ concurrent caller receives 409.
1184
+ tags:
1185
+ - backups
1186
+ responses:
1187
+ "200":
1188
+ description: Successful response
1189
+ content:
1190
+ application/json:
1191
+ schema:
1192
+ type: object
1193
+ properties:
1194
+ local:
1195
+ type: object
1196
+ properties: {}
1197
+ additionalProperties: {}
1198
+ offsite:
1199
+ type: array
1200
+ items: {}
1201
+ durationMs:
1202
+ type: number
1203
+ required:
1204
+ - local
1205
+ - offsite
1206
+ - durationMs
1207
+ additionalProperties: false
1208
+ /v1/backups/restore:
1209
+ post:
1210
+ operationId: backups_restore_post
1211
+ summary: Restore from a backup snapshot
1212
+ description:
1213
+ "Restores a snapshot into the workspace. Destructive: the underlying commit flow backs up existing files
1214
+ before overwriting. The daemon closes the live SQLite handle before writing and invalidates its config/trust
1215
+ caches afterwards. Credentials are NOT included — users re-authenticate integrations after a restore."
1216
+ tags:
1217
+ - backups
1218
+ responses:
1219
+ "200":
1220
+ description: Successful response
1221
+ content:
1222
+ application/json:
1223
+ schema:
1224
+ type: object
1225
+ properties:
1226
+ manifest:
1227
+ type: object
1228
+ properties: {}
1229
+ additionalProperties: {}
1230
+ restoredFiles:
1231
+ type: number
1232
+ required:
1233
+ - manifest
1234
+ - restoredFiles
1235
+ additionalProperties: false
1236
+ requestBody:
1237
+ required: true
1238
+ content:
1239
+ application/json:
1240
+ schema:
1241
+ type: object
1242
+ properties:
1243
+ path:
1244
+ type: string
1245
+ description: Absolute path to the snapshot file to restore
1246
+ required:
1247
+ - path
1248
+ additionalProperties: false
1249
+ /v1/backups/verify:
1250
+ post:
1251
+ operationId: backups_verify_post
1252
+ summary: Verify a backup snapshot
1253
+ description:
1254
+ Validates a snapshot without restoring. Decrypts encrypted bundles to a temp file, runs the vbundle
1255
+ validator, and returns a pass/fail status.
1256
+ tags:
1257
+ - backups
1258
+ responses:
1259
+ "200":
1260
+ description: Successful response
1261
+ content:
1262
+ application/json:
1263
+ schema:
1264
+ type: object
1265
+ properties:
1266
+ valid:
1267
+ type: boolean
1268
+ manifest:
1269
+ type: object
1270
+ properties: {}
1271
+ additionalProperties: {}
1272
+ error:
1273
+ type: string
1274
+ required:
1275
+ - valid
1276
+ additionalProperties: false
1277
+ requestBody:
1278
+ required: true
1279
+ content:
1280
+ application/json:
1281
+ schema:
1282
+ type: object
1283
+ properties:
1284
+ path:
1285
+ type: string
1286
+ description: Absolute path to the snapshot file to verify
1287
+ required:
1288
+ - path
1289
+ additionalProperties: false
1121
1290
  /v1/brain-graph:
1122
1291
  get:
1123
1292
  operationId: braingraph_get
@@ -1169,12 +1338,6 @@ paths:
1169
1338
  responses:
1170
1339
  "200":
1171
1340
  description: Successful response
1172
- /v1/browser-cdp:
1173
- post:
1174
- operationId: browsercdp_post
1175
- responses:
1176
- "200":
1177
- description: Successful response
1178
1341
  /v1/btw:
1179
1342
  post:
1180
1343
  operationId: btw_post
@@ -1925,7 +2088,7 @@ paths:
1925
2088
  description: Pending interaction request ID
1926
2089
  decision:
1927
2090
  type: string
1928
- description: "One of: allow, allow_10m, allow_conversation, deny, always_allow, always_deny, always_allow_high_risk"
2091
+ description: "One of: allow, allow_10m, allow_conversation, deny, always_allow, always_deny"
1929
2092
  selectedPattern:
1930
2093
  type: string
1931
2094
  description: Allowlist pattern for persistent decisions
@@ -2120,6 +2283,56 @@ paths:
2120
2283
  required: true
2121
2284
  schema:
2122
2285
  type: string
2286
+ /v1/contacts/guardian/channel:
2287
+ post:
2288
+ operationId: contacts_guardian_channel_post
2289
+ summary: Add a channel to the guardian contact
2290
+ description: Used by the guardian to auto-verify their own channel.
2291
+ tags:
2292
+ - contacts
2293
+ responses:
2294
+ "200":
2295
+ description: Successful response
2296
+ content:
2297
+ application/json:
2298
+ schema:
2299
+ type: object
2300
+ properties:
2301
+ ok:
2302
+ type: boolean
2303
+ contact:
2304
+ type: object
2305
+ properties: {}
2306
+ additionalProperties: {}
2307
+ description: Updated guardian contact
2308
+ required:
2309
+ - ok
2310
+ - contact
2311
+ additionalProperties: false
2312
+ requestBody:
2313
+ required: true
2314
+ content:
2315
+ application/json:
2316
+ schema:
2317
+ type: object
2318
+ properties:
2319
+ type:
2320
+ type: string
2321
+ description: Channel type, e.g. 'email'
2322
+ address:
2323
+ type: string
2324
+ description: Channel address, e.g. 'user@example.com'
2325
+ externalUserId:
2326
+ type: string
2327
+ description: External user ID for trust resolution
2328
+ status:
2329
+ description: "Channel status (default: active)"
2330
+ type: string
2331
+ required:
2332
+ - type
2333
+ - address
2334
+ - externalUserId
2335
+ additionalProperties: false
2123
2336
  /v1/contacts/invites:
2124
2337
  get:
2125
2338
  operationId: contacts_invites_get
@@ -2536,6 +2749,24 @@ paths:
2536
2749
  required: true
2537
2750
  schema:
2538
2751
  type: string
2752
+ /v1/conversations/{id}/archive:
2753
+ post:
2754
+ operationId: conversations_by_id_archive_post
2755
+ summary: Archive a conversation
2756
+ description:
2757
+ Move a conversation to the archived state. Archived conversations are hidden from the default sidebar but
2758
+ preserved for search and recall.
2759
+ tags:
2760
+ - conversations
2761
+ responses:
2762
+ "200":
2763
+ description: Successful response
2764
+ parameters:
2765
+ - name: id
2766
+ in: path
2767
+ required: true
2768
+ schema:
2769
+ type: string
2539
2770
  /v1/conversations/{id}/cancel:
2540
2771
  post:
2541
2772
  operationId: conversations_by_id_cancel_post
@@ -2665,6 +2896,22 @@ paths:
2665
2896
  required: true
2666
2897
  schema:
2667
2898
  type: string
2899
+ /v1/conversations/{id}/unarchive:
2900
+ post:
2901
+ operationId: conversations_by_id_unarchive_post
2902
+ summary: Unarchive a conversation
2903
+ description: Restore an archived conversation back to the default sidebar.
2904
+ tags:
2905
+ - conversations
2906
+ responses:
2907
+ "200":
2908
+ description: Successful response
2909
+ parameters:
2910
+ - name: id
2911
+ in: path
2912
+ required: true
2913
+ schema:
2914
+ type: string
2668
2915
  /v1/conversations/{id}/undo:
2669
2916
  post:
2670
2917
  operationId: conversations_by_id_undo_post
@@ -3223,6 +3470,76 @@ paths:
3223
3470
  description: Upper bound epoch ms
3224
3471
  type: number
3225
3472
  additionalProperties: false
3473
+ /v1/filing/config:
3474
+ get:
3475
+ operationId: filing_config_get
3476
+ summary: Get filing config
3477
+ description: Return the current filing schedule configuration.
3478
+ tags:
3479
+ - filing
3480
+ responses:
3481
+ "200":
3482
+ description: Successful response
3483
+ content:
3484
+ application/json:
3485
+ schema:
3486
+ type: object
3487
+ properties:
3488
+ enabled:
3489
+ type: boolean
3490
+ intervalMs:
3491
+ type: number
3492
+ activeHoursStart:
3493
+ anyOf:
3494
+ - type: number
3495
+ - type: "null"
3496
+ activeHoursEnd:
3497
+ anyOf:
3498
+ - type: number
3499
+ - type: "null"
3500
+ nextRunAt:
3501
+ anyOf:
3502
+ - type: number
3503
+ - type: "null"
3504
+ lastRunAt:
3505
+ anyOf:
3506
+ - type: number
3507
+ - type: "null"
3508
+ success:
3509
+ type: boolean
3510
+ required:
3511
+ - enabled
3512
+ - intervalMs
3513
+ - activeHoursStart
3514
+ - activeHoursEnd
3515
+ - nextRunAt
3516
+ - lastRunAt
3517
+ - success
3518
+ additionalProperties: false
3519
+ /v1/filing/run-now:
3520
+ post:
3521
+ operationId: filing_runnow_post
3522
+ summary: Run filing now
3523
+ description: Trigger an immediate filing run.
3524
+ tags:
3525
+ - filing
3526
+ responses:
3527
+ "200":
3528
+ description: Successful response
3529
+ content:
3530
+ application/json:
3531
+ schema:
3532
+ type: object
3533
+ properties:
3534
+ success:
3535
+ type: boolean
3536
+ ran:
3537
+ type: boolean
3538
+ description: Whether the filing actually ran
3539
+ required:
3540
+ - success
3541
+ - ran
3542
+ additionalProperties: false
3226
3543
  /v1/groups:
3227
3544
  get:
3228
3545
  operationId: groups_get
@@ -3783,16 +4100,374 @@ paths:
3783
4100
  type: number
3784
4101
  nextRunAt:
3785
4102
  type: string
3786
- success:
3787
- type: boolean
4103
+ success:
4104
+ type: boolean
4105
+ required:
4106
+ - enabled
4107
+ - intervalMs
4108
+ - activeHoursStart
4109
+ - activeHoursEnd
4110
+ - nextRunAt
4111
+ - success
4112
+ additionalProperties: false
4113
+ requestBody:
4114
+ required: true
4115
+ content:
4116
+ application/json:
4117
+ schema:
4118
+ type: object
4119
+ properties:
4120
+ enabled:
4121
+ type: boolean
4122
+ description: Enable or disable heartbeat
4123
+ intervalMs:
4124
+ type: number
4125
+ description: Heartbeat interval in ms
4126
+ activeHoursStart:
4127
+ type: number
4128
+ description: Active hours start (0–23)
4129
+ activeHoursEnd:
4130
+ type: number
4131
+ description: Active hours end (0–23)
4132
+ required:
4133
+ - enabled
4134
+ - intervalMs
4135
+ - activeHoursStart
4136
+ - activeHoursEnd
4137
+ additionalProperties: false
4138
+ /v1/heartbeat/run-now:
4139
+ post:
4140
+ operationId: heartbeat_runnow_post
4141
+ summary: Run heartbeat now
4142
+ description: Trigger an immediate heartbeat run.
4143
+ tags:
4144
+ - heartbeat
4145
+ responses:
4146
+ "200":
4147
+ description: Successful response
4148
+ content:
4149
+ application/json:
4150
+ schema:
4151
+ type: object
4152
+ properties:
4153
+ success:
4154
+ type: boolean
4155
+ ran:
4156
+ type: boolean
4157
+ description: Whether the heartbeat actually ran
4158
+ required:
4159
+ - success
4160
+ - ran
4161
+ additionalProperties: false
4162
+ /v1/heartbeat/runs:
4163
+ get:
4164
+ operationId: heartbeat_runs_get
4165
+ summary: List heartbeat runs
4166
+ description: Return recent heartbeat conversation runs.
4167
+ tags:
4168
+ - heartbeat
4169
+ responses:
4170
+ "200":
4171
+ description: Successful response
4172
+ content:
4173
+ application/json:
4174
+ schema:
4175
+ type: object
4176
+ properties:
4177
+ runs:
4178
+ type: array
4179
+ items: {}
4180
+ description: Heartbeat run records
4181
+ required:
4182
+ - runs
4183
+ additionalProperties: false
4184
+ parameters:
4185
+ - name: limit
4186
+ in: query
4187
+ required: false
4188
+ schema:
4189
+ type: integer
4190
+ description: Max runs to return (default 20)
4191
+ /v1/home/feed:
4192
+ get:
4193
+ operationId: home_feed_get
4194
+ summary: Get home activity feed
4195
+ description:
4196
+ Return the current Home activity feed with TTL + time-away filtering applied. Also returns a context banner
4197
+ (greeting, relative time-away label, new-item count).
4198
+ tags:
4199
+ - home
4200
+ responses:
4201
+ "200":
4202
+ description: Successful response
4203
+ content:
4204
+ application/json:
4205
+ schema:
4206
+ type: object
4207
+ properties:
4208
+ items:
4209
+ type: array
4210
+ items:
4211
+ type: object
4212
+ properties:
4213
+ id:
4214
+ type: string
4215
+ type:
4216
+ type: string
4217
+ enum:
4218
+ - nudge
4219
+ - digest
4220
+ - action
4221
+ - thread
4222
+ priority:
4223
+ type: integer
4224
+ minimum: 0
4225
+ maximum: 100
4226
+ title:
4227
+ type: string
4228
+ summary:
4229
+ type: string
4230
+ source:
4231
+ type: string
4232
+ enum:
4233
+ - gmail
4234
+ - slack
4235
+ - calendar
4236
+ - assistant
4237
+ timestamp:
4238
+ type: string
4239
+ status:
4240
+ default: new
4241
+ type: string
4242
+ enum:
4243
+ - new
4244
+ - seen
4245
+ - acted_on
4246
+ - dismissed
4247
+ expiresAt:
4248
+ type: string
4249
+ minTimeAway:
4250
+ type: integer
4251
+ minimum: 0
4252
+ maximum: 9007199254740991
4253
+ actions:
4254
+ type: array
4255
+ items:
4256
+ type: object
4257
+ properties:
4258
+ id:
4259
+ type: string
4260
+ label:
4261
+ type: string
4262
+ prompt:
4263
+ type: string
4264
+ required:
4265
+ - id
4266
+ - label
4267
+ - prompt
4268
+ additionalProperties: false
4269
+ urgency:
4270
+ type: string
4271
+ enum:
4272
+ - low
4273
+ - medium
4274
+ - high
4275
+ - critical
4276
+ author:
4277
+ type: string
4278
+ enum:
4279
+ - assistant
4280
+ - platform
4281
+ createdAt:
4282
+ type: string
4283
+ required:
4284
+ - id
4285
+ - type
4286
+ - priority
4287
+ - title
4288
+ - summary
4289
+ - timestamp
4290
+ - status
4291
+ - author
4292
+ - createdAt
4293
+ additionalProperties: false
4294
+ updatedAt:
4295
+ type: string
4296
+ contextBanner:
4297
+ type: object
4298
+ properties:
4299
+ greeting:
4300
+ type: string
4301
+ timeAwayLabel:
4302
+ type: string
4303
+ newCount:
4304
+ type: integer
4305
+ minimum: 0
4306
+ maximum: 9007199254740991
4307
+ required:
4308
+ - greeting
4309
+ - timeAwayLabel
4310
+ - newCount
4311
+ additionalProperties: false
4312
+ suggestedPrompts:
4313
+ type: array
4314
+ items:
4315
+ type: object
4316
+ properties:
4317
+ id:
4318
+ type: string
4319
+ label:
4320
+ type: string
4321
+ icon:
4322
+ type: string
4323
+ prompt:
4324
+ type: string
4325
+ source:
4326
+ type: string
4327
+ enum:
4328
+ - deterministic
4329
+ - assistant
4330
+ required:
4331
+ - id
4332
+ - label
4333
+ - prompt
4334
+ - source
4335
+ additionalProperties: false
4336
+ lowPriorityCollapsed:
4337
+ type: object
4338
+ properties:
4339
+ count:
4340
+ type: integer
4341
+ minimum: 0
4342
+ maximum: 9007199254740991
4343
+ itemIds:
4344
+ type: array
4345
+ items:
4346
+ type: string
4347
+ required:
4348
+ - count
4349
+ - itemIds
4350
+ additionalProperties: false
4351
+ required:
4352
+ - items
4353
+ - updatedAt
4354
+ - contextBanner
4355
+ - suggestedPrompts
4356
+ - lowPriorityCollapsed
4357
+ additionalProperties: false
4358
+ parameters:
4359
+ - name: timeAwaySeconds
4360
+ in: query
4361
+ required: true
4362
+ schema:
4363
+ type: integer
4364
+ description:
4365
+ Seconds since the user was last active in the client. Used to filter items with a `minTimeAway` gate and to
4366
+ compute the context-banner relative-time label.
4367
+ /v1/home/feed/{id}:
4368
+ patch:
4369
+ operationId: home_feed_by_id_patch
4370
+ summary: Patch home feed item status
4371
+ description:
4372
+ Update the `status` field of a single feed item (e.g. mark it seen or acted_on). Returns the updated item
4373
+ on success, 404 if the item does not exist, 500 if the underlying write fails.
4374
+ tags:
4375
+ - home
4376
+ responses:
4377
+ "200":
4378
+ description: Successful response
4379
+ content:
4380
+ application/json:
4381
+ schema:
4382
+ type: object
4383
+ properties:
4384
+ id:
4385
+ type: string
4386
+ type:
4387
+ type: string
4388
+ enum:
4389
+ - nudge
4390
+ - digest
4391
+ - action
4392
+ - thread
4393
+ priority:
4394
+ type: integer
4395
+ minimum: 0
4396
+ maximum: 100
4397
+ title:
4398
+ type: string
4399
+ summary:
4400
+ type: string
4401
+ source:
4402
+ type: string
4403
+ enum:
4404
+ - gmail
4405
+ - slack
4406
+ - calendar
4407
+ - assistant
4408
+ timestamp:
4409
+ type: string
4410
+ status:
4411
+ default: new
4412
+ type: string
4413
+ enum:
4414
+ - new
4415
+ - seen
4416
+ - acted_on
4417
+ - dismissed
4418
+ expiresAt:
4419
+ type: string
4420
+ minTimeAway:
4421
+ type: integer
4422
+ minimum: 0
4423
+ maximum: 9007199254740991
4424
+ actions:
4425
+ type: array
4426
+ items:
4427
+ type: object
4428
+ properties:
4429
+ id:
4430
+ type: string
4431
+ label:
4432
+ type: string
4433
+ prompt:
4434
+ type: string
4435
+ required:
4436
+ - id
4437
+ - label
4438
+ - prompt
4439
+ additionalProperties: false
4440
+ urgency:
4441
+ type: string
4442
+ enum:
4443
+ - low
4444
+ - medium
4445
+ - high
4446
+ - critical
4447
+ author:
4448
+ type: string
4449
+ enum:
4450
+ - assistant
4451
+ - platform
4452
+ createdAt:
4453
+ type: string
3788
4454
  required:
3789
- - enabled
3790
- - intervalMs
3791
- - activeHoursStart
3792
- - activeHoursEnd
3793
- - nextRunAt
3794
- - success
4455
+ - id
4456
+ - type
4457
+ - priority
4458
+ - title
4459
+ - summary
4460
+ - timestamp
4461
+ - status
4462
+ - author
4463
+ - createdAt
3795
4464
  additionalProperties: false
4465
+ parameters:
4466
+ - name: id
4467
+ in: path
4468
+ required: true
4469
+ schema:
4470
+ type: string
3796
4471
  requestBody:
3797
4472
  required: true
3798
4473
  content:
@@ -3800,31 +4475,25 @@ paths:
3800
4475
  schema:
3801
4476
  type: object
3802
4477
  properties:
3803
- enabled:
3804
- type: boolean
3805
- description: Enable or disable heartbeat
3806
- intervalMs:
3807
- type: number
3808
- description: Heartbeat interval in ms
3809
- activeHoursStart:
3810
- type: number
3811
- description: Active hours start (0–23)
3812
- activeHoursEnd:
3813
- type: number
3814
- description: Active hours end (0–23)
4478
+ status:
4479
+ type: string
4480
+ enum:
4481
+ - new
4482
+ - seen
4483
+ - acted_on
4484
+ - dismissed
3815
4485
  required:
3816
- - enabled
3817
- - intervalMs
3818
- - activeHoursStart
3819
- - activeHoursEnd
4486
+ - status
3820
4487
  additionalProperties: false
3821
- /v1/heartbeat/run-now:
4488
+ /v1/home/feed/{id}/actions/{actionId}:
3822
4489
  post:
3823
- operationId: heartbeat_runnow_post
3824
- summary: Run heartbeat now
3825
- description: Trigger an immediate heartbeat run.
4490
+ operationId: home_feed_by_id_actions_by_actionId_post
4491
+ summary: Trigger home feed action
4492
+ description:
4493
+ Create a new conversation pre-seeded with the action's prompt as the first user message. Returns the new
4494
+ `conversationId`.
3826
4495
  tags:
3827
- - heartbeat
4496
+ - home
3828
4497
  responses:
3829
4498
  "200":
3830
4499
  description: Successful response
@@ -3833,22 +4502,31 @@ paths:
3833
4502
  schema:
3834
4503
  type: object
3835
4504
  properties:
3836
- success:
3837
- type: boolean
3838
- ran:
3839
- type: boolean
3840
- description: Whether the heartbeat actually ran
4505
+ conversationId:
4506
+ type: string
3841
4507
  required:
3842
- - success
3843
- - ran
4508
+ - conversationId
3844
4509
  additionalProperties: false
3845
- /v1/heartbeat/runs:
4510
+ parameters:
4511
+ - name: id
4512
+ in: path
4513
+ required: true
4514
+ schema:
4515
+ type: string
4516
+ - name: actionId
4517
+ in: path
4518
+ required: true
4519
+ schema:
4520
+ type: string
4521
+ /v1/home/state:
3846
4522
  get:
3847
- operationId: heartbeat_runs_get
3848
- summary: List heartbeat runs
3849
- description: Return recent heartbeat conversation runs.
4523
+ operationId: home_state_get
4524
+ summary: Get relationship state
4525
+ description:
4526
+ Return the current `RelationshipState` snapshot. Reads the persisted `relationship-state.json` when
4527
+ present; falls back to an on-demand compute so fresh installs never see a 404.
3850
4528
  tags:
3851
- - heartbeat
4529
+ - home
3852
4530
  responses:
3853
4531
  "200":
3854
4532
  description: Successful response
@@ -3857,20 +4535,107 @@ paths:
3857
4535
  schema:
3858
4536
  type: object
3859
4537
  properties:
3860
- runs:
4538
+ version:
4539
+ type: number
4540
+ const: 1
4541
+ assistantId:
4542
+ type: string
4543
+ tier:
4544
+ anyOf:
4545
+ - type: number
4546
+ const: 1
4547
+ - type: number
4548
+ const: 2
4549
+ - type: number
4550
+ const: 3
4551
+ - type: number
4552
+ const: 4
4553
+ progressPercent:
4554
+ type: number
4555
+ facts:
3861
4556
  type: array
3862
- items: {}
3863
- description: Heartbeat run records
4557
+ items:
4558
+ type: object
4559
+ properties:
4560
+ id:
4561
+ type: string
4562
+ category:
4563
+ type: string
4564
+ enum:
4565
+ - voice
4566
+ - world
4567
+ - priorities
4568
+ text:
4569
+ type: string
4570
+ confidence:
4571
+ type: string
4572
+ enum:
4573
+ - strong
4574
+ - uncertain
4575
+ source:
4576
+ type: string
4577
+ enum:
4578
+ - onboarding
4579
+ - inferred
4580
+ required:
4581
+ - id
4582
+ - category
4583
+ - text
4584
+ - confidence
4585
+ - source
4586
+ additionalProperties: false
4587
+ capabilities:
4588
+ type: array
4589
+ items:
4590
+ type: object
4591
+ properties:
4592
+ id:
4593
+ type: string
4594
+ name:
4595
+ type: string
4596
+ description:
4597
+ type: string
4598
+ tier:
4599
+ type: string
4600
+ enum:
4601
+ - unlocked
4602
+ - next-up
4603
+ - earned
4604
+ gate:
4605
+ type: string
4606
+ unlockHint:
4607
+ type: string
4608
+ ctaLabel:
4609
+ type: string
4610
+ required:
4611
+ - id
4612
+ - name
4613
+ - description
4614
+ - tier
4615
+ - gate
4616
+ additionalProperties: false
4617
+ conversationCount:
4618
+ type: number
4619
+ hatchedDate:
4620
+ type: string
4621
+ assistantName:
4622
+ type: string
4623
+ userName:
4624
+ type: string
4625
+ updatedAt:
4626
+ type: string
3864
4627
  required:
3865
- - runs
4628
+ - version
4629
+ - assistantId
4630
+ - tier
4631
+ - progressPercent
4632
+ - facts
4633
+ - capabilities
4634
+ - conversationCount
4635
+ - hatchedDate
4636
+ - assistantName
4637
+ - updatedAt
3866
4638
  additionalProperties: false
3867
- parameters:
3868
- - name: limit
3869
- in: query
3870
- required: false
3871
- schema:
3872
- type: integer
3873
- description: Max runs to return (default 20)
3874
4639
  /v1/host-bash-result:
3875
4640
  post:
3876
4641
  operationId: hostbashresult_post
@@ -4208,6 +4973,14 @@ paths:
4208
4973
  responses:
4209
4974
  "200":
4210
4975
  description: Successful response
4976
+ /v1/integrations/slack/channel/oauth-install:
4977
+ post:
4978
+ operationId: integrations_slack_channel_oauthinstall_post
4979
+ tags:
4980
+ - channel
4981
+ responses:
4982
+ "200":
4983
+ description: Successful response
4211
4984
  /v1/integrations/telegram/commands:
4212
4985
  post:
4213
4986
  operationId: integrations_telegram_commands_post
@@ -4757,7 +5530,7 @@ paths:
4757
5530
  post:
4758
5531
  operationId: messages_by_id_tts_post
4759
5532
  summary: Synthesize message to speech
4760
- description: Synthesize a message's text content to audio using Fish Audio TTS.
5533
+ description: Synthesize a message's text content to audio using the configured TTS provider.
4761
5534
  tags:
4762
5535
  - messages
4763
5536
  responses:
@@ -4818,7 +5591,10 @@ paths:
4818
5591
  post:
4819
5592
  operationId: migrations_import_post
4820
5593
  summary: Import a .vbundle archive
4821
- description: Commit a .vbundle archive import to disk — destructive. Backs up existing files before overwriting.
5594
+ description:
5595
+ Commit a .vbundle archive import to disk — destructive. Accepts the bundle as raw bytes
5596
+ (application/octet-stream), multipart/form-data, or a JSON body carrying a signed URL the daemon fetches and
5597
+ streams through the importer.
4822
5598
  tags:
4823
5599
  - migrations
4824
5600
  responses:
@@ -4852,6 +5628,56 @@ paths:
4852
5628
  - manifest
4853
5629
  - warnings
4854
5630
  additionalProperties: false
5631
+ "502":
5632
+ description:
5633
+ "Upstream fetch failed (URL body only). Body shape: { success: false, reason: 'fetch_failed',
5634
+ upstream_status?: number }."
5635
+ content:
5636
+ application/json:
5637
+ schema:
5638
+ type: object
5639
+ properties:
5640
+ success:
5641
+ type: boolean
5642
+ reason:
5643
+ type: string
5644
+ enum:
5645
+ - fetch_failed
5646
+ upstream_status:
5647
+ type: integer
5648
+ required:
5649
+ - success
5650
+ - reason
5651
+ requestBody:
5652
+ required: true
5653
+ content:
5654
+ application/octet-stream:
5655
+ schema:
5656
+ type: string
5657
+ format: binary
5658
+ description: Raw .vbundle archive bytes.
5659
+ multipart/form-data:
5660
+ schema:
5661
+ type: object
5662
+ properties:
5663
+ file:
5664
+ type: string
5665
+ format: binary
5666
+ description: The .vbundle archive uploaded as a file field.
5667
+ required:
5668
+ - file
5669
+ application/json:
5670
+ schema:
5671
+ type: object
5672
+ properties:
5673
+ url:
5674
+ type: string
5675
+ format: uri
5676
+ description:
5677
+ A signed GCS URL pointing to the .vbundle archive. The daemon fetches the URL and streams the body through
5678
+ the importer.
5679
+ required:
5680
+ - url
4855
5681
  /v1/migrations/import-preflight:
4856
5682
  post:
4857
5683
  operationId: migrations_importpreflight_post
@@ -6176,7 +7002,9 @@ paths:
6176
7002
  get:
6177
7003
  operationId: skills_get
6178
7004
  summary: List all skills
6179
- description: Return all installed skills. Pass ?include=catalog to also include available catalog skills.
7005
+ description:
7006
+ "Return all installed skills. Pass ?include=catalog to also include available catalog skills. Supports
7007
+ optional filter params: origin, kind, q, category."
6180
7008
  tags:
6181
7009
  - skills
6182
7010
  responses:
@@ -6261,6 +7089,8 @@ paths:
6261
7089
  type: number
6262
7090
  publishedAt:
6263
7091
  type: string
7092
+ version:
7093
+ type: string
6264
7094
  required:
6265
7095
  - id
6266
7096
  - name
@@ -6273,6 +7103,7 @@ paths:
6273
7103
  - stars
6274
7104
  - installs
6275
7105
  - reports
7106
+ - version
6276
7107
  additionalProperties: false
6277
7108
  - type: object
6278
7109
  properties:
@@ -6305,6 +7136,32 @@ paths:
6305
7136
  type: string
6306
7137
  installs:
6307
7138
  type: number
7139
+ audit:
7140
+ type: object
7141
+ propertyNames:
7142
+ type: string
7143
+ additionalProperties:
7144
+ type: object
7145
+ properties:
7146
+ risk:
7147
+ type: string
7148
+ enum:
7149
+ - safe
7150
+ - low
7151
+ - medium
7152
+ - high
7153
+ - critical
7154
+ - unknown
7155
+ alerts:
7156
+ type: number
7157
+ score:
7158
+ type: number
7159
+ analyzedAt:
7160
+ type: string
7161
+ required:
7162
+ - risk
7163
+ - analyzedAt
7164
+ additionalProperties: false
6308
7165
  required:
6309
7166
  - id
6310
7167
  - name
@@ -6350,6 +7207,16 @@ paths:
6350
7207
  - origin
6351
7208
  additionalProperties: false
6352
7209
  description: Skill objects
7210
+ categoryCounts:
7211
+ description: Count of skills per category (before category filter is applied)
7212
+ type: object
7213
+ propertyNames:
7214
+ type: string
7215
+ additionalProperties:
7216
+ type: number
7217
+ totalCount:
7218
+ description: Total number of skills matching non-category filters
7219
+ type: number
6353
7220
  required:
6354
7221
  - skills
6355
7222
  additionalProperties: false
@@ -6362,6 +7229,30 @@ paths:
6362
7229
  enum:
6363
7230
  - catalog
6364
7231
  description: Optional inclusion flag. Use 'catalog' to merge available Vellum catalog skills into the response.
7232
+ - name: origin
7233
+ in: query
7234
+ required: false
7235
+ schema:
7236
+ type: string
7237
+ description: Filter by skill origin (e.g. 'vellum', 'clawhub', 'skillssh', 'custom').
7238
+ - name: kind
7239
+ in: query
7240
+ required: false
7241
+ schema:
7242
+ type: string
7243
+ description: "Filter by kind: 'installed' (includes bundled), 'available', or pass through as skill.kind."
7244
+ - name: q
7245
+ in: query
7246
+ required: false
7247
+ schema:
7248
+ type: string
7249
+ description: Text search across skill name, description, id, and origin label.
7250
+ - name: category
7251
+ in: query
7252
+ required: false
7253
+ schema:
7254
+ type: string
7255
+ description: Filter by inferred category (e.g. 'communication', 'productivity').
6365
7256
  post:
6366
7257
  operationId: skills_post
6367
7258
  summary: Create skill
@@ -6504,6 +7395,8 @@ paths:
6504
7395
  type: number
6505
7396
  publishedAt:
6506
7397
  type: string
7398
+ version:
7399
+ type: string
6507
7400
  owner:
6508
7401
  anyOf:
6509
7402
  - type: object
@@ -6570,6 +7463,7 @@ paths:
6570
7463
  - stars
6571
7464
  - installs
6572
7465
  - reports
7466
+ - version
6573
7467
  additionalProperties: false
6574
7468
  - type: object
6575
7469
  properties:
@@ -6602,6 +7496,32 @@ paths:
6602
7496
  type: string
6603
7497
  installs:
6604
7498
  type: number
7499
+ audit:
7500
+ type: object
7501
+ propertyNames:
7502
+ type: string
7503
+ additionalProperties:
7504
+ type: object
7505
+ properties:
7506
+ risk:
7507
+ type: string
7508
+ enum:
7509
+ - safe
7510
+ - low
7511
+ - medium
7512
+ - high
7513
+ - critical
7514
+ - unknown
7515
+ alerts:
7516
+ type: number
7517
+ score:
7518
+ type: number
7519
+ analyzedAt:
7520
+ type: string
7521
+ required:
7522
+ - risk
7523
+ - analyzedAt
7524
+ additionalProperties: false
6605
7525
  required:
6606
7526
  - id
6607
7527
  - name
@@ -6930,6 +7850,8 @@ paths:
6930
7850
  properties:
6931
7851
  ok:
6932
7852
  type: boolean
7853
+ skillId:
7854
+ type: string
6933
7855
  required:
6934
7856
  - ok
6935
7857
  additionalProperties: false
@@ -7052,6 +7974,8 @@ paths:
7052
7974
  type: number
7053
7975
  publishedAt:
7054
7976
  type: string
7977
+ version:
7978
+ type: string
7055
7979
  required:
7056
7980
  - id
7057
7981
  - name
@@ -7064,6 +7988,7 @@ paths:
7064
7988
  - stars
7065
7989
  - installs
7066
7990
  - reports
7991
+ - version
7067
7992
  additionalProperties: false
7068
7993
  - type: object
7069
7994
  properties:
@@ -7096,6 +8021,32 @@ paths:
7096
8021
  type: string
7097
8022
  installs:
7098
8023
  type: number
8024
+ audit:
8025
+ type: object
8026
+ propertyNames:
8027
+ type: string
8028
+ additionalProperties:
8029
+ type: object
8030
+ properties:
8031
+ risk:
8032
+ type: string
8033
+ enum:
8034
+ - safe
8035
+ - low
8036
+ - medium
8037
+ - high
8038
+ - critical
8039
+ - unknown
8040
+ alerts:
8041
+ type: number
8042
+ score:
8043
+ type: number
8044
+ analyzedAt:
8045
+ type: string
8046
+ required:
8047
+ - risk
8048
+ - analyzedAt
8049
+ additionalProperties: false
7099
8050
  required:
7100
8051
  - id
7101
8052
  - name
@@ -7167,6 +8118,38 @@ paths:
7167
8118
  responses:
7168
8119
  "200":
7169
8120
  description: Successful response
8121
+ /v1/stt/transcribe:
8122
+ post:
8123
+ operationId: stt_transcribe_post
8124
+ summary: Transcribe audio to text
8125
+ description:
8126
+ Transcribe base64-encoded audio to text using the configured STT provider. Provider selection is resolved
8127
+ globally via config.
8128
+ tags:
8129
+ - stt
8130
+ responses:
8131
+ "200":
8132
+ description: Successful response
8133
+ requestBody:
8134
+ required: true
8135
+ content:
8136
+ application/json:
8137
+ schema:
8138
+ type: object
8139
+ properties:
8140
+ audioBase64:
8141
+ type: string
8142
+ description: Base64-encoded audio data to transcribe
8143
+ mimeType:
8144
+ type: string
8145
+ description: MIME type of the audio data (must start with "audio/", e.g. "audio/wav", "audio/ogg")
8146
+ source:
8147
+ description: Optional source identifier for analytics (e.g. 'dictation', 'voice-mode')
8148
+ type: string
8149
+ required:
8150
+ - audioBase64
8151
+ - mimeType
8152
+ additionalProperties: false
7170
8153
  /v1/subagents/{id}:
7171
8154
  get:
7172
8155
  operationId: subagents_by_id_get
@@ -7335,6 +8318,11 @@ paths:
7335
8318
  properties:
7336
8319
  ok:
7337
8320
  type: boolean
8321
+ conversationId:
8322
+ type: string
8323
+ description:
8324
+ Id of a newly launched conversation when the action dispatched one (e.g. launch_conversation). Omitted
8325
+ otherwise.
7338
8326
  required:
7339
8327
  - ok
7340
8328
  additionalProperties: false
@@ -7619,9 +8607,6 @@ paths:
7619
8607
  decision:
7620
8608
  type: string
7621
8609
  description: allow or deny
7622
- allowHighRisk:
7623
- type: boolean
7624
- description: Allow high-risk invocations
7625
8610
  required:
7626
8611
  - requestId
7627
8612
  - pattern
@@ -7687,20 +8672,16 @@ paths:
7687
8672
  description: Allowlist pattern
7688
8673
  scope:
7689
8674
  type: string
7690
- description: Scope
8675
+ description: Scope (required for scoped tools, ignored for others)
7691
8676
  decision:
7692
8677
  type: string
7693
8678
  description: allow, deny, or ask
7694
- allowHighRisk:
7695
- type: boolean
7696
- description: Allow high-risk invocations
7697
8679
  executionTarget:
7698
8680
  type: string
7699
8681
  description: Execution target
7700
8682
  required:
7701
8683
  - toolName
7702
8684
  - pattern
7703
- - scope
7704
8685
  - decision
7705
8686
  additionalProperties: false
7706
8687
  /v1/trust-rules/manage/{id}:
@@ -7783,6 +8764,39 @@ paths:
7783
8764
  - decision
7784
8765
  - priority
7785
8766
  additionalProperties: false
8767
+ /v1/tts/synthesize:
8768
+ post:
8769
+ operationId: tts_synthesize_post
8770
+ summary: Synthesize text to speech
8771
+ description:
8772
+ Synthesize arbitrary text to audio using the configured TTS provider. Provider selection is resolved
8773
+ globally via config — callers do not specify a provider.
8774
+ tags:
8775
+ - tts
8776
+ responses:
8777
+ "200":
8778
+ description: Successful response
8779
+ requestBody:
8780
+ required: true
8781
+ content:
8782
+ application/json:
8783
+ schema:
8784
+ type: object
8785
+ properties:
8786
+ text:
8787
+ type: string
8788
+ description: Text to synthesize into speech
8789
+ context:
8790
+ description:
8791
+ Optional context hint for output policy or capability selection (e.g. voice-mode). Does not affect provider
8792
+ selection.
8793
+ type: string
8794
+ conversationId:
8795
+ description: Optional conversation ID for scoping or analytics.
8796
+ type: string
8797
+ required:
8798
+ - text
8799
+ additionalProperties: false
7786
8800
  /v1/usage/breakdown:
7787
8801
  get:
7788
8802
  operationId: usage_breakdown_get
@@ -7868,6 +8882,14 @@ paths:
7868
8882
  - daily
7869
8883
  - hourly
7870
8884
  description: 'Bucket granularity: "daily" (default) or "hourly"'
8885
+ - name: tz
8886
+ in: query
8887
+ required: false
8888
+ schema:
8889
+ type: string
8890
+ description:
8891
+ IANA timezone identifier (e.g. "America/Los_Angeles"). Bucket boundaries and display labels are computed in
8892
+ this timezone. Defaults to "UTC" for backwards compatibility.
7871
8893
  /v1/usage/totals:
7872
8894
  get:
7873
8895
  operationId: usage_totals_get