@vellumai/assistant 0.10.0 → 0.10.1-dev.202606240206.7c2bca6

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 (959) hide show
  1. package/ARCHITECTURE.md +36 -37
  2. package/bun.lock +3 -0
  3. package/docs/workflows.md +12 -7
  4. package/eslint-rules/cli-no-daemon-internals.js +12 -0
  5. package/node_modules/@slack/types/LICENSE +23 -0
  6. package/node_modules/@slack/types/README.md +32 -0
  7. package/node_modules/@slack/types/dist/block-kit/block-elements.d.ts +953 -0
  8. package/node_modules/@slack/types/dist/block-kit/block-elements.d.ts.map +1 -0
  9. package/node_modules/@slack/types/dist/block-kit/block-elements.js +4 -0
  10. package/node_modules/@slack/types/dist/block-kit/block-elements.js.map +1 -0
  11. package/node_modules/@slack/types/dist/block-kit/blocks.d.ts +474 -0
  12. package/node_modules/@slack/types/dist/block-kit/blocks.d.ts.map +1 -0
  13. package/node_modules/@slack/types/dist/block-kit/blocks.js +3 -0
  14. package/node_modules/@slack/types/dist/block-kit/blocks.js.map +1 -0
  15. package/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts +237 -0
  16. package/node_modules/@slack/types/dist/block-kit/composition-objects.d.ts.map +1 -0
  17. package/node_modules/@slack/types/dist/block-kit/composition-objects.js +4 -0
  18. package/node_modules/@slack/types/dist/block-kit/composition-objects.js.map +1 -0
  19. package/node_modules/@slack/types/dist/block-kit/extensions.d.ts +88 -0
  20. package/node_modules/@slack/types/dist/block-kit/extensions.d.ts.map +1 -0
  21. package/node_modules/@slack/types/dist/block-kit/extensions.js +3 -0
  22. package/node_modules/@slack/types/dist/block-kit/extensions.js.map +1 -0
  23. package/node_modules/@slack/types/dist/calls.d.ts +26 -0
  24. package/node_modules/@slack/types/dist/calls.d.ts.map +1 -0
  25. package/node_modules/@slack/types/dist/calls.js +6 -0
  26. package/node_modules/@slack/types/dist/calls.js.map +1 -0
  27. package/node_modules/@slack/types/dist/chunk.d.ts +52 -0
  28. package/node_modules/@slack/types/dist/chunk.d.ts.map +1 -0
  29. package/node_modules/@slack/types/dist/chunk.js +3 -0
  30. package/node_modules/@slack/types/dist/chunk.js.map +1 -0
  31. package/node_modules/@slack/types/dist/common/bot-profile.d.ts +12 -0
  32. package/node_modules/@slack/types/dist/common/bot-profile.d.ts.map +1 -0
  33. package/node_modules/@slack/types/dist/common/bot-profile.js +3 -0
  34. package/node_modules/@slack/types/dist/common/bot-profile.js.map +1 -0
  35. package/node_modules/@slack/types/dist/common/status-emoji-display-info.d.ts +6 -0
  36. package/node_modules/@slack/types/dist/common/status-emoji-display-info.d.ts.map +1 -0
  37. package/node_modules/@slack/types/dist/common/status-emoji-display-info.js +3 -0
  38. package/node_modules/@slack/types/dist/common/status-emoji-display-info.js.map +1 -0
  39. package/node_modules/@slack/types/dist/dialog.d.ts +36 -0
  40. package/node_modules/@slack/types/dist/dialog.d.ts.map +1 -0
  41. package/node_modules/@slack/types/dist/dialog.js +3 -0
  42. package/node_modules/@slack/types/dist/dialog.js.map +1 -0
  43. package/node_modules/@slack/types/dist/events/app.d.ts +204 -0
  44. package/node_modules/@slack/types/dist/events/app.d.ts.map +1 -0
  45. package/node_modules/@slack/types/dist/events/app.js +3 -0
  46. package/node_modules/@slack/types/dist/events/app.js.map +1 -0
  47. package/node_modules/@slack/types/dist/events/assistant.d.ts +29 -0
  48. package/node_modules/@slack/types/dist/events/assistant.d.ts.map +1 -0
  49. package/node_modules/@slack/types/dist/events/assistant.js +3 -0
  50. package/node_modules/@slack/types/dist/events/assistant.js.map +1 -0
  51. package/node_modules/@slack/types/dist/events/call.d.ts +8 -0
  52. package/node_modules/@slack/types/dist/events/call.d.ts.map +1 -0
  53. package/node_modules/@slack/types/dist/events/call.js +3 -0
  54. package/node_modules/@slack/types/dist/events/call.js.map +1 -0
  55. package/node_modules/@slack/types/dist/events/channel.d.ts +85 -0
  56. package/node_modules/@slack/types/dist/events/channel.d.ts.map +1 -0
  57. package/node_modules/@slack/types/dist/events/channel.js +3 -0
  58. package/node_modules/@slack/types/dist/events/channel.js.map +1 -0
  59. package/node_modules/@slack/types/dist/events/dnd.d.ts +24 -0
  60. package/node_modules/@slack/types/dist/events/dnd.d.ts.map +1 -0
  61. package/node_modules/@slack/types/dist/events/dnd.js +3 -0
  62. package/node_modules/@slack/types/dist/events/dnd.js.map +1 -0
  63. package/node_modules/@slack/types/dist/events/email.d.ts +6 -0
  64. package/node_modules/@slack/types/dist/events/email.d.ts.map +1 -0
  65. package/node_modules/@slack/types/dist/events/email.js +3 -0
  66. package/node_modules/@slack/types/dist/events/email.js.map +1 -0
  67. package/node_modules/@slack/types/dist/events/emoji.d.ts +11 -0
  68. package/node_modules/@slack/types/dist/events/emoji.d.ts.map +1 -0
  69. package/node_modules/@slack/types/dist/events/emoji.js +3 -0
  70. package/node_modules/@slack/types/dist/events/emoji.js.map +1 -0
  71. package/node_modules/@slack/types/dist/events/entity-details-requested.d.ts +21 -0
  72. package/node_modules/@slack/types/dist/events/entity-details-requested.d.ts.map +1 -0
  73. package/node_modules/@slack/types/dist/events/entity-details-requested.js +3 -0
  74. package/node_modules/@slack/types/dist/events/entity-details-requested.js.map +1 -0
  75. package/node_modules/@slack/types/dist/events/file.d.ts +60 -0
  76. package/node_modules/@slack/types/dist/events/file.d.ts.map +1 -0
  77. package/node_modules/@slack/types/dist/events/file.js +4 -0
  78. package/node_modules/@slack/types/dist/events/file.js.map +1 -0
  79. package/node_modules/@slack/types/dist/events/function.d.ts +33 -0
  80. package/node_modules/@slack/types/dist/events/function.d.ts.map +1 -0
  81. package/node_modules/@slack/types/dist/events/function.js +3 -0
  82. package/node_modules/@slack/types/dist/events/function.js.map +1 -0
  83. package/node_modules/@slack/types/dist/events/grid-migration.d.ts +9 -0
  84. package/node_modules/@slack/types/dist/events/grid-migration.d.ts.map +1 -0
  85. package/node_modules/@slack/types/dist/events/grid-migration.js +3 -0
  86. package/node_modules/@slack/types/dist/events/grid-migration.js.map +1 -0
  87. package/node_modules/@slack/types/dist/events/group.d.ts +55 -0
  88. package/node_modules/@slack/types/dist/events/group.d.ts.map +1 -0
  89. package/node_modules/@slack/types/dist/events/group.js +3 -0
  90. package/node_modules/@slack/types/dist/events/group.js.map +1 -0
  91. package/node_modules/@slack/types/dist/events/im.d.ts +26 -0
  92. package/node_modules/@slack/types/dist/events/im.d.ts.map +1 -0
  93. package/node_modules/@slack/types/dist/events/im.js +3 -0
  94. package/node_modules/@slack/types/dist/events/im.js.map +1 -0
  95. package/node_modules/@slack/types/dist/events/index.d.ts +60 -0
  96. package/node_modules/@slack/types/dist/events/index.d.ts.map +1 -0
  97. package/node_modules/@slack/types/dist/events/index.js +43 -0
  98. package/node_modules/@slack/types/dist/events/index.js.map +1 -0
  99. package/node_modules/@slack/types/dist/events/invite.d.ts +20 -0
  100. package/node_modules/@slack/types/dist/events/invite.d.ts.map +1 -0
  101. package/node_modules/@slack/types/dist/events/invite.js +3 -0
  102. package/node_modules/@slack/types/dist/events/invite.js.map +1 -0
  103. package/node_modules/@slack/types/dist/events/link-shared.d.ts +16 -0
  104. package/node_modules/@slack/types/dist/events/link-shared.d.ts.map +1 -0
  105. package/node_modules/@slack/types/dist/events/link-shared.js +3 -0
  106. package/node_modules/@slack/types/dist/events/link-shared.js.map +1 -0
  107. package/node_modules/@slack/types/dist/events/member.d.ts +19 -0
  108. package/node_modules/@slack/types/dist/events/member.d.ts.map +1 -0
  109. package/node_modules/@slack/types/dist/events/member.js +3 -0
  110. package/node_modules/@slack/types/dist/events/member.js.map +1 -0
  111. package/node_modules/@slack/types/dist/events/message-metadata.d.ts +38 -0
  112. package/node_modules/@slack/types/dist/events/message-metadata.d.ts.map +1 -0
  113. package/node_modules/@slack/types/dist/events/message-metadata.js +3 -0
  114. package/node_modules/@slack/types/dist/events/message-metadata.js.map +1 -0
  115. package/node_modules/@slack/types/dist/events/message.d.ts +306 -0
  116. package/node_modules/@slack/types/dist/events/message.d.ts.map +1 -0
  117. package/node_modules/@slack/types/dist/events/message.js +3 -0
  118. package/node_modules/@slack/types/dist/events/message.js.map +1 -0
  119. package/node_modules/@slack/types/dist/events/pin.d.ts +60 -0
  120. package/node_modules/@slack/types/dist/events/pin.d.ts.map +1 -0
  121. package/node_modules/@slack/types/dist/events/pin.js +3 -0
  122. package/node_modules/@slack/types/dist/events/pin.js.map +1 -0
  123. package/node_modules/@slack/types/dist/events/reaction.d.ts +23 -0
  124. package/node_modules/@slack/types/dist/events/reaction.d.ts.map +1 -0
  125. package/node_modules/@slack/types/dist/events/reaction.js +3 -0
  126. package/node_modules/@slack/types/dist/events/reaction.js.map +1 -0
  127. package/node_modules/@slack/types/dist/events/shared-channel.d.ts +134 -0
  128. package/node_modules/@slack/types/dist/events/shared-channel.d.ts.map +1 -0
  129. package/node_modules/@slack/types/dist/events/shared-channel.js +3 -0
  130. package/node_modules/@slack/types/dist/events/shared-channel.js.map +1 -0
  131. package/node_modules/@slack/types/dist/events/star.d.ts +13 -0
  132. package/node_modules/@slack/types/dist/events/star.d.ts.map +1 -0
  133. package/node_modules/@slack/types/dist/events/star.js +3 -0
  134. package/node_modules/@slack/types/dist/events/star.js.map +1 -0
  135. package/node_modules/@slack/types/dist/events/steps-from-apps.d.ts +82 -0
  136. package/node_modules/@slack/types/dist/events/steps-from-apps.d.ts.map +1 -0
  137. package/node_modules/@slack/types/dist/events/steps-from-apps.js +3 -0
  138. package/node_modules/@slack/types/dist/events/steps-from-apps.js.map +1 -0
  139. package/node_modules/@slack/types/dist/events/subteam.d.ts +66 -0
  140. package/node_modules/@slack/types/dist/events/subteam.d.ts.map +1 -0
  141. package/node_modules/@slack/types/dist/events/subteam.js +3 -0
  142. package/node_modules/@slack/types/dist/events/subteam.js.map +1 -0
  143. package/node_modules/@slack/types/dist/events/team.d.ts +99 -0
  144. package/node_modules/@slack/types/dist/events/team.d.ts.map +1 -0
  145. package/node_modules/@slack/types/dist/events/team.js +3 -0
  146. package/node_modules/@slack/types/dist/events/team.js.map +1 -0
  147. package/node_modules/@slack/types/dist/events/token.d.ts +8 -0
  148. package/node_modules/@slack/types/dist/events/token.d.ts.map +1 -0
  149. package/node_modules/@slack/types/dist/events/token.js +3 -0
  150. package/node_modules/@slack/types/dist/events/token.js.map +1 -0
  151. package/node_modules/@slack/types/dist/events/user.d.ts +313 -0
  152. package/node_modules/@slack/types/dist/events/user.d.ts.map +1 -0
  153. package/node_modules/@slack/types/dist/events/user.js +3 -0
  154. package/node_modules/@slack/types/dist/events/user.js.map +1 -0
  155. package/node_modules/@slack/types/dist/index.d.ts +12 -0
  156. package/node_modules/@slack/types/dist/index.d.ts.map +1 -0
  157. package/node_modules/@slack/types/dist/index.js +28 -0
  158. package/node_modules/@slack/types/dist/index.js.map +1 -0
  159. package/node_modules/@slack/types/dist/message-attachments.d.ts +171 -0
  160. package/node_modules/@slack/types/dist/message-attachments.d.ts.map +1 -0
  161. package/node_modules/@slack/types/dist/message-attachments.js +3 -0
  162. package/node_modules/@slack/types/dist/message-attachments.js.map +1 -0
  163. package/node_modules/@slack/types/dist/message-metadata.d.ts +281 -0
  164. package/node_modules/@slack/types/dist/message-metadata.d.ts.map +1 -0
  165. package/node_modules/@slack/types/dist/message-metadata.js +27 -0
  166. package/node_modules/@slack/types/dist/message-metadata.js.map +1 -0
  167. package/node_modules/@slack/types/dist/views.d.ts +71 -0
  168. package/node_modules/@slack/types/dist/views.d.ts.map +1 -0
  169. package/node_modules/@slack/types/dist/views.js +3 -0
  170. package/node_modules/@slack/types/dist/views.js.map +1 -0
  171. package/node_modules/@slack/types/package.json +47 -0
  172. package/node_modules/@vellumai/gateway-client/bun.lock +3 -0
  173. package/node_modules/@vellumai/gateway-client/package.json +1 -0
  174. package/node_modules/@vellumai/gateway-client/src/__tests__/contact-read-contracts.test.ts +69 -0
  175. package/node_modules/@vellumai/gateway-client/src/__tests__/guardian-delivery-contract.test.ts +91 -0
  176. package/node_modules/@vellumai/gateway-client/src/__tests__/trust-verdict-contract.test.ts +96 -0
  177. package/node_modules/@vellumai/gateway-client/src/gateway-ipc-contracts.ts +162 -0
  178. package/node_modules/@vellumai/gateway-client/src/guardian-delivery-contract.ts +48 -0
  179. package/node_modules/@vellumai/gateway-client/src/inbound-contract.ts +8 -0
  180. package/node_modules/@vellumai/gateway-client/src/index.ts +28 -0
  181. package/node_modules/@vellumai/gateway-client/src/ipc-client.ts +4 -2
  182. package/node_modules/@vellumai/gateway-client/src/outbound-contract.ts +3 -2
  183. package/node_modules/@vellumai/gateway-client/src/trust-verdict-contract.ts +95 -0
  184. package/openapi.yaml +458 -18
  185. package/package.json +2 -1
  186. package/scripts/memory-inspect.ts +24 -14
  187. package/scripts/test.sh +36 -15
  188. package/src/__tests__/access-request-seed-content-blocks.test.ts +83 -103
  189. package/src/__tests__/activation-early-marking.test.ts +1 -1
  190. package/src/__tests__/actor-token-service.test.ts +39 -17
  191. package/src/__tests__/agent-loop-callsite-precedence.test.ts +1 -40
  192. package/src/__tests__/agent-loop-compaction-events.test.ts +0 -1
  193. package/src/__tests__/agent-loop-compaction-strip.test.ts +0 -1
  194. package/src/__tests__/agent-loop-exit-reason.test.ts +0 -1
  195. package/src/__tests__/agent-loop-pushes-post-hook-prompt.test.ts +306 -0
  196. package/src/__tests__/agent-loop-regrowth-guard.test.ts +0 -1
  197. package/src/__tests__/agent-loop.test.ts +3 -0
  198. package/src/__tests__/agent-wake-override-profile.test.ts +2 -0
  199. package/src/__tests__/anthropic-provider.test.ts +210 -9
  200. package/src/__tests__/app-builder-skill-instructions.test.ts +47 -5
  201. package/src/__tests__/app-conversation-ids-backfill.test.ts +1 -1
  202. package/src/__tests__/app-source-watcher.test.ts +30 -10
  203. package/src/__tests__/approval-cascade.test.ts +6 -0
  204. package/src/__tests__/approval-interception-trust-gates.test.ts +151 -0
  205. package/src/__tests__/approval-primitive.test.ts +1 -1
  206. package/src/__tests__/approval-routes-http.test.ts +1 -1
  207. package/src/__tests__/assistant-attachments.test.ts +155 -0
  208. package/src/__tests__/assistant-event-hub-machine-name.test.ts +2 -4
  209. package/src/__tests__/assistant-events-sse-hardening.test.ts +1 -1
  210. package/src/__tests__/assistant-events-sse-shed.test.ts +1 -1
  211. package/src/__tests__/attachment-upload-trusted-source.test.ts +13 -8
  212. package/src/__tests__/attachments-store.test.ts +1 -1
  213. package/src/__tests__/audit-log-rotation.test.ts +50 -54
  214. package/src/__tests__/auth-fallback-events-store.test.ts +1 -1
  215. package/src/__tests__/auto-analysis-end-to-end.test.ts +9 -14
  216. package/src/__tests__/background-shell-bash.test.ts +4 -1
  217. package/src/__tests__/background-shell-host-bash.test.ts +17 -3
  218. package/src/__tests__/background-workers-disk-pressure.test.ts +1 -0
  219. package/src/__tests__/call-controller.test.ts +20 -1
  220. package/src/__tests__/call-conversation-messages.test.ts +1 -1
  221. package/src/__tests__/call-domain.test.ts +1 -1
  222. package/src/__tests__/call-pointer-messages.test.ts +3 -4
  223. package/src/__tests__/call-recovery.test.ts +1 -1
  224. package/src/__tests__/call-routes-http.test.ts +1 -1
  225. package/src/__tests__/call-store.test.ts +1 -1
  226. package/src/__tests__/cancel-resolves-conversation-key.test.ts +1 -1
  227. package/src/__tests__/canonical-guardian-store.test.ts +24 -1
  228. package/src/__tests__/card-surface-data.test.ts +60 -0
  229. package/src/__tests__/channel-approval-routes.test.ts +73 -1119
  230. package/src/__tests__/channel-delivery-store.test.ts +1 -1
  231. package/src/__tests__/channel-guardian.test.ts +291 -641
  232. package/src/__tests__/channel-inbound-disk-pressure.test.ts +1 -2
  233. package/src/__tests__/channel-retry-sweep.test.ts +1 -1
  234. package/src/__tests__/compaction-events.test.ts +6 -0
  235. package/src/__tests__/compaction-trail-store.test.ts +6 -5
  236. package/src/__tests__/compaction.benchmark.test.ts +0 -1
  237. package/src/__tests__/compactor-image-manifest-trust.test.ts +1 -1
  238. package/src/__tests__/config-loader-backfill.test.ts +188 -52
  239. package/src/__tests__/config-schema.test.ts +35 -0
  240. package/src/__tests__/confirmation-request-guardian-bridge.test.ts +1 -2
  241. package/src/__tests__/contact-store-user-file.test.ts +2 -2
  242. package/src/__tests__/contacts-relay-reads.test.ts +409 -0
  243. package/src/__tests__/contacts-tools.test.ts +4 -4
  244. package/src/__tests__/contacts-write.test.ts +1 -2
  245. package/src/__tests__/context-search-conversations-source.test.ts +1 -1
  246. package/src/__tests__/context-window-manager-compact-retry.test.ts +6 -2
  247. package/src/__tests__/context-window-manager-overflow-rung.test.ts +6 -2
  248. package/src/__tests__/conversation-abort-tool-results.test.ts +6 -0
  249. package/src/__tests__/conversation-agent-loop-disk-pressure.test.ts +3 -0
  250. package/src/__tests__/conversation-agent-loop-inference-profile.test.ts +3 -0
  251. package/src/__tests__/conversation-agent-loop-overflow.test.ts +3 -0
  252. package/src/__tests__/conversation-agent-loop.test.ts +7 -0
  253. package/src/__tests__/conversation-attachments.test.ts +2 -5
  254. package/src/__tests__/conversation-attention-store.test.ts +1 -1
  255. package/src/__tests__/conversation-attention-telegram.test.ts +1 -2
  256. package/src/__tests__/conversation-clear-safety.test.ts +1 -1
  257. package/src/__tests__/conversation-confirmation-signals.test.ts +6 -0
  258. package/src/__tests__/conversation-crud-inference-profile.test.ts +1 -1
  259. package/src/__tests__/conversation-delete-schedule-cleanup.test.ts +12 -19
  260. package/src/__tests__/conversation-disk-view-integration.test.ts +1 -1
  261. package/src/__tests__/conversation-disk-view.test.ts +1 -1
  262. package/src/__tests__/conversation-fork-crud.test.ts +10 -8
  263. package/src/__tests__/conversation-fork-retrospective.test.ts +250 -0
  264. package/src/__tests__/conversation-fork-route.test.ts +1 -1
  265. package/src/__tests__/conversation-inference-profile-list.test.ts +1 -1
  266. package/src/__tests__/conversation-inference-profile-route.test.ts +1 -1
  267. package/src/__tests__/conversation-init.benchmark.test.ts +1 -1
  268. package/src/__tests__/conversation-key-store-disk-view.test.ts +1 -1
  269. package/src/__tests__/conversation-lifecycle.test.ts +117 -0
  270. package/src/__tests__/conversation-list-source.test.ts +3 -3
  271. package/src/__tests__/conversation-process-callsite.test.ts +6 -14
  272. package/src/__tests__/conversation-provider-retry-repair.test.ts +6 -0
  273. package/src/__tests__/conversation-queue.test.ts +95 -0
  274. package/src/__tests__/conversation-routes-disk-view.test.ts +1 -1
  275. package/src/__tests__/conversation-routes-guardian-reply.test.ts +12 -0
  276. package/src/__tests__/conversation-routes-slash-commands.test.ts +12 -0
  277. package/src/__tests__/conversation-runtime-assembly.test.ts +115 -12
  278. package/src/__tests__/conversation-slash-queue.test.ts +6 -0
  279. package/src/__tests__/conversation-slash-unknown.test.ts +6 -0
  280. package/src/__tests__/conversation-speed-override.test.ts +6 -0
  281. package/src/__tests__/conversation-starter-routes.test.ts +5 -5
  282. package/src/__tests__/conversation-store.test.ts +1 -1
  283. package/src/__tests__/conversation-surfaces-activation-emit.test.ts +4 -4
  284. package/src/__tests__/conversation-surfaces-task-progress.test.ts +352 -0
  285. package/src/__tests__/conversation-sync-tags.test.ts +1 -1
  286. package/src/__tests__/conversation-tool-setup-attribution.test.ts +47 -0
  287. package/src/__tests__/conversation-usage.test.ts +1 -1
  288. package/src/__tests__/conversation-wipe.test.ts +9 -8
  289. package/src/__tests__/conversation-workspace-cache-state.test.ts +6 -0
  290. package/src/__tests__/conversation-workspace-injection.test.ts +6 -0
  291. package/src/__tests__/conversation-workspace-tool-tracking.test.ts +6 -0
  292. package/src/__tests__/conversations-import-system-filter.test.ts +1 -1
  293. package/src/__tests__/copy-composer-tc-templates.test.ts +17 -0
  294. package/src/__tests__/credential-security-invariants.test.ts +0 -1
  295. package/src/__tests__/db-acp-history.test.ts +2 -2
  296. package/src/__tests__/db-conversation-fork-lineage-migration.test.ts +5 -7
  297. package/src/__tests__/db-conversation-inference-profile-migration.test.ts +6 -7
  298. package/src/__tests__/db-llm-request-log-provider-migration.test.ts +5 -10
  299. package/src/__tests__/db-migration-rollback.test.ts +129 -39
  300. package/src/__tests__/db-proxy-transaction.test.ts +1 -1
  301. package/src/__tests__/db-schedule-syntax-migration.test.ts +0 -11
  302. package/src/__tests__/db-test-helpers.ts +36 -19
  303. package/src/__tests__/delete-propagation.test.ts +1 -1
  304. package/src/__tests__/deterministic-verification-control-plane.test.ts +28 -8
  305. package/src/__tests__/disk-pressure-tools.test.ts +41 -1
  306. package/src/__tests__/dm-backfill.test.ts +1 -1
  307. package/src/__tests__/drop-capability-card-state-migration.test.ts +0 -8
  308. package/src/__tests__/dynamic-page-surface.test.ts +0 -94
  309. package/src/__tests__/edit-propagation.test.ts +1 -1
  310. package/src/__tests__/emit-signal-routing-intent.test.ts +93 -5
  311. package/src/__tests__/empty-response-hook.test.ts +42 -0
  312. package/src/__tests__/events-client-registration.test.ts +1 -1
  313. package/src/__tests__/events-dev-bypass-actor.test.ts +7 -1
  314. package/src/__tests__/followup-tools.test.ts +1 -1
  315. package/src/__tests__/gemini-count-tokens.test.ts +70 -0
  316. package/src/__tests__/guardian-action-sweep.test.ts +9 -2
  317. package/src/__tests__/guardian-binding-drift-heal.test.ts +76 -11
  318. package/src/__tests__/guardian-card-withdrawal.test.ts +1 -1
  319. package/src/__tests__/guardian-decision-primitive-canonical.test.ts +1 -1
  320. package/src/__tests__/guardian-dispatch.test.ts +96 -2
  321. package/src/__tests__/guardian-outbound-http.test.ts +20 -12
  322. package/src/__tests__/guardian-principal-id-roundtrip.test.ts +1 -1
  323. package/src/__tests__/guardian-routing-invariants.test.ts +2 -4
  324. package/src/__tests__/guardian-routing-state.test.ts +1 -2
  325. package/src/__tests__/guardian-verification-voice-binding.test.ts +1 -1
  326. package/src/__tests__/headless-browser-mode.test.ts +2 -2
  327. package/src/__tests__/heartbeat-disk-pressure.test.ts +4 -0
  328. package/src/__tests__/heartbeat-service.test.ts +6 -0
  329. package/src/__tests__/helpers/channel-test-adapter.ts +92 -0
  330. package/src/__tests__/host-app-control-routes.test.ts +24 -30
  331. package/src/__tests__/host-bash-routes.test.ts +31 -41
  332. package/src/__tests__/host-browser-routes.test.ts +26 -32
  333. package/src/__tests__/host-cu-routes-targeted.test.ts +25 -33
  334. package/src/__tests__/host-file-routes-targeted.test.ts +40 -52
  335. package/src/__tests__/host-transfer-routes-targeted.test.ts +31 -43
  336. package/src/__tests__/http-conversation-lineage.test.ts +1 -1
  337. package/src/__tests__/http-user-message-parity.test.ts +165 -8
  338. package/src/__tests__/image-recovery-hook.test.ts +1 -1
  339. package/src/__tests__/inbound-invite-redemption.test.ts +1 -2
  340. package/src/__tests__/inbound-trust-verdict.test.ts +254 -0
  341. package/src/__tests__/inference-profile-reaper.test.ts +1 -1
  342. package/src/__tests__/inference-profile-session-handler.test.ts +1 -1
  343. package/src/__tests__/inference-profile-session-ipc.test.ts +1 -1
  344. package/src/__tests__/injector-chain.test.ts +1 -1
  345. package/src/__tests__/injector-disk-pressure.test.ts +11 -6
  346. package/src/__tests__/internal-telemetry-routes.test.ts +1 -1
  347. package/src/__tests__/invite-redemption-service.test.ts +244 -43
  348. package/src/__tests__/invite-routes-http.test.ts +35 -186
  349. package/src/__tests__/invite-service-ipc.test.ts +287 -0
  350. package/src/__tests__/jobs-store-qdrant-breaker.test.ts +5 -5
  351. package/src/__tests__/jobs-store-upsert-debounced.test.ts +9 -12
  352. package/src/__tests__/list-messages-attachments.test.ts +42 -1
  353. package/src/__tests__/list-messages-client-message-id.test.ts +1 -1
  354. package/src/__tests__/list-messages-hidden-metadata.test.ts +1 -1
  355. package/src/__tests__/list-messages-page-latest.test.ts +1 -1
  356. package/src/__tests__/list-messages-tool-merge.test.ts +1 -1
  357. package/src/__tests__/llm-context-normalization.test.ts +105 -0
  358. package/src/__tests__/llm-context-route-provider.test.ts +69 -4
  359. package/src/__tests__/llm-request-log-agent-loop-exit-reason.test.ts +9 -5
  360. package/src/__tests__/llm-request-log-call-site.test.ts +6 -6
  361. package/src/__tests__/llm-request-log-turn-query.test.ts +27 -13
  362. package/src/__tests__/llm-resolver.test.ts +205 -5
  363. package/src/__tests__/llm-usage-store.test.ts +65 -1
  364. package/src/__tests__/log-export-routes.test.ts +1 -1
  365. package/src/__tests__/log-export-workspace.test.ts +3 -3
  366. package/src/__tests__/media-stream-server-integration.test.ts +127 -0
  367. package/src/__tests__/memory-jobs-worker-lanes.test.ts +5 -5
  368. package/src/__tests__/memory-recall-log-store.test.ts +1 -1
  369. package/src/__tests__/memory-upsert-concurrency.test.ts +3 -4
  370. package/src/__tests__/messages-after-tiebreaker.test.ts +1 -1
  371. package/src/__tests__/migration-import-from-url.test.ts +2 -2
  372. package/src/__tests__/mtime-cache.test.ts +375 -0
  373. package/src/__tests__/non-member-access-request.test.ts +190 -19
  374. package/src/__tests__/notification-broadcaster.test.ts +4 -0
  375. package/src/__tests__/notification-candidate-guardian-context.test.ts +203 -0
  376. package/src/__tests__/notification-decision-recipient-context.test.ts +33 -32
  377. package/src/__tests__/notification-deep-link.test.ts +4 -0
  378. package/src/__tests__/notification-guardian-path.test.ts +20 -1
  379. package/src/__tests__/notification-schedule-notify-dedup.test.ts +1 -1
  380. package/src/__tests__/oauth-provider-profiles.test.ts +1 -1
  381. package/src/__tests__/oauth-provider-visibility.test.ts +1 -1
  382. package/src/__tests__/oauth-store.test.ts +1 -1
  383. package/src/__tests__/pending-interactions-resolved-event.test.ts +7 -4
  384. package/src/__tests__/persist-unsendable-image-downscale.test.ts +1 -1
  385. package/src/__tests__/persist-unsendable-image.test.ts +1 -1
  386. package/src/__tests__/persona-resolver.test.ts +39 -1
  387. package/src/__tests__/platform-bash-auto-approve.test.ts +1 -1
  388. package/src/__tests__/playbook-execution.test.ts +1 -1
  389. package/src/__tests__/playbook-tools.test.ts +1 -1
  390. package/src/__tests__/plugin-api-model-profiles.test.ts +74 -21
  391. package/src/__tests__/plugin-bootstrap.test.ts +78 -0
  392. package/src/__tests__/provider-platform-proxy-integration.test.ts +25 -5
  393. package/src/__tests__/provider-usage-tracking.test.ts +1 -1
  394. package/src/__tests__/prune-old-conversations-job.test.ts +1 -1
  395. package/src/__tests__/reaction-persistence.test.ts +1 -1
  396. package/src/__tests__/relay-server.test.ts +1026 -73
  397. package/src/__tests__/runtime-attachment-metadata.test.ts +9 -1
  398. package/src/__tests__/runtime-events-sse-bilingual.test.ts +7 -9
  399. package/src/__tests__/runtime-events-sse-parity.test.ts +1 -1
  400. package/src/__tests__/runtime-events-sse-reconnect.test.ts +1 -1
  401. package/src/__tests__/runtime-events-sse.test.ts +1 -1
  402. package/src/__tests__/schedule-retry.test.ts +1 -1
  403. package/src/__tests__/schedule-routes-workflow-validation.test.ts +1 -1
  404. package/src/__tests__/schedule-routes.test.ts +1 -1
  405. package/src/__tests__/schedule-store.test.ts +1 -1
  406. package/src/__tests__/schedule-tools.test.ts +1 -1
  407. package/src/__tests__/scheduler-disk-pressure.test.ts +1 -1
  408. package/src/__tests__/scheduler-recurrence.test.ts +1 -1
  409. package/src/__tests__/scheduler-reuse-conversation.test.ts +1 -1
  410. package/src/__tests__/scheduler-wake.test.ts +2 -1
  411. package/src/__tests__/scoped-approval-grants.test.ts +1 -1
  412. package/src/__tests__/scoped-grant-security-matrix.test.ts +5 -5
  413. package/src/__tests__/scrub-corrupted-image-attachments.test.ts +0 -8
  414. package/src/__tests__/secret-ingress-http.test.ts +12 -0
  415. package/src/__tests__/secret-routes-platform-proxy.test.ts +1 -0
  416. package/src/__tests__/send-endpoint-busy.test.ts +31 -9
  417. package/src/__tests__/sequence-store.test.ts +1 -1
  418. package/src/__tests__/server-history-render.test.ts +40 -1
  419. package/src/__tests__/settings-routes.test.ts +11 -10
  420. package/src/__tests__/skill-load-tool.test.ts +72 -0
  421. package/src/__tests__/skills.test.ts +44 -0
  422. package/src/__tests__/slack-inbound-verification.test.ts +48 -5
  423. package/src/__tests__/slack-messaging-token-resolution.test.ts +13 -2
  424. package/src/__tests__/slack-reaction-canonical-approval.test.ts +1 -1
  425. package/src/__tests__/sse-actor-principal-guardian-source.test.ts +102 -0
  426. package/src/__tests__/steer-on-enqueue-question.test.ts +181 -0
  427. package/src/__tests__/stt-hints.test.ts +44 -13
  428. package/src/__tests__/subagent-detail.test.ts +27 -0
  429. package/src/__tests__/subagent-disposal.test.ts +65 -0
  430. package/src/__tests__/subagent-tool-gate-mode.test.ts +2 -73
  431. package/src/__tests__/subagent-tools.test.ts +1 -31
  432. package/src/__tests__/system-prompt.test.ts +1 -1
  433. package/src/__tests__/system-storage-cleanup-skill.test.ts +56 -0
  434. package/src/__tests__/task-compiler.test.ts +1 -1
  435. package/src/__tests__/task-management-tools.test.ts +1 -1
  436. package/src/__tests__/task-memory-cleanup.test.ts +9 -6
  437. package/src/__tests__/task-scheduler.test.ts +1 -1
  438. package/src/__tests__/thread-backfill.test.ts +1 -1
  439. package/src/__tests__/tool-approval-handler.test.ts +1 -1
  440. package/src/__tests__/tool-approval-seed-content-blocks.test.ts +2 -0
  441. package/src/__tests__/tool-executor.test.ts +37 -1
  442. package/src/__tests__/tool-grant-request-escalation.test.ts +1 -2
  443. package/src/__tests__/trusted-contact-inline-approval-integration.test.ts +73 -1
  444. package/src/__tests__/trusted-contact-lifecycle-notifications.test.ts +34 -34
  445. package/src/__tests__/trusted-contact-multichannel.test.ts +1 -2
  446. package/src/__tests__/trusted-contact-verification.test.ts +1 -1
  447. package/src/__tests__/turn-boundary-resolution.test.ts +3 -3
  448. package/src/__tests__/turn-events-store.test.ts +1 -1
  449. package/src/__tests__/twilio-routes.test.ts +98 -3
  450. package/src/__tests__/usage-cache-backfill-migration.test.ts +20 -10
  451. package/src/__tests__/usage-routes.test.ts +1 -1
  452. package/src/__tests__/user-plugin-loader.test.ts +34 -29
  453. package/src/__tests__/verification-control-plane-policy.test.ts +2 -2
  454. package/src/__tests__/voice-invite-redemption.test.ts +134 -36
  455. package/src/__tests__/voice-scoped-grant-consumer.test.ts +1 -1
  456. package/src/__tests__/voice-session-bridge.test.ts +1 -1
  457. package/src/__tests__/workspace-git-service.test.ts +114 -1
  458. package/src/__tests__/workspace-heartbeat-service.test.ts +45 -0
  459. package/src/__tests__/workspace-migration-009-backfill-conversation-disk-view.test.ts +1 -1
  460. package/src/__tests__/workspace-migration-013-repair-conversation-disk-view.test.ts +1 -1
  461. package/src/__tests__/workspace-migration-028-recover-conversations-from-disk-view.test.ts +88 -18
  462. package/src/__tests__/workspace-migration-108-drop-balanced-economy-profile.test.ts +6 -6
  463. package/src/__tests__/workspace-migration-109-swap-quality-profile-to-glm-5p2.test.ts +281 -0
  464. package/src/__tests__/workspace-migration-110-flip-balanced-profile-to-together.test.ts +167 -0
  465. package/src/__tests__/workspace-migrations-runner.test.ts +55 -0
  466. package/src/a2a/__tests__/e2e-a2a-channel.test.ts +1 -1
  467. package/src/a2a/__tests__/task-store.test.ts +1 -1
  468. package/src/acp/__tests__/session-manager-persistence.test.ts +1 -1
  469. package/src/acp/__tests__/session-manager-resume.test.ts +22 -11
  470. package/src/acp/__tests__/session-manager-startup.test.ts +1 -1
  471. package/src/acp/__tests__/session-manager.test.ts +72 -1
  472. package/src/acp/index.ts +10 -0
  473. package/src/acp/session-manager.ts +35 -0
  474. package/src/agent/loop.ts +45 -27
  475. package/src/api/constants/sse-replay.ts +41 -0
  476. package/src/api/events/ui-surface-show.ts +8 -3
  477. package/src/api/index.ts +7 -6
  478. package/src/api/responses/conversation-message.ts +4 -0
  479. package/src/api/responses/llm-request-log-entry.ts +25 -0
  480. package/src/api/responses/subagent-detail.ts +17 -0
  481. package/src/api/surfaces.ts +33 -0
  482. package/src/approvals/AGENTS.md +1 -2
  483. package/src/approvals/guardian-decision-primitive.ts +13 -210
  484. package/src/approvals/guardian-request-resolvers.ts +104 -58
  485. package/src/background-wake/wake-intent-hooks.test.ts +1 -1
  486. package/src/calls/__tests__/inbound-trust-reader.test.ts +110 -0
  487. package/src/calls/__tests__/relay-setup-router.test.ts +349 -65
  488. package/src/calls/guardian-dispatch.ts +10 -8
  489. package/src/calls/inbound-trust-reader.ts +56 -0
  490. package/src/calls/media-stream-server.ts +21 -0
  491. package/src/calls/relay-server.ts +231 -72
  492. package/src/calls/relay-setup-router.ts +57 -13
  493. package/src/calls/relay-verification.ts +7 -7
  494. package/src/calls/stt-hints.ts +9 -12
  495. package/src/calls/twilio-routes.ts +13 -3
  496. package/src/cli/commands/__tests__/cache.test.ts +8 -1
  497. package/src/cli/commands/cache.ts +194 -181
  498. package/src/cli/commands/contacts.ts +6 -24
  499. package/src/cli/commands/db/__tests__/repair.test.ts +15 -6
  500. package/src/cli/commands/db/__tests__/status.test.ts +7 -3
  501. package/src/cli/commands/db/status.ts +212 -33
  502. package/src/cli/commands/mcp.ts +252 -218
  503. package/src/cli/commands/memory/__tests__/memory-v3.test.ts +6 -1
  504. package/src/cli/commands/memory/__tests__/worker.test.ts +302 -0
  505. package/src/cli/commands/memory/index.ts +4 -0
  506. package/src/cli/commands/memory/memory-retrospective.ts +129 -0
  507. package/src/cli/commands/memory/memory-v3.ts +176 -4
  508. package/src/cli/commands/memory/worker.ts +175 -0
  509. package/src/cli/commands/plugins.ts +343 -14
  510. package/src/cli/lib/__tests__/install-from-github.test.ts +40 -0
  511. package/src/cli/lib/__tests__/list-installed-plugins.test.ts +160 -1
  512. package/src/cli/lib/__tests__/plugin-pin-history.test.ts +162 -0
  513. package/src/cli/lib/__tests__/toggle-plugin.test.ts +158 -0
  514. package/src/cli/lib/install-from-github.ts +47 -6
  515. package/src/cli/lib/list-installed-plugins.ts +179 -1
  516. package/src/cli/lib/plugin-marketplace.ts +11 -0
  517. package/src/cli/lib/plugin-pin-history.ts +257 -0
  518. package/src/cli/lib/toggle-plugin.ts +146 -0
  519. package/src/config/__tests__/loader-callsite-strip-fallback.test.ts +143 -0
  520. package/src/config/__tests__/sync-gated-profiles.test.ts +2 -2
  521. package/src/config/bundled-skills/app-builder/SKILL.md +15 -33
  522. package/src/config/bundled-skills/app-builder/references/DESIGN_SYSTEM.md +3 -8
  523. package/src/config/bundled-skills/app-builder/references/INTERACTION_HOOKS.md +64 -37
  524. package/src/config/bundled-skills/app-builder/references/RESPONSIVE.md +1 -1
  525. package/src/config/bundled-skills/app-builder/references/WIDGETS.md +14 -72
  526. package/src/config/bundled-skills/app-builder/references/examples/README.md +1 -2
  527. package/src/config/bundled-skills/contacts/SKILL.md +7 -12
  528. package/src/config/bundled-skills/messaging/tools/shared.ts +4 -1
  529. package/src/config/bundled-skills/system-storage-cleanup/SKILL.md +74 -0
  530. package/src/config/bundled-skills/workflows/SKILL.md +4 -3
  531. package/src/config/call-site-defaults.ts +11 -2
  532. package/src/config/feature-flag-registry.json +0 -8
  533. package/src/config/llm-resolver.ts +151 -14
  534. package/src/config/loader.ts +36 -5
  535. package/src/config/profile-dispatchability.ts +11 -0
  536. package/src/config/schemas/__tests__/memory-v3.test.ts +1 -0
  537. package/src/config/schemas/call-site-catalog.ts +7 -0
  538. package/src/config/schemas/llm.ts +2 -0
  539. package/src/config/schemas/memory-lifecycle.ts +17 -3
  540. package/src/config/schemas/memory-v3.ts +7 -0
  541. package/src/config/schemas/memory.ts +4 -0
  542. package/src/config/schemas/timeouts.ts +32 -0
  543. package/src/config/seed-inference-profiles.ts +147 -50
  544. package/src/config/skills.ts +27 -5
  545. package/src/config/sync-gated-profiles.ts +13 -1
  546. package/src/contacts/__tests__/guardian-delivery-reader.test.ts +312 -0
  547. package/src/contacts/contact-store.ts +21 -0
  548. package/src/contacts/contacts-write.ts +3 -0
  549. package/src/contacts/guardian-delivery-reader.ts +223 -0
  550. package/src/contacts/member-status.ts +9 -0
  551. package/src/credential-health/credential-health-service.ts +1 -5
  552. package/src/daemon/__tests__/conversation-tool-setup.test.ts +44 -0
  553. package/src/daemon/app-source-watcher.ts +31 -18
  554. package/src/daemon/assistant-attachments.ts +94 -4
  555. package/src/daemon/conversation-agent-loop-handlers.ts +3 -0
  556. package/src/daemon/conversation-agent-loop.ts +18 -36
  557. package/src/daemon/conversation-process.ts +35 -16
  558. package/src/daemon/conversation-runtime-assembly.ts +91 -66
  559. package/src/daemon/conversation-surfaces.ts +273 -18
  560. package/src/daemon/conversation-tool-setup.ts +24 -64
  561. package/src/daemon/conversation.ts +145 -52
  562. package/src/daemon/event-loop-watchdog.test.ts +85 -0
  563. package/src/daemon/event-loop-watchdog.ts +133 -0
  564. package/src/daemon/external-plugins-bootstrap.ts +26 -80
  565. package/src/daemon/handlers/__tests__/config-a2a-accept.test.ts +1 -1
  566. package/src/daemon/handlers/__tests__/config-a2a-complete.test.ts +1 -1
  567. package/src/daemon/handlers/__tests__/config-a2a-invite.test.ts +1 -1
  568. package/src/daemon/handlers/__tests__/config-a2a-redeem.test.ts +1 -1
  569. package/src/daemon/handlers/__tests__/config-a2a.test.ts +1 -1
  570. package/src/daemon/handlers/config-channels.ts +41 -27
  571. package/src/daemon/handlers/conversations.ts +84 -0
  572. package/src/daemon/handlers/shared.ts +7 -0
  573. package/src/daemon/lifecycle.ts +44 -5
  574. package/src/daemon/memory-v2-startup.test.ts +72 -0
  575. package/src/daemon/memory-v2-startup.ts +87 -19
  576. package/src/daemon/message-types/inbox.ts +0 -6
  577. package/src/daemon/message-types/messages.ts +0 -4
  578. package/src/daemon/message-types/surfaces.ts +12 -11
  579. package/src/daemon/server.ts +0 -4
  580. package/src/daemon/shutdown-handlers.ts +20 -0
  581. package/src/daemon/tool-setup-types.ts +7 -5
  582. package/src/daemon/trust-context.ts +6 -0
  583. package/src/daemon/wake-conversation-ops.ts +70 -0
  584. package/src/daemon/workspace-tools-watcher.ts +7 -3
  585. package/src/documents/document-comments-store.test.ts +1 -1
  586. package/src/heartbeat/__tests__/heartbeat-run-store.test.ts +1 -1
  587. package/src/heartbeat/__tests__/heartbeat-service.test.ts +6 -0
  588. package/src/heartbeat/heartbeat-service.ts +3 -4
  589. package/src/ipc/__tests__/attachment-ipc.test.ts +1 -1
  590. package/src/ipc/__tests__/browser-ipc.test.ts +73 -2
  591. package/src/ipc/__tests__/clients-list-ipc.test.ts +1 -1
  592. package/src/ipc/__tests__/watcher-ipc.test.ts +59 -39
  593. package/src/ipc/assistant-server.ts +10 -2
  594. package/src/ipc/gateway-client.ts +2 -1
  595. package/src/ipc/routes/__tests__/invite-ipc-routes.test.ts +58 -0
  596. package/src/ipc/routes/invite-ipc-routes.ts +66 -0
  597. package/src/live-voice/__tests__/live-voice-archive.test.ts +1 -1
  598. package/src/memory/__tests__/activation-session-store.test.ts +1 -1
  599. package/src/memory/__tests__/auto-analysis-guard.test.ts +1 -1
  600. package/src/memory/__tests__/conversation-group-migration.test.ts +1 -1
  601. package/src/memory/__tests__/conversation-queries.test.ts +1 -1
  602. package/src/memory/__tests__/db-async-query.test.ts +1 -1
  603. package/src/memory/__tests__/db-logs-attach.test.ts +110 -0
  604. package/src/memory/__tests__/db-maintenance.test.ts +28 -36
  605. package/src/memory/__tests__/db-memory-attach.test.ts +113 -0
  606. package/src/memory/__tests__/find-analysis-conversation.test.ts +1 -1
  607. package/src/memory/__tests__/find-most-recent-retrospective-for.test.ts +1 -1
  608. package/src/memory/__tests__/fork-message-copy.test.ts +232 -0
  609. package/src/memory/__tests__/jobs-store-enqueue-gate.test.ts +3 -0
  610. package/src/memory/__tests__/jobs-worker-v2-graph-trigger-embed.test.ts +5 -5
  611. package/src/memory/__tests__/jobs-worker-v2-schedule.test.ts +8 -6
  612. package/src/memory/__tests__/memory-retrospective-job.test.ts +30 -37
  613. package/src/memory/__tests__/memory-retrospective-startup-cleanup.test.ts +69 -66
  614. package/src/memory/__tests__/memory-retrospective-state.test.ts +1 -1
  615. package/src/memory/__tests__/memory-v2-activation-log-store.test.ts +1 -1
  616. package/src/memory/__tests__/memory-v2-concept-frequency.test.ts +1 -1
  617. package/src/memory/__tests__/onboarding-events-store.test.ts +1 -1
  618. package/src/memory/__tests__/prompt-override.test.ts +192 -0
  619. package/src/memory/__tests__/table-relocation.test.ts +129 -0
  620. package/src/memory/conversation-crud.ts +461 -152
  621. package/src/memory/db-async-query.ts +89 -5
  622. package/src/memory/db-connection.ts +101 -18
  623. package/src/memory/db-init.ts +409 -234
  624. package/src/memory/db-maintenance.ts +43 -38
  625. package/src/memory/db-singleton.ts +45 -19
  626. package/src/memory/embedding-gemini.test.ts +3 -1
  627. package/src/memory/embedding-gemini.ts +18 -2
  628. package/src/memory/fork-message-copy.ts +170 -0
  629. package/src/memory/graph/__tests__/handle-remember-v2.test.ts +92 -0
  630. package/src/memory/graph/bootstrap.test.ts +6 -3
  631. package/src/memory/graph/retriever.test.ts +12 -12
  632. package/src/memory/graph/store.test.ts +15 -25
  633. package/src/memory/graph/store.ts +23 -14
  634. package/src/memory/graph/tool-handlers.ts +34 -5
  635. package/src/memory/graph/tools.ts +5 -2
  636. package/src/memory/indexer.ts +21 -9
  637. package/src/memory/job-handlers/cleanup.ts +10 -3
  638. package/src/memory/job-handlers/embedding.test.ts +4 -4
  639. package/src/memory/jobs/__tests__/embed-concept-page.test.ts +4 -4
  640. package/src/memory/jobs/embed-pkb-file.test.ts +7 -7
  641. package/src/memory/jobs-store.ts +36 -24
  642. package/src/memory/llm-request-log-store.ts +51 -19
  643. package/src/memory/llm-usage-store.ts +79 -21
  644. package/src/memory/memory-retrospective-job.ts +27 -19
  645. package/src/memory/memory-retrospective-startup-cleanup.ts +10 -2
  646. package/src/memory/migrations/{100-core-tables.ts → 000-core-tables.ts} +6 -10
  647. package/src/memory/migrations/014-backfill-inbox-thread-state.ts +13 -3
  648. package/src/memory/migrations/104-core-indexes.ts +1 -1
  649. package/src/memory/migrations/126-backfill-guardian-principal-id.ts +189 -196
  650. package/src/memory/migrations/127-guardian-principal-id-not-null.ts +98 -105
  651. package/src/memory/migrations/134-contacts-notes-column.ts +66 -69
  652. package/src/memory/migrations/135-backfill-contact-interaction-stats.ts +19 -22
  653. package/src/memory/migrations/136-drop-assistant-id-columns.ts +241 -219
  654. package/src/memory/migrations/140-backfill-usage-cache-accounting.ts +204 -209
  655. package/src/memory/migrations/141-rename-verification-table.ts +45 -48
  656. package/src/memory/migrations/142-rename-verification-session-id-column.ts +16 -23
  657. package/src/memory/migrations/143-rename-guardian-verification-values.ts +23 -30
  658. package/src/memory/migrations/144-rename-voice-to-phone.ts +133 -136
  659. package/src/memory/migrations/145-drop-accounts-table.ts +4 -7
  660. package/src/memory/migrations/147-migrate-reminders-to-schedules.ts +79 -82
  661. package/src/memory/migrations/148-drop-reminders-table.ts +3 -6
  662. package/src/memory/migrations/150-oauth-apps-client-secret-path.ts +71 -78
  663. package/src/memory/migrations/157-invite-contact-id.ts +73 -76
  664. package/src/memory/migrations/162-guardian-timestamps-epoch-ms.ts +44 -58
  665. package/src/memory/migrations/169-rename-gmail-provider-key-to-google.ts +36 -43
  666. package/src/memory/migrations/174-rename-thread-starters-table.ts +30 -37
  667. package/src/memory/migrations/176-drop-capability-card-state.ts +17 -22
  668. package/src/memory/migrations/177-create-trace-events-table.ts +23 -28
  669. package/src/memory/migrations/180-backfill-inline-attachments-to-disk.ts +36 -43
  670. package/src/memory/migrations/181-rename-thread-starters-checkpoints.ts +14 -21
  671. package/src/memory/migrations/191-backfill-audio-attachment-mime-types.ts +17 -24
  672. package/src/memory/migrations/192-contacts-user-file-column.ts +6 -9
  673. package/src/memory/migrations/193-add-source-type-columns.ts +33 -36
  674. package/src/memory/migrations/194-memory-recall-logs.ts +34 -39
  675. package/src/memory/migrations/196-strip-integration-prefix-from-provider-keys.ts +59 -66
  676. package/src/memory/migrations/199-guardian-request-enrichment-columns.ts +41 -48
  677. package/src/memory/migrations/204-rename-memory-graph-type-values.ts +11 -18
  678. package/src/memory/migrations/206-scrub-corrupted-image-attachments.ts +76 -83
  679. package/src/memory/migrations/209-strip-thinking-from-consolidated.ts +135 -68
  680. package/src/memory/migrations/211-memory-recall-logs-query-context.ts +6 -11
  681. package/src/memory/migrations/212-llm-request-logs-created-at-index.ts +4 -9
  682. package/src/memory/migrations/217-conversation-host-access.ts +13 -18
  683. package/src/memory/migrations/220-normalize-user-file-by-principal.ts +86 -93
  684. package/src/memory/migrations/222-strip-placeholder-sentinels-from-messages.ts +41 -48
  685. package/src/memory/migrations/230-acp-session-history.ts +23 -28
  686. package/src/memory/migrations/231-repair-memory-graph-event-dates.ts +58 -62
  687. package/src/memory/migrations/232-activation-state.ts +11 -16
  688. package/src/memory/migrations/233-document-conversations.ts +20 -25
  689. package/src/memory/migrations/234-memory-v2-activation-logs.ts +26 -31
  690. package/src/memory/migrations/235-slack-compaction-watermark.ts +5 -10
  691. package/src/memory/migrations/236-tool-invocations-matched-rule-id.ts +6 -11
  692. package/src/memory/migrations/237-heartbeat-runs.ts +22 -27
  693. package/src/memory/migrations/239-trace-events-created-at-index.ts +4 -9
  694. package/src/memory/migrations/242-message-bookmarks.ts +17 -22
  695. package/src/memory/migrations/245-memory-retrospective-state.ts +8 -13
  696. package/src/memory/migrations/249-normalize-slack-external-content.ts +37 -41
  697. package/src/memory/migrations/251-a2a-tasks.ts +27 -32
  698. package/src/memory/migrations/254-external-conversation-binding-chat-name.ts +12 -17
  699. package/src/memory/migrations/255-channel-inbound-delivery-attempts.ts +10 -15
  700. package/src/memory/migrations/256-memory-v2-injection-events.ts +70 -74
  701. package/src/memory/migrations/259-conversation-cleaned-at.ts +4 -9
  702. package/src/memory/migrations/260-rename-cleaned-at.ts +11 -16
  703. package/src/memory/migrations/261-llm-usage-add-raw-usage.ts +3 -8
  704. package/src/memory/migrations/262-memory-v3-coactivation.ts +21 -26
  705. package/src/memory/migrations/263-memory-v3-auto-edges.ts +14 -19
  706. package/src/memory/migrations/270-schedule-description.ts +7 -12
  707. package/src/memory/migrations/272-acp-session-history-cwd.ts +8 -13
  708. package/src/memory/migrations/281-memory-retrospective-remembered-log.ts +8 -13
  709. package/src/memory/migrations/297-move-llm-request-logs-to-logs-db.ts +111 -0
  710. package/src/memory/migrations/298-move-memory-jobs-to-memory-db.ts +128 -0
  711. package/src/memory/migrations/299-canonical-guardian-deliveries-conversation-index.ts +19 -0
  712. package/src/memory/migrations/__tests__/014-backfill-inbox-thread-state.test.ts +108 -0
  713. package/src/memory/migrations/__tests__/136-drop-assistant-id-columns.test.ts +82 -0
  714. package/src/memory/migrations/__tests__/209-strip-thinking-from-consolidated.test.ts +224 -0
  715. package/src/memory/migrations/__tests__/297-move-llm-request-logs.test.ts +180 -0
  716. package/src/memory/migrations/__tests__/run-migrations.test.ts +333 -7
  717. package/src/memory/migrations/helpers/relocation.ts +227 -0
  718. package/src/memory/migrations/registry.ts +63 -0
  719. package/src/memory/migrations/run-migrations.ts +187 -16
  720. package/src/memory/migrations/schema-introspection.ts +14 -0
  721. package/src/memory/migrations/validate-migration-state.ts +50 -145
  722. package/src/memory/prompt-override.ts +129 -0
  723. package/src/memory/raw-query.ts +47 -2
  724. package/src/memory/skill-loaded-events-store.test.ts +1 -1
  725. package/src/memory/task-memory-cleanup.ts +62 -41
  726. package/src/memory/tool-executed-events-store.test.ts +1 -1
  727. package/src/memory/turn-trace-store.test.ts +1 -1
  728. package/src/memory/v2/__tests__/backfill-jobs.test.ts +16 -15
  729. package/src/memory/v2/__tests__/cli-command-store.test.ts +25 -0
  730. package/src/memory/v2/__tests__/harness-compare.test.ts +1 -1
  731. package/src/memory/v2/__tests__/harness-oracle.test.ts +1 -1
  732. package/src/memory/v2/__tests__/harness-replay-input.test.ts +1 -1
  733. package/src/memory/v2/__tests__/skill-store.test.ts +80 -0
  734. package/src/memory/v2/__tests__/sweep-job.test.ts +2 -2
  735. package/src/memory/v2/cli-command-store.ts +75 -38
  736. package/src/memory/v2/prompts/consolidation.ts +13 -82
  737. package/src/memory/v2/prompts/router.ts +21 -93
  738. package/src/memory/v2/skill-store.ts +68 -31
  739. package/src/memory/v3-eval/__tests__/eval-packets.test.ts +38 -0
  740. package/src/memory/v3-eval/__tests__/eval-tally.test.ts +139 -0
  741. package/src/memory/v3-eval/eval-packets.ts +197 -12
  742. package/src/memory/v3-eval/eval-tally.ts +234 -0
  743. package/src/memory/worker-control.ts +118 -0
  744. package/src/memory/worker-process.ts +72 -0
  745. package/src/messaging/provider.ts +10 -0
  746. package/src/messaging/providers/gmail/adapter.ts +1 -0
  747. package/src/messaging/providers/gmail/client.ts +13 -0
  748. package/src/messaging/providers/index.ts +1 -1
  749. package/src/messaging/providers/slack/send.test.ts +87 -39
  750. package/src/messaging/providers/slack/send.ts +84 -105
  751. package/src/notifications/README.md +9 -5
  752. package/src/notifications/__tests__/broadcaster.test.ts +16 -8
  753. package/src/notifications/__tests__/connected-channels.test.ts +114 -0
  754. package/src/notifications/__tests__/decision-engine.test.ts +78 -9
  755. package/src/notifications/__tests__/destination-resolver.test.ts +256 -0
  756. package/src/notifications/__tests__/deterministic-checks.test.ts +43 -1
  757. package/src/notifications/adapters/slack.ts +12 -10
  758. package/src/notifications/approval-card-builder.ts +81 -20
  759. package/src/notifications/approval-card-data.ts +8 -5
  760. package/src/notifications/broadcaster.ts +8 -1
  761. package/src/notifications/canonical-delivery-recorder.ts +7 -5
  762. package/src/notifications/conversation-candidates.ts +24 -59
  763. package/src/notifications/copy-composer.ts +48 -68
  764. package/src/notifications/decision-engine.ts +15 -7
  765. package/src/notifications/destination-resolver.ts +68 -24
  766. package/src/notifications/deterministic-checks.ts +19 -16
  767. package/src/notifications/emit-signal.ts +68 -15
  768. package/src/notifications/trusted-contact-payloads.ts +70 -0
  769. package/src/oauth/byo-connection.test.ts +9 -0
  770. package/src/oauth/connection-resolver.test.ts +174 -6
  771. package/src/oauth/connection-resolver.ts +132 -5
  772. package/src/oauth/oauth-store.ts +16 -3
  773. package/src/oauth/scope-utils.ts +39 -0
  774. package/src/permissions/question-prompter.test.ts +1 -1
  775. package/src/permissions/question-prompter.ts +7 -4
  776. package/src/plugin-api/index.ts +9 -4
  777. package/src/plugin-api/model-profiles.test.ts +123 -0
  778. package/src/plugin-api/model-profiles.ts +5 -1
  779. package/src/plugin-api/vision-support.test.ts +173 -0
  780. package/src/plugin-api/vision-support.ts +113 -0
  781. package/src/plugins/defaults/advisor/__tests__/consult.test.ts +46 -0
  782. package/src/plugins/defaults/advisor/consult.ts +18 -1
  783. package/src/plugins/defaults/advisor/tools/advisor.ts +4 -0
  784. package/src/plugins/defaults/compaction/window-manager.ts +45 -64
  785. package/src/plugins/defaults/empty-response/hooks/post-model-call.ts +13 -4
  786. package/src/plugins/defaults/image-fallback/__tests__/image-fallback.test.ts +441 -0
  787. package/src/plugins/defaults/image-fallback/hooks/post-tool-use.ts +57 -0
  788. package/src/plugins/defaults/image-fallback/hooks/user-prompt-submit.ts +61 -0
  789. package/src/plugins/defaults/image-fallback/package.json +14 -0
  790. package/src/plugins/defaults/image-fallback/src/caption-blocks.ts +108 -0
  791. package/src/plugins/defaults/image-fallback/src/caption-cache.ts +49 -0
  792. package/src/plugins/defaults/image-fallback/src/image-persist.ts +56 -0
  793. package/src/plugins/defaults/image-fallback/src/vision-caption.ts +120 -0
  794. package/src/plugins/defaults/index.ts +27 -0
  795. package/src/plugins/defaults/memory-retrieval/hooks/user-prompt-submit.ts +14 -1
  796. package/src/plugins/defaults/memory-retrieval/injectors.ts +4 -4
  797. package/src/plugins/defaults/memory-v3-shadow/__tests__/pool-select.test.ts +134 -5
  798. package/src/plugins/defaults/memory-v3-shadow/orchestrate.ts +11 -2
  799. package/src/plugins/defaults/memory-v3-shadow/pool-select.test.ts +146 -0
  800. package/src/plugins/defaults/memory-v3-shadow/pool-select.ts +246 -19
  801. package/src/plugins/defaults/memory-v3-shadow/shadow-plugin.ts +8 -1
  802. package/src/plugins/external-plugin-loader.ts +47 -6
  803. package/src/plugins/mtime-cache.ts +772 -0
  804. package/src/plugins/pipeline.ts +7 -2
  805. package/src/plugins/registry.ts +16 -5
  806. package/src/plugins/user-loader.ts +22 -76
  807. package/src/prompts/persona-resolver.ts +29 -11
  808. package/src/prompts/system-prompt.ts +1 -1
  809. package/src/prompts/templates/system-sections.ts +4 -4
  810. package/src/providers/__tests__/count-tokens-forwarding.test.ts +98 -0
  811. package/src/providers/anthropic/client.ts +285 -185
  812. package/src/providers/call-site-routing.ts +10 -0
  813. package/src/providers/gemini/client.ts +43 -0
  814. package/src/providers/inference/adapter-factory.ts +6 -0
  815. package/src/providers/inference/connections.ts +6 -1
  816. package/src/providers/model-catalog.ts +53 -0
  817. package/src/providers/platform-proxy/constants.ts +5 -0
  818. package/src/providers/ratelimit.ts +9 -0
  819. package/src/providers/retry.ts +10 -0
  820. package/src/providers/together/client.ts +35 -0
  821. package/src/providers/types.ts +16 -0
  822. package/src/providers/usage-tracking.ts +7 -0
  823. package/src/runtime/AGENTS.md +9 -1
  824. package/src/runtime/__tests__/agent-wake.test.ts +259 -4
  825. package/src/runtime/__tests__/guardian-vellum-migration.test.ts +181 -0
  826. package/src/runtime/__tests__/is-guardian-bound-for-channel.test.ts +64 -0
  827. package/src/runtime/__tests__/local-principal-trust.test.ts +164 -0
  828. package/src/runtime/__tests__/slack-block-formatting.test.ts +39 -10
  829. package/src/runtime/__tests__/trust-verdict-consumer.test.ts +670 -0
  830. package/src/runtime/access-request-helper.ts +19 -39
  831. package/src/runtime/actor-trust-resolver.ts +8 -16
  832. package/src/runtime/agent-wake.ts +183 -60
  833. package/src/runtime/anchored-guardian.test.ts +156 -0
  834. package/src/runtime/anchored-guardian.ts +135 -0
  835. package/src/runtime/assistant-stream-state.ts +9 -2
  836. package/src/runtime/auth/__tests__/require-bound-guardian.test.ts +99 -0
  837. package/src/runtime/auth/require-bound-guardian.ts +21 -11
  838. package/src/runtime/channel-reply-delivery.ts +6 -3
  839. package/src/runtime/channel-verification-service.ts +24 -0
  840. package/src/runtime/guardian-decision-types.ts +3 -22
  841. package/src/runtime/guardian-vellum-migration.ts +66 -7
  842. package/src/runtime/http-server.ts +1 -15
  843. package/src/runtime/invite-redemption-service.ts +155 -6
  844. package/src/runtime/invite-service.ts +113 -62
  845. package/src/runtime/local-actor-identity.ts +76 -11
  846. package/src/runtime/local-principal-trust.ts +52 -0
  847. package/src/runtime/migrations/__tests__/vbundle-builder-fd-leak.test.ts +3 -0
  848. package/src/runtime/pending-interactions.ts +11 -1
  849. package/src/runtime/routes/__tests__/acp-routes.test.ts +1 -1
  850. package/src/runtime/routes/__tests__/bookmark-routes.test.ts +1 -1
  851. package/src/runtime/routes/__tests__/channel-verification-revoke.test.ts +277 -0
  852. package/src/runtime/routes/__tests__/channel-verification-routes.test.ts +140 -0
  853. package/src/runtime/routes/__tests__/connection-routes-vs-cli-parity.test.ts +26 -7
  854. package/src/runtime/routes/__tests__/consolidation-routes.test.ts +14 -10
  855. package/src/runtime/routes/__tests__/contact-routes-update-channel-relay.test.ts +164 -0
  856. package/src/runtime/routes/__tests__/conversation-list-routes.test.ts +1 -1
  857. package/src/runtime/routes/__tests__/conversation-management-routes.test.ts +1 -1
  858. package/src/runtime/routes/__tests__/conversation-query-routes.test.ts +8 -8
  859. package/src/runtime/routes/__tests__/conversation-surface-routes.test.ts +1 -1
  860. package/src/runtime/routes/__tests__/inference-provider-connection-routes.test.ts +1 -3
  861. package/src/runtime/routes/__tests__/invite-relay-routes.test.ts +240 -0
  862. package/src/runtime/routes/__tests__/memory-v2-simulate-route.test.ts +4 -0
  863. package/src/runtime/routes/__tests__/plugins-routes.test.ts +143 -0
  864. package/src/runtime/routes/__tests__/retrospective-routes.test.ts +1 -1
  865. package/src/runtime/routes/__tests__/slack-channel-routes.test.ts +1 -1
  866. package/src/runtime/routes/__tests__/surface-action-routes.test.ts +163 -0
  867. package/src/runtime/routes/acp-routes-list.test.ts +4 -0
  868. package/src/runtime/routes/acp-routes.test.ts +5 -6
  869. package/src/runtime/routes/attachment-routes.ts +21 -17
  870. package/src/runtime/routes/browser-routes.ts +19 -1
  871. package/src/runtime/routes/canonical-guardian-expiry-sweep.ts +5 -9
  872. package/src/runtime/routes/channel-verification-routes.ts +13 -2
  873. package/src/runtime/routes/contact-routes.ts +275 -164
  874. package/src/runtime/routes/conversation-query-routes.ts +15 -5
  875. package/src/runtime/routes/conversation-routes.ts +80 -66
  876. package/src/runtime/routes/conversation-starter-routes.ts +7 -8
  877. package/src/runtime/routes/events-routes.ts +2 -2
  878. package/src/runtime/routes/guardian-approval-interception.ts +13 -274
  879. package/src/runtime/routes/host-app-control-routes.ts +5 -4
  880. package/src/runtime/routes/host-bash-routes.ts +5 -4
  881. package/src/runtime/routes/host-browser-routes.ts +9 -11
  882. package/src/runtime/routes/host-cu-routes.ts +5 -4
  883. package/src/runtime/routes/host-file-routes.ts +5 -4
  884. package/src/runtime/routes/host-transfer-routes.ts +6 -6
  885. package/src/runtime/routes/http-adapter.ts +1 -1
  886. package/src/runtime/routes/inbound-message-handler.ts +21 -16
  887. package/src/runtime/routes/inbound-stages/acl-enforcement.test.ts +376 -0
  888. package/src/runtime/routes/inbound-stages/acl-enforcement.ts +86 -64
  889. package/src/runtime/routes/inbound-stages/admission-policy.ts +20 -5
  890. package/src/runtime/routes/inbound-stages/background-dispatch.ts +16 -4
  891. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.test.ts +21 -8
  892. package/src/runtime/routes/inbound-stages/guardian-activation-intercept.ts +14 -3
  893. package/src/runtime/routes/llm-context-normalization.ts +71 -0
  894. package/src/runtime/routes/log-export-routes.ts +2 -2
  895. package/src/runtime/routes/mcp-auth-routes.ts +38 -15
  896. package/src/runtime/routes/memory-eval-routes.ts +92 -0
  897. package/src/runtime/routes/memory-item-routes.test.ts +12 -11
  898. package/src/runtime/routes/migration-routes.ts +51 -40
  899. package/src/runtime/routes/plugins-routes.ts +164 -8
  900. package/src/runtime/routes/schedule-routes.ts +1 -0
  901. package/src/runtime/routes/subagents-routes.ts +5 -0
  902. package/src/runtime/routes/surface-action-routes.ts +39 -51
  903. package/src/runtime/routes/usage-routes.ts +3 -0
  904. package/src/runtime/routes/work-items-routes.test.ts +1 -1
  905. package/src/runtime/slack-block-formatting.ts +46 -48
  906. package/src/runtime/trust-verdict-consumer.ts +210 -0
  907. package/src/schedule/scheduler.ts +6 -9
  908. package/src/signals/user-message.ts +16 -0
  909. package/src/subagent/manager.ts +9 -0
  910. package/src/telemetry/usage-telemetry-reporter.test.ts +1 -1
  911. package/src/tools/ask-question/ask-question-tool.test.ts +89 -52
  912. package/src/tools/ask-question/ask-question-tool.ts +27 -73
  913. package/src/tools/browser/__tests__/browser-status.test.ts +20 -0
  914. package/src/tools/browser/browser-execution.ts +16 -4
  915. package/src/tools/document/document-comment-tool.test.ts +1 -1
  916. package/src/tools/executor.ts +15 -3
  917. package/src/tools/host-terminal/host-shell.ts +28 -9
  918. package/src/tools/memory/register.test.ts +32 -0
  919. package/src/tools/skills/load.ts +43 -2
  920. package/src/tools/subagent/spawn.ts +4 -10
  921. package/src/tools/terminal/shell.ts +16 -5
  922. package/src/tools/types.ts +1 -0
  923. package/src/tools/ui-surface/definitions.ts +0 -43
  924. package/src/util/fs-watcher-error.ts +36 -0
  925. package/src/util/log-redact.ts +2 -4
  926. package/src/util/logs-db-path.ts +22 -0
  927. package/src/util/memory-db-path.ts +23 -0
  928. package/src/util/platform.ts +5 -0
  929. package/src/watcher/providers/gmail.ts +7 -2
  930. package/src/workflows/engine-integration.test.ts +1 -1
  931. package/src/workflows/engine.test.ts +1 -1
  932. package/src/workflows/engine.ts +22 -0
  933. package/src/workflows/fanout-load.test.ts +1 -1
  934. package/src/workflows/journal-store.test.ts +1 -1
  935. package/src/workflows/leaf-runner.test.ts +40 -1
  936. package/src/workflows/leaf-runner.ts +26 -1
  937. package/src/workspace/git-service.ts +144 -29
  938. package/src/workspace/migrations/109-swap-quality-profile-to-glm-5p2.ts +121 -0
  939. package/src/workspace/migrations/110-flip-balanced-profile-to-together.ts +82 -0
  940. package/src/workspace/migrations/registry.ts +4 -0
  941. package/src/workspace/migrations/runner.ts +32 -2
  942. package/src/__tests__/access-request-decision.test.ts +0 -375
  943. package/src/__tests__/guardian-grant-minting.test.ts +0 -607
  944. package/src/__tests__/plugin-source-watcher.test.ts +0 -302
  945. package/src/api/events/turn-profile-auto-routed.ts +0 -28
  946. package/src/daemon/__tests__/switch-inference-profile-tool.test.ts +0 -107
  947. package/src/daemon/plugin-source-watcher.ts +0 -278
  948. package/src/daemon/switch-inference-profile-tool.ts +0 -62
  949. package/src/memory/guardian-approvals.ts +0 -361
  950. package/src/memory/migrations/010-ext-conv-bindings-channel-chat-unique.ts +0 -66
  951. package/src/memory/migrations/038-actor-token-records.ts +0 -45
  952. package/src/memory/migrations/039-actor-refresh-token-records.ts +0 -57
  953. package/src/memory/migrations/103-complex-migrations.ts +0 -23
  954. package/src/memory/migrations/113-late-migrations.ts +0 -30
  955. package/src/memory/migrations/index.ts +0 -301
  956. package/src/runtime/routes/access-request-decision.ts +0 -297
  957. package/src/runtime/routes/approval-strategies/guardian-callback-strategy.ts +0 -963
  958. package/src/runtime/routes/channel-guardian-routes.ts +0 -19
  959. package/src/runtime/routes/guardian-expiry-sweep.ts +0 -132
package/ARCHITECTURE.md CHANGED
@@ -33,7 +33,7 @@ Safe storage limits protect the workspace volume from running out of disk. The d
33
33
 
34
34
  **Background work:** Heartbeats, scheduled tasks, filing work, retry sweeps, and background tool completions call `src/daemon/disk-pressure-background-gate.ts` before starting work. While effectively locked they skip the wake or job and log throttled disk-pressure fields.
35
35
 
36
- **Prompt and tools:** Cleanup-mode turns carry `diskPressureContext` through runtime assembly and receive the `<disk_pressure_warning>` injector in `src/plugins/defaults/injectors.ts`. The instruction tells the assistant to warn first, focus only on freeing storage, inspect before deleting, ask for deletion approval, and explain that background processes and trusted-contact messages are blocked. Tool setup marks the turn as cleanup mode; `src/tools/tool-approval-handler.ts` rejects non-cleanup-safe tools, and foreground shell inspection remains available while background `bash` and `host_bash` modes are rejected. When a new lock is created, active background terminal tools are cancelled with reason `disk_pressure`.
36
+ **Prompt and tools:** Cleanup-mode turns carry `diskPressureContext` through runtime assembly and receive the concise `<disk_pressure_warning>` injector in `src/plugins/defaults/memory-retrieval/injectors.ts`. The instruction tells the assistant to warn first, call `skill_load` for `system-storage-cleanup`, and explain that background processes and trusted-contact messages are blocked. Tool setup marks the turn as cleanup mode; `skill_load` remains available so the assistant can load the cleanup skill (or another already-installed skill) for its instructions, but under the lock it performs **no side effects** — it skips catalog auto-install (workspace writes / `bun install`) and strips inline command tokens instead of executing them, so loading a skill cannot write to the workspace or run shell. `skill_execute` and skill-origin tools remain unavailable, and a loaded skill's own tools stay filtered by the cleanup allowlist. The bundled `system-storage-cleanup` skill (`src/config/bundled-skills/system-storage-cleanup/SKILL.md`) carries the detailed cleanup procedure and deletion safety rules, including read-only SQLite diagnosis only; product-owned retention and maintenance work remains tracked separately by ATL-450 and related tickets. `src/tools/tool-approval-handler.ts` rejects non-cleanup-safe tools, and foreground shell inspection remains available while background `bash` and `host_bash` modes are rejected. When a new lock is created, active background terminal tools are cancelled with reason `disk_pressure`.
37
37
 
38
38
  ### Single-Header JWT Auth Model
39
39
 
@@ -105,21 +105,20 @@ All HTTP API requests use a single `Authorization: Bearer <jwt>` header for auth
105
105
 
106
106
  Scoped approval grants allow a guardian's approval decision on one channel (e.g., Telegram) to authorize a tool execution on a different channel (e.g., voice). Two scope modes exist: `request_id` (bound to a specific pending request) and `tool_signature` (bound to `toolName` + canonical `inputDigest`). Grants are one-time-use, exact-match, fail-closed, and TTL-bound. Full architecture details (lifecycle flow, security invariants, key files) live in [`docs/architecture/security.md`](docs/architecture/security.md#channel-agnostic-scoped-approval-grants).
107
107
 
108
- ### Guardian Decision Primitive (Dual-Mode Approval)
108
+ ### Guardian Decision Primitive
109
109
 
110
- All guardian approval decisions — regardless of how they arrive — route through a single unified primitive in `src/approvals/guardian-decision-primitive.ts`. This centralizes decision logic that was previously duplicated across callback button handlers, the conversational approval engine, and the requester self-cancel path.
110
+ All guardian approval decisions — regardless of how they arrive — route through a single canonical primitive in `src/approvals/guardian-decision-primitive.ts`, which centralizes decision logic for callback button handlers, the conversational approval engine, and channel reactions/text.
111
111
 
112
112
  **Core API:**
113
113
 
114
- | Function | Purpose |
115
- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
116
- | `applyGuardianDecision(params)` | Apply a guardian decision atomically: downgrade `approve_always` for guardian-on-behalf requests, capture approval info, resolve the pending interaction, update the approval record, and mint a scoped grant on approve. Returns `{ applied, reason?, requestId? }`. |
117
- | `listGuardianDecisionPrompts({ conversationId })` | List pending prompts for a conversation, aggregating channel guardian approval requests and pending confirmation interactions into a uniform `GuardianDecisionPrompt` shape. |
114
+ | Function | Purpose |
115
+ | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
116
+ | `applyCanonicalGuardianDecision(params)` | Apply a guardian decision against the canonical store: validate status/identity/expiry, CAS-resolve the request (first-writer-wins), dispatch to the kind-specific resolver, mint a scoped grant on approve, and withdraw the request's approval cards. Returns a structured applied/failed result. |
118
117
 
119
118
  **Security invariants enforced by the primitive:**
120
119
 
121
120
  - Decision application is identity-bound to the expected guardian identity.
122
- - Decisions are first-response-wins (CAS-like stale protection via `handleChannelDecision`).
121
+ - Decisions are first-response-wins (CAS stale protection via `resolveCanonicalGuardianRequest`).
123
122
  - `approve_always` is downgraded to `approve_once` for guardian-on-behalf requests (guardians cannot permanently allowlist tools for requesters).
124
123
  - Scoped grant minting only fires on explicit approve for requests with tool metadata.
125
124
 
@@ -199,14 +198,14 @@ The canonical guardian request system provides a channel-agnostic, unified domai
199
198
 
200
199
  **Key source files:**
201
200
 
202
- | File | Purpose |
203
- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
204
- | `src/memory/canonical-guardian-store.ts` | Canonical request and delivery persistence (CRUD, CAS resolve, list with filters) |
205
- | `src/approvals/guardian-decision-primitive.ts` | Unified decision primitive: `applyCanonicalGuardianDecision` (canonical) and `applyGuardianDecision` (legacy) |
206
- | `src/approvals/guardian-request-resolvers.ts` | Resolver registry: kind-specific side-effect dispatch after CAS resolution |
207
- | `src/runtime/guardian-reply-router.ts` | Shared inbound router: callback -> code -> NL classification pipeline |
208
- | `src/runtime/routes/guardian-action-routes.ts` | HTTP endpoints for prompt listing and decision submission |
209
- | `src/runtime/routes/canonical-guardian-expiry-sweep.ts` | Canonical request expiry sweep |
201
+ | File | Purpose |
202
+ | ------------------------------------------------------- | ------------------------------------------------------------------------------------- |
203
+ | `src/memory/canonical-guardian-store.ts` | Canonical request and delivery persistence (CRUD, CAS resolve, list with filters) |
204
+ | `src/approvals/guardian-decision-primitive.ts` | Canonical decision primitive: `applyCanonicalGuardianDecision` + scoped grant minting |
205
+ | `src/approvals/guardian-request-resolvers.ts` | Resolver registry: kind-specific side-effect dispatch after CAS resolution |
206
+ | `src/runtime/guardian-reply-router.ts` | Shared inbound router: callback -> code -> NL classification pipeline |
207
+ | `src/runtime/routes/guardian-action-routes.ts` | HTTP endpoints for prompt listing and decision submission |
208
+ | `src/runtime/routes/canonical-guardian-expiry-sweep.ts` | Canonical request expiry sweep |
210
209
 
211
210
  ### Outbound Channel Verification (HTTP Endpoints)
212
211
 
@@ -605,13 +604,13 @@ Audio-to-text conversion occurs in six distinct runtime boundaries, each with it
605
604
 
606
605
  **Boundary overview:**
607
606
 
608
- | Boundary | Runtime | Provider (current) | Adapter module | Caller |
609
- | ---------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
610
- | **Telephony (hybrid)** | Twilio-native ConversationRelay or daemon media-stream (provider-conditional) | Configured STT provider (via `services.stt`) | `src/calls/telephony-stt-routing.ts` | `src/calls/twilio-routes.ts` |
611
- | **Daemon batch** | Daemon process (REST API to provider) | Configured STT provider (via `services.stt`) | `src/stt/daemon-batch-transcriber.ts` | `src/runtime/routes/inbound-stages/transcribe-audio.ts` |
612
- | **Conversation streaming** | Daemon process (WebSocket-based) | Configured STT provider (via `services.stt`) | `src/stt/stt-stream-session.ts`, `src/providers/speech-to-text/deepgram-realtime.ts`, `src/providers/speech-to-text/google-gemini-live-stream.ts`, `src/providers/speech-to-text/openai-whisper-stream.ts`, `src/providers/speech-to-text/xai-realtime.ts` | Web/Electron dictation client via gateway WS proxy |
613
- | **Live voice channel** | Assistant process (gateway-authenticated WebSocket) | Configured STT provider (via `services.stt`) | `src/runtime/http-server.ts`, `src/live-voice/live-voice-session-manager.ts`, `src/live-voice/live-voice-session.ts`, `src/providers/speech-to-text/resolve.ts`, streaming provider adapters | Web/Electron live voice client via `/v1/live-voice` |
614
- | **Client service-first** | Web/Electron via gateway → daemon | Configured STT provider (via `services.stt`) | `src/runtime/routes/stt-routes.ts` | Web/Electron dictation and voice clients |
607
+ | Boundary | Runtime | Provider (current) | Adapter module | Caller |
608
+ | -------------------------- | ----------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
609
+ | **Telephony (hybrid)** | Twilio-native ConversationRelay or daemon media-stream (provider-conditional) | Configured STT provider (via `services.stt`) | `src/calls/telephony-stt-routing.ts` | `src/calls/twilio-routes.ts` |
610
+ | **Daemon batch** | Daemon process (REST API to provider) | Configured STT provider (via `services.stt`) | `src/stt/daemon-batch-transcriber.ts` | `src/runtime/routes/inbound-stages/transcribe-audio.ts` |
611
+ | **Conversation streaming** | Daemon process (WebSocket-based) | Configured STT provider (via `services.stt`) | `src/stt/stt-stream-session.ts`, `src/providers/speech-to-text/deepgram-realtime.ts`, `src/providers/speech-to-text/google-gemini-live-stream.ts`, `src/providers/speech-to-text/openai-whisper-stream.ts`, `src/providers/speech-to-text/xai-realtime.ts` | Web/Electron dictation client via gateway WS proxy |
612
+ | **Live voice channel** | Assistant process (gateway-authenticated WebSocket) | Configured STT provider (via `services.stt`) | `src/runtime/http-server.ts`, `src/live-voice/live-voice-session-manager.ts`, `src/live-voice/live-voice-session.ts`, `src/providers/speech-to-text/resolve.ts`, streaming provider adapters | Web/Electron live voice client via `/v1/live-voice` |
613
+ | **Client service-first** | Web/Electron via gateway → daemon | Configured STT provider (via `services.stt`) | `src/runtime/routes/stt-routes.ts` | Web/Electron dictation and voice clients |
615
614
 
616
615
  **Telephony boundary (hybrid routing):**
617
616
 
@@ -700,18 +699,18 @@ The conversation streaming path degrades gracefully to the existing batch STT pa
700
699
 
701
700
  **Key source files:**
702
701
 
703
- | File | Purpose |
704
- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
705
- | `src/stt/types.ts` | `StreamingTranscriber` interface, `SttStreamClientEvent`/`SttStreamServerEvent` discriminated unions, `ConversationStreamingMode` type |
706
- | `src/stt/stt-stream-session.ts` | Runtime session orchestrator: lifecycle management, idle timeout, event forwarding with `seq` ordering |
707
- | `src/providers/speech-to-text/deepgram-realtime.ts` | Deepgram realtime-ws adapter: WebSocket to Deepgram `/v1/listen`, `is_final`/`speech_final` normalization |
708
- | `src/providers/speech-to-text/google-gemini-live-stream.ts` | Google Gemini realtime-ws adapter: bidirectional Live API session, `serverContent.inputTranscription` normalization |
709
- | `src/providers/speech-to-text/provider-catalog.ts` | Provider catalog with `conversationStreamingMode` per entry (`realtime-ws`, `incremental-batch`, `none`) |
710
- | `src/providers/speech-to-text/resolve.ts` | `resolveStreamingTranscriber()`: credential-aware factory for streaming adapters; `resolveConversationStreamingSttCapability()`: capability validator |
711
- | `src/runtime/http-server.ts` | Runtime WebSocket upgrade handler for `/v1/stt/stream`, session registry (`activeSttStreamSessions`), graceful shutdown |
712
- | `gateway/src/http/routes/stt-stream-websocket.ts` | Gateway WebSocket proxy: authenticates client, opens upstream WS to daemon with service token |
713
- | `clients/web/src/domains/chat/voice/dictation-stream.ts` | Web streaming dictation client: WebSocket session, event parsing, failure reporting |
714
- | `clients/web/src/domains/chat/voice/voice-recording-store.ts` | Web voice recording state: streaming/batch priority, fallback on failure |
702
+ | File | Purpose |
703
+ | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
704
+ | `src/stt/types.ts` | `StreamingTranscriber` interface, `SttStreamClientEvent`/`SttStreamServerEvent` discriminated unions, `ConversationStreamingMode` type |
705
+ | `src/stt/stt-stream-session.ts` | Runtime session orchestrator: lifecycle management, idle timeout, event forwarding with `seq` ordering |
706
+ | `src/providers/speech-to-text/deepgram-realtime.ts` | Deepgram realtime-ws adapter: WebSocket to Deepgram `/v1/listen`, `is_final`/`speech_final` normalization |
707
+ | `src/providers/speech-to-text/google-gemini-live-stream.ts` | Google Gemini realtime-ws adapter: bidirectional Live API session, `serverContent.inputTranscription` normalization |
708
+ | `src/providers/speech-to-text/provider-catalog.ts` | Provider catalog with `conversationStreamingMode` per entry (`realtime-ws`, `incremental-batch`, `none`) |
709
+ | `src/providers/speech-to-text/resolve.ts` | `resolveStreamingTranscriber()`: credential-aware factory for streaming adapters; `resolveConversationStreamingSttCapability()`: capability validator |
710
+ | `src/runtime/http-server.ts` | Runtime WebSocket upgrade handler for `/v1/stt/stream`, session registry (`activeSttStreamSessions`), graceful shutdown |
711
+ | `gateway/src/http/routes/stt-stream-websocket.ts` | Gateway WebSocket proxy: authenticates client, opens upstream WS to daemon with service token |
712
+ | `clients/web/src/domains/chat/voice/dictation-stream.ts` | Web streaming dictation client: WebSocket session, event parsing, failure reporting |
713
+ | `clients/web/src/domains/chat/voice/voice-recording-store.ts` | Web voice recording state: streaming/batch priority, fallback on failure |
715
714
 
716
715
  **Live voice channel boundary:**
717
716
 
@@ -2054,9 +2053,9 @@ Connected channels are resolved at signal emission time: vellum is always includ
2054
2053
  | Module | Purpose |
2055
2054
  | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
2056
2055
  | `assistant/src/channels/config.ts` | Channel policy registry — single source of truth for per-channel notification behavior |
2057
- | `assistant/src/notifications/emit-signal.ts` | Single entry point for all producers; orchestrates the full pipeline |
2056
+ | `assistant/src/notifications/emit-signal.ts` | Single entry point for all producers; orchestrates the full pipeline; runs the source-active pre-decision gate |
2058
2057
  | `assistant/src/notifications/decision-engine.ts` | LLM-based routing decisions with deterministic fallback |
2059
- | `assistant/src/notifications/deterministic-checks.ts` | Hard invariant checks (dedupe, source-active suppression, channel availability) |
2058
+ | `assistant/src/notifications/deterministic-checks.ts` | Post-decision hard invariant checks (schema, dedupe, channel availability, copy quality) |
2060
2059
  | `assistant/src/notifications/broadcaster.ts` | Dispatches decisions to channel adapters; emits `notification_conversation_created` SSE event (creation-only) |
2061
2060
  | `assistant/src/notifications/conversation-pairing.ts` | Materializes conversation + message per delivery; executes conversation reuse decisions |
2062
2061
  | `assistant/src/notifications/conversation-candidates.ts` | Builds per-channel candidate set of recent conversations for the decision engine |
package/bun.lock CHANGED
@@ -13,6 +13,7 @@
13
13
  "@qdrant/js-client-rest": "1.17.0",
14
14
  "@resvg/resvg-js": "2.6.2",
15
15
  "@sentry/node": "10.43.0",
16
+ "@slack/types": "2.21.1",
16
17
  "@vellumai/ces-client": "file:../packages/ces-client",
17
18
  "@vellumai/credential-storage": "file:../packages/credential-storage",
18
19
  "@vellumai/egress-proxy": "file:../packages/egress-proxy",
@@ -391,6 +392,8 @@
391
392
 
392
393
  "@sentry/opentelemetry": ["@sentry/opentelemetry@10.43.0", "", { "dependencies": { "@sentry/core": "10.43.0" }, "peerDependencies": { "@opentelemetry/api": "^1.9.0", "@opentelemetry/context-async-hooks": "^1.30.1 || ^2.1.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", "@opentelemetry/semantic-conventions": "^1.39.0" } }, "sha512-+fIcnnLdvBHdq4nKq23t9v/B9D4L97fPWEDksXbpGs11o6BsqY4Tlzmce6cP95iiQhPckCEag3FthSND+BYtYQ=="],
393
394
 
395
+ "@slack/types": ["@slack/types@2.21.1", "", {}, "sha512-I8vmSjNYWsaxuWPx6dz4yeh0h7vRBWbgAMK14LEmblbZ404BtrPbXs6jDPx4cYgGf8msDGF4A9opLZBu21FViQ=="],
396
+
394
397
  "@ts-graphviz/adapter": ["@ts-graphviz/adapter@2.0.6", "", { "dependencies": { "@ts-graphviz/common": "^2.1.5" } }, "sha512-kJ10lIMSWMJkLkkCG5gt927SnGZcBuG0s0HHswGzcHTgvtUe7yk5/3zTEr0bafzsodsOq5Gi6FhQeV775nC35Q=="],
395
398
 
396
399
  "@ts-graphviz/ast": ["@ts-graphviz/ast@2.0.7", "", { "dependencies": { "@ts-graphviz/common": "^2.1.5" } }, "sha512-e6+2qtNV99UT6DJSoLbHfkzfyqY84aIuoV8Xlb9+hZAjgpum8iVHprGeAMQ4rF6sKUAxrmY8rfF/vgAwoPc3gw=="],
package/docs/workflows.md CHANGED
@@ -150,12 +150,12 @@ only as fast as the slowest leaf in each stage.
150
150
 
151
151
  ### Leaf options (`opts` for `agent` / `leaf`)
152
152
 
153
- | Option | Type | Effect |
154
- | --------- | -------------------------- | --------------------------------------------------------------------------------------- |
155
- | `schema` | JSON Schema object literal | Forces structured output via a tool. A schema leaf runs with **no tools**. |
156
- | `label` | string | Short display/diagnostic label for the leaf. |
157
- | `profile` | string | Overrides the model profile. Must exist in `llm.profiles` or the leaf throws. |
158
- | `persona` | boolean | `true` makes the leaf speak as the assistant (identity + memory). Default is anonymous. |
153
+ | Option | Type | Effect |
154
+ | --------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------- |
155
+ | `schema` | JSON Schema object literal | Forces structured output via a tool. A schema leaf runs with **no tools** — no read/recall; pass content inline. |
156
+ | `label` | string | Short display/diagnostic label for the leaf. |
157
+ | `profile` | string | Overrides the model profile. Must exist in `llm.profiles` or the leaf throws. |
158
+ | `persona` | boolean | `true` makes the leaf speak as the assistant (identity + memory). Default is anonymous. |
159
159
 
160
160
  #### `schema` is a JSON Schema literal, not Zod
161
161
 
@@ -163,7 +163,12 @@ A script runs in the sandbox and cannot hold a host-side Zod object, so a leaf's
163
163
  `schema` is a plain **JSON Schema object literal**. The engine builds a forced
164
164
  `tool_choice` call whose synthetic tool input is that schema, validates the
165
165
  model's output against it, and returns the structured object. A leaf with a
166
- `schema` is a pure judge/extractor — it gets **no tools**:
166
+ `schema` is a pure judge/extractor — it gets **no tools**, so it has no
167
+ `file_read`/`file_list`/`recall`/`web_search` and **cannot read files or recall
168
+ memory**. Anything it must judge has to be passed **inline** in the prompt; a
169
+ schema leaf told to "read these files" will confabulate against the schema. (To
170
+ read first and then emit structured output, use a tool leaf that returns JSON in
171
+ its text and parse it yourself.)
167
172
 
168
173
  ```js
169
174
  leaf(`Score this option 0-10 for fit: ${opt}`, {
@@ -47,9 +47,21 @@ const ALLOWED_PREFIXES = {
47
47
  "./",
48
48
  // Config schema/loader at depth-1 and depth-2.
49
49
  "../../config/loader",
50
+ "../../../config/loader",
50
51
  "../../config/schema",
51
52
  "../../config/env",
52
53
  "../../util/platform",
54
+ "../../../util/platform",
55
+ // Memory retrospective — the retrospective CLI runs the fork-based
56
+ // retrospective in-process (no daemon, no IPC), so it imports the
57
+ // job handler directly. Depth-2 for commands/memory/ nesting.
58
+ "../../memory/memory-retrospective-job",
59
+ "../../../memory/memory-retrospective-job",
60
+ // Memory worker control — the `memory worker` CLI spawns/probes/stops
61
+ // the worker OS process directly (no daemon, no IPC), so it imports the
62
+ // shared PID-file control helpers. Depth-2 for commands/memory/ nesting.
63
+ "../../memory/worker-control",
64
+ "../../../memory/worker-control",
53
65
  "../logger",
54
66
  "../output",
55
67
  "../../logger",
@@ -0,0 +1,23 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2014- Slack Technologies, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23
+
@@ -0,0 +1,32 @@
1
+ # Slack Types
2
+
3
+ The `@slack/types` package is intended to be used as a central location for modeling Slack interfaces, types, payloads
4
+ and constructs of all kinds.
5
+
6
+ ## Requirements
7
+
8
+ This package supports Node v18 and higher. It's highly recommended to use [the latest LTS version of
9
+ node](https://github.com/nodejs/Release#release-schedule), and the documentation is written using syntax and features
10
+ from that version.
11
+
12
+ ## Installation
13
+
14
+ ```shell
15
+ $ npm install @slack/types
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ This package exports many different types and interfaces. It is best to peruse the source code to see what is
21
+ available, but a brief list:
22
+
23
+ - Block Kit blocks and elements (`./src/block-kit/*`)
24
+ - Message attachments (`./src/message-attachments.ts`)
25
+
26
+ ## Getting Help
27
+
28
+ If you get stuck, we're here to help. The following are the best ways to get assistance working through your issue:
29
+
30
+ * [Issue Tracker](http://github.com/slackapi/node-slack-sdk/issues) for questions, feature requests, bug reports and
31
+ general discussion related to this package. Try searching before you create a new issue.
32
+ * [Email us](mailto:developers@slack.com) in Slack developer support: `developers@slack.com`