@athenaintel/react 0.57.2 → 0.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (799) hide show
  1. package/README.md +759 -9
  2. package/dist/agent-runtime/src/addressed-agents.cjs +16 -0
  3. package/dist/agent-runtime/src/addressed-agents.cjs.map +1 -0
  4. package/dist/agent-runtime/src/addressed-agents.d.ts +30 -0
  5. package/dist/agent-runtime/src/addressed-agents.js +16 -0
  6. package/dist/agent-runtime/src/addressed-agents.js.map +1 -0
  7. package/dist/agent-runtime/src/answer-label.cjs +4 -3
  8. package/dist/agent-runtime/src/answer-label.cjs.map +1 -1
  9. package/dist/agent-runtime/src/answer-label.d.ts +13 -6
  10. package/dist/agent-runtime/src/answer-label.js +4 -3
  11. package/dist/agent-runtime/src/answer-label.js.map +1 -1
  12. package/dist/agent-runtime/src/chat-outbox-attachments.cjs.map +1 -1
  13. package/dist/agent-runtime/src/chat-outbox-attachments.d.ts +1 -1
  14. package/dist/agent-runtime/src/chat-outbox-attachments.js.map +1 -1
  15. package/dist/agent-runtime/src/chat-outbox-entry.cjs +101 -0
  16. package/dist/agent-runtime/src/chat-outbox-entry.cjs.map +1 -0
  17. package/dist/agent-runtime/src/chat-outbox-entry.d.ts +99 -0
  18. package/dist/agent-runtime/src/chat-outbox-entry.js +101 -0
  19. package/dist/agent-runtime/src/chat-outbox-entry.js.map +1 -0
  20. package/dist/agent-runtime/src/chat-outbox-legacy.cjs +252 -0
  21. package/dist/agent-runtime/src/chat-outbox-legacy.cjs.map +1 -0
  22. package/dist/agent-runtime/src/chat-outbox-legacy.d.ts +96 -0
  23. package/dist/agent-runtime/src/chat-outbox-legacy.js +252 -0
  24. package/dist/agent-runtime/src/chat-outbox-legacy.js.map +1 -0
  25. package/dist/agent-runtime/src/chat-outbox-policy.cjs +30 -0
  26. package/dist/agent-runtime/src/chat-outbox-policy.cjs.map +1 -0
  27. package/dist/agent-runtime/src/chat-outbox-policy.d.ts +42 -0
  28. package/dist/agent-runtime/src/chat-outbox-policy.js +30 -0
  29. package/dist/agent-runtime/src/chat-outbox-policy.js.map +1 -0
  30. package/dist/agent-runtime/src/chat-outbox-storage.cjs +306 -0
  31. package/dist/agent-runtime/src/chat-outbox-storage.cjs.map +1 -0
  32. package/dist/agent-runtime/src/chat-outbox-storage.d.ts +194 -0
  33. package/dist/agent-runtime/src/chat-outbox-storage.js +306 -0
  34. package/dist/agent-runtime/src/chat-outbox-storage.js.map +1 -0
  35. package/dist/agent-runtime/src/chat-outbox-thread.cjs +21 -94
  36. package/dist/agent-runtime/src/chat-outbox-thread.cjs.map +1 -1
  37. package/dist/agent-runtime/src/chat-outbox-thread.d.ts +22 -18
  38. package/dist/agent-runtime/src/chat-outbox-thread.js +21 -94
  39. package/dist/agent-runtime/src/chat-outbox-thread.js.map +1 -1
  40. package/dist/agent-runtime/src/chat-outbox.cjs +492 -547
  41. package/dist/agent-runtime/src/chat-outbox.cjs.map +1 -1
  42. package/dist/agent-runtime/src/chat-outbox.d.ts +110 -142
  43. package/dist/agent-runtime/src/chat-outbox.js +492 -547
  44. package/dist/agent-runtime/src/chat-outbox.js.map +1 -1
  45. package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
  46. package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
  47. package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
  48. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
  49. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
  50. package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
  51. package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
  52. package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
  53. package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
  54. package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
  55. package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
  56. package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
  57. package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
  58. package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
  59. package/dist/agent-runtime/src/edit-command.d.ts +1 -1
  60. package/dist/agent-runtime/src/edit-command.js.map +1 -1
  61. package/dist/agent-runtime/src/errors.cjs +1 -0
  62. package/dist/agent-runtime/src/errors.cjs.map +1 -1
  63. package/dist/agent-runtime/src/errors.js +1 -0
  64. package/dist/agent-runtime/src/errors.js.map +1 -1
  65. package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
  66. package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
  67. package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
  68. package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
  69. package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
  70. package/dist/agent-runtime/src/index.d.ts +14 -8
  71. package/dist/agent-runtime/src/lane-follow.cjs +289 -0
  72. package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
  73. package/dist/agent-runtime/src/lane-follow.js +289 -0
  74. package/dist/agent-runtime/src/lane-follow.js.map +1 -0
  75. package/dist/agent-runtime/src/lane-images.cjs +387 -0
  76. package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
  77. package/dist/agent-runtime/src/lane-images.js +387 -0
  78. package/dist/agent-runtime/src/lane-images.js.map +1 -0
  79. package/dist/agent-runtime/src/message-window.js +1 -1
  80. package/dist/agent-runtime/src/messages.cjs +19 -1
  81. package/dist/agent-runtime/src/messages.cjs.map +1 -1
  82. package/dist/agent-runtime/src/messages.d.ts +8 -0
  83. package/dist/agent-runtime/src/messages.js +21 -3
  84. package/dist/agent-runtime/src/messages.js.map +1 -1
  85. package/dist/agent-runtime/src/named-agents.cjs +301 -0
  86. package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
  87. package/dist/agent-runtime/src/named-agents.d.ts +246 -0
  88. package/dist/agent-runtime/src/named-agents.js +301 -0
  89. package/dist/agent-runtime/src/named-agents.js.map +1 -0
  90. package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
  91. package/dist/agent-runtime/src/offline-status.d.ts +66 -2
  92. package/dist/agent-runtime/src/offline-status.js.map +1 -1
  93. package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
  94. package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
  95. package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
  96. package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
  97. package/dist/agent-runtime/src/queue.cjs +2 -2
  98. package/dist/agent-runtime/src/queue.cjs.map +1 -1
  99. package/dist/agent-runtime/src/queue.d.ts +20 -25
  100. package/dist/agent-runtime/src/queue.js +2 -2
  101. package/dist/agent-runtime/src/queue.js.map +1 -1
  102. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
  103. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
  104. package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
  105. package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
  106. package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
  107. package/dist/agent-runtime/src/run-send.cjs +54 -0
  108. package/dist/agent-runtime/src/run-send.cjs.map +1 -0
  109. package/dist/agent-runtime/src/run-send.d.ts +51 -0
  110. package/dist/agent-runtime/src/run-send.js +54 -0
  111. package/dist/agent-runtime/src/run-send.js.map +1 -0
  112. package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
  113. package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
  114. package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
  115. package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
  116. package/dist/agent-runtime/src/runtime.d.ts +9 -5
  117. package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
  118. package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
  119. package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
  120. package/dist/agent-runtime/src/sealed-idb.js +64 -0
  121. package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
  122. package/dist/agent-runtime/src/send-recovery.cjs +90 -118
  123. package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
  124. package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
  125. package/dist/agent-runtime/src/send-recovery.js +90 -118
  126. package/dist/agent-runtime/src/send-recovery.js.map +1 -1
  127. package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
  128. package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
  129. package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
  130. package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
  131. package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
  132. package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
  133. package/dist/agent-runtime/src/statewire-state.cjs +4 -0
  134. package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
  135. package/dist/agent-runtime/src/statewire-state.js +4 -0
  136. package/dist/agent-runtime/src/statewire-state.js.map +1 -1
  137. package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
  138. package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
  139. package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
  140. package/dist/agent-runtime/src/statewire-transport.js +8 -2
  141. package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
  142. package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
  143. package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
  144. package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
  145. package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
  146. package/dist/agent-runtime/src/subagents.cjs +22 -29
  147. package/dist/agent-runtime/src/subagents.cjs.map +1 -1
  148. package/dist/agent-runtime/src/subagents.js +23 -30
  149. package/dist/agent-runtime/src/subagents.js.map +1 -1
  150. package/dist/agent-runtime/src/thread-extras.cjs +27 -19
  151. package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
  152. package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
  153. package/dist/agent-runtime/src/thread-extras.js +27 -19
  154. package/dist/agent-runtime/src/thread-extras.js.map +1 -1
  155. package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
  156. package/dist/agent-runtime/src/tool-metadata.cjs +12 -0
  157. package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
  158. package/dist/agent-runtime/src/tool-metadata.js +12 -0
  159. package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
  160. package/dist/agent-runtime/src/tool-names.cjs +21 -0
  161. package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
  162. package/dist/agent-runtime/src/tool-names.d.ts +8 -0
  163. package/dist/agent-runtime/src/tool-names.js +21 -0
  164. package/dist/agent-runtime/src/tool-names.js.map +1 -1
  165. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
  166. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
  167. package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
  168. package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
  169. package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
  170. package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
  171. package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
  172. package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
  173. package/dist/agent-runtime/src/typed-interrupts.js +48 -0
  174. package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
  175. package/dist/agent-runtime/src/types.d.ts +1 -1
  176. package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
  177. package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
  178. package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
  179. package/dist/agent-runtime/src/use-conversation-list.js +1 -0
  180. package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
  181. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
  182. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
  183. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
  184. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
  185. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
  186. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
  187. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
  188. package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
  189. package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
  190. package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
  191. package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
  192. package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
  193. package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
  194. package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
  195. package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
  196. package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
  197. package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
  198. package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
  199. package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
  200. package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
  201. package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
  202. package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
  203. package/dist/agent-runtime/src/work-in.d.ts +127 -0
  204. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
  205. package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
  206. package/dist/assets/AthenaAssetEmbed.js.map +1 -1
  207. package/dist/assets/asset-panel-store.cjs +13 -5
  208. package/dist/assets/asset-panel-store.cjs.map +1 -1
  209. package/dist/assets/asset-panel-store.d.ts +33 -2
  210. package/dist/assets/asset-panel-store.js +13 -5
  211. package/dist/assets/asset-panel-store.js.map +1 -1
  212. package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
  213. package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
  214. package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
  215. package/dist/auth/AthenaCredentialSourceContext.js +11 -0
  216. package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
  217. package/dist/auth/account-identity.cjs +13 -2
  218. package/dist/auth/account-identity.cjs.map +1 -1
  219. package/dist/auth/account-identity.d.ts +9 -0
  220. package/dist/auth/account-identity.js +13 -2
  221. package/dist/auth/account-identity.js.map +1 -1
  222. package/dist/auth/credential-source.cjs +20 -4
  223. package/dist/auth/credential-source.cjs.map +1 -1
  224. package/dist/auth/credential-source.d.ts +9 -0
  225. package/dist/auth/credential-source.js +20 -4
  226. package/dist/auth/credential-source.js.map +1 -1
  227. package/dist/catalog/chat-pickers.cjs +31 -0
  228. package/dist/catalog/chat-pickers.cjs.map +1 -1
  229. package/dist/catalog/chat-pickers.d.ts +17 -0
  230. package/dist/catalog/chat-pickers.js +33 -2
  231. package/dist/catalog/chat-pickers.js.map +1 -1
  232. package/dist/catalog/runtime-catalog.cjs +63 -3
  233. package/dist/catalog/runtime-catalog.cjs.map +1 -1
  234. package/dist/catalog/runtime-catalog.d.ts +63 -3
  235. package/dist/catalog/runtime-catalog.js +64 -4
  236. package/dist/catalog/runtime-catalog.js.map +1 -1
  237. package/dist/chat/AthenaChat.cjs +290 -97
  238. package/dist/chat/AthenaChat.cjs.map +1 -1
  239. package/dist/chat/AthenaChat.d.ts +80 -4
  240. package/dist/chat/AthenaChat.js +290 -97
  241. package/dist/chat/AthenaChat.js.map +1 -1
  242. package/dist/chat/StatewireApprovalCard.cjs +35 -5
  243. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  244. package/dist/chat/StatewireApprovalCard.d.ts +55 -2
  245. package/dist/chat/StatewireApprovalCard.js +37 -7
  246. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  247. package/dist/chat/StatewireQueuedMessages.cjs +17 -2
  248. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  249. package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
  250. package/dist/chat/StatewireQueuedMessages.js +18 -3
  251. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  252. package/dist/chat/chat-agent-mentions.cjs +70 -0
  253. package/dist/chat/chat-agent-mentions.cjs.map +1 -0
  254. package/dist/chat/chat-agent-mentions.d.ts +13 -0
  255. package/dist/chat/chat-agent-mentions.js +70 -0
  256. package/dist/chat/chat-agent-mentions.js.map +1 -0
  257. package/dist/chat/composer-actions.cjs +12 -0
  258. package/dist/chat/composer-actions.cjs.map +1 -0
  259. package/dist/chat/composer-actions.d.ts +22 -0
  260. package/dist/chat/composer-actions.js +12 -0
  261. package/dist/chat/composer-actions.js.map +1 -0
  262. package/dist/chat/follow-up-suggestions.cjs +185 -0
  263. package/dist/chat/follow-up-suggestions.cjs.map +1 -0
  264. package/dist/chat/follow-up-suggestions.d.ts +64 -0
  265. package/dist/chat/follow-up-suggestions.js +185 -0
  266. package/dist/chat/follow-up-suggestions.js.map +1 -0
  267. package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
  268. package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
  269. package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
  270. package/dist/chat/super-grouping/ToolTimeline.js +4 -3
  271. package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
  272. package/dist/chat/turn-changes.cjs +284 -0
  273. package/dist/chat/turn-changes.cjs.map +1 -0
  274. package/dist/chat/turn-changes.d.ts +130 -0
  275. package/dist/chat/turn-changes.js +284 -0
  276. package/dist/chat/turn-changes.js.map +1 -0
  277. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
  278. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
  279. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
  280. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
  281. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
  282. package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
  283. package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
  284. package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
  285. package/dist/chat/typed-interrupts/approval-cards.js +250 -0
  286. package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
  287. package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
  288. package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
  289. package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
  290. package/dist/chat/typed-interrupts/form-cards.js +289 -0
  291. package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
  292. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
  293. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
  294. package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
  295. package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
  296. package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
  297. package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
  298. package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
  299. package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
  300. package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
  301. package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
  302. package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
  303. package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
  304. package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
  305. package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
  306. package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
  307. package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
  308. package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
  309. package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
  310. package/dist/chat/typed-interrupts/request-file-card.js +159 -0
  311. package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
  312. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
  313. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
  314. package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
  315. package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
  316. package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
  317. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
  318. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
  319. package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
  320. package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
  321. package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
  322. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
  323. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
  324. package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
  325. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
  326. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
  327. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
  328. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
  329. package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
  330. package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
  331. package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
  332. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
  333. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
  334. package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
  335. package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
  336. package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
  337. package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
  338. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
  339. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
  340. package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
  341. package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
  342. package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
  343. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
  344. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
  345. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
  346. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
  347. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
  348. package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
  349. package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
  350. package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
  351. package/dist/chat-ui/composer/composer-named-agents.js +13 -0
  352. package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
  353. package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
  354. package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
  355. package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
  356. package/dist/chat-ui/composer/slash-command-menu.js +143 -0
  357. package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
  358. package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
  359. package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
  360. package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
  361. package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
  362. package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
  363. package/dist/chat-ui/composer/slash-commands.cjs +74 -0
  364. package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
  365. package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
  366. package/dist/chat-ui/composer/slash-commands.js +74 -0
  367. package/dist/chat-ui/composer/slash-commands.js.map +1 -0
  368. package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
  369. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  370. package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
  371. package/dist/chat-ui/composer/tiptap-composer.js +135 -9
  372. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  373. package/dist/chat-ui/index.cjs +3 -0
  374. package/dist/chat-ui/index.cjs.map +1 -1
  375. package/dist/chat-ui/index.d.ts +3 -2
  376. package/dist/chat-ui/index.js +3 -0
  377. package/dist/chat-ui/index.js.map +1 -1
  378. package/dist/chat-ui/mentions/mention-chip.cjs +1 -1
  379. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  380. package/dist/chat-ui/mentions/mention-chip.js +2 -2
  381. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  382. package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
  383. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
  384. package/dist/chat-ui/mentions/mention-extension.js +8 -1
  385. package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
  386. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
  387. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
  388. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
  389. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
  390. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +2 -0
  391. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
  392. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +3 -1
  393. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
  394. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
  395. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
  396. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
  397. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
  398. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +36 -0
  399. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
  400. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +42 -0
  401. package/dist/chat-ui/mentions/suggestions/data/api-client.js +36 -0
  402. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
  403. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +235 -19
  404. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
  405. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
  406. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +236 -20
  407. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
  408. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
  409. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
  410. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
  411. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
  412. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
  413. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
  414. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
  415. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
  416. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
  417. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
  418. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
  419. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
  420. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
  421. package/dist/chat-ui/statewire.d.ts +1 -1
  422. package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
  423. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
  424. package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
  425. package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
  426. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
  427. package/dist/collab/client.cjs +17 -5
  428. package/dist/collab/client.cjs.map +1 -1
  429. package/dist/collab/client.d.ts +22 -7
  430. package/dist/collab/client.js +17 -5
  431. package/dist/collab/client.js.map +1 -1
  432. package/dist/composer/ComposerAttachedReferences.cjs +119 -0
  433. package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
  434. package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
  435. package/dist/composer/ComposerAttachedReferences.js +119 -0
  436. package/dist/composer/ComposerAttachedReferences.js.map +1 -0
  437. package/dist/composer/ComposerNamedAgents.cjs +63 -0
  438. package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
  439. package/dist/composer/ComposerNamedAgents.d.ts +16 -0
  440. package/dist/composer/ComposerNamedAgents.js +63 -0
  441. package/dist/composer/ComposerNamedAgents.js.map +1 -0
  442. package/dist/composer/attached-references.cjs +159 -0
  443. package/dist/composer/attached-references.cjs.map +1 -0
  444. package/dist/composer/attached-references.d.ts +86 -0
  445. package/dist/composer/attached-references.js +159 -0
  446. package/dist/composer/attached-references.js.map +1 -0
  447. package/dist/composer/build-composed-message.cjs +14 -7
  448. package/dist/composer/build-composed-message.cjs.map +1 -1
  449. package/dist/composer/build-composed-message.d.ts +6 -1
  450. package/dist/composer/build-composed-message.js +14 -7
  451. package/dist/composer/build-composed-message.js.map +1 -1
  452. package/dist/composer/composer-handoff.cjs +6 -2
  453. package/dist/composer/composer-handoff.cjs.map +1 -1
  454. package/dist/composer/composer-handoff.d.ts +7 -1
  455. package/dist/composer/composer-handoff.js +6 -2
  456. package/dist/composer/composer-handoff.js.map +1 -1
  457. package/dist/composer/folder-upload.cjs +149 -0
  458. package/dist/composer/folder-upload.cjs.map +1 -0
  459. package/dist/composer/folder-upload.d.ts +79 -0
  460. package/dist/composer/folder-upload.js +149 -0
  461. package/dist/composer/folder-upload.js.map +1 -0
  462. package/dist/composer/index.d.ts +1 -1
  463. package/dist/composer/useAttachToChat.cjs +35 -0
  464. package/dist/composer/useAttachToChat.cjs.map +1 -0
  465. package/dist/composer/useAttachToChat.d.ts +54 -0
  466. package/dist/composer/useAttachToChat.js +35 -0
  467. package/dist/composer/useAttachToChat.js.map +1 -0
  468. package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
  469. package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
  470. package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
  471. package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
  472. package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
  473. package/dist/composer/useFileUpload.cjs +95 -7
  474. package/dist/composer/useFileUpload.cjs.map +1 -1
  475. package/dist/composer/useFileUpload.d.ts +21 -2
  476. package/dist/composer/useFileUpload.js +95 -7
  477. package/dist/composer/useFileUpload.js.map +1 -1
  478. package/dist/data/athena-api-error.cjs +125 -0
  479. package/dist/data/athena-api-error.cjs.map +1 -0
  480. package/dist/data/athena-api-error.d.ts +96 -0
  481. package/dist/data/athena-api-error.js +125 -0
  482. package/dist/data/athena-api-error.js.map +1 -0
  483. package/dist/data/athena-data-client.cjs +106 -0
  484. package/dist/data/athena-data-client.cjs.map +1 -0
  485. package/dist/data/athena-data-client.d.ts +74 -0
  486. package/dist/data/athena-data-client.js +106 -0
  487. package/dist/data/athena-data-client.js.map +1 -0
  488. package/dist/data/athena-member.cjs +93 -0
  489. package/dist/data/athena-member.cjs.map +1 -0
  490. package/dist/data/athena-member.d.ts +125 -0
  491. package/dist/data/athena-member.js +93 -0
  492. package/dist/data/athena-member.js.map +1 -0
  493. package/dist/data/athena-request.cjs +458 -0
  494. package/dist/data/athena-request.cjs.map +1 -0
  495. package/dist/data/athena-request.d.ts +120 -0
  496. package/dist/data/athena-request.js +458 -0
  497. package/dist/data/athena-request.js.map +1 -0
  498. package/dist/data/use-athena-fetch.cjs +14 -0
  499. package/dist/data/use-athena-fetch.cjs.map +1 -0
  500. package/dist/data/use-athena-fetch.d.ts +19 -0
  501. package/dist/data/use-athena-fetch.js +14 -0
  502. package/dist/data/use-athena-fetch.js.map +1 -0
  503. package/dist/data/use-athena-graphql.cjs +66 -0
  504. package/dist/data/use-athena-graphql.cjs.map +1 -0
  505. package/dist/data/use-athena-graphql.d.ts +56 -0
  506. package/dist/data/use-athena-graphql.js +66 -0
  507. package/dist/data/use-athena-graphql.js.map +1 -0
  508. package/dist/data/use-athena-rest.cjs +33 -0
  509. package/dist/data/use-athena-rest.cjs.map +1 -0
  510. package/dist/data/use-athena-rest.d.ts +21 -0
  511. package/dist/data/use-athena-rest.js +33 -0
  512. package/dist/data/use-athena-rest.js.map +1 -0
  513. package/dist/data/use-semantic-query.cjs +44 -0
  514. package/dist/data/use-semantic-query.cjs.map +1 -0
  515. package/dist/data/use-semantic-query.d.ts +92 -0
  516. package/dist/data/use-semantic-query.js +44 -0
  517. package/dist/data/use-semantic-query.js.map +1 -0
  518. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
  519. package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
  520. package/dist/diagnostics/athena-diagnostics.js.map +1 -1
  521. package/dist/diagnostics/errors.cjs +7 -0
  522. package/dist/diagnostics/errors.cjs.map +1 -1
  523. package/dist/diagnostics/errors.d.ts +7 -0
  524. package/dist/diagnostics/errors.js +7 -0
  525. package/dist/diagnostics/errors.js.map +1 -1
  526. package/dist/index.cjs +155 -11
  527. package/dist/index.cjs.map +1 -1
  528. package/dist/index.d.ts +72 -13
  529. package/dist/index.js +148 -4
  530. package/dist/index.js.map +1 -1
  531. package/dist/keryx-http/src/initial-sync.cjs +64 -16
  532. package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
  533. package/dist/keryx-http/src/initial-sync.d.ts +31 -1
  534. package/dist/keryx-http/src/initial-sync.js +64 -16
  535. package/dist/keryx-http/src/initial-sync.js.map +1 -1
  536. package/dist/keryx-http/src/own-awareness.cjs +20 -0
  537. package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
  538. package/dist/keryx-http/src/own-awareness.d.ts +50 -0
  539. package/dist/keryx-http/src/own-awareness.js +20 -0
  540. package/dist/keryx-http/src/own-awareness.js.map +1 -0
  541. package/dist/keryx-http/src/update-attributions.cjs +26 -1
  542. package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
  543. package/dist/keryx-http/src/update-attributions.d.ts +10 -1
  544. package/dist/keryx-http/src/update-attributions.js +26 -1
  545. package/dist/keryx-http/src/update-attributions.js.map +1 -1
  546. package/dist/offline/chat-outbox.cjs +262 -26
  547. package/dist/offline/chat-outbox.cjs.map +1 -1
  548. package/dist/offline/chat-outbox.d.ts +90 -12
  549. package/dist/offline/chat-outbox.js +263 -27
  550. package/dist/offline/chat-outbox.js.map +1 -1
  551. package/dist/provider/AthenaProvider.cjs +56 -19
  552. package/dist/provider/AthenaProvider.cjs.map +1 -1
  553. package/dist/provider/AthenaProvider.d.ts +24 -8
  554. package/dist/provider/AthenaProvider.js +57 -20
  555. package/dist/provider/AthenaProvider.js.map +1 -1
  556. package/dist/react/package.json.cjs +1 -1
  557. package/dist/react/package.json.js +1 -1
  558. package/dist/references/src/anchors/types.cjs +5 -0
  559. package/dist/references/src/anchors/types.cjs.map +1 -1
  560. package/dist/references/src/anchors/types.js +5 -0
  561. package/dist/references/src/anchors/types.js.map +1 -1
  562. package/dist/references/src/attachable.cjs +149 -0
  563. package/dist/references/src/attachable.cjs.map +1 -0
  564. package/dist/references/src/attachable.d.ts +87 -0
  565. package/dist/references/src/attachable.js +149 -0
  566. package/dist/references/src/attachable.js.map +1 -0
  567. package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
  568. package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
  569. package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
  570. package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
  571. package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
  572. package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
  573. package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
  574. package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
  575. package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
  576. package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
  577. package/dist/runtime/statewire-plan-mode.cjs +71 -0
  578. package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
  579. package/dist/runtime/statewire-plan-mode.d.ts +88 -0
  580. package/dist/runtime/statewire-plan-mode.js +71 -0
  581. package/dist/runtime/statewire-plan-mode.js.map +1 -0
  582. package/dist/runtime/statewire-run-config.cjs +3 -1
  583. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  584. package/dist/runtime/statewire-run-config.d.ts +7 -0
  585. package/dist/runtime/statewire-run-config.js +3 -1
  586. package/dist/runtime/statewire-run-config.js.map +1 -1
  587. package/dist/runtime/statewire-session-key.cjs +11 -5
  588. package/dist/runtime/statewire-session-key.cjs.map +1 -1
  589. package/dist/runtime/statewire-session-key.d.ts +22 -10
  590. package/dist/runtime/statewire-session-key.js +11 -5
  591. package/dist/runtime/statewire-session-key.js.map +1 -1
  592. package/dist/runtime/useAthenaStatewireRuntime.cjs +65 -8
  593. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  594. package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
  595. package/dist/runtime/useAthenaStatewireRuntime.js +67 -10
  596. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  597. package/dist/search/useAthenaAssets.cjs +394 -0
  598. package/dist/search/useAthenaAssets.cjs.map +1 -0
  599. package/dist/search/useAthenaAssets.d.ts +186 -0
  600. package/dist/search/useAthenaAssets.js +394 -0
  601. package/dist/search/useAthenaAssets.js.map +1 -0
  602. package/dist/sheet-range/index.cjs +4 -0
  603. package/dist/sheet-range/index.cjs.map +1 -1
  604. package/dist/sheet-range/index.d.ts +4 -2
  605. package/dist/sheet-range/index.js +4 -0
  606. package/dist/sheet-range/index.js.map +1 -1
  607. package/dist/sheet-range/query-range.cjs +102 -0
  608. package/dist/sheet-range/query-range.cjs.map +1 -0
  609. package/dist/sheet-range/query-range.d.ts +46 -0
  610. package/dist/sheet-range/query-range.js +102 -0
  611. package/dist/sheet-range/query-range.js.map +1 -0
  612. package/dist/styles.css +1 -1
  613. package/dist/subagents/index.cjs +49 -0
  614. package/dist/subagents/index.cjs.map +1 -0
  615. package/dist/subagents/index.d.ts +16 -0
  616. package/dist/subagents/index.js +49 -0
  617. package/dist/subagents/index.js.map +1 -0
  618. package/dist/subagents/lane-follow.cjs +19 -0
  619. package/dist/subagents/lane-follow.cjs.map +1 -0
  620. package/dist/subagents/lane-follow.d.ts +9 -0
  621. package/dist/subagents/lane-follow.js +19 -0
  622. package/dist/subagents/lane-follow.js.map +1 -0
  623. package/dist/subagents/lane-model.cjs +178 -0
  624. package/dist/subagents/lane-model.cjs.map +1 -0
  625. package/dist/subagents/lane-model.d.ts +140 -0
  626. package/dist/subagents/lane-model.js +178 -0
  627. package/dist/subagents/lane-model.js.map +1 -0
  628. package/dist/subagents/lane-parts.cjs +517 -0
  629. package/dist/subagents/lane-parts.cjs.map +1 -0
  630. package/dist/subagents/lane-parts.d.ts +130 -0
  631. package/dist/subagents/lane-parts.js +517 -0
  632. package/dist/subagents/lane-parts.js.map +1 -0
  633. package/dist/subagents/subagent-lane-group.cjs +215 -0
  634. package/dist/subagents/subagent-lane-group.cjs.map +1 -0
  635. package/dist/subagents/subagent-lane-group.d.ts +67 -0
  636. package/dist/subagents/subagent-lane-group.js +215 -0
  637. package/dist/subagents/subagent-lane-group.js.map +1 -0
  638. package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
  639. package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
  640. package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
  641. package/dist/subagents/subagent-transcript-drawer.js +431 -0
  642. package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
  643. package/dist/subagents/task-subagent-group.cjs +115 -0
  644. package/dist/subagents/task-subagent-group.cjs.map +1 -0
  645. package/dist/subagents/task-subagent-group.d.ts +36 -0
  646. package/dist/subagents/task-subagent-group.js +115 -0
  647. package/dist/subagents/task-subagent-group.js.map +1 -0
  648. package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
  649. package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
  650. package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
  651. package/dist/subagents/use-omitted-images-in-view.js +68 -0
  652. package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
  653. package/dist/threads/Inbox.cjs +2 -2
  654. package/dist/threads/Inbox.cjs.map +1 -1
  655. package/dist/threads/SessionList.cjs +6 -6
  656. package/dist/threads/SessionList.cjs.map +1 -1
  657. package/dist/threads/SessionsPage.cjs +13 -7
  658. package/dist/threads/SessionsPage.cjs.map +1 -1
  659. package/dist/threads/SessionsPage.d.ts +10 -1
  660. package/dist/threads/SessionsPage.js +9 -3
  661. package/dist/threads/SessionsPage.js.map +1 -1
  662. package/dist/threads/session-list-model.cjs.map +1 -1
  663. package/dist/threads/session-list-model.d.ts +2 -1
  664. package/dist/threads/session-list-model.js.map +1 -1
  665. package/dist/threads/session-row-parts.cjs +3 -3
  666. package/dist/threads/session-row-parts.cjs.map +1 -1
  667. package/dist/threads/sessions-page-model.cjs +13 -5
  668. package/dist/threads/sessions-page-model.cjs.map +1 -1
  669. package/dist/threads/sessions-page-model.d.ts +7 -0
  670. package/dist/threads/sessions-page-model.js +11 -3
  671. package/dist/threads/sessions-page-model.js.map +1 -1
  672. package/dist/threads/sessions-page-storage.cjs +8 -8
  673. package/dist/threads/sessions-page-storage.cjs.map +1 -1
  674. package/dist/threads/sessions-page-storage.d.ts +5 -1
  675. package/dist/threads/sessions-page-storage.js +8 -8
  676. package/dist/threads/sessions-page-storage.js.map +1 -1
  677. package/dist/threads/use-athena-sessions.cjs +1 -0
  678. package/dist/threads/use-athena-sessions.cjs.map +1 -1
  679. package/dist/threads/use-athena-sessions.d.ts +7 -0
  680. package/dist/threads/use-athena-sessions.js +1 -0
  681. package/dist/threads/use-athena-sessions.js.map +1 -1
  682. package/dist/threads/use-athena-thread-agent.cjs +31 -0
  683. package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
  684. package/dist/threads/use-athena-thread-agent.d.ts +38 -0
  685. package/dist/threads/use-athena-thread-agent.js +31 -0
  686. package/dist/threads/use-athena-thread-agent.js.map +1 -0
  687. package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
  688. package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
  689. package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
  690. package/dist/threads/use-athena-thread-plan-mode.js +18 -0
  691. package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
  692. package/dist/threads/use-rest-conversation-history.d.ts +1 -0
  693. package/dist/tools/agent-creations.cjs +97 -0
  694. package/dist/tools/agent-creations.cjs.map +1 -0
  695. package/dist/tools/agent-creations.d.ts +38 -0
  696. package/dist/tools/agent-creations.js +97 -0
  697. package/dist/tools/agent-creations.js.map +1 -0
  698. package/dist/tools/agent-highlights.cjs +100 -0
  699. package/dist/tools/agent-highlights.cjs.map +1 -0
  700. package/dist/tools/agent-highlights.d.ts +57 -0
  701. package/dist/tools/agent-highlights.js +100 -0
  702. package/dist/tools/agent-highlights.js.map +1 -0
  703. package/dist/tools/append-document-tool-ui.cjs +1 -0
  704. package/dist/tools/append-document-tool-ui.cjs.map +1 -1
  705. package/dist/tools/append-document-tool-ui.d.ts +7 -0
  706. package/dist/tools/append-document-tool-ui.js +2 -1
  707. package/dist/tools/append-document-tool-ui.js.map +1 -1
  708. package/dist/tools/auto-open-tools.cjs +144 -71
  709. package/dist/tools/auto-open-tools.cjs.map +1 -1
  710. package/dist/tools/auto-open-tools.d.ts +131 -1
  711. package/dist/tools/auto-open-tools.js +145 -72
  712. package/dist/tools/auto-open-tools.js.map +1 -1
  713. package/dist/tools/browser-tool-uis.cjs +594 -0
  714. package/dist/tools/browser-tool-uis.cjs.map +1 -0
  715. package/dist/tools/browser-tool-uis.d.ts +8 -0
  716. package/dist/tools/browser-tool-uis.js +594 -0
  717. package/dist/tools/browser-tool-uis.js.map +1 -0
  718. package/dist/tools/computer-asset-tool-uis.cjs +313 -0
  719. package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
  720. package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
  721. package/dist/tools/computer-asset-tool-uis.js +313 -0
  722. package/dist/tools/computer-asset-tool-uis.js.map +1 -0
  723. package/dist/tools/document-edit-tool-uis.cjs +218 -0
  724. package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
  725. package/dist/tools/document-edit-tool-uis.d.ts +40 -0
  726. package/dist/tools/document-edit-tool-uis.js +218 -0
  727. package/dist/tools/document-edit-tool-uis.js.map +1 -0
  728. package/dist/tools/drive-tool-uis.cjs +425 -0
  729. package/dist/tools/drive-tool-uis.cjs.map +1 -0
  730. package/dist/tools/drive-tool-uis.d.ts +120 -0
  731. package/dist/tools/drive-tool-uis.js +425 -0
  732. package/dist/tools/drive-tool-uis.js.map +1 -0
  733. package/dist/tools/email-calendar-tool-uis.cjs +789 -0
  734. package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
  735. package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
  736. package/dist/tools/email-calendar-tool-uis.js +789 -0
  737. package/dist/tools/email-calendar-tool-uis.js.map +1 -0
  738. package/dist/tools/ontology-tool-uis.cjs +83 -0
  739. package/dist/tools/ontology-tool-uis.cjs.map +1 -0
  740. package/dist/tools/ontology-tool-uis.d.ts +9 -0
  741. package/dist/tools/ontology-tool-uis.js +83 -0
  742. package/dist/tools/ontology-tool-uis.js.map +1 -0
  743. package/dist/tools/orchestration-tool-uis.cjs +586 -0
  744. package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
  745. package/dist/tools/orchestration-tool-uis.d.ts +141 -0
  746. package/dist/tools/orchestration-tool-uis.js +586 -0
  747. package/dist/tools/orchestration-tool-uis.js.map +1 -0
  748. package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
  749. package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
  750. package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
  751. package/dist/tools/presentation-edit-tool-uis.js +516 -0
  752. package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
  753. package/dist/tools/project-tool-uis.cjs +213 -0
  754. package/dist/tools/project-tool-uis.cjs.map +1 -0
  755. package/dist/tools/project-tool-uis.d.ts +14 -0
  756. package/dist/tools/project-tool-uis.js +213 -0
  757. package/dist/tools/project-tool-uis.js.map +1 -0
  758. package/dist/tools/sandbox-tool-uis.cjs +491 -0
  759. package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
  760. package/dist/tools/sandbox-tool-uis.d.ts +116 -0
  761. package/dist/tools/sandbox-tool-uis.js +491 -0
  762. package/dist/tools/sandbox-tool-uis.js.map +1 -0
  763. package/dist/tools/sheet-query-tool-ui.cjs +138 -0
  764. package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
  765. package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
  766. package/dist/tools/sheet-query-tool-ui.js +138 -0
  767. package/dist/tools/sheet-query-tool-ui.js.map +1 -0
  768. package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
  769. package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
  770. package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
  771. package/dist/tools/studio-screenshot-tool-uis.js +262 -0
  772. package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
  773. package/dist/tools/subagent-task-tool-ui.cjs +24 -475
  774. package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
  775. package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
  776. package/dist/tools/subagent-task-tool-ui.js +28 -479
  777. package/dist/tools/subagent-task-tool-ui.js.map +1 -1
  778. package/dist/tools/tool-summary.cjs +36 -0
  779. package/dist/tools/tool-summary.cjs.map +1 -1
  780. package/dist/tools/tool-summary.js +36 -0
  781. package/dist/tools/tool-summary.js.map +1 -1
  782. package/dist/tools/tool-uis.cjs +181 -53
  783. package/dist/tools/tool-uis.cjs.map +1 -1
  784. package/dist/tools/tool-uis.d.ts +40 -0
  785. package/dist/tools/tool-uis.js +183 -55
  786. package/dist/tools/tool-uis.js.map +1 -1
  787. package/dist/typed-interrupts/index.cjs +15 -0
  788. package/dist/typed-interrupts/index.cjs.map +1 -0
  789. package/dist/typed-interrupts/index.d.ts +20 -0
  790. package/dist/typed-interrupts/index.js +15 -0
  791. package/dist/typed-interrupts/index.js.map +1 -0
  792. package/dist/workbench/session-workbench-panes.cjs +6 -6
  793. package/dist/workbench/session-workbench-panes.cjs.map +1 -1
  794. package/package.json +28 -6
  795. package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
  796. package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
  797. package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
  798. package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
  799. package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ import { useQuery, useMutation } from "@tanstack/react-query";
2
+ import { useState, useRef, useCallback, useEffect } from "react";
3
+ import { useAthenaQueryClient } from "../../lib/use-athena-rest-query.js";
4
+ import { readInterruptDraft, saveInterruptDraft } from "./typed-interrupt-graphql.js";
5
+ const DRAFT_SAVE_DEBOUNCE_MS = 2e3;
6
+ function draftQueryKey(conversation, interruptId) {
7
+ return [
8
+ "athena-sdk",
9
+ "interrupt-draft",
10
+ (conversation == null ? void 0 : conversation.auth.backendUrl) ?? "",
11
+ (conversation == null ? void 0 : conversation.principal) ?? "",
12
+ (conversation == null ? void 0 : conversation.threadId) ?? "",
13
+ interruptId
14
+ ];
15
+ }
16
+ function useInterruptDraft({
17
+ conversation,
18
+ interruptId
19
+ }) {
20
+ const queryClient = useAthenaQueryClient();
21
+ const { data, isFetching } = useQuery(
22
+ {
23
+ queryKey: draftQueryKey(conversation, interruptId),
24
+ queryFn: ({ signal }) => conversation ? readInterruptDraft(conversation, interruptId, signal) : null,
25
+ enabled: conversation !== null,
26
+ staleTime: 0,
27
+ refetchOnMount: "always",
28
+ retry: false,
29
+ refetchOnWindowFocus: false
30
+ },
31
+ queryClient
32
+ );
33
+ return { draft: conversation ? data : null, isLoading: conversation !== null && isFetching };
34
+ }
35
+ function useInterruptDraftSave({
36
+ conversation,
37
+ interruptId,
38
+ payload,
39
+ enabled
40
+ }) {
41
+ const queryClient = useAthenaQueryClient();
42
+ const [status, setStatus] = useState("idle");
43
+ const { mutate } = useMutation(
44
+ {
45
+ mutationKey: ["athena-sdk", "interrupt-draft-save"],
46
+ mutationFn: (variables) => saveInterruptDraft(variables.conversation, variables.interruptId, variables.answers),
47
+ retry: false
48
+ },
49
+ queryClient
50
+ );
51
+ const latest = useRef({ conversation, interruptId, payload });
52
+ latest.current = { conversation, interruptId, payload };
53
+ const timerRef = useRef(null);
54
+ const save = useCallback(() => {
55
+ timerRef.current = null;
56
+ const { conversation: target, interruptId: key, payload: answers } = latest.current;
57
+ if (!target) return;
58
+ mutate(
59
+ { conversation: target, interruptId: key, answers },
60
+ {
61
+ onSuccess: () => {
62
+ setStatus("saved");
63
+ queryClient.setQueryData(draftQueryKey(target, key), answers);
64
+ },
65
+ onError: () => setStatus("error")
66
+ }
67
+ );
68
+ }, [mutate, queryClient]);
69
+ const flush = useCallback(() => {
70
+ if (timerRef.current === null) return;
71
+ clearTimeout(timerRef.current);
72
+ save();
73
+ }, [save]);
74
+ useEffect(() => {
75
+ setStatus("idle");
76
+ return () => {
77
+ if (timerRef.current !== null) clearTimeout(timerRef.current);
78
+ timerRef.current = null;
79
+ };
80
+ }, [interruptId]);
81
+ useEffect(() => {
82
+ if (!enabled || !conversation) return;
83
+ setStatus("saving");
84
+ if (timerRef.current !== null) clearTimeout(timerRef.current);
85
+ timerRef.current = setTimeout(save, DRAFT_SAVE_DEBOUNCE_MS);
86
+ }, [enabled, conversation, payload, save]);
87
+ useEffect(() => {
88
+ if (!enabled) return void 0;
89
+ const onBlur = () => flush();
90
+ const onVisibility = () => {
91
+ if (document.visibilityState === "hidden") flush();
92
+ };
93
+ window.addEventListener("blur", onBlur);
94
+ document.addEventListener("visibilitychange", onVisibility);
95
+ return () => {
96
+ window.removeEventListener("blur", onBlur);
97
+ document.removeEventListener("visibilitychange", onVisibility);
98
+ };
99
+ }, [enabled, flush]);
100
+ return { flush, status };
101
+ }
102
+ export {
103
+ useInterruptDraft,
104
+ useInterruptDraftSave
105
+ };
106
+ //# sourceMappingURL=use-interrupt-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-interrupt-draft.js","sources":["../../../src/chat/typed-interrupts/use-interrupt-draft.ts"],"sourcesContent":["/**\n * A questionnaire's draft, kept on agora as Olympus keeps it: read once when\n * the card mounts, so answers typed on another surface (or before a reload)\n * come back, and saved two seconds after each change, at once when the window\n * loses focus or hides. agora's timer worker reads a draft's presence as \"the\n * person is answering\" and holds the timeout while it exists; its content is\n * never a resume value. Saves are best-effort: a failed one only shows on the\n * card's indicator.\n */\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { useAthenaQueryClient } from '../../lib/use-athena-rest-query';\nimport {\n readInterruptDraft,\n saveInterruptDraft,\n type TypedInterruptConversation,\n} from './typed-interrupt-graphql';\n\nconst DRAFT_SAVE_DEBOUNCE_MS = 2000;\n\nexport type DraftSaveStatus = 'idle' | 'saving' | 'saved' | 'error';\n\nfunction draftQueryKey(conversation: TypedInterruptConversation | null, interruptId: string) {\n return [\n 'athena-sdk',\n 'interrupt-draft',\n conversation?.auth.backendUrl ?? '',\n conversation?.principal ?? '',\n conversation?.threadId ?? '',\n interruptId,\n ] as const;\n}\n\n/**\n * The draft agora holds for `interruptId` (`null` without one), read again\n * each time a card mounts: another app may have saved answers since. Loading\n * while that read is in flight, so a card restores the latest draft, not a\n * cached one; a read the network holds (offline) does not keep it waiting.\n */\nexport function useInterruptDraft({\n conversation,\n interruptId,\n}: {\n conversation: TypedInterruptConversation | null;\n interruptId: string;\n}): { draft: unknown; isLoading: boolean } {\n const queryClient = useAthenaQueryClient();\n const { data, isFetching } = useQuery(\n {\n queryKey: draftQueryKey(conversation, interruptId),\n queryFn: ({ signal }) =>\n conversation ? readInterruptDraft(conversation, interruptId, signal) : null,\n enabled: conversation !== null,\n staleTime: 0,\n refetchOnMount: 'always',\n retry: false,\n refetchOnWindowFocus: false,\n },\n queryClient,\n );\n return { draft: conversation ? data : null, isLoading: conversation !== null && isFetching };\n}\n\n/**\n * Saves `payload` under `interruptId` two seconds after it last changed while\n * `enabled`; `flush` saves a pending change at once. A pending save never\n * lands under the next park's key, and none outlives the card.\n */\nexport function useInterruptDraftSave({\n conversation,\n interruptId,\n payload,\n enabled,\n}: {\n conversation: TypedInterruptConversation | null;\n interruptId: string;\n payload: unknown;\n enabled: boolean;\n}): { flush: () => void; status: DraftSaveStatus } {\n const queryClient = useAthenaQueryClient();\n const [status, setStatus] = useState<DraftSaveStatus>('idle');\n const { mutate } = useMutation(\n {\n mutationKey: ['athena-sdk', 'interrupt-draft-save'],\n mutationFn: (variables: { conversation: TypedInterruptConversation; interruptId: string; answers: unknown }) =>\n saveInterruptDraft(variables.conversation, variables.interruptId, variables.answers),\n retry: false,\n },\n queryClient,\n );\n const latest = useRef({ conversation, interruptId, payload });\n latest.current = { conversation, interruptId, payload };\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const save = useCallback(() => {\n timerRef.current = null;\n const { conversation: target, interruptId: key, payload: answers } = latest.current;\n if (!target) return;\n mutate(\n { conversation: target, interruptId: key, answers },\n {\n onSuccess: () => {\n setStatus('saved');\n // A card mounted again for this park restores what was saved last.\n queryClient.setQueryData(draftQueryKey(target, key), answers);\n },\n onError: () => setStatus('error'),\n },\n );\n }, [mutate, queryClient]);\n\n const flush = useCallback(() => {\n if (timerRef.current === null) return;\n clearTimeout(timerRef.current);\n save();\n }, [save]);\n\n // Another park: what was pending belonged to the last one.\n useEffect(() => {\n setStatus('idle');\n return () => {\n if (timerRef.current !== null) clearTimeout(timerRef.current);\n timerRef.current = null;\n };\n }, [interruptId]);\n\n useEffect(() => {\n if (!enabled || !conversation) return;\n setStatus('saving');\n if (timerRef.current !== null) clearTimeout(timerRef.current);\n timerRef.current = setTimeout(save, DRAFT_SAVE_DEBOUNCE_MS);\n }, [enabled, conversation, payload, save]);\n\n useEffect(() => {\n if (!enabled) return undefined;\n const onBlur = () => flush();\n const onVisibility = () => {\n if (document.visibilityState === 'hidden') flush();\n };\n window.addEventListener('blur', onBlur);\n document.addEventListener('visibilitychange', onVisibility);\n return () => {\n window.removeEventListener('blur', onBlur);\n document.removeEventListener('visibilitychange', onVisibility);\n };\n }, [enabled, flush]);\n\n return { flush, status };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("@assistant-ui/react");
4
+ const typedInterrupts = require("../../agent-runtime/src/typed-interrupts.cjs");
5
+ const typedInterruptKinds = require("../../agent-runtime/src/typed-interrupt-kinds.cjs");
6
+ const reactQuery = require("@tanstack/react-query");
7
+ const require$$0 = require("react");
8
+ const useAthenaRestQuery = require("../../lib/use-athena-rest-query.cjs");
9
+ const useStatewireApprovalRequest = require("../use-statewire-approval-request.cjs");
10
+ const typedInterruptGraphql = require("./typed-interrupt-graphql.cjs");
11
+ const interrupts = require("../../agent-runtime/src/interrupts.cjs");
12
+ const errors = require("../../agent-runtime/src/errors.cjs");
13
+ const TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = "Your answer could not be sent. Please try again.";
14
+ const TIMEOUT_STATUS_DELAY_MS = 500;
15
+ const CANCEL_TIMEOUT_RETRIES = 2;
16
+ const CANCEL_TIMEOUT_INITIAL_DELAY_MS = 500;
17
+ function refusalMessage(error) {
18
+ if (errors.isConversationArchivedRejection(error)) return errors.CONVERSATION_ARCHIVED_MESSAGE;
19
+ return errors.statewireRejectionDetailMessage(error) ?? TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE;
20
+ }
21
+ function useStatewireTypedInterrupt(options = {}) {
22
+ const { confirmDecision, onResumeRejected, pendingResumeGraceMs } = options;
23
+ const isConversationStreaming = react.useAuiState((state) => state.thread.isRunning);
24
+ const conversation = typedInterruptGraphql.useTypedInterruptConversation();
25
+ const queryClient = useAthenaRestQuery.useAthenaQueryClient();
26
+ const [held, setHeld] = require$$0.useState(null);
27
+ const lastHeldRef = require$$0.useRef(null);
28
+ const [failure, setFailure] = require$$0.useState(null);
29
+ const onResumeRejectedRef = require$$0.useRef(onResumeRejected);
30
+ onResumeRejectedRef.current = onResumeRejected;
31
+ const confirmDecisionRef = require$$0.useRef(confirmDecision);
32
+ confirmDecisionRef.current = confirmDecision;
33
+ const {
34
+ request,
35
+ requestId: liveRequestId,
36
+ pending,
37
+ resume: sendResume
38
+ } = useStatewireApprovalRequest.useStatewireApprovalRequest({
39
+ interruptPredicate: typedInterrupts.isTypedInterruptRequest,
40
+ pendingResumeGraceMs: pendingResumeGraceMs ?? interrupts.HITL_PENDING_RESUME_GRACE_MS,
41
+ // The host refused the answer (or the transport lost it): the fold has
42
+ // rolled back and the request is on screen again; say why on the card.
43
+ onResumeRejected: (error, refusedRequestId) => {
44
+ var _a;
45
+ setHeld(null);
46
+ if (errors.statewireTransportOutcome(error) === "unmount") return;
47
+ setFailure({ requestId: refusedRequestId, message: refusalMessage(error) });
48
+ (_a = onResumeRejectedRef.current) == null ? void 0 : _a.call(onResumeRejectedRef, error, refusedRequestId);
49
+ },
50
+ // The socket dropped with the answer in flight and the lock re-sends it:
51
+ // a fresh hold keeps the card through the re-send.
52
+ onResumeRetry: (_error, retriedRequestId) => {
53
+ const last = lastHeldRef.current;
54
+ if (last && last.requestId === retriedRequestId) setHeld({ ...last });
55
+ }
56
+ });
57
+ const liveInterrupt = require$$0.useMemo(
58
+ () => request ? typedInterrupts.parseTypedInterruptPayload(request.payload) : null,
59
+ [request]
60
+ );
61
+ require$$0.useEffect(() => {
62
+ if (held && liveRequestId !== void 0) setHeld(null);
63
+ }, [held, liveRequestId]);
64
+ const graceMs = pendingResumeGraceMs ?? interrupts.HITL_PENDING_RESUME_GRACE_MS;
65
+ require$$0.useEffect(() => {
66
+ if (!held) return void 0;
67
+ const timer = setTimeout(() => setHeld(null), graceMs);
68
+ return () => clearTimeout(timer);
69
+ }, [held, graceMs]);
70
+ const holding = held !== null && liveInterrupt === null;
71
+ const interrupt = holding ? held.interrupt : liveInterrupt;
72
+ const requestId = holding ? held.requestId : liveRequestId;
73
+ const [confirming, setConfirming] = require$$0.useState(false);
74
+ const currentRequestIdRef = require$$0.useRef(liveRequestId);
75
+ currentRequestIdRef.current = liveRequestId;
76
+ const isLoading = pending || holding || confirming;
77
+ const instanceKey = interrupt ? requestId ?? null : null;
78
+ const [timeoutRemaining, setTimeoutRemaining] = require$$0.useState(null);
79
+ const [isTimedOut, setIsTimedOut] = require$$0.useState(false);
80
+ const [cancelledInstance, setCancelledInstance] = require$$0.useState(null);
81
+ const isTimeoutCancelled = instanceKey !== null && cancelledInstance === instanceKey;
82
+ const timed = interrupt !== null && typedInterruptKinds.hasInterruptTimeout(interrupt);
83
+ const timeoutSeconds = (interrupt == null ? void 0 : interrupt.timeout_seconds) ?? null;
84
+ const timeoutAt = (interrupt == null ? void 0 : interrupt.timeout_at) ?? null;
85
+ require$$0.useEffect(() => {
86
+ if (!interrupt || !timed || isTimeoutCancelled) {
87
+ setTimeoutRemaining(null);
88
+ setIsTimedOut(false);
89
+ return void 0;
90
+ }
91
+ const tick = () => {
92
+ const remaining = typedInterruptKinds.interruptTimeoutRemaining(interrupt);
93
+ setTimeoutRemaining(remaining);
94
+ setIsTimedOut(remaining !== null && remaining <= 0);
95
+ };
96
+ tick();
97
+ const interval = setInterval(tick, 1e3);
98
+ return () => clearInterval(interval);
99
+ }, [interrupt, timed, isTimeoutCancelled]);
100
+ const [statusReady, setStatusReady] = require$$0.useState(false);
101
+ require$$0.useEffect(() => {
102
+ setStatusReady(false);
103
+ if (!timed || !timeoutAt) return void 0;
104
+ const timer = setTimeout(() => setStatusReady(true), TIMEOUT_STATUS_DELAY_MS);
105
+ return () => clearTimeout(timer);
106
+ }, [timed, timeoutAt]);
107
+ const source = (interrupt == null ? void 0 : interrupt.source) ?? null;
108
+ const statusEnabled = timed && statusReady && !isTimeoutCancelled && conversation !== null && source !== null;
109
+ const { data: cancelledBefore } = reactQuery.useQuery(
110
+ {
111
+ queryKey: [
112
+ "athena-sdk",
113
+ "interrupt-timeout-status",
114
+ (conversation == null ? void 0 : conversation.auth.backendUrl) ?? "",
115
+ (conversation == null ? void 0 : conversation.principal) ?? "",
116
+ (conversation == null ? void 0 : conversation.threadId) ?? "",
117
+ source ?? "",
118
+ timeoutAt ?? ""
119
+ ],
120
+ queryFn: ({ signal }) => {
121
+ if (!conversation || !source) return false;
122
+ return typedInterruptGraphql.readInterruptTimeoutCancelled(conversation, source, signal);
123
+ },
124
+ enabled: statusEnabled,
125
+ staleTime: Number.POSITIVE_INFINITY,
126
+ retry: false,
127
+ refetchOnWindowFocus: false
128
+ },
129
+ queryClient
130
+ );
131
+ require$$0.useEffect(() => {
132
+ if (cancelledBefore === true && instanceKey !== null) setCancelledInstance(instanceKey);
133
+ }, [cancelledBefore, instanceKey]);
134
+ const { mutate: sendCancelTimeout } = reactQuery.useMutation(
135
+ {
136
+ mutationKey: ["athena-sdk", "interrupt-timeout-cancel"],
137
+ mutationFn: ({ interruptId }) => {
138
+ if (!conversation) return Promise.reject(new Error("no conversation to stop the timer of"));
139
+ return typedInterruptGraphql.cancelInterruptTimeout(conversation, interruptId);
140
+ },
141
+ // The backend's timer answers at the deadline unless this lands: a
142
+ // blip must not let it fire while the person is answering.
143
+ retry: CANCEL_TIMEOUT_RETRIES,
144
+ retryDelay: (attempt) => {
145
+ const base = CANCEL_TIMEOUT_INITIAL_DELAY_MS * 2 ** attempt;
146
+ return base + Math.random() * base * 0.3;
147
+ }
148
+ },
149
+ queryClient
150
+ );
151
+ const canCancelTimeout = timed && conversation !== null;
152
+ const cancelRequestedRef = require$$0.useRef(null);
153
+ const cancelTimeout = require$$0.useCallback(() => {
154
+ if (!interrupt || !canCancelTimeout || isTimeoutCancelled || instanceKey === null) return;
155
+ if (cancelRequestedRef.current === instanceKey) return;
156
+ const instance = instanceKey;
157
+ cancelRequestedRef.current = instance;
158
+ setCancelledInstance(instance);
159
+ sendCancelTimeout(
160
+ { interruptId: interrupt.source },
161
+ {
162
+ // agora did not stop it after the retries: the countdown is true
163
+ // again, and Stop timer may ask once more.
164
+ onError: () => {
165
+ if (cancelRequestedRef.current === instance) cancelRequestedRef.current = null;
166
+ setCancelledInstance((current) => current === instance ? null : current);
167
+ }
168
+ }
169
+ );
170
+ }, [interrupt, canCancelTimeout, isTimeoutCancelled, instanceKey, sendCancelTimeout]);
171
+ const sendAnswer = require$$0.useCallback(
172
+ (kind, value) => {
173
+ if (!interrupt || requestId === void 0) return;
174
+ setFailure(null);
175
+ const answer = typedInterruptKinds.stampTypedInterruptAnswer({ payload: interrupt, value });
176
+ const park = { interrupt, requestId };
177
+ const deliver = (decisionCheck) => {
178
+ const dispatched = sendResume(answer, decisionCheck ? { decisionCheck } : void 0);
179
+ if (!dispatched) return;
180
+ lastHeldRef.current = park;
181
+ setHeld(park);
182
+ dispatched.then(
183
+ () => setHeld(null),
184
+ () => setHeld(null)
185
+ );
186
+ };
187
+ const confirm = confirmDecisionRef.current;
188
+ if (confirm === void 0 || kind !== "resume" || !typedInterruptKinds.isTypedApprovalInterrupt(interrupt) || !typedInterruptKinds.typedAnswerLetsSomethingRun(answer)) {
189
+ deliver();
190
+ return;
191
+ }
192
+ setConfirming(true);
193
+ confirm({ kind: "input", requestId, value: answer }).catch(() => void 0).then((token) => {
194
+ setConfirming(false);
195
+ if (currentRequestIdRef.current !== requestId) return;
196
+ deliver(token);
197
+ });
198
+ },
199
+ [interrupt, requestId, sendResume]
200
+ );
201
+ const resume = require$$0.useCallback((value) => sendAnswer("resume", value), [sendAnswer]);
202
+ const cancel = require$$0.useCallback(() => sendAnswer("cancel", typedInterruptKinds.typedInterruptCancel()), [sendAnswer]);
203
+ const message = interrupt == null ? void 0 : interrupt.message;
204
+ const displayMessage = require$$0.useMemo(() => {
205
+ if (!message) return "";
206
+ return isTimeoutCancelled ? typedInterruptKinds.stripInterruptTimeoutText(message) : message;
207
+ }, [message, isTimeoutCancelled]);
208
+ return {
209
+ interrupt,
210
+ request,
211
+ requestId,
212
+ resume,
213
+ cancel,
214
+ failure: failure !== null && failure.requestId === requestId ? failure.message : null,
215
+ isLoading,
216
+ isConversationStreaming,
217
+ isHiddenByRunning: isConversationStreaming && !isLoading,
218
+ hasTimeout: timed,
219
+ timeoutSeconds,
220
+ timeoutRemaining,
221
+ isTimedOut,
222
+ isTimeoutCancelled,
223
+ canCancelTimeout,
224
+ cancelTimeout,
225
+ displayMessage,
226
+ currentThreadId: (conversation == null ? void 0 : conversation.threadId) ?? null
227
+ };
228
+ }
229
+ exports.TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE;
230
+ exports.useStatewireTypedInterrupt = useStatewireTypedInterrupt;
231
+ //# sourceMappingURL=use-statewire-typed-interrupt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-statewire-typed-interrupt.cjs","sources":["../../../src/chat/typed-interrupts/use-statewire-typed-interrupt.ts"],"sourcesContent":["/**\n * The typed-interrupt engine: everything a typed card renders from, and the\n * two ways it answers. The port of Olympus's `useLangGraphInterrupt` onto the\n * SDK, on the same request machine the approval card runs\n * (`useStatewireApprovalRequest`: selection, the optimistic resume lock and\n * its recovery), with ONE predicate, `isTypedInterruptRequest`, so the request\n * a card renders for is the request its answer is sent under.\n *\n * On top of the lock it adds what the cards need:\n *\n * - the parsed payload, held while the host decides an answer, so the card\n * keeps what the person typed (react-statewire folds `run/input` away the\n * instant it is applied, before any verdict, and a refusal brings the same\n * request back);\n * - the stamps the raiser's stale-resume check reads (`__interrupt_id__`,\n * `__interrupt_instance_id__`) on every answer;\n * - the passkey decision check (identity 0b.9) on an answer that approves a\n * typed approval (`isTypedApprovalInterrupt`), through the host's\n * `confirmDecision`, as the approval card runs it; a question's answer, a\n * reject and a cancel never ask;\n * - the host's reason when it refuses an answer (agora holds an approving\n * answer to a signed-in person: `person_decision_required` names where to\n * answer instead), for the card to show;\n * - the timed-interrupt countdown (display only: the backend's timer answers),\n * whether the person already stopped it, and stopping it.\n *\n * Requires a statewire aui scope (the SDK's statewire hooks throw outside\n * one): `StatewireTypedInterruptCard` mounts it under `StatewireApprovalCard`'s\n * extras gate.\n */\n\nimport { useAuiState } from '@assistant-ui/react';\nimport type { StatewireThread } from '@assistant-ui/react-statewire';\nimport {\n CONVERSATION_ARCHIVED_MESSAGE,\n HITL_PENDING_RESUME_GRACE_MS,\n isConversationArchivedRejection,\n statewireRejectionDetailMessage,\n statewireTransportOutcome,\n} from '@athenaintel/agent-runtime';\nimport {\n isTypedInterruptRequest,\n parseTypedInterruptPayload,\n type TypedInterruptPayload,\n} from '@athenaintel/agent-runtime/typed-interrupts';\nimport {\n hasInterruptTimeout,\n interruptTimeoutRemaining,\n isTypedApprovalInterrupt,\n stampTypedInterruptAnswer,\n stripInterruptTimeoutText,\n typedAnswerLetsSomethingRun,\n typedInterruptCancel,\n} from '@athenaintel/agent-runtime/typed-interrupt-kinds';\nimport { useMutation, useQuery } from '@tanstack/react-query';\nimport type { ReadonlyJSONObject } from 'assistant-stream/utils';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useAthenaQueryClient } from '../../lib/use-athena-rest-query';\nimport type { StatewireDecisionConfirmer } from '../StatewireApprovalCard';\nimport { useStatewireApprovalRequest } from '../use-statewire-approval-request';\nimport {\n cancelInterruptTimeout,\n readInterruptTimeoutCancelled,\n useTypedInterruptConversation,\n} from './typed-interrupt-graphql';\nimport type { TypedInterruptAnswer, TypedInterruptEngineSlice } from './typed-interrupt-types';\n\n/** What a card says when the host refused an answer without saying why. */\nexport const TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = 'Your answer could not be sent. Please try again.';\n\n/** The backend registers a park's timer just before it parks: ask about it a moment later. */\nconst TIMEOUT_STATUS_DELAY_MS = 500;\nconst CANCEL_TIMEOUT_RETRIES = 2;\nconst CANCEL_TIMEOUT_INITIAL_DELAY_MS = 500;\n\nexport interface UseStatewireTypedInterruptOptions {\n /**\n * The host's passkey decision check (identity 0b.9), as `StatewireApprovalCard`\n * takes it: an answer that approves a typed approval is handed to it first\n * and sent with the token it resolves.\n */\n confirmDecision?: StatewireDecisionConfirmer;\n /** The host refused an answer (or the transport lost it); the card is back with its controls. */\n onResumeRejected?: (error: unknown, requestId: string) => void;\n /** How long a sent answer keeps the card locked when no resume run ever starts. */\n pendingResumeGraceMs?: number;\n}\n\nexport interface StatewireTypedInterrupt extends TypedInterruptEngineSlice {\n /** The parked typed interrupt (held while the host decides an answer), or `null`. */\n interrupt: TypedInterruptPayload | null;\n /** The live request (absent while an answer is held). */\n request: StatewireThread.CustomInputRequest | undefined;\n /**\n * The thread moved on without this park: running, and no answer of this\n * card's own in flight. The card stands down while it holds.\n */\n isHiddenByRunning: boolean;\n /** Why the host refused this park's last answer, until the next one is sent. */\n failure: string | null;\n /** Answer the park with its kind's resume value. */\n resume: (value: TypedInterruptAnswer) => void;\n /** Answer the park with `{ action: 'cancel' }`. */\n cancel: () => void;\n}\n\ninterface HeldPark {\n interrupt: TypedInterruptPayload;\n requestId: string;\n}\n\nfunction refusalMessage(error: unknown): string {\n if (isConversationArchivedRejection(error)) return CONVERSATION_ARCHIVED_MESSAGE;\n return statewireRejectionDetailMessage(error) ?? TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE;\n}\n\nexport function useStatewireTypedInterrupt(\n options: UseStatewireTypedInterruptOptions = {},\n): StatewireTypedInterrupt {\n const { confirmDecision, onResumeRejected, pendingResumeGraceMs } = options;\n const isConversationStreaming = useAuiState((state) => state.thread.isRunning);\n const conversation = useTypedInterruptConversation();\n const queryClient = useAthenaQueryClient();\n\n const [held, setHeld] = useState<HeldPark | null>(null);\n const lastHeldRef = useRef<HeldPark | null>(null);\n const [failure, setFailure] = useState<{ requestId: string; message: string } | null>(null);\n const onResumeRejectedRef = useRef(onResumeRejected);\n onResumeRejectedRef.current = onResumeRejected;\n const confirmDecisionRef = useRef(confirmDecision);\n confirmDecisionRef.current = confirmDecision;\n\n const {\n request,\n requestId: liveRequestId,\n pending,\n resume: sendResume,\n } = useStatewireApprovalRequest<ReadonlyJSONObject>({\n interruptPredicate: isTypedInterruptRequest,\n pendingResumeGraceMs: pendingResumeGraceMs ?? HITL_PENDING_RESUME_GRACE_MS,\n // The host refused the answer (or the transport lost it): the fold has\n // rolled back and the request is on screen again; say why on the card.\n onResumeRejected: (error, refusedRequestId) => {\n setHeld(null);\n // The surface itself went away mid-flight: nobody to tell.\n if (statewireTransportOutcome(error) === 'unmount') return;\n setFailure({ requestId: refusedRequestId, message: refusalMessage(error) });\n onResumeRejectedRef.current?.(error, refusedRequestId);\n },\n // The socket dropped with the answer in flight and the lock re-sends it:\n // a fresh hold keeps the card through the re-send.\n onResumeRetry: (_error, retriedRequestId) => {\n const last = lastHeldRef.current;\n if (last && last.requestId === retriedRequestId) setHeld({ ...last });\n },\n });\n\n // The predicate parsed the payload already; parse again for its value.\n const liveInterrupt = useMemo(\n () => (request ? parseTypedInterruptPayload(request.payload) : null),\n [request],\n );\n\n // A hold ends with the host's verdict (below), when a park is live again\n // (the refused one, under its id, or a new one), or after the grace window.\n useEffect(() => {\n if (held && liveRequestId !== undefined) setHeld(null);\n }, [held, liveRequestId]);\n const graceMs = pendingResumeGraceMs ?? HITL_PENDING_RESUME_GRACE_MS;\n useEffect(() => {\n if (!held) return undefined;\n const timer = setTimeout(() => setHeld(null), graceMs);\n return () => clearTimeout(timer);\n }, [held, graceMs]);\n const holding = held !== null && liveInterrupt === null;\n const interrupt = holding ? held.interrupt : liveInterrupt;\n const requestId = holding ? held.requestId : liveRequestId;\n\n // A passkey check is open for an answer sent from here.\n const [confirming, setConfirming] = useState(false);\n // The park on screen now, read once a check settles: an answer confirmed for\n // a park that is gone is never sent to whatever parked next.\n const currentRequestIdRef = useRef(liveRequestId);\n currentRequestIdRef.current = liveRequestId;\n const isLoading = pending || holding || confirming;\n\n // ── The timer (display only; the backend's timer answers at the deadline) ──\n // Everything below is per park instance: the request id, never the source,\n // which repeats (every toolkit selection is `toolkit_selection`).\n const instanceKey = interrupt ? (requestId ?? null) : null;\n const [timeoutRemaining, setTimeoutRemaining] = useState<number | null>(null);\n const [isTimedOut, setIsTimedOut] = useState(false);\n const [cancelledInstance, setCancelledInstance] = useState<string | null>(null);\n const isTimeoutCancelled = instanceKey !== null && cancelledInstance === instanceKey;\n const timed = interrupt !== null && hasInterruptTimeout(interrupt);\n const timeoutSeconds = interrupt?.timeout_seconds ?? null;\n const timeoutAt = interrupt?.timeout_at ?? null;\n\n useEffect(() => {\n if (!interrupt || !timed || isTimeoutCancelled) {\n setTimeoutRemaining(null);\n setIsTimedOut(false);\n return undefined;\n }\n const tick = () => {\n const remaining = interruptTimeoutRemaining(interrupt);\n setTimeoutRemaining(remaining);\n setIsTimedOut(remaining !== null && remaining <= 0);\n };\n tick();\n const interval = setInterval(tick, 1000);\n return () => clearInterval(interval);\n }, [interrupt, timed, isTimeoutCancelled]);\n\n // Whether the person stopped this park's timer before (another app, a\n // reload): asked once per instance, a moment after it parks.\n const [statusReady, setStatusReady] = useState(false);\n useEffect(() => {\n setStatusReady(false);\n if (!timed || !timeoutAt) return undefined;\n const timer = setTimeout(() => setStatusReady(true), TIMEOUT_STATUS_DELAY_MS);\n return () => clearTimeout(timer);\n }, [timed, timeoutAt]);\n const source = interrupt?.source ?? null;\n const statusEnabled =\n timed && statusReady && !isTimeoutCancelled && conversation !== null && source !== null;\n const { data: cancelledBefore } = useQuery(\n {\n queryKey: [\n 'athena-sdk',\n 'interrupt-timeout-status',\n conversation?.auth.backendUrl ?? '',\n conversation?.principal ?? '',\n conversation?.threadId ?? '',\n source ?? '',\n timeoutAt ?? '',\n ],\n queryFn: ({ signal }) => {\n if (!conversation || !source) return false;\n return readInterruptTimeoutCancelled(conversation, source, signal);\n },\n enabled: statusEnabled,\n staleTime: Number.POSITIVE_INFINITY,\n retry: false,\n refetchOnWindowFocus: false,\n },\n queryClient,\n );\n useEffect(() => {\n if (cancelledBefore === true && instanceKey !== null) setCancelledInstance(instanceKey);\n }, [cancelledBefore, instanceKey]);\n\n const { mutate: sendCancelTimeout } = useMutation(\n {\n mutationKey: ['athena-sdk', 'interrupt-timeout-cancel'],\n mutationFn: ({ interruptId }: { interruptId: string }) => {\n if (!conversation) return Promise.reject(new Error('no conversation to stop the timer of'));\n return cancelInterruptTimeout(conversation, interruptId);\n },\n // The backend's timer answers at the deadline unless this lands: a\n // blip must not let it fire while the person is answering.\n retry: CANCEL_TIMEOUT_RETRIES,\n retryDelay: (attempt) => {\n const base = CANCEL_TIMEOUT_INITIAL_DELAY_MS * 2 ** attempt;\n return base + Math.random() * base * 0.3;\n },\n },\n queryClient,\n );\n\n // Only agora can stop its timer: without the conversation (a host that\n // names no thread) the countdown stays, and nothing offers to stop it.\n const canCancelTimeout = timed && conversation !== null;\n // One request per park: a press on Stop timer is also the card's first\n // interaction, and both ask in the same tick, before a render says so.\n const cancelRequestedRef = useRef<string | null>(null);\n const cancelTimeout = useCallback(() => {\n if (!interrupt || !canCancelTimeout || isTimeoutCancelled || instanceKey === null) return;\n if (cancelRequestedRef.current === instanceKey) return;\n const instance = instanceKey;\n cancelRequestedRef.current = instance;\n setCancelledInstance(instance);\n sendCancelTimeout(\n { interruptId: interrupt.source },\n {\n // agora did not stop it after the retries: the countdown is true\n // again, and Stop timer may ask once more.\n onError: () => {\n if (cancelRequestedRef.current === instance) cancelRequestedRef.current = null;\n setCancelledInstance((current) => (current === instance ? null : current));\n },\n },\n );\n }, [interrupt, canCancelTimeout, isTimeoutCancelled, instanceKey, sendCancelTimeout]);\n\n // ── Answers ──\n const sendAnswer = useCallback(\n (kind: 'resume' | 'cancel', value: TypedInterruptAnswer) => {\n if (!interrupt || requestId === undefined) return;\n setFailure(null);\n const answer = stampTypedInterruptAnswer({ payload: interrupt, value }) as ReadonlyJSONObject;\n const park: HeldPark = { interrupt, requestId };\n const deliver = (decisionCheck?: string) => {\n const dispatched = sendResume(answer, decisionCheck ? { decisionCheck } : undefined);\n if (!dispatched) return;\n lastHeldRef.current = park;\n setHeld(park);\n // Accepted or refused, the verdict ends the hold (a refusal also\n // brings the request back through the live selection).\n dispatched.then(\n () => setHeld(null),\n () => setHeld(null),\n );\n };\n const confirm = confirmDecisionRef.current;\n if (\n confirm === undefined ||\n kind !== 'resume' ||\n !isTypedApprovalInterrupt(interrupt) ||\n !typedAnswerLetsSomethingRun(answer)\n ) {\n deliver();\n return;\n }\n // Identity 0b.9: approving is confirmed with the person's passkey first,\n // as the approval card does; a check that gave no token sends the\n // answer without one, and agora decides.\n setConfirming(true);\n confirm({ kind: 'input', requestId, value: answer })\n .catch(() => undefined)\n .then((token) => {\n setConfirming(false);\n if (currentRequestIdRef.current !== requestId) return;\n deliver(token);\n });\n },\n [interrupt, requestId, sendResume],\n );\n\n const resume = useCallback((value: TypedInterruptAnswer) => sendAnswer('resume', value), [sendAnswer]);\n const cancel = useCallback(() => sendAnswer('cancel', typedInterruptCancel()), [sendAnswer]);\n\n const message = interrupt?.message;\n const displayMessage = useMemo(() => {\n if (!message) return '';\n return isTimeoutCancelled ? stripInterruptTimeoutText(message) : message;\n }, [message, isTimeoutCancelled]);\n\n return {\n interrupt,\n request,\n requestId,\n resume,\n cancel,\n failure: failure !== null && failure.requestId === requestId ? failure.message : null,\n isLoading,\n isConversationStreaming,\n isHiddenByRunning: isConversationStreaming && !isLoading,\n hasTimeout: timed,\n timeoutSeconds,\n timeoutRemaining,\n isTimedOut,\n isTimeoutCancelled,\n canCancelTimeout,\n cancelTimeout,\n displayMessage,\n currentThreadId: conversation?.threadId ?? null,\n };\n}\n"],"names":["isConversationArchivedRejection","CONVERSATION_ARCHIVED_MESSAGE","statewireRejectionDetailMessage","useAuiState","useTypedInterruptConversation","useAthenaQueryClient","useState","useRef","useStatewireApprovalRequest","isTypedInterruptRequest","HITL_PENDING_RESUME_GRACE_MS","statewireTransportOutcome","useMemo","parseTypedInterruptPayload","useEffect","hasInterruptTimeout","interruptTimeoutRemaining","useQuery","readInterruptTimeoutCancelled","useMutation","cancelInterruptTimeout","useCallback","stampTypedInterruptAnswer","isTypedApprovalInterrupt","typedAnswerLetsSomethingRun","typedInterruptCancel","stripInterruptTimeoutText"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * The typed-interrupt engine: everything a typed card renders from, and the
3
+ * two ways it answers. The port of Olympus's `useLangGraphInterrupt` onto the
4
+ * SDK, on the same request machine the approval card runs
5
+ * (`useStatewireApprovalRequest`: selection, the optimistic resume lock and
6
+ * its recovery), with ONE predicate, `isTypedInterruptRequest`, so the request
7
+ * a card renders for is the request its answer is sent under.
8
+ *
9
+ * On top of the lock it adds what the cards need:
10
+ *
11
+ * - the parsed payload, held while the host decides an answer, so the card
12
+ * keeps what the person typed (react-statewire folds `run/input` away the
13
+ * instant it is applied, before any verdict, and a refusal brings the same
14
+ * request back);
15
+ * - the stamps the raiser's stale-resume check reads (`__interrupt_id__`,
16
+ * `__interrupt_instance_id__`) on every answer;
17
+ * - the passkey decision check (identity 0b.9) on an answer that approves a
18
+ * typed approval (`isTypedApprovalInterrupt`), through the host's
19
+ * `confirmDecision`, as the approval card runs it; a question's answer, a
20
+ * reject and a cancel never ask;
21
+ * - the host's reason when it refuses an answer (agora holds an approving
22
+ * answer to a signed-in person: `person_decision_required` names where to
23
+ * answer instead), for the card to show;
24
+ * - the timed-interrupt countdown (display only: the backend's timer answers),
25
+ * whether the person already stopped it, and stopping it.
26
+ *
27
+ * Requires a statewire aui scope (the SDK's statewire hooks throw outside
28
+ * one): `StatewireTypedInterruptCard` mounts it under `StatewireApprovalCard`'s
29
+ * extras gate.
30
+ */
31
+ import type { StatewireThread } from '@assistant-ui/react-statewire';
32
+ import { type TypedInterruptPayload } from '../../agent-runtime/src/typed-interrupts';
33
+ import type { StatewireDecisionConfirmer } from '../StatewireApprovalCard';
34
+ import type { TypedInterruptAnswer, TypedInterruptEngineSlice } from './typed-interrupt-types';
35
+ /** What a card says when the host refused an answer without saying why. */
36
+ export declare const TYPED_INTERRUPT_ANSWER_FAILED_MESSAGE = "Your answer could not be sent. Please try again.";
37
+ export interface UseStatewireTypedInterruptOptions {
38
+ /**
39
+ * The host's passkey decision check (identity 0b.9), as `StatewireApprovalCard`
40
+ * takes it: an answer that approves a typed approval is handed to it first
41
+ * and sent with the token it resolves.
42
+ */
43
+ confirmDecision?: StatewireDecisionConfirmer;
44
+ /** The host refused an answer (or the transport lost it); the card is back with its controls. */
45
+ onResumeRejected?: (error: unknown, requestId: string) => void;
46
+ /** How long a sent answer keeps the card locked when no resume run ever starts. */
47
+ pendingResumeGraceMs?: number;
48
+ }
49
+ export interface StatewireTypedInterrupt extends TypedInterruptEngineSlice {
50
+ /** The parked typed interrupt (held while the host decides an answer), or `null`. */
51
+ interrupt: TypedInterruptPayload | null;
52
+ /** The live request (absent while an answer is held). */
53
+ request: StatewireThread.CustomInputRequest | undefined;
54
+ /**
55
+ * The thread moved on without this park: running, and no answer of this
56
+ * card's own in flight. The card stands down while it holds.
57
+ */
58
+ isHiddenByRunning: boolean;
59
+ /** Why the host refused this park's last answer, until the next one is sent. */
60
+ failure: string | null;
61
+ /** Answer the park with its kind's resume value. */
62
+ resume: (value: TypedInterruptAnswer) => void;
63
+ /** Answer the park with `{ action: 'cancel' }`. */
64
+ cancel: () => void;
65
+ }
66
+ export declare function useStatewireTypedInterrupt(options?: UseStatewireTypedInterruptOptions): StatewireTypedInterrupt;