@athenaintel/react 0.18.0 → 0.20.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 (848) hide show
  1. package/README.md +195 -7
  2. package/dist/assets/AssetPanel.cjs +277 -0
  3. package/dist/assets/AssetPanel.cjs.map +1 -0
  4. package/dist/assets/AssetPanel.js +277 -0
  5. package/dist/assets/AssetPanel.js.map +1 -0
  6. package/dist/assets/AthenaAssetEmbed.cjs +151 -0
  7. package/dist/assets/AthenaAssetEmbed.cjs.map +1 -0
  8. package/dist/assets/AthenaAssetEmbed.js +151 -0
  9. package/dist/assets/AthenaAssetEmbed.js.map +1 -0
  10. package/dist/assets/AthenaLayout.cjs +69 -0
  11. package/dist/assets/AthenaLayout.cjs.map +1 -0
  12. package/dist/assets/AthenaLayout.js +69 -0
  13. package/dist/assets/AthenaLayout.js.map +1 -0
  14. package/dist/assets/asset-embed-messages.cjs +39 -0
  15. package/dist/assets/asset-embed-messages.cjs.map +1 -0
  16. package/dist/assets/asset-embed-messages.js +39 -0
  17. package/dist/assets/asset-embed-messages.js.map +1 -0
  18. package/dist/assets/asset-panel-store.cjs +124 -0
  19. package/dist/assets/asset-panel-store.cjs.map +1 -0
  20. package/dist/assets/asset-panel-store.js +124 -0
  21. package/dist/assets/asset-panel-store.js.map +1 -0
  22. package/dist/assets/asset-panel-url.cjs +40 -0
  23. package/dist/assets/asset-panel-url.cjs.map +1 -0
  24. package/dist/assets/asset-panel-url.js +40 -0
  25. package/dist/assets/asset-panel-url.js.map +1 -0
  26. package/dist/assets/use-asset-embed.cjs +362 -0
  27. package/dist/assets/use-asset-embed.cjs.map +1 -0
  28. package/dist/assets/use-asset-embed.js +362 -0
  29. package/dist/assets/use-asset-embed.js.map +1 -0
  30. package/dist/{AthenaAuthContext-B3AwLA5Z.cjs → auth/AthenaAuthContext.cjs} +5 -4
  31. package/dist/auth/AthenaAuthContext.cjs.map +1 -0
  32. package/dist/{AthenaAuthContext-DQsdayH2.js → auth/AthenaAuthContext.js} +3 -3
  33. package/dist/auth/AthenaAuthContext.js.map +1 -0
  34. package/dist/auth/AthenaAuthProvider.cjs +141 -0
  35. package/dist/auth/AthenaAuthProvider.cjs.map +1 -0
  36. package/dist/auth/AthenaAuthProvider.js +141 -0
  37. package/dist/auth/AthenaAuthProvider.js.map +1 -0
  38. package/dist/{auth.cjs → auth/AthenaSSOProvider.cjs} +14 -151
  39. package/dist/auth/AthenaSSOProvider.cjs.map +1 -0
  40. package/dist/{auth.js → auth/AthenaSSOProvider.js} +4 -142
  41. package/dist/auth/AthenaSSOProvider.js.map +1 -0
  42. package/dist/auth/index.cjs +10 -0
  43. package/dist/auth/index.cjs.map +1 -0
  44. package/dist/auth/index.js +10 -0
  45. package/dist/auth/index.js.map +1 -0
  46. package/dist/chat/AthenaChat.cjs +753 -0
  47. package/dist/chat/AthenaChat.cjs.map +1 -0
  48. package/dist/chat/AthenaChat.d.ts +3 -2
  49. package/dist/chat/AthenaChat.js +753 -0
  50. package/dist/chat/AthenaChat.js.map +1 -0
  51. package/dist/chat/AthenaChatErrorBoundary.cjs +53 -0
  52. package/dist/chat/AthenaChatErrorBoundary.cjs.map +1 -0
  53. package/dist/chat/AthenaChatErrorBoundary.js +53 -0
  54. package/dist/chat/AthenaChatErrorBoundary.js.map +1 -0
  55. package/dist/chat/StatewireApprovalCard.cjs +171 -0
  56. package/dist/chat/StatewireApprovalCard.cjs.map +1 -0
  57. package/dist/chat/StatewireApprovalCard.d.ts +59 -2
  58. package/dist/chat/StatewireApprovalCard.js +171 -0
  59. package/dist/chat/StatewireApprovalCard.js.map +1 -0
  60. package/dist/chat/StatewireClientToolBridge.cjs +50 -0
  61. package/dist/chat/StatewireClientToolBridge.cjs.map +1 -0
  62. package/dist/chat/StatewireClientToolBridge.d.ts +3 -3
  63. package/dist/chat/StatewireClientToolBridge.js +50 -0
  64. package/dist/chat/StatewireClientToolBridge.js.map +1 -0
  65. package/dist/chat/StatewireQueuedMessages.cjs +432 -0
  66. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -0
  67. package/dist/chat/StatewireQueuedMessages.d.ts +104 -6
  68. package/dist/chat/StatewireQueuedMessages.js +432 -0
  69. package/dist/chat/StatewireQueuedMessages.js.map +1 -0
  70. package/dist/chat/athena-citation-links.cjs +326 -0
  71. package/dist/chat/athena-citation-links.cjs.map +1 -0
  72. package/dist/chat/athena-citation-links.js +326 -0
  73. package/dist/chat/athena-citation-links.js.map +1 -0
  74. package/dist/chat/run-activity.cjs +28 -0
  75. package/dist/chat/run-activity.cjs.map +1 -0
  76. package/dist/chat/run-activity.js +28 -0
  77. package/dist/chat/run-activity.js.map +1 -0
  78. package/dist/chat/statewire-approval.d.ts +1 -1
  79. package/dist/chat/statewire-banners.cjs +83 -0
  80. package/dist/chat/statewire-banners.cjs.map +1 -0
  81. package/dist/chat/statewire-banners.js +83 -0
  82. package/dist/chat/statewire-banners.js.map +1 -0
  83. package/dist/chat/statewire-client-tools.cjs +73 -0
  84. package/dist/chat/statewire-client-tools.cjs.map +1 -0
  85. package/dist/chat/statewire-client-tools.d.ts +15 -21
  86. package/dist/chat/statewire-client-tools.js +73 -0
  87. package/dist/chat/statewire-client-tools.js.map +1 -0
  88. package/dist/chat/super-grouping/CollapsibleGroup.cjs +158 -0
  89. package/dist/chat/super-grouping/CollapsibleGroup.cjs.map +1 -0
  90. package/dist/chat/super-grouping/CollapsibleGroup.d.ts +52 -11
  91. package/dist/chat/super-grouping/CollapsibleGroup.js +158 -0
  92. package/dist/chat/super-grouping/CollapsibleGroup.js.map +1 -0
  93. package/dist/chat/super-grouping/SuperGroupingCard.cjs +361 -0
  94. package/dist/chat/super-grouping/SuperGroupingCard.cjs.map +1 -0
  95. package/dist/chat/super-grouping/SuperGroupingCard.d.ts +81 -21
  96. package/dist/chat/super-grouping/SuperGroupingCard.js +361 -0
  97. package/dist/chat/super-grouping/SuperGroupingCard.js.map +1 -0
  98. package/dist/chat/super-grouping/activity-timeline.cjs +151 -0
  99. package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -0
  100. package/dist/chat/super-grouping/activity-timeline.d.ts +91 -0
  101. package/dist/chat/super-grouping/activity-timeline.js +151 -0
  102. package/dist/chat/super-grouping/activity-timeline.js.map +1 -0
  103. package/dist/chat/super-grouping/grouping-function.cjs +55 -0
  104. package/dist/chat/super-grouping/grouping-function.cjs.map +1 -0
  105. package/dist/chat/super-grouping/grouping-function.d.ts +13 -10
  106. package/dist/chat/super-grouping/grouping-function.js +55 -0
  107. package/dist/chat/super-grouping/grouping-function.js.map +1 -0
  108. package/dist/chat/super-grouping/index.cjs +26 -0
  109. package/dist/chat/super-grouping/index.cjs.map +1 -0
  110. package/dist/chat/super-grouping/index.d.ts +12 -0
  111. package/dist/chat/super-grouping/index.js +26 -0
  112. package/dist/chat/super-grouping/index.js.map +1 -0
  113. package/dist/chat/super-grouping/toolkit-map.cjs +96 -0
  114. package/dist/chat/super-grouping/toolkit-map.cjs.map +1 -0
  115. package/dist/chat/super-grouping/toolkit-map.d.ts +8 -1
  116. package/dist/chat/super-grouping/toolkit-map.js +96 -0
  117. package/dist/chat/super-grouping/toolkit-map.js.map +1 -0
  118. package/dist/chat/tiptap-text.cjs +101 -0
  119. package/dist/chat/tiptap-text.cjs.map +1 -0
  120. package/dist/chat/tiptap-text.js +101 -0
  121. package/dist/chat/tiptap-text.js.map +1 -0
  122. package/dist/chat/tooltip-icon-button.cjs +32 -0
  123. package/dist/chat/tooltip-icon-button.cjs.map +1 -0
  124. package/dist/chat/tooltip-icon-button.js +32 -0
  125. package/dist/chat/tooltip-icon-button.js.map +1 -0
  126. package/dist/chat/use-athena-run-live.cjs +23 -0
  127. package/dist/chat/use-athena-run-live.cjs.map +1 -0
  128. package/dist/chat/use-athena-run-live.d.ts +10 -0
  129. package/dist/chat/use-athena-run-live.js +23 -0
  130. package/dist/chat/use-athena-run-live.js.map +1 -0
  131. package/dist/chat/use-statewire-approval-request.cjs +46 -0
  132. package/dist/chat/use-statewire-approval-request.cjs.map +1 -0
  133. package/dist/chat/use-statewire-approval-request.d.ts +44 -0
  134. package/dist/chat/use-statewire-approval-request.js +46 -0
  135. package/dist/chat/use-statewire-approval-request.js.map +1 -0
  136. package/dist/chat-ui/auth/sign-in-card.cjs +128 -0
  137. package/dist/chat-ui/auth/sign-in-card.cjs.map +1 -0
  138. package/dist/chat-ui/auth/sign-in-card.js +128 -0
  139. package/dist/chat-ui/auth/sign-in-card.js.map +1 -0
  140. package/dist/chat-ui/composer/composer-action.cjs +11 -0
  141. package/dist/chat-ui/composer/composer-action.cjs.map +1 -0
  142. package/dist/chat-ui/composer/composer-action.d.ts +5 -8
  143. package/dist/chat-ui/composer/composer-action.js +11 -0
  144. package/dist/chat-ui/composer/composer-action.js.map +1 -0
  145. package/dist/chat-ui/composer/pending-attachment-uploads.cjs +25 -0
  146. package/dist/chat-ui/composer/pending-attachment-uploads.cjs.map +1 -0
  147. package/dist/chat-ui/composer/pending-attachment-uploads.js +25 -0
  148. package/dist/chat-ui/composer/pending-attachment-uploads.js.map +1 -0
  149. package/dist/chat-ui/composer/tiptap-composer.cjs +590 -0
  150. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -0
  151. package/dist/chat-ui/composer/tiptap-composer.d.ts +44 -7
  152. package/dist/chat-ui/composer/tiptap-composer.js +590 -0
  153. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -0
  154. package/dist/chat-ui/header/chat-header.cjs +33 -0
  155. package/dist/chat-ui/header/chat-header.cjs.map +1 -0
  156. package/dist/chat-ui/header/chat-header.js +33 -0
  157. package/dist/chat-ui/header/chat-header.js.map +1 -0
  158. package/dist/chat-ui/header/conversation-history-panel.cjs +369 -0
  159. package/dist/chat-ui/header/conversation-history-panel.cjs.map +1 -0
  160. package/dist/chat-ui/header/conversation-history-panel.d.ts +11 -1
  161. package/dist/chat-ui/header/conversation-history-panel.js +369 -0
  162. package/dist/chat-ui/header/conversation-history-panel.js.map +1 -0
  163. package/dist/chat-ui/index.cjs +139 -0
  164. package/dist/chat-ui/index.cjs.map +1 -0
  165. package/dist/chat-ui/index.d.ts +11 -4
  166. package/dist/chat-ui/index.js +139 -0
  167. package/dist/chat-ui/index.js.map +1 -0
  168. package/dist/chat-ui/lib/asset-urls.cjs +18 -0
  169. package/dist/chat-ui/lib/asset-urls.cjs.map +1 -0
  170. package/dist/chat-ui/lib/asset-urls.js +18 -0
  171. package/dist/chat-ui/lib/asset-urls.js.map +1 -0
  172. package/dist/chat-ui/mentions/mention-chip.cjs +208 -0
  173. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -0
  174. package/dist/chat-ui/mentions/mention-chip.js +208 -0
  175. package/dist/chat-ui/mentions/mention-chip.js.map +1 -0
  176. package/dist/chat-ui/mentions/mention-extension.cjs +184 -0
  177. package/dist/chat-ui/mentions/mention-extension.cjs.map +1 -0
  178. package/dist/chat-ui/mentions/mention-extension.d.ts +24 -2
  179. package/dist/chat-ui/mentions/mention-extension.js +184 -0
  180. package/dist/chat-ui/mentions/mention-extension.js.map +1 -0
  181. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs +35 -0
  182. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.cjs.map +1 -0
  183. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js +35 -0
  184. package/dist/chat-ui/mentions/suggestions/components/get-scope-name.js.map +1 -0
  185. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs +95 -0
  186. package/dist/chat-ui/mentions/suggestions/components/mention-icon.cjs.map +1 -0
  187. package/dist/chat-ui/mentions/suggestions/components/mention-icon.d.ts +5 -0
  188. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js +95 -0
  189. package/dist/chat-ui/mentions/suggestions/components/mention-icon.js.map +1 -0
  190. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs +116 -0
  191. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.cjs.map +1 -0
  192. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js +116 -0
  193. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-list.js.map +1 -0
  194. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs +31 -0
  195. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.cjs.map +1 -0
  196. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js +31 -0
  197. package/dist/chat-ui/mentions/suggestions/components/mention-suggestion-popup.js.map +1 -0
  198. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs +27 -0
  199. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.cjs.map +1 -0
  200. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js +27 -0
  201. package/dist/chat-ui/mentions/suggestions/components/menu-breadcrumbs.js.map +1 -0
  202. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs +62 -0
  203. package/dist/chat-ui/mentions/suggestions/components/menu-item.cjs.map +1 -0
  204. package/dist/chat-ui/mentions/suggestions/components/menu-item.js +62 -0
  205. package/dist/chat-ui/mentions/suggestions/components/menu-item.js.map +1 -0
  206. package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs +63 -0
  207. package/dist/chat-ui/mentions/suggestions/components/menu-list.cjs.map +1 -0
  208. package/dist/chat-ui/mentions/suggestions/components/menu-list.js +63 -0
  209. package/dist/chat-ui/mentions/suggestions/components/menu-list.js.map +1 -0
  210. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs +11 -0
  211. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.cjs.map +1 -0
  212. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js +11 -0
  213. package/dist/chat-ui/mentions/suggestions/components/menu-skeleton.js.map +1 -0
  214. package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs +33 -0
  215. package/dist/chat-ui/mentions/suggestions/components/menu-summary.cjs.map +1 -0
  216. package/dist/chat-ui/mentions/suggestions/components/menu-summary.js +33 -0
  217. package/dist/chat-ui/mentions/suggestions/components/menu-summary.js.map +1 -0
  218. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs +58 -0
  219. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.cjs.map +1 -0
  220. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js +58 -0
  221. package/dist/chat-ui/mentions/suggestions/components/use-keyboard-navigation.js.map +1 -0
  222. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs +81 -0
  223. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.cjs.map +1 -0
  224. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js +81 -0
  225. package/dist/chat-ui/mentions/suggestions/components/use-menu-navigation.js.map +1 -0
  226. package/dist/chat-ui/mentions/suggestions/components/utils.cjs +18 -0
  227. package/dist/chat-ui/mentions/suggestions/components/utils.cjs.map +1 -0
  228. package/dist/chat-ui/mentions/suggestions/components/utils.js +18 -0
  229. package/dist/chat-ui/mentions/suggestions/components/utils.js.map +1 -0
  230. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs +123 -0
  231. package/dist/chat-ui/mentions/suggestions/data/api-client.cjs.map +1 -0
  232. package/dist/chat-ui/mentions/suggestions/data/api-client.d.ts +10 -0
  233. package/dist/chat-ui/mentions/suggestions/data/api-client.js +123 -0
  234. package/dist/chat-ui/mentions/suggestions/data/api-client.js.map +1 -0
  235. package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs +37 -0
  236. package/dist/chat-ui/mentions/suggestions/data/item-cache.cjs.map +1 -0
  237. package/dist/chat-ui/mentions/suggestions/data/item-cache.js +37 -0
  238. package/dist/chat-ui/mentions/suggestions/data/item-cache.js.map +1 -0
  239. package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs +134 -0
  240. package/dist/chat-ui/mentions/suggestions/data/orchestrator.cjs.map +1 -0
  241. package/dist/chat-ui/mentions/suggestions/data/orchestrator.js +134 -0
  242. package/dist/chat-ui/mentions/suggestions/data/orchestrator.js.map +1 -0
  243. package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs +91 -0
  244. package/dist/chat-ui/mentions/suggestions/data/scope-registry.cjs.map +1 -0
  245. package/dist/chat-ui/mentions/suggestions/data/scope-registry.js +91 -0
  246. package/dist/chat-ui/mentions/suggestions/data/scope-registry.js.map +1 -0
  247. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs +137 -0
  248. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.cjs.map +1 -0
  249. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js +137 -0
  250. package/dist/chat-ui/mentions/suggestions/data/sources/asset-type-icons.js.map +1 -0
  251. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs +375 -0
  252. package/dist/chat-ui/mentions/suggestions/data/sources/index.cjs.map +1 -0
  253. package/dist/chat-ui/mentions/suggestions/data/sources/index.d.ts +16 -1
  254. package/dist/chat-ui/mentions/suggestions/data/sources/index.js +375 -0
  255. package/dist/chat-ui/mentions/suggestions/data/sources/index.js.map +1 -0
  256. package/dist/chat-ui/mentions/suggestions/data/types.cjs +9 -0
  257. package/dist/chat-ui/mentions/suggestions/data/types.cjs.map +1 -0
  258. package/dist/chat-ui/mentions/suggestions/data/types.d.ts +14 -0
  259. package/dist/chat-ui/mentions/suggestions/data/types.js +9 -0
  260. package/dist/chat-ui/mentions/suggestions/data/types.js.map +1 -0
  261. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs +173 -0
  262. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.cjs.map +1 -0
  263. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.d.ts +14 -4
  264. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js +173 -0
  265. package/dist/chat-ui/mentions/suggestions/data/use-mention-suggestions.js.map +1 -0
  266. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs +45 -0
  267. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.cjs.map +1 -0
  268. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js +45 -0
  269. package/dist/chat-ui/mentions/suggestions/data/use-menu-items.js.map +1 -0
  270. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs +43 -0
  271. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.cjs.map +1 -0
  272. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js +43 -0
  273. package/dist/chat-ui/mentions/suggestions/data/utils/filter-items.js.map +1 -0
  274. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs +14 -0
  275. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.cjs.map +1 -0
  276. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js +14 -0
  277. package/dist/chat-ui/mentions/suggestions/data/utils/match-query.js.map +1 -0
  278. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs +48 -0
  279. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.cjs.map +1 -0
  280. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js +48 -0
  281. package/dist/chat-ui/mentions/suggestions/data/utils/score-match.js.map +1 -0
  282. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs +71 -0
  283. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.cjs.map +1 -0
  284. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js +71 -0
  285. package/dist/chat-ui/mentions/suggestions/mention-suggestions.extension.js.map +1 -0
  286. package/dist/chat-ui/mentions/suggestions/shims.d.ts +0 -4
  287. package/dist/chat-ui/messages/continue-pill.cjs +54 -0
  288. package/dist/chat-ui/messages/continue-pill.cjs.map +1 -0
  289. package/dist/chat-ui/messages/continue-pill.js +54 -0
  290. package/dist/chat-ui/messages/continue-pill.js.map +1 -0
  291. package/dist/chat-ui/messages/message-actions-config.cjs +12 -0
  292. package/dist/chat-ui/messages/message-actions-config.cjs.map +1 -0
  293. package/dist/chat-ui/messages/message-actions-config.js +12 -0
  294. package/dist/chat-ui/messages/message-actions-config.js.map +1 -0
  295. package/dist/chat-ui/messages/message-components.cjs +343 -0
  296. package/dist/chat-ui/messages/message-components.cjs.map +1 -0
  297. package/dist/chat-ui/messages/message-components.d.ts +13 -1
  298. package/dist/chat-ui/messages/message-components.js +343 -0
  299. package/dist/chat-ui/messages/message-components.js.map +1 -0
  300. package/dist/chat-ui/messages/running-indicator.cjs +49 -0
  301. package/dist/chat-ui/messages/running-indicator.cjs.map +1 -0
  302. package/dist/chat-ui/messages/running-indicator.js +49 -0
  303. package/dist/chat-ui/messages/running-indicator.js.map +1 -0
  304. package/dist/chat-ui/messages/runtime-message.cjs +65 -0
  305. package/dist/chat-ui/messages/runtime-message.cjs.map +1 -0
  306. package/dist/chat-ui/messages/runtime-message.d.ts +2 -3
  307. package/dist/chat-ui/messages/runtime-message.js +65 -0
  308. package/dist/chat-ui/messages/runtime-message.js.map +1 -0
  309. package/dist/chat-ui/messages/statewire-continue-run.cjs +154 -0
  310. package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -0
  311. package/dist/chat-ui/messages/statewire-continue-run.d.ts +52 -7
  312. package/dist/chat-ui/messages/statewire-continue-run.js +154 -0
  313. package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -0
  314. package/dist/chat-ui/messages/user-edit-composer.cjs +61 -0
  315. package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -0
  316. package/dist/chat-ui/messages/user-edit-composer.d.ts +5 -2
  317. package/dist/chat-ui/messages/user-edit-composer.js +61 -0
  318. package/dist/chat-ui/messages/user-edit-composer.js.map +1 -0
  319. package/dist/chat-ui/messages/voice-delegation-card.cjs +51 -0
  320. package/dist/chat-ui/messages/voice-delegation-card.cjs.map +1 -0
  321. package/dist/chat-ui/messages/voice-delegation-card.d.ts +26 -0
  322. package/dist/chat-ui/messages/voice-delegation-card.js +51 -0
  323. package/dist/chat-ui/messages/voice-delegation-card.js.map +1 -0
  324. package/dist/chat-ui/statewire.cjs +39 -0
  325. package/dist/chat-ui/statewire.cjs.map +1 -0
  326. package/dist/chat-ui/statewire.d.ts +19 -0
  327. package/dist/chat-ui/statewire.js +39 -0
  328. package/dist/chat-ui/statewire.js.map +1 -0
  329. package/dist/chat-ui/thread/chat-composer-dock.cjs +37 -0
  330. package/dist/chat-ui/thread/chat-composer-dock.cjs.map +1 -0
  331. package/dist/chat-ui/thread/chat-composer-dock.js +37 -0
  332. package/dist/chat-ui/thread/chat-composer-dock.js.map +1 -0
  333. package/dist/chat-ui/thread/chat-thread-shell.cjs +102 -0
  334. package/dist/chat-ui/thread/chat-thread-shell.cjs.map +1 -0
  335. package/dist/chat-ui/thread/chat-thread-shell.d.ts +7 -1
  336. package/dist/chat-ui/thread/chat-thread-shell.js +102 -0
  337. package/dist/chat-ui/thread/chat-thread-shell.js.map +1 -0
  338. package/dist/chat-ui/thread/composer-send-or-stop.cjs +75 -0
  339. package/dist/chat-ui/thread/composer-send-or-stop.cjs.map +1 -0
  340. package/dist/chat-ui/thread/composer-send-or-stop.d.ts +0 -6
  341. package/dist/chat-ui/thread/composer-send-or-stop.js +75 -0
  342. package/dist/chat-ui/thread/composer-send-or-stop.js.map +1 -0
  343. package/dist/chat-ui/thread/statewire-history-edge.cjs +134 -0
  344. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -0
  345. package/dist/chat-ui/thread/statewire-history-edge.d.ts +52 -0
  346. package/dist/chat-ui/thread/statewire-history-edge.js +134 -0
  347. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -0
  348. package/dist/{collab.cjs → collab/client.cjs} +6 -166
  349. package/dist/collab/client.cjs.map +1 -0
  350. package/dist/{collab.js → collab/client.js} +5 -164
  351. package/dist/collab/client.js.map +1 -0
  352. package/dist/collab/close-policy.cjs +14 -0
  353. package/dist/collab/close-policy.cjs.map +1 -0
  354. package/dist/collab/close-policy.js +14 -0
  355. package/dist/collab/close-policy.js.map +1 -0
  356. package/dist/collab/index.cjs +17 -0
  357. package/dist/collab/index.cjs.map +1 -0
  358. package/dist/collab/index.js +17 -0
  359. package/dist/collab/index.js.map +1 -0
  360. package/dist/collab/mint.cjs +59 -0
  361. package/dist/collab/mint.cjs.map +1 -0
  362. package/dist/collab/mint.js +59 -0
  363. package/dist/collab/mint.js.map +1 -0
  364. package/dist/collab/react.cjs +58 -0
  365. package/dist/collab/react.cjs.map +1 -0
  366. package/dist/collab/react.js +58 -0
  367. package/dist/collab/react.js.map +1 -0
  368. package/dist/collab/shape.cjs +45 -0
  369. package/dist/collab/shape.cjs.map +1 -0
  370. package/dist/collab/shape.js +45 -0
  371. package/dist/collab/shape.js.map +1 -0
  372. package/dist/composer/AttachmentContext.cjs +40 -0
  373. package/dist/composer/AttachmentContext.cjs.map +1 -0
  374. package/dist/composer/AttachmentContext.js +40 -0
  375. package/dist/composer/AttachmentContext.js.map +1 -0
  376. package/dist/composer/ComposerAttachmentPreview.cjs +39 -0
  377. package/dist/composer/ComposerAttachmentPreview.cjs.map +1 -0
  378. package/dist/composer/ComposerAttachmentPreview.js +39 -0
  379. package/dist/composer/ComposerAttachmentPreview.js.map +1 -0
  380. package/dist/composer/ComposerDropZone.cjs +61 -0
  381. package/dist/composer/ComposerDropZone.cjs.map +1 -0
  382. package/dist/composer/ComposerDropZone.d.ts +1 -1
  383. package/dist/composer/ComposerDropZone.js +61 -0
  384. package/dist/composer/ComposerDropZone.js.map +1 -0
  385. package/dist/composer/ComposerQuotePreview.cjs +42 -0
  386. package/dist/composer/ComposerQuotePreview.cjs.map +1 -0
  387. package/dist/composer/ComposerQuotePreview.js +42 -0
  388. package/dist/composer/ComposerQuotePreview.js.map +1 -0
  389. package/dist/composer/FileUploadButton.cjs +65 -0
  390. package/dist/composer/FileUploadButton.cjs.map +1 -0
  391. package/dist/composer/FileUploadButton.d.ts +1 -1
  392. package/dist/composer/FileUploadButton.js +65 -0
  393. package/dist/composer/FileUploadButton.js.map +1 -0
  394. package/dist/composer/QuoteContext.cjs +68 -0
  395. package/dist/composer/QuoteContext.cjs.map +1 -0
  396. package/dist/composer/QuoteContext.js +68 -0
  397. package/dist/composer/QuoteContext.js.map +1 -0
  398. package/dist/composer/build-composed-message.cjs +25 -0
  399. package/dist/composer/build-composed-message.cjs.map +1 -0
  400. package/dist/composer/build-composed-message.js +25 -0
  401. package/dist/composer/build-composed-message.js.map +1 -0
  402. package/dist/composer/clipboard.cjs +62 -0
  403. package/dist/composer/clipboard.cjs.map +1 -0
  404. package/dist/composer/clipboard.d.ts +27 -3
  405. package/dist/composer/clipboard.js +62 -0
  406. package/dist/composer/clipboard.js.map +1 -0
  407. package/dist/composer/useAppendToComposer.cjs +21 -0
  408. package/dist/composer/useAppendToComposer.cjs.map +1 -0
  409. package/dist/composer/useAppendToComposer.js +21 -0
  410. package/dist/composer/useAppendToComposer.js.map +1 -0
  411. package/dist/composer/useAttachFiles.cjs +40 -0
  412. package/dist/composer/useAttachFiles.cjs.map +1 -0
  413. package/dist/composer/useAttachFiles.d.ts +24 -0
  414. package/dist/composer/useAttachFiles.js +40 -0
  415. package/dist/composer/useAttachFiles.js.map +1 -0
  416. package/dist/composer/useComposerAttachment.cjs +25 -0
  417. package/dist/composer/useComposerAttachment.cjs.map +1 -0
  418. package/dist/composer/useComposerAttachment.js +25 -0
  419. package/dist/composer/useComposerAttachment.js.map +1 -0
  420. package/dist/composer/useFileUpload.cjs +123 -0
  421. package/dist/composer/useFileUpload.cjs.map +1 -0
  422. package/dist/composer/useFileUpload.js +123 -0
  423. package/dist/composer/useFileUpload.js.map +1 -0
  424. package/dist/composer/useSendMessage.cjs +22 -0
  425. package/dist/composer/useSendMessage.cjs.map +1 -0
  426. package/dist/composer/useSendMessage.js +22 -0
  427. package/dist/composer/useSendMessage.js.map +1 -0
  428. package/dist/diagnostics/athena-diagnostics.cjs +329 -0
  429. package/dist/diagnostics/athena-diagnostics.cjs.map +1 -0
  430. package/dist/diagnostics/athena-diagnostics.d.ts +1 -1
  431. package/dist/diagnostics/athena-diagnostics.js +329 -0
  432. package/dist/diagnostics/athena-diagnostics.js.map +1 -0
  433. package/dist/diagnostics/errors.cjs +89 -0
  434. package/dist/diagnostics/errors.cjs.map +1 -0
  435. package/dist/diagnostics/errors.d.ts +4 -0
  436. package/dist/diagnostics/errors.js +89 -0
  437. package/dist/diagnostics/errors.js.map +1 -0
  438. package/dist/diagnostics/useAthenaDiagnostics.cjs +16 -0
  439. package/dist/diagnostics/useAthenaDiagnostics.cjs.map +1 -0
  440. package/dist/diagnostics/useAthenaDiagnostics.js +16 -0
  441. package/dist/diagnostics/useAthenaDiagnostics.js.map +1 -0
  442. package/dist/index.cjs +283 -30852
  443. package/dist/index.cjs.map +1 -1
  444. package/dist/index.d.ts +27 -10
  445. package/dist/index.js +155 -30711
  446. package/dist/index.js.map +1 -1
  447. package/dist/lib/athena-urls.cjs +194 -0
  448. package/dist/lib/athena-urls.cjs.map +1 -0
  449. package/dist/lib/athena-urls.d.ts +20 -5
  450. package/dist/lib/athena-urls.js +194 -0
  451. package/dist/lib/athena-urls.js.map +1 -0
  452. package/dist/lib/posthog/before-send.cjs +58 -0
  453. package/dist/lib/posthog/before-send.cjs.map +1 -0
  454. package/dist/lib/posthog/before-send.js +58 -0
  455. package/dist/lib/posthog/before-send.js.map +1 -0
  456. package/dist/lib/posthog/capture-gate.cjs +322 -0
  457. package/dist/lib/posthog/capture-gate.cjs.map +1 -0
  458. package/dist/lib/posthog/capture-gate.js +322 -0
  459. package/dist/lib/posthog/capture-gate.js.map +1 -0
  460. package/dist/lib/posthog/wrap-posthog-client.cjs +163 -0
  461. package/dist/lib/posthog/wrap-posthog-client.cjs.map +1 -0
  462. package/dist/lib/posthog/wrap-posthog-client.js +163 -0
  463. package/dist/lib/posthog/wrap-posthog-client.js.map +1 -0
  464. package/dist/lib/utils.cjs +12 -0
  465. package/dist/lib/utils.cjs.map +1 -0
  466. package/dist/lib/utils.js +9 -0
  467. package/dist/lib/utils.js.map +1 -0
  468. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs +77 -0
  469. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.cjs.map +1 -0
  470. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js +77 -0
  471. package/dist/node_modules/@assistant-ui/react-langchain/dist/converter.js.map +1 -0
  472. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs +181 -0
  473. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.cjs.map +1 -0
  474. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js +181 -0
  475. package/dist/node_modules/@assistant-ui/react-langgraph/dist/convertLangChainMessages.js.map +1 -0
  476. package/dist/packages/agent-runtime/src/asset-attachment.cjs +19 -0
  477. package/dist/packages/agent-runtime/src/asset-attachment.cjs.map +1 -0
  478. package/dist/packages/agent-runtime/src/asset-attachment.js +19 -0
  479. package/dist/packages/agent-runtime/src/asset-attachment.js.map +1 -0
  480. package/dist/packages/agent-runtime/src/auth-denial.cjs +28 -0
  481. package/dist/packages/agent-runtime/src/auth-denial.cjs.map +1 -0
  482. package/dist/packages/agent-runtime/src/auth-denial.js +28 -0
  483. package/dist/packages/agent-runtime/src/auth-denial.js.map +1 -0
  484. package/dist/packages/agent-runtime/src/client-tool-bridge.cjs +270 -0
  485. package/dist/packages/agent-runtime/src/client-tool-bridge.cjs.map +1 -0
  486. package/dist/packages/agent-runtime/src/client-tool-bridge.js +270 -0
  487. package/dist/packages/agent-runtime/src/client-tool-bridge.js.map +1 -0
  488. package/dist/packages/agent-runtime/src/client-tools.cjs +137 -0
  489. package/dist/packages/agent-runtime/src/client-tools.cjs.map +1 -0
  490. package/dist/packages/agent-runtime/src/client-tools.js +137 -0
  491. package/dist/packages/agent-runtime/src/client-tools.js.map +1 -0
  492. package/dist/packages/agent-runtime/src/conversation-index.cjs +80 -0
  493. package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -0
  494. package/dist/packages/agent-runtime/src/conversation-index.js +80 -0
  495. package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -0
  496. package/dist/packages/agent-runtime/src/conversation-list.cjs +86 -0
  497. package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -0
  498. package/dist/packages/agent-runtime/src/conversation-list.js +86 -0
  499. package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -0
  500. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs +55 -0
  501. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -0
  502. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js +55 -0
  503. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -0
  504. package/dist/packages/agent-runtime/src/edit-command.cjs +89 -0
  505. package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -0
  506. package/dist/packages/agent-runtime/src/edit-command.js +89 -0
  507. package/dist/packages/agent-runtime/src/edit-command.js.map +1 -0
  508. package/dist/packages/agent-runtime/src/errors.cjs +95 -0
  509. package/dist/packages/agent-runtime/src/errors.cjs.map +1 -0
  510. package/dist/packages/agent-runtime/src/errors.js +95 -0
  511. package/dist/packages/agent-runtime/src/errors.js.map +1 -0
  512. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +236 -0
  513. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -0
  514. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +236 -0
  515. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -0
  516. package/dist/packages/agent-runtime/src/interrupts.cjs +117 -0
  517. package/dist/packages/agent-runtime/src/interrupts.cjs.map +1 -0
  518. package/dist/packages/agent-runtime/src/interrupts.js +117 -0
  519. package/dist/packages/agent-runtime/src/interrupts.js.map +1 -0
  520. package/dist/packages/agent-runtime/src/message-author.cjs +31 -0
  521. package/dist/packages/agent-runtime/src/message-author.cjs.map +1 -0
  522. package/dist/packages/agent-runtime/src/message-author.js +31 -0
  523. package/dist/packages/agent-runtime/src/message-author.js.map +1 -0
  524. package/dist/packages/agent-runtime/src/message-window.cjs +85 -0
  525. package/dist/packages/agent-runtime/src/message-window.cjs.map +1 -0
  526. package/dist/packages/agent-runtime/src/message-window.js +85 -0
  527. package/dist/packages/agent-runtime/src/message-window.js.map +1 -0
  528. package/dist/packages/agent-runtime/src/messages.cjs +433 -0
  529. package/dist/packages/agent-runtime/src/messages.cjs.map +1 -0
  530. package/dist/packages/agent-runtime/src/messages.js +433 -0
  531. package/dist/packages/agent-runtime/src/messages.js.map +1 -0
  532. package/dist/packages/agent-runtime/src/model-context.cjs +13 -0
  533. package/dist/packages/agent-runtime/src/model-context.cjs.map +1 -0
  534. package/dist/packages/agent-runtime/src/model-context.js +13 -0
  535. package/dist/packages/agent-runtime/src/model-context.js.map +1 -0
  536. package/dist/packages/agent-runtime/src/optimistic-content.cjs +17 -0
  537. package/dist/packages/agent-runtime/src/optimistic-content.cjs.map +1 -0
  538. package/dist/packages/agent-runtime/src/optimistic-content.js +17 -0
  539. package/dist/packages/agent-runtime/src/optimistic-content.js.map +1 -0
  540. package/dist/packages/agent-runtime/src/protocol.cjs +33 -0
  541. package/dist/packages/agent-runtime/src/protocol.cjs.map +1 -0
  542. package/dist/packages/agent-runtime/src/protocol.js +33 -0
  543. package/dist/packages/agent-runtime/src/protocol.js.map +1 -0
  544. package/dist/packages/agent-runtime/src/queue.cjs +67 -0
  545. package/dist/packages/agent-runtime/src/queue.cjs.map +1 -0
  546. package/dist/packages/agent-runtime/src/queue.js +67 -0
  547. package/dist/packages/agent-runtime/src/queue.js.map +1 -0
  548. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +47 -0
  549. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -0
  550. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +47 -0
  551. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -0
  552. package/dist/packages/agent-runtime/src/runtime-messages.cjs +187 -0
  553. package/dist/packages/agent-runtime/src/runtime-messages.cjs.map +1 -0
  554. package/dist/packages/agent-runtime/src/runtime-messages.js +187 -0
  555. package/dist/packages/agent-runtime/src/runtime-messages.js.map +1 -0
  556. package/dist/packages/agent-runtime/src/send-recovery.cjs +128 -0
  557. package/dist/packages/agent-runtime/src/send-recovery.cjs.map +1 -0
  558. package/dist/packages/agent-runtime/src/send-recovery.js +128 -0
  559. package/dist/packages/agent-runtime/src/send-recovery.js.map +1 -0
  560. package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs +249 -0
  561. package/dist/packages/agent-runtime/src/statewire-attach-observer.cjs.map +1 -0
  562. package/dist/packages/agent-runtime/src/statewire-attach-observer.js +249 -0
  563. package/dist/packages/agent-runtime/src/statewire-attach-observer.js.map +1 -0
  564. package/dist/packages/agent-runtime/src/statewire-state.cjs +16 -0
  565. package/dist/packages/agent-runtime/src/statewire-state.cjs.map +1 -0
  566. package/dist/packages/agent-runtime/src/statewire-state.js +16 -0
  567. package/dist/packages/agent-runtime/src/statewire-state.js.map +1 -0
  568. package/dist/packages/agent-runtime/src/statewire-suspended.cjs +41 -0
  569. package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +1 -0
  570. package/dist/packages/agent-runtime/src/statewire-suspended.js +41 -0
  571. package/dist/packages/agent-runtime/src/statewire-suspended.js.map +1 -0
  572. package/dist/packages/agent-runtime/src/statewire-transport.cjs +6 -0
  573. package/dist/packages/agent-runtime/src/statewire-transport.cjs.map +1 -0
  574. package/dist/packages/agent-runtime/src/statewire-transport.js +6 -0
  575. package/dist/packages/agent-runtime/src/statewire-transport.js.map +1 -0
  576. package/dist/packages/agent-runtime/src/streaming-markdown.cjs +214 -0
  577. package/dist/packages/agent-runtime/src/streaming-markdown.cjs.map +1 -0
  578. package/dist/packages/agent-runtime/src/streaming-markdown.js +214 -0
  579. package/dist/packages/agent-runtime/src/streaming-markdown.js.map +1 -0
  580. package/dist/packages/agent-runtime/src/thread-extras.cjs +38 -0
  581. package/dist/packages/agent-runtime/src/thread-extras.cjs.map +1 -0
  582. package/dist/packages/agent-runtime/src/thread-extras.js +38 -0
  583. package/dist/packages/agent-runtime/src/thread-extras.js.map +1 -0
  584. package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs +90 -0
  585. package/dist/packages/agent-runtime/src/thread-snapshot-cache.cjs.map +1 -0
  586. package/dist/packages/agent-runtime/src/thread-snapshot-cache.js +90 -0
  587. package/dist/packages/agent-runtime/src/thread-snapshot-cache.js.map +1 -0
  588. package/dist/packages/agent-runtime/src/thread-status.cjs +49 -0
  589. package/dist/packages/agent-runtime/src/thread-status.cjs.map +1 -0
  590. package/dist/packages/agent-runtime/src/thread-status.js +49 -0
  591. package/dist/packages/agent-runtime/src/thread-status.js.map +1 -0
  592. package/dist/packages/agent-runtime/src/tool-metadata.cjs +1802 -0
  593. package/dist/packages/agent-runtime/src/tool-metadata.cjs.map +1 -0
  594. package/dist/packages/agent-runtime/src/tool-metadata.js +1802 -0
  595. package/dist/packages/agent-runtime/src/tool-metadata.js.map +1 -0
  596. package/dist/packages/agent-runtime/src/tool-outputs.cjs +46 -0
  597. package/dist/packages/agent-runtime/src/tool-outputs.cjs.map +1 -0
  598. package/dist/packages/agent-runtime/src/tool-outputs.js +46 -0
  599. package/dist/packages/agent-runtime/src/tool-outputs.js.map +1 -0
  600. package/dist/packages/agent-runtime/src/tool-result.cjs +151 -0
  601. package/dist/packages/agent-runtime/src/tool-result.cjs.map +1 -0
  602. package/dist/packages/agent-runtime/src/tool-result.js +151 -0
  603. package/dist/packages/agent-runtime/src/tool-result.js.map +1 -0
  604. package/dist/packages/agent-runtime/src/use-conversation-list.cjs +139 -0
  605. package/dist/packages/agent-runtime/src/use-conversation-list.cjs.map +1 -0
  606. package/dist/packages/agent-runtime/src/use-conversation-list.js +139 -0
  607. package/dist/packages/agent-runtime/src/use-conversation-list.js.map +1 -0
  608. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs +28 -0
  609. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -0
  610. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js +28 -0
  611. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -0
  612. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs +138 -0
  613. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.cjs.map +1 -0
  614. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js +138 -0
  615. package/dist/packages/agent-runtime/src/use-deep-agent-runtime.js.map +1 -0
  616. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +387 -0
  617. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -0
  618. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +387 -0
  619. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -0
  620. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs +133 -0
  621. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -0
  622. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js +133 -0
  623. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -0
  624. package/dist/packages/agent-runtime/src/voice-presentation.cjs +37 -0
  625. package/dist/packages/agent-runtime/src/voice-presentation.cjs.map +1 -0
  626. package/dist/packages/agent-runtime/src/voice-presentation.js +37 -0
  627. package/dist/packages/agent-runtime/src/voice-presentation.js.map +1 -0
  628. package/dist/packages/react/package.json.cjs +9 -0
  629. package/dist/packages/react/package.json.cjs.map +1 -0
  630. package/dist/packages/react/package.json.js +9 -0
  631. package/dist/packages/react/package.json.js.map +1 -0
  632. package/dist/{AthenaContext-B1QMhIP-.cjs → provider/AthenaContext.cjs} +5 -4
  633. package/dist/provider/AthenaContext.cjs.map +1 -0
  634. package/dist/{AthenaContext-MOslgOmE.js → provider/AthenaContext.js} +3 -3
  635. package/dist/provider/AthenaContext.js.map +1 -0
  636. package/dist/provider/AthenaProvider.cjs +403 -0
  637. package/dist/provider/AthenaProvider.cjs.map +1 -0
  638. package/dist/provider/AthenaProvider.d.ts +4 -2
  639. package/dist/provider/AthenaProvider.js +403 -0
  640. package/dist/provider/AthenaProvider.js.map +1 -0
  641. package/dist/provider/PostHogProvider.cjs +81 -0
  642. package/dist/provider/PostHogProvider.cjs.map +1 -0
  643. package/dist/provider/PostHogProvider.js +59 -0
  644. package/dist/provider/PostHogProvider.js.map +1 -0
  645. package/dist/provider/config.d.ts +17 -9
  646. package/dist/provider/statewire-lifecycle-context.cjs +10 -0
  647. package/dist/provider/statewire-lifecycle-context.cjs.map +1 -0
  648. package/dist/provider/statewire-lifecycle-context.js +10 -0
  649. package/dist/provider/statewire-lifecycle-context.js.map +1 -0
  650. package/dist/provider/statewire-window-context.cjs +10 -0
  651. package/dist/provider/statewire-window-context.cjs.map +1 -0
  652. package/dist/provider/statewire-window-context.d.ts +12 -0
  653. package/dist/provider/statewire-window-context.js +10 -0
  654. package/dist/provider/statewire-window-context.js.map +1 -0
  655. package/dist/runtime/auth.cjs +309 -0
  656. package/dist/runtime/auth.cjs.map +1 -0
  657. package/dist/runtime/auth.d.ts +19 -18
  658. package/dist/runtime/auth.js +309 -0
  659. package/dist/runtime/auth.js.map +1 -0
  660. package/dist/runtime/statewire-auth-headers.cjs +18 -0
  661. package/dist/runtime/statewire-auth-headers.cjs.map +1 -0
  662. package/dist/runtime/statewire-auth-headers.d.ts +38 -0
  663. package/dist/runtime/statewire-auth-headers.js +18 -0
  664. package/dist/runtime/statewire-auth-headers.js.map +1 -0
  665. package/dist/runtime/statewire-lifecycle.cjs +67 -0
  666. package/dist/runtime/statewire-lifecycle.cjs.map +1 -0
  667. package/dist/runtime/statewire-lifecycle.d.ts +25 -0
  668. package/dist/runtime/statewire-lifecycle.js +67 -0
  669. package/dist/runtime/statewire-lifecycle.js.map +1 -0
  670. package/dist/runtime/statewire-run-config.cjs +68 -0
  671. package/dist/runtime/statewire-run-config.cjs.map +1 -0
  672. package/dist/runtime/statewire-run-config.js +68 -0
  673. package/dist/runtime/statewire-run-config.js.map +1 -0
  674. package/dist/runtime/statewire-session-key.cjs +11 -0
  675. package/dist/runtime/statewire-session-key.cjs.map +1 -0
  676. package/dist/runtime/statewire-session-key.d.ts +13 -0
  677. package/dist/runtime/statewire-session-key.js +11 -0
  678. package/dist/runtime/statewire-session-key.js.map +1 -0
  679. package/dist/runtime/useAthenaStatewireRuntime.cjs +179 -0
  680. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -0
  681. package/dist/runtime/useAthenaStatewireRuntime.d.ts +36 -5
  682. package/dist/runtime/useAthenaStatewireRuntime.js +180 -0
  683. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -0
  684. package/dist/styles.css +1 -1
  685. package/dist/theme/index.cjs +182 -0
  686. package/dist/theme/index.cjs.map +1 -0
  687. package/dist/theme/index.js +182 -0
  688. package/dist/theme/index.js.map +1 -0
  689. package/dist/threads/ThreadList.cjs +55 -0
  690. package/dist/threads/ThreadList.cjs.map +1 -0
  691. package/dist/threads/ThreadList.js +55 -0
  692. package/dist/threads/ThreadList.js.map +1 -0
  693. package/dist/threads/api.cjs +208 -0
  694. package/dist/threads/api.cjs.map +1 -0
  695. package/dist/threads/api.js +208 -0
  696. package/dist/threads/api.js.map +1 -0
  697. package/dist/threads/conversation-list-fetcher.cjs +70 -0
  698. package/dist/threads/conversation-list-fetcher.cjs.map +1 -0
  699. package/dist/threads/conversation-list-fetcher.js +70 -0
  700. package/dist/threads/conversation-list-fetcher.js.map +1 -0
  701. package/dist/threads/mint-thread-id.cjs +7 -0
  702. package/dist/threads/mint-thread-id.cjs.map +1 -0
  703. package/dist/threads/mint-thread-id.d.ts +8 -0
  704. package/dist/threads/mint-thread-id.js +7 -0
  705. package/dist/threads/mint-thread-id.js.map +1 -0
  706. package/dist/threads/statewire-thread-list.cjs +231 -0
  707. package/dist/threads/statewire-thread-list.cjs.map +1 -0
  708. package/dist/threads/statewire-thread-list.d.ts +20 -4
  709. package/dist/threads/statewire-thread-list.js +231 -0
  710. package/dist/threads/statewire-thread-list.js.map +1 -0
  711. package/dist/threads/thread-id-context.cjs +22 -0
  712. package/dist/threads/thread-id-context.cjs.map +1 -0
  713. package/dist/threads/thread-id-context.d.ts +9 -0
  714. package/dist/threads/thread-id-context.js +22 -0
  715. package/dist/threads/thread-id-context.js.map +1 -0
  716. package/dist/threads/title.cjs +95 -0
  717. package/dist/threads/title.cjs.map +1 -0
  718. package/dist/threads/title.js +95 -0
  719. package/dist/threads/title.js.map +1 -0
  720. package/dist/threads/use-rest-conversation-history.cjs +79 -0
  721. package/dist/threads/use-rest-conversation-history.cjs.map +1 -0
  722. package/dist/threads/use-rest-conversation-history.js +79 -0
  723. package/dist/threads/use-rest-conversation-history.js.map +1 -0
  724. package/dist/threads/use-statewire-conversation-history.cjs +243 -0
  725. package/dist/threads/use-statewire-conversation-history.cjs.map +1 -0
  726. package/dist/threads/use-statewire-conversation-history.js +243 -0
  727. package/dist/threads/use-statewire-conversation-history.js.map +1 -0
  728. package/dist/threads/useAthenaThreadManager.cjs +24 -0
  729. package/dist/threads/useAthenaThreadManager.cjs.map +1 -0
  730. package/dist/threads/useAthenaThreadManager.js +24 -0
  731. package/dist/threads/useAthenaThreadManager.js.map +1 -0
  732. package/dist/toolkits/index.cjs +279 -0
  733. package/dist/toolkits/index.cjs.map +1 -0
  734. package/dist/toolkits/index.js +279 -0
  735. package/dist/toolkits/index.js.map +1 -0
  736. package/dist/tools/NestedPtcMessages.cjs +46 -0
  737. package/dist/tools/NestedPtcMessages.cjs.map +1 -0
  738. package/dist/tools/NestedPtcMessages.js +46 -0
  739. package/dist/tools/NestedPtcMessages.js.map +1 -0
  740. package/dist/tools/append-document-tool-ui.cjs +145 -0
  741. package/dist/tools/append-document-tool-ui.cjs.map +1 -0
  742. package/dist/tools/append-document-tool-ui.js +145 -0
  743. package/dist/tools/append-document-tool-ui.js.map +1 -0
  744. package/dist/tools/asset-utils.cjs +16 -0
  745. package/dist/tools/asset-utils.cjs.map +1 -0
  746. package/dist/tools/asset-utils.js +16 -0
  747. package/dist/tools/asset-utils.js.map +1 -0
  748. package/dist/tools/auto-open-tools.cjs +121 -0
  749. package/dist/tools/auto-open-tools.cjs.map +1 -0
  750. package/dist/tools/auto-open-tools.js +121 -0
  751. package/dist/tools/auto-open-tools.js.map +1 -0
  752. package/dist/tools/file-tool-uis.cjs +108 -0
  753. package/dist/tools/file-tool-uis.cjs.map +1 -0
  754. package/dist/tools/file-tool-uis.js +108 -0
  755. package/dist/tools/file-tool-uis.js.map +1 -0
  756. package/dist/tools/index.cjs +56 -0
  757. package/dist/tools/index.cjs.map +1 -0
  758. package/dist/tools/index.d.ts +15 -0
  759. package/dist/tools/index.js +56 -0
  760. package/dist/tools/index.js.map +1 -0
  761. package/dist/tools/misc-tool-uis.cjs +54 -0
  762. package/dist/tools/misc-tool-uis.cjs.map +1 -0
  763. package/dist/tools/misc-tool-uis.d.ts +2 -0
  764. package/dist/tools/misc-tool-uis.js +54 -0
  765. package/dist/tools/misc-tool-uis.js.map +1 -0
  766. package/dist/tools/primitives.cjs +166 -0
  767. package/dist/tools/primitives.cjs.map +1 -0
  768. package/dist/tools/primitives.d.ts +41 -0
  769. package/dist/tools/primitives.js +166 -0
  770. package/dist/tools/primitives.js.map +1 -0
  771. package/dist/tools/read-asset-tool-ui.cjs +284 -0
  772. package/dist/tools/read-asset-tool-ui.cjs.map +1 -0
  773. package/dist/tools/read-asset-tool-ui.js +284 -0
  774. package/dist/tools/read-asset-tool-ui.js.map +1 -0
  775. package/dist/tools/todo-plan-store.cjs +88 -0
  776. package/dist/tools/todo-plan-store.cjs.map +1 -0
  777. package/dist/tools/todo-plan-store.js +88 -0
  778. package/dist/tools/todo-plan-store.js.map +1 -0
  779. package/dist/tools/tool-fallback.cjs +667 -0
  780. package/dist/tools/tool-fallback.cjs.map +1 -0
  781. package/dist/tools/tool-fallback.d.ts +78 -6
  782. package/dist/tools/tool-fallback.js +667 -0
  783. package/dist/tools/tool-fallback.js.map +1 -0
  784. package/dist/tools/tool-icons.cjs +61 -0
  785. package/dist/tools/tool-icons.cjs.map +1 -0
  786. package/dist/tools/tool-icons.d.ts +10 -0
  787. package/dist/tools/tool-icons.js +61 -0
  788. package/dist/tools/tool-icons.js.map +1 -0
  789. package/dist/tools/tool-uis.cjs +3049 -0
  790. package/dist/tools/tool-uis.cjs.map +1 -0
  791. package/dist/tools/tool-uis.d.ts +1 -23
  792. package/dist/tools/tool-uis.js +3049 -0
  793. package/dist/tools/tool-uis.js.map +1 -0
  794. package/dist/tools/voice-update-tool-ui.cjs +89 -0
  795. package/dist/tools/voice-update-tool-ui.cjs.map +1 -0
  796. package/dist/tools/voice-update-tool-ui.d.ts +27 -0
  797. package/dist/tools/voice-update-tool-ui.js +89 -0
  798. package/dist/tools/voice-update-tool-ui.js.map +1 -0
  799. package/dist/tools/write-todos-tool-ui.cjs +270 -0
  800. package/dist/tools/write-todos-tool-ui.cjs.map +1 -0
  801. package/dist/tools/write-todos-tool-ui.js +270 -0
  802. package/dist/tools/write-todos-tool-ui.js.map +1 -0
  803. package/dist/ui/button.cjs +57 -0
  804. package/dist/ui/button.cjs.map +1 -0
  805. package/dist/ui/button.js +57 -0
  806. package/dist/ui/button.js.map +1 -0
  807. package/dist/ui/collapsible.cjs +17 -0
  808. package/dist/ui/collapsible.cjs.map +1 -0
  809. package/dist/ui/collapsible.js +17 -0
  810. package/dist/ui/collapsible.js.map +1 -0
  811. package/dist/ui/tooltip.cjs +48 -0
  812. package/dist/ui/tooltip.cjs.map +1 -0
  813. package/dist/ui/tooltip.js +48 -0
  814. package/dist/ui/tooltip.js.map +1 -0
  815. package/dist/version.cjs +6 -0
  816. package/dist/version.cjs.map +1 -0
  817. package/dist/version.js +6 -0
  818. package/dist/version.js.map +1 -0
  819. package/package.json +35 -19
  820. package/dist/AthenaAuthContext-B3AwLA5Z.cjs.map +0 -1
  821. package/dist/AthenaAuthContext-DQsdayH2.js.map +0 -1
  822. package/dist/AthenaContext-B1QMhIP-.cjs.map +0 -1
  823. package/dist/AthenaContext-MOslgOmE.js.map +0 -1
  824. package/dist/auth.cjs.map +0 -1
  825. package/dist/auth.js.map +0 -1
  826. package/dist/chat/ComposerEditorContext.d.ts +0 -36
  827. package/dist/chat/super-grouping/tool-status-labels.d.ts +0 -1
  828. package/dist/chat/tiptap-composer.d.ts +0 -7
  829. package/dist/chat-ui.cjs +0 -2667
  830. package/dist/chat-ui.cjs.map +0 -1
  831. package/dist/chat-ui.js +0 -2668
  832. package/dist/chat-ui.js.map +0 -1
  833. package/dist/collab.cjs.map +0 -1
  834. package/dist/collab.js.map +0 -1
  835. package/dist/mentions/composer-keybinds.d.ts +0 -5
  836. package/dist/mentions/mention-extension.d.ts +0 -6
  837. package/dist/mentions/mention-icons.d.ts +0 -4
  838. package/dist/mentions/mention-node-view.d.ts +0 -2
  839. package/dist/mentions/mention-suggestion-list.d.ts +0 -14
  840. package/dist/mentions/mention-suggestion-popup.d.ts +0 -15
  841. package/dist/mentions/mention-suggestions-extension.d.ts +0 -11
  842. package/dist/mentions/mention-types.d.ts +0 -21
  843. package/dist/mentions/mention-utils.d.ts +0 -23
  844. package/dist/mentions/use-mention-suggestions.d.ts +0 -29
  845. package/dist/use-rest-conversation-history-Bs5qn5G3.js +0 -37322
  846. package/dist/use-rest-conversation-history-Bs5qn5G3.js.map +0 -1
  847. package/dist/use-rest-conversation-history-Dm0rdQgT.cjs +0 -37358
  848. package/dist/use-rest-conversation-history-Dm0rdQgT.cjs.map +0 -1
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react$1 = require("@assistant-ui/react");
5
+ const lucideReact = require("lucide-react");
6
+ const react = require("react");
7
+ const toolFallback = require("../../tools/tool-fallback.cjs");
8
+ const activityTimeline = require("./activity-timeline.cjs");
9
+ const CollapsibleGroup = require("./CollapsibleGroup.cjs");
10
+ const groupingFunction = require("./grouping-function.cjs");
11
+ const toolkitMap = require("./toolkit-map.cjs");
12
+ const cnfast = require("cnfast");
13
+ const DEFAULT_MAX_VISIBLE_STEPS = 3;
14
+ const MAX_REMEMBERED_EXPANSIONS = 200;
15
+ const EMPTY_TIMELINE = [];
16
+ const EMPTY_CONTENT = [];
17
+ const rememberedExpansions = /* @__PURE__ */ new Map();
18
+ function rememberExpansion(key, expanded) {
19
+ rememberedExpansions.delete(key);
20
+ rememberedExpansions.set(key, expanded);
21
+ while (rememberedExpansions.size > MAX_REMEMBERED_EXPANSIONS) {
22
+ const oldestKey = rememberedExpansions.keys().next().value;
23
+ if (oldestKey === void 0) break;
24
+ rememberedExpansions.delete(oldestKey);
25
+ }
26
+ }
27
+ function resetRememberedExpansionsForTests() {
28
+ rememberedExpansions.clear();
29
+ }
30
+ function useActivityExpansion({
31
+ expansionKey,
32
+ phase,
33
+ expandWhileWaiting = false
34
+ }) {
35
+ const [userExpanded, setUserExpanded] = react.useState(
36
+ () => rememberedExpansions.get(expansionKey)
37
+ );
38
+ const [waitingAutoExpanded, setWaitingAutoExpanded] = react.useState(false);
39
+ const previousRef = react.useRef({ expansionKey, phase });
40
+ react.useEffect(() => {
41
+ setUserExpanded(rememberedExpansions.get(expansionKey));
42
+ setWaitingAutoExpanded(false);
43
+ }, [expansionKey]);
44
+ react.useEffect(() => {
45
+ const previous = previousRef.current;
46
+ if (expandWhileWaiting && previous.expansionKey === expansionKey) {
47
+ if (previous.phase !== "waiting" && phase === "waiting") {
48
+ setWaitingAutoExpanded(true);
49
+ } else if (previous.phase === "waiting" && phase !== "waiting") {
50
+ setWaitingAutoExpanded(false);
51
+ }
52
+ }
53
+ previousRef.current = { expansionKey, phase };
54
+ }, [expansionKey, phase, expandWhileWaiting]);
55
+ const expanded = waitingAutoExpanded || (userExpanded ?? (expandWhileWaiting && phase === "waiting"));
56
+ const toggleExpanded = () => {
57
+ const next = !expanded;
58
+ setWaitingAutoExpanded(false);
59
+ rememberExpansion(expansionKey, next);
60
+ setUserExpanded(next);
61
+ };
62
+ return { expanded, toggleExpanded };
63
+ }
64
+ function PulsingDots() {
65
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-[3px]", "aria-hidden": "true", children: [
66
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-[5px] rounded-full bg-foreground/80 animate-[aui-sg-pulse-dot_1.4s_ease-in-out_infinite]" }),
67
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-[5px] rounded-full bg-foreground/80 animate-[aui-sg-pulse-dot_1.4s_ease-in-out_0.2s_infinite]" }),
68
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-[5px] rounded-full bg-foreground/80 animate-[aui-sg-pulse-dot_1.4s_ease-in-out_0.4s_infinite]" }),
69
+ /* @__PURE__ */ jsxRuntime.jsx("style", { children: `
70
+ @keyframes aui-sg-pulse-dot {
71
+ 0%, 80%, 100% { opacity: 0.2; transform: scale(0.8); }
72
+ 40% { opacity: 1; transform: scale(1); }
73
+ }
74
+ @keyframes aui-sg-shimmer-bar {
75
+ 0% { transform: translateX(-100%); }
76
+ 100% { transform: translateX(400%); }
77
+ }
78
+ ` })
79
+ ] });
80
+ }
81
+ function StepIcon({ item }) {
82
+ if (item.kind === "reasoning") {
83
+ return /* @__PURE__ */ jsxRuntime.jsx(
84
+ lucideReact.Brain,
85
+ {
86
+ "aria-hidden": "true",
87
+ className: cnfast.cn(
88
+ "mt-[1px] size-3.5 shrink-0",
89
+ item.state === "running" ? "text-blue-500 motion-safe:animate-pulse" : "text-muted-foreground"
90
+ )
91
+ }
92
+ );
93
+ }
94
+ switch (item.state) {
95
+ case "complete":
96
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { "aria-hidden": "true", className: "mt-[1px] size-3.5 shrink-0 text-emerald-500" });
97
+ case "rejected":
98
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-hidden": "true", className: "mt-[1px] size-3.5 shrink-0 text-muted-foreground" });
99
+ case "cancelled":
100
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { "aria-hidden": "true", className: "mt-[1px] size-3.5 shrink-0 text-muted-foreground" });
101
+ case "error":
102
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { "aria-hidden": "true", className: "mt-[1px] size-3.5 shrink-0 text-destructive" });
103
+ case "waiting":
104
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { "aria-hidden": "true", className: "mt-[1px] size-3.5 shrink-0 text-amber-500" });
105
+ case "paused":
106
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pause, { "aria-hidden": "true", className: "mt-[1px] size-3.5 shrink-0 text-amber-600" });
107
+ case "running":
108
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-3.5 shrink-0 items-center justify-center", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "size-1.5 rounded-full bg-blue-500 motion-safe:animate-pulse" }) });
109
+ }
110
+ }
111
+ function SummaryIcon({ timeline }) {
112
+ const tools = timeline.filter((item) => item.kind === "tool");
113
+ if (tools.some((item) => item.state === "error" || item.state === "rejected")) {
114
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-hidden": "true", className: "size-3.5 shrink-0 text-muted-foreground" });
115
+ }
116
+ if (tools.some((item) => item.state === "cancelled")) {
117
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Circle, { "aria-hidden": "true", className: "size-3.5 shrink-0 text-muted-foreground" });
118
+ }
119
+ if (tools.some((item) => item.state === "paused")) {
120
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pause, { "aria-hidden": "true", className: "size-3.5 shrink-0 text-amber-600" });
121
+ }
122
+ return /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { "aria-hidden": "true", className: "size-3.5 shrink-0 text-emerald-500" });
123
+ }
124
+ const SuperGroupingCard = react.memo(function SuperGroupingCard2({
125
+ toolUIs,
126
+ ToolFallback: ToolFallbackComponent = toolFallback.ToolFallback,
127
+ TextComponent,
128
+ ReasoningComponent,
129
+ GroupComponent = CollapsibleGroup.CollapsibleGroup,
130
+ getToolGroupKey = toolkitMap.defaultGetToolGroupKey,
131
+ groupingFunction: groupingFunction$1,
132
+ waitingTools,
133
+ passThroughTools,
134
+ waitingForInput = false,
135
+ resolveToolDisplayName,
136
+ expansionKey: expansionKeyProp,
137
+ expandWhileWaiting = false,
138
+ maxVisibleSteps = DEFAULT_MAX_VISIBLE_STEPS,
139
+ summaryDetails,
140
+ renderHeaderActions,
141
+ renderRunningMeta,
142
+ className,
143
+ classNames
144
+ }) {
145
+ const messageId = react$1.useAuiState((s) => s.message.id);
146
+ const messageContent = react$1.useAuiState(
147
+ (s) => s.message.role === "assistant" ? s.message.content : EMPTY_CONTENT
148
+ );
149
+ const messageStatus = react$1.useAuiState((s) => s.message.status);
150
+ const timeline = react.useMemo(() => {
151
+ const items = activityTimeline.buildActivityTimeline(messageContent, messageStatus, {
152
+ waitingTools,
153
+ passThroughTools
154
+ });
155
+ return items.length > 0 ? items : EMPTY_TIMELINE;
156
+ }, [messageContent, messageStatus, waitingTools, passThroughTools]);
157
+ const phase = react.useMemo(
158
+ () => activityTimeline.resolveActivityPhase(messageStatus, timeline, { waitingForInput }),
159
+ [messageStatus, timeline, waitingForInput]
160
+ );
161
+ const toolCount = activityTimeline.countActivityTools(timeline);
162
+ const { expanded, toggleExpanded } = useActivityExpansion({
163
+ expansionKey: expansionKeyProp ?? messageId,
164
+ phase,
165
+ expandWhileWaiting
166
+ });
167
+ const generatedId = react.useId().replace(/[^A-Za-z0-9_-]/g, "");
168
+ const detailsPanelId = `aui-sg-details-${generatedId}`;
169
+ const statusId = `aui-sg-status-${generatedId}`;
170
+ const primaryDisclosureRef = react.useRef(null);
171
+ const grouping = react.useMemo(
172
+ () => activityTimeline.excludeFinalTextFromGroups(groupingFunction$1 ?? groupingFunction.createToolBasedGroupingFunction(getToolGroupKey)),
173
+ [groupingFunction$1, getToolGroupKey]
174
+ );
175
+ const groupingContext = react.useMemo(() => ({ groupingFunction: grouping }), [grouping]);
176
+ const components = react.useMemo(
177
+ () => ({
178
+ tools: { ...toolUIs ? { by_name: toolUIs } : {}, Fallback: ToolFallbackComponent },
179
+ Text: TextComponent,
180
+ ...ReasoningComponent ? { Reasoning: ReasoningComponent } : {},
181
+ Group: GroupComponent
182
+ }),
183
+ [toolUIs, ToolFallbackComponent, TextComponent, ReasoningComponent, GroupComponent]
184
+ );
185
+ const isActive = phase === "running" || phase === "waiting";
186
+ const hasActivity = timeline.length > 0 || phase !== "complete";
187
+ if (!hasActivity) return null;
188
+ const detailsMounted = isActive || expanded;
189
+ const visibleItems = timeline.slice(-Math.max(1, maxVisibleSteps));
190
+ const hiddenCount = timeline.length - visibleItems.length;
191
+ const latestStatus = phase === "waiting" ? "Waiting for your input" : phase === "error" ? "Something went wrong" : timeline.length > 0 ? activityTimeline.getActivityItemLabel(timeline[timeline.length - 1], resolveToolDisplayName) : "Planning approach";
192
+ const summary = [activityTimeline.getActivitySummary(timeline), ...summaryDetails ?? []].join(" · ");
193
+ const headerActions = renderHeaderActions == null ? void 0 : renderHeaderActions({ phase, messageContent });
194
+ const runningMeta = isActive ? renderRunningMeta == null ? void 0 : renderRunningMeta({ phase }) : null;
195
+ const hideDetails = () => {
196
+ toggleExpanded();
197
+ queueMicrotask(() => {
198
+ var _a;
199
+ return (_a = primaryDisclosureRef.current) == null ? void 0 : _a.focus();
200
+ });
201
+ };
202
+ return /* @__PURE__ */ jsxRuntime.jsxs(
203
+ "section",
204
+ {
205
+ "data-slot": "super-grouping-card",
206
+ "data-phase": phase,
207
+ "data-tool-count": toolCount,
208
+ className: cnfast.cn(
209
+ "my-3 min-w-0 overflow-hidden rounded-2xl border transition-colors duration-200",
210
+ phase === "error" ? "border-destructive/30 bg-destructive/5" : phase === "waiting" ? "border-amber-200 bg-amber-50/40 dark:border-amber-500/30 dark:bg-amber-500/10" : "border-border/60 bg-muted/10",
211
+ className,
212
+ classNames == null ? void 0 : classNames.root
213
+ ),
214
+ "aria-busy": phase === "running" ? "true" : "false",
215
+ "aria-describedby": statusId,
216
+ children: [
217
+ phase === "complete" ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center", children: [
218
+ /* @__PURE__ */ jsxRuntime.jsxs(
219
+ "button",
220
+ {
221
+ ref: primaryDisclosureRef,
222
+ type: "button",
223
+ onClick: toggleExpanded,
224
+ "aria-expanded": expanded,
225
+ "aria-controls": detailsPanelId,
226
+ className: "flex min-w-0 flex-1 items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-muted/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
227
+ children: [
228
+ /* @__PURE__ */ jsxRuntime.jsx(SummaryIcon, { timeline }),
229
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 truncate text-[12px] text-muted-foreground", children: summary })
230
+ ]
231
+ }
232
+ ),
233
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 items-center gap-1 pr-3 pl-1", children: [
234
+ headerActions,
235
+ /* @__PURE__ */ jsxRuntime.jsx(
236
+ "button",
237
+ {
238
+ type: "button",
239
+ onClick: toggleExpanded,
240
+ "aria-label": expanded ? "Hide run details" : "Show run details",
241
+ "aria-expanded": expanded,
242
+ "aria-controls": detailsPanelId,
243
+ className: "flex items-center justify-center rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted/40 hover:text-foreground",
244
+ children: expanded ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-3.5" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-3.5" })
245
+ }
246
+ )
247
+ ] })
248
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
249
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center justify-between gap-2 px-4 pt-4 pb-2", children: [
250
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [
251
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "truncate text-[13px] font-semibold text-foreground", children: phase === "error" ? "Something went wrong" : phase === "waiting" ? "Waiting for you" : "Athena is working" }),
252
+ phase === "running" ? /* @__PURE__ */ jsxRuntime.jsx(PulsingDots, {}) : null
253
+ ] }),
254
+ headerActions ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 items-center gap-1", children: headerActions }) : null
255
+ ] }),
256
+ runningMeta ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-1", children: runningMeta }) : null,
257
+ phase === "running" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-1", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-[2px] w-full overflow-hidden rounded-full bg-muted/40", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-1/3 rounded-full bg-gradient-to-r from-blue-400 to-indigo-400 animate-[aui-sg-shimmer-bar_1.5s_ease-in-out_infinite] motion-reduce:animate-none" }) }) }) : null,
258
+ visibleItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "space-y-1 px-4 pt-1.5 pb-1", "aria-label": "Work status updates", children: [
259
+ hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "pl-[22px] text-[11px] text-muted-foreground/70", children: [
260
+ hiddenCount,
261
+ " earlier ",
262
+ hiddenCount === 1 ? "step" : "steps"
263
+ ] }) : null,
264
+ visibleItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
265
+ "li",
266
+ {
267
+ className: "flex min-w-0 items-start gap-2 text-[12px]",
268
+ children: [
269
+ /* @__PURE__ */ jsxRuntime.jsx(StepIcon, { item }),
270
+ item.kind === "reasoning" ? item.text.trim() ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "line-clamp-2 min-w-0 flex-1 italic leading-relaxed text-muted-foreground", children: item.text }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shimmer min-w-0 flex-1 leading-relaxed text-muted-foreground", children: "Thinking…" }) : /* @__PURE__ */ jsxRuntime.jsx(
271
+ "span",
272
+ {
273
+ className: cnfast.cn(
274
+ "min-w-0 flex-1 truncate leading-relaxed",
275
+ item.state === "complete" ? "text-muted-foreground/70" : "text-foreground/80"
276
+ ),
277
+ children: activityTimeline.getActivityItemLabel(item, resolveToolDisplayName)
278
+ }
279
+ )
280
+ ]
281
+ },
282
+ `${item.kind}-${hiddenCount + index}`
283
+ ))
284
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pt-1 pb-2", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "shimmer text-[12px] text-muted-foreground", children: "Planning approach..." }) }),
285
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pb-3 pt-0.5", children: /* @__PURE__ */ jsxRuntime.jsxs(
286
+ "button",
287
+ {
288
+ ref: primaryDisclosureRef,
289
+ type: "button",
290
+ onClick: toggleExpanded,
291
+ "aria-expanded": expanded,
292
+ "aria-controls": detailsPanelId,
293
+ className: "flex items-center gap-1 rounded px-1 py-0.5 text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
294
+ children: [
295
+ expanded ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDown, { className: "size-3" }) : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-3" }),
296
+ expanded ? "Hide details" : "Show details"
297
+ ]
298
+ }
299
+ ) })
300
+ ] }),
301
+ /* @__PURE__ */ jsxRuntime.jsx("output", { id: statusId, "aria-live": "polite", "aria-atomic": "true", className: "sr-only", children: latestStatus }),
302
+ detailsMounted ? /* @__PURE__ */ jsxRuntime.jsxs(
303
+ "div",
304
+ {
305
+ id: detailsPanelId,
306
+ role: "region",
307
+ "aria-label": "Run details",
308
+ hidden: !expanded,
309
+ className: cnfast.cn(
310
+ "space-y-2 overflow-hidden border-t border-border/60 bg-background/80 px-4 py-4",
311
+ classNames == null ? void 0 : classNames.details
312
+ ),
313
+ children: [
314
+ /* @__PURE__ */ jsxRuntime.jsx(CollapsibleGroup.SuperGroupingProvider, { value: groupingContext, children: /* @__PURE__ */ jsxRuntime.jsx(react$1.MessagePrimitive.Unstable_PartsGrouped, { groupingFunction: grouping, components }) }),
315
+ /* @__PURE__ */ jsxRuntime.jsxs(
316
+ "button",
317
+ {
318
+ type: "button",
319
+ onClick: hideDetails,
320
+ "aria-controls": detailsPanelId,
321
+ "aria-expanded": "true",
322
+ className: "mx-auto mt-3 flex items-center gap-1 rounded-md px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/40 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
323
+ children: [
324
+ /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUp, { className: "size-3" }),
325
+ "Hide details"
326
+ ]
327
+ }
328
+ )
329
+ ]
330
+ }
331
+ ) : null
332
+ ]
333
+ }
334
+ );
335
+ });
336
+ const SuperGroupingFinalText = react.memo(function SuperGroupingFinalText2({
337
+ TextComponent
338
+ }) {
339
+ const messageContent = react$1.useAuiState(
340
+ (s) => s.message.role === "assistant" ? s.message.content : EMPTY_CONTENT
341
+ );
342
+ const statusType = react$1.useAuiState((s) => {
343
+ var _a;
344
+ return (_a = s.message.status) == null ? void 0 : _a.type;
345
+ });
346
+ const finalText = react.useMemo(() => activityTimeline.getFinalText(messageContent), [messageContent]);
347
+ if (!finalText) return null;
348
+ return /* @__PURE__ */ jsxRuntime.jsx(
349
+ TextComponent,
350
+ {
351
+ type: "text",
352
+ text: finalText,
353
+ status: statusType === "running" || statusType === "requires-action" ? { type: "running" } : { type: "complete" }
354
+ }
355
+ );
356
+ });
357
+ exports.SuperGroupingCard = SuperGroupingCard;
358
+ exports.SuperGroupingFinalText = SuperGroupingFinalText;
359
+ exports.resetRememberedExpansionsForTests = resetRememberedExpansionsForTests;
360
+ exports.useActivityExpansion = useActivityExpansion;
361
+ //# sourceMappingURL=SuperGroupingCard.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuperGroupingCard.cjs","sources":["../../../src/chat/super-grouping/SuperGroupingCard.tsx"],"sourcesContent":["'use client';\n\nimport type {\n ReasoningMessagePartComponent,\n TextMessagePartComponent,\n ThreadAssistantMessagePart,\n ToolCallMessagePartComponent,\n ToolCallMessagePartProps,\n} from '@assistant-ui/react';\nimport { MessagePrimitive, useAuiState } from '@assistant-ui/react';\nimport {\n AlertCircle,\n Brain,\n Check,\n ChevronDown,\n ChevronRight,\n ChevronUp,\n Circle,\n Pause,\n X,\n} from 'lucide-react';\nimport {\n type ComponentType,\n memo,\n type ReactNode,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { cn } from '../../lib/utils';\nimport { ToolFallback } from '../../tools/tool-fallback';\nimport {\n type ActivityItem,\n type ActivityPhase,\n buildActivityTimeline,\n countActivityTools,\n excludeFinalTextFromGroups,\n getActivityItemLabel,\n getActivitySummary,\n getFinalText,\n resolveActivityPhase,\n} from './activity-timeline';\nimport { CollapsibleGroup, type CollapsibleGroupProps, SuperGroupingProvider } from './CollapsibleGroup';\nimport { createToolBasedGroupingFunction, type GroupingFunction } from './grouping-function';\nimport { defaultGetToolGroupKey, type GetToolGroupKey } from './toolkit-map';\n\nconst DEFAULT_MAX_VISIBLE_STEPS = 3;\nconst MAX_REMEMBERED_EXPANSIONS = 200;\nconst EMPTY_TIMELINE: ActivityItem[] = [];\nconst EMPTY_CONTENT: readonly ThreadAssistantMessagePart[] = [];\n\n// ─── Disclosure memory ─────────────────────────────────────────────────\n\n/**\n * Session-local memory of which cards the user opened, keyed by the host's\n * expansion key (the message id by default; the Chrome extension keys by\n * thread + position so a streaming message keeps its choice when it receives\n * its stable id). Bounded so a long session cannot grow it without limit.\n */\nconst rememberedExpansions = new Map<string, boolean>();\n\nfunction rememberExpansion(key: string, expanded: boolean): void {\n rememberedExpansions.delete(key);\n rememberedExpansions.set(key, expanded);\n while (rememberedExpansions.size > MAX_REMEMBERED_EXPANSIONS) {\n const oldestKey = rememberedExpansions.keys().next().value;\n if (oldestKey === undefined) break;\n rememberedExpansions.delete(oldestKey);\n }\n}\n\nexport function resetRememberedExpansionsForTests(): void {\n rememberedExpansions.clear();\n}\n\n/**\n * The details disclosure: remembered per expansion key, and — when the host\n * opts in — opened once when the turn starts waiting on the person, so the\n * approval controls inside the details are visible without a click.\n */\nexport function useActivityExpansion({\n expansionKey,\n phase,\n expandWhileWaiting = false,\n}: {\n expansionKey: string;\n phase: ActivityPhase;\n expandWhileWaiting?: boolean;\n}) {\n const [userExpanded, setUserExpanded] = useState<boolean | undefined>(() =>\n rememberedExpansions.get(expansionKey),\n );\n const [waitingAutoExpanded, setWaitingAutoExpanded] = useState(false);\n const previousRef = useRef({ expansionKey, phase });\n\n useEffect(() => {\n setUserExpanded(rememberedExpansions.get(expansionKey));\n setWaitingAutoExpanded(false);\n }, [expansionKey]);\n\n useEffect(() => {\n const previous = previousRef.current;\n if (expandWhileWaiting && previous.expansionKey === expansionKey) {\n if (previous.phase !== 'waiting' && phase === 'waiting') {\n setWaitingAutoExpanded(true);\n } else if (previous.phase === 'waiting' && phase !== 'waiting') {\n setWaitingAutoExpanded(false);\n }\n }\n previousRef.current = { expansionKey, phase };\n }, [expansionKey, phase, expandWhileWaiting]);\n\n const expanded =\n waitingAutoExpanded || (userExpanded ?? (expandWhileWaiting && phase === 'waiting'));\n const toggleExpanded = () => {\n const next = !expanded;\n setWaitingAutoExpanded(false);\n rememberExpansion(expansionKey, next);\n setUserExpanded(next);\n };\n\n return { expanded, toggleExpanded };\n}\n\n// ─── Pieces ────────────────────────────────────────────────────────────\n\nfunction PulsingDots() {\n return (\n <span className=\"inline-flex items-center gap-[3px]\" aria-hidden=\"true\">\n <span className=\"size-[5px] rounded-full bg-foreground/80 animate-[aui-sg-pulse-dot_1.4s_ease-in-out_infinite]\" />\n <span className=\"size-[5px] rounded-full bg-foreground/80 animate-[aui-sg-pulse-dot_1.4s_ease-in-out_0.2s_infinite]\" />\n <span className=\"size-[5px] rounded-full bg-foreground/80 animate-[aui-sg-pulse-dot_1.4s_ease-in-out_0.4s_infinite]\" />\n <style>{`\n @keyframes aui-sg-pulse-dot {\n 0%, 80%, 100% { opacity: 0.2; transform: scale(0.8); }\n 40% { opacity: 1; transform: scale(1); }\n }\n @keyframes aui-sg-shimmer-bar {\n 0% { transform: translateX(-100%); }\n 100% { transform: translateX(400%); }\n }\n `}</style>\n </span>\n );\n}\n\nfunction StepIcon({ item }: { item: ActivityItem }) {\n if (item.kind === 'reasoning') {\n return (\n <Brain\n aria-hidden=\"true\"\n className={cn(\n 'mt-[1px] size-3.5 shrink-0',\n item.state === 'running' ? 'text-blue-500 motion-safe:animate-pulse' : 'text-muted-foreground',\n )}\n />\n );\n }\n switch (item.state) {\n case 'complete':\n return <Check aria-hidden=\"true\" className=\"mt-[1px] size-3.5 shrink-0 text-emerald-500\" />;\n case 'rejected':\n return <X aria-hidden=\"true\" className=\"mt-[1px] size-3.5 shrink-0 text-muted-foreground\" />;\n case 'cancelled':\n return <Circle aria-hidden=\"true\" className=\"mt-[1px] size-3.5 shrink-0 text-muted-foreground\" />;\n case 'error':\n return <AlertCircle aria-hidden=\"true\" className=\"mt-[1px] size-3.5 shrink-0 text-destructive\" />;\n case 'waiting':\n return <Circle aria-hidden=\"true\" className=\"mt-[1px] size-3.5 shrink-0 text-amber-500\" />;\n case 'paused':\n return <Pause aria-hidden=\"true\" className=\"mt-[1px] size-3.5 shrink-0 text-amber-600\" />;\n case 'running':\n return (\n <span className=\"flex size-3.5 shrink-0 items-center justify-center\" aria-hidden=\"true\">\n <span className=\"size-1.5 rounded-full bg-blue-500 motion-safe:animate-pulse\" />\n </span>\n );\n }\n}\n\nfunction SummaryIcon({ timeline }: { timeline: readonly ActivityItem[] }) {\n const tools = timeline.filter((item) => item.kind === 'tool');\n if (tools.some((item) => item.state === 'error' || item.state === 'rejected')) {\n return <X aria-hidden=\"true\" className=\"size-3.5 shrink-0 text-muted-foreground\" />;\n }\n if (tools.some((item) => item.state === 'cancelled')) {\n return <Circle aria-hidden=\"true\" className=\"size-3.5 shrink-0 text-muted-foreground\" />;\n }\n if (tools.some((item) => item.state === 'paused')) {\n return <Pause aria-hidden=\"true\" className=\"size-3.5 shrink-0 text-amber-600\" />;\n }\n return <Check aria-hidden=\"true\" className=\"size-3.5 shrink-0 text-emerald-500\" />;\n}\n\n// ─── Card ──────────────────────────────────────────────────────────────\n\nexport interface SuperGroupingCardProps {\n /** Tool UIs to render inside the details panel, by tool name (registered tool UIs still apply). */\n toolUIs?: Record<string, ToolCallMessagePartComponent>;\n /** Fallback for tools without a UI; the SDK's `ToolFallback` by default. */\n ToolFallback?: ComponentType<ToolCallMessagePartProps>;\n /** Text renderer for the details panel. */\n TextComponent: TextMessagePartComponent;\n /** Reasoning renderer for the details panel. */\n ReasoningComponent?: ReasoningMessagePartComponent;\n /** Per-toolkit block inside the details panel; the SDK's `CollapsibleGroup` by default. */\n GroupComponent?: ComponentType<CollapsibleGroupProps>;\n /** Toolkit lookup driving the per-toolkit sub-grouping; the SDK's static map by default. */\n getToolGroupKey?: GetToolGroupKey;\n /** A complete grouping function, when the host builds its own (overrides `getToolGroupKey`). */\n groupingFunction?: GroupingFunction;\n /** Tools whose unresolved call means the turn is waiting on the person (see `buildActivityTimeline`). */\n waitingTools?: ReadonlySet<string>;\n /** Tools whose result is a relayed application payload (see `buildActivityTimeline`). */\n passThroughTools?: ReadonlySet<string>;\n /**\n * Host assertion that the turn is waiting on the person. The SDK derives waiting\n * from `requires-action` and waiting tools itself; no in-repo host passes this.\n */\n waitingForInput?: boolean;\n /** Names tools the shared registry has no entry for (Olympus's tool catalog). */\n resolveToolDisplayName?: (toolName: string) => string | undefined;\n /** Key the disclosure choice is remembered under; the message id by default. */\n expansionKey?: string;\n /** Open the details once when the turn starts waiting on the person. */\n expandWhileWaiting?: boolean;\n /** How many latest steps the live list shows before folding the rest into \"N earlier steps\". */\n maxVisibleSteps?: number;\n /** Extra segments after the collapsed summary (\"1m 23s\", \"12.4k tokens\"), joined with \" · \". */\n summaryDetails?: readonly string[];\n /** Header controls beside the title (a stop button while running, a changes button once done). */\n renderHeaderActions?: (context: {\n phase: ActivityPhase;\n messageContent: readonly ThreadAssistantMessagePart[];\n }) => ReactNode;\n /** A line under the header while the turn is live (an elapsed timer). */\n renderRunningMeta?: (context: { phase: ActivityPhase }) => ReactNode;\n className?: string;\n classNames?: { root?: string; details?: string };\n}\n\n/**\n * The grouped (\"conversational\") view of an assistant turn: one \"Athena is\n * working\" card while the turn runs, listing its latest steps; a collapsed\n * \"Used N tools\" summary once it ends, with the full tool cards behind a\n * details disclosure. The answer itself renders below the card\n * (`SuperGroupingFinalText`). Shared by the SDK's `AthenaChat`, Olympus, and\n * the Chrome extension, which supply their own text/tool renderers and the\n * host-specific controls through the slots.\n *\n * The details panel stays mounted (visually hidden) while the turn is live so\n * the tool UIs inside run their effects — an asset-streaming card's follow\n * mode must not wait for \"Show details\".\n *\n * Selector discipline: raw reads only (`message.content`, `message.status`,\n * `message.id`); every derivation runs in `useMemo` — a selector that returned\n * a fresh array would tear through `useSyncExternalStore`.\n */\nexport const SuperGroupingCard = memo(function SuperGroupingCard({\n toolUIs,\n ToolFallback: ToolFallbackComponent = ToolFallback,\n TextComponent,\n ReasoningComponent,\n GroupComponent = CollapsibleGroup,\n getToolGroupKey = defaultGetToolGroupKey,\n groupingFunction,\n waitingTools,\n passThroughTools,\n waitingForInput = false,\n resolveToolDisplayName,\n expansionKey: expansionKeyProp,\n expandWhileWaiting = false,\n maxVisibleSteps = DEFAULT_MAX_VISIBLE_STEPS,\n summaryDetails,\n renderHeaderActions,\n renderRunningMeta,\n className,\n classNames,\n}: SuperGroupingCardProps) {\n const messageId = useAuiState((s) => s.message.id);\n const messageContent = useAuiState((s) =>\n s.message.role === 'assistant' ? s.message.content : EMPTY_CONTENT,\n );\n const messageStatus = useAuiState((s) => s.message.status);\n\n const timeline = useMemo(() => {\n const items = buildActivityTimeline(messageContent, messageStatus, {\n waitingTools,\n passThroughTools,\n });\n return items.length > 0 ? items : EMPTY_TIMELINE;\n }, [messageContent, messageStatus, waitingTools, passThroughTools]);\n const phase = useMemo(\n () => resolveActivityPhase(messageStatus, timeline, { waitingForInput }),\n [messageStatus, timeline, waitingForInput],\n );\n const toolCount = countActivityTools(timeline);\n\n const { expanded, toggleExpanded } = useActivityExpansion({\n expansionKey: expansionKeyProp ?? messageId,\n phase,\n expandWhileWaiting,\n });\n const generatedId = useId().replace(/[^A-Za-z0-9_-]/g, '');\n const detailsPanelId = `aui-sg-details-${generatedId}`;\n const statusId = `aui-sg-status-${generatedId}`;\n const primaryDisclosureRef = useRef<HTMLButtonElement>(null);\n\n const grouping = useMemo(\n () => excludeFinalTextFromGroups(groupingFunction ?? createToolBasedGroupingFunction(getToolGroupKey)),\n [groupingFunction, getToolGroupKey],\n );\n const groupingContext = useMemo(() => ({ groupingFunction: grouping }), [grouping]);\n const components = useMemo(\n () => ({\n tools: { ...(toolUIs ? { by_name: toolUIs } : {}), Fallback: ToolFallbackComponent },\n Text: TextComponent,\n ...(ReasoningComponent ? { Reasoning: ReasoningComponent } : {}),\n Group: GroupComponent,\n }),\n [toolUIs, ToolFallbackComponent, TextComponent, ReasoningComponent, GroupComponent],\n );\n\n const isActive = phase === 'running' || phase === 'waiting';\n const hasActivity = timeline.length > 0 || phase !== 'complete';\n if (!hasActivity) return null;\n\n const detailsMounted = isActive || expanded;\n const visibleItems = timeline.slice(-Math.max(1, maxVisibleSteps));\n const hiddenCount = timeline.length - visibleItems.length;\n const latestStatus =\n phase === 'waiting'\n ? 'Waiting for your input'\n : phase === 'error'\n ? 'Something went wrong'\n : timeline.length > 0\n ? getActivityItemLabel(timeline[timeline.length - 1], resolveToolDisplayName)\n : 'Planning approach';\n const summary = [getActivitySummary(timeline), ...(summaryDetails ?? [])].join(' · ');\n const headerActions = renderHeaderActions?.({ phase, messageContent });\n const runningMeta = isActive ? renderRunningMeta?.({ phase }) : null;\n\n const hideDetails = () => {\n toggleExpanded();\n queueMicrotask(() => primaryDisclosureRef.current?.focus());\n };\n\n return (\n <section\n data-slot=\"super-grouping-card\"\n data-phase={phase}\n data-tool-count={toolCount}\n className={cn(\n 'my-3 min-w-0 overflow-hidden rounded-2xl border transition-colors duration-200',\n phase === 'error'\n ? 'border-destructive/30 bg-destructive/5'\n : phase === 'waiting'\n ? 'border-amber-200 bg-amber-50/40 dark:border-amber-500/30 dark:bg-amber-500/10'\n : 'border-border/60 bg-muted/10',\n className,\n classNames?.root,\n )}\n aria-busy={phase === 'running' ? 'true' : 'false'}\n aria-describedby={statusId}\n >\n {phase === 'complete' ? (\n <div className=\"flex w-full items-center\">\n <button\n ref={primaryDisclosureRef}\n type=\"button\"\n onClick={toggleExpanded}\n aria-expanded={expanded}\n aria-controls={detailsPanelId}\n className=\"flex min-w-0 flex-1 items-center gap-2 px-4 py-3 text-left transition-colors hover:bg-muted/30 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring\"\n >\n <SummaryIcon timeline={timeline} />\n <span className=\"min-w-0 flex-1 truncate text-[12px] text-muted-foreground\">{summary}</span>\n </button>\n <div className=\"flex shrink-0 items-center gap-1 pr-3 pl-1\">\n {headerActions}\n <button\n type=\"button\"\n onClick={toggleExpanded}\n aria-label={expanded ? 'Hide run details' : 'Show run details'}\n aria-expanded={expanded}\n aria-controls={detailsPanelId}\n className=\"flex items-center justify-center rounded-md p-1 text-muted-foreground transition-colors hover:bg-muted/40 hover:text-foreground\"\n >\n {expanded ? <ChevronDown className=\"size-3.5\" /> : <ChevronRight className=\"size-3.5\" />}\n </button>\n </div>\n </div>\n ) : (\n <>\n <div className=\"flex min-w-0 items-center justify-between gap-2 px-4 pt-4 pb-2\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <h3 className=\"truncate text-[13px] font-semibold text-foreground\">\n {phase === 'error'\n ? 'Something went wrong'\n : phase === 'waiting'\n ? 'Waiting for you'\n : 'Athena is working'}\n </h3>\n {phase === 'running' ? <PulsingDots /> : null}\n </div>\n {headerActions ? (\n <div className=\"flex shrink-0 items-center gap-1\">{headerActions}</div>\n ) : null}\n </div>\n\n {runningMeta ? <div className=\"px-4 pb-1\">{runningMeta}</div> : null}\n\n {phase === 'running' ? (\n <div className=\"px-4 pb-1\">\n <div className=\"h-[2px] w-full overflow-hidden rounded-full bg-muted/40\">\n <div className=\"h-full w-1/3 rounded-full bg-gradient-to-r from-blue-400 to-indigo-400 animate-[aui-sg-shimmer-bar_1.5s_ease-in-out_infinite] motion-reduce:animate-none\" />\n </div>\n </div>\n ) : null}\n\n {visibleItems.length > 0 ? (\n <ul className=\"space-y-1 px-4 pt-1.5 pb-1\" aria-label=\"Work status updates\">\n {hiddenCount > 0 ? (\n <li className=\"pl-[22px] text-[11px] text-muted-foreground/70\">\n {hiddenCount} earlier {hiddenCount === 1 ? 'step' : 'steps'}\n </li>\n ) : null}\n {visibleItems.map((item, index) => (\n <li\n key={`${item.kind}-${hiddenCount + index}`}\n className=\"flex min-w-0 items-start gap-2 text-[12px]\"\n >\n <StepIcon item={item} />\n {item.kind === 'reasoning' ? (\n item.text.trim() ? (\n <span className=\"line-clamp-2 min-w-0 flex-1 italic leading-relaxed text-muted-foreground\">\n {item.text}\n </span>\n ) : (\n <span className=\"shimmer min-w-0 flex-1 leading-relaxed text-muted-foreground\">\n Thinking…\n </span>\n )\n ) : (\n <span\n className={cn(\n 'min-w-0 flex-1 truncate leading-relaxed',\n item.state === 'complete' ? 'text-muted-foreground/70' : 'text-foreground/80',\n )}\n >\n {getActivityItemLabel(item, resolveToolDisplayName)}\n </span>\n )}\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"px-4 pt-1 pb-2\">\n <span className=\"shimmer text-[12px] text-muted-foreground\">Planning approach...</span>\n </div>\n )}\n\n <div className=\"px-4 pb-3 pt-0.5\">\n <button\n ref={primaryDisclosureRef}\n type=\"button\"\n onClick={toggleExpanded}\n aria-expanded={expanded}\n aria-controls={detailsPanelId}\n className=\"flex items-center gap-1 rounded px-1 py-0.5 text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n {expanded ? <ChevronDown className=\"size-3\" /> : <ChevronRight className=\"size-3\" />}\n {expanded ? 'Hide details' : 'Show details'}\n </button>\n </div>\n </>\n )}\n\n <output id={statusId} aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {latestStatus}\n </output>\n\n {detailsMounted ? (\n <div\n id={detailsPanelId}\n role=\"region\"\n aria-label=\"Run details\"\n hidden={!expanded}\n className={cn(\n 'space-y-2 overflow-hidden border-t border-border/60 bg-background/80 px-4 py-4',\n classNames?.details,\n )}\n >\n <SuperGroupingProvider value={groupingContext}>\n <MessagePrimitive.Unstable_PartsGrouped groupingFunction={grouping} components={components} />\n </SuperGroupingProvider>\n <button\n type=\"button\"\n onClick={hideDetails}\n aria-controls={detailsPanelId}\n aria-expanded=\"true\"\n className=\"mx-auto mt-3 flex items-center gap-1 rounded-md px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-muted/40 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n >\n <ChevronUp className=\"size-3\" />\n Hide details\n </button>\n </div>\n ) : null}\n </section>\n );\n});\n\n/**\n * The turn's visible answer, rendered below the card: the text after the last\n * tool call (all of it when the turn called no tools), streaming while the\n * turn is live so the person reads the answer as it arrives.\n */\nexport const SuperGroupingFinalText = memo(function SuperGroupingFinalText({\n TextComponent,\n}: {\n TextComponent: TextMessagePartComponent;\n}) {\n const messageContent = useAuiState((s) =>\n s.message.role === 'assistant' ? s.message.content : EMPTY_CONTENT,\n );\n const statusType = useAuiState((s) => s.message.status?.type);\n const finalText = useMemo(() => getFinalText(messageContent), [messageContent]);\n\n if (!finalText) return null;\n return (\n <TextComponent\n type=\"text\"\n text={finalText}\n status={\n statusType === 'running' || statusType === 'requires-action'\n ? { type: 'running' }\n : { type: 'complete' }\n }\n />\n );\n});\n"],"names":["useState","useRef","useEffect","jsxs","jsx","Brain","cn","Check","X","Circle","AlertCircle","Pause","memo","SuperGroupingCard","ToolFallback","CollapsibleGroup","defaultGetToolGroupKey","groupingFunction","useAuiState","useMemo","buildActivityTimeline","resolveActivityPhase","countActivityTools","useId","excludeFinalTextFromGroups","createToolBasedGroupingFunction","getActivityItemLabel","getActivitySummary","ChevronDown","ChevronRight","Fragment","SuperGroupingProvider","MessagePrimitive","ChevronUp","SuperGroupingFinalText","getFinalText"],"mappings":"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"}
@@ -1,35 +1,95 @@
1
- import type { ReasoningMessagePartComponent, TextMessagePartComponent, ToolCallMessagePartComponent } from '@assistant-ui/react';
1
+ import type { ReasoningMessagePartComponent, TextMessagePartComponent, ThreadAssistantMessagePart, ToolCallMessagePartComponent, ToolCallMessagePartProps } from '@assistant-ui/react';
2
+ import { type ComponentType, type ReactNode } from 'react';
3
+ import { type ActivityPhase } from './activity-timeline';
4
+ import { type CollapsibleGroupProps } from './CollapsibleGroup';
5
+ import { type GroupingFunction } from './grouping-function';
2
6
  import { type GetToolGroupKey } from './toolkit-map';
7
+ export declare function resetRememberedExpansionsForTests(): void;
3
8
  /**
4
- * Renders only the text emitted after the last tool-call as the assistant's
5
- * final response. Ported from olympus `SuperGroupingFinalText`. Hidden while
6
- * the message is still running call it as a sibling of `SuperGroupingCard`
7
- * after the run completes.
9
+ * The details disclosure: remembered per expansion key, and when the host
10
+ * opts in opened once when the turn starts waiting on the person, so the
11
+ * approval controls inside the details are visible without a click.
8
12
  */
9
- export declare const SuperGroupingFinalText: import("react").MemoExoticComponent<({ TextComponent, }: {
10
- TextComponent: TextMessagePartComponent;
11
- }) => import("react/jsx-runtime").JSX.Element | null>;
13
+ export declare function useActivityExpansion({ expansionKey, phase, expandWhileWaiting, }: {
14
+ expansionKey: string;
15
+ phase: ActivityPhase;
16
+ expandWhileWaiting?: boolean;
17
+ }): {
18
+ expanded: boolean;
19
+ toggleExpanded: () => void;
20
+ };
12
21
  export interface SuperGroupingCardProps {
13
- /** Tool UIs to render inside the details panel. */
14
- toolUIs: Record<string, ToolCallMessagePartComponent>;
22
+ /** Tool UIs to render inside the details panel, by tool name (registered tool UIs still apply). */
23
+ toolUIs?: Record<string, ToolCallMessagePartComponent>;
24
+ /** Fallback for tools without a UI; the SDK's `ToolFallback` by default. */
25
+ ToolFallback?: ComponentType<ToolCallMessagePartProps>;
15
26
  /** Text renderer for the details panel. */
16
27
  TextComponent: TextMessagePartComponent;
17
28
  /** Reasoning renderer for the details panel. */
18
29
  ReasoningComponent?: ReasoningMessagePartComponent;
19
- /** Override the default toolkit lookup used to drive sub-grouping. */
30
+ /** Per-toolkit block inside the details panel; the SDK's `CollapsibleGroup` by default. */
31
+ GroupComponent?: ComponentType<CollapsibleGroupProps>;
32
+ /** Toolkit lookup driving the per-toolkit sub-grouping; the SDK's static map by default. */
20
33
  getToolGroupKey?: GetToolGroupKey;
34
+ /** A complete grouping function, when the host builds its own (overrides `getToolGroupKey`). */
35
+ groupingFunction?: GroupingFunction;
36
+ /** Tools whose unresolved call means the turn is waiting on the person (see `buildActivityTimeline`). */
37
+ waitingTools?: ReadonlySet<string>;
38
+ /** Tools whose result is a relayed application payload (see `buildActivityTimeline`). */
39
+ passThroughTools?: ReadonlySet<string>;
40
+ /**
41
+ * Host assertion that the turn is waiting on the person. The SDK derives waiting
42
+ * from `requires-action` and waiting tools itself; no in-repo host passes this.
43
+ */
44
+ waitingForInput?: boolean;
45
+ /** Names tools the shared registry has no entry for (Olympus's tool catalog). */
46
+ resolveToolDisplayName?: (toolName: string) => string | undefined;
47
+ /** Key the disclosure choice is remembered under; the message id by default. */
48
+ expansionKey?: string;
49
+ /** Open the details once when the turn starts waiting on the person. */
50
+ expandWhileWaiting?: boolean;
51
+ /** How many latest steps the live list shows before folding the rest into "N earlier steps". */
52
+ maxVisibleSteps?: number;
53
+ /** Extra segments after the collapsed summary ("1m 23s", "12.4k tokens"), joined with " · ". */
54
+ summaryDetails?: readonly string[];
55
+ /** Header controls beside the title (a stop button while running, a changes button once done). */
56
+ renderHeaderActions?: (context: {
57
+ phase: ActivityPhase;
58
+ messageContent: readonly ThreadAssistantMessagePart[];
59
+ }) => ReactNode;
60
+ /** A line under the header while the turn is live (an elapsed timer). */
61
+ renderRunningMeta?: (context: {
62
+ phase: ActivityPhase;
63
+ }) => ReactNode;
64
+ className?: string;
65
+ classNames?: {
66
+ root?: string;
67
+ details?: string;
68
+ };
21
69
  }
22
70
  /**
23
- * Ported from `olympus/src/components/chat/sidebar/SuperGroupingCard.tsx`.
71
+ * The grouped ("conversational") view of an assistant turn: one "Athena is
72
+ * working" card while the turn runs, listing its latest steps; a collapsed
73
+ * "Used N tools" summary once it ends, with the full tool cards behind a
74
+ * details disclosure. The answer itself renders below the card
75
+ * (`SuperGroupingFinalText`). Shared by the SDK's `AthenaChat`, Olympus, and
76
+ * the Chrome extension, which supply their own text/tool renderers and the
77
+ * host-specific controls through the slots.
24
78
  *
25
- * Trimmed to drop Olympus-only deps:
26
- * - `useChatAllotmentStore.isWaitingForUserInput` (Olympus allotment system)dropped.
27
- * - `useUserIsAdmin` admin-only details toggle replaced with always-visible toggle.
28
- * - `stopActiveComposerRun` stop button — dropped; users stop from the composer.
79
+ * The details panel stays mounted (visually hidden) while the turn is live so
80
+ * the tool UIs inside run their effects an asset-streaming card's follow
81
+ * mode must not wait for "Show details".
29
82
  *
30
- * Renders a single "Athena is working" card during execution and collapses to
31
- * "Used N tools" on completion. The expanded details panel uses
32
- * `MessagePrimitive.Unstable_PartsGrouped` (assistant-ui's legacy grouping
33
- * API, still exported as deprecated) with a per-toolkit `CollapsibleGroup`.
83
+ * Selector discipline: raw reads only (`message.content`, `message.status`,
84
+ * `message.id`); every derivation runs in `useMemo` a selector that returned
85
+ * a fresh array would tear through `useSyncExternalStore`.
86
+ */
87
+ export declare const SuperGroupingCard: import("react").MemoExoticComponent<({ toolUIs, ToolFallback: ToolFallbackComponent, TextComponent, ReasoningComponent, GroupComponent, getToolGroupKey, groupingFunction, waitingTools, passThroughTools, waitingForInput, resolveToolDisplayName, expansionKey: expansionKeyProp, expandWhileWaiting, maxVisibleSteps, summaryDetails, renderHeaderActions, renderRunningMeta, className, classNames, }: SuperGroupingCardProps) => import("react/jsx-runtime").JSX.Element | null>;
88
+ /**
89
+ * The turn's visible answer, rendered below the card: the text after the last
90
+ * tool call (all of it when the turn called no tools), streaming while the
91
+ * turn is live so the person reads the answer as it arrives.
34
92
  */
35
- export declare const SuperGroupingCard: import("react").MemoExoticComponent<({ toolUIs, TextComponent, ReasoningComponent, getToolGroupKey, }: SuperGroupingCardProps) => import("react/jsx-runtime").JSX.Element | null>;
93
+ export declare const SuperGroupingFinalText: import("react").MemoExoticComponent<({ TextComponent, }: {
94
+ TextComponent: TextMessagePartComponent;
95
+ }) => import("react/jsx-runtime").JSX.Element | null>;