@vellumai/assistant 0.10.9 → 0.10.10-dev.202607162206.d08e98e

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 (456) hide show
  1. package/ARCHITECTURE.md +1 -1
  2. package/Dockerfile +8 -0
  3. package/docs/activation-funnel-telemetry.md +13 -7
  4. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/package.json +1 -0
  5. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/__tests__/redacted-credential.test.ts +200 -0
  6. package/node_modules/@vellumai/ces-client/node_modules/@vellumai/service-contracts/src/redacted-credential.ts +226 -0
  7. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/package.json +1 -0
  8. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/__tests__/redacted-credential.test.ts +200 -0
  9. package/node_modules/@vellumai/gateway-client/node_modules/@vellumai/service-contracts/src/redacted-credential.ts +226 -0
  10. package/node_modules/@vellumai/service-contracts/package.json +1 -0
  11. package/node_modules/@vellumai/service-contracts/src/__tests__/redacted-credential.test.ts +200 -0
  12. package/node_modules/@vellumai/service-contracts/src/redacted-credential.ts +226 -0
  13. package/openapi.yaml +530 -107
  14. package/package.json +1 -1
  15. package/scripts/generate-openapi.ts +8 -0
  16. package/src/__tests__/activation-early-marking.test.ts +6 -5
  17. package/src/__tests__/agent-loop-override-profile.test.ts +22 -25
  18. package/src/__tests__/agent-wake-override-profile.test.ts +21 -48
  19. package/src/__tests__/app-builder-tool-scripts.test.ts +0 -1
  20. package/src/__tests__/app-bundler.test.ts +4 -12
  21. package/src/__tests__/app-executors.test.ts +2 -49
  22. package/src/__tests__/app-routes-csp.test.ts +114 -146
  23. package/src/__tests__/auth-fallback-events-store.test.ts +8 -1
  24. package/src/__tests__/build-persisted-content.test.ts +96 -0
  25. package/src/__tests__/bundle-scanner.test.ts +27 -1
  26. package/src/__tests__/call-controller.test.ts +291 -0
  27. package/src/__tests__/call-site-routing-connection-auto-resolve.test.ts +165 -0
  28. package/src/__tests__/chat-credential-redaction.test.ts +1395 -0
  29. package/src/__tests__/chat-reveal-guard-priming.test.ts +791 -0
  30. package/src/__tests__/compaction.benchmark.test.ts +2 -1
  31. package/src/__tests__/compactor-image-manifest-trust.test.ts +50 -0
  32. package/src/__tests__/config-loader-backfill.test.ts +9 -4
  33. package/src/__tests__/config-schema-cmd.test.ts +10 -11
  34. package/src/__tests__/config-schema.test.ts +190 -257
  35. package/src/__tests__/conversation-agent-loop-fatal-cleanup.test.ts +208 -0
  36. package/src/__tests__/conversation-agent-loop-overflow.test.ts +5 -19
  37. package/src/__tests__/conversation-agent-loop.test.ts +22 -9
  38. package/src/__tests__/conversation-error.test.ts +31 -0
  39. package/src/__tests__/conversation-load-history-repair.test.ts +110 -0
  40. package/src/__tests__/conversation-process-callsite.test.ts +12 -19
  41. package/src/__tests__/conversation-routes-slash-commands.test.ts +7 -21
  42. package/src/__tests__/conversation-summarize-route.test.ts +36 -44
  43. package/src/__tests__/conversation-surfaces-action-delivery.test.ts +1 -0
  44. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +7 -7
  45. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +0 -1
  46. package/src/__tests__/conversation-tool-setup-attribution.test.ts +0 -1
  47. package/src/__tests__/conversation-usage.test.ts +4 -12
  48. package/src/__tests__/credential-routes.test.ts +250 -0
  49. package/src/__tests__/credential-security-invariants.test.ts +3 -0
  50. package/src/__tests__/db-migration-rollback.test.ts +22 -0
  51. package/src/__tests__/empty-response-hook.test.ts +186 -1
  52. package/src/__tests__/external-plugin-loader.test.ts +11 -5
  53. package/src/__tests__/heartbeat-service.test.ts +0 -28
  54. package/src/__tests__/host-shell-tool.test.ts +2 -0
  55. package/src/__tests__/inactive-tool-error-messages.test.ts +2 -2
  56. package/src/__tests__/inference-no-mode-boot-e2e.test.ts +52 -8
  57. package/src/__tests__/internal-telemetry-routes.test.ts +23 -4
  58. package/src/__tests__/invite-routes-http.test.ts +12 -16
  59. package/src/__tests__/list-all-apps.test.ts +0 -4
  60. package/src/__tests__/llm-context-resolution.test.ts +32 -56
  61. package/src/__tests__/llm-request-log-turn-query.test.ts +109 -0
  62. package/src/__tests__/llm-resolver-override-or-default.test.ts +3 -52
  63. package/src/__tests__/llm-resolver.test.ts +342 -602
  64. package/src/__tests__/llm-schema.test.ts +79 -37
  65. package/src/__tests__/max-tokens-continue-hook.test.ts +19 -0
  66. package/src/__tests__/media-stream-output.test.ts +259 -3
  67. package/src/__tests__/media-stream-server-integration.test.ts +22 -1
  68. package/src/__tests__/media-stream-stt-session.test.ts +47 -0
  69. package/src/__tests__/memory-jobs-worker-cleanup-cadence.test.ts +33 -0
  70. package/src/__tests__/memory-recall-log-store.test.ts +47 -13
  71. package/src/__tests__/mock-gateway-ipc.ts +46 -1
  72. package/src/__tests__/mtime-cache.test.ts +61 -0
  73. package/src/__tests__/navigate-settings-tab.test.ts +2 -0
  74. package/src/__tests__/normalize-onboarding.test.ts +33 -0
  75. package/src/__tests__/onboarding-persona-write.test.ts +26 -0
  76. package/src/__tests__/plugin-api-resolve-credential.test.ts +140 -0
  77. package/src/__tests__/plugin-app-serve-routes.test.ts +166 -14
  78. package/src/__tests__/plugin-import-boundary-reverse-guard.test.ts +2 -0
  79. package/src/__tests__/post-turn-tool-result-truncation.test.ts +38 -0
  80. package/src/__tests__/provider-commit-message-generator.test.ts +27 -20
  81. package/src/__tests__/provider-connections-backfill.test.ts +138 -0
  82. package/src/__tests__/provider-platform-proxy-integration.test.ts +10 -31
  83. package/src/__tests__/provider-registry-ollama.test.ts +8 -18
  84. package/src/__tests__/provider-send-message-override-profile.test.ts +23 -23
  85. package/src/__tests__/provider-usage-tracking.test.ts +9 -19
  86. package/src/__tests__/prune-old-conversations-job.test.ts +12 -0
  87. package/src/__tests__/published-app-updater.test.ts +22 -16
  88. package/src/__tests__/registry.test.ts +5 -16
  89. package/src/__tests__/retry-openrouter-only-normalization.test.ts +22 -23
  90. package/src/__tests__/retry-thinking-adaptive-only.test.ts +43 -48
  91. package/src/__tests__/retry-thinking-tool-choice.test.ts +57 -66
  92. package/src/__tests__/retry-verbosity-normalization.test.ts +24 -23
  93. package/src/__tests__/reveal-success-registry.test.ts +123 -0
  94. package/src/__tests__/run-conversation-turn-persistence.test.ts +130 -0
  95. package/src/__tests__/secret-fixtures.ts +9 -0
  96. package/src/__tests__/server-history-render.test.ts +28 -0
  97. package/src/__tests__/skills.test.ts +9 -4
  98. package/src/__tests__/slack-share-routes.test.ts +0 -1
  99. package/src/__tests__/stt-stream-session.test.ts +6 -5
  100. package/src/__tests__/subagent-call-site-routing.test.ts +69 -95
  101. package/src/__tests__/subagent-disposal.test.ts +2 -0
  102. package/src/__tests__/subagent-fork-notifications.test.ts +2 -0
  103. package/src/__tests__/subagent-fork-spawn.test.ts +2 -0
  104. package/src/__tests__/subagent-manager-notify.test.ts +2 -0
  105. package/src/__tests__/subagent-role-registry.test.ts +37 -0
  106. package/src/__tests__/subagent-spawn-and-await.test.ts +1 -0
  107. package/src/__tests__/subagent-terminal-message.test.ts +50 -0
  108. package/src/__tests__/subagent-tool-gate-mode.test.ts +78 -5
  109. package/src/__tests__/surface-completion-nudge-hook.test.ts +19 -0
  110. package/src/__tests__/telemetry-routes.test.ts +99 -19
  111. package/src/__tests__/tool-audit.test.ts +34 -4
  112. package/src/__tests__/tool-executor-lifecycle-events.test.ts +1 -1
  113. package/src/__tests__/tool-profiler.test.ts +72 -1
  114. package/src/__tests__/tool-result-spool.test.ts +49 -4
  115. package/src/__tests__/tool-side-effects-slack-dm.test.ts +0 -1
  116. package/src/__tests__/ui-channel-variants.test.ts +108 -0
  117. package/src/__tests__/ui-shape-teaching.test.ts +255 -0
  118. package/src/__tests__/usage-attribution.test.ts +18 -41
  119. package/src/__tests__/user-plugin-loader.test.ts +4 -4
  120. package/src/__tests__/voice-config-update.test.ts +46 -0
  121. package/src/__tests__/voice-session-bridge.test.ts +216 -84
  122. package/src/__tests__/workspace-migration-131-drop-web-fetch-mode.test.ts +120 -0
  123. package/src/agent/loop.ts +4 -3
  124. package/src/api/events/open-conversation.test.ts +64 -0
  125. package/src/api/events/open-conversation.ts +33 -0
  126. package/src/api/index.ts +6 -0
  127. package/src/api/responses/conversation-message.ts +5 -0
  128. package/src/apps/app-store.ts +25 -35
  129. package/src/bundler/app-bundler.ts +34 -48
  130. package/src/bundler/app-compiler.ts +39 -4
  131. package/src/bundler/bundle-scanner.ts +13 -0
  132. package/src/bundler/manifest.ts +1 -1
  133. package/src/calls/__tests__/voice-session-bridge.test.ts +47 -0
  134. package/src/calls/call-constants.ts +5 -0
  135. package/src/calls/call-controller.ts +100 -32
  136. package/src/calls/call-transport.ts +9 -0
  137. package/src/calls/media-stream-output.ts +107 -4
  138. package/src/calls/media-stream-server.ts +29 -9
  139. package/src/calls/media-stream-stt-session.ts +7 -1
  140. package/src/calls/media-turn-detector.ts +11 -1
  141. package/src/calls/voice-session-bridge.ts +84 -63
  142. package/src/cli/commands/__tests__/inference-providers.test.ts +270 -33
  143. package/src/cli/commands/__tests__/notifications.test.ts +24 -3
  144. package/src/cli/commands/config.help.ts +6 -6
  145. package/src/cli/commands/credentials.help.ts +13 -0
  146. package/src/cli/commands/credentials.ts +6 -1
  147. package/src/cli/commands/email.help.ts +7 -0
  148. package/src/cli/commands/email.ts +35 -1
  149. package/src/cli/commands/inference-providers.ts +168 -107
  150. package/src/cli/commands/inference.help.ts +118 -46
  151. package/src/cli/commands/memory/index.help.ts +23 -0
  152. package/src/cli/commands/memory/nodes.ts +146 -0
  153. package/src/cli/commands/notifications.help.ts +10 -10
  154. package/src/cli/commands/oauth/connect-surface-guidance.test.ts +40 -0
  155. package/src/cli/commands/oauth/connect-surface-guidance.ts +54 -0
  156. package/src/cli/commands/oauth/connect.test.ts +126 -0
  157. package/src/cli/commands/oauth/connect.ts +29 -6
  158. package/src/cli/commands/oauth/index.help.ts +7 -1
  159. package/src/cli/commands/oauth/status.test.ts +69 -3
  160. package/src/cli/commands/oauth/status.ts +50 -12
  161. package/src/cli/commands/plugins.help.ts +13 -2
  162. package/src/cli/commands/plugins.ts +61 -7
  163. package/src/cli/commands/telemetry.help.ts +13 -0
  164. package/src/cli/commands/telemetry.ts +45 -5
  165. package/src/cli/lib/__tests__/plugin-catalog-local.test.ts +8 -2
  166. package/src/cli/lib/__tests__/upgrade-plugin.test.ts +213 -9
  167. package/src/cli/lib/bundled-marketplace.json +93 -36
  168. package/src/cli/lib/inspect-plugin.ts +5 -1
  169. package/src/cli/lib/install-from-github.ts +68 -4
  170. package/src/cli/lib/plugin-catalog-local.ts +6 -2
  171. package/src/cli/lib/plugin-fingerprint.ts +3 -3
  172. package/src/cli/lib/upgrade-plugin.ts +236 -35
  173. package/src/config/__tests__/default-profile-catalog.test.ts +8 -12
  174. package/src/config/__tests__/plugin-resident-skill-discovery.test.ts +137 -0
  175. package/src/config/__tests__/profile-materialization.test.ts +1 -88
  176. package/src/config/bundled-skills/AGENTS.md +3 -30
  177. package/src/config/bundled-skills/app-builder/SKILL.md +5 -3
  178. package/src/config/bundled-skills/app-builder/TOOLS.json +23 -0
  179. package/src/config/bundled-skills/app-builder/tools/app-open.ts +32 -0
  180. package/src/config/bundled-skills/messaging/tools/messaging-send.ts +1 -1
  181. package/src/config/bundled-skills/phone-calls/references/CONFIG.md +7 -7
  182. package/src/config/bundled-skills/schedule/SKILL.md +1 -1
  183. package/src/config/bundled-skills/schedule/TOOLS.json +1 -1
  184. package/src/config/bundled-skills/settings/TOOLS.json +3 -1
  185. package/src/config/bundled-skills/settings/tools/navigate-settings-tab.ts +2 -0
  186. package/src/config/bundled-skills/settings/tools/voice-config-update.ts +18 -10
  187. package/src/config/bundled-skills/subagent/SKILL.md +2 -0
  188. package/src/config/bundled-skills/subagent/TOOLS.json +1 -1
  189. package/src/config/call-site-defaults.ts +3 -3
  190. package/src/config/feature-flag-registry.json +24 -39
  191. package/src/config/llm-resolver.ts +88 -475
  192. package/src/config/profile-materialization.ts +11 -11
  193. package/src/config/schema.ts +93 -127
  194. package/src/config/schemas/__tests__/live-voice.test.ts +24 -6
  195. package/src/config/schemas/__tests__/stt.test.ts +31 -3
  196. package/src/config/schemas/live-voice.ts +10 -4
  197. package/src/config/schemas/llm.ts +52 -15
  198. package/src/config/schemas/memory-lifecycle.ts +1 -1
  199. package/src/config/schemas/memory-retrospective.ts +8 -0
  200. package/src/config/schemas/memory-v2.ts +2 -2
  201. package/src/config/schemas/memory-v3.ts +1 -1
  202. package/src/config/schemas/services.ts +6 -3
  203. package/src/config/schemas/stt.ts +38 -21
  204. package/src/config/schemas/tts.ts +13 -18
  205. package/src/config/skills.ts +31 -21
  206. package/src/context/compactor.ts +44 -7
  207. package/src/context/post-turn-tool-result-truncation.ts +4 -2
  208. package/src/context/tool-result-spool.ts +26 -5
  209. package/src/conversations/__tests__/message-consolidation.test.ts +48 -0
  210. package/src/conversations/message-consolidation.ts +22 -2
  211. package/src/daemon/__tests__/conversation-tool-setup.test.ts +5 -12
  212. package/src/daemon/app-source-watcher.ts +17 -23
  213. package/src/daemon/chat-credential-redaction.ts +1365 -0
  214. package/src/daemon/conversation-agent-loop-handlers.ts +627 -34
  215. package/src/daemon/conversation-agent-loop.ts +71 -31
  216. package/src/daemon/conversation-error.ts +36 -14
  217. package/src/daemon/conversation-process.ts +22 -0
  218. package/src/daemon/conversation-store.ts +35 -0
  219. package/src/daemon/conversation-surfaces.ts +25 -25
  220. package/src/daemon/conversation-tool-setup.ts +33 -7
  221. package/src/daemon/conversation.ts +55 -5
  222. package/src/daemon/handlers/shared.ts +33 -2
  223. package/src/daemon/lifecycle.ts +4 -4
  224. package/src/daemon/message-types/conversations.ts +6 -17
  225. package/src/daemon/providers-setup.ts +8 -0
  226. package/src/daemon/tool-setup-types.ts +7 -1
  227. package/src/daemon/wake-conversation-ops.ts +10 -1
  228. package/src/hooks/types.ts +9 -0
  229. package/src/ipc/__tests__/email-ipc.test.ts +90 -0
  230. package/src/ipc/gateway-client.test.ts +59 -0
  231. package/src/ipc/gateway-client.ts +70 -27
  232. package/src/live-voice/__tests__/live-voice-events.test.ts +14 -2
  233. package/src/live-voice/__tests__/live-voice-integration.test.ts +116 -2
  234. package/src/live-voice/__tests__/live-voice-vad.test.ts +804 -13
  235. package/src/live-voice/__tests__/protocol.test.ts +122 -0
  236. package/src/live-voice/live-voice-session.ts +443 -40
  237. package/src/live-voice/protocol.ts +143 -1
  238. package/src/monitoring/__tests__/plugin-source-watch.test.ts +3 -1
  239. package/src/monitoring/plugin-source-watch.ts +3 -62
  240. package/src/notifications/README.md +1 -1
  241. package/src/permissions/checker.ts +8 -4
  242. package/src/persistence/__tests__/db-init-migrations-ok.test.ts +26 -0
  243. package/src/persistence/conversation-crud.ts +104 -2
  244. package/src/persistence/db-init.ts +14 -3
  245. package/src/persistence/job-handlers/cleanup.ts +15 -7
  246. package/src/persistence/llm-request-log-store.ts +88 -52
  247. package/src/persistence/migrations/298-move-memory-jobs-to-memory-db.ts +7 -31
  248. package/src/persistence/migrations/305-drop-contact-acl-columns.ts +3 -2
  249. package/src/persistence/migrations/326-move-injection-events-to-memory-db.ts +8 -34
  250. package/src/persistence/migrations/336-move-memory-v2-activation-logs-to-memory-db.ts +90 -0
  251. package/src/persistence/migrations/337-move-memory-recall-logs-to-memory-db.ts +114 -0
  252. package/src/persistence/migrations/338-move-memory-v3-selections-to-memory-db.ts +84 -0
  253. package/src/persistence/migrations/339-move-activation-sessions-to-memory-db.ts +52 -0
  254. package/src/persistence/migrations/__tests__/run-migrations.test.ts +155 -0
  255. package/src/persistence/migrations/helpers/relocation.ts +44 -1
  256. package/src/persistence/migrations/run-migrations.ts +25 -1
  257. package/src/persistence/schema/infrastructure.ts +9 -0
  258. package/src/persistence/schema/memory-core.ts +3 -0
  259. package/src/persistence/schema/memory-injection.ts +2 -0
  260. package/src/persistence/steps.ts +36 -0
  261. package/src/platform/client.test.ts +1 -44
  262. package/src/platform/client.ts +10 -20
  263. package/src/platform/consent-cache.test.ts +89 -23
  264. package/src/platform/consent-cache.ts +71 -33
  265. package/src/plugin-api/constants.ts +12 -0
  266. package/src/plugin-api/conversation-turn.ts +37 -14
  267. package/src/plugin-api/index.ts +11 -1
  268. package/src/plugin-api/resolve-credential.ts +75 -0
  269. package/src/plugin-api/vision-support.test.ts +8 -19
  270. package/src/plugin-api/vision-support.ts +26 -17
  271. package/src/plugins/collect-source-versions.ts +77 -0
  272. package/src/plugins/defaults/compaction/compact.ts +6 -0
  273. package/src/plugins/defaults/compaction/window-manager.ts +9 -0
  274. package/src/plugins/defaults/empty-response/hooks/post-model-call.ts +18 -24
  275. package/src/plugins/defaults/empty-response/hooks/user-prompt-submit.ts +38 -0
  276. package/src/plugins/defaults/empty-response/refusal-quarantine.ts +99 -0
  277. package/src/plugins/defaults/image-fallback/__tests__/caption-cache-persistence.test.ts +7 -3
  278. package/src/plugins/defaults/index.ts +8 -1
  279. package/src/plugins/defaults/max-tokens-continue/hooks/post-model-call.ts +4 -1
  280. package/src/plugins/defaults/memory/__tests__/activation-session-store.test.ts +48 -6
  281. package/src/plugins/defaults/memory/__tests__/db-memory-attach.test.ts +28 -22
  282. package/src/plugins/defaults/memory/__tests__/memory-log-stores-degraded.test.ts +148 -0
  283. package/src/plugins/defaults/memory/__tests__/memory-retrospective-job.test.ts +80 -8
  284. package/src/plugins/defaults/memory/__tests__/memory-retrospective-prompt.test.ts +202 -0
  285. package/src/plugins/defaults/memory/__tests__/memory-v2-activation-log-store.test.ts +64 -25
  286. package/src/plugins/defaults/memory/__tests__/memory-v2-concept-frequency.test.ts +24 -11
  287. package/src/plugins/defaults/memory/__tests__/prompt-override.test.ts +70 -6
  288. package/src/plugins/defaults/memory/__tests__/table-relocation.test.ts +278 -0
  289. package/src/plugins/defaults/memory/activation-session-store.ts +27 -20
  290. package/src/plugins/defaults/memory/context-search/sources/memory-v2.ts +2 -9
  291. package/src/plugins/defaults/memory/context-search/sources/workspace.ts +1 -8
  292. package/src/plugins/defaults/memory/graph/retriever.test.ts +6 -6
  293. package/src/plugins/defaults/memory/graph/store.ts +114 -0
  294. package/src/plugins/defaults/memory/graph/tool-handlers.ts +36 -1
  295. package/src/plugins/defaults/memory/graph/tools.ts +47 -13
  296. package/src/plugins/defaults/memory/graph-topology/build-memory-graph.ts +16 -35
  297. package/src/plugins/defaults/memory/jobs-worker.ts +10 -1
  298. package/src/plugins/defaults/memory/memory-db.ts +3 -2
  299. package/src/plugins/defaults/memory/memory-recall-log-store.ts +129 -66
  300. package/src/plugins/defaults/memory/memory-retrospective-constants.ts +8 -0
  301. package/src/plugins/defaults/memory/memory-retrospective-job.ts +11 -122
  302. package/src/plugins/defaults/memory/memory-retrospective-prompt.ts +216 -0
  303. package/src/plugins/defaults/memory/memory-v2-activation-log-store.ts +84 -46
  304. package/src/plugins/defaults/memory/memory-v2-concept-frequency.ts +42 -32
  305. package/src/plugins/defaults/memory/path-containment.ts +21 -0
  306. package/src/plugins/defaults/memory/prompt-override.ts +51 -13
  307. package/src/plugins/defaults/memory/tools.test.ts +34 -0
  308. package/src/plugins/defaults/memory/tools.ts +12 -2
  309. package/src/plugins/defaults/memory/v2/__tests__/harness-compare.test.ts +19 -15
  310. package/src/plugins/defaults/memory/v2/__tests__/harness-oracle.test.ts +24 -19
  311. package/src/plugins/defaults/memory/v2/__tests__/harness-replay-input.test.ts +19 -15
  312. package/src/plugins/defaults/memory/v2/__tests__/injection.test.ts +22 -2
  313. package/src/plugins/defaults/memory/v2/__tests__/prompts-consolidation.test.ts +5 -3
  314. package/src/plugins/defaults/memory/v2/harness/oracle.ts +59 -41
  315. package/src/plugins/defaults/memory/v2/harness/replay-input.ts +29 -25
  316. package/src/plugins/defaults/memory/v2/migration.ts +46 -16
  317. package/src/plugins/defaults/memory/v2/prompts/consolidation.ts +4 -0
  318. package/src/plugins/defaults/memory/v3/__tests__/carry-integration.test.ts +17 -15
  319. package/src/plugins/defaults/memory/v3/__tests__/gate.test.ts +24 -22
  320. package/src/plugins/defaults/memory/v3/__tests__/injection.test.ts +9 -5
  321. package/src/plugins/defaults/memory/v3/__tests__/orchestrate.test.ts +277 -10
  322. package/src/plugins/defaults/memory/v3/__tests__/selection-log-store.test.ts +57 -5
  323. package/src/plugins/defaults/memory/v3/__tests__/shadow-integration.test.ts +9 -7
  324. package/src/plugins/defaults/memory/v3/__tests__/shadow-plugin.test.ts +38 -7
  325. package/src/plugins/defaults/memory/v3/hot-set.test.ts +36 -18
  326. package/src/plugins/defaults/memory/v3/hot-set.ts +12 -14
  327. package/src/plugins/defaults/memory/v3/learned-edges.test.ts +47 -27
  328. package/src/plugins/defaults/memory/v3/learned-edges.ts +12 -14
  329. package/src/plugins/defaults/memory/v3/orchestrate.ts +139 -22
  330. package/src/plugins/defaults/memory/v3/prune.test.ts +10 -3
  331. package/src/plugins/defaults/memory/v3/prune.ts +17 -11
  332. package/src/plugins/defaults/memory/v3/selection-log-store.ts +23 -11
  333. package/src/plugins/defaults/memory/v3/shadow-plugin.ts +70 -53
  334. package/src/plugins/defaults/surface-completion-nudge/hooks/post-model-call.ts +9 -6
  335. package/src/plugins/external-plugin-loader.ts +15 -15
  336. package/src/plugins/mtime-cache.ts +47 -0
  337. package/src/plugins/pipeline.ts +9 -1
  338. package/src/plugins/plugin-execution-context.ts +44 -0
  339. package/src/plugins/plugin-tree-walk.ts +31 -24
  340. package/src/plugins/source-fingerprint.ts +3 -4
  341. package/src/prompts/normalize-onboarding.ts +12 -0
  342. package/src/prompts/persona-resolver.ts +8 -0
  343. package/src/prompts/templates/BOOTSTRAP-ACTIVATION-RAIL.md +1 -1
  344. package/src/providers/__tests__/dispatch-connection-routing.test.ts +6 -9
  345. package/src/providers/__tests__/registry-native-web-search.test.ts +4 -10
  346. package/src/providers/__tests__/retry-callsite.test.ts +235 -215
  347. package/src/providers/__tests__/satellite-connection-routing.test.ts +8 -16
  348. package/src/providers/atlascloud/client.ts +10 -49
  349. package/src/providers/baseten/client.ts +43 -0
  350. package/src/providers/call-site-routing.ts +26 -13
  351. package/src/providers/connection-resolution.ts +9 -11
  352. package/src/providers/fetch-provider-catalog.ts +4 -2
  353. package/src/providers/inference/__tests__/adapter-factory-openai-compatible.test.ts +29 -4
  354. package/src/providers/inference/__tests__/connection-availability-keyless.test.ts +78 -0
  355. package/src/providers/inference/adapter-factory.ts +27 -6
  356. package/src/providers/inference/auth.ts +29 -1
  357. package/src/providers/inference/backfill.ts +61 -10
  358. package/src/providers/inference/connection-availability.ts +3 -2
  359. package/src/providers/inference/resolve-auth.ts +9 -1
  360. package/src/providers/model-catalog.ts +37 -0
  361. package/src/providers/openai/__tests__/api-error-normalization.test.ts +24 -2
  362. package/src/providers/openai/api-key-validation.ts +70 -0
  363. package/src/providers/retry.ts +2 -0
  364. package/src/providers/types.ts +11 -4
  365. package/src/providers/vellum-model-routing.test.ts +26 -0
  366. package/src/providers/vellum-model-routing.ts +30 -0
  367. package/src/providers/voice-error-copy.ts +47 -0
  368. package/src/runtime/agent-wake.ts +40 -24
  369. package/src/runtime/for-chat-mint-registry.ts +118 -0
  370. package/src/runtime/reveal-nonce.ts +49 -0
  371. package/src/runtime/reveal-success-registry.ts +306 -0
  372. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +88 -3
  373. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +161 -30
  374. package/src/runtime/routes/__tests__/migration-vellum-metadata-reconcile.test.ts +7 -0
  375. package/src/runtime/routes/__tests__/schedule-worker-routes.test.ts +15 -0
  376. package/src/runtime/routes/app-management-routes.ts +152 -45
  377. package/src/runtime/routes/app-routes.ts +16 -77
  378. package/src/runtime/routes/canned-message-complete.ts +16 -16
  379. package/src/runtime/routes/conversation-management-routes.ts +17 -14
  380. package/src/runtime/routes/conversation-query-routes.ts +54 -6
  381. package/src/runtime/routes/conversation-routes.ts +48 -2
  382. package/src/runtime/routes/credential-routes.ts +116 -3
  383. package/src/runtime/routes/email-routes.ts +17 -1
  384. package/src/runtime/routes/inbound-stages/transcribe-audio.test.ts +33 -5
  385. package/src/runtime/routes/inbound-stages/transcribe-audio.ts +6 -5
  386. package/src/runtime/routes/inference-provider-connection-routes.ts +77 -28
  387. package/src/runtime/routes/inference-send-routes.ts +1 -1
  388. package/src/runtime/routes/internal-telemetry-routes.ts +7 -6
  389. package/src/runtime/routes/plugins-routes.ts +37 -6
  390. package/src/runtime/routes/publish-routes.ts +15 -18
  391. package/src/runtime/routes/schedule-worker-routes.ts +9 -0
  392. package/src/runtime/routes/secret-routes.ts +10 -0
  393. package/src/runtime/routes/telemetry-routes.ts +149 -45
  394. package/src/schedule/__tests__/schedule-timezone.test.ts +101 -0
  395. package/src/schedule/__tests__/worker-watchdog.test.ts +209 -0
  396. package/src/schedule/schedule-store.ts +12 -1
  397. package/src/schedule/schedule-timezone.ts +63 -0
  398. package/src/schedule/scheduler.ts +100 -6
  399. package/src/schedule/worker-control.ts +19 -0
  400. package/src/security/auth-fallback-events-store.ts +7 -6
  401. package/src/security/secret-scanner.ts +26 -1
  402. package/src/services/published-app-updater.ts +6 -11
  403. package/src/stt/stt-stream-session.ts +36 -16
  404. package/src/subagent/manager.ts +34 -8
  405. package/src/telemetry/AGENTS.md +30 -1
  406. package/src/telemetry/__tests__/config-setting-snapshot.test.ts +18 -0
  407. package/src/telemetry/__tests__/outbox-test-harness.ts +5 -3
  408. package/src/telemetry/config-setting-snapshot.ts +44 -10
  409. package/src/telemetry/telemetry-event-sources.test.ts +124 -30
  410. package/src/telemetry/telemetry-event-sources.ts +137 -83
  411. package/src/telemetry/telemetry-events-outbox.test.ts +46 -1
  412. package/src/telemetry/telemetry-events-outbox.ts +60 -9
  413. package/src/telemetry/telemetry-wire-source.json +1 -1
  414. package/src/telemetry/telemetry-wire-validation.ts +39 -2
  415. package/src/telemetry/telemetry-wire.generated.ts +8 -0
  416. package/src/telemetry/tool-audit.ts +15 -9
  417. package/src/telemetry/tool-executed-events-store.test.ts +1 -1
  418. package/src/telemetry/turn-events-store.ts +20 -0
  419. package/src/telemetry/types.ts +45 -12
  420. package/src/telemetry/usage-telemetry-reporter.test.ts +294 -25
  421. package/src/telemetry/usage-telemetry-reporter.ts +117 -18
  422. package/src/telemetry/watchdog-direct-emit.test.ts +11 -3
  423. package/src/telemetry/watchdog-direct-emit.ts +11 -6
  424. package/src/tools/apps/executors.ts +11 -36
  425. package/src/tools/executor.ts +14 -1
  426. package/src/tools/host-terminal/host-shell.ts +6 -2
  427. package/src/tools/network/__tests__/web-fetch-firecrawl.test.ts +1 -1
  428. package/src/tools/network/__tests__/web-fetch-metadata.test.ts +25 -0
  429. package/src/tools/network/web-fetch.ts +6 -2
  430. package/src/tools/skills/sandbox-runner.ts +5 -2
  431. package/src/tools/subagent/spawn.ts +7 -11
  432. package/src/tools/terminal/shell.ts +5 -2
  433. package/src/tools/tool-manifest.ts +0 -2
  434. package/src/tools/tool-profiler.ts +37 -6
  435. package/src/tools/ui-surface/channel-variants.ts +101 -0
  436. package/src/tools/ui-surface/definitions.ts +23 -67
  437. package/src/tools/ui-surface/surface-shape-docs.ts +229 -0
  438. package/src/tts/__tests__/provider-adapters.test.ts +18 -0
  439. package/src/tts/provider-catalog.ts +2 -4
  440. package/src/tts/providers/deepgram-provider.ts +10 -1
  441. package/src/types/onboarding-context.ts +8 -0
  442. package/src/usage/attribution.ts +18 -112
  443. package/src/{config/bundled-skills/messaging/tools/gmail-mime-helpers.ts → util/mime-type.ts} +4 -1
  444. package/src/util/provider-error-patterns.ts +7 -1
  445. package/src/util/worker-process.ts +105 -0
  446. package/src/watcher/__tests__/telemetry.test.ts +17 -4
  447. package/src/watcher/telemetry.ts +5 -5
  448. package/src/workspace/migrations/131-drop-web-fetch-mode.ts +61 -0
  449. package/src/workspace/migrations/registry.ts +2 -0
  450. package/src/workspace/provider-commit-message-generator.ts +6 -4
  451. package/src/__tests__/app-open-proxy.test.ts +0 -67
  452. package/src/onboarding/onboarding-research-events-store.test.ts +0 -230
  453. package/src/onboarding/onboarding-research-events-store.ts +0 -104
  454. package/src/runtime/routes/assets/vellum-design-system.css +0 -2236
  455. package/src/tools/apps/definitions.ts +0 -73
  456. package/src/tools/apps/open-proxy.ts +0 -43
package/openapi.yaml CHANGED
@@ -3,7 +3,7 @@
3
3
  openapi: 3.1.0
4
4
  info:
5
5
  title: Vellum Assistant API
6
- version: 0.10.9
6
+ version: 0.10.10
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
@@ -834,11 +834,14 @@ paths:
834
834
  type: string
835
835
  html:
836
836
  type: string
837
+ origin:
838
+ type: string
837
839
  required:
838
840
  - appId
839
841
  - dirName
840
842
  - name
841
843
  - html
844
+ - origin
842
845
  additionalProperties: false
843
846
  /v1/apps/{id}/preview:
844
847
  get:
@@ -9543,7 +9546,9 @@ paths:
9543
9546
  post:
9544
9547
  operationId: credentials_reveal_post
9545
9548
  summary: Reveal a credential's plaintext value
9546
- description: Return the raw plaintext value of a stored credential. Blocked in untrusted shell mode.
9549
+ description:
9550
+ Return the raw plaintext value of a stored credential. Blocked in untrusted shell mode. With forChat,
9551
+ returns a chat-safe redaction sentinel instead of the plaintext.
9547
9552
  tags:
9548
9553
  - credentials
9549
9554
  requestBody:
@@ -9562,6 +9567,17 @@ paths:
9562
9567
  id:
9563
9568
  description: Credential UUID for lookup by ID
9564
9569
  type: string
9570
+ forChat:
9571
+ description:
9572
+ Return the credential's redaction sentinel (renders as a click-to-reveal chip in chat) instead of the
9573
+ plaintext. Requires the chat-credential-reveal feature flag.
9574
+ type: boolean
9575
+ revealNonce:
9576
+ description:
9577
+ Conversation-bound reveal nonce from the tool-shell environment. Scopes any recorded chat-redaction
9578
+ authority (plaintext proof or forChat mint) to the conversation whose tool executed this reveal;
9579
+ without it the reveal succeeds but records no authority.
9580
+ type: string
9565
9581
  responses:
9566
9582
  "200":
9567
9583
  description: Successful response
@@ -9572,7 +9588,7 @@ paths:
9572
9588
  properties:
9573
9589
  value:
9574
9590
  type: string
9575
- description: The plaintext credential value
9591
+ description: The plaintext credential value (or its redaction sentinel when forChat is set)
9576
9592
  required:
9577
9593
  - value
9578
9594
  additionalProperties: false
@@ -11173,6 +11189,23 @@ paths:
11173
11189
  type: array
11174
11190
  items:
11175
11191
  type: string
11192
+ attachments:
11193
+ description: File attachments
11194
+ type: array
11195
+ items:
11196
+ type: object
11197
+ properties:
11198
+ filename:
11199
+ type: string
11200
+ content_type:
11201
+ type: string
11202
+ content:
11203
+ type: string
11204
+ description: Base64-encoded file content
11205
+ required:
11206
+ - filename
11207
+ - content_type
11208
+ - content
11176
11209
  reply_to:
11177
11210
  description: Reply-to email ID
11178
11211
  type: string
@@ -14058,7 +14091,7 @@ paths:
14058
14091
  type: string
14059
14092
  description:
14060
14093
  "Filter by provider id. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
14061
- vercel-ai-gateway, openai-compatible, minimax, atlascloud"
14094
+ vercel-ai-gateway, openai-compatible, minimax, atlascloud, baseten"
14062
14095
  responses:
14063
14096
  "200":
14064
14097
  description: Successful response
@@ -14289,7 +14322,7 @@ paths:
14289
14322
  type: string
14290
14323
  description:
14291
14324
  "Filter by provider. One of: anthropic, openai, gemini, ollama, fireworks, together, openrouter,
14292
- vercel-ai-gateway, openai-compatible, minimax, atlascloud, vellum"
14325
+ vercel-ai-gateway, openai-compatible, minimax, atlascloud, baseten, vellum"
14293
14326
  responses:
14294
14327
  "200":
14295
14328
  description: Successful response
@@ -14308,7 +14341,10 @@ paths:
14308
14341
  post:
14309
14342
  operationId: inference_providerconnections_post
14310
14343
  summary: Create a provider connection
14311
- description: Create a new named provider connection. Fails with 409 if a connection with this name already exists.
14344
+ description:
14345
+ Create a new named provider connection. When auth is omitted it is derived from the provider (keyless
14346
+ providers get none, vellum gets platform, everything else needs credential for api_key auth). Fails with 409 if
14347
+ a connection with this name already exists.
14312
14348
  tags:
14313
14349
  - inference
14314
14350
  requestBody:
@@ -14325,6 +14361,9 @@ paths:
14325
14361
  $ref: "#/components/schemas/ConnectionProvider"
14326
14362
  auth:
14327
14363
  $ref: "#/components/schemas/Auth"
14364
+ credential:
14365
+ type: string
14366
+ minLength: 1
14328
14367
  label:
14329
14368
  type: string
14330
14369
  minLength: 1
@@ -14342,7 +14381,6 @@ paths:
14342
14381
  required:
14343
14382
  - name
14344
14383
  - provider
14345
- - auth
14346
14384
  responses:
14347
14385
  "201":
14348
14386
  description: Successful response
@@ -14414,7 +14452,8 @@ paths:
14414
14452
  operationId: inference_providerconnections_by_name_patch
14415
14453
  summary: Update a provider connection
14416
14454
  description:
14417
- Update an existing connection. Cannot rename or change the provider. For the Vellum-managed connection
14455
+ Update an existing connection. Cannot rename or change the provider. Omitting auth keeps the stored auth;
14456
+ passing credential alone rotates the key via provider-derived api_key auth. For the Vellum-managed connection
14418
14457
  (vellum) the auth is locked to platform; label remains editable.
14419
14458
  tags:
14420
14459
  - inference
@@ -14433,6 +14472,9 @@ paths:
14433
14472
  properties:
14434
14473
  auth:
14435
14474
  $ref: "#/components/schemas/Auth"
14475
+ credential:
14476
+ type: string
14477
+ minLength: 1
14436
14478
  label:
14437
14479
  anyOf:
14438
14480
  - type: string
@@ -14449,8 +14491,6 @@ paths:
14449
14491
  items:
14450
14492
  $ref: "#/components/schemas/ConnectionModel"
14451
14493
  - type: "null"
14452
- required:
14453
- - auth
14454
14494
  responses:
14455
14495
  "200":
14456
14496
  description: Successful response
@@ -18759,6 +18799,8 @@ paths:
18759
18799
  - output
18760
18800
  - completedAt
18761
18801
  additionalProperties: false
18802
+ systemCard:
18803
+ type: boolean
18762
18804
  slackMessage:
18763
18805
  type: object
18764
18806
  properties:
@@ -18962,6 +19004,13 @@ paths:
18962
19004
  snapshots, emits no echo, and does not supersede pending interactions. Honored on the standard send
18963
19005
  path only — slash-command content bypasses it."
18964
19006
  type: boolean
19007
+ source:
19008
+ description:
19009
+ 'How the send was initiated when the message was sent on the user''s behalf by the UI rather than typed by
19010
+ hand. Current value: "nav_redirect" (a navigation shortcut redirected the user into chat with a
19011
+ pre-filled message). Persisted onto the message metadata for analytics attribution and used to steer
19012
+ the assistant toward a brief, concrete reply. Omit for messages the user typed.'
19013
+ type: string
18965
19014
  onboarding:
18966
19015
  type: object
18967
19016
  properties:
@@ -19005,6 +19054,13 @@ paths:
19005
19054
  type: array
19006
19055
  items:
19007
19056
  type: string
19057
+ researchFindings:
19058
+ description:
19059
+ Findings from pre-chat onboarding research that the user explicitly kept on the results screen. Written
19060
+ into the persona's onboarding section so the first turn can reference them.
19061
+ type: array
19062
+ items:
19063
+ type: string
19008
19064
  title:
19009
19065
  description:
19010
19066
  Explicit title for the conversation minted on this first message. Persisted as a user-set title (never
@@ -22817,20 +22873,24 @@ paths:
22817
22873
  /v1/plugins/{name}/upgrade:
22818
22874
  post:
22819
22875
  operationId: plugins_by_name_upgrade_post
22820
- summary: Upgrade a plugin to the marketplace pin
22876
+ summary: Upgrade a plugin to its source's current revision
22821
22877
  description:
22822
- 'Move an installed plugin to the marketplace''s current pinned commit, re-materializing it under
22823
- `<workspaceDir>/plugins/<name>/`. Always resolves against the curated marketplace pin (no caller-supplied ref),
22824
- mirroring `plugins install`''s curation boundary. A no-op (`outcome: "already-up-to-date"`) when the installed
22825
- commit already equals the pin; pass `dryRun` to preview the move (`outcome: "would-upgrade"`) without touching
22826
- the install. Installs lacking provenance are re-pinned to the current SHA. The upgraded code is picked up live
22827
- on the next read (no restart required). `strategy` controls how local edits are reconciled: `overwrite`
22828
- (default) discards them and re-installs the pin wholesale; `ours`/`theirs`/`assistant` perform a three-way merge
22829
- against the re-materialized install commit, carrying non-conflicting edits from both sides forward and resolving
22830
- conflicting hunks toward the local edit (`ours`) or the pin (`theirs`), or writing git conflict markers into the
22831
- file and reporting them in `conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge
22832
- strategy whose install-time baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins
22833
- upgrade <name> [--strategy <s>]`.'
22878
+ 'Move an installed plugin to its source''s current revision, re-materializing it under
22879
+ `<workspaceDir>/plugins/<name>/`. A marketplace plugin advances to the curated pin; a plugin installed directly
22880
+ from a GitHub URL (untrusted, not in the marketplace) advances to whatever its recorded ref now resolves to — a
22881
+ pinned SHA is immutable (a no-op), a branch/tag/HEAD moves as upstream does — re-materialized verbatim with no
22882
+ curated adapter overlay, exactly as the original untrusted install was. The target ref is never taken from the
22883
+ request (no caller-supplied ref), mirroring `plugins install`''s curation boundary. A no-op (`outcome:
22884
+ "already-up-to-date"`) when the installed commit already equals the target; pass `dryRun` to preview the move
22885
+ (`outcome: "would-upgrade"`) without touching the install. Installs lacking provenance are re-pinned to the
22886
+ current SHA. The upgraded code is picked up live on the next read (no restart required). `strategy` controls how
22887
+ local edits are reconciled: `overwrite` (default) discards them and re-installs the target wholesale;
22888
+ `ours`/`theirs`/`assistant` perform a three-way merge against the re-materialized install commit, carrying
22889
+ non-conflicting edits from both sides forward and resolving conflicting hunks toward the local edit (`ours`) or
22890
+ the target (`theirs`), or writing git conflict markers into the file and reporting them in
22891
+ `conflicts`/`binaryConflicts` for the assistant to resolve (`assistant`). A merge strategy whose install-time
22892
+ baseline cannot be reconstructed returns 409. Mirrors the CLI''s `assistant plugins upgrade <name> [--strategy
22893
+ <s>]`.'
22834
22894
  tags:
22835
22895
  - plugins
22836
22896
  parameters:
@@ -22959,8 +23019,8 @@ paths:
22959
23019
  description: No copy of the plugin is installed, or its source resolves to nothing.
22960
23020
  "409":
22961
23021
  description:
22962
- The install exists but has no marketplace entry to advance to, or a merge strategy was requested whose
22963
- install-time baseline cannot be reconstructed.
23022
+ The install has neither a marketplace entry nor a recorded GitHub source to advance to, or a merge strategy
23023
+ was requested whose install-time baseline cannot be reconstructed.
22964
23024
  "503":
22965
23025
  description: The plugin source (GitHub) was temporarily unavailable; the upgrade is retryable.
22966
23026
  /v1/plugins/{name}/versions:
@@ -29006,8 +29066,20 @@ paths:
29006
29066
  flushed:
29007
29067
  type: boolean
29008
29068
  const: true
29069
+ sent:
29070
+ type: number
29071
+ description: Events POSTed to the platform
29072
+ persisted:
29073
+ type: number
29074
+ description: Events the platform confirmed written
29075
+ dropped:
29076
+ type: number
29077
+ description: Events that did not land (sent - persisted)
29009
29078
  required:
29010
29079
  - flushed
29080
+ - sent
29081
+ - persisted
29082
+ - dropped
29011
29083
  additionalProperties: false
29012
29084
  - type: object
29013
29085
  properties:
@@ -29020,11 +29092,16 @@ paths:
29020
29092
  - flushed
29021
29093
  - reason
29022
29094
  additionalProperties: false
29023
- /v1/telemetry/lifecycle:
29095
+ /v1/telemetry/ingest:
29024
29096
  post:
29025
- operationId: telemetry_lifecycle_post
29026
- summary: Record lifecycle event
29027
- description: Record a telemetry lifecycle event (app_open, hatch).
29097
+ operationId: telemetry_ingest_post
29098
+ summary: Record an outbox-backed telemetry event
29099
+ description:
29100
+ Record any outbox-backed telemetry event by its wire `type` + `fields`. For events a client observes and
29101
+ the daemon can't detect on its own (e.g. onboarding_research). The type must be an outbox-backed event — the
29102
+ watermark types (turn, llm_usage, tool_executed) have no variant — and the payload must pass the platform wire
29103
+ schema. Gated on share_analytics consent like every other outbox-backed event; the platform re-checks the
29104
+ owner's consent server-side at ingest.
29028
29105
  tags:
29029
29106
  - telemetry
29030
29107
  requestBody:
@@ -29032,13 +29109,403 @@ paths:
29032
29109
  content:
29033
29110
  application/json:
29034
29111
  schema:
29112
+ oneOf:
29113
+ - type: object
29114
+ properties:
29115
+ type:
29116
+ type: string
29117
+ const: lifecycle
29118
+ fields:
29119
+ type: object
29120
+ properties:
29121
+ event_name:
29122
+ type: string
29123
+ minLength: 1
29124
+ maxLength: 64
29125
+ required:
29126
+ - event_name
29127
+ description:
29128
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29129
+ assistant_version).
29130
+ daemon_event_id:
29131
+ description:
29132
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29133
+ per-row id."
29134
+ type: string
29135
+ minLength: 1
29136
+ maxLength: 128
29137
+ required:
29138
+ - type
29139
+ - fields
29140
+ - type: object
29141
+ properties:
29142
+ type:
29143
+ type: string
29144
+ const: onboarding
29145
+ fields:
29146
+ type: object
29147
+ properties:
29148
+ screen:
29149
+ type: string
29150
+ minLength: 1
29151
+ maxLength: 64
29152
+ tools:
29153
+ type: array
29154
+ items:
29155
+ type: string
29156
+ minLength: 1
29157
+ maxLength: 128
29158
+ tasks:
29159
+ type: array
29160
+ items:
29161
+ type: string
29162
+ minLength: 1
29163
+ maxLength: 128
29164
+ tone:
29165
+ type: string
29166
+ minLength: 1
29167
+ maxLength: 64
29168
+ google_connected:
29169
+ type: boolean
29170
+ google_scopes:
29171
+ type: array
29172
+ items:
29173
+ type: string
29174
+ minLength: 1
29175
+ maxLength: 256
29176
+ ab_variant:
29177
+ type: string
29178
+ minLength: 1
29179
+ maxLength: 64
29180
+ session_id:
29181
+ type: string
29182
+ minLength: 1
29183
+ maxLength: 128
29184
+ step_name:
29185
+ type: string
29186
+ minLength: 1
29187
+ maxLength: 128
29188
+ step_index:
29189
+ type: integer
29190
+ minimum: 0
29191
+ maximum: 9007199254740991
29192
+ completed_at:
29193
+ type: string
29194
+ minLength: 1
29195
+ maxLength: 64
29196
+ funnel_version:
29197
+ type: string
29198
+ minLength: 1
29199
+ maxLength: 128
29200
+ user_id:
29201
+ anyOf:
29202
+ - type: string
29203
+ minLength: 1
29204
+ maxLength: 64
29205
+ - type: "null"
29206
+ outcome:
29207
+ type: string
29208
+ minLength: 1
29209
+ maxLength: 32
29210
+ description:
29211
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29212
+ assistant_version).
29213
+ daemon_event_id:
29214
+ description:
29215
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29216
+ per-row id."
29217
+ type: string
29218
+ minLength: 1
29219
+ maxLength: 128
29220
+ required:
29221
+ - type
29222
+ - fields
29223
+ - type: object
29224
+ properties:
29225
+ type:
29226
+ type: string
29227
+ const: auth_fallback
29228
+ fields:
29229
+ type: object
29230
+ properties:
29231
+ guard:
29232
+ type: string
29233
+ minLength: 1
29234
+ maxLength: 64
29235
+ failure_kind:
29236
+ type: string
29237
+ minLength: 1
29238
+ maxLength: 64
29239
+ path:
29240
+ type: string
29241
+ minLength: 1
29242
+ maxLength: 2048
29243
+ count:
29244
+ type: integer
29245
+ minimum: 0
29246
+ maximum: 9007199254740991
29247
+ window_start:
29248
+ type: integer
29249
+ minimum: 0
29250
+ maximum: 9007199254740991
29251
+ window_end:
29252
+ type: integer
29253
+ minimum: 0
29254
+ maximum: 9007199254740991
29255
+ required:
29256
+ - guard
29257
+ - failure_kind
29258
+ - path
29259
+ - count
29260
+ - window_start
29261
+ - window_end
29262
+ description:
29263
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29264
+ assistant_version).
29265
+ daemon_event_id:
29266
+ description:
29267
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29268
+ per-row id."
29269
+ type: string
29270
+ minLength: 1
29271
+ maxLength: 128
29272
+ required:
29273
+ - type
29274
+ - fields
29275
+ - type: object
29276
+ properties:
29277
+ type:
29278
+ type: string
29279
+ const: skill_loaded
29280
+ fields:
29281
+ type: object
29282
+ properties:
29283
+ provider:
29284
+ anyOf:
29285
+ - type: string
29286
+ minLength: 1
29287
+ maxLength: 64
29288
+ - type: "null"
29289
+ model:
29290
+ anyOf:
29291
+ - type: string
29292
+ minLength: 1
29293
+ maxLength: 128
29294
+ - type: "null"
29295
+ inference_profile:
29296
+ anyOf:
29297
+ - type: string
29298
+ minLength: 1
29299
+ maxLength: 255
29300
+ - type: "null"
29301
+ inference_profile_source:
29302
+ anyOf:
29303
+ - type: string
29304
+ minLength: 1
29305
+ maxLength: 255
29306
+ - type: "null"
29307
+ skill_name:
29308
+ type: string
29309
+ minLength: 1
29310
+ maxLength: 255
29311
+ skill_updated_at:
29312
+ anyOf:
29313
+ - type: string
29314
+ minLength: 1
29315
+ maxLength: 64
29316
+ - type: "null"
29317
+ conversation_id:
29318
+ anyOf:
29319
+ - type: string
29320
+ minLength: 1
29321
+ maxLength: 128
29322
+ - type: "null"
29323
+ required:
29324
+ - skill_name
29325
+ description:
29326
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29327
+ assistant_version).
29328
+ daemon_event_id:
29329
+ description:
29330
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29331
+ per-row id."
29332
+ type: string
29333
+ minLength: 1
29334
+ maxLength: 128
29335
+ required:
29336
+ - type
29337
+ - fields
29338
+ - type: object
29339
+ properties:
29340
+ type:
29341
+ type: string
29342
+ const: watchdog
29343
+ fields:
29344
+ type: object
29345
+ properties:
29346
+ check_name:
29347
+ type: string
29348
+ minLength: 1
29349
+ maxLength: 128
29350
+ value:
29351
+ anyOf:
29352
+ - type: number
29353
+ - type: "null"
29354
+ detail:
29355
+ anyOf:
29356
+ - $ref: "#/components/schemas/TelemetryJsonValue"
29357
+ - type: "null"
29358
+ required:
29359
+ - check_name
29360
+ description:
29361
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29362
+ assistant_version).
29363
+ daemon_event_id:
29364
+ description:
29365
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29366
+ per-row id."
29367
+ type: string
29368
+ minLength: 1
29369
+ maxLength: 128
29370
+ required:
29371
+ - type
29372
+ - fields
29373
+ - type: object
29374
+ properties:
29375
+ type:
29376
+ type: string
29377
+ const: config_setting
29378
+ fields:
29379
+ type: object
29380
+ properties:
29381
+ config_key:
29382
+ type: string
29383
+ minLength: 1
29384
+ maxLength: 128
29385
+ config_value:
29386
+ type: string
29387
+ minLength: 1
29388
+ maxLength: 256
29389
+ required:
29390
+ - config_key
29391
+ - config_value
29392
+ description:
29393
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29394
+ assistant_version).
29395
+ daemon_event_id:
29396
+ description:
29397
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29398
+ per-row id."
29399
+ type: string
29400
+ minLength: 1
29401
+ maxLength: 128
29402
+ required:
29403
+ - type
29404
+ - fields
29405
+ - type: object
29406
+ properties:
29407
+ type:
29408
+ type: string
29409
+ const: onboarding_research
29410
+ fields:
29411
+ type: object
29412
+ properties:
29413
+ conversation_id:
29414
+ anyOf:
29415
+ - type: string
29416
+ minLength: 1
29417
+ maxLength: 64
29418
+ - type: "null"
29419
+ status:
29420
+ type: string
29421
+ minLength: 1
29422
+ maxLength: 32
29423
+ self_reported_occupation:
29424
+ anyOf:
29425
+ - type: string
29426
+ maxLength: 256
29427
+ - type: "null"
29428
+ self_reported_hobbies:
29429
+ maxItems: 32
29430
+ type: array
29431
+ items:
29432
+ type: string
29433
+ minLength: 1
29434
+ maxLength: 128
29435
+ self_reported_timezone:
29436
+ anyOf:
29437
+ - type: string
29438
+ maxLength: 64
29439
+ - type: "null"
29440
+ claims:
29441
+ maxItems: 20
29442
+ type: array
29443
+ items:
29444
+ $ref: "#/components/schemas/TelemetryJsonValue"
29445
+ claim_count:
29446
+ type: integer
29447
+ minimum: 0
29448
+ maximum: 9007199254740991
29449
+ claims_confident:
29450
+ type: integer
29451
+ minimum: 0
29452
+ maximum: 9007199254740991
29453
+ claims_maybe:
29454
+ type: integer
29455
+ minimum: 0
29456
+ maximum: 9007199254740991
29457
+ claims_guessing:
29458
+ type: integer
29459
+ minimum: 0
29460
+ maximum: 9007199254740991
29461
+ suggestions:
29462
+ maxItems: 20
29463
+ type: array
29464
+ items:
29465
+ $ref: "#/components/schemas/TelemetryJsonValue"
29466
+ suggestion_count:
29467
+ type: integer
29468
+ minimum: 0
29469
+ maximum: 9007199254740991
29470
+ plugins:
29471
+ maxItems: 20
29472
+ type: array
29473
+ items:
29474
+ type: string
29475
+ minLength: 1
29476
+ maxLength: 128
29477
+ installed_plugins:
29478
+ maxItems: 20
29479
+ type: array
29480
+ items:
29481
+ type: string
29482
+ minLength: 1
29483
+ maxLength: 128
29484
+ required:
29485
+ - status
29486
+ - claims
29487
+ - claim_count
29488
+ - claims_confident
29489
+ - claims_maybe
29490
+ - claims_guessing
29491
+ - suggestions
29492
+ - suggestion_count
29493
+ - plugins
29494
+ - installed_plugins
29495
+ description:
29496
+ Wire event fields, excluding the daemon-stamped base fields (type, daemon_event_id, recorded_at,
29497
+ assistant_version).
29498
+ daemon_event_id:
29499
+ description:
29500
+ "Optional collapse key: rows sharing an id collapse downstream (e.g. a retried report). Defaults to a fresh
29501
+ per-row id."
29502
+ type: string
29503
+ minLength: 1
29504
+ maxLength: 128
29505
+ required:
29506
+ - type
29507
+ - fields
29035
29508
  type: object
29036
- properties:
29037
- event_name:
29038
- type: string
29039
- description: "Event name: app_open or hatch"
29040
- required:
29041
- - event_name
29042
29509
  responses:
29043
29510
  "200":
29044
29511
  description: Successful response
@@ -29051,30 +29518,23 @@ paths:
29051
29518
  id:
29052
29519
  type: string
29053
29520
  description: Event ID
29054
- event_name:
29055
- type: string
29056
29521
  required:
29057
29522
  - id
29058
- - event_name
29059
29523
  additionalProperties: false
29060
29524
  - type: object
29061
29525
  properties:
29062
29526
  skipped:
29063
29527
  type: boolean
29064
29528
  const: true
29065
- description: Event skipped due to usage data collection being disabled
29529
+ description: "Event skipped: usage data collection is disabled or the telemetry database is unavailable"
29066
29530
  required:
29067
29531
  - skipped
29068
29532
  additionalProperties: false
29069
- /v1/telemetry/onboarding-research:
29533
+ /v1/telemetry/lifecycle:
29070
29534
  post:
29071
- operationId: telemetry_onboardingresearch_post
29072
- summary: Record onboarding-research event
29073
- description:
29074
- 'Record the settled result of an onboarding "research me" web-search turn (claims, suggestions, and
29075
- plugin picks). Client-orchestrated: the web client reports this once it has observed the turn complete. Gated on
29076
- share_diagnostics consent (in addition to share_analytics) since the payload carries the model''s raw inferred
29077
- claims about the user.'
29535
+ operationId: telemetry_lifecycle_post
29536
+ summary: Record lifecycle event
29537
+ description: Record a telemetry lifecycle event (app_open, hatch).
29078
29538
  tags:
29079
29539
  - telemetry
29080
29540
  requestBody:
@@ -29084,63 +29544,11 @@ paths:
29084
29544
  schema:
29085
29545
  type: object
29086
29546
  properties:
29087
- conversation_id:
29088
- anyOf:
29089
- - type: string
29090
- - type: "null"
29091
- status:
29547
+ event_name:
29092
29548
  type: string
29093
- enum:
29094
- - done
29095
- - error
29096
- claims:
29097
- type: array
29098
- items:
29099
- type: object
29100
- properties:
29101
- claim:
29102
- type: string
29103
- confidence:
29104
- type: string
29105
- enum:
29106
- - confident
29107
- - maybe
29108
- - guessing
29109
- sources:
29110
- type: array
29111
- items:
29112
- type: string
29113
- required:
29114
- - claim
29115
- - confidence
29116
- - sources
29117
- suggestions:
29118
- type: array
29119
- items:
29120
- type: object
29121
- properties:
29122
- suggestion:
29123
- type: string
29124
- prompt:
29125
- type: string
29126
- required:
29127
- - suggestion
29128
- - prompt
29129
- plugins:
29130
- type: array
29131
- items:
29132
- type: string
29133
- installed_plugins:
29134
- type: array
29135
- items:
29136
- type: string
29549
+ description: "Event name: app_open or hatch"
29137
29550
  required:
29138
- - conversation_id
29139
- - status
29140
- - claims
29141
- - suggestions
29142
- - plugins
29143
- - installed_plugins
29551
+ - event_name
29144
29552
  responses:
29145
29553
  "200":
29146
29554
  description: Successful response
@@ -29153,15 +29561,18 @@ paths:
29153
29561
  id:
29154
29562
  type: string
29155
29563
  description: Event ID
29564
+ event_name:
29565
+ type: string
29156
29566
  required:
29157
29567
  - id
29568
+ - event_name
29158
29569
  additionalProperties: false
29159
29570
  - type: object
29160
29571
  properties:
29161
29572
  skipped:
29162
29573
  type: boolean
29163
29574
  const: true
29164
- description: "Event skipped: usage data collection or diagnostics consent is disabled/ineligible"
29575
+ description: Event skipped due to usage data collection being disabled
29165
29576
  required:
29166
29577
  - skipped
29167
29578
  additionalProperties: false
@@ -31540,8 +31951,6 @@ components:
31540
31951
  anyOf:
31541
31952
  - type: object
31542
31953
  properties:
31543
- mode:
31544
- $ref: "#/components/schemas/ServiceMode"
31545
31954
  provider:
31546
31955
  type: string
31547
31956
  additionalProperties: {}
@@ -31578,6 +31987,7 @@ components:
31578
31987
  - minimax
31579
31988
  - atlascloud
31580
31989
  - together
31990
+ - baseten
31581
31991
  ProfilePatchEntry:
31582
31992
  type: object
31583
31993
  properties:
@@ -31954,6 +32364,7 @@ components:
31954
32364
  - openai-compatible
31955
32365
  - minimax
31956
32366
  - atlascloud
32367
+ - baseten
31957
32368
  - vellum
31958
32369
  Auth:
31959
32370
  oneOf:
@@ -32016,6 +32427,20 @@ components:
32016
32427
  minLength: 1
32017
32428
  required:
32018
32429
  - id
32430
+ TelemetryJsonValue:
32431
+ anyOf:
32432
+ - type: string
32433
+ - type: number
32434
+ - type: boolean
32435
+ - type: "null"
32436
+ - type: array
32437
+ items:
32438
+ $ref: "#/components/schemas/TelemetryJsonValue"
32439
+ - type: object
32440
+ propertyNames:
32441
+ type: string
32442
+ additionalProperties:
32443
+ $ref: "#/components/schemas/TelemetryJsonValue"
32019
32444
  ConfigGetResponse:
32020
32445
  type: object
32021
32446
  properties:
@@ -32338,8 +32763,6 @@ components:
32338
32763
  web-fetch:
32339
32764
  type: object
32340
32765
  properties:
32341
- mode:
32342
- $ref: "#/components/schemas/ServiceMode"
32343
32766
  provider:
32344
32767
  type: string
32345
32768
  additionalProperties: {}