@vellumai/assistant 0.5.16 → 0.6.1

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 (592) hide show
  1. package/AGENTS.md +4 -0
  2. package/ARCHITECTURE.md +69 -16
  3. package/Dockerfile +2 -5
  4. package/bun.lock +6 -2
  5. package/docker-entrypoint.sh +32 -1
  6. package/docs/architecture/integrations.md +1 -1
  7. package/docs/architecture/memory.md +21 -24
  8. package/knip.json +2 -1
  9. package/openapi.yaml +1198 -83
  10. package/package.json +5 -1
  11. package/src/__tests__/actor-token-service.test.ts +68 -0
  12. package/src/__tests__/agent-loop.test.ts +0 -32
  13. package/src/__tests__/always-loaded-tools-guard.test.ts +2 -2
  14. package/src/__tests__/anthropic-provider.test.ts +217 -98
  15. package/src/__tests__/app-compiler.test.ts +120 -0
  16. package/src/__tests__/app-dir-path-guard.test.ts +1 -0
  17. package/src/__tests__/app-executors.test.ts +47 -1
  18. package/src/__tests__/app-source-watcher.test.ts +159 -0
  19. package/src/__tests__/assistant-feature-flags-integration.test.ts +2 -2
  20. package/src/__tests__/call-conversation-messages.test.ts +2 -6
  21. package/src/__tests__/call-domain.test.ts +2 -6
  22. package/src/__tests__/call-pointer-messages.test.ts +2 -14
  23. package/src/__tests__/call-recovery.test.ts +2 -6
  24. package/src/__tests__/call-routes-http.test.ts +2 -6
  25. package/src/__tests__/call-store.test.ts +2 -6
  26. package/src/__tests__/cancel-resolves-conversation-key.test.ts +2 -6
  27. package/src/__tests__/canonical-guardian-store.test.ts +2 -6
  28. package/src/__tests__/channel-delivery-store.test.ts +2 -6
  29. package/src/__tests__/channel-retry-sweep.test.ts +2 -6
  30. package/src/__tests__/checker.test.ts +63 -9
  31. package/src/__tests__/clawhub.test.ts +54 -24
  32. package/src/__tests__/cli-command-risk-guard.test.ts +14 -0
  33. package/src/__tests__/config-schema.test.ts +6 -1
  34. package/src/__tests__/config-set-platform-guard.test.ts +302 -0
  35. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +2 -6
  36. package/src/__tests__/contacts-tools.test.ts +31 -0
  37. package/src/__tests__/context-overflow-reducer.test.ts +86 -0
  38. package/src/__tests__/context-token-estimator.test.ts +175 -10
  39. package/src/__tests__/conversation-agent-loop-overflow.test.ts +13 -6
  40. package/src/__tests__/conversation-agent-loop.test.ts +13 -51
  41. package/src/__tests__/conversation-attachments.test.ts +2 -6
  42. package/src/__tests__/conversation-attention-store.test.ts +2 -6
  43. package/src/__tests__/conversation-clear-safety.test.ts +2 -6
  44. package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +4 -10
  45. package/src/__tests__/conversation-disk-view-integration.test.ts +2 -6
  46. package/src/__tests__/conversation-disk-view.test.ts +2 -6
  47. package/src/__tests__/conversation-error.test.ts +33 -2
  48. package/src/__tests__/conversation-fork-crud.test.ts +2 -6
  49. package/src/__tests__/conversation-history-web-search.test.ts +6 -1
  50. package/src/__tests__/conversation-load-history-repair.test.ts +5 -1
  51. package/src/__tests__/conversation-media-retry.test.ts +91 -0
  52. package/src/__tests__/conversation-runtime-assembly.test.ts +653 -832
  53. package/src/__tests__/conversation-runtime-workspace.test.ts +1 -93
  54. package/src/__tests__/conversation-starter-routes.test.ts +20 -11
  55. package/src/__tests__/conversation-store.test.ts +2 -6
  56. package/src/__tests__/conversation-tool-setup-app-refresh.test.ts +17 -4
  57. package/src/__tests__/conversation-usage.test.ts +2 -6
  58. package/src/__tests__/conversation-wipe.test.ts +13 -414
  59. package/src/__tests__/conversation-workspace-cache-state.test.ts +6 -12
  60. package/src/__tests__/conversation-workspace-injection.test.ts +25 -26
  61. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +1 -1
  62. package/src/__tests__/copy-composer-tc-templates.test.ts +335 -0
  63. package/src/__tests__/credential-execution-feature-gates.test.ts +3 -3
  64. package/src/__tests__/credential-execution-shell-lockdown.test.ts +2 -2
  65. package/src/__tests__/credential-security-e2e.test.ts +2 -0
  66. package/src/__tests__/date-context.test.ts +76 -210
  67. package/src/__tests__/db-schedule-syntax-migration.test.ts +16 -1
  68. package/src/__tests__/file-list-tool.test.ts +219 -0
  69. package/src/__tests__/first-greeting.test.ts +1 -1
  70. package/src/__tests__/followup-tools.test.ts +2 -6
  71. package/src/__tests__/graph-extraction-event-date.test.ts +186 -0
  72. package/src/__tests__/guardian-action-conversation-turn.test.ts +2 -6
  73. package/src/__tests__/guardian-action-followup-executor.test.ts +2 -6
  74. package/src/__tests__/guardian-action-followup-store.test.ts +2 -6
  75. package/src/__tests__/guardian-action-grant-mint-consume.test.ts +2 -6
  76. package/src/__tests__/guardian-action-late-reply.test.ts +2 -6
  77. package/src/__tests__/guardian-action-store.test.ts +2 -6
  78. package/src/__tests__/guardian-binding-drift-heal.test.ts +2 -6
  79. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +8 -8
  80. package/src/__tests__/guardian-dispatch.test.ts +2 -6
  81. package/src/__tests__/guardian-grant-minting.test.ts +2 -14
  82. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +2 -6
  83. package/src/__tests__/guardian-routing-invariants.test.ts +192 -6
  84. package/src/__tests__/guardian-routing-state.test.ts +2 -6
  85. package/src/__tests__/guardian-verification-voice-binding.test.ts +2 -6
  86. package/src/__tests__/heartbeat-service.test.ts +180 -3
  87. package/src/__tests__/identity-routes.test.ts +328 -0
  88. package/src/__tests__/inbound-invite-redemption.test.ts +2 -6
  89. package/src/__tests__/injection-block.test.ts +178 -0
  90. package/src/__tests__/install-meta.test.ts +506 -0
  91. package/src/__tests__/install-skill-routing.test.ts +293 -0
  92. package/src/__tests__/invite-redemption-service.test.ts +2 -6
  93. package/src/__tests__/invite-routes-http.test.ts +2 -6
  94. package/src/__tests__/jobs-store-qdrant-breaker.test.ts +17 -28
  95. package/src/__tests__/list-messages-attachments.test.ts +2 -6
  96. package/src/__tests__/list-messages-tool-merge.test.ts +300 -0
  97. package/src/__tests__/llm-context-normalization.test.ts +18 -18
  98. package/src/__tests__/llm-context-route-provider.test.ts +103 -6
  99. package/src/__tests__/llm-request-log-turn-query.test.ts +164 -6
  100. package/src/__tests__/llm-usage-store.test.ts +2 -6
  101. package/src/__tests__/log-export-workspace.test.ts +74 -111
  102. package/src/__tests__/managed-store.test.ts +38 -11
  103. package/src/__tests__/mcp-abort-signal.test.ts +5 -0
  104. package/src/__tests__/mcp-client-auth.test.ts +5 -0
  105. package/src/__tests__/memory-jobs-worker-backoff.test.ts +2 -8
  106. package/src/__tests__/memory-recall-log-store.test.ts +134 -6
  107. package/src/__tests__/memory-upsert-concurrency.test.ts +4 -112
  108. package/src/__tests__/migration-export-streaming.test.ts +304 -0
  109. package/src/__tests__/migration-import-commit-http.test.ts +11 -10
  110. package/src/__tests__/mock-fetch.ts +87 -0
  111. package/src/__tests__/non-member-access-request.test.ts +2 -6
  112. package/src/__tests__/notification-decision-recipient-context.test.ts +282 -0
  113. package/src/__tests__/notification-guardian-path.test.ts +2 -6
  114. package/src/__tests__/oauth-cli.test.ts +364 -2
  115. package/src/__tests__/oauth2-gateway-transport.test.ts +18 -3
  116. package/src/__tests__/onboarding-template-contract.test.ts +62 -14
  117. package/src/__tests__/outlook-attachments.test.ts +301 -0
  118. package/src/__tests__/outlook-automation-tools.test.ts +425 -0
  119. package/src/__tests__/outlook-categories.test.ts +212 -0
  120. package/src/__tests__/outlook-client-automation.test.ts +246 -0
  121. package/src/__tests__/outlook-compose-tools.test.ts +325 -0
  122. package/src/__tests__/outlook-declutter-tools.test.ts +585 -0
  123. package/src/__tests__/outlook-email-watcher.test.ts +322 -0
  124. package/src/__tests__/outlook-follow-up.test.ts +196 -0
  125. package/src/__tests__/outlook-messaging-provider.test.ts +498 -3
  126. package/src/__tests__/outlook-trash.test.ts +77 -0
  127. package/src/__tests__/outlook-unsubscribe.test.ts +250 -0
  128. package/src/__tests__/parser.test.ts +32 -0
  129. package/src/__tests__/permission-checker-host-gate.test.ts +452 -0
  130. package/src/__tests__/permission-controls-v2-flag.test.ts +55 -0
  131. package/src/__tests__/permission-mode-sse.test.ts +418 -0
  132. package/src/__tests__/permission-mode-store.test.ts +277 -0
  133. package/src/__tests__/permission-mode.test.ts +101 -0
  134. package/src/__tests__/platform-bash-auto-approve.test.ts +359 -0
  135. package/src/__tests__/platform-callback-registration.test.ts +4 -4
  136. package/src/__tests__/playbook-execution.test.ts +76 -80
  137. package/src/__tests__/playbook-tools.test.ts +5 -7
  138. package/src/__tests__/profiler-routes.test.ts +502 -0
  139. package/src/__tests__/profiler-run-store.test.ts +441 -0
  140. package/src/__tests__/provider-error-scenarios.test.ts +21 -0
  141. package/src/__tests__/proxy-approval-callback.test.ts +4 -75
  142. package/src/__tests__/rebuild-index-graph-nodes.test.ts +273 -0
  143. package/src/__tests__/registry.test.ts +3 -3
  144. package/src/__tests__/require-fresh-approval.test.ts +64 -2
  145. package/src/__tests__/runtime-events-sse-parity.test.ts +2 -6
  146. package/src/__tests__/runtime-events-sse.test.ts +2 -6
  147. package/src/__tests__/sandbox-host-parity.test.ts +5 -4
  148. package/src/__tests__/schedule-store.test.ts +2 -6
  149. package/src/__tests__/schedule-tools.test.ts +2 -6
  150. package/src/__tests__/scheduler-recurrence.test.ts +1 -5
  151. package/src/__tests__/scheduler-reuse-conversation.test.ts +368 -0
  152. package/src/__tests__/scoped-approval-grants.test.ts +2 -6
  153. package/src/__tests__/scoped-grant-security-matrix.test.ts +2 -6
  154. package/src/__tests__/scrub-corrupted-image-attachments.test.ts +278 -0
  155. package/src/__tests__/search-skills-unified.test.ts +422 -0
  156. package/src/__tests__/secret-onetime-send.test.ts +2 -0
  157. package/src/__tests__/send-endpoint-busy.test.ts +44 -9
  158. package/src/__tests__/sequence-store.test.ts +2 -6
  159. package/src/__tests__/server-history-render.test.ts +2 -6
  160. package/src/__tests__/set-permission-mode.test.ts +274 -0
  161. package/src/__tests__/skill-feature-flags-integration.test.ts +38 -31
  162. package/src/__tests__/skill-feature-flags.test.ts +6 -6
  163. package/src/__tests__/skill-load-feature-flag.test.ts +23 -11
  164. package/src/__tests__/skill-memory.test.ts +2 -741
  165. package/src/__tests__/skills-uninstall.test.ts +2 -2
  166. package/src/__tests__/skills.test.ts +1 -1
  167. package/src/__tests__/slack-inbound-verification.test.ts +2 -6
  168. package/src/__tests__/strip-memory-injections.test.ts +187 -0
  169. package/src/__tests__/subagent-detail.test.ts +84 -0
  170. package/src/__tests__/subagent-disposal.test.ts +308 -0
  171. package/src/__tests__/subagent-manager-notify.test.ts +19 -10
  172. package/src/__tests__/subagent-notify-parent.test.ts +390 -0
  173. package/src/__tests__/subagent-role-registry.test.ts +108 -0
  174. package/src/__tests__/subagent-tool-filtering.test.ts +71 -0
  175. package/src/__tests__/subagent-tools.test.ts +464 -4
  176. package/src/__tests__/system-prompt-ask-mode.test.ts +139 -0
  177. package/src/__tests__/task-compiler.test.ts +2 -6
  178. package/src/__tests__/task-management-tools.test.ts +2 -6
  179. package/src/__tests__/task-memory-cleanup.test.ts +185 -241
  180. package/src/__tests__/task-runner.test.ts +2 -6
  181. package/src/__tests__/task-scheduler.test.ts +2 -6
  182. package/src/__tests__/terminal-tools.test.ts +17 -27
  183. package/src/__tests__/test-preload.ts +7 -0
  184. package/src/__tests__/tool-approval-handler.test.ts +2 -6
  185. package/src/__tests__/tool-executor.test.ts +4 -26
  186. package/src/__tests__/tool-grant-request-escalation.test.ts +2 -6
  187. package/src/__tests__/tool-side-effects-slack-dm.test.ts +277 -0
  188. package/src/__tests__/top-level-renderer.test.ts +10 -13
  189. package/src/__tests__/trust-store.test.ts +1 -1
  190. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +2 -6
  191. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +118 -8
  192. package/src/__tests__/trusted-contact-multichannel.test.ts +2 -6
  193. package/src/__tests__/trusted-contact-verification.test.ts +2 -6
  194. package/src/__tests__/turn-boundary-resolution.test.ts +2 -6
  195. package/src/__tests__/usage-cache-backfill-migration.test.ts +1 -6
  196. package/src/__tests__/usage-routes.test.ts +2 -6
  197. package/src/__tests__/verification-control-plane-policy.test.ts +0 -2
  198. package/src/__tests__/voice-invite-redemption.test.ts +2 -6
  199. package/src/__tests__/voice-scoped-grant-consumer.test.ts +2 -6
  200. package/src/__tests__/voice-session-bridge.test.ts +2 -6
  201. package/src/__tests__/volume-security-guard.test.ts +2 -0
  202. package/src/__tests__/workspace-lifecycle.test.ts +29 -1
  203. package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +2 -6
  204. package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +2 -6
  205. package/src/__tests__/workspace-migration-026-backfill-install-meta.test.ts +558 -0
  206. package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +387 -0
  207. package/src/__tests__/workspace-policy.test.ts +1 -1
  208. package/src/agent/attachments.ts +7 -2
  209. package/src/agent/image-optimize.ts +165 -0
  210. package/src/agent/loop.ts +7 -15
  211. package/src/approvals/guardian-request-resolvers.ts +24 -0
  212. package/src/avatar/traits-png-sync.ts +3 -3
  213. package/src/bundler/app-compiler.ts +179 -2
  214. package/src/bundler/package-resolver.ts +3 -5
  215. package/src/cli/__tests__/notifications.test.ts +1 -2
  216. package/src/cli/__tests__/run-assistant-command.ts +29 -0
  217. package/src/cli/commands/__tests__/email-download.test.ts +245 -0
  218. package/src/cli/commands/__tests__/email-list.test.ts +192 -0
  219. package/src/cli/commands/__tests__/email-register.test.ts +186 -0
  220. package/src/cli/commands/__tests__/email-send.test.ts +291 -0
  221. package/src/cli/commands/__tests__/email-status.test.ts +181 -0
  222. package/src/cli/commands/__tests__/email-unregister.test.ts +139 -0
  223. package/src/cli/commands/__tests__/routes.test.ts +562 -0
  224. package/src/cli/commands/avatar.ts +3 -3
  225. package/src/cli/commands/config.ts +26 -13
  226. package/src/cli/commands/conversations.ts +1 -8
  227. package/src/cli/commands/doctor.ts +2 -2
  228. package/src/cli/commands/email.ts +584 -835
  229. package/src/cli/commands/memory.ts +37 -84
  230. package/src/cli/commands/notifications.ts +7 -2
  231. package/src/cli/commands/oauth/__tests__/connect.test.ts +2 -2
  232. package/src/cli/commands/oauth/__tests__/disconnect.test.ts +2 -2
  233. package/src/cli/commands/oauth/__tests__/mode.test.ts +8 -1
  234. package/src/cli/commands/oauth/__tests__/status.test.ts +2 -2
  235. package/src/cli/commands/oauth/connect.ts +25 -11
  236. package/src/cli/commands/oauth/mode.ts +7 -0
  237. package/src/cli/commands/oauth/shared.ts +39 -3
  238. package/src/cli/commands/platform/__tests__/connect.test.ts +1 -1
  239. package/src/cli/commands/platform/__tests__/disconnect.test.ts +1 -1
  240. package/src/cli/commands/platform/__tests__/status.test.ts +5 -5
  241. package/src/cli/commands/platform/index.ts +16 -16
  242. package/src/cli/commands/routes.ts +396 -0
  243. package/src/cli/commands/skills.ts +218 -36
  244. package/src/cli/commands/trust.ts +2 -2
  245. package/src/cli/lib/daemon-credential-client.ts +2 -3
  246. package/src/cli/program.ts +2 -0
  247. package/src/cli.ts +1 -120
  248. package/src/config/bundled-skills/acp/TOOLS.json +1 -1
  249. package/src/config/bundled-skills/app-builder/SKILL.md +4 -1
  250. package/src/config/bundled-skills/contacts/SKILL.md +0 -1
  251. package/src/config/bundled-skills/contacts/TOOLS.json +0 -8
  252. package/src/config/bundled-skills/contacts/tools/contact-upsert.ts +0 -4
  253. package/src/config/bundled-skills/gmail/SKILL.md +4 -12
  254. package/src/config/bundled-skills/google-calendar/SKILL.md +1 -9
  255. package/src/config/bundled-skills/messaging/SKILL.md +17 -18
  256. package/src/config/bundled-skills/messaging/tools/messaging-analyze-style.ts +40 -33
  257. package/src/config/bundled-skills/outlook/SKILL.md +189 -0
  258. package/src/config/bundled-skills/outlook/TOOLS.json +530 -0
  259. package/src/config/bundled-skills/outlook/tools/outlook-attachments.ts +85 -0
  260. package/src/config/bundled-skills/outlook/tools/outlook-categories.ts +77 -0
  261. package/src/config/bundled-skills/outlook/tools/outlook-draft.ts +84 -0
  262. package/src/config/bundled-skills/outlook/tools/outlook-follow-up.ts +94 -0
  263. package/src/config/bundled-skills/outlook/tools/outlook-forward.ts +49 -0
  264. package/src/config/bundled-skills/outlook/tools/outlook-outreach-scan.ts +237 -0
  265. package/src/config/bundled-skills/outlook/tools/outlook-rules.ts +161 -0
  266. package/src/config/bundled-skills/outlook/tools/outlook-send-draft.ts +32 -0
  267. package/src/config/bundled-skills/outlook/tools/outlook-sender-digest.ts +272 -0
  268. package/src/config/bundled-skills/outlook/tools/outlook-trash.ts +29 -0
  269. package/src/config/bundled-skills/outlook/tools/outlook-unsubscribe.ts +129 -0
  270. package/src/config/bundled-skills/outlook/tools/outlook-vacation.ts +87 -0
  271. package/src/config/bundled-skills/outlook/tools/shared.ts +20 -0
  272. package/src/config/bundled-skills/outlook-calendar/SKILL.md +51 -0
  273. package/src/config/bundled-skills/outlook-calendar/TOOLS.json +221 -0
  274. package/src/config/bundled-skills/outlook-calendar/calendar-client.ts +252 -0
  275. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-check-availability.ts +53 -0
  276. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-create-event.ts +74 -0
  277. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-get-event.ts +18 -0
  278. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-list-events.ts +46 -0
  279. package/src/config/bundled-skills/outlook-calendar/tools/outlook-calendar-rsvp.ts +36 -0
  280. package/src/config/bundled-skills/outlook-calendar/tools/shared.ts +17 -0
  281. package/src/config/bundled-skills/outlook-calendar/types.ts +120 -0
  282. package/src/config/bundled-skills/playbooks/tools/playbook-create.ts +47 -40
  283. package/src/config/bundled-skills/playbooks/tools/playbook-delete.ts +16 -29
  284. package/src/config/bundled-skills/playbooks/tools/playbook-list.ts +16 -18
  285. package/src/config/bundled-skills/playbooks/tools/playbook-update.ts +39 -47
  286. package/src/config/bundled-skills/schedule/SKILL.md +22 -2
  287. package/src/config/bundled-skills/schedule/TOOLS.json +8 -0
  288. package/src/config/bundled-skills/settings/tools/avatar-get.ts +3 -13
  289. package/src/config/bundled-skills/settings/tools/avatar-remove.ts +2 -4
  290. package/src/config/bundled-skills/settings/tools/avatar-update.ts +5 -2
  291. package/src/config/bundled-skills/slack/SKILL.md +3 -7
  292. package/src/config/bundled-skills/subagent/SKILL.md +43 -3
  293. package/src/config/bundled-skills/subagent/TOOLS.json +29 -4
  294. package/src/config/bundled-tool-registry.ts +56 -4
  295. package/src/config/env-registry.ts +78 -8
  296. package/src/config/feature-flag-registry.json +38 -125
  297. package/src/config/schema.ts +8 -0
  298. package/src/config/schemas/filing.ts +51 -0
  299. package/src/config/schemas/heartbeat.ts +15 -12
  300. package/src/config/schemas/memory-lifecycle.ts +12 -0
  301. package/src/config/schemas/platform.ts +8 -0
  302. package/src/config/schemas/security.ts +14 -0
  303. package/src/config/schemas/timeouts.ts +1 -1
  304. package/src/config/skills.ts +18 -7
  305. package/src/context/token-estimator.ts +25 -18
  306. package/src/context/window-manager.ts +6 -2
  307. package/src/credential-execution/process-manager.ts +3 -1
  308. package/src/daemon/app-source-watcher.ts +93 -0
  309. package/src/daemon/config-watcher.ts +79 -1
  310. package/src/daemon/context-overflow-reducer.ts +46 -2
  311. package/src/daemon/conversation-agent-loop-handlers.ts +143 -82
  312. package/src/daemon/conversation-agent-loop.ts +236 -108
  313. package/src/daemon/conversation-error.ts +31 -8
  314. package/src/daemon/conversation-history.ts +4 -19
  315. package/src/daemon/conversation-lifecycle.ts +36 -9
  316. package/src/daemon/conversation-media-retry.ts +85 -7
  317. package/src/daemon/conversation-notifiers.ts +4 -1
  318. package/src/daemon/conversation-process.ts +13 -7
  319. package/src/daemon/conversation-runtime-assembly.ts +305 -306
  320. package/src/daemon/conversation-tool-setup.ts +44 -14
  321. package/src/daemon/conversation-workspace.ts +1 -2
  322. package/src/daemon/conversation.ts +59 -2
  323. package/src/daemon/daemon-control.ts +8 -2
  324. package/src/daemon/date-context.ts +26 -53
  325. package/src/daemon/first-greeting.ts +1 -1
  326. package/src/daemon/handlers/conversations.ts +4 -7
  327. package/src/daemon/handlers/shared.test.ts +143 -0
  328. package/src/daemon/handlers/shared.ts +85 -17
  329. package/src/daemon/handlers/skills.ts +416 -209
  330. package/src/daemon/lifecycle.ts +212 -131
  331. package/src/daemon/main.ts +5 -1
  332. package/src/daemon/message-types/conversations.ts +29 -7
  333. package/src/daemon/message-types/messages.ts +12 -2
  334. package/src/daemon/message-types/schedules.ts +1 -0
  335. package/src/daemon/message-types/settings.ts +6 -0
  336. package/src/daemon/message-types/skills.ts +97 -36
  337. package/src/daemon/profiler-run-store.ts +557 -0
  338. package/src/daemon/providers-setup.ts +5 -0
  339. package/src/daemon/server.ts +100 -11
  340. package/src/daemon/shutdown-handlers.ts +5 -0
  341. package/src/daemon/tool-side-effects.ts +50 -8
  342. package/src/export/transcript-formatter.ts +148 -0
  343. package/src/filing/filing-service.ts +228 -0
  344. package/src/heartbeat/heartbeat-service.ts +97 -7
  345. package/src/hooks/cli.ts +2 -2
  346. package/src/hooks/runner.ts +15 -38
  347. package/src/inbound/platform-callback-registration.ts +14 -14
  348. package/src/mcp/client.ts +6 -0
  349. package/src/mcp/mcp-oauth-provider.ts +149 -27
  350. package/src/memory/admin.ts +42 -75
  351. package/src/memory/app-store.ts +69 -0
  352. package/src/memory/conversation-bootstrap.ts +3 -1
  353. package/src/memory/conversation-crud.ts +211 -288
  354. package/src/memory/conversation-group-migration.ts +157 -0
  355. package/src/memory/conversation-queries.ts +61 -13
  356. package/src/memory/conversation-title-service.ts +1 -0
  357. package/src/memory/db-init.ts +194 -361
  358. package/src/memory/embed.ts +73 -0
  359. package/src/memory/embedding-backend.ts +8 -14
  360. package/src/memory/embedding-runtime-manager.ts +12 -114
  361. package/src/memory/fingerprint.ts +2 -2
  362. package/src/memory/graph/bootstrap.ts +521 -0
  363. package/src/memory/graph/capability-seed.ts +449 -0
  364. package/src/memory/graph/consolidation.ts +725 -0
  365. package/src/memory/graph/conversation-graph-memory.ts +659 -0
  366. package/src/memory/graph/decay.test.ts +208 -0
  367. package/src/memory/graph/decay.ts +195 -0
  368. package/src/memory/graph/extraction-job.ts +74 -0
  369. package/src/memory/graph/extraction.test.ts +936 -0
  370. package/src/memory/graph/extraction.ts +1297 -0
  371. package/src/memory/graph/graph-memory-state-store.ts +37 -0
  372. package/src/memory/graph/graph-search.ts +280 -0
  373. package/src/memory/graph/image-ref-utils.ts +29 -0
  374. package/src/memory/graph/injection.test.ts +513 -0
  375. package/src/memory/graph/injection.ts +469 -0
  376. package/src/memory/graph/inspect.ts +543 -0
  377. package/src/memory/graph/narrative.ts +267 -0
  378. package/src/memory/graph/pattern-scan.ts +269 -0
  379. package/src/memory/graph/retriever.ts +1111 -0
  380. package/src/memory/graph/scoring.test.ts +548 -0
  381. package/src/memory/graph/scoring.ts +232 -0
  382. package/src/memory/graph/serendipity.ts +65 -0
  383. package/src/memory/graph/store.test.ts +1098 -0
  384. package/src/memory/graph/store.ts +838 -0
  385. package/src/memory/graph/tool-handlers.ts +301 -0
  386. package/src/memory/graph/tools.ts +97 -0
  387. package/src/memory/graph/triggers.test.ts +487 -0
  388. package/src/memory/graph/triggers.ts +223 -0
  389. package/src/memory/graph/types.ts +295 -0
  390. package/src/memory/group-crud.ts +191 -0
  391. package/src/memory/indexer.ts +37 -19
  392. package/src/memory/job-handlers/cleanup.ts +32 -42
  393. package/src/memory/job-handlers/conversation-starters.ts +91 -53
  394. package/src/memory/job-handlers/embedding.ts +5 -31
  395. package/src/memory/job-handlers/index-maintenance.ts +23 -11
  396. package/src/memory/job-handlers/summarization.ts +32 -17
  397. package/src/memory/job-utils.ts +1 -1
  398. package/src/memory/jobs-store.ts +21 -31
  399. package/src/memory/jobs-worker.ts +180 -129
  400. package/src/memory/llm-request-log-store.ts +96 -12
  401. package/src/memory/memory-recall-log-store.ts +49 -5
  402. package/src/memory/message-content.ts +1 -0
  403. package/src/memory/migrations/202-memory-graph-tables.ts +130 -0
  404. package/src/memory/migrations/203-drop-memory-items-tables.ts +55 -0
  405. package/src/memory/migrations/204-rename-memory-graph-type-values.ts +46 -0
  406. package/src/memory/migrations/205-memory-graph-image-refs.ts +11 -0
  407. package/src/memory/migrations/206-memory-graph-node-edits.ts +19 -0
  408. package/src/memory/migrations/206-scrub-corrupted-image-attachments.ts +131 -0
  409. package/src/memory/migrations/207-conversation-graph-memory-state.ts +20 -0
  410. package/src/memory/migrations/208-conversations-last-message-at.ts +35 -0
  411. package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +85 -0
  412. package/src/memory/migrations/210-schedule-reuse-conversation.ts +13 -0
  413. package/src/memory/migrations/211-memory-recall-logs-query-context.ts +21 -0
  414. package/src/memory/migrations/212-llm-request-logs-created-at-index.ts +19 -0
  415. package/src/memory/migrations/index.ts +12 -0
  416. package/src/memory/migrations/registry.ts +16 -0
  417. package/src/memory/qdrant-client.ts +44 -17
  418. package/src/memory/schema/conversations.ts +14 -0
  419. package/src/memory/schema/index.ts +1 -0
  420. package/src/memory/schema/infrastructure.ts +8 -1
  421. package/src/memory/schema/memory-core.ts +0 -51
  422. package/src/memory/schema/memory-graph.ts +154 -0
  423. package/src/memory/search/semantic.ts +47 -91
  424. package/src/memory/task-memory-cleanup.ts +58 -61
  425. package/src/messaging/providers/outlook/adapter.ts +8 -1
  426. package/src/messaging/providers/outlook/client.ts +299 -0
  427. package/src/messaging/providers/outlook/types.ts +118 -0
  428. package/src/notifications/adapters/macos.ts +1 -0
  429. package/src/notifications/copy-composer.ts +95 -0
  430. package/src/notifications/decision-engine.ts +35 -0
  431. package/src/notifications/signal.ts +16 -0
  432. package/src/oauth/seed-providers.ts +2 -1
  433. package/src/permissions/checker.ts +36 -4
  434. package/src/permissions/defaults.ts +4 -4
  435. package/src/permissions/permission-mode-store.ts +180 -0
  436. package/src/permissions/permission-mode.ts +31 -0
  437. package/src/permissions/workspace-policy.ts +10 -1
  438. package/src/playbooks/playbook-compiler.ts +19 -18
  439. package/src/playbooks/types.ts +4 -3
  440. package/src/prompts/system-prompt.ts +62 -36
  441. package/src/prompts/templates/BOOTSTRAP-REFERENCE.md +100 -0
  442. package/src/prompts/templates/BOOTSTRAP.md +70 -165
  443. package/src/prompts/templates/HEARTBEAT.md +3 -1
  444. package/src/prompts/templates/SOUL.md +25 -4
  445. package/src/prompts/templates/UPDATES.md +8 -0
  446. package/src/providers/anthropic/client.ts +136 -220
  447. package/src/providers/gemini/client.ts +1 -1
  448. package/src/providers/openai/client.ts +1 -1
  449. package/src/providers/registry.ts +1 -1
  450. package/src/providers/retry.ts +19 -3
  451. package/src/runtime/actor-trust-resolver.ts +5 -1
  452. package/src/runtime/auth/route-policy.ts +30 -0
  453. package/src/runtime/guardian-reply-router.ts +5 -1
  454. package/src/runtime/http-server.ts +55 -5
  455. package/src/runtime/http-types.ts +12 -1
  456. package/src/runtime/middleware/auth.ts +20 -0
  457. package/src/runtime/migrations/vbundle-builder.ts +389 -3
  458. package/src/runtime/migrations/vbundle-importer.ts +8 -6
  459. package/src/runtime/routes/__tests__/user-route-dispatcher.test.ts +378 -0
  460. package/src/runtime/routes/app-management-routes.ts +1 -11
  461. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +26 -0
  462. package/src/runtime/routes/archive-utils.ts +29 -0
  463. package/src/runtime/routes/attachment-routes.test.ts +106 -0
  464. package/src/runtime/routes/attachment-routes.ts +106 -16
  465. package/src/runtime/routes/avatar-routes.ts +2 -9
  466. package/src/runtime/routes/brain-graph-routes.ts +21 -22
  467. package/src/runtime/routes/btw-routes.ts +22 -1
  468. package/src/runtime/routes/conversation-analysis-routes.ts +173 -0
  469. package/src/runtime/routes/conversation-management-routes.ts +3 -14
  470. package/src/runtime/routes/conversation-query-routes.ts +49 -3
  471. package/src/runtime/routes/conversation-routes.ts +264 -44
  472. package/src/runtime/routes/conversation-starter-routes.ts +2 -2
  473. package/src/runtime/routes/debug-routes.ts +1 -1
  474. package/src/runtime/routes/global-search-routes.ts +21 -19
  475. package/src/runtime/routes/group-routes.ts +207 -0
  476. package/src/runtime/routes/guardian-action-routes.ts +21 -10
  477. package/src/runtime/routes/guardian-bootstrap-routes.ts +23 -19
  478. package/src/runtime/routes/heartbeat-routes.ts +4 -10
  479. package/src/runtime/routes/identity-routes.ts +53 -18
  480. package/src/runtime/routes/inbound-message-handler.ts +19 -0
  481. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +292 -0
  482. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +207 -0
  483. package/src/runtime/routes/llm-context-normalization.ts +14 -10
  484. package/src/runtime/routes/log-export-routes.ts +23 -275
  485. package/src/runtime/routes/memory-item-routes.test.ts +170 -247
  486. package/src/runtime/routes/memory-item-routes.ts +341 -388
  487. package/src/runtime/routes/migration-routes.ts +18 -7
  488. package/src/runtime/routes/profiler-routes.ts +350 -0
  489. package/src/runtime/routes/schedule-routes.ts +28 -11
  490. package/src/runtime/routes/settings-routes.ts +95 -8
  491. package/src/runtime/routes/skills-routes.ts +103 -37
  492. package/src/runtime/routes/subagents-routes.ts +28 -7
  493. package/src/runtime/routes/user-route-dispatcher.ts +223 -0
  494. package/src/runtime/routes/user-routes.ts +41 -0
  495. package/src/runtime/routes/work-items-routes.test.ts +2 -6
  496. package/src/runtime/routes/workspace-routes.ts +0 -1
  497. package/src/schedule/schedule-store.ts +30 -0
  498. package/src/schedule/scheduler.ts +52 -18
  499. package/src/security/oauth2.ts +1 -1
  500. package/src/security/secure-keys.ts +4 -8
  501. package/src/shared/provider-env-vars.ts +19 -0
  502. package/src/skills/catalog-cache.ts +5 -0
  503. package/src/skills/catalog-install.ts +25 -16
  504. package/src/skills/clawhub.ts +134 -154
  505. package/src/skills/install-meta.ts +208 -0
  506. package/src/skills/managed-store.ts +29 -18
  507. package/src/skills/skill-memory.ts +12 -229
  508. package/src/skills/skillssh-registry.ts +19 -17
  509. package/src/subagent/index.ts +13 -3
  510. package/src/subagent/manager.ts +308 -29
  511. package/src/subagent/types.ts +68 -0
  512. package/src/tasks/task-runner.ts +7 -5
  513. package/src/telemetry/usage-telemetry-reporter.test.ts +3 -5
  514. package/src/tools/apps/executors.ts +29 -4
  515. package/src/tools/browser/runtime-check.ts +3 -1
  516. package/src/tools/filesystem/list.ts +93 -0
  517. package/src/tools/memory/register.ts +63 -46
  518. package/src/tools/permission-checker.ts +85 -1
  519. package/src/tools/registry.ts +4 -0
  520. package/src/tools/schedule/create.ts +3 -0
  521. package/src/tools/schedule/list.ts +1 -0
  522. package/src/tools/schedule/update.ts +6 -0
  523. package/src/tools/shared/filesystem/errors.ts +5 -0
  524. package/src/tools/shared/filesystem/file-ops-service.ts +90 -2
  525. package/src/tools/shared/filesystem/image-read.ts +22 -85
  526. package/src/tools/shared/filesystem/types.ts +17 -0
  527. package/src/tools/shared/shell-output.ts +31 -2
  528. package/src/tools/subagent/abort.ts +12 -2
  529. package/src/tools/subagent/message.ts +9 -2
  530. package/src/tools/subagent/notify-parent.ts +79 -0
  531. package/src/tools/subagent/read.ts +29 -8
  532. package/src/tools/subagent/resolve.ts +21 -0
  533. package/src/tools/subagent/spawn.ts +2 -0
  534. package/src/tools/subagent/status.ts +11 -1
  535. package/src/tools/system/avatar-generator.ts +3 -3
  536. package/src/tools/system/register.ts +23 -0
  537. package/src/tools/system/set-permission-mode.ts +103 -0
  538. package/src/tools/terminal/parser.ts +30 -5
  539. package/src/tools/terminal/safe-env.ts +17 -1
  540. package/src/tools/tool-manifest.ts +9 -3
  541. package/src/tools/types.ts +2 -0
  542. package/src/util/browser.ts +25 -10
  543. package/src/util/bun-runtime.ts +172 -0
  544. package/src/util/logger.ts +1 -1
  545. package/src/util/platform.ts +50 -17
  546. package/src/watcher/providers/outlook-calendar.ts +343 -0
  547. package/src/watcher/providers/outlook.ts +198 -0
  548. package/src/workspace/migrations/023-move-config-files-to-workspace.ts +2 -2
  549. package/src/workspace/migrations/024-move-runtime-files-to-workspace.ts +2 -2
  550. package/src/workspace/migrations/025-remove-oauth-app-setup-skills.ts +76 -0
  551. package/src/workspace/migrations/026-backfill-install-meta.ts +325 -0
  552. package/src/workspace/migrations/027-remove-orphaned-optimized-images-cache.ts +42 -0
  553. package/src/workspace/migrations/028-recover-conversations-from-disk-view.ts +270 -0
  554. package/src/workspace/migrations/029-seed-pkb.ts +84 -0
  555. package/src/workspace/migrations/registry.ts +10 -0
  556. package/src/workspace/top-level-renderer.ts +5 -9
  557. package/src/__tests__/cli-memory.test.ts +0 -372
  558. package/src/__tests__/clipboard.test.ts +0 -88
  559. package/src/__tests__/context-memory-e2e.test.ts +0 -415
  560. package/src/__tests__/journal-context.test.ts +0 -268
  561. package/src/__tests__/memory-context-benchmark.benchmark.test.ts +0 -297
  562. package/src/__tests__/memory-lifecycle-e2e.test.ts +0 -459
  563. package/src/__tests__/memory-query-builder.test.ts +0 -59
  564. package/src/__tests__/memory-recall-quality.test.ts +0 -1046
  565. package/src/__tests__/memory-regressions.experimental.test.ts +0 -629
  566. package/src/__tests__/memory-regressions.test.ts +0 -3696
  567. package/src/__tests__/memory-retrieval.benchmark.test.ts +0 -295
  568. package/src/cli/cli-memory.ts +0 -176
  569. package/src/daemon/conversation-memory.ts +0 -207
  570. package/src/memory/conversation-starters-cadence.ts +0 -74
  571. package/src/memory/items-extractor.ts +0 -860
  572. package/src/memory/job-handlers/batch-extraction.ts +0 -753
  573. package/src/memory/job-handlers/extraction.ts +0 -40
  574. package/src/memory/job-handlers/journal-carry-forward.test.ts +0 -355
  575. package/src/memory/job-handlers/journal-carry-forward.ts +0 -255
  576. package/src/memory/journal-memory.ts +0 -224
  577. package/src/memory/query-builder.ts +0 -47
  578. package/src/memory/query-expansion.ts +0 -83
  579. package/src/memory/retriever.test.ts +0 -1592
  580. package/src/memory/retriever.ts +0 -1331
  581. package/src/memory/search/formatting.test.ts +0 -140
  582. package/src/memory/search/formatting.ts +0 -262
  583. package/src/memory/search/mmr.ts +0 -139
  584. package/src/memory/search/ranking.ts +0 -15
  585. package/src/memory/search/staleness.ts +0 -40
  586. package/src/memory/search/tier-classifier.ts +0 -18
  587. package/src/memory/search/types.ts +0 -121
  588. package/src/prompts/journal-context.ts +0 -154
  589. package/src/tools/memory/definitions.ts +0 -69
  590. package/src/tools/memory/handlers.test.ts +0 -562
  591. package/src/tools/memory/handlers.ts +0 -434
  592. package/src/util/clipboard.ts +0 -34
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.15
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
@@ -2521,6 +2521,22 @@ paths:
2521
2521
  required: true
2522
2522
  schema:
2523
2523
  type: string
2524
+ /v1/conversations/{id}/analyze:
2525
+ post:
2526
+ operationId: conversations_by_id_analyze_post
2527
+ summary: Analyze a conversation
2528
+ description: Create a new conversation with a structured self-assessment of an existing conversation.
2529
+ tags:
2530
+ - conversations
2531
+ responses:
2532
+ "200":
2533
+ description: Successful response
2534
+ parameters:
2535
+ - name: id
2536
+ in: path
2537
+ required: true
2538
+ schema:
2539
+ type: string
2524
2540
  /v1/conversations/{id}/cancel:
2525
2541
  post:
2526
2542
  operationId: conversations_by_id_cancel_post
@@ -3103,7 +3119,7 @@ paths:
3103
3119
  post:
3104
3120
  operationId: export_post
3105
3121
  summary: Export logs and audit data
3106
- description: Export audit records, assistant logs, workspace contents, and config as a tar.gz archive.
3122
+ description: Export audit records, assistant logs, and config as a tar.gz archive.
3107
3123
  tags:
3108
3124
  - export
3109
3125
  responses:
@@ -3131,6 +3147,115 @@ paths:
3131
3147
  description: Upper bound epoch ms
3132
3148
  type: number
3133
3149
  additionalProperties: false
3150
+ /v1/groups:
3151
+ get:
3152
+ operationId: groups_get
3153
+ summary: List groups
3154
+ description: Return all conversation groups.
3155
+ tags:
3156
+ - groups
3157
+ responses:
3158
+ "200":
3159
+ description: Successful response
3160
+ post:
3161
+ operationId: groups_post
3162
+ summary: Create group
3163
+ description: Create a new custom conversation group. Server assigns sort_position.
3164
+ tags:
3165
+ - groups
3166
+ responses:
3167
+ "200":
3168
+ description: Successful response
3169
+ requestBody:
3170
+ required: true
3171
+ content:
3172
+ application/json:
3173
+ schema:
3174
+ type: object
3175
+ properties:
3176
+ name:
3177
+ type: string
3178
+ description: Group name
3179
+ required:
3180
+ - name
3181
+ additionalProperties: false
3182
+ /v1/groups/{groupId}:
3183
+ delete:
3184
+ operationId: groups_by_groupId_delete
3185
+ summary: Delete group
3186
+ description: Delete a custom conversation group.
3187
+ tags:
3188
+ - groups
3189
+ responses:
3190
+ "200":
3191
+ description: Successful response
3192
+ parameters:
3193
+ - name: groupId
3194
+ in: path
3195
+ required: true
3196
+ schema:
3197
+ type: string
3198
+ patch:
3199
+ operationId: groups_by_groupId_patch
3200
+ summary: Update group
3201
+ description: Update a conversation group's name or sort position.
3202
+ tags:
3203
+ - groups
3204
+ responses:
3205
+ "200":
3206
+ description: Successful response
3207
+ parameters:
3208
+ - name: groupId
3209
+ in: path
3210
+ required: true
3211
+ schema:
3212
+ type: string
3213
+ requestBody:
3214
+ required: true
3215
+ content:
3216
+ application/json:
3217
+ schema:
3218
+ type: object
3219
+ properties:
3220
+ name:
3221
+ type: string
3222
+ sortPosition:
3223
+ type: number
3224
+ additionalProperties: false
3225
+ /v1/groups/reorder:
3226
+ post:
3227
+ operationId: groups_reorder_post
3228
+ summary: Reorder groups
3229
+ description: Batch-update sort positions for conversation groups.
3230
+ tags:
3231
+ - groups
3232
+ responses:
3233
+ "200":
3234
+ description: Successful response
3235
+ requestBody:
3236
+ required: true
3237
+ content:
3238
+ application/json:
3239
+ schema:
3240
+ type: object
3241
+ properties:
3242
+ updates:
3243
+ type: array
3244
+ items:
3245
+ type: object
3246
+ properties:
3247
+ groupId:
3248
+ type: string
3249
+ sortPosition:
3250
+ type: number
3251
+ required:
3252
+ - groupId
3253
+ - sortPosition
3254
+ additionalProperties: false
3255
+ description: Array of { groupId, sortPosition } objects
3256
+ required:
3257
+ - updates
3258
+ additionalProperties: false
3134
3259
  /v1/guardian-actions/decision:
3135
3260
  post:
3136
3261
  operationId: guardianactions_decision_post
@@ -3261,6 +3386,81 @@ paths:
3261
3386
  type: object
3262
3387
  properties: {}
3263
3388
  additionalProperties: {}
3389
+ profiler:
3390
+ type: object
3391
+ properties:
3392
+ enabled:
3393
+ type: boolean
3394
+ mode:
3395
+ anyOf:
3396
+ - type: string
3397
+ - type: "null"
3398
+ runId:
3399
+ anyOf:
3400
+ - type: string
3401
+ - type: "null"
3402
+ runDir:
3403
+ anyOf:
3404
+ - type: string
3405
+ - type: "null"
3406
+ totalBytes:
3407
+ type: number
3408
+ artifactCount:
3409
+ type: number
3410
+ budget:
3411
+ anyOf:
3412
+ - type: object
3413
+ properties:
3414
+ maxBytes:
3415
+ type: number
3416
+ remainingBytes:
3417
+ type: number
3418
+ minFreeMb:
3419
+ type: number
3420
+ freeMb:
3421
+ type: number
3422
+ overBudget:
3423
+ type: boolean
3424
+ required:
3425
+ - maxBytes
3426
+ - remainingBytes
3427
+ - minFreeMb
3428
+ - freeMb
3429
+ - overBudget
3430
+ additionalProperties: false
3431
+ - type: "null"
3432
+ lastCompletedRun:
3433
+ anyOf:
3434
+ - type: object
3435
+ properties:
3436
+ runId:
3437
+ type: string
3438
+ totalBytes:
3439
+ type: number
3440
+ artifactCount:
3441
+ type: number
3442
+ hasSummaries:
3443
+ type: boolean
3444
+ completedAt:
3445
+ type: string
3446
+ required:
3447
+ - runId
3448
+ - totalBytes
3449
+ - artifactCount
3450
+ - hasSummaries
3451
+ - completedAt
3452
+ additionalProperties: false
3453
+ - type: "null"
3454
+ required:
3455
+ - enabled
3456
+ - mode
3457
+ - runId
3458
+ - runDir
3459
+ - totalBytes
3460
+ - artifactCount
3461
+ - budget
3462
+ - lastCompletedRun
3463
+ additionalProperties: false
3264
3464
  required:
3265
3465
  - status
3266
3466
  - timestamp
@@ -3307,6 +3507,81 @@ paths:
3307
3507
  type: object
3308
3508
  properties: {}
3309
3509
  additionalProperties: {}
3510
+ profiler:
3511
+ type: object
3512
+ properties:
3513
+ enabled:
3514
+ type: boolean
3515
+ mode:
3516
+ anyOf:
3517
+ - type: string
3518
+ - type: "null"
3519
+ runId:
3520
+ anyOf:
3521
+ - type: string
3522
+ - type: "null"
3523
+ runDir:
3524
+ anyOf:
3525
+ - type: string
3526
+ - type: "null"
3527
+ totalBytes:
3528
+ type: number
3529
+ artifactCount:
3530
+ type: number
3531
+ budget:
3532
+ anyOf:
3533
+ - type: object
3534
+ properties:
3535
+ maxBytes:
3536
+ type: number
3537
+ remainingBytes:
3538
+ type: number
3539
+ minFreeMb:
3540
+ type: number
3541
+ freeMb:
3542
+ type: number
3543
+ overBudget:
3544
+ type: boolean
3545
+ required:
3546
+ - maxBytes
3547
+ - remainingBytes
3548
+ - minFreeMb
3549
+ - freeMb
3550
+ - overBudget
3551
+ additionalProperties: false
3552
+ - type: "null"
3553
+ lastCompletedRun:
3554
+ anyOf:
3555
+ - type: object
3556
+ properties:
3557
+ runId:
3558
+ type: string
3559
+ totalBytes:
3560
+ type: number
3561
+ artifactCount:
3562
+ type: number
3563
+ hasSummaries:
3564
+ type: boolean
3565
+ completedAt:
3566
+ type: string
3567
+ required:
3568
+ - runId
3569
+ - totalBytes
3570
+ - artifactCount
3571
+ - hasSummaries
3572
+ - completedAt
3573
+ additionalProperties: false
3574
+ - type: "null"
3575
+ required:
3576
+ - enabled
3577
+ - mode
3578
+ - runId
3579
+ - runDir
3580
+ - totalBytes
3581
+ - artifactCount
3582
+ - budget
3583
+ - lastCompletedRun
3584
+ additionalProperties: false
3310
3585
  required:
3311
3586
  - status
3312
3587
  - timestamp
@@ -3968,11 +4243,41 @@ paths:
3968
4243
  responses:
3969
4244
  "200":
3970
4245
  description: Successful response
4246
+ /v1/llm-request-logs/{id}/payload:
4247
+ get:
4248
+ operationId: llmrequestlogs_by_id_payload_get
4249
+ summary: Get raw payload for a single LLM request log
4250
+ description: Return the full request and response payloads for a specific log entry.
4251
+ tags:
4252
+ - messages
4253
+ responses:
4254
+ "200":
4255
+ description: Successful response
4256
+ content:
4257
+ application/json:
4258
+ schema:
4259
+ type: object
4260
+ properties:
4261
+ id:
4262
+ type: string
4263
+ requestPayload: {}
4264
+ responsePayload: {}
4265
+ required:
4266
+ - id
4267
+ - requestPayload
4268
+ - responsePayload
4269
+ additionalProperties: false
4270
+ parameters:
4271
+ - name: id
4272
+ in: path
4273
+ required: true
4274
+ schema:
4275
+ type: string
3971
4276
  /v1/logs/export:
3972
4277
  post:
3973
4278
  operationId: logs_export_post
3974
4279
  summary: Export logs and audit data (alias)
3975
- description: Alias for /v1/export. Export audit records, assistant logs, workspace contents, and config as a tar.gz archive.
4280
+ description: Alias for /v1/export. Export audit records, assistant logs, and config as a tar.gz archive.
3976
4281
  tags:
3977
4282
  - export
3978
4283
  responses:
@@ -4071,7 +4376,7 @@ paths:
4071
4376
  post:
4072
4377
  operationId: memoryitems_post
4073
4378
  summary: Create a memory item
4074
- description: Create a new memory item and enqueue embedding.
4379
+ description: Create a new memory graph node and enqueue embedding.
4075
4380
  tags:
4076
4381
  - memory
4077
4382
  responses:
@@ -4099,10 +4404,10 @@ paths:
4099
4404
  properties:
4100
4405
  kind:
4101
4406
  type: string
4102
- description: Memory kind (identity, preference, project, etc.)
4407
+ description: Memory type (episodic, semantic, procedural, etc.)
4103
4408
  subject:
4104
4409
  type: string
4105
- description: Subject line
4410
+ description: Subject line (first line of content)
4106
4411
  statement:
4107
4412
  type: string
4108
4413
  description: Statement content
@@ -4111,14 +4416,13 @@ paths:
4111
4416
  description: Importance score (default 0.8)
4112
4417
  required:
4113
4418
  - kind
4114
- - subject
4115
4419
  - statement
4116
4420
  additionalProperties: false
4117
4421
  /v1/memory-items/{id}:
4118
4422
  delete:
4119
4423
  operationId: memoryitems_by_id_delete
4120
4424
  summary: Delete a memory item
4121
- description: Delete a memory item and its embeddings.
4425
+ description: Delete a memory graph node and its embeddings.
4122
4426
  tags:
4123
4427
  - memory
4124
4428
  responses:
@@ -4143,7 +4447,7 @@ paths:
4143
4447
  get:
4144
4448
  operationId: memoryitems_by_id_get
4145
4449
  summary: Get a memory item
4146
- description: Return a single memory item by ID with supersession metadata.
4450
+ description: Return a single memory item by ID with graph metadata.
4147
4451
  tags:
4148
4452
  - memory
4149
4453
  responses:
@@ -4158,7 +4462,7 @@ paths:
4158
4462
  type: object
4159
4463
  properties: {}
4160
4464
  additionalProperties: {}
4161
- description: Memory item with scopeLabel and supersession info
4465
+ description: Memory item with scopeLabel and graph metadata
4162
4466
  required:
4163
4467
  - item
4164
4468
  additionalProperties: false
@@ -4171,7 +4475,7 @@ paths:
4171
4475
  patch:
4172
4476
  operationId: memoryitems_by_id_patch
4173
4477
  summary: Update a memory item
4174
- description: Partially update fields on an existing memory item.
4478
+ description: Partially update fields on an existing memory graph node.
4175
4479
  tags:
4176
4480
  - memory
4177
4481
  responses:
@@ -4213,18 +4517,6 @@ paths:
4213
4517
  type: string
4214
4518
  importance:
4215
4519
  type: number
4216
- sourceType:
4217
- type: string
4218
- verificationState:
4219
- type: string
4220
- required:
4221
- - subject
4222
- - statement
4223
- - kind
4224
- - status
4225
- - importance
4226
- - sourceType
4227
- - verificationState
4228
4520
  additionalProperties: false
4229
4521
  /v1/messages:
4230
4522
  get:
@@ -4287,7 +4579,6 @@ paths:
4287
4579
  slashCommand:
4288
4580
  type: string
4289
4581
  required:
4290
- - conversationKey
4291
4582
  - content
4292
4583
  additionalProperties: false
4293
4584
  /v1/messages/{id}/content:
@@ -4818,6 +5109,237 @@ paths:
4818
5109
  schema:
4819
5110
  type: string
4820
5111
  description: Conversation ID
5112
+ /v1/permission-mode:
5113
+ get:
5114
+ operationId: permissionmode_get
5115
+ summary: Get permission mode
5116
+ description: Return the current two-axis permission mode (askBeforeActing, hostAccess).
5117
+ tags:
5118
+ - settings
5119
+ responses:
5120
+ "200":
5121
+ description: Successful response
5122
+ content:
5123
+ application/json:
5124
+ schema:
5125
+ type: object
5126
+ properties:
5127
+ askBeforeActing:
5128
+ type: boolean
5129
+ hostAccess:
5130
+ type: boolean
5131
+ required:
5132
+ - askBeforeActing
5133
+ - hostAccess
5134
+ additionalProperties: false
5135
+ put:
5136
+ operationId: permissionmode_put
5137
+ summary: Update permission mode
5138
+ description: Update the two-axis permission mode. Requires the permission-controls-v2 feature flag.
5139
+ tags:
5140
+ - settings
5141
+ responses:
5142
+ "200":
5143
+ description: Successful response
5144
+ content:
5145
+ application/json:
5146
+ schema:
5147
+ type: object
5148
+ properties:
5149
+ askBeforeActing:
5150
+ type: boolean
5151
+ hostAccess:
5152
+ type: boolean
5153
+ required:
5154
+ - askBeforeActing
5155
+ - hostAccess
5156
+ additionalProperties: false
5157
+ requestBody:
5158
+ required: true
5159
+ content:
5160
+ application/json:
5161
+ schema:
5162
+ type: object
5163
+ properties:
5164
+ askBeforeActing:
5165
+ type: boolean
5166
+ hostAccess:
5167
+ type: boolean
5168
+ additionalProperties: false
5169
+ /v1/profiler/runs:
5170
+ get:
5171
+ operationId: profiler_runs_get
5172
+ summary: List profiler runs
5173
+ description: Enumerate all profiler run directories with manifest metadata, sorted newest-first.
5174
+ tags:
5175
+ - profiler
5176
+ responses:
5177
+ "200":
5178
+ description: Successful response
5179
+ content:
5180
+ application/json:
5181
+ schema:
5182
+ type: object
5183
+ properties:
5184
+ runs:
5185
+ type: array
5186
+ items:
5187
+ type: object
5188
+ properties:
5189
+ runId:
5190
+ type: string
5191
+ status:
5192
+ type: string
5193
+ enum:
5194
+ - active
5195
+ - completed
5196
+ createdAt:
5197
+ type: string
5198
+ updatedAt:
5199
+ type: string
5200
+ totalBytes:
5201
+ type: number
5202
+ completedAt:
5203
+ type: string
5204
+ required:
5205
+ - runId
5206
+ - status
5207
+ - createdAt
5208
+ - updatedAt
5209
+ - totalBytes
5210
+ additionalProperties: false
5211
+ totalRuns:
5212
+ type: number
5213
+ activeRunId:
5214
+ anyOf:
5215
+ - type: string
5216
+ - type: "null"
5217
+ required:
5218
+ - runs
5219
+ - totalRuns
5220
+ - activeRunId
5221
+ additionalProperties: false
5222
+ /v1/profiler/runs/{runId}:
5223
+ delete:
5224
+ operationId: profiler_runs_by_runId_delete
5225
+ summary: Delete profiler run
5226
+ description: Delete a completed profiler run and recalculate disk-budget state. Rejects deletion of the currently active run.
5227
+ tags:
5228
+ - profiler
5229
+ responses:
5230
+ "200":
5231
+ description: Successful response
5232
+ content:
5233
+ application/json:
5234
+ schema:
5235
+ type: object
5236
+ properties:
5237
+ deleted:
5238
+ type: boolean
5239
+ runId:
5240
+ type: string
5241
+ remainingRuns:
5242
+ type: number
5243
+ activeRunOverBudget:
5244
+ type: boolean
5245
+ required:
5246
+ - deleted
5247
+ - runId
5248
+ - remainingRuns
5249
+ - activeRunOverBudget
5250
+ additionalProperties: false
5251
+ parameters:
5252
+ - name: runId
5253
+ in: path
5254
+ required: true
5255
+ schema:
5256
+ type: string
5257
+ get:
5258
+ operationId: profiler_runs_by_runId_get
5259
+ summary: Get profiler run detail
5260
+ description: Return manifest metadata, Bun-generated markdown summary, and current retention state for a single profiler run.
5261
+ tags:
5262
+ - profiler
5263
+ responses:
5264
+ "200":
5265
+ description: Successful response
5266
+ content:
5267
+ application/json:
5268
+ schema:
5269
+ type: object
5270
+ properties:
5271
+ runId:
5272
+ type: string
5273
+ status:
5274
+ type: string
5275
+ enum:
5276
+ - active
5277
+ - completed
5278
+ createdAt:
5279
+ type: string
5280
+ updatedAt:
5281
+ type: string
5282
+ totalBytes:
5283
+ type: number
5284
+ completedAt:
5285
+ type: string
5286
+ summary:
5287
+ anyOf:
5288
+ - type: string
5289
+ - type: "null"
5290
+ isActive:
5291
+ type: boolean
5292
+ budget:
5293
+ type: object
5294
+ properties:
5295
+ maxBytes:
5296
+ type: number
5297
+ totalBytesAllRuns:
5298
+ type: number
5299
+ remainingBytes:
5300
+ type: number
5301
+ overBudget:
5302
+ type: boolean
5303
+ required:
5304
+ - maxBytes
5305
+ - totalBytesAllRuns
5306
+ - remainingBytes
5307
+ - overBudget
5308
+ additionalProperties: false
5309
+ required:
5310
+ - runId
5311
+ - status
5312
+ - createdAt
5313
+ - updatedAt
5314
+ - totalBytes
5315
+ - summary
5316
+ - isActive
5317
+ - budget
5318
+ additionalProperties: false
5319
+ parameters:
5320
+ - name: runId
5321
+ in: path
5322
+ required: true
5323
+ schema:
5324
+ type: string
5325
+ /v1/profiler/runs/{runId}/export:
5326
+ post:
5327
+ operationId: profiler_runs_by_runId_export_post
5328
+ summary: Export profiler run
5329
+ description:
5330
+ Package a single profiler run directory as a tar.gz bundle, subject to the same archive size limits used by
5331
+ runtime log exports.
5332
+ tags:
5333
+ - profiler
5334
+ responses:
5335
+ "200":
5336
+ description: Successful response
5337
+ parameters:
5338
+ - name: runId
5339
+ in: path
5340
+ required: true
5341
+ schema:
5342
+ type: string
4821
5343
  /v1/recordings/pause:
4822
5344
  post:
4823
5345
  operationId: recordings_pause_post
@@ -5128,6 +5650,8 @@ paths:
5128
5650
  description: single_channel, multi_channel, or all_channels
5129
5651
  quiet:
5130
5652
  type: boolean
5653
+ reuseConversation:
5654
+ type: boolean
5131
5655
  required:
5132
5656
  - name
5133
5657
  - expression
@@ -5136,6 +5660,7 @@ paths:
5136
5660
  - mode
5137
5661
  - routingIntent
5138
5662
  - quiet
5663
+ - reuseConversation
5139
5664
  additionalProperties: false
5140
5665
  /v1/schedules/{id}/cancel:
5141
5666
  post:
@@ -5601,68 +6126,165 @@ paths:
5601
6126
  skills:
5602
6127
  type: array
5603
6128
  items:
5604
- type: object
5605
- properties:
5606
- id:
5607
- type: string
5608
- name:
5609
- type: string
5610
- description:
5611
- type: string
5612
- emoji:
5613
- type: string
5614
- homepage:
5615
- type: string
5616
- source:
5617
- type: string
5618
- enum:
5619
- - bundled
5620
- - managed
5621
- - workspace
5622
- - clawhub
5623
- - extra
5624
- - catalog
5625
- state:
5626
- type: string
5627
- enum:
5628
- - enabled
5629
- - disabled
5630
- installStatus:
5631
- type: string
5632
- enum:
5633
- - bundled
5634
- - installed
5635
- - available
5636
- updateAvailable:
5637
- type: boolean
5638
- provenance:
5639
- type: object
6129
+ oneOf:
6130
+ - type: object
6131
+ properties:
6132
+ id:
6133
+ type: string
6134
+ name:
6135
+ type: string
6136
+ description:
6137
+ type: string
6138
+ emoji:
6139
+ type: string
6140
+ kind:
6141
+ type: string
6142
+ enum:
6143
+ - bundled
6144
+ - installed
6145
+ - catalog
6146
+ status:
6147
+ type: string
6148
+ enum:
6149
+ - enabled
6150
+ - disabled
6151
+ - available
6152
+ origin:
6153
+ type: string
6154
+ const: vellum
6155
+ required:
6156
+ - id
6157
+ - name
6158
+ - description
6159
+ - kind
6160
+ - status
6161
+ - origin
6162
+ additionalProperties: false
6163
+ - type: object
5640
6164
  properties:
6165
+ id:
6166
+ type: string
6167
+ name:
6168
+ type: string
6169
+ description:
6170
+ type: string
6171
+ emoji:
6172
+ type: string
5641
6173
  kind:
5642
6174
  type: string
5643
6175
  enum:
5644
- - first-party
5645
- - third-party
5646
- - local
5647
- provider:
6176
+ - bundled
6177
+ - installed
6178
+ - catalog
6179
+ status:
5648
6180
  type: string
5649
- originId:
6181
+ enum:
6182
+ - enabled
6183
+ - disabled
6184
+ - available
6185
+ origin:
6186
+ type: string
6187
+ const: clawhub
6188
+ slug:
5650
6189
  type: string
5651
- sourceUrl:
6190
+ author:
6191
+ type: string
6192
+ stars:
6193
+ type: number
6194
+ installs:
6195
+ type: number
6196
+ reports:
6197
+ type: number
6198
+ publishedAt:
5652
6199
  type: string
5653
6200
  required:
6201
+ - id
6202
+ - name
6203
+ - description
5654
6204
  - kind
6205
+ - status
6206
+ - origin
6207
+ - slug
6208
+ - author
6209
+ - stars
6210
+ - installs
6211
+ - reports
6212
+ additionalProperties: false
6213
+ - type: object
6214
+ properties:
6215
+ id:
6216
+ type: string
6217
+ name:
6218
+ type: string
6219
+ description:
6220
+ type: string
6221
+ emoji:
6222
+ type: string
6223
+ kind:
6224
+ type: string
6225
+ enum:
6226
+ - bundled
6227
+ - installed
6228
+ - catalog
6229
+ status:
6230
+ type: string
6231
+ enum:
6232
+ - enabled
6233
+ - disabled
6234
+ - available
6235
+ origin:
6236
+ type: string
6237
+ const: skillssh
6238
+ slug:
6239
+ type: string
6240
+ sourceRepo:
6241
+ type: string
6242
+ installs:
6243
+ type: number
6244
+ required:
6245
+ - id
6246
+ - name
6247
+ - description
6248
+ - kind
6249
+ - status
6250
+ - origin
6251
+ - slug
6252
+ - sourceRepo
6253
+ - installs
6254
+ additionalProperties: false
6255
+ - type: object
6256
+ properties:
6257
+ id:
6258
+ type: string
6259
+ name:
6260
+ type: string
6261
+ description:
6262
+ type: string
6263
+ emoji:
6264
+ type: string
6265
+ kind:
6266
+ type: string
6267
+ enum:
6268
+ - bundled
6269
+ - installed
6270
+ - catalog
6271
+ status:
6272
+ type: string
6273
+ enum:
6274
+ - enabled
6275
+ - disabled
6276
+ - available
6277
+ origin:
6278
+ type: string
6279
+ const: custom
6280
+ required:
6281
+ - id
6282
+ - name
6283
+ - description
6284
+ - kind
6285
+ - status
6286
+ - origin
5655
6287
  additionalProperties: false
5656
- required:
5657
- - id
5658
- - name
5659
- - description
5660
- - source
5661
- - state
5662
- - installStatus
5663
- - updateAvailable
5664
- - provenance
5665
- additionalProperties: false
5666
6288
  description: Skill objects
5667
6289
  required:
5668
6290
  - skills
@@ -5735,12 +6357,235 @@ paths:
5735
6357
  get:
5736
6358
  operationId: skills_by_id_get
5737
6359
  summary: Get skill
5738
- description: Return a single skill by ID.
6360
+ description: Return a single skill by ID with enriched detail fields.
5739
6361
  tags:
5740
6362
  - skills
5741
6363
  responses:
5742
6364
  "200":
5743
6365
  description: Successful response
6366
+ content:
6367
+ application/json:
6368
+ schema:
6369
+ type: object
6370
+ properties:
6371
+ skill:
6372
+ oneOf:
6373
+ - type: object
6374
+ properties:
6375
+ id:
6376
+ type: string
6377
+ name:
6378
+ type: string
6379
+ description:
6380
+ type: string
6381
+ emoji:
6382
+ type: string
6383
+ kind:
6384
+ type: string
6385
+ enum:
6386
+ - bundled
6387
+ - installed
6388
+ - catalog
6389
+ status:
6390
+ type: string
6391
+ enum:
6392
+ - enabled
6393
+ - disabled
6394
+ - available
6395
+ origin:
6396
+ type: string
6397
+ const: vellum
6398
+ required:
6399
+ - id
6400
+ - name
6401
+ - description
6402
+ - kind
6403
+ - status
6404
+ - origin
6405
+ additionalProperties: false
6406
+ - type: object
6407
+ properties:
6408
+ id:
6409
+ type: string
6410
+ name:
6411
+ type: string
6412
+ description:
6413
+ type: string
6414
+ emoji:
6415
+ type: string
6416
+ kind:
6417
+ type: string
6418
+ enum:
6419
+ - bundled
6420
+ - installed
6421
+ - catalog
6422
+ status:
6423
+ type: string
6424
+ enum:
6425
+ - enabled
6426
+ - disabled
6427
+ - available
6428
+ origin:
6429
+ type: string
6430
+ const: clawhub
6431
+ slug:
6432
+ type: string
6433
+ author:
6434
+ type: string
6435
+ stars:
6436
+ type: number
6437
+ installs:
6438
+ type: number
6439
+ reports:
6440
+ type: number
6441
+ publishedAt:
6442
+ type: string
6443
+ owner:
6444
+ anyOf:
6445
+ - type: object
6446
+ properties:
6447
+ handle:
6448
+ type: string
6449
+ displayName:
6450
+ type: string
6451
+ image:
6452
+ type: string
6453
+ required:
6454
+ - handle
6455
+ - displayName
6456
+ additionalProperties: false
6457
+ - type: "null"
6458
+ stats:
6459
+ anyOf:
6460
+ - type: object
6461
+ properties:
6462
+ stars:
6463
+ type: number
6464
+ installs:
6465
+ type: number
6466
+ downloads:
6467
+ type: number
6468
+ versions:
6469
+ type: number
6470
+ required:
6471
+ - stars
6472
+ - installs
6473
+ - downloads
6474
+ - versions
6475
+ additionalProperties: false
6476
+ - type: "null"
6477
+ latestVersion:
6478
+ anyOf:
6479
+ - type: object
6480
+ properties:
6481
+ version:
6482
+ type: string
6483
+ changelog:
6484
+ type: string
6485
+ required:
6486
+ - version
6487
+ additionalProperties: false
6488
+ - type: "null"
6489
+ createdAt:
6490
+ anyOf:
6491
+ - type: number
6492
+ - type: "null"
6493
+ updatedAt:
6494
+ anyOf:
6495
+ - type: number
6496
+ - type: "null"
6497
+ required:
6498
+ - id
6499
+ - name
6500
+ - description
6501
+ - kind
6502
+ - status
6503
+ - origin
6504
+ - slug
6505
+ - author
6506
+ - stars
6507
+ - installs
6508
+ - reports
6509
+ additionalProperties: false
6510
+ - type: object
6511
+ properties:
6512
+ id:
6513
+ type: string
6514
+ name:
6515
+ type: string
6516
+ description:
6517
+ type: string
6518
+ emoji:
6519
+ type: string
6520
+ kind:
6521
+ type: string
6522
+ enum:
6523
+ - bundled
6524
+ - installed
6525
+ - catalog
6526
+ status:
6527
+ type: string
6528
+ enum:
6529
+ - enabled
6530
+ - disabled
6531
+ - available
6532
+ origin:
6533
+ type: string
6534
+ const: skillssh
6535
+ slug:
6536
+ type: string
6537
+ sourceRepo:
6538
+ type: string
6539
+ installs:
6540
+ type: number
6541
+ required:
6542
+ - id
6543
+ - name
6544
+ - description
6545
+ - kind
6546
+ - status
6547
+ - origin
6548
+ - slug
6549
+ - sourceRepo
6550
+ - installs
6551
+ additionalProperties: false
6552
+ - type: object
6553
+ properties:
6554
+ id:
6555
+ type: string
6556
+ name:
6557
+ type: string
6558
+ description:
6559
+ type: string
6560
+ emoji:
6561
+ type: string
6562
+ kind:
6563
+ type: string
6564
+ enum:
6565
+ - bundled
6566
+ - installed
6567
+ - catalog
6568
+ status:
6569
+ type: string
6570
+ enum:
6571
+ - enabled
6572
+ - disabled
6573
+ - available
6574
+ origin:
6575
+ type: string
6576
+ const: custom
6577
+ required:
6578
+ - id
6579
+ - name
6580
+ - description
6581
+ - kind
6582
+ - status
6583
+ - origin
6584
+ additionalProperties: false
6585
+ description: Skill detail object
6586
+ required:
6587
+ - skill
6588
+ additionalProperties: false
5744
6589
  parameters:
5745
6590
  - name: id
5746
6591
  in: path
@@ -5991,6 +6836,12 @@ paths:
5991
6836
  description: Skill spec
5992
6837
  version:
5993
6838
  type: string
6839
+ origin:
6840
+ description: Which registry to install from. When omitted, the install flow auto-detects based on slug format.
6841
+ type: string
6842
+ enum:
6843
+ - clawhub
6844
+ - skillssh
5994
6845
  required:
5995
6846
  - slug
5996
6847
  - url
@@ -6012,13 +6863,171 @@ paths:
6012
6863
  schema:
6013
6864
  type: object
6014
6865
  properties:
6015
- data:
6016
- type: object
6017
- properties: {}
6018
- additionalProperties: {}
6019
- description: Search results
6866
+ skills:
6867
+ type: array
6868
+ items:
6869
+ oneOf:
6870
+ - type: object
6871
+ properties:
6872
+ id:
6873
+ type: string
6874
+ name:
6875
+ type: string
6876
+ description:
6877
+ type: string
6878
+ emoji:
6879
+ type: string
6880
+ kind:
6881
+ type: string
6882
+ enum:
6883
+ - bundled
6884
+ - installed
6885
+ - catalog
6886
+ status:
6887
+ type: string
6888
+ enum:
6889
+ - enabled
6890
+ - disabled
6891
+ - available
6892
+ origin:
6893
+ type: string
6894
+ const: vellum
6895
+ required:
6896
+ - id
6897
+ - name
6898
+ - description
6899
+ - kind
6900
+ - status
6901
+ - origin
6902
+ additionalProperties: false
6903
+ - type: object
6904
+ properties:
6905
+ id:
6906
+ type: string
6907
+ name:
6908
+ type: string
6909
+ description:
6910
+ type: string
6911
+ emoji:
6912
+ type: string
6913
+ kind:
6914
+ type: string
6915
+ enum:
6916
+ - bundled
6917
+ - installed
6918
+ - catalog
6919
+ status:
6920
+ type: string
6921
+ enum:
6922
+ - enabled
6923
+ - disabled
6924
+ - available
6925
+ origin:
6926
+ type: string
6927
+ const: clawhub
6928
+ slug:
6929
+ type: string
6930
+ author:
6931
+ type: string
6932
+ stars:
6933
+ type: number
6934
+ installs:
6935
+ type: number
6936
+ reports:
6937
+ type: number
6938
+ publishedAt:
6939
+ type: string
6940
+ required:
6941
+ - id
6942
+ - name
6943
+ - description
6944
+ - kind
6945
+ - status
6946
+ - origin
6947
+ - slug
6948
+ - author
6949
+ - stars
6950
+ - installs
6951
+ - reports
6952
+ additionalProperties: false
6953
+ - type: object
6954
+ properties:
6955
+ id:
6956
+ type: string
6957
+ name:
6958
+ type: string
6959
+ description:
6960
+ type: string
6961
+ emoji:
6962
+ type: string
6963
+ kind:
6964
+ type: string
6965
+ enum:
6966
+ - bundled
6967
+ - installed
6968
+ - catalog
6969
+ status:
6970
+ type: string
6971
+ enum:
6972
+ - enabled
6973
+ - disabled
6974
+ - available
6975
+ origin:
6976
+ type: string
6977
+ const: skillssh
6978
+ slug:
6979
+ type: string
6980
+ sourceRepo:
6981
+ type: string
6982
+ installs:
6983
+ type: number
6984
+ required:
6985
+ - id
6986
+ - name
6987
+ - description
6988
+ - kind
6989
+ - status
6990
+ - origin
6991
+ - slug
6992
+ - sourceRepo
6993
+ - installs
6994
+ additionalProperties: false
6995
+ - type: object
6996
+ properties:
6997
+ id:
6998
+ type: string
6999
+ name:
7000
+ type: string
7001
+ description:
7002
+ type: string
7003
+ emoji:
7004
+ type: string
7005
+ kind:
7006
+ type: string
7007
+ enum:
7008
+ - bundled
7009
+ - installed
7010
+ - catalog
7011
+ status:
7012
+ type: string
7013
+ enum:
7014
+ - enabled
7015
+ - disabled
7016
+ - available
7017
+ origin:
7018
+ type: string
7019
+ const: custom
7020
+ required:
7021
+ - id
7022
+ - name
7023
+ - description
7024
+ - kind
7025
+ - status
7026
+ - origin
7027
+ additionalProperties: false
7028
+ description: Skill objects matching the search query
6020
7029
  required:
6021
- - data
7030
+ - skills
6022
7031
  additionalProperties: false
6023
7032
  parameters:
6024
7033
  - name: q
@@ -7279,3 +8288,109 @@ paths:
7279
8288
  required:
7280
8289
  - path
7281
8290
  additionalProperties: false
8291
+ /v1/x/{path}:
8292
+ delete:
8293
+ operationId: x_by_path_delete
8294
+ summary: User-defined DELETE route
8295
+ description: Dispatches DELETE requests to user-defined handler files in the workspace routes directory.
8296
+ tags:
8297
+ - user-routes
8298
+ responses:
8299
+ "200":
8300
+ description: Successful response
8301
+ parameters:
8302
+ - name: path
8303
+ in: path
8304
+ required: true
8305
+ schema:
8306
+ type: string
8307
+ get:
8308
+ operationId: x_by_path_get
8309
+ summary: User-defined GET route
8310
+ description: Dispatches GET requests to user-defined handler files in the workspace routes directory.
8311
+ tags:
8312
+ - user-routes
8313
+ responses:
8314
+ "200":
8315
+ description: Successful response
8316
+ parameters:
8317
+ - name: path
8318
+ in: path
8319
+ required: true
8320
+ schema:
8321
+ type: string
8322
+ head:
8323
+ operationId: x_by_path_head
8324
+ summary: User-defined HEAD route
8325
+ description: Dispatches HEAD requests to user-defined handler files in the workspace routes directory.
8326
+ tags:
8327
+ - user-routes
8328
+ responses:
8329
+ "200":
8330
+ description: Successful response
8331
+ parameters:
8332
+ - name: path
8333
+ in: path
8334
+ required: true
8335
+ schema:
8336
+ type: string
8337
+ options:
8338
+ operationId: x_by_path_options
8339
+ summary: User-defined OPTIONS route
8340
+ description: Dispatches OPTIONS requests to user-defined handler files in the workspace routes directory.
8341
+ tags:
8342
+ - user-routes
8343
+ responses:
8344
+ "200":
8345
+ description: Successful response
8346
+ parameters:
8347
+ - name: path
8348
+ in: path
8349
+ required: true
8350
+ schema:
8351
+ type: string
8352
+ patch:
8353
+ operationId: x_by_path_patch
8354
+ summary: User-defined PATCH route
8355
+ description: Dispatches PATCH requests to user-defined handler files in the workspace routes directory.
8356
+ tags:
8357
+ - user-routes
8358
+ responses:
8359
+ "200":
8360
+ description: Successful response
8361
+ parameters:
8362
+ - name: path
8363
+ in: path
8364
+ required: true
8365
+ schema:
8366
+ type: string
8367
+ post:
8368
+ operationId: x_by_path_post
8369
+ summary: User-defined POST route
8370
+ description: Dispatches POST requests to user-defined handler files in the workspace routes directory.
8371
+ tags:
8372
+ - user-routes
8373
+ responses:
8374
+ "200":
8375
+ description: Successful response
8376
+ parameters:
8377
+ - name: path
8378
+ in: path
8379
+ required: true
8380
+ schema:
8381
+ type: string
8382
+ put:
8383
+ operationId: x_by_path_put
8384
+ summary: User-defined PUT route
8385
+ description: Dispatches PUT requests to user-defined handler files in the workspace routes directory.
8386
+ tags:
8387
+ - user-routes
8388
+ responses:
8389
+ "200":
8390
+ description: Successful response
8391
+ parameters:
8392
+ - name: path
8393
+ in: path
8394
+ required: true
8395
+ schema:
8396
+ type: string