@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
@@ -0,0 +1,953 @@
1
+ import type { RichTextBlock } from './blocks';
2
+ import type { ColorScheme, Option, PlainTextElement, PlainTextOption, SlackFileImageObject, UrlImageObject } from './composition-objects';
3
+ import type { Actionable, Confirmable, Dispatchable, Focusable, MaxItemsSelectable, Placeholdable, RichTextBorderable, RichTextStyleable, URLRespondable } from './extensions';
4
+ /**
5
+ * @description Allows users a direct path to performing basic actions.
6
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/button-element Button element reference}.
7
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interactionThis is an interactive component - see our guide to enabling interactivity}.
8
+ */
9
+ export interface Button extends Actionable, Confirmable {
10
+ /**
11
+ * @description The type of element. In this case `type` is always `button`.
12
+ */
13
+ type: 'button';
14
+ /**
15
+ * @description A {@link PlainTextElement} that defines the button's text. `text` may truncate with ~30 characters.
16
+ * Maximum length for the text in this field is 75 characters.
17
+ */
18
+ text: PlainTextElement;
19
+ /**
20
+ * @description The value to send along with the {@link https://docs.slack.dev/interactivity/handling-user-interaction#payloads interaction payload}.
21
+ * Maximum length for this field is 2000 characters.
22
+ */
23
+ value?: string;
24
+ /**
25
+ * @description A URL to load in the user's browser when the button is clicked. Maximum length for this field is 3000
26
+ * characters. If you're using `url`, you'll still receive an {@link https://docs.slack.dev/interactivity/handling-user-interaction#payloads interaction payload}
27
+ * and will need to send an {@link https://docs.slack.dev/interactivity/handling-user-interaction#acknowledgment_response acknowledgement response}.
28
+ */
29
+ url?: string;
30
+ /**
31
+ * @description Decorates buttons with alternative visual color schemes. Use this option with restraint.
32
+ * `primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should
33
+ * only be used for one button within a set.
34
+ * `danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even
35
+ * more sparingly than primary.
36
+ * If you don't include this field, the default button style will be used.
37
+ */
38
+ style?: ColorScheme;
39
+ /**
40
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen
41
+ * readers instead of the button `text` object. Maximum length for this field is 75 characters.
42
+ */
43
+ accessibility_label?: string;
44
+ }
45
+ /**
46
+ * @description Allows users to choose multiple items from a list of options.
47
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/checkboxes-element Checkboxes element reference}.
48
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
49
+ */
50
+ export interface Checkboxes extends Actionable, Confirmable, Focusable {
51
+ /**
52
+ * @description The type of element. In this case `type` is always `checkboxes`.
53
+ */
54
+ type: 'checkboxes';
55
+ /**
56
+ * @description An array of {@link Option} objects that exactly matches one or more of the options within `options`.
57
+ * These options will be selected when the checkbox group initially loads.
58
+ */
59
+ initial_options?: Option[];
60
+ /**
61
+ * @description An array of {@link Option} objects. A maximum of 10 options are allowed.
62
+ */
63
+ options: Option[];
64
+ }
65
+ /**
66
+ * @description Allows users to select a date from a calendar style UI.
67
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/date-picker-element Date picker element reference}.
68
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
69
+ */
70
+ export interface Datepicker extends Actionable, Confirmable, Focusable, Placeholdable {
71
+ /**
72
+ * @description The type of element. In this case `type` is always `datepicker`.
73
+ */
74
+ type: 'datepicker';
75
+ /**
76
+ * @description The initial date that is selected when the element is loaded.
77
+ * This should be in the format `YYYY-MM-DD`.
78
+ */
79
+ initial_date?: string;
80
+ }
81
+ /**
82
+ * @description Allows users to select both a date and a time of day, formatted as a Unix timestamp. On desktop
83
+ * clients, this time picker will take the form of a dropdown list and the date picker will take the form of a dropdown
84
+ * calendar. Both options will have free-text entry for precise choices. On mobile clients, the time picker and date
85
+ * picker will use native UIs.
86
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/datetime-picker-element Datetime picker element reference}.
87
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
88
+ */
89
+ export interface DateTimepicker extends Actionable, Confirmable, Focusable {
90
+ /**
91
+ * @description The type of element. In this case `type` is always `datetimepicker`.
92
+ */
93
+ type: 'datetimepicker';
94
+ /**
95
+ * @description The initial date and time that is selected when the element is loaded, represented as a UNIX
96
+ * timestamp in seconds. This should be in the format of 10 digits, for example `1628633820` represents the date and
97
+ * time August 10th, 2021 at 03:17pm PST.
98
+ */
99
+ initial_date_time?: number;
100
+ }
101
+ /**
102
+ * @description Allows user to enter an email into a single-line field.
103
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/email-input-element Email input element reference}.
104
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
105
+ */
106
+ export interface EmailInput extends Actionable, Dispatchable, Focusable, Placeholdable {
107
+ /**
108
+ * @description The type of element. In this case `type` is always `email_text_input`.
109
+ */
110
+ type: 'email_text_input';
111
+ /**
112
+ * @description The initial value in the email input when it is loaded.
113
+ */
114
+ initial_value?: string;
115
+ }
116
+ /**
117
+ * @description Buttons to indicate positive or negative feedback.
118
+ */
119
+ export interface FeedbackButtons extends Actionable {
120
+ /**
121
+ * @description The type of block. For a feedback buttons block, `type` is always `feedback_buttons`.
122
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/feedback-buttons-element Feedback buttons element reference}.
123
+ */
124
+ type: 'feedback_buttons';
125
+ /**
126
+ * @description A button to indicate positive feedback.
127
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/feedback-buttons-element/#button-object-fields Feedback buttons object fields reference}.
128
+ */
129
+ positive_button: {
130
+ /**
131
+ * @description Defines an object containing some text.
132
+ * @see {@link https://docs.slack.dev/reference/block-kit/composition-objects/text-object Text object reference}.
133
+ */
134
+ text: PlainTextElement;
135
+ /**
136
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen readers instead of the button `text` object. Maximum length for this field is 75 characters.
137
+ */
138
+ accessibility_label?: string;
139
+ /**
140
+ * @description The positive feedback button value.
141
+ */
142
+ value: string;
143
+ };
144
+ /**
145
+ * @description A button to indicate negative feedback.
146
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/feedback-buttons-element/#button-object-fields Feedback buttons object fields reference}.
147
+ */
148
+ negative_button: {
149
+ /**
150
+ * @description Defines an object containing some text.
151
+ * @see {@link https://docs.slack.dev/reference/block-kit/composition-objects/text-object Text object reference}.
152
+ */
153
+ text: PlainTextElement;
154
+ /**
155
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen readers instead of the button `text` object. Maximum length for this field is 75 characters.
156
+ */
157
+ accessibility_label?: string;
158
+ /**
159
+ * @description The negative feedback button value.
160
+ */
161
+ value: string;
162
+ };
163
+ }
164
+ /**
165
+ * @description Allows user to upload files. In order to use the `file_input` element within your app,
166
+ * your app must have the `files:read` scope.
167
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/file-input-element File input element reference}.
168
+ */
169
+ export interface FileInput extends Actionable {
170
+ /**
171
+ * @description The type of element. In this case `type` is always `file_input`.
172
+ */
173
+ type: 'file_input';
174
+ /**
175
+ * @description An array of valid {@link https://docs.slack.dev/reference/objects/file-object file extensions} that will be accepted
176
+ * for this element. All file extensions will be accepted if `filetypes` is not specified. This validation is provided
177
+ * for convenience only, and you should perform your own file type validation based on what you expect to receive.
178
+ */
179
+ filetypes?: string[];
180
+ /**
181
+ * @description Maximum number of files that can be uploaded for this `file_input` element. Minimum of `1`, maximum of
182
+ * `10`. Defaults to `10` if not specified.
183
+ */
184
+ max_files?: number;
185
+ }
186
+ /**
187
+ * @description An icon button to perform actions.
188
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/icon-button-element Icon button element reference}.
189
+ */
190
+ export interface IconButton extends Actionable, Confirmable {
191
+ /**
192
+ * @description The type of element. In this case `type` is always `icon_button`.
193
+ */
194
+ type: 'icon_button';
195
+ /**
196
+ * @description The icon to show.
197
+ * @example trash
198
+ */
199
+ icon: string;
200
+ /**
201
+ * @description Defines an object containing some text.
202
+ * @see {@link https://docs.slack.dev/reference/block-kit/composition-objects/text-object Text object reference}.
203
+ */
204
+ text: PlainTextElement;
205
+ /**
206
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen readers instead of the button `text` object. Maximum length for this field is 75 characters.
207
+ */
208
+ accessibility_label?: string;
209
+ /**
210
+ * @description The button value.
211
+ */
212
+ value?: string;
213
+ /**
214
+ * @description User IDs for which the icon appears.
215
+ */
216
+ visible_to_user_ids?: string[];
217
+ }
218
+ /**
219
+ * @description Displays an image as part of a larger block of content. Use this `image` block if you want a block with
220
+ * only an image in it.
221
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/image-element Image element reference}.
222
+ */
223
+ export type ImageElement = {
224
+ /**
225
+ * @description The type of element. In this case `type` is always `image`.
226
+ */
227
+ type: 'image';
228
+ /**
229
+ * @description A plain-text summary of the image. This should not contain any markup.
230
+ */
231
+ alt_text: string;
232
+ } & (UrlImageObject | SlackFileImageObject);
233
+ /**
234
+ * @description Allows users to choose an option from a drop down menu.
235
+ * The select menu also includes type-ahead functionality, where a user can type a part or all of an option string to
236
+ * filter the list. There are different types of select menu elements that depend on different data sources for their
237
+ * lists of options: {@link StaticSelect}, {@link ExternalSelect}, {@link UsersSelect}, {@link ConversationsSelect},
238
+ * {@link ChannelsSelect}.
239
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element Select menu element reference}.
240
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
241
+ */
242
+ export type Select = UsersSelect | StaticSelect | ConversationsSelect | ChannelsSelect | ExternalSelect;
243
+ /**
244
+ * @description Allows users to select multiple items from a list of options.
245
+ * Just like regular {@link Select}, multi-select menus also include type-ahead functionality, where a user can type a
246
+ * part or all of an option string to filter the list.
247
+ * There are different types of multi-select menu that depend on different data sources for their lists of options:
248
+ * {@link MultiStaticSelect}, {@link MultiExternalSelect}, {@link MultiUsersSelect}, {@link MultiConversationsSelect},
249
+ * {@link MultiChannelsSelect}.
250
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menus-element Multi-select menu element reference}.
251
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
252
+ */
253
+ export type MultiSelect = MultiUsersSelect | MultiStaticSelect | MultiConversationsSelect | MultiChannelsSelect | MultiExternalSelect;
254
+ /**
255
+ * @description This select menu will populate its options with a list of Slack users visible to the current user in the
256
+ * active workspace.
257
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#users_select Select menu of users reference}.
258
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
259
+ */
260
+ export interface UsersSelect extends Actionable, Confirmable, Focusable, Placeholdable {
261
+ /**
262
+ * @description The type of element. In this case `type` is always `users_select`.
263
+ */
264
+ type: 'users_select';
265
+ /**
266
+ * @description The user ID of any valid user to be pre-selected when the menu loads.
267
+ */
268
+ initial_user?: string;
269
+ }
270
+ /**
271
+ * @description This multi-select menu will populate its options with a list of Slack users visible to the current user
272
+ * in the active workspace.
273
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#users_multi_select Multi-select menu of users reference}.
274
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
275
+ */
276
+ export interface MultiUsersSelect extends Actionable, Confirmable, Focusable, MaxItemsSelectable, Placeholdable {
277
+ /**
278
+ * @description The type of element. In this case `type` is always `multi_users_select`.
279
+ */
280
+ type: 'multi_users_select';
281
+ /**
282
+ * @description An array of user IDs of any valid users to be pre-selected when the menu loads.
283
+ */
284
+ initial_users?: string[];
285
+ }
286
+ /**
287
+ * @description This is the simplest form of select menu, with a static list of options passed in when defining the
288
+ * element.
289
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#static_select Select menu of static options reference}.
290
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
291
+ */
292
+ export interface StaticSelect extends Actionable, Confirmable, Focusable, Placeholdable {
293
+ /**
294
+ * @description The type of element. In this case `type` is always `static_select`.
295
+ */
296
+ type: 'static_select';
297
+ /**
298
+ * @description A single option that exactly matches one of the options within `options` or `option_groups`.
299
+ * This option will be selected when the menu initially loads.
300
+ */
301
+ initial_option?: PlainTextOption;
302
+ /**
303
+ * @description An array of {@link PlainTextOption}. Maximum number of options is 100. If `option_groups` is
304
+ * specified, this field should not be.
305
+ */
306
+ options?: PlainTextOption[];
307
+ /**
308
+ * @description An array of option group objects. Maximum number of option groups is 100. If `options` is specified,
309
+ * this field should not be.
310
+ */
311
+ option_groups?: {
312
+ label: PlainTextElement;
313
+ options: PlainTextOption[];
314
+ }[];
315
+ }
316
+ /**
317
+ * @description This is the simplest form of select menu, with a static list of options passed in when defining the
318
+ * element.
319
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#static_multi_select Multi-select menu of static options reference}.
320
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
321
+ */
322
+ export interface MultiStaticSelect extends Actionable, Confirmable, Focusable, MaxItemsSelectable, Placeholdable {
323
+ /**
324
+ * @description The type of element. In this case `type` is always `multi_static_select`.
325
+ */
326
+ type: 'multi_static_select';
327
+ /**
328
+ * @description An array of option objects that exactly match one or more of the options within `options` or
329
+ * `option_groups`. These options will be selected when the menu initially loads.
330
+ */
331
+ initial_options?: PlainTextOption[];
332
+ /**
333
+ * @description An array of {@link PlainTextOption}. Maximum number of options is 100. If `option_groups` is
334
+ * specified, this field should not be.
335
+ */
336
+ options?: PlainTextOption[];
337
+ /**
338
+ * @description An array of option group objects. Maximum number of option groups is 100. If `options` is specified,
339
+ * this field should not be.
340
+ */
341
+ option_groups?: {
342
+ label: PlainTextElement;
343
+ options: PlainTextOption[];
344
+ }[];
345
+ }
346
+ /**
347
+ * @description This select menu will populate its options with a list of public and private channels, DMs, and MPIMs
348
+ * visible to the current user in the active workspace.
349
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#conversations_select Select menu of conversations reference}.
350
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
351
+ */
352
+ export interface ConversationsSelect extends Actionable, Confirmable, Focusable, Placeholdable, URLRespondable {
353
+ /**
354
+ * @description The type of element. In this case `type` is always `conversations_select`.
355
+ */
356
+ type: 'conversations_select';
357
+ /**
358
+ * @description The ID of any valid conversation to be pre-selected when the menu loads. If
359
+ * `default_to_current_conversation` is also supplied, `initial_conversation` will take precedence.
360
+ */
361
+ initial_conversation?: string;
362
+ /**
363
+ * @description Pre-populates the select menu with the conversation that the user was viewing when they opened the
364
+ * modal, if available. Default is `false`.
365
+ */
366
+ default_to_current_conversation?: boolean;
367
+ /**
368
+ * @description A filter object that reduces the list of available conversations using the specified criteria.
369
+ */
370
+ filter?: {
371
+ include?: ('im' | 'mpim' | 'private' | 'public')[];
372
+ exclude_external_shared_channels?: boolean;
373
+ exclude_bot_users?: boolean;
374
+ };
375
+ }
376
+ /**
377
+ * @description This multi-select menu will populate its options with a list of public and private channels, DMs, and
378
+ * MPIMs visible to the current user in the active workspace.
379
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#conversation_multi_select Multi-select menu of conversations reference}.
380
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
381
+ */
382
+ export interface MultiConversationsSelect extends Actionable, Confirmable, Focusable, MaxItemsSelectable, Placeholdable {
383
+ /**
384
+ * @description The type of element. In this case `type` is always `conversations_select`.
385
+ */
386
+ type: 'multi_conversations_select';
387
+ /**
388
+ * @description An array of one or more IDs of any valid conversations to be pre-selected when the menu loads. If
389
+ * `default_to_current_conversation` is also supplied, `initial_conversation` will be ignored.
390
+ */
391
+ initial_conversations?: string[];
392
+ /**
393
+ * @description Pre-populates the select menu with the conversation that the user was viewing when they opened the
394
+ * modal, if available. Default is `false`.
395
+ */
396
+ default_to_current_conversation?: boolean;
397
+ /**
398
+ * @description A filter object that reduces the list of available conversations using the specified criteria.
399
+ */
400
+ filter?: {
401
+ include?: ('im' | 'mpim' | 'private' | 'public')[];
402
+ exclude_external_shared_channels?: boolean;
403
+ exclude_bot_users?: boolean;
404
+ };
405
+ }
406
+ /**
407
+ * @description This select menu will populate its options with a list of public channels visible to the current user
408
+ * in the active workspace.
409
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#channels_select Select menu of public channels reference}.
410
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
411
+ */
412
+ export interface ChannelsSelect extends Actionable, Confirmable, Focusable, Placeholdable, URLRespondable {
413
+ /**
414
+ * @description The type of element. In this case `type` is always `channels_select`.
415
+ */
416
+ type: 'channels_select';
417
+ /**
418
+ * @description The ID of any valid public channel to be pre-selected when the menu loads.
419
+ */
420
+ initial_channel?: string;
421
+ }
422
+ /**
423
+ * @description This multi-select menu will populate its options with a list of public channels visible to the current
424
+ * user in the active workspace.
425
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#channel_multi_select Multi-select menu of public channels reference}.
426
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
427
+ */
428
+ export interface MultiChannelsSelect extends Actionable, Confirmable, Focusable, MaxItemsSelectable, Placeholdable {
429
+ /**
430
+ * @description The type of element. In this case `type` is always `multi_channels_select`.
431
+ */
432
+ type: 'multi_channels_select';
433
+ /**
434
+ * @description An array of one or more IDs of any valid public channel to be pre-selected when the menu loads.
435
+ */
436
+ initial_channels?: string[];
437
+ }
438
+ /**
439
+ * @description This select menu will load its options from an external data source, allowing for a dynamic list of
440
+ * options.
441
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/select-menu-element#external_select Select menu of external data source reference}.
442
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
443
+ */
444
+ export interface ExternalSelect extends Actionable, Confirmable, Focusable, Placeholdable {
445
+ /**
446
+ * @description The type of element. In this case `type` is always `external_select`.
447
+ */
448
+ type: 'external_select';
449
+ /**
450
+ * @description A single option to be selected when the menu initially loads.
451
+ */
452
+ initial_option?: PlainTextOption;
453
+ /**
454
+ * @description When the typeahead field is used, a request will be sent on every character change. If you prefer
455
+ * fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number
456
+ * of typed characters required before dispatch. The default value is `3`.
457
+ */
458
+ min_query_length?: number;
459
+ }
460
+ /**
461
+ * @description This menu will load its options from an external data source, allowing for a dynamic list of options.
462
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/multi-select-menu-element#external_multi_select Multi-select menu of external data source reference}.
463
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
464
+ */
465
+ export interface MultiExternalSelect extends Actionable, Confirmable, Focusable, MaxItemsSelectable, Placeholdable {
466
+ /**
467
+ * @description The type of element. In this case `type` is always `multi_external_select`.
468
+ */
469
+ type: 'multi_external_select';
470
+ /**
471
+ * @description An array of options to be selected when the menu initially loads.
472
+ */
473
+ initial_options?: PlainTextOption[];
474
+ /**
475
+ * @description When the typeahead field is used, a request will be sent on every character change. If you prefer
476
+ * fewer requests or more fully ideated queries, use the `min_query_length` attribute to tell Slack the fewest number
477
+ * of typed characters required before dispatch. The default value is `3`.
478
+ */
479
+ min_query_length?: number;
480
+ }
481
+ /**
482
+ * @description Allows user to enter a number into a single-line field. The number input element accepts both whole and
483
+ * decimal numbers. For example, 0.25, 5.5, and -10 are all valid input values. Decimal numbers are only allowed when
484
+ * `is_decimal_allowed` is equal to `true`.
485
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/number-input-element Number input element reference}.
486
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
487
+ */
488
+ export interface NumberInput extends Actionable, Dispatchable, Focusable, Placeholdable {
489
+ /**
490
+ * @description The type of element. In this case `type` is always `number_input`.
491
+ */
492
+ type: 'number_input';
493
+ /**
494
+ * @description Decimal numbers are allowed if this property is `true`, set the value to `false` otherwise.
495
+ */
496
+ is_decimal_allowed: boolean;
497
+ /**
498
+ * @description The initial value in the input when it is loaded.
499
+ */
500
+ initial_value?: string;
501
+ /**
502
+ * @description The minimum value, cannot be greater than `max_value`.
503
+ */
504
+ min_value?: string;
505
+ /**
506
+ * @description The maximum value, cannot be less than `min_value`.
507
+ */
508
+ max_value?: string;
509
+ }
510
+ /**
511
+ * @description Allows users to press a button to view a list of options.
512
+ * Unlike the select menu, there is no typeahead field, and the button always appears with an ellipsis ('…') rather
513
+ * than customizable text. As such, it is usually used if you want a more compact layout than a select menu, or to
514
+ * supply a list of less visually important actions after a row of buttons. You can also specify simple URL links as
515
+ * overflow menu options, instead of actions.
516
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/overflow-menu-element Overflow menu element reference}.
517
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
518
+ */
519
+ export interface Overflow extends Actionable, Confirmable {
520
+ /**
521
+ * @description The type of element. In this case `type` is always `number_input`.
522
+ */
523
+ type: 'overflow';
524
+ /**
525
+ * @description An array of up to 5 {@link PlainTextOption} to display in the menu.
526
+ */
527
+ options: PlainTextOption[];
528
+ }
529
+ /**
530
+ * @description Allows users to enter freeform text data into a single-line or multi-line field.
531
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/plain-text-input-element Plain-text input element reference}.
532
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
533
+ */
534
+ export interface PlainTextInput extends Actionable, Dispatchable, Focusable, Placeholdable {
535
+ /**
536
+ * @description The type of element. In this case `type` is always `plain_text_input`.
537
+ */
538
+ type: 'plain_text_input';
539
+ /**
540
+ * @description The initial value in the plain-text input when it is loaded.
541
+ */
542
+ initial_value?: string;
543
+ /**
544
+ * @description Indicates whether the input will be a single line (`false`) or a larger textarea (`true`).
545
+ * Defaults to `false`.
546
+ */
547
+ multiline?: boolean;
548
+ /**
549
+ * @description The minimum length of input that the user must provide. If the user provides less, they will receive
550
+ * an error. Maximum value is 3000.
551
+ */
552
+ min_length?: number;
553
+ /**
554
+ * @description The maximum length of input that the user can provide. If the user provides more,
555
+ * they will receive an error.
556
+ */
557
+ max_length?: number;
558
+ }
559
+ /**
560
+ * @description Allows users to choose one item from a list of possible options.
561
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/radio-button-group-element Radio button group element reference}.
562
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
563
+ */
564
+ export interface RadioButtons extends Actionable, Confirmable, Focusable {
565
+ /**
566
+ * @description The type of element. In this case `type` is always `radio_buttons`.
567
+ */
568
+ type: 'radio_buttons';
569
+ /**
570
+ * @description An {@link Option} object that exactly matches one of the options within `options`. This option will
571
+ * be selected when the radio button group initially loads.
572
+ */
573
+ initial_option?: Option;
574
+ /**
575
+ * @description An array of {@link Option} objects. A maximum of 10 options are allowed.
576
+ */
577
+ options: Option[];
578
+ }
579
+ /**
580
+ * @description Allows users to choose a time from a rich dropdown UI. On desktop clients, this time picker will take
581
+ * the form of a dropdown list with free-text entry for precise choices. On mobile clients, the time picker will use
582
+ * native time picker UIs.
583
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/time-picker-element Time picker element reference}.
584
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
585
+ */
586
+ export interface Timepicker extends Actionable, Confirmable, Focusable, Placeholdable {
587
+ /**
588
+ * @description The type of element. In this case `type` is always `timepicker`.
589
+ */
590
+ type: 'timepicker';
591
+ /**
592
+ * @description The initial time that is selected when the element is loaded. This should be in the format `HH:mm`,
593
+ * where `HH` is the 24-hour format of an hour (00 to 23) and `mm` is minutes with leading zeros (00 to 59),
594
+ * for example 22:25 for 10:25pm.
595
+ */
596
+ initial_time?: string;
597
+ /**
598
+ * @description A string in the IANA format, e.g. 'America/Chicago'. The timezone is displayed to end users as hint
599
+ * text underneath the time picker. It is also passed to the app upon certain interactions, such as view_submission.
600
+ */
601
+ timezone?: string;
602
+ }
603
+ /**
604
+ * @description Allows user to enter a URL into a single-line field.
605
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/url-input-element URL input element reference}.
606
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
607
+ */
608
+ export interface URLInput extends Actionable, Dispatchable, Focusable, Placeholdable {
609
+ /**
610
+ * @description The type of element. In this case `type` is always `url_text_input`.
611
+ */
612
+ type: 'url_text_input';
613
+ /**
614
+ * @description The initial value in the URL input when it is loaded.
615
+ */
616
+ initial_value?: string;
617
+ }
618
+ /**
619
+ * @description A URL source element that displays a URL source for referencing within a task card block.
620
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/url-source-element}
621
+ */
622
+ export interface URLSourceElement {
623
+ /**
624
+ * @description The type of element. In this case `type` is always `url`.
625
+ */
626
+ type: 'url';
627
+ /**
628
+ * @description The URL type source.
629
+ */
630
+ url: string;
631
+ /**
632
+ * @description Display text for the URL.
633
+ */
634
+ text: string;
635
+ }
636
+ /**
637
+ * @description Allows users to run a {@link https://docs.slack.dev/tools/deno-slack-sdk/guides/creating-link-triggers/#workflow_buttons link trigger} with customizable inputs.
638
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/workflow-button-element Workflow button element reference}.
639
+ */
640
+ export interface WorkflowButton extends Confirmable {
641
+ /**
642
+ * @description The type of element. In this case `type` is always `workflow_button`.
643
+ */
644
+ type: 'workflow_button';
645
+ /**
646
+ * @description A {@link PlainTextElement} that defines the button's text. `text` may truncate with ~30 characters.
647
+ * Maximum length for the `text` in this field is 75 characters.
648
+ */
649
+ text: PlainTextElement;
650
+ /**
651
+ * @description A workflow object that contains details about the workflow that will run when the button is clicked.
652
+ */
653
+ workflow: {
654
+ /**
655
+ * @description Properties of the {@link https://docs.slack.dev/tools/deno-slack-sdk/guides/creating-link-triggers/#workflow_buttons link trigger}
656
+ * that will be invoked via this button.
657
+ */
658
+ trigger: {
659
+ /**
660
+ * @description The trigger URL of the {@link https://docs.slack.dev/tools/deno-slack-sdk/guides/creating-link-triggers/#workflow_buttons link trigger}
661
+ */
662
+ url: string;
663
+ /**
664
+ * @description List of customizable input parameters and their values. Should match input parameters specified on
665
+ * the provided trigger.
666
+ */
667
+ customizable_input_parameters?: {
668
+ /**
669
+ * @description Name of the customizable input, which should be the name of a workflow input parameter for the
670
+ * matching workflow of the link trigger.
671
+ */
672
+ name: string;
673
+ /**
674
+ * @description The value of the customizable input parameter. The type of the value is expected to match the
675
+ * specified type for the matching workflow input parameter.
676
+ */
677
+ value: string;
678
+ }[];
679
+ };
680
+ };
681
+ /**
682
+ * @description Decorates buttons with alternative visual color schemes. Use this option with restraint.
683
+ * `primary` gives buttons a green outline and text, ideal for affirmation or confirmation actions. `primary` should
684
+ * only be used for one button within a set.
685
+ * `danger` gives buttons a red outline and text, and should be used when the action is destructive. Use `danger` even
686
+ * more sparingly than primary.
687
+ * If you don't include this field, the default button style will be used.
688
+ */
689
+ style?: ColorScheme;
690
+ /**
691
+ * @description A label for longer descriptive text about a button element. This label will be read out by screen
692
+ * readers instead of the button `text` object. Maximum length for this field is 75 characters.
693
+ */
694
+ accessibility_label?: string;
695
+ }
696
+ /**
697
+ * @description A broadcast mention element for use in a rich text message.
698
+ */
699
+ export interface RichTextBroadcastMention extends RichTextStyleable {
700
+ /**
701
+ * @description The type of element. In this case `type` is always `broadcast`.
702
+ */
703
+ type: 'broadcast';
704
+ /**
705
+ * @description The range of the broadcast; can be one of `here`, `channel` and `everyone`.
706
+ */
707
+ range: 'here' | 'channel' | 'everyone';
708
+ }
709
+ /**
710
+ * @description A hex color element for use in a rich text message.
711
+ */
712
+ export interface RichTextColor extends RichTextStyleable {
713
+ /**
714
+ * @description The type of element. In this case `type` is always `color`.
715
+ */
716
+ type: 'color';
717
+ /**
718
+ * @description The hex value for the color.
719
+ */
720
+ value: string;
721
+ }
722
+ /**
723
+ * @description A channel mention element for use in a rich text message.
724
+ */
725
+ export interface RichTextChannelMention extends RichTextStyleable {
726
+ /**
727
+ * @description The type of element. In this case `type` is always `channel`.
728
+ */
729
+ type: 'channel';
730
+ /**
731
+ * @description The encoded channel ID, e.g. C1234ABCD.
732
+ */
733
+ channel_id: string;
734
+ }
735
+ /**
736
+ * @description A date element for use in a rich text message.
737
+ */
738
+ export interface RichTextDate extends RichTextStyleable {
739
+ /**
740
+ * @description The type of element. In this case `type` is always `date`.
741
+ */
742
+ type: 'date';
743
+ /**
744
+ * @description A UNIX timestamp for the date to be displayed in seconds.
745
+ */
746
+ timestamp: number;
747
+ /**
748
+ * @description A template string containing curly-brace-enclosed tokens to substitute your provided `timestamp`
749
+ * in a particularly-formatted way. For example: `Posted at {date_long}`. The available date formatting tokens are:
750
+ * - `{day_divider_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable. Otherwise, if the date is in
751
+ * current year, uses the `{date_long}` format without the year. Otherwise, falls back to using the `{date_long}`
752
+ * format.
753
+ * - `{date_num}`: Shows date as YYYY-MM-DD.
754
+ * - `{date_slash}`: Shows date as DD/MM/YYYY (subject to locale preferences).
755
+ * - `{date_long}`: Shows date as a long-form sentence including day-of-week, e.g. `Monday, December 23rd, 2013`.
756
+ * - `{date_long_full}`: Shows date as a long-form sentence without day-of-week, e.g. `August 9, 2020`.
757
+ * - `{date_long_pretty}`: Shows `yesterday`, `today` or `tomorrow`, otherwise uses the `{date_long}` format.
758
+ * - `{date}`: Same as `{date_long_full}` but without the year.
759
+ * - `{date_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date}` format.
760
+ * - `{date_short}`: Shows date using short month names without day-of-week, e.g. `Aug 9, 2020`.
761
+ * - `{date_short_pretty}`: Shows `today`, `yesterday` or `tomorrow` if applicable, otherwise uses the `{date_short}`
762
+ * format.
763
+ * - `{time}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12 or
764
+ * 24 hour clock formats, e.g. `2:34 PM` or `14:34`.
765
+ * - `{time_secs}`: Depending on user preferences, shows just the time-of-day portion of the timestamp using either 12
766
+ * or 24 hour clock formats, including seconds, e.g. `2:34:56 PM` or `14:34:56`.
767
+ * - `{ago}`: A human-readable period of time, e.g. `3 minutes ago`, `4 hours ago`, `2 days ago`.
768
+ * TODO: test/document `{member_local_time}`, `{status_expiration}` and `{calendar_header}`
769
+ */
770
+ format: string;
771
+ /**
772
+ * @description URL to link the entire `format` string to.
773
+ */
774
+ url?: string;
775
+ /**
776
+ * @description Text to display in place of the date should parsing, formatting or displaying fails.
777
+ */
778
+ fallback?: string;
779
+ }
780
+ /**
781
+ * @description An emoji element for use in a rich text message.
782
+ */
783
+ export interface RichTextEmoji extends RichTextStyleable {
784
+ /**
785
+ * @description The type of element. In this case `type` is always `emoji`.
786
+ */
787
+ type: 'emoji';
788
+ /**
789
+ * @description Name of emoji, without colons or skin tones, e.g. `wave`
790
+ */
791
+ name: string;
792
+ /**
793
+ * @description Lowercase hexadecimal Unicode representation of a standard emoji (not for use with custom emoji).
794
+ */
795
+ unicode?: string;
796
+ /**
797
+ * @description URL of emoji asset. Only used when sharing custom emoji across workspaces.
798
+ */
799
+ url?: string;
800
+ }
801
+ /**
802
+ * @description A link element for use in a rich text message.
803
+ */
804
+ export interface RichTextLink extends RichTextStyleable {
805
+ /**
806
+ * @description The type of element. In this case `type` is always `link`.
807
+ */
808
+ type: 'link';
809
+ /**
810
+ * @description The text to link.
811
+ */
812
+ text?: string;
813
+ /**
814
+ * @description TODO: ?
815
+ */
816
+ unsafe?: boolean;
817
+ /**
818
+ * @description URL to link to.
819
+ */
820
+ url: string;
821
+ }
822
+ /**
823
+ * @description A workspace or team mention element for use in a rich text message.
824
+ */
825
+ export interface RichTextTeamMention extends RichTextStyleable {
826
+ /**
827
+ * @description The type of element. In this case `type` is always `team`.
828
+ */
829
+ type: 'team';
830
+ /**
831
+ * @description The encoded team ID, e.g. T1234ABCD.
832
+ */
833
+ team_id: string;
834
+ }
835
+ /**
836
+ * @description A generic text element for use in a rich text message.
837
+ */
838
+ export interface RichTextText extends RichTextStyleable {
839
+ /**
840
+ * @description The type of element. In this case `type` is always `text`.
841
+ */
842
+ type: 'text';
843
+ /**
844
+ * @description The text to render.
845
+ */
846
+ text: string;
847
+ }
848
+ /**
849
+ * @description A user mention element for use in a rich text message.
850
+ */
851
+ export interface RichTextUserMention extends RichTextStyleable {
852
+ /**
853
+ * @description The type of element. In this case `type` is always `user`.
854
+ */
855
+ type: 'user';
856
+ /**
857
+ * @description The encoded user ID, e.g. U1234ABCD.
858
+ */
859
+ user_id: string;
860
+ }
861
+ /**
862
+ * @description A usergroup mention element for use in a rich text message.
863
+ */
864
+ export interface RichTextUsergroupMention extends RichTextStyleable {
865
+ /**
866
+ * @description The type of element. In this case `type` is always `usergroup`.
867
+ */
868
+ type: 'usergroup';
869
+ /**
870
+ * @description The encoded usergroup ID, e.g. S1234ABCD.
871
+ */
872
+ usergroup_id: string;
873
+ }
874
+ /**
875
+ * @description Union of rich text sub-elements for use within rich text blocks.
876
+ */
877
+ export type RichTextElement = RichTextBroadcastMention | RichTextColor | RichTextChannelMention | RichTextDate | RichTextEmoji | RichTextLink | RichTextTeamMention | RichTextText | RichTextUserMention | RichTextUsergroupMention;
878
+ /**
879
+ * @description A section block within a rich text field.
880
+ */
881
+ export interface RichTextSection {
882
+ /**
883
+ * @description The type of element. In this case `type` is always `rich_text_section`.
884
+ */
885
+ type: 'rich_text_section';
886
+ elements: RichTextElement[];
887
+ }
888
+ /**
889
+ * @description A list block within a rich text field.
890
+ */
891
+ export interface RichTextList extends RichTextBorderable {
892
+ /**
893
+ * @description The type of element. In this case `type` is always `rich_text_list`.
894
+ */
895
+ type: 'rich_text_list';
896
+ /**
897
+ * @description An array of {@link RichTextSection} elements comprising each list item.
898
+ */
899
+ elements: RichTextSection[];
900
+ /**
901
+ * @description The type of list. Can be either `bullet` (the list points are all rendered the same way) or `ordered`
902
+ * (the list points increase numerically from 1).
903
+ */
904
+ style: 'bullet' | 'ordered';
905
+ /**
906
+ * @description The style of the list points. Can be a number from `0` (default) to `8`. Yields a different character
907
+ * or characters rendered as the list points. Also affected by the `style` property.
908
+ */
909
+ indent?: number;
910
+ }
911
+ /**
912
+ * @description A quote block within a rich text field.
913
+ */
914
+ export interface RichTextQuote extends RichTextBorderable {
915
+ /**
916
+ * @description The type of element. In this case `type` is always `rich_text_quote`.
917
+ */
918
+ type: 'rich_text_quote';
919
+ /**
920
+ * @description An array of {@link RichTextElement} comprising the quote block.
921
+ */
922
+ elements: RichTextElement[];
923
+ }
924
+ /**
925
+ * @description A block of preformatted text within a rich text field.
926
+ */
927
+ export interface RichTextPreformatted extends RichTextBorderable {
928
+ /**
929
+ * @description The type of element. In this case `type` is always `rich_text_preformatted`.
930
+ */
931
+ type: 'rich_text_preformatted';
932
+ /**
933
+ * @description An array of either {@link RichTextLink} or {@link RichTextText} comprising the preformatted text.
934
+ */
935
+ elements: (RichTextText | RichTextLink)[];
936
+ }
937
+ /**
938
+ * @description A rich text input creates a composer/WYSIWYG editor for entering formatted text, offering nearly the
939
+ * same experience you have writing messages in Slack.
940
+ * @see {@link https://docs.slack.dev/reference/block-kit/block-elements/rich-text-input-element Rich-text input element reference}.
941
+ * @see {@link https://docs.slack.dev/interactivity/handling-user-interaction This is an interactive component - see our guide to enabling interactivity}.
942
+ */
943
+ export interface RichTextInput extends Actionable, Dispatchable, Focusable, Placeholdable {
944
+ /**
945
+ * @description The type of element. In this case `type` is always `rich_text_input`.
946
+ */
947
+ type: 'rich_text_input';
948
+ /**
949
+ * @description Initial contents of the input when it is loaded.
950
+ */
951
+ initial_value?: RichTextBlock;
952
+ }
953
+ //# sourceMappingURL=block-elements.d.ts.map