@athenaintel/react 0.22.4 → 0.23.1

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 (350) hide show
  1. package/README.md +394 -4
  2. package/dist/chat/AthenaChat.cjs +346 -244
  3. package/dist/chat/AthenaChat.cjs.map +1 -1
  4. package/dist/chat/AthenaChat.d.ts +19 -8
  5. package/dist/chat/AthenaChat.js +350 -248
  6. package/dist/chat/AthenaChat.js.map +1 -1
  7. package/dist/chat/StatewireApprovalCard.cjs +2 -1
  8. package/dist/chat/StatewireApprovalCard.cjs.map +1 -1
  9. package/dist/chat/StatewireApprovalCard.js +2 -1
  10. package/dist/chat/StatewireApprovalCard.js.map +1 -1
  11. package/dist/chat/StatewireClientToolBridge.cjs +1 -0
  12. package/dist/chat/StatewireClientToolBridge.cjs.map +1 -1
  13. package/dist/chat/StatewireClientToolBridge.js +1 -0
  14. package/dist/chat/StatewireClientToolBridge.js.map +1 -1
  15. package/dist/chat/StatewireQueuedMessages.cjs +1 -0
  16. package/dist/chat/StatewireQueuedMessages.cjs.map +1 -1
  17. package/dist/chat/StatewireQueuedMessages.js +1 -0
  18. package/dist/chat/StatewireQueuedMessages.js.map +1 -1
  19. package/dist/chat/WaitingOnYouBanner.cjs +100 -0
  20. package/dist/chat/WaitingOnYouBanner.cjs.map +1 -0
  21. package/dist/chat/WaitingOnYouBanner.d.ts +29 -0
  22. package/dist/chat/WaitingOnYouBanner.js +100 -0
  23. package/dist/chat/WaitingOnYouBanner.js.map +1 -0
  24. package/dist/chat/athena-chat-welcome.cjs +148 -0
  25. package/dist/chat/athena-chat-welcome.cjs.map +1 -0
  26. package/dist/chat/athena-chat-welcome.d.ts +54 -0
  27. package/dist/chat/athena-chat-welcome.js +148 -0
  28. package/dist/chat/athena-chat-welcome.js.map +1 -0
  29. package/dist/chat/athena-composer-controls.cjs +76 -0
  30. package/dist/chat/athena-composer-controls.cjs.map +1 -0
  31. package/dist/chat/athena-composer-controls.d.ts +21 -0
  32. package/dist/chat/athena-composer-controls.js +76 -0
  33. package/dist/chat/athena-composer-controls.js.map +1 -0
  34. package/dist/chat/composer-keyboard-hint.cjs +61 -0
  35. package/dist/chat/composer-keyboard-hint.cjs.map +1 -0
  36. package/dist/chat/composer-keyboard-hint.d.ts +33 -0
  37. package/dist/chat/composer-keyboard-hint.js +61 -0
  38. package/dist/chat/composer-keyboard-hint.js.map +1 -0
  39. package/dist/chat/message-time.cjs +64 -0
  40. package/dist/chat/message-time.cjs.map +1 -0
  41. package/dist/chat/message-time.d.ts +45 -0
  42. package/dist/chat/message-time.js +64 -0
  43. package/dist/chat/message-time.js.map +1 -0
  44. package/dist/chat/run-activity.cjs +38 -7
  45. package/dist/chat/run-activity.cjs.map +1 -1
  46. package/dist/chat/run-activity.d.ts +14 -3
  47. package/dist/chat/run-activity.js +39 -8
  48. package/dist/chat/run-activity.js.map +1 -1
  49. package/dist/chat/statewire-client-tools.cjs +2 -1
  50. package/dist/chat/statewire-client-tools.cjs.map +1 -1
  51. package/dist/chat/statewire-client-tools.js +2 -1
  52. package/dist/chat/statewire-client-tools.js.map +1 -1
  53. package/dist/chat/super-grouping/activity-timeline.cjs +2 -1
  54. package/dist/chat/super-grouping/activity-timeline.cjs.map +1 -1
  55. package/dist/chat/super-grouping/activity-timeline.js +2 -1
  56. package/dist/chat/super-grouping/activity-timeline.js.map +1 -1
  57. package/dist/chat/thread-scroll-to-bottom.cjs +24 -0
  58. package/dist/chat/thread-scroll-to-bottom.cjs.map +1 -0
  59. package/dist/chat/thread-scroll-to-bottom.d.ts +11 -0
  60. package/dist/chat/thread-scroll-to-bottom.js +24 -0
  61. package/dist/chat/thread-scroll-to-bottom.js.map +1 -0
  62. package/dist/chat/tiptap-text.cjs +26 -95
  63. package/dist/chat/tiptap-text.cjs.map +1 -1
  64. package/dist/chat/tiptap-text.d.ts +13 -0
  65. package/dist/chat/tiptap-text.js +26 -95
  66. package/dist/chat/tiptap-text.js.map +1 -1
  67. package/dist/chat/use-athena-run-live.cjs +2 -1
  68. package/dist/chat/use-athena-run-live.cjs.map +1 -1
  69. package/dist/chat/use-athena-run-live.js +2 -1
  70. package/dist/chat/use-athena-run-live.js.map +1 -1
  71. package/dist/chat/use-statewire-approval-request.cjs +1 -0
  72. package/dist/chat/use-statewire-approval-request.cjs.map +1 -1
  73. package/dist/chat/use-statewire-approval-request.js +1 -0
  74. package/dist/chat/use-statewire-approval-request.js.map +1 -1
  75. package/dist/chat-ui/composer/tiptap-composer.cjs +39 -4
  76. package/dist/chat-ui/composer/tiptap-composer.cjs.map +1 -1
  77. package/dist/chat-ui/composer/tiptap-composer.d.ts +21 -0
  78. package/dist/chat-ui/composer/tiptap-composer.js +39 -4
  79. package/dist/chat-ui/composer/tiptap-composer.js.map +1 -1
  80. package/dist/chat-ui/index.cjs +15 -1
  81. package/dist/chat-ui/index.cjs.map +1 -1
  82. package/dist/chat-ui/index.d.ts +6 -3
  83. package/dist/chat-ui/index.js +16 -2
  84. package/dist/chat-ui/index.js.map +1 -1
  85. package/dist/chat-ui/mentions/mention-chip.cjs +31 -4
  86. package/dist/chat-ui/mentions/mention-chip.cjs.map +1 -1
  87. package/dist/chat-ui/mentions/mention-chip.js +31 -4
  88. package/dist/chat-ui/mentions/mention-chip.js.map +1 -1
  89. package/dist/chat-ui/messages/message-components.cjs +19 -1
  90. package/dist/chat-ui/messages/message-components.cjs.map +1 -1
  91. package/dist/chat-ui/messages/message-components.d.ts +13 -0
  92. package/dist/chat-ui/messages/message-components.js +19 -1
  93. package/dist/chat-ui/messages/message-components.js.map +1 -1
  94. package/dist/chat-ui/messages/runtime-message.cjs +2 -1
  95. package/dist/chat-ui/messages/runtime-message.cjs.map +1 -1
  96. package/dist/chat-ui/messages/runtime-message.js +2 -1
  97. package/dist/chat-ui/messages/runtime-message.js.map +1 -1
  98. package/dist/chat-ui/messages/statewire-continue-run.cjs +1 -0
  99. package/dist/chat-ui/messages/statewire-continue-run.cjs.map +1 -1
  100. package/dist/chat-ui/messages/statewire-continue-run.js +1 -0
  101. package/dist/chat-ui/messages/statewire-continue-run.js.map +1 -1
  102. package/dist/chat-ui/messages/user-edit-composer.cjs +3 -1
  103. package/dist/chat-ui/messages/user-edit-composer.cjs.map +1 -1
  104. package/dist/chat-ui/messages/user-edit-composer.js +3 -1
  105. package/dist/chat-ui/messages/user-edit-composer.js.map +1 -1
  106. package/dist/chat-ui/messages/wake-marker.cjs +84 -0
  107. package/dist/chat-ui/messages/wake-marker.cjs.map +1 -0
  108. package/dist/chat-ui/messages/wake-marker.d.ts +16 -0
  109. package/dist/chat-ui/messages/wake-marker.js +84 -0
  110. package/dist/chat-ui/messages/wake-marker.js.map +1 -0
  111. package/dist/chat-ui/rich-text/chat-blocks.cjs +177 -0
  112. package/dist/chat-ui/rich-text/chat-blocks.cjs.map +1 -0
  113. package/dist/chat-ui/rich-text/chat-blocks.d.ts +58 -0
  114. package/dist/chat-ui/rich-text/chat-blocks.js +177 -0
  115. package/dist/chat-ui/rich-text/chat-blocks.js.map +1 -0
  116. package/dist/chat-ui/rich-text/chat-link.cjs +69 -0
  117. package/dist/chat-ui/rich-text/chat-link.cjs.map +1 -0
  118. package/dist/chat-ui/rich-text/chat-link.d.ts +24 -0
  119. package/dist/chat-ui/rich-text/chat-link.js +69 -0
  120. package/dist/chat-ui/rich-text/chat-link.js.map +1 -0
  121. package/dist/chat-ui/rich-text/chat-message-body.cjs +144 -18
  122. package/dist/chat-ui/rich-text/chat-message-body.cjs.map +1 -1
  123. package/dist/chat-ui/rich-text/chat-message-body.d.ts +10 -1
  124. package/dist/chat-ui/rich-text/chat-message-body.js +149 -23
  125. package/dist/chat-ui/rich-text/chat-message-body.js.map +1 -1
  126. package/dist/chat-ui/rich-text/chat-node-views.cjs +38 -5
  127. package/dist/chat-ui/rich-text/chat-node-views.cjs.map +1 -1
  128. package/dist/chat-ui/rich-text/chat-node-views.d.ts +11 -0
  129. package/dist/chat-ui/rich-text/chat-node-views.js +39 -6
  130. package/dist/chat-ui/rich-text/chat-node-views.js.map +1 -1
  131. package/dist/chat-ui/rich-text/chat-text-schema.cjs +20 -3
  132. package/dist/chat-ui/rich-text/chat-text-schema.cjs.map +1 -1
  133. package/dist/chat-ui/rich-text/chat-text-schema.d.ts +15 -2
  134. package/dist/chat-ui/rich-text/chat-text-schema.js +20 -3
  135. package/dist/chat-ui/rich-text/chat-text-schema.js.map +1 -1
  136. package/dist/chat-ui/rich-text/citation-anchors.cjs +139 -0
  137. package/dist/chat-ui/rich-text/citation-anchors.cjs.map +1 -0
  138. package/dist/chat-ui/rich-text/citation-anchors.d.ts +74 -0
  139. package/dist/chat-ui/rich-text/citation-anchors.js +139 -0
  140. package/dist/chat-ui/rich-text/citation-anchors.js.map +1 -0
  141. package/dist/chat-ui/statewire.cjs +8 -1
  142. package/dist/chat-ui/statewire.cjs.map +1 -1
  143. package/dist/chat-ui/statewire.d.ts +2 -0
  144. package/dist/chat-ui/statewire.js +8 -1
  145. package/dist/chat-ui/statewire.js.map +1 -1
  146. package/dist/chat-ui/thread/chat-composer-dock.cjs +27 -6
  147. package/dist/chat-ui/thread/chat-composer-dock.cjs.map +1 -1
  148. package/dist/chat-ui/thread/chat-composer-dock.d.ts +21 -1
  149. package/dist/chat-ui/thread/chat-composer-dock.js +28 -7
  150. package/dist/chat-ui/thread/chat-composer-dock.js.map +1 -1
  151. package/dist/chat-ui/thread/statewire-history-edge.cjs +12 -13
  152. package/dist/chat-ui/thread/statewire-history-edge.cjs.map +1 -1
  153. package/dist/chat-ui/thread/statewire-history-edge.d.ts +11 -10
  154. package/dist/chat-ui/thread/statewire-history-edge.js +13 -14
  155. package/dist/chat-ui/thread/statewire-history-edge.js.map +1 -1
  156. package/dist/chat-ui/thread/thread-loading-overlay.cjs +31 -0
  157. package/dist/chat-ui/thread/thread-loading-overlay.cjs.map +1 -0
  158. package/dist/chat-ui/thread/thread-loading-overlay.d.ts +14 -0
  159. package/dist/chat-ui/thread/thread-loading-overlay.js +31 -0
  160. package/dist/chat-ui/thread/thread-loading-overlay.js.map +1 -0
  161. package/dist/composer/ComposerDropZone.cjs +8 -1
  162. package/dist/composer/ComposerDropZone.cjs.map +1 -1
  163. package/dist/composer/ComposerDropZone.d.ts +6 -0
  164. package/dist/composer/ComposerDropZone.js +9 -2
  165. package/dist/composer/ComposerDropZone.js.map +1 -1
  166. package/dist/diagnostics/errors.cjs +20 -0
  167. package/dist/diagnostics/errors.cjs.map +1 -1
  168. package/dist/diagnostics/errors.d.ts +20 -0
  169. package/dist/diagnostics/errors.js +20 -0
  170. package/dist/diagnostics/errors.js.map +1 -1
  171. package/dist/index.cjs +47 -1
  172. package/dist/index.cjs.map +1 -1
  173. package/dist/index.d.ts +26 -7
  174. package/dist/index.js +51 -5
  175. package/dist/index.js.map +1 -1
  176. package/dist/lib/use-prefers-reduced-motion.cjs +29 -0
  177. package/dist/lib/use-prefers-reduced-motion.cjs.map +1 -0
  178. package/dist/lib/use-prefers-reduced-motion.d.ts +6 -0
  179. package/dist/lib/use-prefers-reduced-motion.js +29 -0
  180. package/dist/lib/use-prefers-reduced-motion.js.map +1 -0
  181. package/dist/packages/agent-runtime/src/conversation-index.cjs.map +1 -1
  182. package/dist/packages/agent-runtime/src/conversation-index.js.map +1 -1
  183. package/dist/packages/agent-runtime/src/conversation-list.cjs +59 -0
  184. package/dist/packages/agent-runtime/src/conversation-list.cjs.map +1 -1
  185. package/dist/packages/agent-runtime/src/conversation-list.js +60 -1
  186. package/dist/packages/agent-runtime/src/conversation-list.js.map +1 -1
  187. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs +5 -3
  188. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.cjs.map +1 -1
  189. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js +5 -3
  190. package/dist/packages/agent-runtime/src/deep-agent-transport-recipe.js.map +1 -1
  191. package/dist/packages/agent-runtime/src/edit-command.cjs +21 -17
  192. package/dist/packages/agent-runtime/src/edit-command.cjs.map +1 -1
  193. package/dist/packages/agent-runtime/src/edit-command.js +22 -18
  194. package/dist/packages/agent-runtime/src/edit-command.js.map +1 -1
  195. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs +9 -11
  196. package/dist/packages/agent-runtime/src/generated/runconfig-contract.cjs.map +1 -1
  197. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js +9 -11
  198. package/dist/packages/agent-runtime/src/generated/runconfig-contract.js.map +1 -1
  199. package/dist/packages/agent-runtime/src/github-wake-event.cjs +86 -0
  200. package/dist/packages/agent-runtime/src/github-wake-event.cjs.map +1 -0
  201. package/dist/packages/agent-runtime/src/github-wake-event.js +86 -0
  202. package/dist/packages/agent-runtime/src/github-wake-event.js.map +1 -0
  203. package/dist/packages/agent-runtime/src/message-window.cjs +150 -42
  204. package/dist/packages/agent-runtime/src/message-window.cjs.map +1 -1
  205. package/dist/packages/agent-runtime/src/message-window.js +151 -43
  206. package/dist/packages/agent-runtime/src/message-window.js.map +1 -1
  207. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs +13 -9
  208. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.cjs.map +1 -1
  209. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js +13 -9
  210. package/dist/packages/agent-runtime/src/quota-safe-local-storage-session.js.map +1 -1
  211. package/dist/packages/agent-runtime/src/statewire-suspended.cjs +1 -3
  212. package/dist/packages/agent-runtime/src/statewire-suspended.cjs.map +1 -1
  213. package/dist/packages/agent-runtime/src/statewire-suspended.js +1 -3
  214. package/dist/packages/agent-runtime/src/statewire-suspended.js.map +1 -1
  215. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.cjs.map +1 -1
  216. package/dist/packages/agent-runtime/src/use-deep-agent-edit-submit.js.map +1 -1
  217. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs +61 -30
  218. package/dist/packages/agent-runtime/src/use-deep-agent-thread.cjs.map +1 -1
  219. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js +59 -28
  220. package/dist/packages/agent-runtime/src/use-deep-agent-thread.js.map +1 -1
  221. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs +56 -36
  222. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.cjs.map +1 -1
  223. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js +59 -39
  224. package/dist/packages/agent-runtime/src/use-deep-agent-window-sync.js.map +1 -1
  225. package/dist/packages/react/package.json.cjs +1 -1
  226. package/dist/packages/react/package.json.js +1 -1
  227. package/dist/provider/AthenaContext.cjs.map +1 -1
  228. package/dist/provider/AthenaContext.d.ts +3 -0
  229. package/dist/provider/AthenaContext.js.map +1 -1
  230. package/dist/provider/AthenaProvider.cjs +93 -45
  231. package/dist/provider/AthenaProvider.cjs.map +1 -1
  232. package/dist/provider/AthenaProvider.d.ts +6 -1
  233. package/dist/provider/AthenaProvider.js +97 -49
  234. package/dist/provider/AthenaProvider.js.map +1 -1
  235. package/dist/runtime/statewire-lifecycle.cjs +2 -1
  236. package/dist/runtime/statewire-lifecycle.cjs.map +1 -1
  237. package/dist/runtime/statewire-lifecycle.js +2 -1
  238. package/dist/runtime/statewire-lifecycle.js.map +1 -1
  239. package/dist/runtime/useAthenaStatewireRuntime.cjs +3 -2
  240. package/dist/runtime/useAthenaStatewireRuntime.cjs.map +1 -1
  241. package/dist/runtime/useAthenaStatewireRuntime.d.ts +8 -12
  242. package/dist/runtime/useAthenaStatewireRuntime.js +3 -2
  243. package/dist/runtime/useAthenaStatewireRuntime.js.map +1 -1
  244. package/dist/search/useAthenaRepoSearch.cjs +94 -0
  245. package/dist/search/useAthenaRepoSearch.cjs.map +1 -0
  246. package/dist/search/useAthenaRepoSearch.d.ts +95 -0
  247. package/dist/search/useAthenaRepoSearch.js +94 -0
  248. package/dist/search/useAthenaRepoSearch.js.map +1 -0
  249. package/dist/styles.css +1 -1
  250. package/dist/threads/SessionList.cjs +486 -0
  251. package/dist/threads/SessionList.cjs.map +1 -0
  252. package/dist/threads/SessionList.d.ts +60 -0
  253. package/dist/threads/SessionList.js +486 -0
  254. package/dist/threads/SessionList.js.map +1 -0
  255. package/dist/threads/api.cjs +112 -4
  256. package/dist/threads/api.cjs.map +1 -1
  257. package/dist/threads/api.d.ts +128 -1
  258. package/dist/threads/api.js +113 -5
  259. package/dist/threads/api.js.map +1 -1
  260. package/dist/threads/conversation-list-fetcher.cjs +27 -3
  261. package/dist/threads/conversation-list-fetcher.cjs.map +1 -1
  262. package/dist/threads/conversation-list-fetcher.d.ts +16 -3
  263. package/dist/threads/conversation-list-fetcher.js +27 -3
  264. package/dist/threads/conversation-list-fetcher.js.map +1 -1
  265. package/dist/threads/index.d.ts +5 -1
  266. package/dist/threads/session-list-model.cjs +130 -0
  267. package/dist/threads/session-list-model.cjs.map +1 -0
  268. package/dist/threads/session-list-model.d.ts +62 -0
  269. package/dist/threads/session-list-model.js +130 -0
  270. package/dist/threads/session-list-model.js.map +1 -0
  271. package/dist/threads/statewire-thread-list.cjs +220 -38
  272. package/dist/threads/statewire-thread-list.cjs.map +1 -1
  273. package/dist/threads/statewire-thread-list.d.ts +152 -2
  274. package/dist/threads/statewire-thread-list.js +222 -40
  275. package/dist/threads/statewire-thread-list.js.map +1 -1
  276. package/dist/threads/thread-prefetcher.cjs +63 -0
  277. package/dist/threads/thread-prefetcher.cjs.map +1 -0
  278. package/dist/threads/thread-prefetcher.d.ts +54 -0
  279. package/dist/threads/thread-prefetcher.js +63 -0
  280. package/dist/threads/thread-prefetcher.js.map +1 -0
  281. package/dist/threads/use-athena-session-attention.cjs +22 -0
  282. package/dist/threads/use-athena-session-attention.cjs.map +1 -0
  283. package/dist/threads/use-athena-session-attention.d.ts +24 -0
  284. package/dist/threads/use-athena-session-attention.js +22 -0
  285. package/dist/threads/use-athena-session-attention.js.map +1 -0
  286. package/dist/threads/use-rest-conversation-history.cjs +25 -2
  287. package/dist/threads/use-rest-conversation-history.cjs.map +1 -1
  288. package/dist/threads/use-rest-conversation-history.d.ts +8 -1
  289. package/dist/threads/use-rest-conversation-history.js +25 -2
  290. package/dist/threads/use-rest-conversation-history.js.map +1 -1
  291. package/dist/threads/use-statewire-conversation-history.cjs +40 -16
  292. package/dist/threads/use-statewire-conversation-history.cjs.map +1 -1
  293. package/dist/threads/use-statewire-conversation-history.d.ts +13 -0
  294. package/dist/threads/use-statewire-conversation-history.js +40 -16
  295. package/dist/threads/use-statewire-conversation-history.js.map +1 -1
  296. package/dist/threads/use-thread-archive.cjs +128 -0
  297. package/dist/threads/use-thread-archive.cjs.map +1 -0
  298. package/dist/threads/use-thread-archive.d.ts +26 -0
  299. package/dist/threads/use-thread-archive.js +128 -0
  300. package/dist/threads/use-thread-archive.js.map +1 -0
  301. package/dist/threads/use-thread-favorite.cjs +53 -0
  302. package/dist/threads/use-thread-favorite.cjs.map +1 -0
  303. package/dist/threads/use-thread-favorite.d.ts +49 -0
  304. package/dist/threads/use-thread-favorite.js +53 -0
  305. package/dist/threads/use-thread-favorite.js.map +1 -0
  306. package/dist/threads/use-thread-field-override.cjs +184 -0
  307. package/dist/threads/use-thread-field-override.cjs.map +1 -0
  308. package/dist/threads/use-thread-field-override.d.ts +55 -0
  309. package/dist/threads/use-thread-field-override.js +184 -0
  310. package/dist/threads/use-thread-field-override.js.map +1 -0
  311. package/dist/threads/use-thread-rename.cjs +53 -0
  312. package/dist/threads/use-thread-rename.cjs.map +1 -0
  313. package/dist/threads/use-thread-rename.d.ts +48 -0
  314. package/dist/threads/use-thread-rename.js +53 -0
  315. package/dist/threads/use-thread-rename.js.map +1 -0
  316. package/dist/tools/index.cjs +5 -1
  317. package/dist/tools/index.cjs.map +1 -1
  318. package/dist/tools/index.d.ts +1 -1
  319. package/dist/tools/index.js +7 -3
  320. package/dist/tools/index.js.map +1 -1
  321. package/dist/tools/misc-tool-uis.cjs +2 -1
  322. package/dist/tools/misc-tool-uis.cjs.map +1 -1
  323. package/dist/tools/misc-tool-uis.js +2 -1
  324. package/dist/tools/misc-tool-uis.js.map +1 -1
  325. package/dist/tools/primitives.cjs +25 -2
  326. package/dist/tools/primitives.cjs.map +1 -1
  327. package/dist/tools/primitives.d.ts +9 -2
  328. package/dist/tools/primitives.js +26 -3
  329. package/dist/tools/primitives.js.map +1 -1
  330. package/dist/tools/tool-appearance.cjs +11 -0
  331. package/dist/tools/tool-appearance.cjs.map +1 -0
  332. package/dist/tools/tool-appearance.d.ts +29 -0
  333. package/dist/tools/tool-appearance.js +11 -0
  334. package/dist/tools/tool-appearance.js.map +1 -0
  335. package/dist/tools/tool-fallback.cjs +211 -13
  336. package/dist/tools/tool-fallback.cjs.map +1 -1
  337. package/dist/tools/tool-fallback.d.ts +31 -4
  338. package/dist/tools/tool-fallback.js +214 -16
  339. package/dist/tools/tool-fallback.js.map +1 -1
  340. package/dist/tools/use-elapsed-seconds.cjs +24 -0
  341. package/dist/tools/use-elapsed-seconds.cjs.map +1 -0
  342. package/dist/tools/use-elapsed-seconds.d.ts +10 -0
  343. package/dist/tools/use-elapsed-seconds.js +24 -0
  344. package/dist/tools/use-elapsed-seconds.js.map +1 -0
  345. package/dist/tools/voice-update-tool-ui.cjs +2 -1
  346. package/dist/tools/voice-update-tool-ui.cjs.map +1 -1
  347. package/dist/tools/voice-update-tool-ui.js +2 -1
  348. package/dist/tools/voice-update-tool-ui.js.map +1 -1
  349. package/package.json +3 -3
  350. package/src/chat-ui/tailwind-preset.js +14 -1
@@ -1,30 +1,51 @@
1
- import { jsxs, jsx, Fragment } from "react/jsx-runtime";
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { memo, useMemo, useRef, useState, useCallback } from "react";
3
- import { LoaderIcon, XCircleIcon, AlertCircleIcon, PauseIcon, ShieldAlertIcon, CheckCircle2Icon, ChevronDownIcon, ExternalLinkIcon, LinkIcon } from "lucide-react";
3
+ import { ChevronDownIcon, LoaderIcon, XCircleIcon, AlertCircleIcon, PauseIcon, ShieldAlertIcon, CheckCircle2Icon, ExternalLinkIcon, LinkIcon, CheckIcon } from "lucide-react";
4
4
  import { useScrollLock } from "@assistant-ui/react";
5
5
  import "../packages/agent-runtime/src/generated/runconfig-contract.js";
6
6
  import "@assistant-ui/tap";
7
7
  import "statewire";
8
8
  import "../packages/agent-runtime/src/statewire-suspended.js";
9
+ import "../packages/agent-runtime/src/conversation-list.js";
9
10
  import { getToolDisplayMeta, describeToolArgs, toolStatusLabel } from "../packages/agent-runtime/src/tool-metadata.js";
10
11
  import { resultMessage, classifyToolResult } from "../packages/agent-runtime/src/tool-result.js";
11
12
  import "@tanstack/react-query";
12
13
  import "../packages/agent-runtime/src/statewire-state.js";
13
14
  import "../packages/agent-runtime/src/messages.js";
14
- import "@assistant-ui/react-statewire";
15
15
  import "@assistant-ui/store";
16
16
  import "../packages/agent-runtime/src/quota-safe-local-storage-session.js";
17
17
  import "../packages/agent-runtime/src/statewire-attach-observer.js";
18
18
  import "../packages/agent-runtime/src/thread-status.js";
19
+ import "@assistant-ui/react-statewire";
19
20
  import "@assistant-ui/core";
20
21
  import "../packages/agent-runtime/src/thread-handoff.js";
21
22
  import { CollapsibleContent, Collapsible, CollapsibleTrigger } from "../ui/collapsible.js";
22
23
  import { useAssetPanelStore } from "../assets/asset-panel-store.js";
23
24
  import { useNestedPtcComponents, NestedPtcMessages } from "./NestedPtcMessages.js";
24
25
  import { tryParseJson, CopyToolSpecButton } from "./primitives.js";
26
+ import { ToolAppearanceContext, useToolAppearance } from "./tool-appearance.js";
25
27
  import { toolIcon } from "./tool-icons.js";
28
+ import { elapsedSuffix, useElapsedSeconds } from "./use-elapsed-seconds.js";
26
29
  import { cn } from "cnfast";
27
30
  const ANIMATION_DURATION = 200;
31
+ const THREAD_ROOT_CLASS = "aui-tool-fallback-root group/tool-fallback-root my-1.5 w-full rounded-lg border border-border/50 bg-background";
32
+ function ThreadStatusGlyph({
33
+ classification,
34
+ isCancelled
35
+ }) {
36
+ const state = classification.state;
37
+ const glyph = state === "running" ? /* @__PURE__ */ jsx(LoaderIcon, { className: "size-3.5 animate-spin text-muted-foreground motion-reduce:animate-none" }) : state === "rejected" ? /* @__PURE__ */ jsx(XCircleIcon, { className: "size-3.5 text-amber-600" }) : state === "error" ? isCancelled ? /* @__PURE__ */ jsx(XCircleIcon, { className: "size-3.5 text-muted-foreground" }) : /* @__PURE__ */ jsx(AlertCircleIcon, { className: "size-3.5 text-destructive" }) : state === "paused" ? /* @__PURE__ */ jsx(PauseIcon, { className: "size-3.5 text-amber-600" }) : state === "requires-action" ? /* @__PURE__ */ jsx(ShieldAlertIcon, { className: "size-3.5 text-amber-600" }) : /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5 text-emerald-600" });
38
+ return /* @__PURE__ */ jsx(
39
+ "span",
40
+ {
41
+ "data-slot": "tool-fallback-status",
42
+ "data-tool-outcome": state,
43
+ "aria-hidden": "true",
44
+ className: "flex size-4 shrink-0 items-center justify-center",
45
+ children: glyph
46
+ }
47
+ );
48
+ }
28
49
  function rejectedOutcome(classification) {
29
50
  return classification.state === "rejected" ? classification.rejection : null;
30
51
  }
@@ -107,9 +128,11 @@ function ToolFallbackRoot({
107
128
  open: controlledOpen,
108
129
  onOpenChange: controlledOnOpenChange,
109
130
  defaultOpen = false,
131
+ appearance: appearanceProp,
110
132
  children,
111
133
  ...props
112
134
  }) {
135
+ const appearance = useToolAppearance(appearanceProp);
113
136
  const collapsibleRef = useRef(null);
114
137
  const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
115
138
  const lockScroll = useScrollLock(collapsibleRef, ANIMATION_DURATION);
@@ -132,10 +155,11 @@ function ToolFallbackRoot({
132
155
  {
133
156
  ref: collapsibleRef,
134
157
  "data-slot": "tool-fallback-root",
158
+ ...appearance === "thread" ? { "data-appearance": "thread" } : {},
135
159
  open: isOpen,
136
160
  onOpenChange: handleOpenChange,
137
161
  className: cn(
138
- "aui-tool-fallback-root group/tool-fallback-root my-3 w-full rounded-xl border border-border/60 bg-background py-2.5 shadow-sm",
162
+ appearance === "thread" ? THREAD_ROOT_CLASS : "aui-tool-fallback-root group/tool-fallback-root my-3 w-full rounded-xl border border-border/60 bg-background py-2.5 shadow-sm",
139
163
  className
140
164
  ),
141
165
  style: {
@@ -156,29 +180,101 @@ function ToolFallbackTrigger({
156
180
  displayName,
157
181
  activeLabel,
158
182
  icon,
183
+ appearance: appearanceProp,
184
+ secondary: secondaryProp,
185
+ badge,
159
186
  className,
160
187
  ...props
161
188
  }) {
189
+ const appearance = useToolAppearance(appearanceProp);
190
+ const isThread = appearance === "thread";
162
191
  const classification = givenClassification ?? classifyToolResult({ status, result, isError });
163
192
  const state = classification.state;
164
193
  const isRunning = state === "running";
165
194
  const isCancelled = (status == null ? void 0 : status.type) === "incomplete" && status.reason === "cancelled";
195
+ const elapsed = elapsedSuffix(useElapsedSeconds(isThread && isRunning));
166
196
  const meta = getToolDisplayMeta(toolName);
167
197
  const ToolIcon = icon ?? toolIcon(meta.icon);
168
198
  const title = displayName ?? meta.displayName;
169
199
  const running = activeLabel ?? meta.activeLabel;
170
200
  const summary = useMemo(() => {
171
- if (isRunning || !argsText) return null;
201
+ if (isRunning && !isThread || !argsText) return null;
172
202
  const parsed = tryParseJson(argsText);
173
203
  return parsed ? describeToolArgs({ toolName, args: parsed }) ?? null : null;
174
- }, [toolName, argsText, isRunning]);
204
+ }, [toolName, argsText, isRunning, isThread]);
175
205
  const message = useMemo(
176
206
  () => state === "complete" ? resultMessage(result) : null,
177
207
  [result, state]
178
208
  );
179
209
  const rejection = rejectedOutcome(classification);
180
210
  const headline = rejection ? toolStatusLabel(toolName, "rejected", displayName) : state === "error" ? `Failed: ${title}` : state === "paused" ? `Paused: ${title}` : title;
181
- const secondary = rejection ? rejection.reason : message || summary;
211
+ const secondary = secondaryProp ?? (rejection ? rejection.reason : message || summary);
212
+ if (isThread) {
213
+ return /* @__PURE__ */ jsxs(
214
+ CollapsibleTrigger,
215
+ {
216
+ "data-slot": "tool-fallback-trigger",
217
+ "data-tool-outcome": state,
218
+ "data-appearance": "thread",
219
+ className: cn(
220
+ "aui-tool-fallback-trigger group/trigger flex w-full min-w-0 items-center gap-2 rounded-lg px-2.5 py-1.5 text-left text-[13px] leading-snug transition-colors hover:bg-muted/40",
221
+ className
222
+ ),
223
+ ...props,
224
+ children: [
225
+ /* @__PURE__ */ jsx(ThreadStatusGlyph, { classification, isCancelled }),
226
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-1 items-baseline gap-1.5", children: [
227
+ /* @__PURE__ */ jsx(
228
+ "span",
229
+ {
230
+ "data-slot": "tool-fallback-verb",
231
+ className: cn(
232
+ "shrink-0 font-medium",
233
+ state === "error" && !isCancelled && "text-destructive",
234
+ isCancelled && "text-muted-foreground line-through"
235
+ ),
236
+ children: isRunning ? running : headline
237
+ }
238
+ ),
239
+ isRunning && elapsed ? /* @__PURE__ */ jsxs(
240
+ "span",
241
+ {
242
+ "data-slot": "tool-fallback-elapsed",
243
+ className: "shrink-0 tabular-nums text-muted-foreground",
244
+ children: [
245
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "· " }),
246
+ elapsed
247
+ ]
248
+ }
249
+ ) : null,
250
+ secondary ? /* @__PURE__ */ jsxs(
251
+ "span",
252
+ {
253
+ "data-slot": "tool-fallback-target",
254
+ className: "min-w-0 truncate text-muted-foreground",
255
+ children: [
256
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: "· " }),
257
+ secondary
258
+ ]
259
+ }
260
+ ) : null,
261
+ badge ? /* @__PURE__ */ jsx("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: badge }) : null
262
+ ] }),
263
+ /* @__PURE__ */ jsx(
264
+ ChevronDownIcon,
265
+ {
266
+ className: cn(
267
+ "size-3.5 shrink-0 text-muted-foreground/60",
268
+ "transition-transform duration-(--animation-duration) ease-out",
269
+ "group-data-[state=closed]/trigger:-rotate-90",
270
+ "group-data-[state=open]/trigger:rotate-0"
271
+ )
272
+ }
273
+ )
274
+ ]
275
+ }
276
+ );
277
+ }
182
278
  return /* @__PURE__ */ jsxs(
183
279
  CollapsibleTrigger,
184
280
  {
@@ -248,8 +344,10 @@ function ToolFallbackTrigger({
248
344
  function ToolFallbackContent({
249
345
  className,
250
346
  children,
347
+ appearance: appearanceProp,
251
348
  ...props
252
349
  }) {
350
+ const appearance = useToolAppearance(appearanceProp);
253
351
  return /* @__PURE__ */ jsx(
254
352
  CollapsibleContent,
255
353
  {
@@ -266,7 +364,13 @@ function ToolFallbackContent({
266
364
  className
267
365
  ),
268
366
  ...props,
269
- children: /* @__PURE__ */ jsx("div", { className: "mt-2.5 flex flex-col gap-2 border-t border-border/50 pt-2", children })
367
+ children: /* @__PURE__ */ jsx(
368
+ "div",
369
+ {
370
+ className: appearance === "thread" ? "mt-1 flex flex-col gap-2 border-t border-border/40 pt-2 pb-1" : "mt-2.5 flex flex-col gap-2 border-t border-border/50 pt-2",
371
+ children
372
+ }
373
+ )
270
374
  }
271
375
  );
272
376
  }
@@ -357,9 +461,11 @@ function ToolFallbackError({
357
461
  }
358
462
  function ToolFallbackNotice({
359
463
  classification,
464
+ appearance: appearanceProp,
360
465
  className,
361
466
  ...props
362
467
  }) {
468
+ const isThread = useToolAppearance(appearanceProp) === "thread";
363
469
  if (classification.state === "error") {
364
470
  const { failure } = classification;
365
471
  return /* @__PURE__ */ jsxs(
@@ -367,7 +473,7 @@ function ToolFallbackNotice({
367
473
  {
368
474
  "data-slot": "tool-fallback-notice",
369
475
  className: cn(
370
- "mt-2 border-t border-red-200/80 px-3 pt-1.5 text-[11px] text-red-700",
476
+ isThread ? "mt-1 border-t border-destructive/20 px-3 pt-1.5 pb-1 text-[11px] text-destructive" : "mt-2 border-t border-red-200/80 px-3 pt-1.5 text-[11px] text-red-700",
371
477
  className
372
478
  ),
373
479
  ...props,
@@ -384,7 +490,7 @@ function ToolFallbackNotice({
384
490
  {
385
491
  "data-slot": "tool-fallback-notice",
386
492
  className: cn(
387
- "mt-2 border-t border-amber-200/80 px-3 pt-1.5 text-[11px] text-amber-800",
493
+ isThread ? "mt-1 border-t border-amber-200/80 px-3 pt-1.5 pb-1 text-[11px] text-amber-800" : "mt-2 border-t border-amber-200/80 px-3 pt-1.5 text-[11px] text-amber-800",
388
494
  className
389
495
  ),
390
496
  ...props,
@@ -543,8 +649,11 @@ const ToolFallbackImpl = ({
543
649
  children,
544
650
  defaultOpen,
545
651
  className,
546
- rootProps
652
+ rootProps,
653
+ appearance: appearanceProp
547
654
  }) => {
655
+ const appearance = useToolAppearance(appearanceProp);
656
+ const isThread = appearance === "thread";
548
657
  const classification = classifyToolResult({ status, result, isError });
549
658
  const isCancelled = (status == null ? void 0 : status.type) === "incomplete" && status.reason === "cancelled";
550
659
  const nestedComponents = useNestedPtcComponents(ToolFallback);
@@ -561,7 +670,7 @@ const ToolFallbackImpl = ({
561
670
  assetId
562
671
  };
563
672
  const action = typeof extraAction === "function" ? extraAction(context) : extraAction;
564
- if (isAssetTool(toolName, result)) {
673
+ if (!isThread && isAssetTool(toolName, result)) {
565
674
  return /* @__PURE__ */ jsxs(Fragment, { children: [
566
675
  /* @__PURE__ */ jsx(
567
676
  AssetToolCard,
@@ -590,17 +699,25 @@ const ToolFallbackImpl = ({
590
699
  ] });
591
700
  }
592
701
  const isComplete = classification.state === "complete";
702
+ const isFailure = classification.state === "error" && !isCancelled;
593
703
  return /* @__PURE__ */ jsxs(
594
704
  ToolFallbackRoot,
595
705
  {
596
706
  ...rootProps,
707
+ ...isThread ? { "data-tool-outcome": classification.state } : {},
708
+ appearance,
597
709
  defaultOpen,
598
- className: cn(isCancelled && "border-muted-foreground/30 bg-muted/30", className),
710
+ className: cn(
711
+ isThread && isFailure && "border-destructive/30 bg-destructive/5",
712
+ isCancelled && "border-muted-foreground/30 bg-muted/30",
713
+ className
714
+ ),
599
715
  children: [
600
716
  /* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
601
717
  /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx(
602
718
  ToolFallbackTrigger,
603
719
  {
720
+ appearance,
604
721
  toolName,
605
722
  argsText,
606
723
  result,
@@ -615,8 +732,8 @@ const ToolFallbackImpl = ({
615
732
  assetId && isComplete && !action && /* @__PURE__ */ jsx("div", { className: "shrink-0 pr-2", children: /* @__PURE__ */ jsx(AssetOpenLink, { assetId, toolName, onOpenAsset }) })
616
733
  ] }),
617
734
  notice,
618
- /* @__PURE__ */ jsx(ToolFallbackNotice, { classification }),
619
- /* @__PURE__ */ jsxs(ToolFallbackContent, { children: [
735
+ /* @__PURE__ */ jsx(ToolFallbackNotice, { appearance, classification }),
736
+ /* @__PURE__ */ jsxs(ToolFallbackContent, { appearance, children: [
620
737
  children,
621
738
  /* @__PURE__ */ jsx(ToolFallbackError, { status }),
622
739
  /* @__PURE__ */ jsx(
@@ -643,6 +760,85 @@ const ToolFallbackImpl = ({
643
760
  }
644
761
  );
645
762
  };
763
+ function stripTrailingEllipsis(title) {
764
+ return title.replace(/(\.{3}|…)\s*$/u, "");
765
+ }
766
+ function ThreadToolCard({
767
+ status,
768
+ title,
769
+ subtitle,
770
+ toolName,
771
+ badge,
772
+ error,
773
+ children,
774
+ args,
775
+ result
776
+ }) {
777
+ const isRunning = status === "running";
778
+ const isError = status === "incomplete";
779
+ const partStatus = status === "running" ? { type: "running" } : status === "requires-action" ? { type: "requires-action", reason: "interrupt" } : status === "incomplete" ? { type: "incomplete", reason: "error", ...error ? { error } : {} } : { type: "complete" };
780
+ const classification = classifyToolResult({ status: partStatus, result: void 0, isError });
781
+ const argsText = useMemo(() => args ? JSON.stringify(args) : void 0, [args]);
782
+ const name = toolName ?? title;
783
+ return /* @__PURE__ */ jsxs(
784
+ ToolFallbackRoot,
785
+ {
786
+ appearance: "thread",
787
+ "data-tool-outcome": classification.state,
788
+ className: cn(isError && "border-destructive/30 bg-destructive/5"),
789
+ children: [
790
+ /* @__PURE__ */ jsx(
791
+ ToolFallbackTrigger,
792
+ {
793
+ appearance: "thread",
794
+ toolName: name,
795
+ status: partStatus,
796
+ classification,
797
+ displayName: title,
798
+ activeLabel: isRunning ? stripTrailingEllipsis(title) : void 0,
799
+ secondary: subtitle,
800
+ badge
801
+ }
802
+ ),
803
+ error ? /* @__PURE__ */ jsx(
804
+ "div",
805
+ {
806
+ "data-slot": "tool-fallback-notice",
807
+ className: "mt-1 border-t border-destructive/20 px-3 pt-1.5 pb-1 text-[11px] text-destructive",
808
+ children: error
809
+ }
810
+ ) : null,
811
+ /* @__PURE__ */ jsxs(ToolFallbackContent, { appearance: "thread", children: [
812
+ children,
813
+ /* @__PURE__ */ jsx(ToolFallbackArgs, { argsText }),
814
+ children == null ? /* @__PURE__ */ jsx(ToolFallbackResult, { result, classification }) : null,
815
+ toolName && !isRunning ? /* @__PURE__ */ jsx("div", { className: "flex justify-end px-3 pt-1", children: /* @__PURE__ */ jsx(
816
+ CopyToolSpecButton,
817
+ {
818
+ toolName,
819
+ args,
820
+ result,
821
+ className: "px-0 pb-0"
822
+ }
823
+ ) }) : null
824
+ ] })
825
+ ]
826
+ }
827
+ );
828
+ }
829
+ function ToolFallbackAppearanceProvider({
830
+ appearance,
831
+ children
832
+ }) {
833
+ const value = useMemo(
834
+ () => ({
835
+ appearance,
836
+ ToolCard: appearance === "thread" ? ThreadToolCard : void 0
837
+ }),
838
+ [appearance]
839
+ );
840
+ return /* @__PURE__ */ jsx(ToolAppearanceContext.Provider, { value, children });
841
+ }
646
842
  const ToolFallback = memo(
647
843
  ToolFallbackImpl
648
844
  );
@@ -656,6 +852,7 @@ ToolFallback.Error = ToolFallbackError;
656
852
  ToolFallback.Notice = ToolFallbackNotice;
657
853
  export {
658
854
  ToolFallback,
855
+ ToolFallbackAppearanceProvider,
659
856
  ToolFallbackArgs,
660
857
  ToolFallbackContent,
661
858
  ToolFallbackError,
@@ -663,6 +860,7 @@ export {
663
860
  ToolFallbackResult,
664
861
  ToolFallbackRoot,
665
862
  ToolFallbackTrigger,
666
- clearAutoOpenedAssets
863
+ clearAutoOpenedAssets,
864
+ useToolAppearance
667
865
  };
668
866
  //# sourceMappingURL=tool-fallback.js.map