@athenaintel/react 0.57.1 → 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 (811) hide show
  1. package/README.md +778 -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 +337 -99
  238. package/dist/chat/AthenaChat.cjs.map +1 -1
  239. package/dist/chat/AthenaChat.d.ts +80 -4
  240. package/dist/chat/AthenaChat.js +337 -99
  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 +63 -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 +66 -22
  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 +18 -1
  583. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  584. package/dist/runtime/statewire-run-config.d.ts +20 -0
  585. package/dist/runtime/statewire-run-config.js +18 -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 +27 -24
  656. package/dist/threads/SessionList.cjs.map +1 -1
  657. package/dist/threads/SessionList.js +22 -19
  658. package/dist/threads/SessionList.js.map +1 -1
  659. package/dist/threads/SessionsPage.cjs +13 -7
  660. package/dist/threads/SessionsPage.cjs.map +1 -1
  661. package/dist/threads/SessionsPage.d.ts +10 -1
  662. package/dist/threads/SessionsPage.js +9 -3
  663. package/dist/threads/SessionsPage.js.map +1 -1
  664. package/dist/threads/live-session-rows.cjs +207 -0
  665. package/dist/threads/live-session-rows.cjs.map +1 -0
  666. package/dist/threads/live-session-rows.d.ts +175 -0
  667. package/dist/threads/live-session-rows.js +207 -0
  668. package/dist/threads/live-session-rows.js.map +1 -0
  669. package/dist/threads/session-list-model.cjs.map +1 -1
  670. package/dist/threads/session-list-model.d.ts +2 -1
  671. package/dist/threads/session-list-model.js.map +1 -1
  672. package/dist/threads/session-row-parts.cjs +3 -3
  673. package/dist/threads/session-row-parts.cjs.map +1 -1
  674. package/dist/threads/sessions-page-model.cjs +13 -5
  675. package/dist/threads/sessions-page-model.cjs.map +1 -1
  676. package/dist/threads/sessions-page-model.d.ts +7 -0
  677. package/dist/threads/sessions-page-model.js +11 -3
  678. package/dist/threads/sessions-page-model.js.map +1 -1
  679. package/dist/threads/sessions-page-storage.cjs +8 -8
  680. package/dist/threads/sessions-page-storage.cjs.map +1 -1
  681. package/dist/threads/sessions-page-storage.d.ts +5 -1
  682. package/dist/threads/sessions-page-storage.js +8 -8
  683. package/dist/threads/sessions-page-storage.js.map +1 -1
  684. package/dist/threads/statewire-thread-list.cjs +173 -20
  685. package/dist/threads/statewire-thread-list.cjs.map +1 -1
  686. package/dist/threads/statewire-thread-list.d.ts +44 -1
  687. package/dist/threads/statewire-thread-list.js +174 -21
  688. package/dist/threads/statewire-thread-list.js.map +1 -1
  689. package/dist/threads/use-athena-sessions.cjs +1 -0
  690. package/dist/threads/use-athena-sessions.cjs.map +1 -1
  691. package/dist/threads/use-athena-sessions.d.ts +7 -0
  692. package/dist/threads/use-athena-sessions.js +1 -0
  693. package/dist/threads/use-athena-sessions.js.map +1 -1
  694. package/dist/threads/use-athena-thread-agent.cjs +31 -0
  695. package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
  696. package/dist/threads/use-athena-thread-agent.d.ts +38 -0
  697. package/dist/threads/use-athena-thread-agent.js +31 -0
  698. package/dist/threads/use-athena-thread-agent.js.map +1 -0
  699. package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
  700. package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
  701. package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
  702. package/dist/threads/use-athena-thread-plan-mode.js +18 -0
  703. package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
  704. package/dist/threads/use-rest-conversation-history.d.ts +1 -0
  705. package/dist/tools/agent-creations.cjs +97 -0
  706. package/dist/tools/agent-creations.cjs.map +1 -0
  707. package/dist/tools/agent-creations.d.ts +38 -0
  708. package/dist/tools/agent-creations.js +97 -0
  709. package/dist/tools/agent-creations.js.map +1 -0
  710. package/dist/tools/agent-highlights.cjs +100 -0
  711. package/dist/tools/agent-highlights.cjs.map +1 -0
  712. package/dist/tools/agent-highlights.d.ts +57 -0
  713. package/dist/tools/agent-highlights.js +100 -0
  714. package/dist/tools/agent-highlights.js.map +1 -0
  715. package/dist/tools/append-document-tool-ui.cjs +1 -0
  716. package/dist/tools/append-document-tool-ui.cjs.map +1 -1
  717. package/dist/tools/append-document-tool-ui.d.ts +7 -0
  718. package/dist/tools/append-document-tool-ui.js +2 -1
  719. package/dist/tools/append-document-tool-ui.js.map +1 -1
  720. package/dist/tools/auto-open-tools.cjs +144 -71
  721. package/dist/tools/auto-open-tools.cjs.map +1 -1
  722. package/dist/tools/auto-open-tools.d.ts +131 -1
  723. package/dist/tools/auto-open-tools.js +145 -72
  724. package/dist/tools/auto-open-tools.js.map +1 -1
  725. package/dist/tools/browser-tool-uis.cjs +594 -0
  726. package/dist/tools/browser-tool-uis.cjs.map +1 -0
  727. package/dist/tools/browser-tool-uis.d.ts +8 -0
  728. package/dist/tools/browser-tool-uis.js +594 -0
  729. package/dist/tools/browser-tool-uis.js.map +1 -0
  730. package/dist/tools/computer-asset-tool-uis.cjs +313 -0
  731. package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
  732. package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
  733. package/dist/tools/computer-asset-tool-uis.js +313 -0
  734. package/dist/tools/computer-asset-tool-uis.js.map +1 -0
  735. package/dist/tools/document-edit-tool-uis.cjs +218 -0
  736. package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
  737. package/dist/tools/document-edit-tool-uis.d.ts +40 -0
  738. package/dist/tools/document-edit-tool-uis.js +218 -0
  739. package/dist/tools/document-edit-tool-uis.js.map +1 -0
  740. package/dist/tools/drive-tool-uis.cjs +425 -0
  741. package/dist/tools/drive-tool-uis.cjs.map +1 -0
  742. package/dist/tools/drive-tool-uis.d.ts +120 -0
  743. package/dist/tools/drive-tool-uis.js +425 -0
  744. package/dist/tools/drive-tool-uis.js.map +1 -0
  745. package/dist/tools/email-calendar-tool-uis.cjs +789 -0
  746. package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
  747. package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
  748. package/dist/tools/email-calendar-tool-uis.js +789 -0
  749. package/dist/tools/email-calendar-tool-uis.js.map +1 -0
  750. package/dist/tools/ontology-tool-uis.cjs +83 -0
  751. package/dist/tools/ontology-tool-uis.cjs.map +1 -0
  752. package/dist/tools/ontology-tool-uis.d.ts +9 -0
  753. package/dist/tools/ontology-tool-uis.js +83 -0
  754. package/dist/tools/ontology-tool-uis.js.map +1 -0
  755. package/dist/tools/orchestration-tool-uis.cjs +586 -0
  756. package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
  757. package/dist/tools/orchestration-tool-uis.d.ts +141 -0
  758. package/dist/tools/orchestration-tool-uis.js +586 -0
  759. package/dist/tools/orchestration-tool-uis.js.map +1 -0
  760. package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
  761. package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
  762. package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
  763. package/dist/tools/presentation-edit-tool-uis.js +516 -0
  764. package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
  765. package/dist/tools/project-tool-uis.cjs +213 -0
  766. package/dist/tools/project-tool-uis.cjs.map +1 -0
  767. package/dist/tools/project-tool-uis.d.ts +14 -0
  768. package/dist/tools/project-tool-uis.js +213 -0
  769. package/dist/tools/project-tool-uis.js.map +1 -0
  770. package/dist/tools/sandbox-tool-uis.cjs +491 -0
  771. package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
  772. package/dist/tools/sandbox-tool-uis.d.ts +116 -0
  773. package/dist/tools/sandbox-tool-uis.js +491 -0
  774. package/dist/tools/sandbox-tool-uis.js.map +1 -0
  775. package/dist/tools/sheet-query-tool-ui.cjs +138 -0
  776. package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
  777. package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
  778. package/dist/tools/sheet-query-tool-ui.js +138 -0
  779. package/dist/tools/sheet-query-tool-ui.js.map +1 -0
  780. package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
  781. package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
  782. package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
  783. package/dist/tools/studio-screenshot-tool-uis.js +262 -0
  784. package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
  785. package/dist/tools/subagent-task-tool-ui.cjs +24 -475
  786. package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
  787. package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
  788. package/dist/tools/subagent-task-tool-ui.js +28 -479
  789. package/dist/tools/subagent-task-tool-ui.js.map +1 -1
  790. package/dist/tools/tool-summary.cjs +36 -0
  791. package/dist/tools/tool-summary.cjs.map +1 -1
  792. package/dist/tools/tool-summary.js +36 -0
  793. package/dist/tools/tool-summary.js.map +1 -1
  794. package/dist/tools/tool-uis.cjs +181 -53
  795. package/dist/tools/tool-uis.cjs.map +1 -1
  796. package/dist/tools/tool-uis.d.ts +40 -0
  797. package/dist/tools/tool-uis.js +183 -55
  798. package/dist/tools/tool-uis.js.map +1 -1
  799. package/dist/typed-interrupts/index.cjs +15 -0
  800. package/dist/typed-interrupts/index.cjs.map +1 -0
  801. package/dist/typed-interrupts/index.d.ts +20 -0
  802. package/dist/typed-interrupts/index.js +15 -0
  803. package/dist/typed-interrupts/index.js.map +1 -0
  804. package/dist/workbench/session-workbench-panes.cjs +6 -6
  805. package/dist/workbench/session-workbench-panes.cjs.map +1 -1
  806. package/package.json +28 -6
  807. package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
  808. package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
  809. package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
  810. package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
  811. package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("@assistant-ui/react");
4
+ const require$$0 = require("react");
5
+ const laneModel = require("./lane-model.cjs");
6
+ const subagents = require("../agent-runtime/src/subagents.cjs");
7
+ const toolNames = require("../agent-runtime/src/tool-names.cjs");
8
+ const NO_LANES = [];
9
+ const NO_LANE_IDS = /* @__PURE__ */ new Set();
10
+ function record(value) {
11
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
12
+ }
13
+ function laneFromArgs(id, args) {
14
+ const fields = record(args) ?? {};
15
+ const name = fields.subagent_type ?? fields.subagentType;
16
+ return {
17
+ id,
18
+ name: typeof name === "string" && name !== "" ? name : "subagent",
19
+ description: typeof fields.description === "string" ? fields.description : "",
20
+ status: "queued",
21
+ toolCallCount: 0,
22
+ messages: [],
23
+ messageCount: 0,
24
+ currentText: ""
25
+ };
26
+ }
27
+ function rawCallArgs(sources, ids) {
28
+ const wanted = new Set(ids);
29
+ const byId = /* @__PURE__ */ new Map();
30
+ for (const source of sources) {
31
+ if (source.type !== "ai" || !source.tool_calls) continue;
32
+ for (const call of source.tool_calls) {
33
+ if (call.id && wanted.has(call.id)) byId.set(call.id, call.args);
34
+ }
35
+ }
36
+ return byId;
37
+ }
38
+ const timedLanes = /* @__PURE__ */ new WeakMap();
39
+ function withServerDuration(lane, artifact) {
40
+ if (lane.durationMs != null || !subagents.isTerminalSubagentStatus(lane.status)) return lane;
41
+ const cached = timedLanes.get(lane);
42
+ if (cached !== void 0) return cached;
43
+ const durationMs = laneModel.finishedLaneDurationMs(artifact);
44
+ const timed = durationMs === null ? lane : { ...lane, durationMs };
45
+ timedLanes.set(lane, timed);
46
+ return timed;
47
+ }
48
+ function runErrorText(status) {
49
+ if ((status == null ? void 0 : status.type) !== "incomplete" || status.reason !== "error") return "";
50
+ const { error } = status;
51
+ if (error === void 0 || error === null) return "";
52
+ return (typeof error === "string" ? error : JSON.stringify(error)).trim();
53
+ }
54
+ const failedLanes = /* @__PURE__ */ new WeakMap();
55
+ function failedWithRun(lane, reason) {
56
+ const cached = failedLanes.get(lane);
57
+ if (cached !== void 0) return cached;
58
+ const failed = { ...lane, status: "error", output: reason || subagents.ORPHANED_SUBAGENT_OUTPUT };
59
+ failedLanes.set(lane, failed);
60
+ return failed;
61
+ }
62
+ function groupLanes({
63
+ message,
64
+ group,
65
+ args,
66
+ toolCallId,
67
+ turnEnded
68
+ }) {
69
+ const byCall = subagents.taskSubagentsOfTurn(message);
70
+ const artifacts = /* @__PURE__ */ new Map();
71
+ if (message.role === "assistant") {
72
+ for (const part of message.content) {
73
+ if (part.type === "tool-call" && part.toolName === toolNames.TASK_TOOL_NAME) artifacts.set(part.toolCallId, part.artifact);
74
+ }
75
+ }
76
+ const missing = group.ids.filter((id) => !byCall.has(id));
77
+ const raw = missing.length > 0 ? rawCallArgs(react.getExternalStoreMessages(message), missing) : null;
78
+ let stopped = null;
79
+ const lanes = group.ids.map((id) => {
80
+ const known = byCall.get(id);
81
+ const lane = known !== void 0 ? withServerDuration(known, artifacts.get(id)) : laneFromArgs(id, (raw == null ? void 0 : raw.get(id)) ?? (id === toolCallId ? args : void 0));
82
+ if (!turnEnded || subagents.isTerminalSubagentStatus(lane.status)) return lane;
83
+ const reason = runErrorText(message.status);
84
+ if (reason !== "") return failedWithRun(lane, reason);
85
+ stopped ?? (stopped = /* @__PURE__ */ new Set());
86
+ stopped.add(id);
87
+ return lane;
88
+ });
89
+ return { lanes, stoppedLaneIds: stopped ?? NO_LANE_IDS };
90
+ }
91
+ function useTaskSubagentGroup({
92
+ toolCallId,
93
+ args
94
+ }) {
95
+ var _a;
96
+ const message = react.useAuiState((s) => s.message);
97
+ const group = require$$0.useMemo(
98
+ () => subagents.taskSiblingGroup(react.getExternalStoreMessages(message), toolCallId),
99
+ [message, toolCallId]
100
+ );
101
+ const isAnchor = group.anchorId === toolCallId;
102
+ const turnToolCallIds = require$$0.useMemo(() => isAnchor ? subagents.openTurnToolCallIds(message) : void 0, [isAnchor, message]);
103
+ const turnEnded = !message.isLast || ((_a = message.status) == null ? void 0 : _a.type) === "incomplete";
104
+ const { lanes, stoppedLaneIds } = require$$0.useMemo(
105
+ () => isAnchor ? groupLanes({ message, group, args, toolCallId, turnEnded }) : { lanes: NO_LANES, stoppedLaneIds: NO_LANE_IDS },
106
+ [isAnchor, message, group, args, toolCallId, turnEnded]
107
+ );
108
+ const delegatedAtMs = require$$0.useMemo(
109
+ () => isAnchor ? laneModel.laneDelegatedAtMs({ sources: react.getExternalStoreMessages(message), toolCallId }) : null,
110
+ [isAnchor, message, toolCallId]
111
+ );
112
+ return { group, isAnchor, lanes, turnToolCallIds, stoppedLaneIds, delegatedAtMs };
113
+ }
114
+ exports.useTaskSubagentGroup = useTaskSubagentGroup;
115
+ //# sourceMappingURL=task-subagent-group.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-subagent-group.cjs","sources":["../../src/subagents/task-subagent-group.ts"],"sourcesContent":["'use client';\n\nimport { getExternalStoreMessages, type ThreadMessage, useAuiState } from '@assistant-ui/react';\nimport type { LangChainMessage } from '@assistant-ui/react-langgraph';\nimport {\n isTerminalSubagentStatus,\n ORPHANED_SUBAGENT_OUTPUT,\n openTurnToolCallIds,\n type SubagentDiscoverySnapshot,\n TASK_TOOL_NAME,\n type TaskSiblingGroup,\n taskSiblingGroup,\n taskSubagentsOfTurn,\n} from '@athenaintel/agent-runtime';\nimport { useMemo } from 'react';\nimport { finishedLaneDurationMs, laneDelegatedAtMs } from './lane-model';\n\n/** The lanes of the `task` calls a turn delegated together, as the call `toolCallId` reads them. */\nexport interface TaskSubagentGroupState {\n /** The sibling `task` calls of one parent message, in the order the agent made them. */\n group: TaskSiblingGroup;\n /**\n * This call draws the group (it is the first sibling); every other sibling\n * draws nothing, so a parallel fan-out becomes one row of lanes.\n */\n isAnchor: boolean;\n /** The group's lanes, in `group.ids` order; empty for a call that is not the anchor. */\n lanes: readonly SubagentDiscoverySnapshot[];\n /** Every call of the turn while it is still open (`openTurnToolCallIds`); see `SubagentLaneGroup`. */\n turnToolCallIds: ReadonlySet<string> | undefined;\n /**\n * Lanes whose run ended before they settled: the conversation moved past\n * their turn, or the turn itself ended unfinished (stopped), and the lane\n * never got its result. A lane its run's failure ended reads Failed instead.\n */\n stoppedLaneIds: ReadonlySet<string>;\n /** When the agent delegated the group: the delegating message's server stamp (ms), else `null`. */\n delegatedAtMs: number | null;\n}\n\nconst NO_LANES: readonly SubagentDiscoverySnapshot[] = [];\nconst NO_LANE_IDS: ReadonlySet<string> = new Set();\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\n/** A queued lane for a sibling the turn holds no tool-call part for yet: what its arguments say. */\nfunction laneFromArgs(id: string, args: unknown): SubagentDiscoverySnapshot {\n const fields = record(args) ?? {};\n const name = fields.subagent_type ?? fields.subagentType;\n return {\n id,\n name: typeof name === 'string' && name !== '' ? name : 'subagent',\n description: typeof fields.description === 'string' ? fields.description : '',\n status: 'queued',\n toolCallCount: 0,\n messages: [],\n messageCount: 0,\n currentText: '',\n };\n}\n\n/** The arguments of each of `ids` as the raw delegating message carries them. */\nfunction rawCallArgs(sources: readonly LangChainMessage[], ids: readonly string[]): Map<string, unknown> {\n const wanted = new Set(ids);\n const byId = new Map<string, unknown>();\n for (const source of sources) {\n if (source.type !== 'ai' || !source.tool_calls) continue;\n for (const call of source.tool_calls) {\n if (call.id && wanted.has(call.id)) byId.set(call.id, call.args);\n }\n }\n return byId;\n}\n\n/**\n * A settled `task` lane with its runtime as the server measured it (the\n * result's own stamps, `finishedLaneDurationMs`), so its card shows how long\n * it ran after a reload too. Kept per lane, so a lane that did not change\n * keeps its identity.\n */\nconst timedLanes = new WeakMap<SubagentDiscoverySnapshot, SubagentDiscoverySnapshot>();\n\nfunction withServerDuration(lane: SubagentDiscoverySnapshot, artifact: unknown): SubagentDiscoverySnapshot {\n if (lane.durationMs != null || !isTerminalSubagentStatus(lane.status)) return lane;\n const cached = timedLanes.get(lane);\n if (cached !== undefined) return cached;\n const durationMs = finishedLaneDurationMs(artifact);\n const timed = durationMs === null ? lane : { ...lane, durationMs };\n timedLanes.set(lane, timed);\n return timed;\n}\n\n/**\n * Why the run's own failure ended the turn, as its status says it (a call the\n * run never answered takes its message's status); `''` without a reason.\n */\nfunction runErrorText(status: ThreadMessage['status']): string {\n if (status?.type !== 'incomplete' || status.reason !== 'error') return '';\n const { error } = status;\n if (error === undefined || error === null) return '';\n return (typeof error === 'string' ? error : JSON.stringify(error)).trim();\n}\n\n/** A lane whose run failed before it settled, failed with the run's reason. Kept per lane. */\nconst failedLanes = new WeakMap<SubagentDiscoverySnapshot, SubagentDiscoverySnapshot>();\n\nfunction failedWithRun(lane: SubagentDiscoverySnapshot, reason: string): SubagentDiscoverySnapshot {\n const cached = failedLanes.get(lane);\n if (cached !== undefined) return cached;\n const failed: SubagentDiscoverySnapshot = { ...lane, status: 'error', output: reason || ORPHANED_SUBAGENT_OUTPUT };\n failedLanes.set(lane, failed);\n return failed;\n}\n\ninterface GroupLanes {\n lanes: readonly SubagentDiscoverySnapshot[];\n stoppedLaneIds: ReadonlySet<string>;\n}\n\nfunction groupLanes({\n message,\n group,\n args,\n toolCallId,\n turnEnded,\n}: {\n message: ThreadMessage;\n group: TaskSiblingGroup;\n args: unknown;\n toolCallId: string;\n /**\n * Nothing will settle the turn's lanes now: a later message follows it, or\n * it ended unfinished. (Its status alone is no sign the run is on it: a turn\n * whose lanes hold their running placeholders reads complete while the run\n * waits on a person.)\n */\n turnEnded: boolean;\n}): GroupLanes {\n const byCall = taskSubagentsOfTurn(message);\n const artifacts = new Map<string, unknown>();\n if (message.role === 'assistant') {\n for (const part of message.content) {\n if (part.type === 'tool-call' && part.toolName === TASK_TOOL_NAME) artifacts.set(part.toolCallId, part.artifact);\n }\n }\n const missing = group.ids.filter((id) => !byCall.has(id));\n const raw = missing.length > 0 ? rawCallArgs(getExternalStoreMessages<LangChainMessage>(message), missing) : null;\n let stopped: Set<string> | null = null;\n const lanes = group.ids.map((id) => {\n const known = byCall.get(id);\n const lane =\n known !== undefined\n ? withServerDuration(known, artifacts.get(id))\n : laneFromArgs(id, raw?.get(id) ?? (id === toolCallId ? args : undefined));\n if (!turnEnded || isTerminalSubagentStatus(lane.status)) return lane;\n // The run left this turn before the lane settled: nothing will settle it now.\n const reason = runErrorText(message.status);\n if (reason !== '') return failedWithRun(lane, reason);\n stopped ??= new Set();\n stopped.add(id);\n return lane;\n });\n return { lanes, stoppedLaneIds: stopped ?? NO_LANE_IDS };\n}\n\n/**\n * The lanes of the `task` calls issued together with `toolCallId` (its parallel\n * siblings), read off the turn's tool-call parts: each part's result and\n * `isPreliminary` say where its lane is, and its native `messages` are the\n * lane's transcript. The group is the calls of one parent AI message, found in\n * the sources bound to the turn. Only the first sibling reads the lanes; every\n * other sibling learns it is not the anchor and draws nothing.\n */\nexport function useTaskSubagentGroup({\n toolCallId,\n args,\n}: {\n toolCallId: string;\n /** The call's own arguments, for its lane before the turn holds its part. */\n args?: unknown;\n}): TaskSubagentGroupState {\n const message = useAuiState((s) => s.message);\n const group = useMemo(\n () => taskSiblingGroup(getExternalStoreMessages<LangChainMessage>(message), toolCallId),\n [message, toolCallId],\n );\n const isAnchor = group.anchorId === toolCallId;\n const turnToolCallIds = useMemo(() => (isAnchor ? openTurnToolCallIds(message) : undefined), [isAnchor, message]);\n const turnEnded = !message.isLast || message.status?.type === 'incomplete';\n const { lanes, stoppedLaneIds } = useMemo<GroupLanes>(\n () =>\n isAnchor\n ? groupLanes({ message, group, args, toolCallId, turnEnded })\n : { lanes: NO_LANES, stoppedLaneIds: NO_LANE_IDS },\n [isAnchor, message, group, args, toolCallId, turnEnded],\n );\n const delegatedAtMs = useMemo(\n () =>\n isAnchor ? laneDelegatedAtMs({ sources: getExternalStoreMessages<unknown>(message), toolCallId }) : null,\n [isAnchor, message, toolCallId],\n );\n return { group, isAnchor, lanes, turnToolCallIds, stoppedLaneIds, delegatedAtMs };\n}\n"],"names":["isTerminalSubagentStatus","finishedLaneDurationMs","ORPHANED_SUBAGENT_OUTPUT","taskSubagentsOfTurn","TASK_TOOL_NAME","getExternalStoreMessages","useAuiState","useMemo","taskSiblingGroup","openTurnToolCallIds","laneDelegatedAtMs"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { type SubagentDiscoverySnapshot, type TaskSiblingGroup } from '../agent-runtime/src/index';
2
+ /** The lanes of the `task` calls a turn delegated together, as the call `toolCallId` reads them. */
3
+ export interface TaskSubagentGroupState {
4
+ /** The sibling `task` calls of one parent message, in the order the agent made them. */
5
+ group: TaskSiblingGroup;
6
+ /**
7
+ * This call draws the group (it is the first sibling); every other sibling
8
+ * draws nothing, so a parallel fan-out becomes one row of lanes.
9
+ */
10
+ isAnchor: boolean;
11
+ /** The group's lanes, in `group.ids` order; empty for a call that is not the anchor. */
12
+ lanes: readonly SubagentDiscoverySnapshot[];
13
+ /** Every call of the turn while it is still open (`openTurnToolCallIds`); see `SubagentLaneGroup`. */
14
+ turnToolCallIds: ReadonlySet<string> | undefined;
15
+ /**
16
+ * Lanes whose run ended before they settled: the conversation moved past
17
+ * their turn, or the turn itself ended unfinished (stopped), and the lane
18
+ * never got its result. A lane its run's failure ended reads Failed instead.
19
+ */
20
+ stoppedLaneIds: ReadonlySet<string>;
21
+ /** When the agent delegated the group: the delegating message's server stamp (ms), else `null`. */
22
+ delegatedAtMs: number | null;
23
+ }
24
+ /**
25
+ * The lanes of the `task` calls issued together with `toolCallId` (its parallel
26
+ * siblings), read off the turn's tool-call parts: each part's result and
27
+ * `isPreliminary` say where its lane is, and its native `messages` are the
28
+ * lane's transcript. The group is the calls of one parent AI message, found in
29
+ * the sources bound to the turn. Only the first sibling reads the lanes; every
30
+ * other sibling learns it is not the anchor and draws nothing.
31
+ */
32
+ export declare function useTaskSubagentGroup({ toolCallId, args, }: {
33
+ toolCallId: string;
34
+ /** The call's own arguments, for its lane before the turn holds its part. */
35
+ args?: unknown;
36
+ }): TaskSubagentGroupState;
@@ -0,0 +1,115 @@
1
+ import { useAuiState, getExternalStoreMessages } from "@assistant-ui/react";
2
+ import { useMemo } from "react";
3
+ import { laneDelegatedAtMs, finishedLaneDurationMs } from "./lane-model.js";
4
+ import { taskSiblingGroup, openTurnToolCallIds, taskSubagentsOfTurn, isTerminalSubagentStatus, ORPHANED_SUBAGENT_OUTPUT } from "../agent-runtime/src/subagents.js";
5
+ import { TASK_TOOL_NAME } from "../agent-runtime/src/tool-names.js";
6
+ const NO_LANES = [];
7
+ const NO_LANE_IDS = /* @__PURE__ */ new Set();
8
+ function record(value) {
9
+ return value && typeof value === "object" && !Array.isArray(value) ? value : void 0;
10
+ }
11
+ function laneFromArgs(id, args) {
12
+ const fields = record(args) ?? {};
13
+ const name = fields.subagent_type ?? fields.subagentType;
14
+ return {
15
+ id,
16
+ name: typeof name === "string" && name !== "" ? name : "subagent",
17
+ description: typeof fields.description === "string" ? fields.description : "",
18
+ status: "queued",
19
+ toolCallCount: 0,
20
+ messages: [],
21
+ messageCount: 0,
22
+ currentText: ""
23
+ };
24
+ }
25
+ function rawCallArgs(sources, ids) {
26
+ const wanted = new Set(ids);
27
+ const byId = /* @__PURE__ */ new Map();
28
+ for (const source of sources) {
29
+ if (source.type !== "ai" || !source.tool_calls) continue;
30
+ for (const call of source.tool_calls) {
31
+ if (call.id && wanted.has(call.id)) byId.set(call.id, call.args);
32
+ }
33
+ }
34
+ return byId;
35
+ }
36
+ const timedLanes = /* @__PURE__ */ new WeakMap();
37
+ function withServerDuration(lane, artifact) {
38
+ if (lane.durationMs != null || !isTerminalSubagentStatus(lane.status)) return lane;
39
+ const cached = timedLanes.get(lane);
40
+ if (cached !== void 0) return cached;
41
+ const durationMs = finishedLaneDurationMs(artifact);
42
+ const timed = durationMs === null ? lane : { ...lane, durationMs };
43
+ timedLanes.set(lane, timed);
44
+ return timed;
45
+ }
46
+ function runErrorText(status) {
47
+ if ((status == null ? void 0 : status.type) !== "incomplete" || status.reason !== "error") return "";
48
+ const { error } = status;
49
+ if (error === void 0 || error === null) return "";
50
+ return (typeof error === "string" ? error : JSON.stringify(error)).trim();
51
+ }
52
+ const failedLanes = /* @__PURE__ */ new WeakMap();
53
+ function failedWithRun(lane, reason) {
54
+ const cached = failedLanes.get(lane);
55
+ if (cached !== void 0) return cached;
56
+ const failed = { ...lane, status: "error", output: reason || ORPHANED_SUBAGENT_OUTPUT };
57
+ failedLanes.set(lane, failed);
58
+ return failed;
59
+ }
60
+ function groupLanes({
61
+ message,
62
+ group,
63
+ args,
64
+ toolCallId,
65
+ turnEnded
66
+ }) {
67
+ const byCall = taskSubagentsOfTurn(message);
68
+ const artifacts = /* @__PURE__ */ new Map();
69
+ if (message.role === "assistant") {
70
+ for (const part of message.content) {
71
+ if (part.type === "tool-call" && part.toolName === TASK_TOOL_NAME) artifacts.set(part.toolCallId, part.artifact);
72
+ }
73
+ }
74
+ const missing = group.ids.filter((id) => !byCall.has(id));
75
+ const raw = missing.length > 0 ? rawCallArgs(getExternalStoreMessages(message), missing) : null;
76
+ let stopped = null;
77
+ const lanes = group.ids.map((id) => {
78
+ const known = byCall.get(id);
79
+ const lane = known !== void 0 ? withServerDuration(known, artifacts.get(id)) : laneFromArgs(id, (raw == null ? void 0 : raw.get(id)) ?? (id === toolCallId ? args : void 0));
80
+ if (!turnEnded || isTerminalSubagentStatus(lane.status)) return lane;
81
+ const reason = runErrorText(message.status);
82
+ if (reason !== "") return failedWithRun(lane, reason);
83
+ stopped ?? (stopped = /* @__PURE__ */ new Set());
84
+ stopped.add(id);
85
+ return lane;
86
+ });
87
+ return { lanes, stoppedLaneIds: stopped ?? NO_LANE_IDS };
88
+ }
89
+ function useTaskSubagentGroup({
90
+ toolCallId,
91
+ args
92
+ }) {
93
+ var _a;
94
+ const message = useAuiState((s) => s.message);
95
+ const group = useMemo(
96
+ () => taskSiblingGroup(getExternalStoreMessages(message), toolCallId),
97
+ [message, toolCallId]
98
+ );
99
+ const isAnchor = group.anchorId === toolCallId;
100
+ const turnToolCallIds = useMemo(() => isAnchor ? openTurnToolCallIds(message) : void 0, [isAnchor, message]);
101
+ const turnEnded = !message.isLast || ((_a = message.status) == null ? void 0 : _a.type) === "incomplete";
102
+ const { lanes, stoppedLaneIds } = useMemo(
103
+ () => isAnchor ? groupLanes({ message, group, args, toolCallId, turnEnded }) : { lanes: NO_LANES, stoppedLaneIds: NO_LANE_IDS },
104
+ [isAnchor, message, group, args, toolCallId, turnEnded]
105
+ );
106
+ const delegatedAtMs = useMemo(
107
+ () => isAnchor ? laneDelegatedAtMs({ sources: getExternalStoreMessages(message), toolCallId }) : null,
108
+ [isAnchor, message, toolCallId]
109
+ );
110
+ return { group, isAnchor, lanes, turnToolCallIds, stoppedLaneIds, delegatedAtMs };
111
+ }
112
+ export {
113
+ useTaskSubagentGroup
114
+ };
115
+ //# sourceMappingURL=task-subagent-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-subagent-group.js","sources":["../../src/subagents/task-subagent-group.ts"],"sourcesContent":["'use client';\n\nimport { getExternalStoreMessages, type ThreadMessage, useAuiState } from '@assistant-ui/react';\nimport type { LangChainMessage } from '@assistant-ui/react-langgraph';\nimport {\n isTerminalSubagentStatus,\n ORPHANED_SUBAGENT_OUTPUT,\n openTurnToolCallIds,\n type SubagentDiscoverySnapshot,\n TASK_TOOL_NAME,\n type TaskSiblingGroup,\n taskSiblingGroup,\n taskSubagentsOfTurn,\n} from '@athenaintel/agent-runtime';\nimport { useMemo } from 'react';\nimport { finishedLaneDurationMs, laneDelegatedAtMs } from './lane-model';\n\n/** The lanes of the `task` calls a turn delegated together, as the call `toolCallId` reads them. */\nexport interface TaskSubagentGroupState {\n /** The sibling `task` calls of one parent message, in the order the agent made them. */\n group: TaskSiblingGroup;\n /**\n * This call draws the group (it is the first sibling); every other sibling\n * draws nothing, so a parallel fan-out becomes one row of lanes.\n */\n isAnchor: boolean;\n /** The group's lanes, in `group.ids` order; empty for a call that is not the anchor. */\n lanes: readonly SubagentDiscoverySnapshot[];\n /** Every call of the turn while it is still open (`openTurnToolCallIds`); see `SubagentLaneGroup`. */\n turnToolCallIds: ReadonlySet<string> | undefined;\n /**\n * Lanes whose run ended before they settled: the conversation moved past\n * their turn, or the turn itself ended unfinished (stopped), and the lane\n * never got its result. A lane its run's failure ended reads Failed instead.\n */\n stoppedLaneIds: ReadonlySet<string>;\n /** When the agent delegated the group: the delegating message's server stamp (ms), else `null`. */\n delegatedAtMs: number | null;\n}\n\nconst NO_LANES: readonly SubagentDiscoverySnapshot[] = [];\nconst NO_LANE_IDS: ReadonlySet<string> = new Set();\n\nfunction record(value: unknown): Record<string, unknown> | undefined {\n return value && typeof value === 'object' && !Array.isArray(value)\n ? (value as Record<string, unknown>)\n : undefined;\n}\n\n/** A queued lane for a sibling the turn holds no tool-call part for yet: what its arguments say. */\nfunction laneFromArgs(id: string, args: unknown): SubagentDiscoverySnapshot {\n const fields = record(args) ?? {};\n const name = fields.subagent_type ?? fields.subagentType;\n return {\n id,\n name: typeof name === 'string' && name !== '' ? name : 'subagent',\n description: typeof fields.description === 'string' ? fields.description : '',\n status: 'queued',\n toolCallCount: 0,\n messages: [],\n messageCount: 0,\n currentText: '',\n };\n}\n\n/** The arguments of each of `ids` as the raw delegating message carries them. */\nfunction rawCallArgs(sources: readonly LangChainMessage[], ids: readonly string[]): Map<string, unknown> {\n const wanted = new Set(ids);\n const byId = new Map<string, unknown>();\n for (const source of sources) {\n if (source.type !== 'ai' || !source.tool_calls) continue;\n for (const call of source.tool_calls) {\n if (call.id && wanted.has(call.id)) byId.set(call.id, call.args);\n }\n }\n return byId;\n}\n\n/**\n * A settled `task` lane with its runtime as the server measured it (the\n * result's own stamps, `finishedLaneDurationMs`), so its card shows how long\n * it ran after a reload too. Kept per lane, so a lane that did not change\n * keeps its identity.\n */\nconst timedLanes = new WeakMap<SubagentDiscoverySnapshot, SubagentDiscoverySnapshot>();\n\nfunction withServerDuration(lane: SubagentDiscoverySnapshot, artifact: unknown): SubagentDiscoverySnapshot {\n if (lane.durationMs != null || !isTerminalSubagentStatus(lane.status)) return lane;\n const cached = timedLanes.get(lane);\n if (cached !== undefined) return cached;\n const durationMs = finishedLaneDurationMs(artifact);\n const timed = durationMs === null ? lane : { ...lane, durationMs };\n timedLanes.set(lane, timed);\n return timed;\n}\n\n/**\n * Why the run's own failure ended the turn, as its status says it (a call the\n * run never answered takes its message's status); `''` without a reason.\n */\nfunction runErrorText(status: ThreadMessage['status']): string {\n if (status?.type !== 'incomplete' || status.reason !== 'error') return '';\n const { error } = status;\n if (error === undefined || error === null) return '';\n return (typeof error === 'string' ? error : JSON.stringify(error)).trim();\n}\n\n/** A lane whose run failed before it settled, failed with the run's reason. Kept per lane. */\nconst failedLanes = new WeakMap<SubagentDiscoverySnapshot, SubagentDiscoverySnapshot>();\n\nfunction failedWithRun(lane: SubagentDiscoverySnapshot, reason: string): SubagentDiscoverySnapshot {\n const cached = failedLanes.get(lane);\n if (cached !== undefined) return cached;\n const failed: SubagentDiscoverySnapshot = { ...lane, status: 'error', output: reason || ORPHANED_SUBAGENT_OUTPUT };\n failedLanes.set(lane, failed);\n return failed;\n}\n\ninterface GroupLanes {\n lanes: readonly SubagentDiscoverySnapshot[];\n stoppedLaneIds: ReadonlySet<string>;\n}\n\nfunction groupLanes({\n message,\n group,\n args,\n toolCallId,\n turnEnded,\n}: {\n message: ThreadMessage;\n group: TaskSiblingGroup;\n args: unknown;\n toolCallId: string;\n /**\n * Nothing will settle the turn's lanes now: a later message follows it, or\n * it ended unfinished. (Its status alone is no sign the run is on it: a turn\n * whose lanes hold their running placeholders reads complete while the run\n * waits on a person.)\n */\n turnEnded: boolean;\n}): GroupLanes {\n const byCall = taskSubagentsOfTurn(message);\n const artifacts = new Map<string, unknown>();\n if (message.role === 'assistant') {\n for (const part of message.content) {\n if (part.type === 'tool-call' && part.toolName === TASK_TOOL_NAME) artifacts.set(part.toolCallId, part.artifact);\n }\n }\n const missing = group.ids.filter((id) => !byCall.has(id));\n const raw = missing.length > 0 ? rawCallArgs(getExternalStoreMessages<LangChainMessage>(message), missing) : null;\n let stopped: Set<string> | null = null;\n const lanes = group.ids.map((id) => {\n const known = byCall.get(id);\n const lane =\n known !== undefined\n ? withServerDuration(known, artifacts.get(id))\n : laneFromArgs(id, raw?.get(id) ?? (id === toolCallId ? args : undefined));\n if (!turnEnded || isTerminalSubagentStatus(lane.status)) return lane;\n // The run left this turn before the lane settled: nothing will settle it now.\n const reason = runErrorText(message.status);\n if (reason !== '') return failedWithRun(lane, reason);\n stopped ??= new Set();\n stopped.add(id);\n return lane;\n });\n return { lanes, stoppedLaneIds: stopped ?? NO_LANE_IDS };\n}\n\n/**\n * The lanes of the `task` calls issued together with `toolCallId` (its parallel\n * siblings), read off the turn's tool-call parts: each part's result and\n * `isPreliminary` say where its lane is, and its native `messages` are the\n * lane's transcript. The group is the calls of one parent AI message, found in\n * the sources bound to the turn. Only the first sibling reads the lanes; every\n * other sibling learns it is not the anchor and draws nothing.\n */\nexport function useTaskSubagentGroup({\n toolCallId,\n args,\n}: {\n toolCallId: string;\n /** The call's own arguments, for its lane before the turn holds its part. */\n args?: unknown;\n}): TaskSubagentGroupState {\n const message = useAuiState((s) => s.message);\n const group = useMemo(\n () => taskSiblingGroup(getExternalStoreMessages<LangChainMessage>(message), toolCallId),\n [message, toolCallId],\n );\n const isAnchor = group.anchorId === toolCallId;\n const turnToolCallIds = useMemo(() => (isAnchor ? openTurnToolCallIds(message) : undefined), [isAnchor, message]);\n const turnEnded = !message.isLast || message.status?.type === 'incomplete';\n const { lanes, stoppedLaneIds } = useMemo<GroupLanes>(\n () =>\n isAnchor\n ? groupLanes({ message, group, args, toolCallId, turnEnded })\n : { lanes: NO_LANES, stoppedLaneIds: NO_LANE_IDS },\n [isAnchor, message, group, args, toolCallId, turnEnded],\n );\n const delegatedAtMs = useMemo(\n () =>\n isAnchor ? laneDelegatedAtMs({ sources: getExternalStoreMessages<unknown>(message), toolCallId }) : null,\n [isAnchor, message, toolCallId],\n );\n return { group, isAnchor, lanes, turnToolCallIds, stoppedLaneIds, delegatedAtMs };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const require$$0 = require("react");
4
+ const laneImages = require("../agent-runtime/src/lane-images.cjs");
5
+ const IN_VIEW_MARGIN = "320px 0px";
6
+ const tileImage = (image) => laneImages.readLaneImageTile(image.getAttribute("src"));
7
+ function useOmittedImagesInView({
8
+ rootRef,
9
+ enabled,
10
+ onSeen
11
+ }) {
12
+ const onSeenRef = require$$0.useRef(onSeen);
13
+ onSeenRef.current = onSeen;
14
+ require$$0.useEffect(() => {
15
+ const root = rootRef.current;
16
+ if (!enabled || root === null) return void 0;
17
+ const watched = /* @__PURE__ */ new WeakSet();
18
+ const report = (image) => {
19
+ const seen = tileImage(image);
20
+ if (seen !== null) onSeenRef.current(seen);
21
+ };
22
+ const observed = /* @__PURE__ */ new Set();
23
+ const intersections = typeof IntersectionObserver === "function" ? new IntersectionObserver(
24
+ (entries) => {
25
+ for (const entry of entries) {
26
+ if (!entry.isIntersecting) continue;
27
+ intersections == null ? void 0 : intersections.unobserve(entry.target);
28
+ observed.delete(entry.target);
29
+ report(entry.target);
30
+ }
31
+ },
32
+ { rootMargin: IN_VIEW_MARGIN }
33
+ ) : null;
34
+ const scan = () => {
35
+ for (const image of observed) {
36
+ if (image.isConnected && tileImage(image) !== null) continue;
37
+ intersections == null ? void 0 : intersections.unobserve(image);
38
+ observed.delete(image);
39
+ }
40
+ for (const image of root.getElementsByTagName("img")) {
41
+ if (watched.has(image) || tileImage(image) === null) continue;
42
+ watched.add(image);
43
+ if (intersections === null) {
44
+ report(image);
45
+ continue;
46
+ }
47
+ observed.add(image);
48
+ intersections.observe(image);
49
+ }
50
+ };
51
+ const mutations = new MutationObserver((records) => {
52
+ for (const record of records) {
53
+ if (record.type === "attributes" && record.target instanceof Element) {
54
+ watched.delete(record.target);
55
+ }
56
+ }
57
+ scan();
58
+ });
59
+ mutations.observe(root, { subtree: true, childList: true, attributes: true, attributeFilter: ["src"] });
60
+ scan();
61
+ return () => {
62
+ mutations.disconnect();
63
+ intersections == null ? void 0 : intersections.disconnect();
64
+ };
65
+ }, [rootRef, enabled]);
66
+ }
67
+ exports.useOmittedImagesInView = useOmittedImagesInView;
68
+ //# sourceMappingURL=use-omitted-images-in-view.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-omitted-images-in-view.cjs","sources":["../../src/subagents/use-omitted-images-in-view.ts"],"sourcesContent":["'use client';\n\nimport { type LaneImageRef, readLaneImageTile } from '@athenaintel/agent-runtime';\nimport { type RefObject, useEffect, useRef } from 'react';\n\n/** How far outside the visible area a tile starts its image's read. */\nconst IN_VIEW_MARGIN = '320px 0px';\n\nconst tileImage = (image: Element): LaneImageRef | null => readLaneImageTile(image.getAttribute('src'));\n\n/**\n * Reports each waiting tile a lane's transcript draws once it scrolls near the\n * viewport, with the image it stands for. Whatever card draws an omitted\n * image, its `<img>` shows the tile its block carries, which\n * `useDeepAgentLaneImages` tagged with that image's step and index\n * (`readLaneImageTile`). A tile in a collapsed card is not rendered, so it is\n * reported once the card opens.\n *\n * Read-only observation of `root`'s subtree: a MutationObserver finds tiles as\n * cards render, open, and swap an image back for its tile, and an\n * IntersectionObserver reports each one once it is near the viewport (every\n * tile at once where IntersectionObserver is missing). Nothing runs while\n * `enabled` is false (no image is left to ask for).\n */\nexport function useOmittedImagesInView({\n rootRef,\n enabled,\n onSeen,\n}: {\n rootRef: RefObject<HTMLElement | null>;\n enabled: boolean;\n onSeen: (image: LaneImageRef) => void;\n}): void {\n const onSeenRef = useRef(onSeen);\n onSeenRef.current = onSeen;\n useEffect(() => {\n const root = rootRef.current;\n if (!enabled || root === null) return undefined;\n // Tiles already handed to the observer (or reported); a tile whose `src`\n // changes is a new one.\n const watched = new WeakSet<Element>();\n const report = (image: Element) => {\n const seen = tileImage(image);\n if (seen !== null) onSeenRef.current(seen);\n };\n // Tiles the IntersectionObserver holds, let go once reported or removed.\n const observed = new Set<Element>();\n const intersections =\n typeof IntersectionObserver === 'function'\n ? new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (!entry.isIntersecting) continue;\n intersections?.unobserve(entry.target);\n observed.delete(entry.target);\n report(entry.target);\n }\n },\n { rootMargin: IN_VIEW_MARGIN },\n )\n : null;\n const scan = () => {\n // A tile removed (its card closed) or showing its image is let go.\n for (const image of observed) {\n if (image.isConnected && tileImage(image) !== null) continue;\n intersections?.unobserve(image);\n observed.delete(image);\n }\n for (const image of root.getElementsByTagName('img')) {\n if (watched.has(image) || tileImage(image) === null) continue;\n watched.add(image);\n if (intersections === null) {\n report(image);\n continue;\n }\n observed.add(image);\n intersections.observe(image);\n }\n };\n const mutations = new MutationObserver((records) => {\n for (const record of records) {\n if (record.type === 'attributes' && record.target instanceof Element) {\n watched.delete(record.target);\n }\n }\n scan();\n });\n mutations.observe(root, { subtree: true, childList: true, attributes: true, attributeFilter: ['src'] });\n scan();\n return () => {\n mutations.disconnect();\n intersections?.disconnect();\n };\n }, [rootRef, enabled]);\n}\n"],"names":["readLaneImageTile","useRef","useEffect"],"mappings":";;;;AAMA,MAAM,iBAAiB;AAEvB,MAAM,YAAY,CAAC,UAAwCA,WAAAA,kBAAkB,MAAM,aAAa,KAAK,CAAC;AAgB/F,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,GAIS;AACP,QAAM,YAAYC,WAAAA,OAAO,MAAM;AAC/B,YAAU,UAAU;AACpBC,aAAAA,UAAU,MAAM;AACd,UAAM,OAAO,QAAQ;AACrB,QAAI,CAAC,WAAW,SAAS,KAAM,QAAO;AAGtC,UAAM,8BAAc,QAAA;AACpB,UAAM,SAAS,CAAC,UAAmB;AACjC,YAAM,OAAO,UAAU,KAAK;AAC5B,UAAI,SAAS,KAAM,WAAU,QAAQ,IAAI;AAAA,IAC3C;AAEA,UAAM,+BAAe,IAAA;AACrB,UAAM,gBACJ,OAAO,yBAAyB,aAC5B,IAAI;AAAA,MACF,CAAC,YAAY;AACX,mBAAW,SAAS,SAAS;AAC3B,cAAI,CAAC,MAAM,eAAgB;AAC3B,yDAAe,UAAU,MAAM;AAC/B,mBAAS,OAAO,MAAM,MAAM;AAC5B,iBAAO,MAAM,MAAM;AAAA,QACrB;AAAA,MACF;AAAA,MACA,EAAE,YAAY,eAAA;AAAA,IAAe,IAE/B;AACN,UAAM,OAAO,MAAM;AAEjB,iBAAW,SAAS,UAAU;AAC5B,YAAI,MAAM,eAAe,UAAU,KAAK,MAAM,KAAM;AACpD,uDAAe,UAAU;AACzB,iBAAS,OAAO,KAAK;AAAA,MACvB;AACA,iBAAW,SAAS,KAAK,qBAAqB,KAAK,GAAG;AACpD,YAAI,QAAQ,IAAI,KAAK,KAAK,UAAU,KAAK,MAAM,KAAM;AACrD,gBAAQ,IAAI,KAAK;AACjB,YAAI,kBAAkB,MAAM;AAC1B,iBAAO,KAAK;AACZ;AAAA,QACF;AACA,iBAAS,IAAI,KAAK;AAClB,sBAAc,QAAQ,KAAK;AAAA,MAC7B;AAAA,IACF;AACA,UAAM,YAAY,IAAI,iBAAiB,CAAC,YAAY;AAClD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,SAAS,gBAAgB,OAAO,kBAAkB,SAAS;AACpE,kBAAQ,OAAO,OAAO,MAAM;AAAA,QAC9B;AAAA,MACF;AACA,WAAA;AAAA,IACF,CAAC;AACD,cAAU,QAAQ,MAAM,EAAE,SAAS,MAAM,WAAW,MAAM,YAAY,MAAM,iBAAiB,CAAC,KAAK,GAAG;AACtG,SAAA;AACA,WAAO,MAAM;AACX,gBAAU,WAAA;AACV,qDAAe;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,SAAS,OAAO,CAAC;AACvB;;"}
@@ -0,0 +1,21 @@
1
+ import { type LaneImageRef } from '../agent-runtime/src/index';
2
+ import { type RefObject } from 'react';
3
+ /**
4
+ * Reports each waiting tile a lane's transcript draws once it scrolls near the
5
+ * viewport, with the image it stands for. Whatever card draws an omitted
6
+ * image, its `<img>` shows the tile its block carries, which
7
+ * `useDeepAgentLaneImages` tagged with that image's step and index
8
+ * (`readLaneImageTile`). A tile in a collapsed card is not rendered, so it is
9
+ * reported once the card opens.
10
+ *
11
+ * Read-only observation of `root`'s subtree: a MutationObserver finds tiles as
12
+ * cards render, open, and swap an image back for its tile, and an
13
+ * IntersectionObserver reports each one once it is near the viewport (every
14
+ * tile at once where IntersectionObserver is missing). Nothing runs while
15
+ * `enabled` is false (no image is left to ask for).
16
+ */
17
+ export declare function useOmittedImagesInView({ rootRef, enabled, onSeen, }: {
18
+ rootRef: RefObject<HTMLElement | null>;
19
+ enabled: boolean;
20
+ onSeen: (image: LaneImageRef) => void;
21
+ }): void;
@@ -0,0 +1,68 @@
1
+ import { useRef, useEffect } from "react";
2
+ import { readLaneImageTile } from "../agent-runtime/src/lane-images.js";
3
+ const IN_VIEW_MARGIN = "320px 0px";
4
+ const tileImage = (image) => readLaneImageTile(image.getAttribute("src"));
5
+ function useOmittedImagesInView({
6
+ rootRef,
7
+ enabled,
8
+ onSeen
9
+ }) {
10
+ const onSeenRef = useRef(onSeen);
11
+ onSeenRef.current = onSeen;
12
+ useEffect(() => {
13
+ const root = rootRef.current;
14
+ if (!enabled || root === null) return void 0;
15
+ const watched = /* @__PURE__ */ new WeakSet();
16
+ const report = (image) => {
17
+ const seen = tileImage(image);
18
+ if (seen !== null) onSeenRef.current(seen);
19
+ };
20
+ const observed = /* @__PURE__ */ new Set();
21
+ const intersections = typeof IntersectionObserver === "function" ? new IntersectionObserver(
22
+ (entries) => {
23
+ for (const entry of entries) {
24
+ if (!entry.isIntersecting) continue;
25
+ intersections == null ? void 0 : intersections.unobserve(entry.target);
26
+ observed.delete(entry.target);
27
+ report(entry.target);
28
+ }
29
+ },
30
+ { rootMargin: IN_VIEW_MARGIN }
31
+ ) : null;
32
+ const scan = () => {
33
+ for (const image of observed) {
34
+ if (image.isConnected && tileImage(image) !== null) continue;
35
+ intersections == null ? void 0 : intersections.unobserve(image);
36
+ observed.delete(image);
37
+ }
38
+ for (const image of root.getElementsByTagName("img")) {
39
+ if (watched.has(image) || tileImage(image) === null) continue;
40
+ watched.add(image);
41
+ if (intersections === null) {
42
+ report(image);
43
+ continue;
44
+ }
45
+ observed.add(image);
46
+ intersections.observe(image);
47
+ }
48
+ };
49
+ const mutations = new MutationObserver((records) => {
50
+ for (const record of records) {
51
+ if (record.type === "attributes" && record.target instanceof Element) {
52
+ watched.delete(record.target);
53
+ }
54
+ }
55
+ scan();
56
+ });
57
+ mutations.observe(root, { subtree: true, childList: true, attributes: true, attributeFilter: ["src"] });
58
+ scan();
59
+ return () => {
60
+ mutations.disconnect();
61
+ intersections == null ? void 0 : intersections.disconnect();
62
+ };
63
+ }, [rootRef, enabled]);
64
+ }
65
+ export {
66
+ useOmittedImagesInView
67
+ };
68
+ //# sourceMappingURL=use-omitted-images-in-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-omitted-images-in-view.js","sources":["../../src/subagents/use-omitted-images-in-view.ts"],"sourcesContent":["'use client';\n\nimport { type LaneImageRef, readLaneImageTile } from '@athenaintel/agent-runtime';\nimport { type RefObject, useEffect, useRef } from 'react';\n\n/** How far outside the visible area a tile starts its image's read. */\nconst IN_VIEW_MARGIN = '320px 0px';\n\nconst tileImage = (image: Element): LaneImageRef | null => readLaneImageTile(image.getAttribute('src'));\n\n/**\n * Reports each waiting tile a lane's transcript draws once it scrolls near the\n * viewport, with the image it stands for. Whatever card draws an omitted\n * image, its `<img>` shows the tile its block carries, which\n * `useDeepAgentLaneImages` tagged with that image's step and index\n * (`readLaneImageTile`). A tile in a collapsed card is not rendered, so it is\n * reported once the card opens.\n *\n * Read-only observation of `root`'s subtree: a MutationObserver finds tiles as\n * cards render, open, and swap an image back for its tile, and an\n * IntersectionObserver reports each one once it is near the viewport (every\n * tile at once where IntersectionObserver is missing). Nothing runs while\n * `enabled` is false (no image is left to ask for).\n */\nexport function useOmittedImagesInView({\n rootRef,\n enabled,\n onSeen,\n}: {\n rootRef: RefObject<HTMLElement | null>;\n enabled: boolean;\n onSeen: (image: LaneImageRef) => void;\n}): void {\n const onSeenRef = useRef(onSeen);\n onSeenRef.current = onSeen;\n useEffect(() => {\n const root = rootRef.current;\n if (!enabled || root === null) return undefined;\n // Tiles already handed to the observer (or reported); a tile whose `src`\n // changes is a new one.\n const watched = new WeakSet<Element>();\n const report = (image: Element) => {\n const seen = tileImage(image);\n if (seen !== null) onSeenRef.current(seen);\n };\n // Tiles the IntersectionObserver holds, let go once reported or removed.\n const observed = new Set<Element>();\n const intersections =\n typeof IntersectionObserver === 'function'\n ? new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (!entry.isIntersecting) continue;\n intersections?.unobserve(entry.target);\n observed.delete(entry.target);\n report(entry.target);\n }\n },\n { rootMargin: IN_VIEW_MARGIN },\n )\n : null;\n const scan = () => {\n // A tile removed (its card closed) or showing its image is let go.\n for (const image of observed) {\n if (image.isConnected && tileImage(image) !== null) continue;\n intersections?.unobserve(image);\n observed.delete(image);\n }\n for (const image of root.getElementsByTagName('img')) {\n if (watched.has(image) || tileImage(image) === null) continue;\n watched.add(image);\n if (intersections === null) {\n report(image);\n continue;\n }\n observed.add(image);\n intersections.observe(image);\n }\n };\n const mutations = new MutationObserver((records) => {\n for (const record of records) {\n if (record.type === 'attributes' && record.target instanceof Element) {\n watched.delete(record.target);\n }\n }\n scan();\n });\n mutations.observe(root, { subtree: true, childList: true, attributes: true, attributeFilter: ['src'] });\n scan();\n return () => {\n mutations.disconnect();\n intersections?.disconnect();\n };\n }, [rootRef, enabled]);\n}\n"],"names":[],"mappings":";;AAMA,MAAM,iBAAiB;AAEvB,MAAM,YAAY,CAAC,UAAwC,kBAAkB,MAAM,aAAa,KAAK,CAAC;AAgB/F,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AACF,GAIS;AACP,QAAM,YAAY,OAAO,MAAM;AAC/B,YAAU,UAAU;AACpB,YAAU,MAAM;AACd,UAAM,OAAO,QAAQ;AACrB,QAAI,CAAC,WAAW,SAAS,KAAM,QAAO;AAGtC,UAAM,8BAAc,QAAA;AACpB,UAAM,SAAS,CAAC,UAAmB;AACjC,YAAM,OAAO,UAAU,KAAK;AAC5B,UAAI,SAAS,KAAM,WAAU,QAAQ,IAAI;AAAA,IAC3C;AAEA,UAAM,+BAAe,IAAA;AACrB,UAAM,gBACJ,OAAO,yBAAyB,aAC5B,IAAI;AAAA,MACF,CAAC,YAAY;AACX,mBAAW,SAAS,SAAS;AAC3B,cAAI,CAAC,MAAM,eAAgB;AAC3B,yDAAe,UAAU,MAAM;AAC/B,mBAAS,OAAO,MAAM,MAAM;AAC5B,iBAAO,MAAM,MAAM;AAAA,QACrB;AAAA,MACF;AAAA,MACA,EAAE,YAAY,eAAA;AAAA,IAAe,IAE/B;AACN,UAAM,OAAO,MAAM;AAEjB,iBAAW,SAAS,UAAU;AAC5B,YAAI,MAAM,eAAe,UAAU,KAAK,MAAM,KAAM;AACpD,uDAAe,UAAU;AACzB,iBAAS,OAAO,KAAK;AAAA,MACvB;AACA,iBAAW,SAAS,KAAK,qBAAqB,KAAK,GAAG;AACpD,YAAI,QAAQ,IAAI,KAAK,KAAK,UAAU,KAAK,MAAM,KAAM;AACrD,gBAAQ,IAAI,KAAK;AACjB,YAAI,kBAAkB,MAAM;AAC1B,iBAAO,KAAK;AACZ;AAAA,QACF;AACA,iBAAS,IAAI,KAAK;AAClB,sBAAc,QAAQ,KAAK;AAAA,MAC7B;AAAA,IACF;AACA,UAAM,YAAY,IAAI,iBAAiB,CAAC,YAAY;AAClD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,SAAS,gBAAgB,OAAO,kBAAkB,SAAS;AACpE,kBAAQ,OAAO,OAAO,MAAM;AAAA,QAC9B;AAAA,MACF;AACA,WAAA;AAAA,IACF,CAAC;AACD,cAAU,QAAQ,MAAM,EAAE,SAAS,MAAM,WAAW,MAAM,YAAY,MAAM,iBAAiB,CAAC,KAAK,GAAG;AACtG,SAAA;AACA,WAAO,MAAM;AACX,gBAAU,WAAA;AACV,qDAAe;AAAA,IACjB;AAAA,EACF,GAAG,CAAC,SAAS,OAAO,CAAC;AACvB;"}
@@ -9,7 +9,7 @@ const credentialRenewal = require("../runtime/credential-renewal.cjs");
9
9
  const popover = require("../ui/popover.cjs");
10
10
  const api = require("./api.cjs");
11
11
  const SessionList = require("./SessionList.cjs");
12
- const sessionListModel = require("./session-list-model.cjs");
12
+ const threads_sessionListModel = require("./session-list-model.cjs");
13
13
  const sessionRowParts = require("./session-row-parts.cjs");
14
14
  const sessionsPageModel = require("./sessions-page-model.cjs");
15
15
  const statewireThreadList = require("./statewire-thread-list.cjs");
@@ -103,7 +103,7 @@ const InboxRow = ({ row, isActive, list, onOpen, onDismiss }) => {
103
103
  children: row.title ?? "Untitled"
104
104
  }
105
105
  ),
106
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: sessionListModel.relativeTime(row.updatedAt) })
106
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shrink-0 text-[11px] text-muted-foreground", children: threads_sessionListModel.relativeTime(row.updatedAt) })
107
107
  ] }),
108
108
  excerpt ? /* @__PURE__ */ jsxRuntime.jsx("span", { "data-excerpt": true, className: "mt-0.5 line-clamp-2 break-words text-muted-foreground text-xs", children: excerpt }) : null,
109
109
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 flex", children: /* @__PURE__ */ jsxRuntime.jsx(sessionRowParts.StatusChip, { label: chip.label, tone: chip.tone, detail: row.nextAction }) })