@athenaintel/react 0.57.2 → 0.60.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 (852) hide show
  1. package/README.md +795 -12
  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 +0 -16
  46. package/dist/agent-runtime/src/composer-markdown.cjs.map +1 -1
  47. package/dist/agent-runtime/src/composer-markdown.d.ts +1 -1
  48. package/dist/agent-runtime/src/composer-markdown.js +1 -17
  49. package/dist/agent-runtime/src/composer-markdown.js.map +1 -1
  50. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs +3 -1
  51. package/dist/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
  52. package/dist/agent-runtime/src/deep-agent-transport-recipe.d.ts +8 -1
  53. package/dist/agent-runtime/src/deep-agent-transport-recipe.js +3 -1
  54. package/dist/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
  55. package/dist/agent-runtime/src/dictation-preferences.d.ts +356 -0
  56. package/dist/agent-runtime/src/dictation-record.d.ts +279 -0
  57. package/dist/agent-runtime/src/dictation-session.d.ts +106 -7
  58. package/dist/agent-runtime/src/dictation-snippets.d.ts +9 -0
  59. package/dist/agent-runtime/src/dictation-transfer.d.ts +142 -0
  60. package/dist/agent-runtime/src/edit-command.cjs.map +1 -1
  61. package/dist/agent-runtime/src/edit-command.d.ts +1 -1
  62. package/dist/agent-runtime/src/edit-command.js.map +1 -1
  63. package/dist/agent-runtime/src/errors.cjs +1 -0
  64. package/dist/agent-runtime/src/errors.cjs.map +1 -1
  65. package/dist/agent-runtime/src/errors.js +1 -0
  66. package/dist/agent-runtime/src/errors.js.map +1 -1
  67. package/dist/agent-runtime/src/generated/runconfig-contract.cjs +24 -0
  68. package/dist/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
  69. package/dist/agent-runtime/src/generated/runconfig-contract.d.ts +3 -3
  70. package/dist/agent-runtime/src/generated/runconfig-contract.js +24 -0
  71. package/dist/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
  72. package/dist/agent-runtime/src/index.d.ts +14 -8
  73. package/dist/agent-runtime/src/lane-follow.cjs +289 -0
  74. package/dist/agent-runtime/src/lane-follow.cjs.map +1 -0
  75. package/dist/agent-runtime/src/lane-follow.js +289 -0
  76. package/dist/agent-runtime/src/lane-follow.js.map +1 -0
  77. package/dist/agent-runtime/src/lane-images.cjs +387 -0
  78. package/dist/agent-runtime/src/lane-images.cjs.map +1 -0
  79. package/dist/agent-runtime/src/lane-images.js +387 -0
  80. package/dist/agent-runtime/src/lane-images.js.map +1 -0
  81. package/dist/agent-runtime/src/message-window.js +1 -1
  82. package/dist/agent-runtime/src/messages.cjs +19 -1
  83. package/dist/agent-runtime/src/messages.cjs.map +1 -1
  84. package/dist/agent-runtime/src/messages.d.ts +8 -0
  85. package/dist/agent-runtime/src/messages.js +21 -3
  86. package/dist/agent-runtime/src/messages.js.map +1 -1
  87. package/dist/agent-runtime/src/named-agents.cjs +301 -0
  88. package/dist/agent-runtime/src/named-agents.cjs.map +1 -0
  89. package/dist/agent-runtime/src/named-agents.d.ts +246 -0
  90. package/dist/agent-runtime/src/named-agents.js +301 -0
  91. package/dist/agent-runtime/src/named-agents.js.map +1 -0
  92. package/dist/agent-runtime/src/offline-status.cjs.map +1 -1
  93. package/dist/agent-runtime/src/offline-status.d.ts +93 -2
  94. package/dist/agent-runtime/src/offline-status.js.map +1 -1
  95. package/dist/agent-runtime/src/ptc-subcalls.cjs +41 -0
  96. package/dist/agent-runtime/src/ptc-subcalls.cjs.map +1 -0
  97. package/dist/agent-runtime/src/ptc-subcalls.js +41 -0
  98. package/dist/agent-runtime/src/ptc-subcalls.js.map +1 -0
  99. package/dist/agent-runtime/src/queue.cjs +2 -2
  100. package/dist/agent-runtime/src/queue.cjs.map +1 -1
  101. package/dist/agent-runtime/src/queue.d.ts +20 -25
  102. package/dist/agent-runtime/src/queue.js +2 -2
  103. package/dist/agent-runtime/src/queue.js.map +1 -1
  104. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs +314 -84
  105. package/dist/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
  106. package/dist/agent-runtime/src/quota-safe-local-storage-session.d.ts +137 -40
  107. package/dist/agent-runtime/src/quota-safe-local-storage-session.js +318 -88
  108. package/dist/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
  109. package/dist/agent-runtime/src/run-send.cjs +54 -0
  110. package/dist/agent-runtime/src/run-send.cjs.map +1 -0
  111. package/dist/agent-runtime/src/run-send.d.ts +51 -0
  112. package/dist/agent-runtime/src/run-send.js +54 -0
  113. package/dist/agent-runtime/src/run-send.js.map +1 -0
  114. package/dist/agent-runtime/src/running-tool-placeholder.cjs +6 -0
  115. package/dist/agent-runtime/src/running-tool-placeholder.cjs.map +1 -1
  116. package/dist/agent-runtime/src/running-tool-placeholder.js +6 -0
  117. package/dist/agent-runtime/src/running-tool-placeholder.js.map +1 -1
  118. package/dist/agent-runtime/src/runtime.d.ts +9 -5
  119. package/dist/agent-runtime/src/sealed-idb.cjs +64 -0
  120. package/dist/agent-runtime/src/sealed-idb.cjs.map +1 -1
  121. package/dist/agent-runtime/src/sealed-idb.d.ts +16 -0
  122. package/dist/agent-runtime/src/sealed-idb.js +64 -0
  123. package/dist/agent-runtime/src/sealed-idb.js.map +1 -1
  124. package/dist/agent-runtime/src/send-recovery.cjs +90 -118
  125. package/dist/agent-runtime/src/send-recovery.cjs.map +1 -1
  126. package/dist/agent-runtime/src/send-recovery.d.ts +25 -29
  127. package/dist/agent-runtime/src/send-recovery.js +90 -118
  128. package/dist/agent-runtime/src/send-recovery.js.map +1 -1
  129. package/dist/agent-runtime/src/statewire-diagnostics.d.ts +4 -1
  130. package/dist/agent-runtime/src/statewire-held-sends.cjs +191 -0
  131. package/dist/agent-runtime/src/statewire-held-sends.cjs.map +1 -0
  132. package/dist/agent-runtime/src/statewire-held-sends.d.ts +119 -0
  133. package/dist/agent-runtime/src/statewire-held-sends.js +191 -0
  134. package/dist/agent-runtime/src/statewire-held-sends.js.map +1 -0
  135. package/dist/agent-runtime/src/statewire-state.cjs +4 -0
  136. package/dist/agent-runtime/src/statewire-state.cjs.map +1 -1
  137. package/dist/agent-runtime/src/statewire-state.js +4 -0
  138. package/dist/agent-runtime/src/statewire-state.js.map +1 -1
  139. package/dist/agent-runtime/src/statewire-transport.cjs +8 -2
  140. package/dist/agent-runtime/src/statewire-transport.cjs.map +1 -1
  141. package/dist/agent-runtime/src/statewire-transport.d.ts +14 -5
  142. package/dist/agent-runtime/src/statewire-transport.js +8 -2
  143. package/dist/agent-runtime/src/statewire-transport.js.map +1 -1
  144. package/dist/agent-runtime/src/subagent-transcripts.cjs +1 -23
  145. package/dist/agent-runtime/src/subagent-transcripts.cjs.map +1 -1
  146. package/dist/agent-runtime/src/subagent-transcripts.js +3 -25
  147. package/dist/agent-runtime/src/subagent-transcripts.js.map +1 -1
  148. package/dist/agent-runtime/src/subagents.cjs +22 -29
  149. package/dist/agent-runtime/src/subagents.cjs.map +1 -1
  150. package/dist/agent-runtime/src/subagents.js +23 -30
  151. package/dist/agent-runtime/src/subagents.js.map +1 -1
  152. package/dist/agent-runtime/src/thread-extras.cjs +27 -19
  153. package/dist/agent-runtime/src/thread-extras.cjs.map +1 -1
  154. package/dist/agent-runtime/src/thread-extras.d.ts +19 -6
  155. package/dist/agent-runtime/src/thread-extras.js +27 -19
  156. package/dist/agent-runtime/src/thread-extras.js.map +1 -1
  157. package/dist/agent-runtime/src/thread-handoff-flow-machine.d.ts +8 -8
  158. package/dist/agent-runtime/src/tool-metadata.cjs +19 -0
  159. package/dist/agent-runtime/src/tool-metadata.cjs.map +1 -1
  160. package/dist/agent-runtime/src/tool-metadata.js +19 -0
  161. package/dist/agent-runtime/src/tool-metadata.js.map +1 -1
  162. package/dist/agent-runtime/src/tool-names.cjs +21 -0
  163. package/dist/agent-runtime/src/tool-names.cjs.map +1 -1
  164. package/dist/agent-runtime/src/tool-names.d.ts +8 -0
  165. package/dist/agent-runtime/src/tool-names.js +21 -0
  166. package/dist/agent-runtime/src/tool-names.js.map +1 -1
  167. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs +247 -0
  168. package/dist/agent-runtime/src/typed-interrupt-kinds.cjs.map +1 -0
  169. package/dist/agent-runtime/src/typed-interrupt-kinds.d.ts +173 -0
  170. package/dist/agent-runtime/src/typed-interrupt-kinds.js +247 -0
  171. package/dist/agent-runtime/src/typed-interrupt-kinds.js.map +1 -0
  172. package/dist/agent-runtime/src/typed-interrupts.cjs +48 -0
  173. package/dist/agent-runtime/src/typed-interrupts.cjs.map +1 -0
  174. package/dist/agent-runtime/src/typed-interrupts.d.ts +75 -0
  175. package/dist/agent-runtime/src/typed-interrupts.js +48 -0
  176. package/dist/agent-runtime/src/typed-interrupts.js.map +1 -0
  177. package/dist/agent-runtime/src/types.d.ts +1 -1
  178. package/dist/agent-runtime/src/use-conversation-list.cjs +1 -0
  179. package/dist/agent-runtime/src/use-conversation-list.cjs.map +1 -1
  180. package/dist/agent-runtime/src/use-conversation-list.d.ts +7 -0
  181. package/dist/agent-runtime/src/use-conversation-list.js +1 -0
  182. package/dist/agent-runtime/src/use-conversation-list.js.map +1 -1
  183. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs +46 -29
  184. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.cjs.map +1 -1
  185. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.d.ts +14 -22
  186. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js +46 -29
  187. package/dist/agent-runtime/src/use-deep-agent-chat-outbox.js.map +1 -1
  188. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs +78 -14
  189. package/dist/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -1
  190. package/dist/agent-runtime/src/use-deep-agent-runtime.d.ts +34 -7
  191. package/dist/agent-runtime/src/use-deep-agent-runtime.js +79 -15
  192. package/dist/agent-runtime/src/use-deep-agent-runtime.js.map +1 -1
  193. package/dist/agent-runtime/src/use-deep-agent-thread.cjs +16 -1
  194. package/dist/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
  195. package/dist/agent-runtime/src/use-deep-agent-thread.d.ts +7 -2
  196. package/dist/agent-runtime/src/use-deep-agent-thread.js +16 -1
  197. package/dist/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
  198. package/dist/agent-runtime/src/use-deep-agent-voice.cjs +30 -4
  199. package/dist/agent-runtime/src/use-deep-agent-voice.cjs.map +1 -1
  200. package/dist/agent-runtime/src/use-deep-agent-voice.d.ts +22 -4
  201. package/dist/agent-runtime/src/use-deep-agent-voice.js +30 -4
  202. package/dist/agent-runtime/src/use-deep-agent-voice.js.map +1 -1
  203. package/dist/agent-runtime/src/withdrawn-turns.d.ts +5 -4
  204. package/dist/agent-runtime/src/word-device-fit.d.ts +174 -0
  205. package/dist/agent-runtime/src/work-in.d.ts +127 -0
  206. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -1
  207. package/dist/assets/AthenaAssetEmbed.d.ts +6 -1
  208. package/dist/assets/AthenaAssetEmbed.js.map +1 -1
  209. package/dist/assets/asset-panel-store.cjs +13 -5
  210. package/dist/assets/asset-panel-store.cjs.map +1 -1
  211. package/dist/assets/asset-panel-store.d.ts +33 -2
  212. package/dist/assets/asset-panel-store.js +13 -5
  213. package/dist/assets/asset-panel-store.js.map +1 -1
  214. package/dist/auth/AthenaCredentialSourceContext.cjs +11 -0
  215. package/dist/auth/AthenaCredentialSourceContext.cjs.map +1 -1
  216. package/dist/auth/AthenaCredentialSourceContext.d.ts +6 -0
  217. package/dist/auth/AthenaCredentialSourceContext.js +11 -0
  218. package/dist/auth/AthenaCredentialSourceContext.js.map +1 -1
  219. package/dist/auth/account-identity.cjs +13 -2
  220. package/dist/auth/account-identity.cjs.map +1 -1
  221. package/dist/auth/account-identity.d.ts +9 -0
  222. package/dist/auth/account-identity.js +13 -2
  223. package/dist/auth/account-identity.js.map +1 -1
  224. package/dist/auth/credential-source.cjs +20 -4
  225. package/dist/auth/credential-source.cjs.map +1 -1
  226. package/dist/auth/credential-source.d.ts +9 -0
  227. package/dist/auth/credential-source.js +20 -4
  228. package/dist/auth/credential-source.js.map +1 -1
  229. package/dist/catalog/chat-pickers.cjs +31 -0
  230. package/dist/catalog/chat-pickers.cjs.map +1 -1
  231. package/dist/catalog/chat-pickers.d.ts +17 -0
  232. package/dist/catalog/chat-pickers.js +33 -2
  233. package/dist/catalog/chat-pickers.js.map +1 -1
  234. package/dist/catalog/runtime-catalog.cjs +63 -3
  235. package/dist/catalog/runtime-catalog.cjs.map +1 -1
  236. package/dist/catalog/runtime-catalog.d.ts +63 -3
  237. package/dist/catalog/runtime-catalog.js +64 -4
  238. package/dist/catalog/runtime-catalog.js.map +1 -1
  239. package/dist/chat/AthenaChat.cjs +301 -98
  240. package/dist/chat/AthenaChat.cjs.map +1 -1
  241. package/dist/chat/AthenaChat.d.ts +80 -4
  242. package/dist/chat/AthenaChat.js +302 -99
  243. package/dist/chat/AthenaChat.js.map +1 -1
  244. package/dist/chat/StatewireApprovalCard.cjs +35 -5
  245. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  246. package/dist/chat/StatewireApprovalCard.d.ts +55 -2
  247. package/dist/chat/StatewireApprovalCard.js +37 -7
  248. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  249. package/dist/chat/StatewireQueuedMessages.cjs +17 -2
  250. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  251. package/dist/chat/StatewireQueuedMessages.d.ts +8 -45
  252. package/dist/chat/StatewireQueuedMessages.js +18 -3
  253. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  254. package/dist/chat/chat-agent-mentions.cjs +70 -0
  255. package/dist/chat/chat-agent-mentions.cjs.map +1 -0
  256. package/dist/chat/chat-agent-mentions.d.ts +13 -0
  257. package/dist/chat/chat-agent-mentions.js +70 -0
  258. package/dist/chat/chat-agent-mentions.js.map +1 -0
  259. package/dist/chat/composer-actions.cjs +12 -0
  260. package/dist/chat/composer-actions.cjs.map +1 -0
  261. package/dist/chat/composer-actions.d.ts +22 -0
  262. package/dist/chat/composer-actions.js +12 -0
  263. package/dist/chat/composer-actions.js.map +1 -0
  264. package/dist/chat/follow-up-suggestions.cjs +185 -0
  265. package/dist/chat/follow-up-suggestions.cjs.map +1 -0
  266. package/dist/chat/follow-up-suggestions.d.ts +64 -0
  267. package/dist/chat/follow-up-suggestions.js +185 -0
  268. package/dist/chat/follow-up-suggestions.js.map +1 -0
  269. package/dist/chat/super-grouping/ToolTimeline.cjs +4 -3
  270. package/dist/chat/super-grouping/ToolTimeline.cjs.map +1 -1
  271. package/dist/chat/super-grouping/ToolTimeline.d.ts +7 -3
  272. package/dist/chat/super-grouping/ToolTimeline.js +4 -3
  273. package/dist/chat/super-grouping/ToolTimeline.js.map +1 -1
  274. package/dist/chat/turn-changes.cjs +284 -0
  275. package/dist/chat/turn-changes.cjs.map +1 -0
  276. package/dist/chat/turn-changes.d.ts +130 -0
  277. package/dist/chat/turn-changes.js +284 -0
  278. package/dist/chat/turn-changes.js.map +1 -0
  279. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs +31 -0
  280. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.cjs.map +1 -0
  281. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.d.ts +31 -0
  282. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js +31 -0
  283. package/dist/chat/typed-interrupts/StatewireTypedInterruptCard.js.map +1 -0
  284. package/dist/chat/typed-interrupts/approval-cards.cjs +250 -0
  285. package/dist/chat/typed-interrupts/approval-cards.cjs.map +1 -0
  286. package/dist/chat/typed-interrupts/approval-cards.d.ts +22 -0
  287. package/dist/chat/typed-interrupts/approval-cards.js +250 -0
  288. package/dist/chat/typed-interrupts/approval-cards.js.map +1 -0
  289. package/dist/chat/typed-interrupts/form-cards.cjs +289 -0
  290. package/dist/chat/typed-interrupts/form-cards.cjs.map +1 -0
  291. package/dist/chat/typed-interrupts/form-cards.d.ts +6 -0
  292. package/dist/chat/typed-interrupts/form-cards.js +289 -0
  293. package/dist/chat/typed-interrupts/form-cards.js.map +1 -0
  294. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs +182 -0
  295. package/dist/chat/typed-interrupts/interrupt-card-shell.cjs.map +1 -0
  296. package/dist/chat/typed-interrupts/interrupt-card-shell.d.ts +47 -0
  297. package/dist/chat/typed-interrupts/interrupt-card-shell.js +182 -0
  298. package/dist/chat/typed-interrupts/interrupt-card-shell.js.map +1 -0
  299. package/dist/chat/typed-interrupts/json-schema-form.cjs +388 -0
  300. package/dist/chat/typed-interrupts/json-schema-form.cjs.map +1 -0
  301. package/dist/chat/typed-interrupts/json-schema-form.d.ts +33 -0
  302. package/dist/chat/typed-interrupts/json-schema-form.js +388 -0
  303. package/dist/chat/typed-interrupts/json-schema-form.js.map +1 -0
  304. package/dist/chat/typed-interrupts/questionnaire-card.cjs +449 -0
  305. package/dist/chat/typed-interrupts/questionnaire-card.cjs.map +1 -0
  306. package/dist/chat/typed-interrupts/questionnaire-card.d.ts +20 -0
  307. package/dist/chat/typed-interrupts/questionnaire-card.js +449 -0
  308. package/dist/chat/typed-interrupts/questionnaire-card.js.map +1 -0
  309. package/dist/chat/typed-interrupts/request-file-card.cjs +159 -0
  310. package/dist/chat/typed-interrupts/request-file-card.cjs.map +1 -0
  311. package/dist/chat/typed-interrupts/request-file-card.d.ts +2 -0
  312. package/dist/chat/typed-interrupts/request-file-card.js +159 -0
  313. package/dist/chat/typed-interrupts/request-file-card.js.map +1 -0
  314. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs +189 -0
  315. package/dist/chat/typed-interrupts/toolkit-selection-card.cjs.map +1 -0
  316. package/dist/chat/typed-interrupts/toolkit-selection-card.d.ts +23 -0
  317. package/dist/chat/typed-interrupts/toolkit-selection-card.js +189 -0
  318. package/dist/chat/typed-interrupts/toolkit-selection-card.js.map +1 -0
  319. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs +26 -0
  320. package/dist/chat/typed-interrupts/typed-interrupt-body.cjs.map +1 -0
  321. package/dist/chat/typed-interrupts/typed-interrupt-body.d.ts +3 -0
  322. package/dist/chat/typed-interrupts/typed-interrupt-body.js +26 -0
  323. package/dist/chat/typed-interrupts/typed-interrupt-body.js.map +1 -0
  324. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs +105 -0
  325. package/dist/chat/typed-interrupts/typed-interrupt-graphql.cjs.map +1 -0
  326. package/dist/chat/typed-interrupts/typed-interrupt-graphql.d.ts +29 -0
  327. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js +105 -0
  328. package/dist/chat/typed-interrupts/typed-interrupt-graphql.js.map +1 -0
  329. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs +70 -0
  330. package/dist/chat/typed-interrupts/typed-interrupt-notice.cjs.map +1 -0
  331. package/dist/chat/typed-interrupts/typed-interrupt-notice.d.ts +45 -0
  332. package/dist/chat/typed-interrupts/typed-interrupt-notice.js +70 -0
  333. package/dist/chat/typed-interrupts/typed-interrupt-notice.js.map +1 -0
  334. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs +76 -0
  335. package/dist/chat/typed-interrupts/typed-interrupt-panel.cjs.map +1 -0
  336. package/dist/chat/typed-interrupts/typed-interrupt-panel.d.ts +11 -0
  337. package/dist/chat/typed-interrupts/typed-interrupt-panel.js +76 -0
  338. package/dist/chat/typed-interrupts/typed-interrupt-panel.js.map +1 -0
  339. package/dist/chat/typed-interrupts/typed-interrupt-types.d.ts +46 -0
  340. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs +106 -0
  341. package/dist/chat/typed-interrupts/use-interrupt-draft.cjs.map +1 -0
  342. package/dist/chat/typed-interrupts/use-interrupt-draft.d.ts +29 -0
  343. package/dist/chat/typed-interrupts/use-interrupt-draft.js +106 -0
  344. package/dist/chat/typed-interrupts/use-interrupt-draft.js.map +1 -0
  345. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs +231 -0
  346. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.cjs.map +1 -0
  347. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.d.ts +66 -0
  348. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js +231 -0
  349. package/dist/chat/typed-interrupts/use-statewire-typed-interrupt.js.map +1 -0
  350. package/dist/chat-ui/composer/composer-named-agents.cjs +13 -0
  351. package/dist/chat-ui/composer/composer-named-agents.cjs.map +1 -0
  352. package/dist/chat-ui/composer/composer-named-agents.d.ts +20 -0
  353. package/dist/chat-ui/composer/composer-named-agents.js +13 -0
  354. package/dist/chat-ui/composer/composer-named-agents.js.map +1 -0
  355. package/dist/chat-ui/composer/slash-command-menu.cjs +143 -0
  356. package/dist/chat-ui/composer/slash-command-menu.cjs.map +1 -0
  357. package/dist/chat-ui/composer/slash-command-menu.d.ts +19 -0
  358. package/dist/chat-ui/composer/slash-command-menu.js +143 -0
  359. package/dist/chat-ui/composer/slash-command-menu.js.map +1 -0
  360. package/dist/chat-ui/composer/slash-commands-extension.cjs +51 -0
  361. package/dist/chat-ui/composer/slash-commands-extension.cjs.map +1 -0
  362. package/dist/chat-ui/composer/slash-commands-extension.d.ts +39 -0
  363. package/dist/chat-ui/composer/slash-commands-extension.js +51 -0
  364. package/dist/chat-ui/composer/slash-commands-extension.js.map +1 -0
  365. package/dist/chat-ui/composer/slash-commands.cjs +74 -0
  366. package/dist/chat-ui/composer/slash-commands.cjs.map +1 -0
  367. package/dist/chat-ui/composer/slash-commands.d.ts +82 -0
  368. package/dist/chat-ui/composer/slash-commands.js +74 -0
  369. package/dist/chat-ui/composer/slash-commands.js.map +1 -0
  370. package/dist/chat-ui/composer/tiptap-composer.cjs +135 -9
  371. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  372. package/dist/chat-ui/composer/tiptap-composer.d.ts +61 -2
  373. package/dist/chat-ui/composer/tiptap-composer.js +135 -9
  374. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  375. package/dist/chat-ui/index.cjs +5 -0
  376. package/dist/chat-ui/index.cjs.map +1 -1
  377. package/dist/chat-ui/index.d.ts +4 -2
  378. package/dist/chat-ui/index.js +5 -0
  379. package/dist/chat-ui/index.js.map +1 -1
  380. package/dist/chat-ui/mentions/mention-chip.cjs +10 -4
  381. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  382. package/dist/chat-ui/mentions/mention-chip.js +11 -5
  383. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  384. package/dist/chat-ui/mentions/mention-extension.cjs +8 -1
  385. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -1
  386. package/dist/chat-ui/mentions/mention-extension.js +8 -1
  387. package/dist/chat-ui/mentions/mention-extension.js.map +1 -1
  388. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +1 -0
  389. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -1
  390. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +1 -0
  391. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -1
  392. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +20 -2
  393. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -1
  394. package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +10 -1
  395. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +22 -4
  396. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -1
  397. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +1 -1
  398. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -1
  399. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +1 -1
  400. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -1
  401. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +45 -0
  402. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -1
  403. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +48 -0
  404. package/dist/chat-ui/mentions/suggestions/data/api-client.js +45 -0
  405. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -1
  406. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.cjs +89 -0
  407. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.cjs.map +1 -0
  408. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.d.ts +8 -0
  409. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.js +89 -0
  410. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icon-names.generated.js.map +1 -0
  411. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +140 -116
  412. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -1
  413. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.d.ts +46 -12
  414. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +141 -117
  415. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -1
  416. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +272 -25
  417. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -1
  418. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +88 -10
  419. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +274 -27
  420. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -1
  421. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -1
  422. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +27 -1
  423. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -1
  424. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +56 -5
  425. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -1
  426. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +26 -6
  427. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +57 -6
  428. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -1
  429. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +34 -17
  430. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -1
  431. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.d.ts +19 -1
  432. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +35 -18
  433. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -1
  434. package/dist/chat-ui/mentions/use-asset-icon-app-url.cjs +12 -0
  435. package/dist/chat-ui/mentions/use-asset-icon-app-url.cjs.map +1 -0
  436. package/dist/chat-ui/mentions/use-asset-icon-app-url.d.ts +8 -0
  437. package/dist/chat-ui/mentions/use-asset-icon-app-url.js +12 -0
  438. package/dist/chat-ui/mentions/use-asset-icon-app-url.js.map +1 -0
  439. package/dist/chat-ui/statewire.d.ts +1 -1
  440. package/dist/chat-ui/thread/statewire-history-edge.cjs +15 -0
  441. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
  442. package/dist/chat-ui/thread/statewire-history-edge.d.ts +4 -1
  443. package/dist/chat-ui/thread/statewire-history-edge.js +15 -0
  444. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
  445. package/dist/collab/client.cjs +41 -6
  446. package/dist/collab/client.cjs.map +1 -1
  447. package/dist/collab/client.d.ts +38 -7
  448. package/dist/collab/client.js +41 -6
  449. package/dist/collab/client.js.map +1 -1
  450. package/dist/composer/ComposerAttachedReferences.cjs +119 -0
  451. package/dist/composer/ComposerAttachedReferences.cjs.map +1 -0
  452. package/dist/composer/ComposerAttachedReferences.d.ts +26 -0
  453. package/dist/composer/ComposerAttachedReferences.js +119 -0
  454. package/dist/composer/ComposerAttachedReferences.js.map +1 -0
  455. package/dist/composer/ComposerNamedAgents.cjs +63 -0
  456. package/dist/composer/ComposerNamedAgents.cjs.map +1 -0
  457. package/dist/composer/ComposerNamedAgents.d.ts +16 -0
  458. package/dist/composer/ComposerNamedAgents.js +63 -0
  459. package/dist/composer/ComposerNamedAgents.js.map +1 -0
  460. package/dist/composer/attached-references.cjs +159 -0
  461. package/dist/composer/attached-references.cjs.map +1 -0
  462. package/dist/composer/attached-references.d.ts +86 -0
  463. package/dist/composer/attached-references.js +159 -0
  464. package/dist/composer/attached-references.js.map +1 -0
  465. package/dist/composer/build-composed-message.cjs +14 -7
  466. package/dist/composer/build-composed-message.cjs.map +1 -1
  467. package/dist/composer/build-composed-message.d.ts +6 -1
  468. package/dist/composer/build-composed-message.js +14 -7
  469. package/dist/composer/build-composed-message.js.map +1 -1
  470. package/dist/composer/composer-handoff.cjs +6 -2
  471. package/dist/composer/composer-handoff.cjs.map +1 -1
  472. package/dist/composer/composer-handoff.d.ts +7 -1
  473. package/dist/composer/composer-handoff.js +6 -2
  474. package/dist/composer/composer-handoff.js.map +1 -1
  475. package/dist/composer/folder-upload.cjs +149 -0
  476. package/dist/composer/folder-upload.cjs.map +1 -0
  477. package/dist/composer/folder-upload.d.ts +79 -0
  478. package/dist/composer/folder-upload.js +149 -0
  479. package/dist/composer/folder-upload.js.map +1 -0
  480. package/dist/composer/index.d.ts +1 -1
  481. package/dist/composer/staged-message-metadata.cjs +12 -0
  482. package/dist/composer/staged-message-metadata.cjs.map +1 -0
  483. package/dist/composer/staged-message-metadata.d.ts +15 -0
  484. package/dist/composer/staged-message-metadata.js +12 -0
  485. package/dist/composer/staged-message-metadata.js.map +1 -0
  486. package/dist/composer/useAttachToChat.cjs +35 -0
  487. package/dist/composer/useAttachToChat.cjs.map +1 -0
  488. package/dist/composer/useAttachToChat.d.ts +54 -0
  489. package/dist/composer/useAttachToChat.js +35 -0
  490. package/dist/composer/useAttachToChat.js.map +1 -0
  491. package/dist/composer/useAttachedReferencesComposerProps.cjs +19 -0
  492. package/dist/composer/useAttachedReferencesComposerProps.cjs.map +1 -0
  493. package/dist/composer/useAttachedReferencesComposerProps.d.ts +12 -0
  494. package/dist/composer/useAttachedReferencesComposerProps.js +19 -0
  495. package/dist/composer/useAttachedReferencesComposerProps.js.map +1 -0
  496. package/dist/composer/useFileUpload.cjs +95 -7
  497. package/dist/composer/useFileUpload.cjs.map +1 -1
  498. package/dist/composer/useFileUpload.d.ts +21 -2
  499. package/dist/composer/useFileUpload.js +95 -7
  500. package/dist/composer/useFileUpload.js.map +1 -1
  501. package/dist/data/athena-api-error.cjs +125 -0
  502. package/dist/data/athena-api-error.cjs.map +1 -0
  503. package/dist/data/athena-api-error.d.ts +96 -0
  504. package/dist/data/athena-api-error.js +125 -0
  505. package/dist/data/athena-api-error.js.map +1 -0
  506. package/dist/data/athena-data-client.cjs +106 -0
  507. package/dist/data/athena-data-client.cjs.map +1 -0
  508. package/dist/data/athena-data-client.d.ts +74 -0
  509. package/dist/data/athena-data-client.js +106 -0
  510. package/dist/data/athena-data-client.js.map +1 -0
  511. package/dist/data/athena-member.cjs +93 -0
  512. package/dist/data/athena-member.cjs.map +1 -0
  513. package/dist/data/athena-member.d.ts +125 -0
  514. package/dist/data/athena-member.js +93 -0
  515. package/dist/data/athena-member.js.map +1 -0
  516. package/dist/data/athena-request.cjs +460 -0
  517. package/dist/data/athena-request.cjs.map +1 -0
  518. package/dist/data/athena-request.d.ts +120 -0
  519. package/dist/data/athena-request.js +460 -0
  520. package/dist/data/athena-request.js.map +1 -0
  521. package/dist/data/use-athena-fetch.cjs +14 -0
  522. package/dist/data/use-athena-fetch.cjs.map +1 -0
  523. package/dist/data/use-athena-fetch.d.ts +19 -0
  524. package/dist/data/use-athena-fetch.js +14 -0
  525. package/dist/data/use-athena-fetch.js.map +1 -0
  526. package/dist/data/use-athena-graphql.cjs +66 -0
  527. package/dist/data/use-athena-graphql.cjs.map +1 -0
  528. package/dist/data/use-athena-graphql.d.ts +56 -0
  529. package/dist/data/use-athena-graphql.js +66 -0
  530. package/dist/data/use-athena-graphql.js.map +1 -0
  531. package/dist/data/use-athena-rest.cjs +33 -0
  532. package/dist/data/use-athena-rest.cjs.map +1 -0
  533. package/dist/data/use-athena-rest.d.ts +21 -0
  534. package/dist/data/use-athena-rest.js +33 -0
  535. package/dist/data/use-athena-rest.js.map +1 -0
  536. package/dist/data/use-semantic-query.cjs +44 -0
  537. package/dist/data/use-semantic-query.cjs.map +1 -0
  538. package/dist/data/use-semantic-query.d.ts +92 -0
  539. package/dist/data/use-semantic-query.js +44 -0
  540. package/dist/data/use-semantic-query.js.map +1 -0
  541. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -1
  542. package/dist/diagnostics/athena-diagnostics.d.ts +5 -1
  543. package/dist/diagnostics/athena-diagnostics.js.map +1 -1
  544. package/dist/diagnostics/errors.cjs +7 -0
  545. package/dist/diagnostics/errors.cjs.map +1 -1
  546. package/dist/diagnostics/errors.d.ts +7 -0
  547. package/dist/diagnostics/errors.js +7 -0
  548. package/dist/diagnostics/errors.js.map +1 -1
  549. package/dist/index.cjs +155 -11
  550. package/dist/index.cjs.map +1 -1
  551. package/dist/index.d.ts +72 -13
  552. package/dist/index.js +148 -4
  553. package/dist/index.js.map +1 -1
  554. package/dist/keryx-http/src/initial-sync.cjs +64 -16
  555. package/dist/keryx-http/src/initial-sync.cjs.map +1 -1
  556. package/dist/keryx-http/src/initial-sync.d.ts +31 -1
  557. package/dist/keryx-http/src/initial-sync.js +64 -16
  558. package/dist/keryx-http/src/initial-sync.js.map +1 -1
  559. package/dist/keryx-http/src/own-awareness.cjs +20 -0
  560. package/dist/keryx-http/src/own-awareness.cjs.map +1 -0
  561. package/dist/keryx-http/src/own-awareness.d.ts +50 -0
  562. package/dist/keryx-http/src/own-awareness.js +20 -0
  563. package/dist/keryx-http/src/own-awareness.js.map +1 -0
  564. package/dist/keryx-http/src/update-attributions.cjs +26 -1
  565. package/dist/keryx-http/src/update-attributions.cjs.map +1 -1
  566. package/dist/keryx-http/src/update-attributions.d.ts +10 -1
  567. package/dist/keryx-http/src/update-attributions.js +26 -1
  568. package/dist/keryx-http/src/update-attributions.js.map +1 -1
  569. package/dist/offline/chat-outbox.cjs +262 -26
  570. package/dist/offline/chat-outbox.cjs.map +1 -1
  571. package/dist/offline/chat-outbox.d.ts +90 -12
  572. package/dist/offline/chat-outbox.js +263 -27
  573. package/dist/offline/chat-outbox.js.map +1 -1
  574. package/dist/provider/AthenaProvider.cjs +60 -22
  575. package/dist/provider/AthenaProvider.cjs.map +1 -1
  576. package/dist/provider/AthenaProvider.d.ts +24 -8
  577. package/dist/provider/AthenaProvider.js +61 -23
  578. package/dist/provider/AthenaProvider.js.map +1 -1
  579. package/dist/react/package.json.cjs +1 -1
  580. package/dist/react/package.json.js +1 -1
  581. package/dist/references/src/anchors/parse.cjs +11 -1
  582. package/dist/references/src/anchors/parse.cjs.map +1 -1
  583. package/dist/references/src/anchors/parse.js +11 -1
  584. package/dist/references/src/anchors/parse.js.map +1 -1
  585. package/dist/references/src/anchors/schemas.d.ts +1 -0
  586. package/dist/references/src/anchors/serialize.cjs +1 -0
  587. package/dist/references/src/anchors/serialize.cjs.map +1 -1
  588. package/dist/references/src/anchors/serialize.js +1 -0
  589. package/dist/references/src/anchors/serialize.js.map +1 -1
  590. package/dist/references/src/anchors/types.cjs +5 -0
  591. package/dist/references/src/anchors/types.cjs.map +1 -1
  592. package/dist/references/src/anchors/types.d.ts +9 -0
  593. package/dist/references/src/anchors/types.js +5 -0
  594. package/dist/references/src/anchors/types.js.map +1 -1
  595. package/dist/references/src/attachable.cjs +149 -0
  596. package/dist/references/src/attachable.cjs.map +1 -0
  597. package/dist/references/src/attachable.d.ts +87 -0
  598. package/dist/references/src/attachable.js +149 -0
  599. package/dist/references/src/attachable.js.map +1 -0
  600. package/dist/references/src/schemas.d.ts +2 -0
  601. package/dist/runtime/StatewirePlanModeLaneSync.cjs +93 -0
  602. package/dist/runtime/StatewirePlanModeLaneSync.cjs.map +1 -0
  603. package/dist/runtime/StatewirePlanModeLaneSync.d.ts +34 -0
  604. package/dist/runtime/StatewirePlanModeLaneSync.js +93 -0
  605. package/dist/runtime/StatewirePlanModeLaneSync.js.map +1 -0
  606. package/dist/runtime/StatewireThreadConfigLaneSync.cjs +2 -0
  607. package/dist/runtime/StatewireThreadConfigLaneSync.cjs.map +1 -1
  608. package/dist/runtime/StatewireThreadConfigLaneSync.d.ts +4 -0
  609. package/dist/runtime/StatewireThreadConfigLaneSync.js +2 -0
  610. package/dist/runtime/StatewireThreadConfigLaneSync.js.map +1 -1
  611. package/dist/runtime/statewire-plan-mode.cjs +71 -0
  612. package/dist/runtime/statewire-plan-mode.cjs.map +1 -0
  613. package/dist/runtime/statewire-plan-mode.d.ts +88 -0
  614. package/dist/runtime/statewire-plan-mode.js +71 -0
  615. package/dist/runtime/statewire-plan-mode.js.map +1 -0
  616. package/dist/runtime/statewire-run-config.cjs +3 -1
  617. package/dist/runtime/statewire-run-config.cjs.map +1 -1
  618. package/dist/runtime/statewire-run-config.d.ts +7 -0
  619. package/dist/runtime/statewire-run-config.js +3 -1
  620. package/dist/runtime/statewire-run-config.js.map +1 -1
  621. package/dist/runtime/statewire-session-key.cjs +11 -5
  622. package/dist/runtime/statewire-session-key.cjs.map +1 -1
  623. package/dist/runtime/statewire-session-key.d.ts +22 -10
  624. package/dist/runtime/statewire-session-key.js +11 -5
  625. package/dist/runtime/statewire-session-key.js.map +1 -1
  626. package/dist/runtime/useAthenaStatewireRuntime.cjs +64 -9
  627. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  628. package/dist/runtime/useAthenaStatewireRuntime.d.ts +26 -10
  629. package/dist/runtime/useAthenaStatewireRuntime.js +66 -11
  630. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  631. package/dist/search/useAthenaAssets.cjs +394 -0
  632. package/dist/search/useAthenaAssets.cjs.map +1 -0
  633. package/dist/search/useAthenaAssets.d.ts +186 -0
  634. package/dist/search/useAthenaAssets.js +394 -0
  635. package/dist/search/useAthenaAssets.js.map +1 -0
  636. package/dist/sheet-range/index.cjs +4 -0
  637. package/dist/sheet-range/index.cjs.map +1 -1
  638. package/dist/sheet-range/index.d.ts +4 -2
  639. package/dist/sheet-range/index.js +4 -0
  640. package/dist/sheet-range/index.js.map +1 -1
  641. package/dist/sheet-range/query-range.cjs +102 -0
  642. package/dist/sheet-range/query-range.cjs.map +1 -0
  643. package/dist/sheet-range/query-range.d.ts +46 -0
  644. package/dist/sheet-range/query-range.js +102 -0
  645. package/dist/sheet-range/query-range.js.map +1 -0
  646. package/dist/styles.css +1 -1
  647. package/dist/subagents/index.cjs +49 -0
  648. package/dist/subagents/index.cjs.map +1 -0
  649. package/dist/subagents/index.d.ts +16 -0
  650. package/dist/subagents/index.js +49 -0
  651. package/dist/subagents/index.js.map +1 -0
  652. package/dist/subagents/lane-follow.cjs +19 -0
  653. package/dist/subagents/lane-follow.cjs.map +1 -0
  654. package/dist/subagents/lane-follow.d.ts +9 -0
  655. package/dist/subagents/lane-follow.js +19 -0
  656. package/dist/subagents/lane-follow.js.map +1 -0
  657. package/dist/subagents/lane-model.cjs +178 -0
  658. package/dist/subagents/lane-model.cjs.map +1 -0
  659. package/dist/subagents/lane-model.d.ts +140 -0
  660. package/dist/subagents/lane-model.js +178 -0
  661. package/dist/subagents/lane-model.js.map +1 -0
  662. package/dist/subagents/lane-parts.cjs +517 -0
  663. package/dist/subagents/lane-parts.cjs.map +1 -0
  664. package/dist/subagents/lane-parts.d.ts +130 -0
  665. package/dist/subagents/lane-parts.js +517 -0
  666. package/dist/subagents/lane-parts.js.map +1 -0
  667. package/dist/subagents/subagent-lane-group.cjs +215 -0
  668. package/dist/subagents/subagent-lane-group.cjs.map +1 -0
  669. package/dist/subagents/subagent-lane-group.d.ts +67 -0
  670. package/dist/subagents/subagent-lane-group.js +215 -0
  671. package/dist/subagents/subagent-lane-group.js.map +1 -0
  672. package/dist/subagents/subagent-transcript-drawer.cjs +431 -0
  673. package/dist/subagents/subagent-transcript-drawer.cjs.map +1 -0
  674. package/dist/subagents/subagent-transcript-drawer.d.ts +78 -0
  675. package/dist/subagents/subagent-transcript-drawer.js +431 -0
  676. package/dist/subagents/subagent-transcript-drawer.js.map +1 -0
  677. package/dist/subagents/task-subagent-group.cjs +115 -0
  678. package/dist/subagents/task-subagent-group.cjs.map +1 -0
  679. package/dist/subagents/task-subagent-group.d.ts +36 -0
  680. package/dist/subagents/task-subagent-group.js +115 -0
  681. package/dist/subagents/task-subagent-group.js.map +1 -0
  682. package/dist/subagents/use-omitted-images-in-view.cjs +68 -0
  683. package/dist/subagents/use-omitted-images-in-view.cjs.map +1 -0
  684. package/dist/subagents/use-omitted-images-in-view.d.ts +21 -0
  685. package/dist/subagents/use-omitted-images-in-view.js +68 -0
  686. package/dist/subagents/use-omitted-images-in-view.js.map +1 -0
  687. package/dist/threads/Inbox.cjs +2 -2
  688. package/dist/threads/Inbox.cjs.map +1 -1
  689. package/dist/threads/SessionList.cjs +6 -6
  690. package/dist/threads/SessionList.cjs.map +1 -1
  691. package/dist/threads/SessionsPage.cjs +13 -7
  692. package/dist/threads/SessionsPage.cjs.map +1 -1
  693. package/dist/threads/SessionsPage.d.ts +10 -1
  694. package/dist/threads/SessionsPage.js +9 -3
  695. package/dist/threads/SessionsPage.js.map +1 -1
  696. package/dist/threads/session-list-model.cjs.map +1 -1
  697. package/dist/threads/session-list-model.d.ts +2 -1
  698. package/dist/threads/session-list-model.js.map +1 -1
  699. package/dist/threads/session-row-parts.cjs +3 -3
  700. package/dist/threads/session-row-parts.cjs.map +1 -1
  701. package/dist/threads/sessions-page-model.cjs +13 -5
  702. package/dist/threads/sessions-page-model.cjs.map +1 -1
  703. package/dist/threads/sessions-page-model.d.ts +7 -0
  704. package/dist/threads/sessions-page-model.js +11 -3
  705. package/dist/threads/sessions-page-model.js.map +1 -1
  706. package/dist/threads/sessions-page-storage.cjs +8 -8
  707. package/dist/threads/sessions-page-storage.cjs.map +1 -1
  708. package/dist/threads/sessions-page-storage.d.ts +5 -1
  709. package/dist/threads/sessions-page-storage.js +8 -8
  710. package/dist/threads/sessions-page-storage.js.map +1 -1
  711. package/dist/threads/statewire-thread-list.cjs +14 -2
  712. package/dist/threads/statewire-thread-list.cjs.map +1 -1
  713. package/dist/threads/statewire-thread-list.d.ts +11 -2
  714. package/dist/threads/statewire-thread-list.js +14 -2
  715. package/dist/threads/statewire-thread-list.js.map +1 -1
  716. package/dist/threads/use-athena-sessions.cjs +1 -0
  717. package/dist/threads/use-athena-sessions.cjs.map +1 -1
  718. package/dist/threads/use-athena-sessions.d.ts +7 -0
  719. package/dist/threads/use-athena-sessions.js +1 -0
  720. package/dist/threads/use-athena-sessions.js.map +1 -1
  721. package/dist/threads/use-athena-thread-agent.cjs +31 -0
  722. package/dist/threads/use-athena-thread-agent.cjs.map +1 -0
  723. package/dist/threads/use-athena-thread-agent.d.ts +38 -0
  724. package/dist/threads/use-athena-thread-agent.js +31 -0
  725. package/dist/threads/use-athena-thread-agent.js.map +1 -0
  726. package/dist/threads/use-athena-thread-plan-mode.cjs +18 -0
  727. package/dist/threads/use-athena-thread-plan-mode.cjs.map +1 -0
  728. package/dist/threads/use-athena-thread-plan-mode.d.ts +18 -0
  729. package/dist/threads/use-athena-thread-plan-mode.js +18 -0
  730. package/dist/threads/use-athena-thread-plan-mode.js.map +1 -0
  731. package/dist/threads/use-rest-conversation-history.d.ts +1 -0
  732. package/dist/tools/agent-creations.cjs +97 -0
  733. package/dist/tools/agent-creations.cjs.map +1 -0
  734. package/dist/tools/agent-creations.d.ts +38 -0
  735. package/dist/tools/agent-creations.js +97 -0
  736. package/dist/tools/agent-creations.js.map +1 -0
  737. package/dist/tools/agent-highlights.cjs +100 -0
  738. package/dist/tools/agent-highlights.cjs.map +1 -0
  739. package/dist/tools/agent-highlights.d.ts +57 -0
  740. package/dist/tools/agent-highlights.js +100 -0
  741. package/dist/tools/agent-highlights.js.map +1 -0
  742. package/dist/tools/append-document-tool-ui.cjs +1 -0
  743. package/dist/tools/append-document-tool-ui.cjs.map +1 -1
  744. package/dist/tools/append-document-tool-ui.d.ts +7 -0
  745. package/dist/tools/append-document-tool-ui.js +2 -1
  746. package/dist/tools/append-document-tool-ui.js.map +1 -1
  747. package/dist/tools/auto-open-tools.cjs +144 -71
  748. package/dist/tools/auto-open-tools.cjs.map +1 -1
  749. package/dist/tools/auto-open-tools.d.ts +131 -1
  750. package/dist/tools/auto-open-tools.js +145 -72
  751. package/dist/tools/auto-open-tools.js.map +1 -1
  752. package/dist/tools/browser-tool-uis.cjs +594 -0
  753. package/dist/tools/browser-tool-uis.cjs.map +1 -0
  754. package/dist/tools/browser-tool-uis.d.ts +8 -0
  755. package/dist/tools/browser-tool-uis.js +594 -0
  756. package/dist/tools/browser-tool-uis.js.map +1 -0
  757. package/dist/tools/computer-asset-tool-uis.cjs +313 -0
  758. package/dist/tools/computer-asset-tool-uis.cjs.map +1 -0
  759. package/dist/tools/computer-asset-tool-uis.d.ts +5 -0
  760. package/dist/tools/computer-asset-tool-uis.js +313 -0
  761. package/dist/tools/computer-asset-tool-uis.js.map +1 -0
  762. package/dist/tools/document-edit-tool-uis.cjs +218 -0
  763. package/dist/tools/document-edit-tool-uis.cjs.map +1 -0
  764. package/dist/tools/document-edit-tool-uis.d.ts +40 -0
  765. package/dist/tools/document-edit-tool-uis.js +218 -0
  766. package/dist/tools/document-edit-tool-uis.js.map +1 -0
  767. package/dist/tools/drive-tool-uis.cjs +429 -0
  768. package/dist/tools/drive-tool-uis.cjs.map +1 -0
  769. package/dist/tools/drive-tool-uis.d.ts +121 -0
  770. package/dist/tools/drive-tool-uis.js +429 -0
  771. package/dist/tools/drive-tool-uis.js.map +1 -0
  772. package/dist/tools/email-calendar-tool-uis.cjs +789 -0
  773. package/dist/tools/email-calendar-tool-uis.cjs.map +1 -0
  774. package/dist/tools/email-calendar-tool-uis.d.ts +129 -0
  775. package/dist/tools/email-calendar-tool-uis.js +789 -0
  776. package/dist/tools/email-calendar-tool-uis.js.map +1 -0
  777. package/dist/tools/ontology-tool-uis.cjs +83 -0
  778. package/dist/tools/ontology-tool-uis.cjs.map +1 -0
  779. package/dist/tools/ontology-tool-uis.d.ts +9 -0
  780. package/dist/tools/ontology-tool-uis.js +83 -0
  781. package/dist/tools/ontology-tool-uis.js.map +1 -0
  782. package/dist/tools/orchestration-tool-uis.cjs +586 -0
  783. package/dist/tools/orchestration-tool-uis.cjs.map +1 -0
  784. package/dist/tools/orchestration-tool-uis.d.ts +141 -0
  785. package/dist/tools/orchestration-tool-uis.js +586 -0
  786. package/dist/tools/orchestration-tool-uis.js.map +1 -0
  787. package/dist/tools/presentation-edit-tool-uis.cjs +516 -0
  788. package/dist/tools/presentation-edit-tool-uis.cjs.map +1 -0
  789. package/dist/tools/presentation-edit-tool-uis.d.ts +73 -0
  790. package/dist/tools/presentation-edit-tool-uis.js +516 -0
  791. package/dist/tools/presentation-edit-tool-uis.js.map +1 -0
  792. package/dist/tools/project-tool-uis.cjs +213 -0
  793. package/dist/tools/project-tool-uis.cjs.map +1 -0
  794. package/dist/tools/project-tool-uis.d.ts +14 -0
  795. package/dist/tools/project-tool-uis.js +213 -0
  796. package/dist/tools/project-tool-uis.js.map +1 -0
  797. package/dist/tools/sandbox-tool-uis.cjs +491 -0
  798. package/dist/tools/sandbox-tool-uis.cjs.map +1 -0
  799. package/dist/tools/sandbox-tool-uis.d.ts +116 -0
  800. package/dist/tools/sandbox-tool-uis.js +491 -0
  801. package/dist/tools/sandbox-tool-uis.js.map +1 -0
  802. package/dist/tools/sheet-query-tool-ui.cjs +138 -0
  803. package/dist/tools/sheet-query-tool-ui.cjs.map +1 -0
  804. package/dist/tools/sheet-query-tool-ui.d.ts +15 -0
  805. package/dist/tools/sheet-query-tool-ui.js +138 -0
  806. package/dist/tools/sheet-query-tool-ui.js.map +1 -0
  807. package/dist/tools/studio-screenshot-tool-uis.cjs +262 -0
  808. package/dist/tools/studio-screenshot-tool-uis.cjs.map +1 -0
  809. package/dist/tools/studio-screenshot-tool-uis.d.ts +52 -0
  810. package/dist/tools/studio-screenshot-tool-uis.js +262 -0
  811. package/dist/tools/studio-screenshot-tool-uis.js.map +1 -0
  812. package/dist/tools/subagent-task-tool-ui.cjs +24 -475
  813. package/dist/tools/subagent-task-tool-ui.cjs.map +1 -1
  814. package/dist/tools/subagent-task-tool-ui.d.ts +19 -103
  815. package/dist/tools/subagent-task-tool-ui.js +28 -479
  816. package/dist/tools/subagent-task-tool-ui.js.map +1 -1
  817. package/dist/tools/tool-summary.cjs +36 -0
  818. package/dist/tools/tool-summary.cjs.map +1 -1
  819. package/dist/tools/tool-summary.js +36 -0
  820. package/dist/tools/tool-summary.js.map +1 -1
  821. package/dist/tools/tool-uis.cjs +181 -53
  822. package/dist/tools/tool-uis.cjs.map +1 -1
  823. package/dist/tools/tool-uis.d.ts +40 -0
  824. package/dist/tools/tool-uis.js +183 -55
  825. package/dist/tools/tool-uis.js.map +1 -1
  826. package/dist/typed-interrupts/index.cjs +15 -0
  827. package/dist/typed-interrupts/index.cjs.map +1 -0
  828. package/dist/typed-interrupts/index.d.ts +20 -0
  829. package/dist/typed-interrupts/index.js +15 -0
  830. package/dist/typed-interrupts/index.js.map +1 -0
  831. package/dist/version.cjs +4 -0
  832. package/dist/version.cjs.map +1 -1
  833. package/dist/version.d.ts +9 -0
  834. package/dist/version.js +4 -0
  835. package/dist/version.js.map +1 -1
  836. package/dist/workbench/live-desktop-api.cjs +2 -1
  837. package/dist/workbench/live-desktop-api.cjs.map +1 -1
  838. package/dist/workbench/live-desktop-api.js +2 -1
  839. package/dist/workbench/live-desktop-api.js.map +1 -1
  840. package/dist/workbench/session-workbench-panes.cjs +6 -6
  841. package/dist/workbench/session-workbench-panes.cjs.map +1 -1
  842. package/dist/workbench/session-workspace-api.cjs +7 -2
  843. package/dist/workbench/session-workspace-api.cjs.map +1 -1
  844. package/dist/workbench/session-workspace-api.d.ts +10 -0
  845. package/dist/workbench/session-workspace-api.js +7 -2
  846. package/dist/workbench/session-workspace-api.js.map +1 -1
  847. package/package.json +28 -6
  848. package/dist/agent-runtime/src/chat-outbox-store.cjs +0 -510
  849. package/dist/agent-runtime/src/chat-outbox-store.cjs.map +0 -1
  850. package/dist/agent-runtime/src/chat-outbox-store.d.ts +0 -210
  851. package/dist/agent-runtime/src/chat-outbox-store.js +0 -510
  852. package/dist/agent-runtime/src/chat-outbox-store.js.map +0 -1
@@ -0,0 +1,78 @@
1
+ /**
2
+ * One subagent's whole transcript, in a slide-over from the right: the lane's
3
+ * steps as a read-only nested thread under the chat's own tool UIs and text,
4
+ * with what the lane is (its status, brief, tool calls, plan, duration and
5
+ * tokens) above, and its run details (ids, model, volume) behind a disclosure
6
+ * for correlating a failure with the backend's logs.
7
+ *
8
+ * The lane is assistant-ui's native nested thread: the `task` part's
9
+ * `messages` (or an in-eval dispatch's live transcript converted the same
10
+ * way), mounted under `ReadonlyThreadProvider`. A card can be cut to its
11
+ * newest steps (a running card always, a finished one when the chat declared
12
+ * the lane-cut contract, `subagentLaneHistory`): the drawer reads the rest
13
+ * through `history/lane` (`useDeepAgentLaneHistory`), the newest page as it
14
+ * opens and older pages on request, and shows the steps it has meanwhile. It
15
+ * converts the lane itself with one conversion memory while open, so a step
16
+ * keeps its row as the cut slides and pages land. While the lane runs, the
17
+ * drawer follows it (`useDeepAgentLaneFollow`), so its card carries every
18
+ * step. An image a step carries is read once its tile scrolls into view
19
+ * (`history/lane_image`).
20
+ *
21
+ * A nested thread has no statewire thread behind it: a delegation inside it is
22
+ * a static chip, and the drawer is its own error boundary, so a tool UI that
23
+ * throws there never takes the chat (or the run's approval card) down with it.
24
+ * Its panel portals into the document its chat renders in (a pop-out window
25
+ * included), carries the chat's theme, takes focus as it opens and gives it
26
+ * back as it closes; Escape and the backdrop close it.
27
+ */
28
+ import { type ThreadMessage } from '@assistant-ui/react';
29
+ import { type SubagentDiscoverySnapshot } from '../agent-runtime/src/index';
30
+ import { type ReactNode } from 'react';
31
+ /** What the lane group hands the drawer it opens. */
32
+ export interface SubagentTranscriptDrawerProps {
33
+ snapshot: SubagentDiscoverySnapshot;
34
+ /** The lane's duration as its card shows it. */
35
+ durationLabel?: string;
36
+ /** The lane is parked on a person's approval: its header says so instead of "Live". */
37
+ awaitingApproval?: boolean;
38
+ /** The run that delegated the lane ended before it settled: it is not live. */
39
+ stopped?: boolean;
40
+ onClose: () => void;
41
+ }
42
+ /** What a host's own transcript renderer gets (`renderTranscript`). */
43
+ export interface SubagentTranscriptRenderProps {
44
+ /** The lane's steps as a nested thread, its report or failure last. */
45
+ messages: readonly ThreadMessage[];
46
+ snapshot: SubagentDiscoverySnapshot;
47
+ }
48
+ export interface SubagentTranscriptDrawerOptions {
49
+ /**
50
+ * Renders the lane's steps; the chat's own transcript by default (each turn
51
+ * of the lane as the chat lays a turn out, under the chat's tool UIs).
52
+ */
53
+ renderTranscript?: (props: SubagentTranscriptRenderProps) => ReactNode;
54
+ /**
55
+ * Renders a finished lane's report when no steps rode (a reopened session's
56
+ * summary); the chat's own text by default.
57
+ */
58
+ renderReport?: (props: {
59
+ text: string;
60
+ }) => ReactNode;
61
+ /** Told when the drawer's content throws; the drawer stays open on a notice. */
62
+ onError?: (error: Error, info: {
63
+ componentStack: string | null;
64
+ }) => void;
65
+ }
66
+ /**
67
+ * The lane's steps under the chat's own renderers (`AthenaChat`'s nested
68
+ * components), read-only. The lane is not the chat's thread: older history,
69
+ * summarized turns and the thread's history edge are the chat's, never read
70
+ * from inside a lane.
71
+ */
72
+ export declare function SubagentLaneTranscript({ messages }: SubagentTranscriptRenderProps): import("react").JSX.Element;
73
+ /**
74
+ * The transcript drawer a lane's "View transcript" opens (see the module
75
+ * comment). A host draws the steps its own way with `renderTranscript`, and
76
+ * hears of a crash inside with `onError`.
77
+ */
78
+ export declare function SubagentTranscriptDrawer({ renderTranscript, renderReport, onError, ...props }: SubagentTranscriptDrawerProps & SubagentTranscriptDrawerOptions): import("react").JSX.Element;
@@ -0,0 +1,431 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { ReadonlyThreadProvider, useAuiState, ThreadPrimitive } from "@assistant-ui/react";
3
+ import { QueryClientProvider } from "@tanstack/react-query";
4
+ import { XIcon, CheckCircle2Icon, XCircleIcon, ShieldAlertIcon, LoaderIcon } from "lucide-react";
5
+ import { Component, useRef, useEffect, useState, createContext, useMemo, useContext } from "react";
6
+ import { createPortal } from "react-dom";
7
+ import { SuperGroupingFinalText } from "../chat/super-grouping/SuperGroupingCard.js";
8
+ import { SuperGroupingTranscript } from "../chat/super-grouping/SuperGroupingTranscript.js";
9
+ import { TurnStepsControlContext } from "../chat/super-grouping/use-turn-steps.js";
10
+ import { useApprovalWaitInScope } from "../chat/use-statewire-approval-request.js";
11
+ import { athenaDiagnostics } from "../diagnostics/athena-diagnostics.js";
12
+ import { useOwnerDocument } from "../lib/owner-document.js";
13
+ import { useAthenaQueryClient } from "../lib/use-athena-rest-query.js";
14
+ import { useAthenaThemeStyle } from "../provider/theme-style-context.js";
15
+ import { AthenaStatewireThreadIdContext } from "../threads/thread-id-context.js";
16
+ import { useNestedPtcComponents } from "../tools/NestedPtcMessages.js";
17
+ import { ToolFallback } from "../tools/tool-fallback.js";
18
+ import { useDeepAgentLaneFollowRegistry } from "./lane-follow.js";
19
+ import { lanePlanProgress, formatLaneTokens, formatLaneElapsed, laneTokenBreakdown, laneStepsNote } from "./lane-model.js";
20
+ import { useOmittedImagesInView } from "./use-omitted-images-in-view.js";
21
+ import { useDeepAgentLaneFollow } from "../agent-runtime/src/lane-follow.js";
22
+ import { useDeepAgentLaneHistory } from "../agent-runtime/src/lane-history.js";
23
+ import { useDeepAgentLaneImages } from "../agent-runtime/src/lane-images.js";
24
+ import { createSubagentLaneConversion, withLaneReport } from "../agent-runtime/src/subagent-transcripts.js";
25
+ import { SUBAGENT_AWAITING_APPROVAL_LABEL, useTurnToolCallsAwaitingApproval } from "../agent-runtime/src/subagents.js";
26
+ import { deepAgentRowKey } from "../agent-runtime/src/messages.js";
27
+ import { cn } from "cnfast";
28
+ const STATUS_TEXT = {
29
+ queued: "Queued",
30
+ running: "Running",
31
+ complete: "Complete",
32
+ error: "Failed",
33
+ stopped: "Stopped"
34
+ };
35
+ const NO_LANE_ENTRIES = [];
36
+ const BACKDROP_STYLE = {
37
+ position: "fixed",
38
+ inset: 0,
39
+ zIndex: 1e3,
40
+ backgroundColor: "rgba(0, 0, 0, 0.2)",
41
+ cursor: "default",
42
+ border: 0,
43
+ padding: 0
44
+ };
45
+ const PANEL_STYLE = {
46
+ position: "fixed",
47
+ top: 0,
48
+ right: 0,
49
+ bottom: 0,
50
+ zIndex: 1e3,
51
+ display: "flex",
52
+ flexDirection: "column",
53
+ width: 600,
54
+ maxWidth: "95vw"
55
+ };
56
+ const FOCUSABLE_SELECTOR = 'button:not([disabled]), a[href], summary, [tabindex]:not([tabindex="-1"]), input:not([disabled]), textarea:not([disabled])';
57
+ const stopPropagation = (event) => event.stopPropagation();
58
+ function DrawerFrame({
59
+ label,
60
+ onClose,
61
+ children
62
+ }) {
63
+ const ownerDocument = useOwnerDocument();
64
+ const themeStyle = useAthenaThemeStyle();
65
+ const panelRef = useRef(null);
66
+ const onCloseRef = useRef(onClose);
67
+ onCloseRef.current = onClose;
68
+ useEffect(() => {
69
+ var _a, _b;
70
+ if (!ownerDocument) return void 0;
71
+ const previouslyFocused = ownerDocument.activeElement;
72
+ (_b = (_a = panelRef.current) == null ? void 0 : _a.querySelector('[data-slot="subagent-transcript-close"]')) == null ? void 0 : _b.focus();
73
+ const onKeyDown = (event) => {
74
+ var _a2, _b2;
75
+ if (event.key === "Escape") {
76
+ event.preventDefault();
77
+ event.stopPropagation();
78
+ onCloseRef.current();
79
+ return;
80
+ }
81
+ if (event.key !== "Tab") return;
82
+ const focusable = Array.from(((_a2 = panelRef.current) == null ? void 0 : _a2.querySelectorAll(FOCUSABLE_SELECTOR)) ?? []);
83
+ const first = focusable[0];
84
+ const last = focusable.at(-1);
85
+ if (!first || !last) return;
86
+ const active = ownerDocument.activeElement;
87
+ const inside = active instanceof Node && ((_b2 = panelRef.current) == null ? void 0 : _b2.contains(active)) === true;
88
+ if (!inside || (event.shiftKey ? active === first : active === last)) {
89
+ event.preventDefault();
90
+ (event.shiftKey ? last : first).focus();
91
+ }
92
+ };
93
+ ownerDocument.addEventListener("keydown", onKeyDown, true);
94
+ return () => {
95
+ ownerDocument.removeEventListener("keydown", onKeyDown, true);
96
+ if (previouslyFocused instanceof HTMLElement && previouslyFocused.isConnected) previouslyFocused.focus();
97
+ };
98
+ }, [ownerDocument]);
99
+ if (!ownerDocument) return null;
100
+ return createPortal(
101
+ // The SDK's scope classes bring its tokens and scoped reset to the
102
+ // portaled tree; the theme's variables keep the chat's palette.
103
+ /* @__PURE__ */ jsxs("div", { className: "athena-sdk athena-sdk-chrome", "data-slot": "subagent-transcript", style: themeStyle, children: [
104
+ /* @__PURE__ */ jsx(
105
+ "button",
106
+ {
107
+ type: "button",
108
+ tabIndex: -1,
109
+ "aria-label": "Close subagent transcript",
110
+ onClick: onClose,
111
+ className: "duration-200 animate-in fade-in-0 motion-reduce:animate-none",
112
+ style: BACKDROP_STYLE,
113
+ "data-slot": "subagent-transcript-backdrop"
114
+ }
115
+ ),
116
+ /* @__PURE__ */ jsx(
117
+ "div",
118
+ {
119
+ ref: panelRef,
120
+ role: "dialog",
121
+ "aria-modal": "true",
122
+ "aria-label": label,
123
+ "data-slot": "subagent-transcript-panel",
124
+ style: PANEL_STYLE,
125
+ onClick: stopPropagation,
126
+ onPointerDown: stopPropagation,
127
+ onKeyDown: stopPropagation,
128
+ onFocus: stopPropagation,
129
+ onBlur: stopPropagation,
130
+ className: "border-l border-border bg-background text-foreground shadow-xl duration-300 animate-in slide-in-from-right motion-reduce:animate-none",
131
+ children
132
+ }
133
+ )
134
+ ] }),
135
+ ownerDocument.body
136
+ );
137
+ }
138
+ function DrawerName({ name }) {
139
+ return /* @__PURE__ */ jsx("h2", { className: "min-w-0 truncate text-sm font-semibold capitalize text-foreground", children: name });
140
+ }
141
+ function DrawerCloseButton({ onClose }) {
142
+ return /* @__PURE__ */ jsx(
143
+ "button",
144
+ {
145
+ type: "button",
146
+ "aria-label": "Close",
147
+ "data-slot": "subagent-transcript-close",
148
+ onClick: onClose,
149
+ className: "ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
150
+ children: /* @__PURE__ */ jsx(XIcon, { "aria-hidden": "true", className: "size-4" })
151
+ }
152
+ );
153
+ }
154
+ function DrawerStatusIcon({
155
+ status,
156
+ awaitingApproval,
157
+ stopped
158
+ }) {
159
+ if (status === "complete") {
160
+ return /* @__PURE__ */ jsx(CheckCircle2Icon, { "aria-hidden": "true", className: "size-4 shrink-0 text-emerald-600" });
161
+ }
162
+ if (status === "error") return /* @__PURE__ */ jsx(XCircleIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-destructive" });
163
+ if (stopped) return /* @__PURE__ */ jsx(XCircleIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground" });
164
+ if (awaitingApproval) return /* @__PURE__ */ jsx(ShieldAlertIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-amber-600" });
165
+ return /* @__PURE__ */ jsx(LoaderIcon, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted-foreground motion-safe:animate-spin" });
166
+ }
167
+ function DiagnosticsRow({ label, value, mono = false }) {
168
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2 text-[11px]", children: [
169
+ /* @__PURE__ */ jsx("span", { className: "w-20 shrink-0 text-muted-foreground", children: label }),
170
+ /* @__PURE__ */ jsx("span", { className: cn("min-w-0 select-all break-all text-foreground/80", mono && "font-mono"), children: value })
171
+ ] });
172
+ }
173
+ function DrawerDiagnostics({
174
+ snapshot,
175
+ durationLabel,
176
+ stopped
177
+ }) {
178
+ const duration = durationLabel ?? (typeof snapshot.durationMs === "number" ? formatLaneElapsed(snapshot.durationMs) : void 0);
179
+ return /* @__PURE__ */ jsxs("details", { "data-slot": "subagent-transcript-details", className: "shrink-0 border-b border-border px-4 py-2", children: [
180
+ /* @__PURE__ */ jsx("summary", { className: "cursor-pointer select-none text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground", children: "Run details" }),
181
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 pt-2 pb-1", children: [
182
+ /* @__PURE__ */ jsx(
183
+ DiagnosticsRow,
184
+ {
185
+ label: "Status",
186
+ value: STATUS_TEXT[stopped && snapshot.status !== "complete" && snapshot.status !== "error" ? "stopped" : snapshot.status]
187
+ }
188
+ ),
189
+ /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Type", value: snapshot.name }),
190
+ snapshot.model ? /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Model", value: snapshot.model, mono: true }) : null,
191
+ /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Dispatch ID", value: snapshot.id, mono: true }),
192
+ snapshot.evalId ? /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Eval ID", value: snapshot.evalId, mono: true }) : null,
193
+ duration ? /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Duration", value: duration }) : null,
194
+ /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Tool calls", value: String(snapshot.toolCallCount) }),
195
+ /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Messages", value: String(snapshot.messageCount + (snapshot.omittedMessageCount ?? 0)) }),
196
+ snapshot.usage ? /* @__PURE__ */ jsx(DiagnosticsRow, { label: "Tokens", value: laneTokenBreakdown(snapshot.usage) }) : null
197
+ ] })
198
+ ] });
199
+ }
200
+ const LaneComponentsContext = createContext(null);
201
+ const PlainText = ({ text }) => /* @__PURE__ */ jsx("p", { className: "whitespace-pre-wrap break-words text-sm leading-relaxed", children: text });
202
+ function laneRenderers(components) {
203
+ var _a, _b;
204
+ const parts = components;
205
+ return {
206
+ Text: (parts == null ? void 0 : parts.Text) ?? PlainText,
207
+ Reasoning: parts == null ? void 0 : parts.Reasoning,
208
+ toolUIs: (_a = parts == null ? void 0 : parts.tools) == null ? void 0 : _a.by_name,
209
+ Fallback: ((_b = parts == null ? void 0 : parts.tools) == null ? void 0 : _b.Fallback) ?? ToolFallback
210
+ };
211
+ }
212
+ const LaneTurn = () => {
213
+ const role = useAuiState((s) => s.message.role);
214
+ const renderers = laneRenderers(useContext(LaneComponentsContext));
215
+ const waitingToolCallIds = useTurnToolCallsAwaitingApproval(useApprovalWaitInScope().toolCallIds);
216
+ if (role !== "assistant") return null;
217
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "subagent-transcript-turn", className: "flex min-w-0 flex-col gap-1.5", children: [
218
+ /* @__PURE__ */ jsx(
219
+ SuperGroupingTranscript,
220
+ {
221
+ toolUIs: renderers.toolUIs,
222
+ ToolFallback: renderers.Fallback,
223
+ TextComponent: renderers.Text,
224
+ ReasoningComponent: renderers.Reasoning,
225
+ waitingToolCallIds
226
+ }
227
+ ),
228
+ /* @__PURE__ */ jsx(SuperGroupingFinalText, { TextComponent: renderers.Text })
229
+ ] });
230
+ };
231
+ const LANE_TURN_COMPONENTS = { Message: LaneTurn };
232
+ const ROW_KEY_SEPARATOR = "\0";
233
+ function LaneRows() {
234
+ const joinedKeys = useAuiState((s) => s.thread.messages.map((message) => deepAgentRowKey(message)).join(ROW_KEY_SEPARATOR));
235
+ const rowKeys = useMemo(() => joinedKeys === "" ? [] : joinedKeys.split(ROW_KEY_SEPARATOR), [joinedKeys]);
236
+ return /* @__PURE__ */ jsx(Fragment, { children: rowKeys.map((key, index) => /* @__PURE__ */ jsx(ThreadPrimitive.MessageByIndex, { index, components: LANE_TURN_COMPONENTS }, key)) });
237
+ }
238
+ function SubagentLaneTranscript({ messages }) {
239
+ const components = useNestedPtcComponents(ToolFallback);
240
+ return /* @__PURE__ */ jsx(AthenaStatewireThreadIdContext.Provider, { value: null, children: /* @__PURE__ */ jsx(TurnStepsControlContext.Provider, { value: null, children: /* @__PURE__ */ jsx(LaneComponentsContext.Provider, { value: components, children: /* @__PURE__ */ jsx(ReadonlyThreadProvider, { messages, children: /* @__PURE__ */ jsx("div", { className: "h-full overflow-y-auto", children: /* @__PURE__ */ jsx("div", { "data-slot": "subagent-transcript-rows", className: "flex min-w-0 flex-col gap-3 px-4 py-3", children: /* @__PURE__ */ jsx(LaneRows, {}) }) }) }) }) }) });
241
+ }
242
+ const renderChatTranscript = (props) => /* @__PURE__ */ jsx(SubagentLaneTranscript, { ...props });
243
+ function LaneHistoryNote({
244
+ note,
245
+ canLoad,
246
+ loading,
247
+ onLoadEarlier
248
+ }) {
249
+ return /* @__PURE__ */ jsxs(
250
+ "div",
251
+ {
252
+ "data-slot": "subagent-steps-note",
253
+ className: "flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b border-border px-4 py-1.5 text-[0.7rem] text-muted-foreground",
254
+ children: [
255
+ /* @__PURE__ */ jsx("span", { children: note }),
256
+ canLoad ? /* @__PURE__ */ jsx(
257
+ "button",
258
+ {
259
+ type: "button",
260
+ onClick: onLoadEarlier,
261
+ disabled: loading,
262
+ className: "rounded font-medium text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-default disabled:no-underline disabled:opacity-60",
263
+ children: loading ? "Loading earlier steps…" : "Load earlier steps"
264
+ }
265
+ ) : null
266
+ ]
267
+ }
268
+ );
269
+ }
270
+ function SubagentTranscriptPanel({
271
+ snapshot,
272
+ durationLabel,
273
+ awaitingApproval = false,
274
+ stopped = false,
275
+ onClose,
276
+ renderTranscript = renderChatTranscript,
277
+ renderReport
278
+ }) {
279
+ var _a, _b;
280
+ const isRunning = snapshot.status === "running" && !stopped;
281
+ useDeepAgentLaneFollow(useDeepAgentLaneFollowRegistry(), snapshot.id, isRunning && snapshot.evalId === void 0);
282
+ const source = snapshot.source;
283
+ const lane = useDeepAgentLaneHistory({
284
+ messageId: source == null ? void 0 : source.messageId,
285
+ lane: source == null ? void 0 : source.lane,
286
+ carried: (source == null ? void 0 : source.transcript) ?? NO_LANE_ENTRIES,
287
+ total: (_a = source == null ? void 0 : source.truncated) == null ? void 0 : _a.messages,
288
+ finished: ((_b = source == null ? void 0 : source.truncated) == null ? void 0 : _b.finished) === true,
289
+ checkpointed: (source == null ? void 0 : source.checkpointed) === true,
290
+ auto: true
291
+ });
292
+ const images = useDeepAgentLaneImages({ messageId: source == null ? void 0 : source.messageId, lane: source == null ? void 0 : source.lane, steps: lane.steps });
293
+ const transcriptRef = useRef(null);
294
+ useOmittedImagesInView({ rootRef: transcriptRef, enabled: images.pending, onSeen: images.request });
295
+ const [convertLane] = useState(() => createSubagentLaneConversion());
296
+ const report = snapshot.status === "complete" && (source == null ? void 0 : source.messageId) !== void 0 ? snapshot.output : void 0;
297
+ const messages = (source === void 0 ? void 0 : convertLane(withLaneReport(images.steps, report), isRunning)) ?? snapshot.messages;
298
+ const shown = Math.min(lane.steps.length, lane.total ?? lane.steps.length);
299
+ const arrivesLater = isRunning && (source == null ? void 0 : source.messageId) !== void 0 && !lane.available;
300
+ const note = laneStepsNote({ shown, total: lane.total, arrivesLater });
301
+ const hasTranscript = messages.length > 0;
302
+ const plan = lanePlanProgress(snapshot);
303
+ const laneTokens = formatLaneTokens(snapshot.usage);
304
+ const Text = laneRenderers(useNestedPtcComponents(ToolFallback)).Text;
305
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
306
+ /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 flex-col gap-1.5 border-b border-border px-4 py-3", children: [
307
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
308
+ /* @__PURE__ */ jsx(DrawerStatusIcon, { status: snapshot.status, awaitingApproval, stopped }),
309
+ /* @__PURE__ */ jsx(DrawerName, { name: snapshot.name }),
310
+ awaitingApproval ? /* @__PURE__ */ jsx(
311
+ "span",
312
+ {
313
+ "data-slot": "subagent-transcript-state",
314
+ className: "shrink-0 rounded-full bg-amber-500/10 px-2 py-0.5 text-[0.7rem] font-medium text-amber-600",
315
+ children: SUBAGENT_AWAITING_APPROVAL_LABEL
316
+ }
317
+ ) : isRunning ? /* @__PURE__ */ jsx(
318
+ "span",
319
+ {
320
+ "data-slot": "subagent-transcript-state",
321
+ className: "shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary",
322
+ children: "Live"
323
+ }
324
+ ) : null,
325
+ /* @__PURE__ */ jsx(DrawerCloseButton, { onClose })
326
+ ] }),
327
+ snapshot.description ? /* @__PURE__ */ jsx("p", { "data-slot": "subagent-brief", className: "whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground", children: snapshot.description }) : null,
328
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 text-[11px] tabular-nums text-muted-foreground", children: [
329
+ /* @__PURE__ */ jsxs("span", { children: [
330
+ snapshot.toolCallCount,
331
+ " tool call",
332
+ snapshot.toolCallCount === 1 ? "" : "s"
333
+ ] }),
334
+ plan ? /* @__PURE__ */ jsxs("span", { children: [
335
+ "· ",
336
+ plan.done,
337
+ "/",
338
+ plan.total,
339
+ " plan steps"
340
+ ] }) : null,
341
+ durationLabel ? /* @__PURE__ */ jsxs("span", { className: "font-mono", children: [
342
+ "· ",
343
+ durationLabel
344
+ ] }) : null,
345
+ laneTokens ? /* @__PURE__ */ jsxs("span", { "data-slot": "lane-tokens", children: [
346
+ "· ",
347
+ laneTokens
348
+ ] }) : null
349
+ ] })
350
+ ] }),
351
+ /* @__PURE__ */ jsx(DrawerDiagnostics, { snapshot, durationLabel, stopped }),
352
+ snapshot.status === "error" && snapshot.output && hasTranscript ? /* @__PURE__ */ jsx("div", { "data-slot": "subagent-result", className: "shrink-0 border-b border-destructive/20 bg-destructive/5 px-4 py-2", children: /* @__PURE__ */ jsx(
353
+ "p",
354
+ {
355
+ "data-slot": "subagent-result-text",
356
+ className: "max-h-32 overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed text-destructive",
357
+ children: snapshot.output
358
+ }
359
+ ) }) : null,
360
+ note ? /* @__PURE__ */ jsx(
361
+ LaneHistoryNote,
362
+ {
363
+ note,
364
+ canLoad: lane.hasEarlier && !arrivesLater,
365
+ loading: lane.loading,
366
+ onLoadEarlier: lane.loadEarlier
367
+ }
368
+ ) : null,
369
+ /* @__PURE__ */ jsx("div", { ref: transcriptRef, "data-slot": "subagent-transcript-body", className: "min-h-0 flex-1", children: hasTranscript ? renderTranscript({ messages, snapshot }) : /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col gap-2 overflow-y-auto px-4 py-4", children: [
370
+ (source == null ? void 0 : source.checkpointed) === true && lane.loading ? /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Loading this subagent's steps…" }) : /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground", children: [
371
+ "No streamed transcript is available for this run — live intermediate steps are not persisted once the session closes. The final ",
372
+ snapshot.status === "error" ? "error" : "output",
373
+ " is shown below."
374
+ ] }),
375
+ snapshot.output ? snapshot.status === "error" ? /* @__PURE__ */ jsx("p", { "data-slot": "subagent-result-text", className: "whitespace-pre-wrap text-sm leading-relaxed text-destructive", children: snapshot.output }) : /* @__PURE__ */ jsx("div", { "data-slot": "subagent-report", className: "min-w-0 text-sm", children: renderReport ? renderReport({ text: snapshot.output }) : /* @__PURE__ */ jsx(Text, { type: "text", text: snapshot.output, status: COMPLETE_STATUS }) }) : /* @__PURE__ */ jsx("p", { className: "text-xs italic text-muted-foreground", children: "No output was captured for this dispatch." })
376
+ ] }) })
377
+ ] });
378
+ }
379
+ const COMPLETE_STATUS = { type: "complete" };
380
+ class DrawerBoundary extends Component {
381
+ constructor(props) {
382
+ super(props);
383
+ this.state = { failed: false };
384
+ }
385
+ static getDerivedStateFromError() {
386
+ return { failed: true };
387
+ }
388
+ componentDidCatch(error, errorInfo) {
389
+ var _a, _b, _c;
390
+ const componentStack = ((_a = errorInfo.componentStack) == null ? void 0 : _a.slice(0, 2e3)) ?? null;
391
+ athenaDiagnostics.error(
392
+ "sdk.error",
393
+ error,
394
+ {
395
+ code: "chat_render_crash",
396
+ message: "A subagent's transcript could not be shown",
397
+ hint: "Inspect component_stack: a tool UI that reads the live thread fails inside a subagent's read-only transcript."
398
+ },
399
+ { surface: "subagent-transcript-drawer", lane_status: this.props.snapshot.status, component_stack: componentStack }
400
+ );
401
+ (_c = (_b = this.props).onError) == null ? void 0 : _c.call(_b, error, { componentStack });
402
+ }
403
+ render() {
404
+ if (!this.state.failed) return this.props.children;
405
+ const { snapshot, onClose } = this.props;
406
+ return /* @__PURE__ */ jsx(DrawerFrame, { label: `Subagent transcript: ${snapshot.name}`, onClose, children: /* @__PURE__ */ jsxs("div", { role: "alert", className: "flex min-h-0 flex-1 flex-col", children: [
407
+ /* @__PURE__ */ jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-border px-4 py-3", children: [
408
+ /* @__PURE__ */ jsx(DrawerName, { name: snapshot.name }),
409
+ /* @__PURE__ */ jsx(DrawerCloseButton, { onClose })
410
+ ] }),
411
+ /* @__PURE__ */ jsx("p", { className: "px-4 py-6 text-sm text-muted-foreground", children: "This subagent's transcript could not be shown. The conversation is not affected." })
412
+ ] }) });
413
+ }
414
+ }
415
+ function DrawerQueryScope({ children }) {
416
+ const queryClient = useAthenaQueryClient();
417
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children });
418
+ }
419
+ function SubagentTranscriptDrawer({
420
+ renderTranscript,
421
+ renderReport,
422
+ onError,
423
+ ...props
424
+ }) {
425
+ return /* @__PURE__ */ jsx(DrawerBoundary, { snapshot: props.snapshot, onClose: props.onClose, onError, children: /* @__PURE__ */ jsx(DrawerQueryScope, { children: /* @__PURE__ */ jsx(DrawerFrame, { label: `Subagent transcript: ${props.snapshot.name}`, onClose: props.onClose, children: /* @__PURE__ */ jsx(SubagentTranscriptPanel, { ...props, renderTranscript, renderReport }) }) }) }, props.snapshot.id);
426
+ }
427
+ export {
428
+ SubagentLaneTranscript,
429
+ SubagentTranscriptDrawer
430
+ };
431
+ //# sourceMappingURL=subagent-transcript-drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-transcript-drawer.js","sources":["../../src/subagents/subagent-transcript-drawer.tsx"],"sourcesContent":["'use client';\n\n/**\n * One subagent's whole transcript, in a slide-over from the right: the lane's\n * steps as a read-only nested thread under the chat's own tool UIs and text,\n * with what the lane is (its status, brief, tool calls, plan, duration and\n * tokens) above, and its run details (ids, model, volume) behind a disclosure\n * for correlating a failure with the backend's logs.\n *\n * The lane is assistant-ui's native nested thread: the `task` part's\n * `messages` (or an in-eval dispatch's live transcript converted the same\n * way), mounted under `ReadonlyThreadProvider`. A card can be cut to its\n * newest steps (a running card always, a finished one when the chat declared\n * the lane-cut contract, `subagentLaneHistory`): the drawer reads the rest\n * through `history/lane` (`useDeepAgentLaneHistory`), the newest page as it\n * opens and older pages on request, and shows the steps it has meanwhile. It\n * converts the lane itself with one conversion memory while open, so a step\n * keeps its row as the cut slides and pages land. While the lane runs, the\n * drawer follows it (`useDeepAgentLaneFollow`), so its card carries every\n * step. An image a step carries is read once its tile scrolls into view\n * (`history/lane_image`).\n *\n * A nested thread has no statewire thread behind it: a delegation inside it is\n * a static chip, and the drawer is its own error boundary, so a tool UI that\n * throws there never takes the chat (or the run's approval card) down with it.\n * Its panel portals into the document its chat renders in (a pop-out window\n * included), carries the chat's theme, takes focus as it opens and gives it\n * back as it closes; Escape and the backdrop close it.\n */\nimport {\n type ReasoningMessagePartComponent,\n ReadonlyThreadProvider,\n type TextMessagePartComponent,\n type ThreadMessage,\n ThreadPrimitive,\n type ToolCallMessagePartComponent,\n useAuiState,\n} from '@assistant-ui/react';\nimport type { LangChainMessage } from '@assistant-ui/react-langgraph';\nimport {\n createSubagentLaneConversion,\n deepAgentRowKey,\n SUBAGENT_AWAITING_APPROVAL_LABEL,\n type SubagentDiscoverySnapshot,\n useDeepAgentLaneFollow,\n useDeepAgentLaneHistory,\n useDeepAgentLaneImages,\n useTurnToolCallsAwaitingApproval,\n withLaneReport,\n} from '@athenaintel/agent-runtime';\nimport { QueryClientProvider } from '@tanstack/react-query';\nimport { CheckCircle2Icon, LoaderIcon, ShieldAlertIcon, XCircleIcon, XIcon } from 'lucide-react';\nimport {\n Component,\n type CSSProperties,\n createContext,\n type ErrorInfo,\n type FC,\n type ReactNode,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { SuperGroupingFinalText } from '../chat/super-grouping/SuperGroupingCard';\nimport { SuperGroupingTranscript } from '../chat/super-grouping/SuperGroupingTranscript';\nimport { TurnStepsControlContext } from '../chat/super-grouping/use-turn-steps';\nimport { useApprovalWaitInScope } from '../chat/use-statewire-approval-request';\nimport { athenaDiagnostics } from '../diagnostics/athena-diagnostics';\nimport { useOwnerDocument } from '../lib/owner-document';\nimport { useAthenaQueryClient } from '../lib/use-athena-rest-query';\nimport { cn } from '../lib/utils';\nimport { useAthenaThemeStyle } from '../provider/theme-style-context';\nimport { AthenaStatewireThreadIdContext } from '../threads/thread-id-context';\nimport { useNestedPtcComponents } from '../tools/NestedPtcMessages';\nimport { ToolFallback } from '../tools/tool-fallback';\nimport { useDeepAgentLaneFollowRegistry } from './lane-follow';\nimport { formatLaneElapsed, formatLaneTokens, laneStepsNote, laneTokenBreakdown, lanePlanProgress } from './lane-model';\nimport { useOmittedImagesInView } from './use-omitted-images-in-view';\n\n/** What the lane group hands the drawer it opens. */\nexport interface SubagentTranscriptDrawerProps {\n snapshot: SubagentDiscoverySnapshot;\n /** The lane's duration as its card shows it. */\n durationLabel?: string;\n /** The lane is parked on a person's approval: its header says so instead of \"Live\". */\n awaitingApproval?: boolean;\n /** The run that delegated the lane ended before it settled: it is not live. */\n stopped?: boolean;\n onClose: () => void;\n}\n\n/** What a host's own transcript renderer gets (`renderTranscript`). */\nexport interface SubagentTranscriptRenderProps {\n /** The lane's steps as a nested thread, its report or failure last. */\n messages: readonly ThreadMessage[];\n snapshot: SubagentDiscoverySnapshot;\n}\n\nexport interface SubagentTranscriptDrawerOptions {\n /**\n * Renders the lane's steps; the chat's own transcript by default (each turn\n * of the lane as the chat lays a turn out, under the chat's tool UIs).\n */\n renderTranscript?: (props: SubagentTranscriptRenderProps) => ReactNode;\n /**\n * Renders a finished lane's report when no steps rode (a reopened session's\n * summary); the chat's own text by default.\n */\n renderReport?: (props: { text: string }) => ReactNode;\n /** Told when the drawer's content throws; the drawer stays open on a notice. */\n onError?: (error: Error, info: { componentStack: string | null }) => void;\n}\n\n// ─── Words ───────────────────────────────────────────────────────────\n\nconst STATUS_TEXT: Record<SubagentDiscoverySnapshot['status'] | 'stopped', string> = {\n queued: 'Queued',\n running: 'Running',\n complete: 'Complete',\n error: 'Failed',\n stopped: 'Stopped',\n};\n\nconst NO_LANE_ENTRIES: readonly LangChainMessage[] = [];\n\n// ─── The frame ───────────────────────────────────────────────────────\n\n// The backdrop and the panel carry their box inline: no host stylesheet can\n// take a full-height slide-over's position away (lib/portal-surface.ts).\nconst BACKDROP_STYLE: CSSProperties = {\n position: 'fixed',\n inset: 0,\n zIndex: 1000,\n backgroundColor: 'rgba(0, 0, 0, 0.2)',\n cursor: 'default',\n border: 0,\n padding: 0,\n};\nconst PANEL_STYLE: CSSProperties = {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n zIndex: 1000,\n display: 'flex',\n flexDirection: 'column',\n width: 600,\n maxWidth: '95vw',\n};\n\nconst FOCUSABLE_SELECTOR =\n 'button:not([disabled]), a[href], summary, [tabindex]:not([tabindex=\"-1\"]), input:not([disabled]), textarea:not([disabled])';\n\nconst stopPropagation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\n/**\n * The slide-over: portaled into the chat's own document with the chat's theme\n * and the SDK's scope, dimming what is behind it. Escape (taken before a\n * focused composer's own Escape) and the backdrop close it; focus moves to its\n * close button and returns to the card that opened it; Tab stays inside.\n */\nfunction DrawerFrame({\n label,\n onClose,\n children,\n}: {\n label: string;\n onClose: () => void;\n children: ReactNode;\n}) {\n const ownerDocument = useOwnerDocument();\n const themeStyle = useAthenaThemeStyle();\n const panelRef = useRef<HTMLDivElement | null>(null);\n const onCloseRef = useRef(onClose);\n onCloseRef.current = onClose;\n\n useEffect(() => {\n if (!ownerDocument) return undefined;\n const previouslyFocused = ownerDocument.activeElement;\n panelRef.current?.querySelector<HTMLElement>('[data-slot=\"subagent-transcript-close\"]')?.focus();\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n // Capture phase, before a focused composer's own Escape handling.\n event.preventDefault();\n event.stopPropagation();\n onCloseRef.current();\n return;\n }\n if (event.key !== 'Tab') return;\n const focusable = Array.from(panelRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE_SELECTOR) ?? []);\n const first = focusable[0];\n const last = focusable.at(-1);\n if (!first || !last) return;\n const active = ownerDocument.activeElement;\n const inside = active instanceof Node && panelRef.current?.contains(active) === true;\n if (!inside || (event.shiftKey ? active === first : active === last)) {\n event.preventDefault();\n (event.shiftKey ? last : first).focus();\n }\n };\n ownerDocument.addEventListener('keydown', onKeyDown, true);\n return () => {\n ownerDocument.removeEventListener('keydown', onKeyDown, true);\n if (previouslyFocused instanceof HTMLElement && previouslyFocused.isConnected) previouslyFocused.focus();\n };\n }, [ownerDocument]);\n\n if (!ownerDocument) return null;\n return createPortal(\n // The SDK's scope classes bring its tokens and scoped reset to the\n // portaled tree; the theme's variables keep the chat's palette.\n <div className=\"athena-sdk athena-sdk-chrome\" data-slot=\"subagent-transcript\" style={themeStyle}>\n <button\n type=\"button\"\n tabIndex={-1}\n aria-label=\"Close subagent transcript\"\n onClick={onClose}\n className=\"duration-200 animate-in fade-in-0 motion-reduce:animate-none\"\n style={BACKDROP_STYLE}\n data-slot=\"subagent-transcript-backdrop\"\n />\n {/* The event boundary: a click, a key or a focus in the drawer bubbles\n through React to the card that opened it (a portal keeps its React\n parent), so it stops here. */}\n {/* biome-ignore lint/a11y/noNoninteractiveElementInteractions: an event boundary for the portaled dialog, not a control */}\n <div\n ref={panelRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={label}\n data-slot=\"subagent-transcript-panel\"\n style={PANEL_STYLE}\n onClick={stopPropagation}\n onPointerDown={stopPropagation}\n onKeyDown={stopPropagation}\n onFocus={stopPropagation}\n onBlur={stopPropagation}\n className=\"border-l border-border bg-background text-foreground shadow-xl duration-300 animate-in slide-in-from-right motion-reduce:animate-none\"\n >\n {children}\n </div>\n </div>,\n ownerDocument.body,\n );\n}\n\nfunction DrawerName({ name }: { name: string }) {\n return <h2 className=\"min-w-0 truncate text-sm font-semibold capitalize text-foreground\">{name}</h2>;\n}\n\nfunction DrawerCloseButton({ onClose }: { onClose: () => void }) {\n return (\n <button\n type=\"button\"\n aria-label=\"Close\"\n data-slot=\"subagent-transcript-close\"\n onClick={onClose}\n className=\"ml-auto flex size-7 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <XIcon aria-hidden=\"true\" className=\"size-4\" />\n </button>\n );\n}\n\nfunction DrawerStatusIcon({\n status,\n awaitingApproval,\n stopped,\n}: {\n status: SubagentDiscoverySnapshot['status'];\n awaitingApproval: boolean;\n stopped: boolean;\n}) {\n if (status === 'complete') {\n return <CheckCircle2Icon aria-hidden=\"true\" className=\"size-4 shrink-0 text-emerald-600\" />;\n }\n if (status === 'error') return <XCircleIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-destructive\" />;\n if (stopped) return <XCircleIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground\" />;\n if (awaitingApproval) return <ShieldAlertIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-amber-600\" />;\n return <LoaderIcon aria-hidden=\"true\" className=\"size-4 shrink-0 text-muted-foreground motion-safe:animate-spin\" />;\n}\n\nfunction DiagnosticsRow({ label, value, mono = false }: { label: string; value: string; mono?: boolean }) {\n return (\n <div className=\"flex items-baseline gap-2 text-[11px]\">\n <span className=\"w-20 shrink-0 text-muted-foreground\">{label}</span>\n <span className={cn('min-w-0 select-all break-all text-foreground/80', mono && 'font-mono')}>{value}</span>\n </div>\n );\n}\n\n/**\n * The lane's run details: its status, ids, timing and volume, so a failing\n * subagent can be matched with the backend's traces and logs (the dispatch id\n * is the `task` call's id the backend logs; the eval id ties it to the\n * interpreter call that fanned it out).\n */\nfunction DrawerDiagnostics({\n snapshot,\n durationLabel,\n stopped,\n}: {\n snapshot: SubagentDiscoverySnapshot;\n durationLabel?: string;\n stopped: boolean;\n}) {\n const duration =\n durationLabel ?? (typeof snapshot.durationMs === 'number' ? formatLaneElapsed(snapshot.durationMs) : undefined);\n return (\n <details data-slot=\"subagent-transcript-details\" className=\"shrink-0 border-b border-border px-4 py-2\">\n <summary className=\"cursor-pointer select-none text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground\">\n Run details\n </summary>\n <div className=\"flex flex-col gap-1 pt-2 pb-1\">\n <DiagnosticsRow\n label=\"Status\"\n value={STATUS_TEXT[stopped && snapshot.status !== 'complete' && snapshot.status !== 'error' ? 'stopped' : snapshot.status]}\n />\n <DiagnosticsRow label=\"Type\" value={snapshot.name} />\n {snapshot.model ? <DiagnosticsRow label=\"Model\" value={snapshot.model} mono /> : null}\n <DiagnosticsRow label=\"Dispatch ID\" value={snapshot.id} mono />\n {snapshot.evalId ? <DiagnosticsRow label=\"Eval ID\" value={snapshot.evalId} mono /> : null}\n {duration ? <DiagnosticsRow label=\"Duration\" value={duration} /> : null}\n <DiagnosticsRow label=\"Tool calls\" value={String(snapshot.toolCallCount)} />\n <DiagnosticsRow label=\"Messages\" value={String(snapshot.messageCount + (snapshot.omittedMessageCount ?? 0))} />\n {snapshot.usage ? <DiagnosticsRow label=\"Tokens\" value={laneTokenBreakdown(snapshot.usage)} /> : null}\n </div>\n </details>\n );\n}\n\n// ─── The chat's own transcript ───────────────────────────────────────\n\ntype NestedComponents = ReturnType<typeof useNestedPtcComponents>;\n\nconst LaneComponentsContext = createContext<NestedComponents | null>(null);\n\nconst PlainText: TextMessagePartComponent = ({ text }) => (\n <p className=\"whitespace-pre-wrap break-words text-sm leading-relaxed\">{text}</p>\n);\n\n/** The renderers `AthenaChat` hands its nested threads (`NestedPtcComponentsProvider`), as read here. */\ninterface LaneRendererParts {\n Text?: TextMessagePartComponent;\n Reasoning?: ReasoningMessagePartComponent;\n tools?: { by_name?: Record<string, ToolCallMessagePartComponent>; Fallback?: ToolCallMessagePartComponent };\n}\n\n/** The chat's text, tool UIs and reasoning; plain text and the generic card where the chat gives none. */\nfunction laneRenderers(components: NestedComponents | null) {\n const parts = components as LaneRendererParts | null;\n return {\n Text: parts?.Text ?? PlainText,\n Reasoning: parts?.Reasoning,\n toolUIs: parts?.tools?.by_name,\n Fallback: parts?.tools?.Fallback ?? ToolFallback,\n };\n}\n\n/**\n * One turn of the lane, laid out as the chat lays out a turn: its steps\n * collapsed under the sentences the subagent wrote, then its answer. The\n * subagent's brief (its user message) is the drawer's header, so it is not\n * repeated.\n */\nconst LaneTurn: FC = () => {\n const role = useAuiState((s) => s.message.role);\n const renderers = laneRenderers(useContext(LaneComponentsContext));\n // A gated call inside the lane reads \"Waiting for your input\", as in the chat.\n const waitingToolCallIds = useTurnToolCallsAwaitingApproval(useApprovalWaitInScope().toolCallIds);\n if (role !== 'assistant') return null;\n return (\n <div data-slot=\"subagent-transcript-turn\" className=\"flex min-w-0 flex-col gap-1.5\">\n <SuperGroupingTranscript\n toolUIs={renderers.toolUIs}\n ToolFallback={renderers.Fallback}\n TextComponent={renderers.Text}\n ReasoningComponent={renderers.Reasoning}\n waitingToolCallIds={waitingToolCallIds}\n />\n <SuperGroupingFinalText TextComponent={renderers.Text} />\n </div>\n );\n};\n\nconst LANE_TURN_COMPONENTS = { Message: LaneTurn };\nconst ROW_KEY_SEPARATOR = '\\u0000';\n\n/**\n * The nested thread's rows, each under its row key (`deepAgentRowKey`), so a\n * turn keeps its row while the card's cut drops its oldest steps and earlier\n * pages land, and what the person opened in it stays open.\n */\nfunction LaneRows() {\n const joinedKeys = useAuiState((s) => s.thread.messages.map((message) => deepAgentRowKey(message)).join(ROW_KEY_SEPARATOR));\n const rowKeys = useMemo(() => (joinedKeys === '' ? [] : joinedKeys.split(ROW_KEY_SEPARATOR)), [joinedKeys]);\n return (\n <>\n {rowKeys.map((key, index) => (\n <ThreadPrimitive.MessageByIndex key={key} index={index} components={LANE_TURN_COMPONENTS} />\n ))}\n </>\n );\n}\n\n/**\n * The lane's steps under the chat's own renderers (`AthenaChat`'s nested\n * components), read-only. The lane is not the chat's thread: older history,\n * summarized turns and the thread's history edge are the chat's, never read\n * from inside a lane.\n */\nexport function SubagentLaneTranscript({ messages }: SubagentTranscriptRenderProps) {\n const components = useNestedPtcComponents(ToolFallback);\n return (\n <AthenaStatewireThreadIdContext.Provider value={null}>\n <TurnStepsControlContext.Provider value={null}>\n <LaneComponentsContext.Provider value={components}>\n <ReadonlyThreadProvider messages={messages}>\n <div className=\"h-full overflow-y-auto\">\n <div data-slot=\"subagent-transcript-rows\" className=\"flex min-w-0 flex-col gap-3 px-4 py-3\">\n <LaneRows />\n </div>\n </div>\n </ReadonlyThreadProvider>\n </LaneComponentsContext.Provider>\n </TurnStepsControlContext.Provider>\n </AthenaStatewireThreadIdContext.Provider>\n );\n}\n\nconst renderChatTranscript = (props: SubagentTranscriptRenderProps) => <SubagentLaneTranscript {...props} />;\n\n// ─── The panel ───────────────────────────────────────────────────────\n\n/** The steps a cut lane's drawer shows of all of them, and the control that reads earlier ones. */\nfunction LaneHistoryNote({\n note,\n canLoad,\n loading,\n onLoadEarlier,\n}: {\n note: string;\n canLoad: boolean;\n loading: boolean;\n onLoadEarlier: () => void;\n}) {\n return (\n <div\n data-slot=\"subagent-steps-note\"\n className=\"flex shrink-0 flex-wrap items-center gap-x-2 gap-y-1 border-b border-border px-4 py-1.5 text-[0.7rem] text-muted-foreground\"\n >\n <span>{note}</span>\n {canLoad ? (\n <button\n type=\"button\"\n onClick={onLoadEarlier}\n disabled={loading}\n className=\"rounded font-medium text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-default disabled:no-underline disabled:opacity-60\"\n >\n {loading ? 'Loading earlier steps…' : 'Load earlier steps'}\n </button>\n ) : null}\n </div>\n );\n}\n\nfunction SubagentTranscriptPanel({\n snapshot,\n durationLabel,\n awaitingApproval = false,\n stopped = false,\n onClose,\n renderTranscript = renderChatTranscript,\n renderReport,\n}: SubagentTranscriptDrawerProps & Pick<SubagentTranscriptDrawerOptions, 'renderTranscript' | 'renderReport'>) {\n const isRunning = snapshot.status === 'running' && !stopped;\n // A running `task` lane rides its card cut to its newest steps; following it\n // brings every step in. An in-eval lane has no card to follow.\n useDeepAgentLaneFollow(useDeepAgentLaneFollowRegistry(), snapshot.id, isRunning && snapshot.evalId === undefined);\n const source = snapshot.source;\n const lane = useDeepAgentLaneHistory({\n messageId: source?.messageId,\n lane: source?.lane,\n carried: source?.transcript ?? NO_LANE_ENTRIES,\n total: source?.truncated?.messages,\n finished: source?.truncated?.finished === true,\n checkpointed: source?.checkpointed === true,\n auto: true,\n });\n const images = useDeepAgentLaneImages({ messageId: source?.messageId, lane: source?.lane, steps: lane.steps });\n const transcriptRef = useRef<HTMLDivElement | null>(null);\n useOmittedImagesInView({ rootRef: transcriptRef, enabled: images.pending, onSeen: images.request });\n const [convertLane] = useState(() => createSubagentLaneConversion());\n // A `task` lane that finished ends on its report, the card's content, even\n // when its stored transcript does not (`withLaneReport`).\n const report = snapshot.status === 'complete' && source?.messageId !== undefined ? snapshot.output : undefined;\n const messages =\n (source === undefined ? undefined : convertLane(withLaneReport(images.steps, report), isRunning)) ??\n snapshot.messages;\n const shown = Math.min(lane.steps.length, lane.total ?? lane.steps.length);\n // A finished in-eval lane stays cut, so only a running `task` card's steps arrive later.\n const arrivesLater = isRunning && source?.messageId !== undefined && !lane.available;\n const note = laneStepsNote({ shown, total: lane.total, arrivesLater });\n const hasTranscript = messages.length > 0;\n const plan = lanePlanProgress(snapshot);\n const laneTokens = formatLaneTokens(snapshot.usage);\n const Text = laneRenderers(useNestedPtcComponents(ToolFallback)).Text;\n\n return (\n <>\n <div className=\"flex shrink-0 flex-col gap-1.5 border-b border-border px-4 py-3\">\n <div className=\"flex items-center gap-2\">\n <DrawerStatusIcon status={snapshot.status} awaitingApproval={awaitingApproval} stopped={stopped} />\n <DrawerName name={snapshot.name} />\n {awaitingApproval ? (\n <span\n data-slot=\"subagent-transcript-state\"\n className=\"shrink-0 rounded-full bg-amber-500/10 px-2 py-0.5 text-[0.7rem] font-medium text-amber-600\"\n >\n {SUBAGENT_AWAITING_APPROVAL_LABEL}\n </span>\n ) : isRunning ? (\n <span\n data-slot=\"subagent-transcript-state\"\n className=\"shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-[11px] font-medium text-primary\"\n >\n Live\n </span>\n ) : null}\n <DrawerCloseButton onClose={onClose} />\n </div>\n {snapshot.description ? (\n <p data-slot=\"subagent-brief\" className=\"whitespace-pre-wrap break-words text-xs leading-relaxed text-muted-foreground\">\n {snapshot.description}\n </p>\n ) : null}\n <div className=\"flex flex-wrap items-center gap-x-2 text-[11px] tabular-nums text-muted-foreground\">\n <span>\n {snapshot.toolCallCount} tool call{snapshot.toolCallCount === 1 ? '' : 's'}\n </span>\n {plan ? (\n <span>\n · {plan.done}/{plan.total} plan steps\n </span>\n ) : null}\n {durationLabel ? <span className=\"font-mono\">· {durationLabel}</span> : null}\n {laneTokens ? <span data-slot=\"lane-tokens\">· {laneTokens}</span> : null}\n </div>\n </div>\n\n <DrawerDiagnostics snapshot={snapshot} durationLabel={durationLabel} stopped={stopped} />\n\n {snapshot.status === 'error' && snapshot.output && hasTranscript ? (\n <div data-slot=\"subagent-result\" className=\"shrink-0 border-b border-destructive/20 bg-destructive/5 px-4 py-2\">\n <p\n data-slot=\"subagent-result-text\"\n className=\"max-h-32 overflow-y-auto whitespace-pre-wrap font-mono text-[11px] leading-relaxed text-destructive\"\n >\n {snapshot.output}\n </p>\n </div>\n ) : null}\n\n {note ? (\n <LaneHistoryNote\n note={note}\n canLoad={lane.hasEarlier && !arrivesLater}\n loading={lane.loading}\n onLoadEarlier={lane.loadEarlier}\n />\n ) : null}\n\n {/* The body takes the panel's height; what it shows scrolls itself (a\n host's own thread shell keeps its own viewport). */}\n <div ref={transcriptRef} data-slot=\"subagent-transcript-body\" className=\"min-h-0 flex-1\">\n {hasTranscript ? (\n renderTranscript({ messages, snapshot })\n ) : (\n <div className=\"flex h-full flex-col gap-2 overflow-y-auto px-4 py-4\">\n {source?.checkpointed === true && lane.loading ? (\n <p className=\"text-xs text-muted-foreground\">Loading this subagent's steps…</p>\n ) : (\n <p className=\"text-xs text-muted-foreground\">\n No streamed transcript is available for this run — live intermediate steps are not persisted once the\n session closes. The final {snapshot.status === 'error' ? 'error' : 'output'} is shown below.\n </p>\n )}\n {snapshot.output ? (\n snapshot.status === 'error' ? (\n <p data-slot=\"subagent-result-text\" className=\"whitespace-pre-wrap text-sm leading-relaxed text-destructive\">\n {snapshot.output}\n </p>\n ) : (\n <div data-slot=\"subagent-report\" className=\"min-w-0 text-sm\">\n {renderReport ? (\n renderReport({ text: snapshot.output })\n ) : (\n <Text type=\"text\" text={snapshot.output} status={COMPLETE_STATUS} />\n )}\n </div>\n )\n ) : (\n <p className=\"text-xs italic text-muted-foreground\">No output was captured for this dispatch.</p>\n )}\n </div>\n )}\n </div>\n </>\n );\n}\n\nconst COMPLETE_STATUS = { type: 'complete' } as const;\n\n// ─── Containment ─────────────────────────────────────────────────────\n\ninterface DrawerBoundaryProps {\n snapshot: SubagentDiscoverySnapshot;\n onClose: () => void;\n onError?: SubagentTranscriptDrawerOptions['onError'];\n children: ReactNode;\n}\n\n/**\n * The drawer's own boundary: its transcript renders the chat's tool UIs (a\n * host's own among them) in a nested thread no statewire thread backs, and a\n * card that throws there must not take the chat or the run's approval card\n * down. The drawer stays open on a notice and closes as it always does;\n * another lane's drawer starts afresh.\n */\nclass DrawerBoundary extends Component<DrawerBoundaryProps, { failed: boolean }> {\n constructor(props: DrawerBoundaryProps) {\n super(props);\n this.state = { failed: false };\n }\n\n static getDerivedStateFromError(): { failed: boolean } {\n return { failed: true };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n const componentStack = errorInfo.componentStack?.slice(0, 2000) ?? null;\n athenaDiagnostics.error(\n 'sdk.error',\n error,\n {\n code: 'chat_render_crash',\n message: \"A subagent's transcript could not be shown\",\n hint: \"Inspect component_stack: a tool UI that reads the live thread fails inside a subagent's read-only transcript.\",\n },\n { surface: 'subagent-transcript-drawer', lane_status: this.props.snapshot.status, component_stack: componentStack },\n );\n this.props.onError?.(error, { componentStack });\n }\n\n render(): ReactNode {\n if (!this.state.failed) return this.props.children;\n const { snapshot, onClose } = this.props;\n return (\n <DrawerFrame label={`Subagent transcript: ${snapshot.name}`} onClose={onClose}>\n <div role=\"alert\" className=\"flex min-h-0 flex-1 flex-col\">\n <div className=\"flex shrink-0 items-center gap-2 border-b border-border px-4 py-3\">\n <DrawerName name={snapshot.name} />\n <DrawerCloseButton onClose={onClose} />\n </div>\n <p className=\"px-4 py-6 text-sm text-muted-foreground\">\n This subagent's transcript could not be shown. The conversation is not affected.\n </p>\n </div>\n </DrawerFrame>\n );\n }\n}\n\n/** The host's `QueryClient` when one is in context, else one of the drawer's own (lane pages are queries). */\nfunction DrawerQueryScope({ children }: { children: ReactNode }) {\n const queryClient = useAthenaQueryClient();\n return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;\n}\n\n/**\n * The transcript drawer a lane's \"View transcript\" opens (see the module\n * comment). A host draws the steps its own way with `renderTranscript`, and\n * hears of a crash inside with `onError`.\n */\nexport function SubagentTranscriptDrawer({\n renderTranscript,\n renderReport,\n onError,\n ...props\n}: SubagentTranscriptDrawerProps & SubagentTranscriptDrawerOptions) {\n return (\n <DrawerBoundary key={props.snapshot.id} snapshot={props.snapshot} onClose={props.onClose} onError={onError}>\n <DrawerQueryScope>\n <DrawerFrame label={`Subagent transcript: ${props.snapshot.name}`} onClose={props.onClose}>\n <SubagentTranscriptPanel {...props} renderTranscript={renderTranscript} renderReport={renderReport} />\n </DrawerFrame>\n </DrawerQueryScope>\n </DrawerBoundary>\n );\n}\n"],"names":["_a","_b"],"mappings":"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"}