@vellumai/assistant 0.5.15 → 0.6.0

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 (503) hide show
  1. package/ARCHITECTURE.md +3 -3
  2. package/Dockerfile +0 -3
  3. package/docs/architecture/integrations.md +15 -14
  4. package/knip.json +4 -1
  5. package/openapi.yaml +670 -122
  6. package/package.json +1 -1
  7. package/src/__tests__/actor-token-service.test.ts +68 -0
  8. package/src/__tests__/agent-loop.test.ts +0 -32
  9. package/src/__tests__/always-loaded-tools-guard.test.ts +2 -2
  10. package/src/__tests__/anthropic-provider.test.ts +57 -3
  11. package/src/__tests__/app-compiler.test.ts +120 -0
  12. package/src/__tests__/assistant-feature-flags-integration.test.ts +5 -377
  13. package/src/__tests__/call-conversation-messages.test.ts +2 -6
  14. package/src/__tests__/call-domain.test.ts +2 -6
  15. package/src/__tests__/call-pointer-messages.test.ts +2 -14
  16. package/src/__tests__/call-recovery.test.ts +2 -6
  17. package/src/__tests__/call-routes-http.test.ts +2 -6
  18. package/src/__tests__/call-store.test.ts +2 -6
  19. package/src/__tests__/cancel-resolves-conversation-key.test.ts +2 -6
  20. package/src/__tests__/canonical-guardian-store.test.ts +2 -6
  21. package/src/__tests__/ces-rpc-credential-backend.test.ts +4 -1
  22. package/src/__tests__/channel-delivery-store.test.ts +2 -6
  23. package/src/__tests__/channel-retry-sweep.test.ts +2 -6
  24. package/src/__tests__/checker.test.ts +84 -3
  25. package/src/__tests__/clawhub.test.ts +54 -24
  26. package/src/__tests__/cli-command-risk-guard.test.ts +108 -6
  27. package/src/__tests__/cli-memory.test.ts +377 -0
  28. package/src/__tests__/computer-use-skill-manifest-regression.test.ts +12 -2
  29. package/src/__tests__/config-schema.test.ts +1 -3
  30. package/src/__tests__/config-set-platform-guard.test.ts +302 -0
  31. package/src/__tests__/config-watcher-feature-flags.test.ts +211 -0
  32. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +2 -6
  33. package/src/__tests__/contacts-tools.test.ts +31 -0
  34. package/src/__tests__/context-overflow-reducer.test.ts +86 -0
  35. package/src/__tests__/context-token-estimator.test.ts +175 -10
  36. package/src/__tests__/conversation-agent-loop-overflow.test.ts +9 -0
  37. package/src/__tests__/conversation-agent-loop.test.ts +9 -0
  38. package/src/__tests__/conversation-attachments.test.ts +2 -6
  39. package/src/__tests__/conversation-attention-store.test.ts +2 -6
  40. package/src/__tests__/conversation-clear-safety.test.ts +2 -6
  41. package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +4 -10
  42. package/src/__tests__/conversation-disk-view-integration.test.ts +2 -6
  43. package/src/__tests__/conversation-disk-view.test.ts +2 -6
  44. package/src/__tests__/conversation-error.test.ts +33 -2
  45. package/src/__tests__/conversation-fork-crud.test.ts +2 -6
  46. package/src/__tests__/conversation-history-web-search.test.ts +5 -0
  47. package/src/__tests__/conversation-load-history-repair.test.ts +5 -1
  48. package/src/__tests__/conversation-media-retry.test.ts +91 -0
  49. package/src/__tests__/conversation-runtime-assembly.test.ts +7 -4
  50. package/src/__tests__/conversation-slash-commands.test.ts +2 -6
  51. package/src/__tests__/conversation-starter-routes.test.ts +20 -11
  52. package/src/__tests__/conversation-store.test.ts +2 -6
  53. package/src/__tests__/conversation-usage.test.ts +3 -6
  54. package/src/__tests__/conversation-wipe.test.ts +11 -408
  55. package/src/__tests__/credential-execution-feature-gates.test.ts +3 -3
  56. package/src/__tests__/credential-execution-shell-lockdown.test.ts +2 -2
  57. package/src/__tests__/credential-security-e2e.test.ts +6 -1
  58. package/src/__tests__/docker-signing-key-bootstrap.test.ts +7 -73
  59. package/src/__tests__/dynamic-skill-workflow-prompt.test.ts +6 -7
  60. package/src/__tests__/followup-tools.test.ts +2 -6
  61. package/src/__tests__/graph-extraction-event-date.test.ts +186 -0
  62. package/src/__tests__/guardian-action-conversation-turn.test.ts +2 -6
  63. package/src/__tests__/guardian-action-followup-executor.test.ts +2 -6
  64. package/src/__tests__/guardian-action-followup-store.test.ts +2 -6
  65. package/src/__tests__/guardian-action-grant-mint-consume.test.ts +2 -6
  66. package/src/__tests__/guardian-action-late-reply.test.ts +2 -6
  67. package/src/__tests__/guardian-action-store.test.ts +2 -6
  68. package/src/__tests__/guardian-binding-drift-heal.test.ts +2 -6
  69. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +8 -8
  70. package/src/__tests__/guardian-dispatch.test.ts +2 -6
  71. package/src/__tests__/guardian-grant-minting.test.ts +2 -14
  72. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +2 -6
  73. package/src/__tests__/guardian-routing-invariants.test.ts +343 -6
  74. package/src/__tests__/guardian-routing-state.test.ts +2 -6
  75. package/src/__tests__/guardian-verification-voice-binding.test.ts +2 -6
  76. package/src/__tests__/heartbeat-service.test.ts +1 -3
  77. package/src/__tests__/inbound-invite-redemption.test.ts +2 -6
  78. package/src/__tests__/injection-block.test.ts +154 -0
  79. package/src/__tests__/install-meta.test.ts +506 -0
  80. package/src/__tests__/install-skill-routing.test.ts +292 -0
  81. package/src/__tests__/intent-routing.test.ts +6 -18
  82. package/src/__tests__/invite-redemption-service.test.ts +2 -6
  83. package/src/__tests__/invite-routes-http.test.ts +2 -6
  84. package/src/__tests__/jobs-store-qdrant-breaker.test.ts +2 -14
  85. package/src/__tests__/list-messages-attachments.test.ts +2 -6
  86. package/src/__tests__/llm-context-route-provider.test.ts +2 -6
  87. package/src/__tests__/llm-request-log-turn-query.test.ts +2 -6
  88. package/src/__tests__/llm-usage-store.test.ts +2 -6
  89. package/src/__tests__/log-export-workspace.test.ts +4 -34
  90. package/src/__tests__/managed-skill-lifecycle.test.ts +7 -37
  91. package/src/__tests__/managed-store.test.ts +40 -21
  92. package/src/__tests__/memory-jobs-worker-backoff.test.ts +2 -8
  93. package/src/__tests__/memory-recall-log-store.test.ts +2 -6
  94. package/src/__tests__/memory-upsert-concurrency.test.ts +4 -112
  95. package/src/__tests__/messaging-send-tool.test.ts +6 -6
  96. package/src/__tests__/migration-cross-version-compatibility.test.ts +1 -29
  97. package/src/__tests__/migration-export-http.test.ts +3 -34
  98. package/src/__tests__/migration-import-commit-http.test.ts +1 -29
  99. package/src/__tests__/migration-import-preflight-http.test.ts +3 -34
  100. package/src/__tests__/no-domain-routing-in-prompt-guard.test.ts +2 -1
  101. package/src/__tests__/non-member-access-request.test.ts +2 -6
  102. package/src/__tests__/notification-guardian-path.test.ts +2 -6
  103. package/src/__tests__/oauth-apps-routes.test.ts +120 -10
  104. package/src/__tests__/oauth-cli.test.ts +364 -2
  105. package/src/__tests__/oauth-connect-orchestrator.test.ts +709 -0
  106. package/src/__tests__/oauth-provider-serializer.test.ts +2 -1
  107. package/src/__tests__/oauth-provider-visibility.test.ts +149 -0
  108. package/src/__tests__/oauth-providers-routes.test.ts +5 -2
  109. package/src/__tests__/oauth-store.test.ts +0 -5
  110. package/src/__tests__/oauth2-gateway-transport.test.ts +18 -3
  111. package/src/__tests__/outlook-attachments.test.ts +301 -0
  112. package/src/__tests__/outlook-automation-tools.test.ts +425 -0
  113. package/src/__tests__/outlook-categories.test.ts +212 -0
  114. package/src/__tests__/outlook-client-automation.test.ts +246 -0
  115. package/src/__tests__/outlook-compose-tools.test.ts +325 -0
  116. package/src/__tests__/outlook-declutter-tools.test.ts +585 -0
  117. package/src/__tests__/outlook-email-watcher.test.ts +322 -0
  118. package/src/__tests__/outlook-follow-up.test.ts +196 -0
  119. package/src/__tests__/outlook-messaging-provider.test.ts +1071 -0
  120. package/src/__tests__/outlook-trash.test.ts +77 -0
  121. package/src/__tests__/outlook-unsubscribe.test.ts +250 -0
  122. package/src/__tests__/path-policy.test.ts +2 -17
  123. package/src/__tests__/permission-types.test.ts +0 -1
  124. package/src/__tests__/platform-callback-registration.test.ts +7 -11
  125. package/src/__tests__/playbook-execution.test.ts +76 -80
  126. package/src/__tests__/playbook-tools.test.ts +5 -7
  127. package/src/__tests__/provider-commit-message-generator.test.ts +0 -1
  128. package/src/__tests__/provider-error-scenarios.test.ts +21 -2
  129. package/src/__tests__/qdrant-manager.test.ts +68 -21
  130. package/src/__tests__/rebuild-index-graph-nodes.test.ts +273 -0
  131. package/src/__tests__/registry.test.ts +2 -2
  132. package/src/__tests__/require-fresh-approval.test.ts +64 -3
  133. package/src/__tests__/runtime-events-sse-parity.test.ts +2 -6
  134. package/src/__tests__/runtime-events-sse.test.ts +2 -6
  135. package/src/__tests__/sandbox-diagnostics.test.ts +20 -29
  136. package/src/__tests__/scaffold-managed-skill-tool.test.ts +2 -10
  137. package/src/__tests__/schedule-store.test.ts +2 -6
  138. package/src/__tests__/schedule-tools.test.ts +2 -6
  139. package/src/__tests__/scheduler-recurrence.test.ts +1 -5
  140. package/src/__tests__/scoped-approval-grants.test.ts +2 -6
  141. package/src/__tests__/scoped-grant-security-matrix.test.ts +2 -6
  142. package/src/__tests__/search-skills-unified.test.ts +421 -0
  143. package/src/__tests__/secret-allowlist.test.ts +20 -35
  144. package/src/__tests__/secret-onetime-send.test.ts +2 -0
  145. package/src/__tests__/send-endpoint-busy.test.ts +2 -6
  146. package/src/__tests__/sequence-store.test.ts +2 -6
  147. package/src/__tests__/server-history-render.test.ts +2 -6
  148. package/src/__tests__/shell-credential-ref.test.ts +0 -5
  149. package/src/__tests__/skill-feature-flags-integration.test.ts +38 -31
  150. package/src/__tests__/skill-feature-flags.test.ts +6 -6
  151. package/src/__tests__/skill-load-feature-flag.test.ts +13 -54
  152. package/src/__tests__/skill-load-inline-command.test.ts +3 -65
  153. package/src/__tests__/skill-load-inline-includes.test.ts +3 -65
  154. package/src/__tests__/skill-load-tool.test.ts +3 -67
  155. package/src/__tests__/skill-memory.test.ts +480 -195
  156. package/src/__tests__/skills-uninstall.test.ts +2 -2
  157. package/src/__tests__/skills.test.ts +23 -50
  158. package/src/__tests__/slack-channel-config.test.ts +2 -21
  159. package/src/__tests__/slack-inbound-verification.test.ts +2 -6
  160. package/src/__tests__/starter-bundle.test.ts +2 -8
  161. package/src/__tests__/stt-hints.test.ts +7 -2
  162. package/src/__tests__/system-prompt.test.ts +25 -45
  163. package/src/__tests__/task-compiler.test.ts +2 -27
  164. package/src/__tests__/task-management-tools.test.ts +2 -27
  165. package/src/__tests__/task-memory-cleanup.test.ts +173 -250
  166. package/src/__tests__/task-runner.test.ts +2 -27
  167. package/src/__tests__/task-scheduler.test.ts +2 -27
  168. package/src/__tests__/terminal-tools.test.ts +1 -17
  169. package/src/__tests__/test-preload.ts +3 -0
  170. package/src/__tests__/token-estimator-accuracy.benchmark.test.ts +0 -79
  171. package/src/__tests__/tool-approval-handler.test.ts +4 -27
  172. package/src/__tests__/tool-execution-abort-cleanup.test.ts +2 -11
  173. package/src/__tests__/tool-execution-pipeline.benchmark.test.ts +1 -25
  174. package/src/__tests__/tool-executor-lifecycle-events.test.ts +0 -1
  175. package/src/__tests__/tool-executor.test.ts +0 -1
  176. package/src/__tests__/tool-grant-request-escalation.test.ts +4 -27
  177. package/src/__tests__/tool-preview-lifecycle.test.ts +0 -20
  178. package/src/__tests__/tool-side-effects-slack-dm.test.ts +276 -0
  179. package/src/__tests__/trust-store.test.ts +10 -42
  180. package/src/__tests__/trusted-contact-approval-notifier.test.ts +1 -30
  181. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +3 -27
  182. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +2 -28
  183. package/src/__tests__/trusted-contact-multichannel.test.ts +2 -28
  184. package/src/__tests__/trusted-contact-verification.test.ts +2 -28
  185. package/src/__tests__/turn-boundary-resolution.test.ts +2 -34
  186. package/src/__tests__/twilio-provider.test.ts +0 -16
  187. package/src/__tests__/twilio-routes-twiml.test.ts +7 -12
  188. package/src/__tests__/twilio-routes.test.ts +0 -24
  189. package/src/__tests__/update-bulletin.test.ts +17 -89
  190. package/src/__tests__/usage-cache-backfill-migration.test.ts +1 -26
  191. package/src/__tests__/usage-routes.test.ts +2 -27
  192. package/src/__tests__/user-reference.test.ts +1 -5
  193. package/src/__tests__/vbundle-pax-and-symlink.test.ts +4 -34
  194. package/src/__tests__/vellum-self-knowledge-inline-command.test.ts +2 -53
  195. package/src/__tests__/verification-control-plane-policy.test.ts +0 -2
  196. package/src/__tests__/voice-invite-redemption.test.ts +2 -27
  197. package/src/__tests__/voice-scoped-grant-consumer.test.ts +2 -30
  198. package/src/__tests__/voice-session-bridge.test.ts +2 -27
  199. package/src/__tests__/volume-security-guard.test.ts +2 -0
  200. package/src/__tests__/workspace-lifecycle.test.ts +29 -1
  201. package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +4 -29
  202. package/src/__tests__/workspace-migration-012-rename-conversation-disk-view-dirs.test.ts +2 -2
  203. package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +4 -29
  204. package/src/__tests__/workspace-migration-026-backfill-install-meta.test.ts +558 -0
  205. package/src/__tests__/workspace-migration-down-functions.test.ts +0 -6
  206. package/src/__tests__/workspace-policy.test.ts +1 -1
  207. package/src/acp/client-handler.ts +1 -2
  208. package/src/agent/attachments.ts +7 -2
  209. package/src/agent/image-optimize.ts +165 -0
  210. package/src/agent/loop.ts +1 -15
  211. package/src/bundler/app-compiler.ts +179 -2
  212. package/src/bundler/package-resolver.ts +3 -5
  213. package/src/cli/__tests__/notifications.test.ts +1 -24
  214. package/src/cli/cli-memory.ts +179 -0
  215. package/src/cli/commands/avatar.ts +3 -3
  216. package/src/cli/commands/config.ts +26 -13
  217. package/src/cli/commands/doctor.ts +2 -2
  218. package/src/cli/commands/memory.ts +41 -55
  219. package/src/cli/commands/oauth/__tests__/connect.test.ts +2 -2
  220. package/src/cli/commands/oauth/__tests__/disconnect.test.ts +2 -2
  221. package/src/cli/commands/oauth/__tests__/mode.test.ts +8 -1
  222. package/src/cli/commands/oauth/__tests__/providers-update.test.ts +1 -1
  223. package/src/cli/commands/oauth/__tests__/status.test.ts +2 -2
  224. package/src/cli/commands/oauth/connect.ts +26 -6
  225. package/src/cli/commands/oauth/mode.ts +7 -0
  226. package/src/cli/commands/oauth/providers.ts +49 -42
  227. package/src/cli/commands/oauth/shared.ts +39 -3
  228. package/src/cli/commands/platform/__tests__/connect.test.ts +3 -49
  229. package/src/cli/commands/platform/__tests__/disconnect.test.ts +3 -49
  230. package/src/cli/commands/platform/__tests__/status.test.ts +5 -55
  231. package/src/cli/commands/platform/index.ts +16 -16
  232. package/src/cli/commands/skills.ts +88 -16
  233. package/src/cli/commands/trust.ts +2 -2
  234. package/src/cli/lib/daemon-credential-client.ts +2 -3
  235. package/src/config/bundled-skills/acp/TOOLS.json +1 -1
  236. package/src/config/bundled-skills/computer-use/TOOLS.json +7 -7
  237. package/src/config/bundled-skills/contacts/SKILL.md +0 -1
  238. package/src/config/bundled-skills/contacts/TOOLS.json +0 -8
  239. package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +0 -4
  240. package/src/config/bundled-skills/gmail/SKILL.md +2 -10
  241. package/src/config/bundled-skills/google-calendar/SKILL.md +1 -9
  242. package/src/config/bundled-skills/messaging/SKILL.md +26 -19
  243. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +40 -33
  244. package/src/config/bundled-skills/outlook/SKILL.md +189 -0
  245. package/src/config/bundled-skills/outlook/TOOLS.json +530 -0
  246. package/src/config/bundled-skills/outlook/tools/outlook-attachments.ts +85 -0
  247. package/src/config/bundled-skills/outlook/tools/outlook-categories.ts +77 -0
  248. package/src/config/bundled-skills/outlook/tools/outlook-draft.ts +84 -0
  249. package/src/config/bundled-skills/outlook/tools/outlook-follow-up.ts +94 -0
  250. package/src/config/bundled-skills/outlook/tools/outlook-forward.ts +49 -0
  251. package/src/config/bundled-skills/outlook/tools/outlook-outreach-scan.ts +237 -0
  252. package/src/config/bundled-skills/outlook/tools/outlook-rules.ts +161 -0
  253. package/src/config/bundled-skills/outlook/tools/outlook-send-draft.ts +32 -0
  254. package/src/config/bundled-skills/outlook/tools/outlook-sender-digest.ts +272 -0
  255. package/src/config/bundled-skills/outlook/tools/outlook-trash.ts +29 -0
  256. package/src/config/bundled-skills/outlook/tools/outlook-unsubscribe.ts +129 -0
  257. package/src/config/bundled-skills/outlook/tools/outlook-vacation.ts +87 -0
  258. package/src/config/bundled-skills/outlook/tools/shared.ts +20 -0
  259. package/src/config/bundled-skills/outlook-calendar/SKILL.md +51 -0
  260. package/src/config/bundled-skills/outlook-calendar/TOOLS.json +221 -0
  261. package/src/config/bundled-skills/outlook-calendar/calendar-client.ts +252 -0
  262. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.ts +53 -0
  263. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.ts +74 -0
  264. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.ts +18 -0
  265. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.ts +46 -0
  266. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.ts +36 -0
  267. package/src/config/bundled-skills/outlook-calendar/tools/shared.ts +17 -0
  268. package/src/config/bundled-skills/outlook-calendar/types.ts +120 -0
  269. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +47 -40
  270. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +16 -29
  271. package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +16 -18
  272. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +39 -47
  273. package/src/config/bundled-skills/settings/TOOLS.json +3 -3
  274. package/src/config/bundled-skills/slack/SKILL.md +1 -7
  275. package/src/config/bundled-tool-registry.ts +56 -4
  276. package/src/config/env-registry.ts +15 -8
  277. package/src/config/feature-flag-registry.json +29 -116
  278. package/src/config/loader.ts +4 -0
  279. package/src/config/schemas/platform.ts +8 -0
  280. package/src/config/schemas/security.ts +0 -6
  281. package/src/config/schemas/services.ts +8 -0
  282. package/src/config/schemas/timeouts.ts +1 -1
  283. package/src/config/skills.ts +18 -7
  284. package/src/context/token-estimator.ts +25 -18
  285. package/src/context/window-manager.ts +32 -9
  286. package/src/credential-execution/approval-bridge.ts +0 -1
  287. package/src/credential-execution/process-manager.ts +3 -1
  288. package/src/daemon/config-watcher.ts +51 -0
  289. package/src/daemon/context-overflow-reducer.ts +46 -2
  290. package/src/daemon/conversation-agent-loop-handlers.ts +123 -82
  291. package/src/daemon/conversation-agent-loop.ts +99 -63
  292. package/src/daemon/conversation-error.ts +31 -8
  293. package/src/daemon/conversation-lifecycle.ts +33 -0
  294. package/src/daemon/conversation-media-retry.ts +85 -7
  295. package/src/daemon/conversation-notifiers.ts +4 -1
  296. package/src/daemon/conversation-process.ts +1 -0
  297. package/src/daemon/conversation-runtime-assembly.ts +5 -0
  298. package/src/daemon/conversation-usage.ts +1 -0
  299. package/src/daemon/conversation.ts +41 -2
  300. package/src/daemon/daemon-control.ts +8 -2
  301. package/src/daemon/handlers/shared.ts +22 -12
  302. package/src/daemon/handlers/skills.ts +423 -201
  303. package/src/daemon/lifecycle.ts +52 -4
  304. package/src/daemon/main.ts +5 -1
  305. package/src/daemon/message-types/conversations.ts +5 -1
  306. package/src/daemon/message-types/messages.ts +3 -1
  307. package/src/daemon/message-types/skills.ts +97 -36
  308. package/src/daemon/providers-setup.ts +7 -0
  309. package/src/daemon/server.ts +35 -22
  310. package/src/daemon/tool-side-effects.ts +27 -5
  311. package/src/events/domain-events.ts +1 -2
  312. package/src/heartbeat/heartbeat-service.ts +1 -0
  313. package/src/hooks/cli.ts +2 -2
  314. package/src/hooks/runner.ts +15 -38
  315. package/src/inbound/platform-callback-registration.ts +14 -14
  316. package/src/memory/admin.ts +11 -45
  317. package/src/memory/conversation-bootstrap.ts +2 -0
  318. package/src/memory/conversation-crud.ts +242 -348
  319. package/src/memory/conversation-group-migration.ts +157 -0
  320. package/src/memory/conversation-queries.ts +4 -2
  321. package/src/memory/db-init.ts +39 -3
  322. package/src/memory/embed.ts +73 -0
  323. package/src/memory/embedding-backend.ts +8 -14
  324. package/src/memory/embedding-runtime-manager.ts +12 -114
  325. package/src/memory/fingerprint.ts +2 -2
  326. package/src/memory/graph/bootstrap.ts +512 -0
  327. package/src/memory/graph/capability-seed.ts +297 -0
  328. package/src/memory/graph/consolidation.ts +691 -0
  329. package/src/memory/graph/conversation-graph-memory.ts +630 -0
  330. package/src/memory/graph/decay.test.ts +208 -0
  331. package/src/memory/graph/decay.ts +195 -0
  332. package/src/memory/graph/extraction-job.ts +69 -0
  333. package/src/memory/graph/extraction.test.ts +936 -0
  334. package/src/memory/graph/extraction.ts +1254 -0
  335. package/src/memory/graph/graph-search.ts +266 -0
  336. package/src/memory/graph/image-ref-utils.ts +29 -0
  337. package/src/memory/graph/injection.test.ts +513 -0
  338. package/src/memory/graph/injection.ts +439 -0
  339. package/src/memory/graph/inspect.ts +534 -0
  340. package/src/memory/graph/narrative.ts +267 -0
  341. package/src/memory/graph/pattern-scan.ts +269 -0
  342. package/src/memory/graph/retriever.ts +1008 -0
  343. package/src/memory/graph/scoring.test.ts +548 -0
  344. package/src/memory/graph/scoring.ts +232 -0
  345. package/src/memory/graph/serendipity.ts +65 -0
  346. package/src/memory/graph/store.test.ts +1050 -0
  347. package/src/memory/graph/store.ts +699 -0
  348. package/src/memory/graph/tool-handlers.ts +426 -0
  349. package/src/memory/graph/tools.ts +141 -0
  350. package/src/memory/graph/triggers.test.ts +487 -0
  351. package/src/memory/graph/triggers.ts +223 -0
  352. package/src/memory/graph/types.ts +271 -0
  353. package/src/memory/group-crud.ts +191 -0
  354. package/src/memory/indexer.ts +37 -19
  355. package/src/memory/job-handlers/cleanup.ts +0 -53
  356. package/src/memory/job-handlers/conversation-starters.ts +91 -53
  357. package/src/memory/job-handlers/embedding.test.ts +3 -27
  358. package/src/memory/job-handlers/embedding.ts +5 -31
  359. package/src/memory/job-handlers/index-maintenance.ts +23 -11
  360. package/src/memory/job-handlers/summarization.ts +32 -17
  361. package/src/memory/job-utils.ts +1 -1
  362. package/src/memory/jobs-store.ts +50 -70
  363. package/src/memory/jobs-worker.ts +147 -112
  364. package/src/memory/llm-usage-store.ts +35 -2
  365. package/src/memory/message-content.ts +1 -0
  366. package/src/memory/migrations/201-oauth-providers-feature-flag.ts +11 -0
  367. package/src/memory/migrations/202-drop-callback-transport-column.ts +13 -0
  368. package/src/memory/migrations/202-memory-graph-tables.ts +130 -0
  369. package/src/memory/migrations/203-drop-memory-items-tables.ts +23 -0
  370. package/src/memory/migrations/204-rename-memory-graph-type-values.ts +46 -0
  371. package/src/memory/migrations/205-memory-graph-image-refs.ts +11 -0
  372. package/src/memory/migrations/index.ts +6 -0
  373. package/src/memory/migrations/registry.ts +8 -0
  374. package/src/memory/qdrant-client.ts +44 -17
  375. package/src/memory/qdrant-manager.ts +26 -5
  376. package/src/memory/schema/index.ts +1 -0
  377. package/src/memory/schema/memory-graph.ts +139 -0
  378. package/src/memory/schema/oauth.ts +1 -1
  379. package/src/memory/search/semantic.ts +47 -91
  380. package/src/memory/slack-thread-store.ts +17 -0
  381. package/src/memory/task-memory-cleanup.ts +28 -50
  382. package/src/messaging/providers/outlook/adapter.ts +200 -0
  383. package/src/messaging/providers/outlook/client.ts +610 -0
  384. package/src/messaging/providers/outlook/types.ts +201 -0
  385. package/src/notifications/adapters/macos.ts +1 -0
  386. package/src/notifications/adapters/slack.ts +1 -1
  387. package/src/notifications/copy-composer.ts +9 -0
  388. package/src/notifications/signal.ts +16 -0
  389. package/src/oauth/__tests__/identity-verifier.test.ts +1 -1
  390. package/src/oauth/connect-orchestrator.ts +10 -3
  391. package/src/oauth/oauth-store.ts +10 -11
  392. package/src/oauth/provider-serializer.ts +3 -0
  393. package/src/oauth/provider-visibility.ts +16 -0
  394. package/src/oauth/seed-providers.ts +50 -17
  395. package/src/permissions/checker.ts +62 -9
  396. package/src/permissions/defaults.ts +4 -4
  397. package/src/permissions/types.ts +2 -4
  398. package/src/permissions/workspace-policy.ts +1 -1
  399. package/src/playbooks/playbook-compiler.ts +19 -18
  400. package/src/playbooks/types.ts +4 -3
  401. package/src/prompts/system-prompt.ts +6 -93
  402. package/src/prompts/templates/UPDATES.md +6 -0
  403. package/src/providers/anthropic/client.ts +47 -19
  404. package/src/providers/gemini/client.ts +1 -1
  405. package/src/providers/openai/client.ts +1 -1
  406. package/src/providers/registry.ts +1 -1
  407. package/src/providers/retry.ts +19 -3
  408. package/src/runtime/actor-trust-resolver.ts +5 -1
  409. package/src/runtime/auth/__tests__/credential-service.test.ts +1 -27
  410. package/src/runtime/auth/__tests__/token-service.test.ts +1 -25
  411. package/src/runtime/auth/route-policy.ts +7 -4
  412. package/src/runtime/guardian-reply-router.ts +10 -2
  413. package/src/runtime/http-server.ts +23 -3
  414. package/src/runtime/middleware/auth.ts +20 -0
  415. package/src/runtime/routes/attachment-routes.test.ts +106 -0
  416. package/src/runtime/routes/attachment-routes.ts +106 -16
  417. package/src/runtime/routes/brain-graph-routes.ts +21 -22
  418. package/src/runtime/routes/btw-routes.ts +8 -0
  419. package/src/runtime/routes/conversation-management-routes.ts +2 -0
  420. package/src/runtime/routes/conversation-query-routes.ts +2 -58
  421. package/src/runtime/routes/conversation-starter-routes.ts +2 -2
  422. package/src/runtime/routes/debug-routes.ts +1 -1
  423. package/src/runtime/routes/global-search-routes.ts +21 -19
  424. package/src/runtime/routes/group-routes.ts +207 -0
  425. package/src/runtime/routes/guardian-action-routes.ts +21 -10
  426. package/src/runtime/routes/guardian-bootstrap-routes.ts +23 -19
  427. package/src/runtime/routes/inbound-message-handler.ts +19 -0
  428. package/src/runtime/routes/inbound-stages/background-dispatch.ts +43 -2
  429. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +292 -0
  430. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +207 -0
  431. package/src/runtime/routes/memory-item-routes.test.ts +2 -31
  432. package/src/runtime/routes/memory-item-routes.ts +385 -341
  433. package/src/runtime/routes/oauth-apps.ts +18 -1
  434. package/src/runtime/routes/oauth-providers.ts +13 -1
  435. package/src/runtime/routes/schedule-routes.ts +2 -0
  436. package/src/runtime/routes/settings-routes.ts +1 -0
  437. package/src/runtime/routes/skills-routes.ts +103 -37
  438. package/src/runtime/routes/usage-routes.ts +19 -2
  439. package/src/runtime/routes/work-items-routes.test.ts +2 -27
  440. package/src/runtime/routes/workspace-routes.test.ts +3 -27
  441. package/src/schedule/scheduler.ts +8 -1
  442. package/src/security/oauth2.ts +1 -1
  443. package/src/security/secret-allowlist.ts +4 -4
  444. package/src/security/secure-keys.ts +4 -8
  445. package/src/shared/provider-env-vars.ts +19 -0
  446. package/src/skills/catalog-cache.ts +5 -0
  447. package/src/skills/catalog-install.ts +15 -14
  448. package/src/skills/clawhub.ts +134 -154
  449. package/src/skills/install-meta.ts +208 -0
  450. package/src/skills/managed-store.ts +27 -16
  451. package/src/skills/skill-memory.ts +210 -96
  452. package/src/skills/skillssh-registry.ts +19 -17
  453. package/src/tasks/task-runner.ts +3 -1
  454. package/src/telemetry/usage-telemetry-reporter.test.ts +3 -5
  455. package/src/tools/browser/runtime-check.ts +3 -1
  456. package/src/tools/memory/register.ts +63 -46
  457. package/src/tools/permission-checker.ts +7 -19
  458. package/src/tools/shared/filesystem/image-read.ts +22 -85
  459. package/src/tools/skills/skill-script-runner.ts +1 -1
  460. package/src/tools/terminal/safe-env.ts +1 -0
  461. package/src/tools/tool-manifest.ts +3 -3
  462. package/src/util/browser.ts +25 -10
  463. package/src/util/bun-runtime.ts +172 -0
  464. package/src/util/device-id.ts +3 -65
  465. package/src/watcher/providers/outlook-calendar.ts +343 -0
  466. package/src/watcher/providers/outlook.ts +198 -0
  467. package/src/workspace/git-service.ts +27 -6
  468. package/src/workspace/migrations/025-remove-oauth-app-setup-skills.ts +76 -0
  469. package/src/workspace/migrations/026-backfill-install-meta.ts +325 -0
  470. package/src/workspace/migrations/027-remove-orphaned-optimized-images-cache.ts +42 -0
  471. package/src/workspace/migrations/registry.ts +6 -0
  472. package/src/__tests__/context-memory-e2e.test.ts +0 -415
  473. package/src/__tests__/journal-context.test.ts +0 -268
  474. package/src/__tests__/memory-context-benchmark.benchmark.test.ts +0 -297
  475. package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -459
  476. package/src/__tests__/memory-query-builder.test.ts +0 -59
  477. package/src/__tests__/memory-recall-quality.test.ts +0 -1046
  478. package/src/__tests__/memory-regressions.experimental.test.ts +0 -629
  479. package/src/__tests__/memory-regressions.test.ts +0 -3696
  480. package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -295
  481. package/src/daemon/conversation-memory.ts +0 -207
  482. package/src/memory/conversation-starters-cadence.ts +0 -74
  483. package/src/memory/items-extractor.ts +0 -860
  484. package/src/memory/job-handlers/batch-extraction.ts +0 -741
  485. package/src/memory/job-handlers/extraction.ts +0 -40
  486. package/src/memory/job-handlers/journal-carry-forward.test.ts +0 -383
  487. package/src/memory/job-handlers/journal-carry-forward.ts +0 -255
  488. package/src/memory/journal-memory.ts +0 -224
  489. package/src/memory/query-builder.ts +0 -47
  490. package/src/memory/query-expansion.ts +0 -83
  491. package/src/memory/retriever.test.ts +0 -1590
  492. package/src/memory/retriever.ts +0 -1323
  493. package/src/memory/search/formatting.test.ts +0 -140
  494. package/src/memory/search/formatting.ts +0 -262
  495. package/src/memory/search/mmr.ts +0 -136
  496. package/src/memory/search/ranking.ts +0 -15
  497. package/src/memory/search/staleness.ts +0 -40
  498. package/src/memory/search/tier-classifier.ts +0 -18
  499. package/src/memory/search/types.ts +0 -121
  500. package/src/prompts/journal-context.ts +0 -156
  501. package/src/tools/memory/definitions.ts +0 -69
  502. package/src/tools/memory/handlers.test.ts +0 -590
  503. package/src/tools/memory/handlers.ts +0 -434
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.5.13
6
+ version: 0.6.0
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
@@ -1855,47 +1855,6 @@ paths:
1855
1855
  required:
1856
1856
  - provider
1857
1857
  additionalProperties: false
1858
- /v1/config/permissions/skip:
1859
- get:
1860
- operationId: config_permissions_skip_get
1861
- summary: Get permission-skip flag
1862
- description: Return whether dangerouslySkipPermissions is enabled.
1863
- tags:
1864
- - config
1865
- responses:
1866
- "200":
1867
- description: Successful response
1868
- content:
1869
- application/json:
1870
- schema:
1871
- type: object
1872
- properties:
1873
- enabled:
1874
- type: boolean
1875
- required:
1876
- - enabled
1877
- additionalProperties: false
1878
- put:
1879
- operationId: config_permissions_skip_put
1880
- summary: Set permission-skip flag
1881
- description: Enable or disable dangerouslySkipPermissions.
1882
- tags:
1883
- - config
1884
- responses:
1885
- "200":
1886
- description: Successful response
1887
- requestBody:
1888
- required: true
1889
- content:
1890
- application/json:
1891
- schema:
1892
- type: object
1893
- properties:
1894
- enabled:
1895
- type: boolean
1896
- required:
1897
- - enabled
1898
- additionalProperties: false
1899
1858
  /v1/config/platform:
1900
1859
  get:
1901
1860
  operationId: config_platform_get
@@ -3172,6 +3131,115 @@ paths:
3172
3131
  description: Upper bound epoch ms
3173
3132
  type: number
3174
3133
  additionalProperties: false
3134
+ /v1/groups:
3135
+ get:
3136
+ operationId: groups_get
3137
+ summary: List groups
3138
+ description: Return all conversation groups.
3139
+ tags:
3140
+ - groups
3141
+ responses:
3142
+ "200":
3143
+ description: Successful response
3144
+ post:
3145
+ operationId: groups_post
3146
+ summary: Create group
3147
+ description: Create a new custom conversation group. Server assigns sort_position.
3148
+ tags:
3149
+ - groups
3150
+ responses:
3151
+ "200":
3152
+ description: Successful response
3153
+ requestBody:
3154
+ required: true
3155
+ content:
3156
+ application/json:
3157
+ schema:
3158
+ type: object
3159
+ properties:
3160
+ name:
3161
+ type: string
3162
+ description: Group name
3163
+ required:
3164
+ - name
3165
+ additionalProperties: false
3166
+ /v1/groups/{groupId}:
3167
+ delete:
3168
+ operationId: groups_by_groupId_delete
3169
+ summary: Delete group
3170
+ description: Delete a custom conversation group.
3171
+ tags:
3172
+ - groups
3173
+ responses:
3174
+ "200":
3175
+ description: Successful response
3176
+ parameters:
3177
+ - name: groupId
3178
+ in: path
3179
+ required: true
3180
+ schema:
3181
+ type: string
3182
+ patch:
3183
+ operationId: groups_by_groupId_patch
3184
+ summary: Update group
3185
+ description: Update a conversation group's name or sort position.
3186
+ tags:
3187
+ - groups
3188
+ responses:
3189
+ "200":
3190
+ description: Successful response
3191
+ parameters:
3192
+ - name: groupId
3193
+ in: path
3194
+ required: true
3195
+ schema:
3196
+ type: string
3197
+ requestBody:
3198
+ required: true
3199
+ content:
3200
+ application/json:
3201
+ schema:
3202
+ type: object
3203
+ properties:
3204
+ name:
3205
+ type: string
3206
+ sortPosition:
3207
+ type: number
3208
+ additionalProperties: false
3209
+ /v1/groups/reorder:
3210
+ post:
3211
+ operationId: groups_reorder_post
3212
+ summary: Reorder groups
3213
+ description: Batch-update sort positions for conversation groups.
3214
+ tags:
3215
+ - groups
3216
+ responses:
3217
+ "200":
3218
+ description: Successful response
3219
+ requestBody:
3220
+ required: true
3221
+ content:
3222
+ application/json:
3223
+ schema:
3224
+ type: object
3225
+ properties:
3226
+ updates:
3227
+ type: array
3228
+ items:
3229
+ type: object
3230
+ properties:
3231
+ groupId:
3232
+ type: string
3233
+ sortPosition:
3234
+ type: number
3235
+ required:
3236
+ - groupId
3237
+ - sortPosition
3238
+ additionalProperties: false
3239
+ description: Array of { groupId, sortPosition } objects
3240
+ required:
3241
+ - updates
3242
+ additionalProperties: false
3175
3243
  /v1/guardian-actions/decision:
3176
3244
  post:
3177
3245
  operationId: guardianactions_decision_post
@@ -4112,7 +4180,7 @@ paths:
4112
4180
  post:
4113
4181
  operationId: memoryitems_post
4114
4182
  summary: Create a memory item
4115
- description: Create a new memory item and enqueue embedding.
4183
+ description: Create a new memory graph node and enqueue embedding.
4116
4184
  tags:
4117
4185
  - memory
4118
4186
  responses:
@@ -4140,10 +4208,10 @@ paths:
4140
4208
  properties:
4141
4209
  kind:
4142
4210
  type: string
4143
- description: Memory kind (identity, preference, project, etc.)
4211
+ description: Memory type (episodic, semantic, procedural, etc.)
4144
4212
  subject:
4145
4213
  type: string
4146
- description: Subject line
4214
+ description: Subject line (first line of content)
4147
4215
  statement:
4148
4216
  type: string
4149
4217
  description: Statement content
@@ -4152,14 +4220,13 @@ paths:
4152
4220
  description: Importance score (default 0.8)
4153
4221
  required:
4154
4222
  - kind
4155
- - subject
4156
4223
  - statement
4157
4224
  additionalProperties: false
4158
4225
  /v1/memory-items/{id}:
4159
4226
  delete:
4160
4227
  operationId: memoryitems_by_id_delete
4161
4228
  summary: Delete a memory item
4162
- description: Delete a memory item and its embeddings.
4229
+ description: Delete a memory graph node and its embeddings.
4163
4230
  tags:
4164
4231
  - memory
4165
4232
  responses:
@@ -4184,7 +4251,7 @@ paths:
4184
4251
  get:
4185
4252
  operationId: memoryitems_by_id_get
4186
4253
  summary: Get a memory item
4187
- description: Return a single memory item by ID with supersession metadata.
4254
+ description: Return a single memory item by ID with graph metadata.
4188
4255
  tags:
4189
4256
  - memory
4190
4257
  responses:
@@ -4199,7 +4266,7 @@ paths:
4199
4266
  type: object
4200
4267
  properties: {}
4201
4268
  additionalProperties: {}
4202
- description: Memory item with scopeLabel and supersession info
4269
+ description: Memory item with scopeLabel and graph metadata
4203
4270
  required:
4204
4271
  - item
4205
4272
  additionalProperties: false
@@ -4212,7 +4279,7 @@ paths:
4212
4279
  patch:
4213
4280
  operationId: memoryitems_by_id_patch
4214
4281
  summary: Update a memory item
4215
- description: Partially update fields on an existing memory item.
4282
+ description: Partially update fields on an existing memory graph node.
4216
4283
  tags:
4217
4284
  - memory
4218
4285
  responses:
@@ -4254,18 +4321,6 @@ paths:
4254
4321
  type: string
4255
4322
  importance:
4256
4323
  type: number
4257
- sourceType:
4258
- type: string
4259
- verificationState:
4260
- type: string
4261
- required:
4262
- - subject
4263
- - statement
4264
- - kind
4265
- - status
4266
- - importance
4267
- - sourceType
4268
- - verificationState
4269
4324
  additionalProperties: false
4270
4325
  /v1/messages:
4271
4326
  get:
@@ -5642,68 +5697,165 @@ paths:
5642
5697
  skills:
5643
5698
  type: array
5644
5699
  items:
5645
- type: object
5646
- properties:
5647
- id:
5648
- type: string
5649
- name:
5650
- type: string
5651
- description:
5652
- type: string
5653
- emoji:
5654
- type: string
5655
- homepage:
5656
- type: string
5657
- source:
5658
- type: string
5659
- enum:
5660
- - bundled
5661
- - managed
5662
- - workspace
5663
- - clawhub
5664
- - extra
5665
- - catalog
5666
- state:
5667
- type: string
5668
- enum:
5669
- - enabled
5670
- - disabled
5671
- installStatus:
5672
- type: string
5673
- enum:
5674
- - bundled
5675
- - installed
5676
- - available
5677
- updateAvailable:
5678
- type: boolean
5679
- provenance:
5680
- type: object
5700
+ oneOf:
5701
+ - type: object
5681
5702
  properties:
5703
+ id:
5704
+ type: string
5705
+ name:
5706
+ type: string
5707
+ description:
5708
+ type: string
5709
+ emoji:
5710
+ type: string
5682
5711
  kind:
5683
5712
  type: string
5684
5713
  enum:
5685
- - first-party
5686
- - third-party
5687
- - local
5688
- provider:
5714
+ - bundled
5715
+ - installed
5716
+ - catalog
5717
+ status:
5689
5718
  type: string
5690
- originId:
5719
+ enum:
5720
+ - enabled
5721
+ - disabled
5722
+ - available
5723
+ origin:
5691
5724
  type: string
5692
- sourceUrl:
5725
+ const: vellum
5726
+ required:
5727
+ - id
5728
+ - name
5729
+ - description
5730
+ - kind
5731
+ - status
5732
+ - origin
5733
+ additionalProperties: false
5734
+ - type: object
5735
+ properties:
5736
+ id:
5693
5737
  type: string
5738
+ name:
5739
+ type: string
5740
+ description:
5741
+ type: string
5742
+ emoji:
5743
+ type: string
5744
+ kind:
5745
+ type: string
5746
+ enum:
5747
+ - bundled
5748
+ - installed
5749
+ - catalog
5750
+ status:
5751
+ type: string
5752
+ enum:
5753
+ - enabled
5754
+ - disabled
5755
+ - available
5756
+ origin:
5757
+ type: string
5758
+ const: clawhub
5759
+ slug:
5760
+ type: string
5761
+ author:
5762
+ type: string
5763
+ stars:
5764
+ type: number
5765
+ installs:
5766
+ type: number
5767
+ reports:
5768
+ type: number
5769
+ publishedAt:
5770
+ type: string
5771
+ required:
5772
+ - id
5773
+ - name
5774
+ - description
5775
+ - kind
5776
+ - status
5777
+ - origin
5778
+ - slug
5779
+ - author
5780
+ - stars
5781
+ - installs
5782
+ - reports
5783
+ additionalProperties: false
5784
+ - type: object
5785
+ properties:
5786
+ id:
5787
+ type: string
5788
+ name:
5789
+ type: string
5790
+ description:
5791
+ type: string
5792
+ emoji:
5793
+ type: string
5794
+ kind:
5795
+ type: string
5796
+ enum:
5797
+ - bundled
5798
+ - installed
5799
+ - catalog
5800
+ status:
5801
+ type: string
5802
+ enum:
5803
+ - enabled
5804
+ - disabled
5805
+ - available
5806
+ origin:
5807
+ type: string
5808
+ const: skillssh
5809
+ slug:
5810
+ type: string
5811
+ sourceRepo:
5812
+ type: string
5813
+ installs:
5814
+ type: number
5815
+ required:
5816
+ - id
5817
+ - name
5818
+ - description
5819
+ - kind
5820
+ - status
5821
+ - origin
5822
+ - slug
5823
+ - sourceRepo
5824
+ - installs
5825
+ additionalProperties: false
5826
+ - type: object
5827
+ properties:
5828
+ id:
5829
+ type: string
5830
+ name:
5831
+ type: string
5832
+ description:
5833
+ type: string
5834
+ emoji:
5835
+ type: string
5836
+ kind:
5837
+ type: string
5838
+ enum:
5839
+ - bundled
5840
+ - installed
5841
+ - catalog
5842
+ status:
5843
+ type: string
5844
+ enum:
5845
+ - enabled
5846
+ - disabled
5847
+ - available
5848
+ origin:
5849
+ type: string
5850
+ const: custom
5694
5851
  required:
5852
+ - id
5853
+ - name
5854
+ - description
5695
5855
  - kind
5856
+ - status
5857
+ - origin
5696
5858
  additionalProperties: false
5697
- required:
5698
- - id
5699
- - name
5700
- - description
5701
- - source
5702
- - state
5703
- - installStatus
5704
- - updateAvailable
5705
- - provenance
5706
- additionalProperties: false
5707
5859
  description: Skill objects
5708
5860
  required:
5709
5861
  - skills
@@ -5776,12 +5928,235 @@ paths:
5776
5928
  get:
5777
5929
  operationId: skills_by_id_get
5778
5930
  summary: Get skill
5779
- description: Return a single skill by ID.
5931
+ description: Return a single skill by ID with enriched detail fields.
5780
5932
  tags:
5781
5933
  - skills
5782
5934
  responses:
5783
5935
  "200":
5784
5936
  description: Successful response
5937
+ content:
5938
+ application/json:
5939
+ schema:
5940
+ type: object
5941
+ properties:
5942
+ skill:
5943
+ oneOf:
5944
+ - type: object
5945
+ properties:
5946
+ id:
5947
+ type: string
5948
+ name:
5949
+ type: string
5950
+ description:
5951
+ type: string
5952
+ emoji:
5953
+ type: string
5954
+ kind:
5955
+ type: string
5956
+ enum:
5957
+ - bundled
5958
+ - installed
5959
+ - catalog
5960
+ status:
5961
+ type: string
5962
+ enum:
5963
+ - enabled
5964
+ - disabled
5965
+ - available
5966
+ origin:
5967
+ type: string
5968
+ const: vellum
5969
+ required:
5970
+ - id
5971
+ - name
5972
+ - description
5973
+ - kind
5974
+ - status
5975
+ - origin
5976
+ additionalProperties: false
5977
+ - type: object
5978
+ properties:
5979
+ id:
5980
+ type: string
5981
+ name:
5982
+ type: string
5983
+ description:
5984
+ type: string
5985
+ emoji:
5986
+ type: string
5987
+ kind:
5988
+ type: string
5989
+ enum:
5990
+ - bundled
5991
+ - installed
5992
+ - catalog
5993
+ status:
5994
+ type: string
5995
+ enum:
5996
+ - enabled
5997
+ - disabled
5998
+ - available
5999
+ origin:
6000
+ type: string
6001
+ const: clawhub
6002
+ slug:
6003
+ type: string
6004
+ author:
6005
+ type: string
6006
+ stars:
6007
+ type: number
6008
+ installs:
6009
+ type: number
6010
+ reports:
6011
+ type: number
6012
+ publishedAt:
6013
+ type: string
6014
+ owner:
6015
+ anyOf:
6016
+ - type: object
6017
+ properties:
6018
+ handle:
6019
+ type: string
6020
+ displayName:
6021
+ type: string
6022
+ image:
6023
+ type: string
6024
+ required:
6025
+ - handle
6026
+ - displayName
6027
+ additionalProperties: false
6028
+ - type: "null"
6029
+ stats:
6030
+ anyOf:
6031
+ - type: object
6032
+ properties:
6033
+ stars:
6034
+ type: number
6035
+ installs:
6036
+ type: number
6037
+ downloads:
6038
+ type: number
6039
+ versions:
6040
+ type: number
6041
+ required:
6042
+ - stars
6043
+ - installs
6044
+ - downloads
6045
+ - versions
6046
+ additionalProperties: false
6047
+ - type: "null"
6048
+ latestVersion:
6049
+ anyOf:
6050
+ - type: object
6051
+ properties:
6052
+ version:
6053
+ type: string
6054
+ changelog:
6055
+ type: string
6056
+ required:
6057
+ - version
6058
+ additionalProperties: false
6059
+ - type: "null"
6060
+ createdAt:
6061
+ anyOf:
6062
+ - type: number
6063
+ - type: "null"
6064
+ updatedAt:
6065
+ anyOf:
6066
+ - type: number
6067
+ - type: "null"
6068
+ required:
6069
+ - id
6070
+ - name
6071
+ - description
6072
+ - kind
6073
+ - status
6074
+ - origin
6075
+ - slug
6076
+ - author
6077
+ - stars
6078
+ - installs
6079
+ - reports
6080
+ additionalProperties: false
6081
+ - type: object
6082
+ properties:
6083
+ id:
6084
+ type: string
6085
+ name:
6086
+ type: string
6087
+ description:
6088
+ type: string
6089
+ emoji:
6090
+ type: string
6091
+ kind:
6092
+ type: string
6093
+ enum:
6094
+ - bundled
6095
+ - installed
6096
+ - catalog
6097
+ status:
6098
+ type: string
6099
+ enum:
6100
+ - enabled
6101
+ - disabled
6102
+ - available
6103
+ origin:
6104
+ type: string
6105
+ const: skillssh
6106
+ slug:
6107
+ type: string
6108
+ sourceRepo:
6109
+ type: string
6110
+ installs:
6111
+ type: number
6112
+ required:
6113
+ - id
6114
+ - name
6115
+ - description
6116
+ - kind
6117
+ - status
6118
+ - origin
6119
+ - slug
6120
+ - sourceRepo
6121
+ - installs
6122
+ additionalProperties: false
6123
+ - type: object
6124
+ properties:
6125
+ id:
6126
+ type: string
6127
+ name:
6128
+ type: string
6129
+ description:
6130
+ type: string
6131
+ emoji:
6132
+ type: string
6133
+ kind:
6134
+ type: string
6135
+ enum:
6136
+ - bundled
6137
+ - installed
6138
+ - catalog
6139
+ status:
6140
+ type: string
6141
+ enum:
6142
+ - enabled
6143
+ - disabled
6144
+ - available
6145
+ origin:
6146
+ type: string
6147
+ const: custom
6148
+ required:
6149
+ - id
6150
+ - name
6151
+ - description
6152
+ - kind
6153
+ - status
6154
+ - origin
6155
+ additionalProperties: false
6156
+ description: Skill detail object
6157
+ required:
6158
+ - skill
6159
+ additionalProperties: false
5785
6160
  parameters:
5786
6161
  - name: id
5787
6162
  in: path
@@ -6032,6 +6407,12 @@ paths:
6032
6407
  description: Skill spec
6033
6408
  version:
6034
6409
  type: string
6410
+ origin:
6411
+ description: Which registry to install from. When omitted, the install flow auto-detects based on slug format.
6412
+ type: string
6413
+ enum:
6414
+ - clawhub
6415
+ - skillssh
6035
6416
  required:
6036
6417
  - slug
6037
6418
  - url
@@ -6053,13 +6434,171 @@ paths:
6053
6434
  schema:
6054
6435
  type: object
6055
6436
  properties:
6056
- data:
6057
- type: object
6058
- properties: {}
6059
- additionalProperties: {}
6060
- description: Search results
6437
+ skills:
6438
+ type: array
6439
+ items:
6440
+ oneOf:
6441
+ - type: object
6442
+ properties:
6443
+ id:
6444
+ type: string
6445
+ name:
6446
+ type: string
6447
+ description:
6448
+ type: string
6449
+ emoji:
6450
+ type: string
6451
+ kind:
6452
+ type: string
6453
+ enum:
6454
+ - bundled
6455
+ - installed
6456
+ - catalog
6457
+ status:
6458
+ type: string
6459
+ enum:
6460
+ - enabled
6461
+ - disabled
6462
+ - available
6463
+ origin:
6464
+ type: string
6465
+ const: vellum
6466
+ required:
6467
+ - id
6468
+ - name
6469
+ - description
6470
+ - kind
6471
+ - status
6472
+ - origin
6473
+ additionalProperties: false
6474
+ - type: object
6475
+ properties:
6476
+ id:
6477
+ type: string
6478
+ name:
6479
+ type: string
6480
+ description:
6481
+ type: string
6482
+ emoji:
6483
+ type: string
6484
+ kind:
6485
+ type: string
6486
+ enum:
6487
+ - bundled
6488
+ - installed
6489
+ - catalog
6490
+ status:
6491
+ type: string
6492
+ enum:
6493
+ - enabled
6494
+ - disabled
6495
+ - available
6496
+ origin:
6497
+ type: string
6498
+ const: clawhub
6499
+ slug:
6500
+ type: string
6501
+ author:
6502
+ type: string
6503
+ stars:
6504
+ type: number
6505
+ installs:
6506
+ type: number
6507
+ reports:
6508
+ type: number
6509
+ publishedAt:
6510
+ type: string
6511
+ required:
6512
+ - id
6513
+ - name
6514
+ - description
6515
+ - kind
6516
+ - status
6517
+ - origin
6518
+ - slug
6519
+ - author
6520
+ - stars
6521
+ - installs
6522
+ - reports
6523
+ additionalProperties: false
6524
+ - type: object
6525
+ properties:
6526
+ id:
6527
+ type: string
6528
+ name:
6529
+ type: string
6530
+ description:
6531
+ type: string
6532
+ emoji:
6533
+ type: string
6534
+ kind:
6535
+ type: string
6536
+ enum:
6537
+ - bundled
6538
+ - installed
6539
+ - catalog
6540
+ status:
6541
+ type: string
6542
+ enum:
6543
+ - enabled
6544
+ - disabled
6545
+ - available
6546
+ origin:
6547
+ type: string
6548
+ const: skillssh
6549
+ slug:
6550
+ type: string
6551
+ sourceRepo:
6552
+ type: string
6553
+ installs:
6554
+ type: number
6555
+ required:
6556
+ - id
6557
+ - name
6558
+ - description
6559
+ - kind
6560
+ - status
6561
+ - origin
6562
+ - slug
6563
+ - sourceRepo
6564
+ - installs
6565
+ additionalProperties: false
6566
+ - type: object
6567
+ properties:
6568
+ id:
6569
+ type: string
6570
+ name:
6571
+ type: string
6572
+ description:
6573
+ type: string
6574
+ emoji:
6575
+ type: string
6576
+ kind:
6577
+ type: string
6578
+ enum:
6579
+ - bundled
6580
+ - installed
6581
+ - catalog
6582
+ status:
6583
+ type: string
6584
+ enum:
6585
+ - enabled
6586
+ - disabled
6587
+ - available
6588
+ origin:
6589
+ type: string
6590
+ const: custom
6591
+ required:
6592
+ - id
6593
+ - name
6594
+ - description
6595
+ - kind
6596
+ - status
6597
+ - origin
6598
+ additionalProperties: false
6599
+ description: Skill objects matching the search query
6061
6600
  required:
6062
- - data
6601
+ - skills
6063
6602
  additionalProperties: false
6064
6603
  parameters:
6065
6604
  - name: q
@@ -6759,7 +7298,7 @@ paths:
6759
7298
  buckets:
6760
7299
  type: array
6761
7300
  items: {}
6762
- description: Daily usage bucket objects
7301
+ description: Usage bucket objects
6763
7302
  required:
6764
7303
  - buckets
6765
7304
  additionalProperties: false
@@ -6776,6 +7315,15 @@ paths:
6776
7315
  schema:
6777
7316
  type: integer
6778
7317
  description: End epoch millis (required)
7318
+ - name: granularity
7319
+ in: query
7320
+ required: false
7321
+ schema:
7322
+ type: string
7323
+ enum:
7324
+ - daily
7325
+ - hourly
7326
+ description: 'Bucket granularity: "daily" (default) or "hourly"'
6779
7327
  /v1/usage/totals:
6780
7328
  get:
6781
7329
  operationId: usage_totals_get