@mastra/playground-ui 68.0.0 → 69.0.0-alpha.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 (1784) hide show
  1. package/README.md +80 -8
  2. package/dist/AgentIndicator-Dnv_1hvF.js +1995 -0
  3. package/dist/AgentIndicator-Dnv_1hvF.js.map +1 -0
  4. package/dist/AgentIndicator-zCokR2zb.cjs +2012 -0
  5. package/dist/AgentIndicator-zCokR2zb.cjs.map +1 -0
  6. package/dist/{AttachmentCard-DbGp7TYl.js → AttachmentCard-Bt3-QAxJ.js} +3 -3
  7. package/dist/{AttachmentCard-DbGp7TYl.js.map → AttachmentCard-Bt3-QAxJ.js.map} +1 -1
  8. package/dist/{AttachmentCard-CciBqu7E.cjs → AttachmentCard-BycDEelL.cjs} +3 -3
  9. package/dist/{AttachmentCard-CciBqu7E.cjs.map → AttachmentCard-BycDEelL.cjs.map} +1 -1
  10. package/dist/{Avatar-Dj8aP7OI.js → Avatar-DOoEXudh.js} +3 -3
  11. package/dist/{Avatar-Dj8aP7OI.js.map → Avatar-DOoEXudh.js.map} +1 -1
  12. package/dist/{Avatar-Iiqjad9K.cjs → Avatar-Dxpc0YUx.cjs} +3 -3
  13. package/dist/{Avatar-Iiqjad9K.cjs.map → Avatar-Dxpc0YUx.cjs.map} +1 -1
  14. package/dist/{Badge-aVu5iGAF.js → Badge-C7NnqmMx.js} +3 -3
  15. package/dist/{Badge-aVu5iGAF.js.map → Badge-C7NnqmMx.js.map} +1 -1
  16. package/dist/{Badge-DZ6r6bcw.cjs → Badge-DqaMg7Gy.cjs} +3 -3
  17. package/dist/{Badge-DZ6r6bcw.cjs.map → Badge-DqaMg7Gy.cjs.map} +1 -1
  18. package/dist/{Button-DLcMcuUL.cjs → Button-BfICfyxD.cjs} +5 -5
  19. package/dist/Button-BfICfyxD.cjs.map +1 -0
  20. package/dist/{Button-CLXTbAY8.js → Button-Bi7aXd_G.js} +5 -5
  21. package/dist/Button-Bi7aXd_G.js.map +1 -0
  22. package/dist/{Card-C6iEBgVq.cjs → Card-C9oCXvxU.cjs} +3 -3
  23. package/dist/{Card-C6iEBgVq.cjs.map → Card-C9oCXvxU.cjs.map} +1 -1
  24. package/dist/{Card-LU1aWO7U.js → Card-ClDoUQNb.js} +3 -3
  25. package/dist/{Card-LU1aWO7U.js.map → Card-ClDoUQNb.js.map} +1 -1
  26. package/dist/{CodeEditor-CLzs0yVc.cjs → CodeEditor-DHIDfP5g.cjs} +8 -8
  27. package/dist/{CodeEditor-CLzs0yVc.cjs.map → CodeEditor-DHIDfP5g.cjs.map} +1 -1
  28. package/dist/{CodeEditor-COnz9c6B.js → CodeEditor-ZoBu3Gjw.js} +8 -8
  29. package/dist/{CodeEditor-COnz9c6B.js.map → CodeEditor-ZoBu3Gjw.js.map} +1 -1
  30. package/dist/{Comment-0n98b_f_.js → Comment-2q9SomE2.js} +5 -5
  31. package/dist/{Comment-0n98b_f_.js.map → Comment-2q9SomE2.js.map} +1 -1
  32. package/dist/{Comment-Cg0f7eLa.cjs → Comment-rQxuMDQv.cjs} +6 -6
  33. package/dist/{Comment-Cg0f7eLa.cjs.map → Comment-rQxuMDQv.cjs.map} +1 -1
  34. package/dist/{Composer-D1gF-0jZ.js → Composer-bVE8qK52.js} +19 -14
  35. package/dist/Composer-bVE8qK52.js.map +1 -0
  36. package/dist/{Composer-BcueJvdX.cjs → Composer-u1K6edoZ.cjs} +18 -13
  37. package/dist/Composer-u1K6edoZ.cjs.map +1 -0
  38. package/dist/{DataCodeSection-CFxXsQWH.cjs → DataCodeSection-7SvRJj6f.cjs} +8 -8
  39. package/dist/{DataCodeSection-CFxXsQWH.cjs.map → DataCodeSection-7SvRJj6f.cjs.map} +1 -1
  40. package/dist/{DataCodeSection-PY9XEg2C.js → DataCodeSection-CTodi9wg.js} +8 -8
  41. package/dist/{DataCodeSection-PY9XEg2C.js.map → DataCodeSection-CTodi9wg.js.map} +1 -1
  42. package/dist/{DataDetailsPanel-DiyjEXqK.cjs → DataDetailsPanel-BDoD6pxx.cjs} +7 -7
  43. package/dist/{DataDetailsPanel-DiyjEXqK.cjs.map → DataDetailsPanel-BDoD6pxx.cjs.map} +1 -1
  44. package/dist/{DataDetailsPanel-CohEKPm4.js → DataDetailsPanel-BU05psHL.js} +7 -7
  45. package/dist/{DataDetailsPanel-CohEKPm4.js.map → DataDetailsPanel-BU05psHL.js.map} +1 -1
  46. package/dist/{DataKeysAndValues-PwOmGxyp.js → DataKeysAndValues-B56je3sK.js} +2 -2
  47. package/dist/{DataKeysAndValues-PwOmGxyp.js.map → DataKeysAndValues-B56je3sK.js.map} +1 -1
  48. package/dist/{DataKeysAndValues-DsH6AbAo.cjs → DataKeysAndValues-BbKeVxrQ.cjs} +2 -2
  49. package/dist/{DataKeysAndValues-DsH6AbAo.cjs.map → DataKeysAndValues-BbKeVxrQ.cjs.map} +1 -1
  50. package/dist/{DataList-CUhRQAv6.js → DataList-B7ho6PrJ.js} +8 -8
  51. package/dist/{DataList-CUhRQAv6.js.map → DataList-B7ho6PrJ.js.map} +1 -1
  52. package/dist/{DataList-Cj0mfk19.cjs → DataList-DTIdllb-.cjs} +8 -8
  53. package/dist/{DataList-Cj0mfk19.cjs.map → DataList-DTIdllb-.cjs.map} +1 -1
  54. package/dist/{DataPanel-Coc9h35I.cjs → DataPanel-BRRAvWYQ.cjs} +10 -10
  55. package/dist/{DataPanel-Coc9h35I.cjs.map → DataPanel-BRRAvWYQ.cjs.map} +1 -1
  56. package/dist/{DataPanel-IgB9D5PO.js → DataPanel-pVr5LVaK.js} +10 -10
  57. package/dist/{DataPanel-IgB9D5PO.js.map → DataPanel-pVr5LVaK.js.map} +1 -1
  58. package/dist/{Dialog-BvWF9HE-.cjs → Dialog-Duy3M1ny.cjs} +3 -3
  59. package/dist/{Dialog-BvWF9HE-.cjs.map → Dialog-Duy3M1ny.cjs.map} +1 -1
  60. package/dist/{Dialog-DaWtxwd9.js → Dialog-OBPu3rl2.js} +3 -3
  61. package/dist/{Dialog-DaWtxwd9.js.map → Dialog-OBPu3rl2.js.map} +1 -1
  62. package/dist/{EmptyState-DxDHlYqD.cjs → EmptyState-Dc-sP95H.cjs} +2 -2
  63. package/dist/{EmptyState-DxDHlYqD.cjs.map → EmptyState-Dc-sP95H.cjs.map} +1 -1
  64. package/dist/{EmptyState-P-Gy898T.js → EmptyState-i88y1x75.js} +2 -2
  65. package/dist/{EmptyState-P-Gy898T.js.map → EmptyState-i88y1x75.js.map} +1 -1
  66. package/dist/{ErrorBoundary-B5GjmA6V.cjs → ErrorBoundary-Bwoum0sT.cjs} +3 -3
  67. package/dist/{ErrorBoundary-B5GjmA6V.cjs.map → ErrorBoundary-Bwoum0sT.cjs.map} +1 -1
  68. package/dist/{ErrorBoundary-Cat3KU86.js → ErrorBoundary-BzmaWe2y.js} +3 -3
  69. package/dist/{ErrorBoundary-Cat3KU86.js.map → ErrorBoundary-BzmaWe2y.js.map} +1 -1
  70. package/dist/{FilterBar-PSQ1OwqH.js → FilterBar-Kmn6gMgO.js} +14 -15
  71. package/dist/FilterBar-Kmn6gMgO.js.map +1 -0
  72. package/dist/{FilterBar-BSP2UTjc.cjs → FilterBar-jBz6yaNu.cjs} +13 -14
  73. package/dist/FilterBar-jBz6yaNu.cjs.map +1 -0
  74. package/dist/{LogsDataList-BI2C5OJz.js → LogsDataList-Cdo_U0Ei.js} +5 -5
  75. package/dist/{LogsDataList-BI2C5OJz.js.map → LogsDataList-Cdo_U0Ei.js.map} +1 -1
  76. package/dist/{LogsDataList-CCIfUPGo.cjs → LogsDataList-z0Y2X8P5.cjs} +5 -5
  77. package/dist/{LogsDataList-CCIfUPGo.cjs.map → LogsDataList-z0Y2X8P5.cjs.map} +1 -1
  78. package/dist/{MarkdownRenderer-y65WGBhC.cjs → MarkdownRenderer-CUYpmuPh.cjs} +6 -6
  79. package/dist/{MarkdownRenderer-y65WGBhC.cjs.map → MarkdownRenderer-CUYpmuPh.cjs.map} +1 -1
  80. package/dist/{MarkdownRenderer-CI30RqdB.js → MarkdownRenderer-CY8LGt-l.js} +6 -6
  81. package/dist/{MarkdownRenderer-CI30RqdB.js.map → MarkdownRenderer-CY8LGt-l.js.map} +1 -1
  82. package/dist/MarkdownRenderer.css +77 -6
  83. package/dist/{Message-jj56lxNL.cjs → Message-CgO_SxI4.cjs} +20 -9
  84. package/dist/Message-CgO_SxI4.cjs.map +1 -0
  85. package/dist/{Message-CWzi5F_Q.js → Message-DnnCoSef.js} +20 -9
  86. package/dist/{Message-CWzi5F_Q.js.map → Message-DnnCoSef.js.map} +1 -1
  87. package/dist/{MessageScroller-CGsfTd1Z.cjs → MessageScroller-D-mK1uuu.cjs} +50 -26
  88. package/dist/MessageScroller-D-mK1uuu.cjs.map +1 -0
  89. package/dist/{MessageScroller-DvaKlm4O.js → MessageScroller-nV_zBF3H.js} +50 -26
  90. package/dist/MessageScroller-nV_zBF3H.js.map +1 -0
  91. package/dist/Metadata-5GJlO4GU.cjs +32 -0
  92. package/dist/Metadata-5GJlO4GU.cjs.map +1 -0
  93. package/dist/Metadata-DlVgmRTA.js +27 -0
  94. package/dist/Metadata-DlVgmRTA.js.map +1 -0
  95. package/dist/{MetricsCard-BEwiS7Pe.cjs → MetricsCard-DojbLiEx.cjs} +19 -6
  96. package/dist/MetricsCard-DojbLiEx.cjs.map +1 -0
  97. package/dist/{MetricsCard-ua6C6b8a.js → MetricsCard-kAqSCPPe.js} +20 -7
  98. package/dist/MetricsCard-kAqSCPPe.js.map +1 -0
  99. package/dist/{MetricsKpiCard-OHbAElTl.js → MetricsKpiCard-1blTbzUs.js} +6 -6
  100. package/dist/{MetricsKpiCard-OHbAElTl.js.map → MetricsKpiCard-1blTbzUs.js.map} +1 -1
  101. package/dist/{MetricsKpiCard-By_-sagx.cjs → MetricsKpiCard-C_9GvRAp.cjs} +6 -6
  102. package/dist/{MetricsKpiCard-By_-sagx.cjs.map → MetricsKpiCard-C_9GvRAp.cjs.map} +1 -1
  103. package/dist/{MetricsLineChart-4SwxBbQx.js → MetricsLineChart-4w5lpH63.js} +3 -3
  104. package/dist/{MetricsLineChart-4SwxBbQx.js.map → MetricsLineChart-4w5lpH63.js.map} +1 -1
  105. package/dist/{MetricsLineChart-tZxsauau.cjs → MetricsLineChart-BnY9JKzc.cjs} +3 -3
  106. package/dist/{MetricsLineChart-tZxsauau.cjs.map → MetricsLineChart-BnY9JKzc.cjs.map} +1 -1
  107. package/dist/{MetricsStackedBarChart-D2QyS4-z.js → MetricsStackedBarChart-Bmk0OjYp.js} +7 -7
  108. package/dist/{MetricsStackedBarChart-D2QyS4-z.js.map → MetricsStackedBarChart-Bmk0OjYp.js.map} +1 -1
  109. package/dist/{MetricsStackedBarChart-CDLE76IB.cjs → MetricsStackedBarChart-CJQF99sc.cjs} +7 -7
  110. package/dist/{MetricsStackedBarChart-CDLE76IB.cjs.map → MetricsStackedBarChart-CJQF99sc.cjs.map} +1 -1
  111. package/dist/{MetricsTable-BSl81oNe.cjs → MetricsTable-CvMoo2vg.cjs} +3 -3
  112. package/dist/{MetricsTable-BSl81oNe.cjs.map → MetricsTable-CvMoo2vg.cjs.map} +1 -1
  113. package/dist/{MetricsTable-DID6LRoP.js → MetricsTable-DIjbD5Xk.js} +3 -3
  114. package/dist/{MetricsTable-DID6LRoP.js.map → MetricsTable-DIjbD5Xk.js.map} +1 -1
  115. package/dist/{Notice-JZ7SW7q6.cjs → Notice-B_KjMmA6.cjs} +3 -3
  116. package/dist/{Notice-JZ7SW7q6.cjs.map → Notice-B_KjMmA6.cjs.map} +1 -1
  117. package/dist/{Notice-C-8oOZZF.js → Notice-OSlG42lD.js} +2 -2
  118. package/dist/{Notice-C-8oOZZF.js.map → Notice-OSlG42lD.js.map} +1 -1
  119. package/dist/{PageLayout-DFRzcnkf.cjs → PageLayout-C0Fo3ZQC.cjs} +3 -3
  120. package/dist/{PageLayout-DFRzcnkf.cjs.map → PageLayout-C0Fo3ZQC.cjs.map} +1 -1
  121. package/dist/{PageLayout-CyM_Op3c.js → PageLayout-DLll7ZwB.js} +3 -3
  122. package/dist/{PageLayout-CyM_Op3c.js.map → PageLayout-DLll7ZwB.js.map} +1 -1
  123. package/dist/{SankeyChart-E68mYEs2.js → SankeyChart-lkM5cpOC.js} +3 -3
  124. package/dist/{SankeyChart-E68mYEs2.js.map → SankeyChart-lkM5cpOC.js.map} +1 -1
  125. package/dist/{SankeyChart-DHeJ45KN.cjs → SankeyChart-m50vrsBS.cjs} +3 -3
  126. package/dist/{SankeyChart-DHeJ45KN.cjs.map → SankeyChart-m50vrsBS.cjs.map} +1 -1
  127. package/dist/{Section-CyGQZR7U.cjs → Section-B8MIbDDs.cjs} +3 -3
  128. package/dist/{Section-CyGQZR7U.cjs.map → Section-B8MIbDDs.cjs.map} +1 -1
  129. package/dist/{Section-CWFQ8jNS.js → Section-C9Fgv-IF.js} +3 -3
  130. package/dist/{Section-CWFQ8jNS.js.map → Section-C9Fgv-IF.js.map} +1 -1
  131. package/dist/{ShareBar-3Z5np-NY.cjs → ShareBar-DERy_egz.cjs} +2 -2
  132. package/dist/{ShareBar-3Z5np-NY.cjs.map → ShareBar-DERy_egz.cjs.map} +1 -1
  133. package/dist/{ShareBar-D6dWWl4C.js → ShareBar-KrzzdcyI.js} +2 -2
  134. package/dist/{ShareBar-D6dWWl4C.js.map → ShareBar-KrzzdcyI.js.map} +1 -1
  135. package/dist/{Tree-BplQcY8u.cjs → Tree-Caz4FTCU.cjs} +3 -3
  136. package/dist/{Tree-BplQcY8u.cjs.map → Tree-Caz4FTCU.cjs.map} +1 -1
  137. package/dist/{Tree-CoLkeBCL.js → Tree-od43gLMO.js} +3 -3
  138. package/dist/{Tree-CoLkeBCL.js.map → Tree-od43gLMO.js.map} +1 -1
  139. package/dist/{Txt-BM6TVV_c.js → Txt-5efBsb2p.js} +2 -2
  140. package/dist/{Txt-BM6TVV_c.js.map → Txt-5efBsb2p.js.map} +1 -1
  141. package/dist/{Txt-BnoSqxKE.cjs → Txt-_00wWxTd.cjs} +2 -2
  142. package/dist/{Txt-BnoSqxKE.cjs.map → Txt-_00wWxTd.cjs.map} +1 -1
  143. package/dist/{Workflow-DSWQ-ROz.cjs → Workflow-XR5L-3cJ.cjs} +15 -14
  144. package/dist/Workflow-XR5L-3cJ.cjs.map +1 -0
  145. package/dist/{Workflow-C3SlEdP-.js → Workflow-mIbUYdv0.js} +15 -14
  146. package/dist/Workflow-mIbUYdv0.js.map +1 -0
  147. package/dist/{activity-CcQZeDYi.cjs → activity-BprmG6yH.cjs} +10 -10
  148. package/dist/activity-BprmG6yH.cjs.map +1 -0
  149. package/dist/{activity-C8Ql81WM.js → activity-ClFChYfl.js} +10 -10
  150. package/dist/activity-ClFChYfl.js.map +1 -0
  151. package/dist/annotations.css +8 -0
  152. package/dist/{ask-user-DPznrqGO.js → ask-user-D4ezQ6pt.js} +5 -5
  153. package/dist/{ask-user-DPznrqGO.js.map → ask-user-D4ezQ6pt.js.map} +1 -1
  154. package/dist/{ask-user-C1p2PEYe.cjs → ask-user-DcnUNMM5.cjs} +5 -5
  155. package/dist/{ask-user-C1p2PEYe.cjs.map → ask-user-DcnUNMM5.cjs.map} +1 -1
  156. package/dist/{buttons-group-DkFlnMiL.js → buttons-group-DA_wORqQ.js} +2 -2
  157. package/dist/{buttons-group-DkFlnMiL.js.map → buttons-group-DA_wORqQ.js.map} +1 -1
  158. package/dist/{buttons-group-Dc6R7YSs.cjs → buttons-group-DM6_Kohs.cjs} +2 -2
  159. package/dist/{buttons-group-Dc6R7YSs.cjs.map → buttons-group-DM6_Kohs.cjs.map} +1 -1
  160. package/dist/chat-shell-context-0m1GVhS7.js +16 -0
  161. package/dist/chat-shell-context-0m1GVhS7.js.map +1 -0
  162. package/dist/chat-shell-context-ONCslAGn.cjs +39 -0
  163. package/dist/chat-shell-context-ONCslAGn.cjs.map +1 -0
  164. package/dist/{clear-filters-button-CNrRuHOY.js → clear-filters-button-C79dzuzA.js} +2 -2
  165. package/dist/{clear-filters-button-CNrRuHOY.js.map → clear-filters-button-C79dzuzA.js.map} +1 -1
  166. package/dist/{clear-filters-button-Buc973vw.cjs → clear-filters-button-CCO-y7kt.cjs} +2 -2
  167. package/dist/{clear-filters-button-Buc973vw.cjs.map → clear-filters-button-CCO-y7kt.cjs.map} +1 -1
  168. package/dist/{combobox-DIT_6xiG.cjs → combobox-i723LxeC.cjs} +33 -29
  169. package/dist/combobox-i723LxeC.cjs.map +1 -0
  170. package/dist/{combobox-D21no8t5.js → combobox-lbSxWRMl.js} +33 -29
  171. package/dist/combobox-lbSxWRMl.js.map +1 -0
  172. package/dist/{combobox-parts-C4phOq4t.cjs → combobox-parts-BeNqgCbj.cjs} +27 -12
  173. package/dist/combobox-parts-BeNqgCbj.cjs.map +1 -0
  174. package/dist/{combobox-parts-D90ir0Py.js → combobox-parts-C9o4UfH_.js} +22 -13
  175. package/dist/combobox-parts-C9o4UfH_.js.map +1 -0
  176. package/dist/components/AgentIndicator.cjs.js +1 -1
  177. package/dist/components/AgentIndicator.es.js +1 -1
  178. package/dist/components/AlertDialog.cjs.js +2 -2
  179. package/dist/components/AlertDialog.es.js +2 -2
  180. package/dist/components/AttachmentCard.cjs.js +1 -1
  181. package/dist/components/AttachmentCard.es.js +1 -1
  182. package/dist/components/Avatar.cjs.js +1 -1
  183. package/dist/components/Avatar.es.js +1 -1
  184. package/dist/components/Badge.cjs.js +1 -1
  185. package/dist/components/Badge.es.js +1 -1
  186. package/dist/components/Breadcrumb.cjs.js +6 -5
  187. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  188. package/dist/components/Breadcrumb.es.js +6 -5
  189. package/dist/components/Breadcrumb.es.js.map +1 -1
  190. package/dist/components/Button.cjs.js +2 -2
  191. package/dist/components/Button.es.js +2 -2
  192. package/dist/components/ButtonsGroup.cjs.js +1 -1
  193. package/dist/components/ButtonsGroup.es.js +1 -1
  194. package/dist/components/Card.cjs.js +1 -1
  195. package/dist/components/Card.es.js +1 -1
  196. package/dist/components/ChartSkeleton.cjs.js +2 -2
  197. package/dist/components/ChartSkeleton.es.js +2 -2
  198. package/dist/components/ChartTooltip.cjs.js +1 -1
  199. package/dist/components/ChartTooltip.es.js +1 -1
  200. package/dist/components/ChatShell.cjs.js +33 -9
  201. package/dist/components/ChatShell.cjs.js.map +1 -1
  202. package/dist/components/ChatShell.es.js +33 -9
  203. package/dist/components/ChatShell.es.js.map +1 -1
  204. package/dist/components/Checkbox.cjs.js +1 -1
  205. package/dist/components/Checkbox.es.js +1 -1
  206. package/dist/components/ClampedText.cjs.js +3 -3
  207. package/dist/components/ClampedText.es.js +3 -3
  208. package/dist/components/ClearFiltersButton.cjs.js +1 -1
  209. package/dist/components/ClearFiltersButton.es.js +1 -1
  210. package/dist/components/CodeBlock.cjs.js +5 -5
  211. package/dist/components/CodeBlock.es.js +5 -5
  212. package/dist/components/CodeDiff.cjs.js +3 -3
  213. package/dist/components/CodeDiff.es.js +2 -2
  214. package/dist/components/CodeEditor.cjs.js +1 -1
  215. package/dist/components/CodeEditor.es.js +1 -1
  216. package/dist/components/Collapsible.cjs.js +1 -1
  217. package/dist/components/Collapsible.es.js +1 -1
  218. package/dist/components/CollapsibleBox.cjs.js +1 -1
  219. package/dist/components/CollapsibleBox.es.js +1 -1
  220. package/dist/components/Combobox.cjs.js +2 -2
  221. package/dist/components/Combobox.es.js +2 -2
  222. package/dist/components/Command.cjs.js +5 -5
  223. package/dist/components/Command.es.js +5 -5
  224. package/dist/components/CommandPalette.cjs.js +7 -7
  225. package/dist/components/CommandPalette.cjs.js.map +1 -1
  226. package/dist/components/CommandPalette.es.js +7 -7
  227. package/dist/components/CommandPalette.es.js.map +1 -1
  228. package/dist/components/Comment.cjs.js +1 -1
  229. package/dist/components/Comment.es.js +1 -1
  230. package/dist/components/CompactNumber.cjs.js +2 -2
  231. package/dist/components/CompactNumber.es.js +2 -2
  232. package/dist/components/Composer.cjs.js +1 -1
  233. package/dist/components/Composer.es.js +1 -1
  234. package/dist/components/ContextMenu.cjs.js +1 -1
  235. package/dist/components/ContextMenu.es.js +1 -1
  236. package/dist/components/CopyButton.cjs.js +1 -1
  237. package/dist/components/CopyButton.es.js +1 -1
  238. package/dist/components/DataCodeSection.cjs.js +1 -1
  239. package/dist/components/DataCodeSection.es.js +1 -1
  240. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  241. package/dist/components/DataDetailsPanel.es.js +1 -1
  242. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  243. package/dist/components/DataKeysAndValues.es.js +1 -1
  244. package/dist/components/DataList.cjs.js +3 -3
  245. package/dist/components/DataList.es.js +3 -3
  246. package/dist/components/DataPanel.cjs.js +1 -1
  247. package/dist/components/DataPanel.es.js +1 -1
  248. package/dist/components/DateRangeTimeline.cjs.js +9 -9
  249. package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
  250. package/dist/components/DateRangeTimeline.es.js +9 -9
  251. package/dist/components/DateRangeTimeline.es.js.map +1 -1
  252. package/dist/components/DateTimePicker.cjs.js +75 -142
  253. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  254. package/dist/components/DateTimePicker.es.js +79 -146
  255. package/dist/components/DateTimePicker.es.js.map +1 -1
  256. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  257. package/dist/components/DateTimeRangePicker.es.js +1 -1
  258. package/dist/components/Dialog.cjs.js +1 -1
  259. package/dist/components/Dialog.es.js +1 -1
  260. package/dist/components/DiffStat.cjs.js +1 -1
  261. package/dist/components/DiffStat.es.js +1 -1
  262. package/dist/components/DisabledFeatureButton.cjs.js +3 -3
  263. package/dist/components/DisabledFeatureButton.es.js +3 -3
  264. package/dist/components/DisclosureChevron.cjs.js +1 -1
  265. package/dist/components/DisclosureChevron.es.js +1 -1
  266. package/dist/components/Drawer.cjs.js +2 -2
  267. package/dist/components/Drawer.es.js +2 -2
  268. package/dist/components/DropdownMenu.cjs.js +1 -1
  269. package/dist/components/DropdownMenu.es.js +1 -1
  270. package/dist/components/EmptyState.cjs.js +1 -1
  271. package/dist/components/EmptyState.es.js +1 -1
  272. package/dist/components/Entity.cjs.js +3 -3
  273. package/dist/components/Entity.es.js +3 -3
  274. package/dist/components/EntityHeader.cjs.js +2 -2
  275. package/dist/components/EntityHeader.es.js +2 -2
  276. package/dist/components/Entry.cjs.js +1 -1
  277. package/dist/components/Entry.es.js +1 -1
  278. package/dist/components/EnvironmentVariablesEditor.cjs.js +6 -6
  279. package/dist/components/EnvironmentVariablesEditor.es.js +6 -6
  280. package/dist/components/ErrorBoundary.cjs.js +1 -1
  281. package/dist/components/ErrorBoundary.es.js +1 -1
  282. package/dist/components/Field.cjs.js +2 -2
  283. package/dist/components/Field.es.js +2 -2
  284. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  285. package/dist/components/FileDropBackdrop.es.js +1 -1
  286. package/dist/components/FilterBar.cjs.js +3 -3
  287. package/dist/components/FilterBar.es.js +3 -3
  288. package/dist/components/FormFieldBlocks.cjs.js +5 -5
  289. package/dist/components/FormFieldBlocks.es.js +6 -6
  290. package/dist/components/Header.cjs.js +1 -1
  291. package/dist/components/Header.es.js +1 -1
  292. package/dist/components/HoverCard.cjs.js +1 -1
  293. package/dist/components/HoverCard.es.js +1 -1
  294. package/dist/components/Input.cjs.js +1 -1
  295. package/dist/components/Input.es.js +1 -1
  296. package/dist/components/InputGroup.cjs.js +1 -1
  297. package/dist/components/InputGroup.es.js +1 -1
  298. package/dist/components/InputNumber.cjs.js +3 -3
  299. package/dist/components/InputNumber.es.js +3 -3
  300. package/dist/components/JSONSchemaForm.cjs.js +4 -4
  301. package/dist/components/JSONSchemaForm.es.js +4 -4
  302. package/dist/components/Kbd.cjs.js +1 -1
  303. package/dist/components/Kbd.es.js +1 -1
  304. package/dist/components/KeyValueList.cjs.js +2 -2
  305. package/dist/components/KeyValueList.es.js +2 -2
  306. package/dist/components/ListSearch.cjs.js +1 -1
  307. package/dist/components/ListSearch.es.js +1 -1
  308. package/dist/components/LogsDataList.cjs.js +2 -2
  309. package/dist/components/LogsDataList.es.js +2 -2
  310. package/dist/components/MainHeader.cjs.js +1 -1
  311. package/dist/components/MainHeader.es.js +1 -1
  312. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  313. package/dist/components/MarkdownRenderer.es.js +1 -1
  314. package/dist/components/Message.cjs.js +1 -1
  315. package/dist/components/Message.es.js +1 -1
  316. package/dist/components/MessageScroller.cjs.js +1 -1
  317. package/dist/components/MessageScroller.es.js +1 -1
  318. package/dist/components/Metadata.cjs.js +3 -0
  319. package/dist/components/Metadata.d.ts +1 -0
  320. package/dist/components/Metadata.es.js +1 -0
  321. package/dist/components/Meter.cjs.js +3 -3
  322. package/dist/components/Meter.es.js +3 -3
  323. package/dist/components/MetricsCard.cjs.js +1 -1
  324. package/dist/components/MetricsCard.es.js +1 -1
  325. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  326. package/dist/components/MetricsKpiCard.es.js +1 -1
  327. package/dist/components/MetricsLineChart.cjs.js +1 -1
  328. package/dist/components/MetricsLineChart.es.js +1 -1
  329. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  330. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  331. package/dist/components/MetricsTable.cjs.js +1 -1
  332. package/dist/components/MetricsTable.es.js +1 -1
  333. package/dist/components/Notice.cjs.js +1 -1
  334. package/dist/components/Notice.es.js +1 -1
  335. package/dist/components/PageHeader.cjs.js +1 -1
  336. package/dist/components/PageHeader.es.js +1 -1
  337. package/dist/components/PageLayout.cjs.js +1 -1
  338. package/dist/components/PageLayout.es.js +1 -1
  339. package/dist/components/Popover.cjs.js +1 -1
  340. package/dist/components/Popover.es.js +1 -1
  341. package/dist/components/PrevNextNav.cjs.js +1 -1
  342. package/dist/components/PrevNextNav.es.js +1 -1
  343. package/dist/components/ProductAvatar.cjs.js +2 -2
  344. package/dist/components/ProductAvatar.es.js +2 -2
  345. package/dist/components/ProductBadge.cjs.js +2 -2
  346. package/dist/components/ProductBadge.es.js +2 -2
  347. package/dist/components/PropertyFilter.cjs.js +9 -9
  348. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  349. package/dist/components/PropertyFilter.es.js +9 -9
  350. package/dist/components/PropertyFilter.es.js.map +1 -1
  351. package/dist/components/RadioGroup.cjs.js +1 -1
  352. package/dist/components/RadioGroup.es.js +1 -1
  353. package/dist/components/RelativeTimestamp.cjs.js +6 -30
  354. package/dist/components/RelativeTimestamp.cjs.js.map +1 -1
  355. package/dist/components/RelativeTimestamp.es.js +7 -31
  356. package/dist/components/RelativeTimestamp.es.js.map +1 -1
  357. package/dist/components/RuleBuilder.cjs.js +22 -22
  358. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  359. package/dist/components/RuleBuilder.es.js +5 -5
  360. package/dist/components/SankeyChart.cjs.js +1 -1
  361. package/dist/components/SankeyChart.es.js +1 -1
  362. package/dist/components/SavedViews.cjs.js +9 -9
  363. package/dist/components/SavedViews.es.js +9 -9
  364. package/dist/components/ScatterPlotChart.cjs.js +2 -2
  365. package/dist/components/ScatterPlotChart.es.js +2 -2
  366. package/dist/components/ScrollArea.cjs.js +1 -1
  367. package/dist/components/ScrollArea.es.js +1 -1
  368. package/dist/components/SearchInput.cjs.js +2 -2
  369. package/dist/components/SearchInput.es.js +2 -2
  370. package/dist/components/Section.cjs.js +1 -1
  371. package/dist/components/Section.es.js +1 -1
  372. package/dist/components/SectionCard.cjs.js +1 -1
  373. package/dist/components/SectionCard.es.js +1 -1
  374. package/dist/components/SegmentedControl.cjs.js +3 -3
  375. package/dist/components/SegmentedControl.es.js +3 -3
  376. package/dist/components/Select.cjs.js +1 -1
  377. package/dist/components/Select.es.js +1 -1
  378. package/dist/components/ShareBar.cjs.js +1 -1
  379. package/dist/components/ShareBar.es.js +1 -1
  380. package/dist/components/SideDialog.cjs.js +8 -8
  381. package/dist/components/SideDialog.es.js +8 -8
  382. package/dist/components/Sidebar.cjs.js +14 -14
  383. package/dist/components/Sidebar.cjs.js.map +1 -1
  384. package/dist/components/Sidebar.es.js +15 -15
  385. package/dist/components/Sidebar.es.js.map +1 -1
  386. package/dist/components/Skeleton.cjs.js +1 -1
  387. package/dist/components/Skeleton.es.js +1 -1
  388. package/dist/components/Spinner.cjs.js +1 -1
  389. package/dist/components/Spinner.es.js +1 -1
  390. package/dist/components/StatusIndicators.cjs.js +3 -3
  391. package/dist/components/StatusIndicators.es.js +3 -3
  392. package/dist/components/Steps.cjs.js +73 -3
  393. package/dist/components/Steps.cjs.js.map +1 -1
  394. package/dist/components/Steps.es.js +73 -4
  395. package/dist/components/Steps.es.js.map +1 -1
  396. package/dist/components/Switch.cjs.js +2 -2
  397. package/dist/components/Switch.es.js +2 -2
  398. package/dist/components/Table.cjs.js +4 -4
  399. package/dist/components/Table.es.js +4 -4
  400. package/dist/components/Tabs.cjs.js +2 -2
  401. package/dist/components/Tabs.es.js +2 -2
  402. package/dist/components/Text.cjs.js +1 -1
  403. package/dist/components/Text.es.js +1 -1
  404. package/dist/components/Textarea.cjs.js +2 -2
  405. package/dist/components/Textarea.es.js +2 -2
  406. package/dist/components/ThinkingLevel.cjs.js +5 -5
  407. package/dist/components/ThinkingLevel.cjs.js.map +1 -1
  408. package/dist/components/ThinkingLevel.es.js +5 -5
  409. package/dist/components/ThinkingLevel.es.js.map +1 -1
  410. package/dist/components/ThreadList.cjs.js +2 -2
  411. package/dist/components/ThreadList.es.js +2 -2
  412. package/dist/components/ThreadRail.cjs.js +8 -8
  413. package/dist/components/ThreadRail.cjs.js.map +1 -1
  414. package/dist/components/ThreadRail.es.js +8 -8
  415. package/dist/components/ThreadRail.es.js.map +1 -1
  416. package/dist/components/Toaster.cjs.js +4 -4
  417. package/dist/components/Toaster.es.js +3 -3
  418. package/dist/components/TokenBudget.cjs.js +3 -3
  419. package/dist/components/TokenBudget.es.js +2 -2
  420. package/dist/components/Tooltip.cjs.js +2 -2
  421. package/dist/components/Tooltip.es.js +2 -2
  422. package/dist/components/Tree.cjs.js +1 -1
  423. package/dist/components/Tree.es.js +1 -1
  424. package/dist/components/Truncate.cjs.js +3 -3
  425. package/dist/components/Truncate.es.js +3 -3
  426. package/dist/components/Txt.cjs.js +1 -1
  427. package/dist/components/Txt.es.js +1 -1
  428. package/dist/components/Workflow.cjs.js +1 -1
  429. package/dist/components/Workflow.es.js +1 -1
  430. package/dist/components/ai/activity.cjs.js +1 -1
  431. package/dist/components/ai/activity.es.js +1 -1
  432. package/dist/components/ai/annotations.cjs.js +836 -0
  433. package/dist/components/ai/annotations.cjs.js.map +1 -0
  434. package/dist/components/ai/annotations.d.ts +1 -0
  435. package/dist/components/ai/annotations.es.js +831 -0
  436. package/dist/components/ai/annotations.es.js.map +1 -0
  437. package/dist/components/ai/ask-user.cjs.js +1 -1
  438. package/dist/components/ai/ask-user.es.js +1 -1
  439. package/dist/components/ai/plan.cjs.js +6 -6
  440. package/dist/components/ai/plan.es.js +6 -6
  441. package/dist/components/ai/task-list.cjs.js +4 -4
  442. package/dist/components/ai/task-list.cjs.js.map +1 -1
  443. package/dist/components/ai/task-list.es.js +4 -4
  444. package/dist/components/ai/task-list.es.js.map +1 -1
  445. package/dist/components/ai/tool-approval.cjs.js +1 -1
  446. package/dist/components/ai/tool-approval.es.js +1 -1
  447. package/dist/components/ai/tool-call.cjs.js +7 -2
  448. package/dist/components/ai/tool-call.es.js +3 -3
  449. package/dist/components/ai/transcript-divider.cjs.js +1 -1
  450. package/dist/components/ai/transcript-divider.es.js +1 -1
  451. package/dist/{context-menu-Dv0NU0oM.js → context-menu-6_Kcs8kj.js} +3 -3
  452. package/dist/{context-menu-Dv0NU0oM.js.map → context-menu-6_Kcs8kj.js.map} +1 -1
  453. package/dist/{context-menu-DTFPCyae.cjs → context-menu-DwB7u7fB.cjs} +3 -3
  454. package/dist/{context-menu-DTFPCyae.cjs.map → context-menu-DwB7u7fB.cjs.map} +1 -1
  455. package/dist/{copy-button-BXrbevLn.js → copy-button-B-_Z6N6y.js} +2 -2
  456. package/dist/{copy-button-BXrbevLn.js.map → copy-button-B-_Z6N6y.js.map} +1 -1
  457. package/dist/{copy-button-DJAQ6_3o.cjs → copy-button-DuEUYvS2.cjs} +2 -2
  458. package/dist/{copy-button-DJAQ6_3o.cjs.map → copy-button-DuEUYvS2.cjs.map} +1 -1
  459. package/dist/{data-list-C4Vmq5HA.cjs → data-list-072hHK9L.cjs} +7 -7
  460. package/dist/{data-list-C4Vmq5HA.cjs.map → data-list-072hHK9L.cjs.map} +1 -1
  461. package/dist/{data-list-DHCOoLmj.js → data-list-GzbzPmYR.js} +7 -7
  462. package/dist/{data-list-DHCOoLmj.js.map → data-list-GzbzPmYR.js.map} +1 -1
  463. package/dist/{date-time-range-picker-CWGjoR3j.cjs → date-time-range-picker-Bq-8IPtS.cjs} +141 -112
  464. package/dist/date-time-range-picker-Bq-8IPtS.cjs.map +1 -0
  465. package/dist/{date-time-range-picker-CdSiXwB4.js → date-time-range-picker-DdNgKD87.js} +144 -115
  466. package/dist/date-time-range-picker-DdNgKD87.js.map +1 -0
  467. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  468. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  469. package/dist/domains/auth/components/session-expired.cjs.js +3 -3
  470. package/dist/domains/auth/components/session-expired.es.js +3 -3
  471. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +2 -2
  472. package/dist/domains/chat/activity/activity-stretch-line.es.js +2 -2
  473. package/dist/domains/chat/activity/components/activity-fold.cjs.js +54 -58
  474. package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
  475. package/dist/domains/chat/activity/components/activity-fold.es.js +54 -58
  476. package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
  477. package/dist/domains/chat/activity/components/calls-panel.cjs.js +2 -2
  478. package/dist/domains/chat/activity/components/calls-panel.es.js +2 -2
  479. package/dist/domains/chat/activity/components/stretch-content.cjs.js +2 -2
  480. package/dist/domains/chat/activity/components/stretch-content.es.js +2 -2
  481. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  482. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  483. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  484. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  485. package/dist/domains/chat/activity/model/activity-words.cjs.js +7 -11
  486. package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
  487. package/dist/domains/chat/activity/model/activity-words.es.js +8 -11
  488. package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
  489. package/dist/domains/chat/activity.cjs.js +2 -5
  490. package/dist/domains/chat/activity.es.js +4 -5
  491. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +3 -3
  492. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +3 -3
  493. package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js +2 -2
  494. package/dist/domains/chat/attachments/composer-attachment-entry.es.js +2 -2
  495. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
  496. package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
  497. package/dist/domains/chat/attachments/composer-attachment.cjs.js +4 -4
  498. package/dist/domains/chat/attachments/composer-attachment.es.js +4 -4
  499. package/dist/domains/chat/attachments/message-attachment.cjs.js +2 -2
  500. package/dist/domains/chat/attachments/message-attachment.es.js +2 -2
  501. package/dist/domains/chat/attachments/message-image-attachment.cjs.js +2 -2
  502. package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -1
  503. package/dist/domains/chat/attachments/message-image-attachment.es.js +2 -2
  504. package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -1
  505. package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
  506. package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
  507. package/dist/domains/chat/components/loading-badge.cjs.js +2 -2
  508. package/dist/domains/chat/components/loading-badge.es.js +2 -2
  509. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
  510. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
  511. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  512. package/dist/domains/chat/components/section-label.es.js +1 -1
  513. package/dist/domains/chat/context/chat-context.cjs.js +2 -0
  514. package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
  515. package/dist/domains/chat/context/chat-context.es.js +2 -1
  516. package/dist/domains/chat/context/chat-context.es.js.map +1 -1
  517. package/dist/domains/chat/knowledge/knowledge-links.cjs.js +1 -1
  518. package/dist/domains/chat/knowledge/knowledge-links.es.js +1 -1
  519. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +3 -3
  520. package/dist/domains/chat/knowledge/pinned-knowledge.es.js +3 -3
  521. package/dist/domains/chat/knowledge.cjs.js +1 -1
  522. package/dist/domains/chat/knowledge.es.js +1 -1
  523. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  524. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  525. package/dist/domains/chat/messages/dataset-save-action.cjs.js +10 -10
  526. package/dist/domains/chat/messages/dataset-save-action.es.js +11 -11
  527. package/dist/domains/chat/messages/message-row.cjs.js +20 -20
  528. package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
  529. package/dist/domains/chat/messages/message-row.es.js +20 -20
  530. package/dist/domains/chat/messages/message-row.es.js.map +1 -1
  531. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +5 -5
  532. package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
  533. package/dist/domains/chat/messages/notification-signal-notice.es.js +5 -5
  534. package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
  535. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  536. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  537. package/dist/domains/chat/messages/renderers/data-part-renderer.cjs.js +1 -1
  538. package/dist/domains/chat/messages/renderers/data-part-renderer.es.js +1 -1
  539. package/dist/domains/chat/messages/renderers/message-text.cjs.js +5 -5
  540. package/dist/domains/chat/messages/renderers/message-text.es.js +5 -5
  541. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  542. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  543. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  544. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  545. package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js +1 -1
  546. package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
  547. package/dist/domains/chat/messages/signal-badge.cjs.js +5 -5
  548. package/dist/domains/chat/messages/signal-badge.es.js +5 -5
  549. package/dist/domains/chat/messages/skill-message.cjs.js +4 -4
  550. package/dist/domains/chat/messages/skill-message.es.js +4 -4
  551. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  552. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  553. package/dist/domains/chat/messages/tripwire-notice.cjs.js +4 -4
  554. package/dist/domains/chat/messages/tripwire-notice.es.js +4 -4
  555. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  556. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  557. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  558. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  559. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  560. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  561. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +5 -5
  562. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
  563. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +7 -6
  564. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  565. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +7 -6
  566. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  567. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +5 -5
  568. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +5 -5
  569. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +2 -2
  570. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -1
  571. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +2 -2
  572. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -1
  573. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +34 -28
  574. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
  575. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +34 -28
  576. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
  577. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +28 -24
  578. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
  579. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +28 -24
  580. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
  581. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +4 -4
  582. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +4 -4
  583. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +8 -7
  584. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
  585. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +8 -7
  586. package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
  587. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +3 -3
  588. package/dist/domains/chat/tools/badges/observation-renderer.es.js +3 -3
  589. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +25 -34
  590. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
  591. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +27 -36
  592. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
  593. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  594. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  595. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +19 -26
  596. package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
  597. package/dist/domains/chat/tools/badges/tool-badge.es.js +19 -26
  598. package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
  599. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +12 -10
  600. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  601. package/dist/domains/chat/tools/badges/workflow-badge.es.js +12 -10
  602. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  603. package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js +13 -0
  604. package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js.map +1 -1
  605. package/dist/domains/chat/tools/badges/workspace-data-parts.es.js +13 -1
  606. package/dist/domains/chat/tools/badges/workspace-data-parts.es.js.map +1 -1
  607. package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
  608. package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
  609. package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +8 -8
  610. package/dist/domains/chat/tools/connect-prompt-tool.es.js +8 -8
  611. package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +5 -5
  612. package/dist/domains/chat/tools/mcp-input-request-tool.es.js +5 -5
  613. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +4 -4
  614. package/dist/domains/chat/tools/submit-plan-tool.es.js +4 -4
  615. package/dist/domains/chat/tools/tool-card-kind.cjs.js +10 -5
  616. package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
  617. package/dist/domains/chat/tools/tool-card-kind.es.js +10 -5
  618. package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
  619. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  620. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  621. package/dist/domains/chat/tools/tool-groups.cjs.js +2 -2
  622. package/dist/domains/chat/tools/tool-groups.es.js +2 -2
  623. package/dist/domains/chat.cjs.js +6 -5
  624. package/dist/domains/chat.es.js +6 -6
  625. package/dist/domains/connect.cjs.js +1 -1
  626. package/dist/domains/connect.es.js +1 -1
  627. package/dist/domains/dashboards/components/dashboard-grid.cjs.js +11 -8
  628. package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -1
  629. package/dist/domains/dashboards/components/dashboard-grid.es.js +11 -8
  630. package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -1
  631. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +18 -7
  632. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
  633. package/dist/domains/dashboards/components/dashboard-renderer.es.js +18 -7
  634. package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
  635. package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
  636. package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
  637. package/dist/domains/dashboards/components/widget-controls.cjs.js +16 -1
  638. package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
  639. package/dist/domains/dashboards/components/widget-controls.es.js +16 -2
  640. package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -1
  641. package/dist/domains/dashboards/components/widget-error.cjs.js +6 -3
  642. package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -1
  643. package/dist/domains/dashboards/components/widget-error.es.js +6 -3
  644. package/dist/domains/dashboards/components/widget-error.es.js.map +1 -1
  645. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +18 -4
  646. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
  647. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +19 -5
  648. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
  649. package/dist/domains/dashboards/kinds/kpis.cjs.js +1 -1
  650. package/dist/domains/dashboards/kinds/kpis.es.js +1 -1
  651. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +18 -9
  652. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
  653. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +18 -9
  654. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
  655. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +1 -1
  656. package/dist/domains/dashboards/kinds/table/table-cells.es.js +1 -1
  657. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +12 -5
  658. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
  659. package/dist/domains/dashboards/kinds/table/table-tabs.es.js +12 -5
  660. package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
  661. package/dist/domains/dashboards/kinds/table/table-view.cjs.js +7 -7
  662. package/dist/domains/dashboards/kinds/table/table-view.es.js +7 -7
  663. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +5 -2
  664. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
  665. package/dist/domains/dashboards/kinds/table/table-widget.es.js +5 -2
  666. package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
  667. package/dist/domains/dashboards/kinds/table.cjs.js +1 -1
  668. package/dist/domains/dashboards/kinds/table.es.js +1 -1
  669. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +21 -14
  670. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
  671. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +22 -15
  672. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
  673. package/dist/domains/dashboards/kinds/timeseries.cjs.js +1 -1
  674. package/dist/domains/dashboards/kinds/timeseries.es.js +1 -1
  675. package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
  676. package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
  677. package/dist/domains/dashboards/lib/format.cjs.js +1 -1
  678. package/dist/domains/dashboards/lib/format.es.js +1 -1
  679. package/dist/domains/dashboards/lib/pin-actions.cjs.js +16 -0
  680. package/dist/domains/dashboards/lib/pin-actions.cjs.js.map +1 -0
  681. package/dist/domains/dashboards/lib/pin-actions.d.ts +1 -0
  682. package/dist/domains/dashboards/lib/pin-actions.es.js +15 -0
  683. package/dist/domains/dashboards/lib/pin-actions.es.js.map +1 -0
  684. package/dist/domains/dashboards/lib/requests.cjs.js +2 -2
  685. package/dist/domains/dashboards/lib/requests.es.js +2 -2
  686. package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
  687. package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
  688. package/dist/domains/dashboards.cjs.js +11 -10
  689. package/dist/domains/dashboards.es.js +11 -11
  690. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +11 -11
  691. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +11 -11
  692. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +3 -3
  693. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +3 -3
  694. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +6 -6
  695. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +6 -6
  696. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -7
  697. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +7 -7
  698. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +3 -2
  699. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -1
  700. package/dist/domains/knowledge/components/KnowledgePageCard.es.js +3 -2
  701. package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -1
  702. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +11 -16
  703. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
  704. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +11 -16
  705. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
  706. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +5 -5
  707. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +5 -5
  708. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +11 -10
  709. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
  710. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +10 -9
  711. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
  712. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +1 -1
  713. package/dist/domains/knowledge/components/KnowledgePageTree.es.js +1 -1
  714. package/dist/domains/llm/models-dev-logo-slugs.cjs.js +230 -0
  715. package/dist/domains/llm/models-dev-logo-slugs.cjs.js.map +1 -0
  716. package/dist/domains/llm/models-dev-logo-slugs.d.ts +1 -0
  717. package/dist/domains/llm/models-dev-logo-slugs.es.js +229 -0
  718. package/dist/domains/llm/models-dev-logo-slugs.es.js.map +1 -0
  719. package/dist/domains/llm/provider-logo-monogram.cjs.js +37 -0
  720. package/dist/domains/llm/provider-logo-monogram.cjs.js.map +1 -0
  721. package/dist/domains/llm/provider-logo-monogram.d.ts +1 -0
  722. package/dist/domains/llm/provider-logo-monogram.es.js +36 -0
  723. package/dist/domains/llm/provider-logo-monogram.es.js.map +1 -0
  724. package/dist/domains/llm/provider-logo.cjs.js +46 -17
  725. package/dist/domains/llm/provider-logo.cjs.js.map +1 -1
  726. package/dist/domains/llm/provider-logo.es.js +46 -17
  727. package/dist/domains/llm/provider-logo.es.js.map +1 -1
  728. package/dist/domains/llm/provider-map-icon.cjs.js +1 -1
  729. package/dist/domains/llm/provider-map-icon.es.js +1 -1
  730. package/dist/domains/llm.cjs.js +1 -1
  731. package/dist/domains/llm.es.js +1 -1
  732. package/dist/domains/logs/components/log-data-panel.cjs.js +11 -7
  733. package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
  734. package/dist/domains/logs/components/log-data-panel.es.js +11 -7
  735. package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
  736. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  737. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  738. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  739. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  740. package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
  741. package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
  742. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  743. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  744. package/dist/domains/logs/components/no-logs-info.cjs.js +3 -3
  745. package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
  746. package/dist/domains/logs/components/no-logs-info.es.js +3 -3
  747. package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
  748. package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
  749. package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
  750. package/dist/domains/logs.cjs.js +2 -2
  751. package/dist/domains/logs.es.js +2 -2
  752. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +7 -8
  753. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
  754. package/dist/domains/mcps/components/mcp-app-tool-result.es.js +6 -7
  755. package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
  756. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +2 -108
  757. package/dist/domains/mcps/components/mcp-app-viewer.es.js +1 -108
  758. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js +36 -0
  759. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -0
  760. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +1 -0
  761. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +35 -0
  762. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -0
  763. package/dist/domains/memory/components/flame-graph.cjs.js +4 -4
  764. package/dist/domains/memory/components/flame-graph.es.js +4 -4
  765. package/dist/domains/memory/components/memory-studio-panel.cjs.js +6 -6
  766. package/dist/domains/memory/components/memory-studio-panel.es.js +6 -6
  767. package/dist/domains/memory/components/observation-detail-view.cjs.js +6 -6
  768. package/dist/domains/memory/components/observation-detail-view.es.js +6 -6
  769. package/dist/domains/memory/components/thread-context-progress.cjs.js +2 -2
  770. package/dist/domains/memory/components/thread-context-progress.es.js +2 -2
  771. package/dist/domains/memory/components.cjs.js +1 -1
  772. package/dist/domains/memory/components.es.js +1 -1
  773. package/dist/domains/metrics/components/agent-runs-card.cjs.js +7 -7
  774. package/dist/domains/metrics/components/agent-runs-card.es.js +7 -7
  775. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +2 -2
  776. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +2 -2
  777. package/dist/domains/metrics/components/breakdown/breakdown-figure.cjs.js +1 -1
  778. package/dist/domains/metrics/components/breakdown/breakdown-figure.es.js +1 -1
  779. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +2 -2
  780. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +2 -2
  781. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +2 -2
  782. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +2 -2
  783. package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +1 -1
  784. package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +1 -1
  785. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +2 -2
  786. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +2 -2
  787. package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +8 -8
  788. package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +8 -8
  789. package/dist/domains/metrics/components/breakdown/breakdown-text.cjs.js +1 -1
  790. package/dist/domains/metrics/components/breakdown/breakdown-text.es.js +1 -1
  791. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +2 -2
  792. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +2 -2
  793. package/dist/domains/metrics/components/breakdown-card.cjs.js +4 -4
  794. package/dist/domains/metrics/components/breakdown-card.es.js +4 -4
  795. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  796. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  797. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  798. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  799. package/dist/domains/metrics/components/chart-card-error.cjs.js +2 -2
  800. package/dist/domains/metrics/components/chart-card-error.es.js +2 -2
  801. package/dist/domains/metrics/components/chart-card.cjs.js +21 -5
  802. package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
  803. package/dist/domains/metrics/components/chart-card.es.js +21 -5
  804. package/dist/domains/metrics/components/chart-card.es.js.map +1 -1
  805. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  806. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  807. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +5 -5
  808. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +5 -5
  809. package/dist/domains/metrics/components/failure-rate-card.cjs.js +7 -7
  810. package/dist/domains/metrics/components/failure-rate-card.es.js +7 -7
  811. package/dist/domains/metrics/components/kpi-card.cjs.js +1 -1
  812. package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
  813. package/dist/domains/metrics/components/kpi-card.es.js +1 -1
  814. package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
  815. package/dist/domains/metrics/components/latency-card.cjs.js +7 -7
  816. package/dist/domains/metrics/components/latency-card.es.js +7 -7
  817. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +2 -2
  818. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +2 -2
  819. package/dist/domains/metrics/components/scores-card.cjs.js +4 -4
  820. package/dist/domains/metrics/components/scores-card.es.js +4 -4
  821. package/dist/domains/metrics/components/token-usage-card.cjs.js +8 -8
  822. package/dist/domains/metrics/components/token-usage-card.es.js +8 -8
  823. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
  824. package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
  825. package/dist/domains/metrics/components/trace-volume-card.cjs.js +4 -4
  826. package/dist/domains/metrics/components/trace-volume-card.es.js +4 -4
  827. package/dist/domains/metrics/components/usage-card.cjs.js +5 -5
  828. package/dist/domains/metrics/components/usage-card.es.js +5 -5
  829. package/dist/domains/metrics/components.cjs.js +9 -9
  830. package/dist/domains/metrics/components.es.js +9 -9
  831. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  832. package/dist/domains/metrics/drilldown.es.js +1 -1
  833. package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
  834. package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
  835. package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
  836. package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
  837. package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
  838. package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
  839. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +2 -2
  840. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +2 -2
  841. package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.cjs.js +1 -1
  842. package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.es.js +1 -1
  843. package/dist/domains/metrics/hooks/use-metrics.cjs.js +1 -1
  844. package/dist/domains/metrics/hooks/use-metrics.es.js +1 -1
  845. package/dist/domains/metrics/hooks.cjs.js +5 -5
  846. package/dist/domains/metrics/hooks.es.js +5 -5
  847. package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
  848. package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
  849. package/dist/domains/metrics/lib/series-colors.cjs.js +279 -0
  850. package/dist/domains/metrics/lib/series-colors.cjs.js.map +1 -0
  851. package/dist/domains/metrics/lib/series-colors.d.ts +1 -0
  852. package/dist/domains/metrics/lib/series-colors.es.js +272 -0
  853. package/dist/domains/metrics/lib/series-colors.es.js.map +1 -0
  854. package/dist/domains/metrics/lib.cjs.js +9 -3
  855. package/dist/domains/metrics/lib.es.js +5 -4
  856. package/dist/domains/metrics.cjs.js +7 -1
  857. package/dist/domains/metrics.es.js +3 -2
  858. package/dist/domains/observability/components/observability-capability-gate.cjs.js +3 -3
  859. package/dist/domains/observability/components/observability-capability-gate.es.js +3 -3
  860. package/dist/domains/observability/components/observability-histogram.cjs.js +5 -5
  861. package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
  862. package/dist/domains/observability/components/observability-histogram.es.js +5 -5
  863. package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
  864. package/dist/domains/observability/components/observability-page-layout.cjs.js +2 -2
  865. package/dist/domains/observability/components/observability-page-layout.es.js +2 -2
  866. package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +3 -3
  867. package/dist/domains/observability/hooks/use-observability-list-filters.es.js +3 -3
  868. package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
  869. package/dist/domains/observability/observability-list-url-state.es.js +1 -1
  870. package/dist/domains/observability/saved-view-state.cjs.js +3 -3
  871. package/dist/domains/observability/saved-view-state.es.js +3 -3
  872. package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
  873. package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
  874. package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +1 -1
  875. package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +1 -1
  876. package/dist/domains/observability/saved-views.cjs.js +2 -2
  877. package/dist/domains/observability/saved-views.es.js +2 -2
  878. package/dist/domains/observability.cjs.js +6 -6
  879. package/dist/domains/observability.es.js +6 -6
  880. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  881. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  882. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
  883. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
  884. package/dist/domains/scores/components/score-data-panel.cjs.js +7 -7
  885. package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
  886. package/dist/domains/scores/components/score-data-panel.es.js +7 -7
  887. package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
  888. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  889. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  890. package/dist/domains/scores/components/trace-scores-list.cjs.js +5 -5
  891. package/dist/domains/scores/components/trace-scores-list.es.js +5 -5
  892. package/dist/domains/scores/components/trace-scores-tab.cjs.js +15 -19
  893. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  894. package/dist/domains/scores/components/trace-scores-tab.es.js +15 -19
  895. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  896. package/dist/domains/scores/components.cjs.js +1 -1
  897. package/dist/domains/scores/components.es.js +1 -1
  898. package/dist/domains/skills/skill-simple-form.cjs.js +4 -4
  899. package/dist/domains/skills/skill-simple-form.es.js +4 -4
  900. package/dist/domains/spans/components/spans-explorer-body.cjs.js +6 -6
  901. package/dist/domains/spans/components/spans-explorer-body.es.js +7 -7
  902. package/dist/domains/spans/components/spans-filter-bar.cjs.js +3 -3
  903. package/dist/domains/spans/components/spans-filter-bar.es.js +3 -3
  904. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +2 -2
  905. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +2 -2
  906. package/dist/domains/spans/hooks/use-spans-list-source.cjs.js +1 -1
  907. package/dist/domains/spans/hooks/use-spans-list-source.es.js +1 -1
  908. package/dist/domains/spans/hooks.cjs.js +1 -1
  909. package/dist/domains/spans/hooks.es.js +1 -1
  910. package/dist/domains/threads/components/threads-explorer-body.cjs.js +6 -6
  911. package/dist/domains/threads/components/threads-explorer-body.es.js +7 -7
  912. package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
  913. package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
  914. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +2 -2
  915. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +2 -2
  916. package/dist/domains/threads/hooks/use-threads-list-source.cjs.js +1 -1
  917. package/dist/domains/threads/hooks/use-threads-list-source.es.js +1 -1
  918. package/dist/domains/threads/hooks.cjs.js +1 -1
  919. package/dist/domains/threads/hooks.es.js +1 -1
  920. package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
  921. package/dist/domains/traces/components/columns-menu/columns-menu.es.js +2 -2
  922. package/dist/domains/traces/components/feedback-thread.cjs.js +9 -9
  923. package/dist/domains/traces/components/feedback-thread.es.js +9 -9
  924. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +1 -1
  925. package/dist/domains/traces/components/format-trace-thread-messages.es.js +1 -1
  926. package/dist/domains/traces/components/no-traces-info.cjs.js +2 -2
  927. package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
  928. package/dist/domains/traces/components/no-traces-info.es.js +2 -2
  929. package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
  930. package/dist/domains/traces/components/shared.cjs.js +3 -3
  931. package/dist/domains/traces/components/shared.es.js +3 -3
  932. package/dist/domains/traces/components/span-data-panel-view.cjs.js +23 -23
  933. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  934. package/dist/domains/traces/components/span-data-panel-view.es.js +23 -23
  935. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  936. package/dist/domains/traces/components/span-details-view.cjs.js +3 -3
  937. package/dist/domains/traces/components/span-details-view.es.js +3 -3
  938. package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
  939. package/dist/domains/traces/components/span-outcome.es.js +1 -1
  940. package/dist/domains/traces/components/span-outcome.utils.cjs.js +3 -3
  941. package/dist/domains/traces/components/span-outcome.utils.cjs.js.map +1 -1
  942. package/dist/domains/traces/components/span-outcome.utils.es.js +3 -3
  943. package/dist/domains/traces/components/span-outcome.utils.es.js.map +1 -1
  944. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +5 -5
  945. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +5 -5
  946. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +4 -4
  947. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +4 -4
  948. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +7 -7
  949. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -7
  950. package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +1 -1
  951. package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +1 -1
  952. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +2 -2
  953. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +2 -2
  954. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +14 -9
  955. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
  956. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +14 -9
  957. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
  958. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  959. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  960. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +3 -3
  961. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +3 -3
  962. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +1 -1
  963. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +1 -1
  964. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +7 -7
  965. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +7 -7
  966. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  967. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  968. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  969. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  970. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +3 -3
  971. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +3 -3
  972. package/dist/domains/traces/components/span-payload/span-signal-details.cjs.js +4 -4
  973. package/dist/domains/traces/components/span-payload/span-signal-details.es.js +4 -4
  974. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +6 -6
  975. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +6 -6
  976. package/dist/domains/traces/components/span-payload.cjs.js +4 -4
  977. package/dist/domains/traces/components/span-payload.es.js +4 -4
  978. package/dist/domains/traces/components/span-prompt-changes.cjs.js +17 -10
  979. package/dist/domains/traces/components/span-prompt-changes.cjs.js.map +1 -1
  980. package/dist/domains/traces/components/span-prompt-changes.es.js +17 -10
  981. package/dist/domains/traces/components/span-prompt-changes.es.js.map +1 -1
  982. package/dist/domains/traces/components/span-rows.cjs.js +1 -1
  983. package/dist/domains/traces/components/span-rows.es.js +1 -1
  984. package/dist/domains/traces/components/span-summary-description.cjs.js +3 -3
  985. package/dist/domains/traces/components/span-summary-description.es.js +3 -3
  986. package/dist/domains/traces/components/span-timeline-row.cjs.js +10 -10
  987. package/dist/domains/traces/components/span-timeline-row.es.js +10 -10
  988. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +3 -3
  989. package/dist/domains/traces/components/span-timing-hover-card.es.js +3 -3
  990. package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
  991. package/dist/domains/traces/components/span-token-usage.es.js +2 -2
  992. package/dist/domains/traces/components/span-token-usage.utils.cjs.js +2 -2
  993. package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -1
  994. package/dist/domains/traces/components/span-token-usage.utils.es.js +2 -2
  995. package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -1
  996. package/dist/domains/traces/components/span-type-badge.cjs.js +1 -1
  997. package/dist/domains/traces/components/span-type-badge.es.js +1 -1
  998. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +3 -3
  999. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +3 -3
  1000. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +2 -2
  1001. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +2 -2
  1002. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  1003. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  1004. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +3 -3
  1005. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +3 -3
  1006. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +5 -5
  1007. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +5 -5
  1008. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +1 -1
  1009. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +1 -1
  1010. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +6 -6
  1011. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +6 -6
  1012. package/dist/domains/traces/components/thread-trace.cjs.js +3 -3
  1013. package/dist/domains/traces/components/thread-trace.es.js +3 -3
  1014. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +7 -7
  1015. package/dist/domains/traces/components/thread-view-by-trace.es.js +7 -7
  1016. package/dist/domains/traces/components/thread-view-skeleton.cjs.js +5 -5
  1017. package/dist/domains/traces/components/thread-view-skeleton.es.js +5 -5
  1018. package/dist/domains/traces/components/timeline-name-col.cjs.js +6 -6
  1019. package/dist/domains/traces/components/timeline-name-col.es.js +6 -6
  1020. package/dist/domains/traces/components/timeline-timing-col.cjs.js +4 -4
  1021. package/dist/domains/traces/components/timeline-timing-col.es.js +4 -4
  1022. package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
  1023. package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
  1024. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +13 -13
  1025. package/dist/domains/traces/components/trace-data-panel-view.es.js +13 -13
  1026. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
  1027. package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
  1028. package/dist/domains/traces/components/trace-details-view.cjs.js +3 -3
  1029. package/dist/domains/traces/components/trace-details-view.es.js +3 -3
  1030. package/dist/domains/traces/components/trace-error-cell.cjs.js +2 -2
  1031. package/dist/domains/traces/components/trace-error-cell.es.js +2 -2
  1032. package/dist/domains/traces/components/trace-error-summary.cjs.js +2 -2
  1033. package/dist/domains/traces/components/trace-error-summary.es.js +2 -2
  1034. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  1035. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  1036. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  1037. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  1038. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +1 -1
  1039. package/dist/domains/traces/components/trace-messages-skeleton.es.js +1 -1
  1040. package/dist/domains/traces/components/trace-span-panel.cjs.js +3 -3
  1041. package/dist/domains/traces/components/trace-span-panel.es.js +3 -3
  1042. package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +6 -6
  1043. package/dist/domains/traces/components/trace-span-timeline-markers.es.js +6 -6
  1044. package/dist/domains/traces/components/trace-span-timeline.cjs.js +5 -5
  1045. package/dist/domains/traces/components/trace-span-timeline.es.js +5 -5
  1046. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +2 -2
  1047. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +2 -2
  1048. package/dist/domains/traces/components/trace-span-tree.cjs.js +2 -2
  1049. package/dist/domains/traces/components/trace-span-tree.es.js +2 -2
  1050. package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
  1051. package/dist/domains/traces/components/trace-status-value.es.js +1 -1
  1052. package/dist/domains/traces/components/trace-summary-description.cjs.js +5 -5
  1053. package/dist/domains/traces/components/trace-summary-description.es.js +5 -5
  1054. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +5 -5
  1055. package/dist/domains/traces/components/trace-thread-item-view.es.js +5 -5
  1056. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  1057. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  1058. package/dist/domains/traces/components/trace-timeline.cjs.js +1 -1
  1059. package/dist/domains/traces/components/trace-timeline.es.js +1 -1
  1060. package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
  1061. package/dist/domains/traces/components/traces-error-content.es.js +2 -2
  1062. package/dist/domains/traces/components/traces-explorer/traces-explorer-body.cjs.js +2 -2
  1063. package/dist/domains/traces/components/traces-explorer/traces-explorer-body.es.js +2 -2
  1064. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js +1 -1
  1065. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js +1 -1
  1066. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js +1 -1
  1067. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js +1 -1
  1068. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
  1069. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
  1070. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +1 -1
  1071. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +1 -1
  1072. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js +2 -2
  1073. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js +2 -2
  1074. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +2 -2
  1075. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +2 -2
  1076. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +1 -1
  1077. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +1 -1
  1078. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +6 -6
  1079. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +6 -6
  1080. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +2 -2
  1081. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +3 -3
  1082. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
  1083. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
  1084. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +2 -2
  1085. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +2 -2
  1086. package/dist/domains/traces/components/traces-explorer.cjs.js +4 -4
  1087. package/dist/domains/traces/components/traces-explorer.es.js +4 -4
  1088. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
  1089. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
  1090. package/dist/domains/traces/components/traces-list-view.cjs.js +10 -10
  1091. package/dist/domains/traces/components/traces-list-view.es.js +10 -10
  1092. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  1093. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  1094. package/dist/domains/traces/components/traces-spans-switch.cjs.js +3 -3
  1095. package/dist/domains/traces/components/traces-spans-switch.es.js +3 -3
  1096. package/dist/domains/traces/components.cjs.js +15 -15
  1097. package/dist/domains/traces/components.es.js +15 -15
  1098. package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
  1099. package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
  1100. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +1 -1
  1101. package/dist/domains/traces/hooks/use-traces-list-source.es.js +1 -1
  1102. package/dist/domains/traces/hooks.cjs.js +4 -4
  1103. package/dist/domains/traces/hooks.es.js +4 -4
  1104. package/dist/domains/traces/utils/span-utils.cjs.js +2 -2
  1105. package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
  1106. package/dist/domains/traces/utils/span-utils.es.js +2 -2
  1107. package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
  1108. package/dist/domains/traces/utils.cjs.js +2 -2
  1109. package/dist/domains/traces/utils.es.js +2 -2
  1110. package/dist/domains/traces.cjs.js +2 -2
  1111. package/dist/domains/traces.es.js +2 -2
  1112. package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -3
  1113. package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
  1114. package/dist/domains/workflows/components/workflow-combobox.es.js +4 -3
  1115. package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
  1116. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -6
  1117. package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
  1118. package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -6
  1119. package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
  1120. package/dist/domains/workflows/components/workflow-information.cjs.js +10 -10
  1121. package/dist/domains/workflows/components/workflow-information.es.js +10 -10
  1122. package/dist/domains/workflows/components/workflow-layout.cjs.js +3 -3
  1123. package/dist/domains/workflows/components/workflow-layout.es.js +2 -2
  1124. package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +3 -3
  1125. package/dist/domains/workflows/components/workflow-run-status-icon.es.js +3 -3
  1126. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +4 -4
  1127. package/dist/domains/workflows/components/workflow-step-detail.es.js +4 -4
  1128. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
  1129. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
  1130. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +11 -11
  1131. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +11 -11
  1132. package/dist/domains/workflows/context/playground-workflow-run-provider.cjs.js +1 -1
  1133. package/dist/domains/workflows/context/playground-workflow-run-provider.es.js +1 -1
  1134. package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
  1135. package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
  1136. package/dist/domains/workflows/context/workflow-run-provider.cjs.js +1 -1
  1137. package/dist/domains/workflows/context/workflow-run-provider.es.js +1 -1
  1138. package/dist/domains/workflows/runs/workflow-run-details.cjs.js +2 -2
  1139. package/dist/domains/workflows/runs/workflow-run-details.es.js +2 -2
  1140. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +26 -21
  1141. package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
  1142. package/dist/domains/workflows/runs/workflow-run-list.es.js +26 -21
  1143. package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
  1144. package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js +1 -1
  1145. package/dist/domains/workflows/workflow/data/use-workflow-data.es.js +1 -1
  1146. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  1147. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  1148. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +5 -5
  1149. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +5 -5
  1150. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  1151. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  1152. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +8 -8
  1153. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
  1154. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +8 -8
  1155. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
  1156. package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js +1 -1
  1157. package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js +1 -1
  1158. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  1159. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  1160. package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
  1161. package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
  1162. package/dist/domains/workflows/workflow/utils.cjs.js +2 -2
  1163. package/dist/domains/workflows/workflow/utils.es.js +2 -2
  1164. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  1165. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  1166. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  1167. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  1168. package/dist/domains/workflows/workflow/workflow-card.cjs.js +1 -1
  1169. package/dist/domains/workflows/workflow/workflow-card.es.js +1 -1
  1170. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  1171. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  1172. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  1173. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  1174. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  1175. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  1176. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +6 -6
  1177. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +6 -6
  1178. package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js +1 -1
  1179. package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js.map +1 -1
  1180. package/dist/domains/workflows/workflow/workflow-graph-groups.es.js +1 -1
  1181. package/dist/domains/workflows/workflow/workflow-graph-groups.es.js.map +1 -1
  1182. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +4 -4
  1183. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +4 -4
  1184. package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
  1185. package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
  1186. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  1187. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  1188. package/dist/domains/workflows/workflow/workflow-graph.cjs.js +2 -2
  1189. package/dist/domains/workflows/workflow/workflow-graph.es.js +2 -2
  1190. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +6 -6
  1191. package/dist/domains/workflows/workflow/workflow-input-data.es.js +6 -6
  1192. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +2 -2
  1193. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
  1194. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  1195. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  1196. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
  1197. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
  1198. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
  1199. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
  1200. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  1201. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  1202. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +6 -6
  1203. package/dist/domains/workflows/workflow/workflow-run-header.es.js +6 -6
  1204. package/dist/domains/workflows/workflow/workflow-status.cjs.js +7 -7
  1205. package/dist/domains/workflows/workflow/workflow-status.es.js +7 -7
  1206. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
  1207. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  1208. package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
  1209. package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
  1210. package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
  1211. package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
  1212. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +10 -10
  1213. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +10 -10
  1214. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +12 -12
  1215. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +12 -12
  1216. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +4 -4
  1217. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +4 -4
  1218. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +9 -9
  1219. package/dist/domains/workflows/workflow/workflow-timeline.es.js +9 -9
  1220. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +2 -2
  1221. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +2 -2
  1222. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +3 -3
  1223. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +3 -3
  1224. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +5 -5
  1225. package/dist/domains/workflows/workflow/workflow-trigger.es.js +5 -5
  1226. package/dist/domains/workflows.cjs.js +4 -4
  1227. package/dist/domains/workflows.es.js +4 -4
  1228. package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
  1229. package/dist/domains/workspace/components/mount-icon.es.js +1 -1
  1230. package/dist/domains/workspace/components/workspace-active-file.cjs.js +4 -4
  1231. package/dist/domains/workspace/components/workspace-active-file.es.js +4 -4
  1232. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +10 -10
  1233. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +10 -10
  1234. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  1235. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  1236. package/dist/domains/workspace/components/workspace-context.cjs.js +1 -1
  1237. package/dist/domains/workspace/components/workspace-context.es.js +1 -1
  1238. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +4 -4
  1239. package/dist/domains/workspace/components/workspace-create-directory.es.js +4 -4
  1240. package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
  1241. package/dist/domains/workspace/components/workspace-error.es.js +1 -1
  1242. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  1243. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  1244. package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
  1245. package/dist/domains/workspace/components/workspace-parts.es.js +5 -5
  1246. package/dist/domains/workspace/components/workspace-search.cjs.js +17 -20
  1247. package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
  1248. package/dist/domains/workspace/components/workspace-search.es.js +18 -21
  1249. package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
  1250. package/dist/domains/workspace/components/workspace-tree-view.cjs.js +1 -1
  1251. package/dist/domains/workspace/components/workspace-tree-view.es.js +1 -1
  1252. package/dist/domains/workspace/components/workspace-tree.cjs.js +11 -11
  1253. package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
  1254. package/dist/domains/workspace/components/workspace-tree.es.js +11 -11
  1255. package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
  1256. package/dist/domains/workspace/components/workspace.cjs.js +1 -1
  1257. package/dist/domains/workspace/components/workspace.es.js +1 -1
  1258. package/dist/domains/workspace.cjs.js +3 -3
  1259. package/dist/domains/workspace.es.js +3 -3
  1260. package/dist/{dropdown-menu-B4jY3J9e.js → dropdown-menu-DKoWI8kD.js} +2 -2
  1261. package/dist/{dropdown-menu-B4jY3J9e.js.map → dropdown-menu-DKoWI8kD.js.map} +1 -1
  1262. package/dist/{dropdown-menu-BETTTPBB.cjs → dropdown-menu-Dx-jCOIv.cjs} +2 -2
  1263. package/dist/{dropdown-menu-BETTTPBB.cjs.map → dropdown-menu-Dx-jCOIv.cjs.map} +1 -1
  1264. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
  1265. package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
  1266. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  1267. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  1268. package/dist/ee/signals/components/entity-index-status.cjs.js +2 -2
  1269. package/dist/ee/signals/components/entity-index-status.es.js +2 -2
  1270. package/dist/ee/signals/components/signals-empty-state.cjs.js +12 -21
  1271. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  1272. package/dist/ee/signals/components/signals-empty-state.es.js +12 -21
  1273. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  1274. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -5
  1275. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -5
  1276. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +13 -13
  1277. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +14 -14
  1278. package/dist/ee/signals/examples-pager.cjs.js +2 -2
  1279. package/dist/ee/signals/examples-pager.es.js +2 -2
  1280. package/dist/ee/signals/flow-card.cjs.js +4 -4
  1281. package/dist/ee/signals/flow-card.es.js +4 -4
  1282. package/dist/ee/signals/lifeline-point.cjs.js +2 -2
  1283. package/dist/ee/signals/lifeline-point.es.js +2 -2
  1284. package/dist/ee/signals/lifeline-row.cjs.js +6 -6
  1285. package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
  1286. package/dist/ee/signals/lifeline-row.es.js +6 -6
  1287. package/dist/ee/signals/lifeline-row.es.js.map +1 -1
  1288. package/dist/ee/signals/noise-detail-panel.cjs.js +6 -6
  1289. package/dist/ee/signals/noise-detail-panel.es.js +6 -6
  1290. package/dist/ee/signals/sankey-signals-data.cjs.js +9 -5
  1291. package/dist/ee/signals/sankey-signals-data.cjs.js.map +1 -1
  1292. package/dist/ee/signals/sankey-signals-data.es.js +9 -5
  1293. package/dist/ee/signals/sankey-signals-data.es.js.map +1 -1
  1294. package/dist/ee/signals/sankey-signals.cjs.js +21 -12
  1295. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  1296. package/dist/ee/signals/sankey-signals.es.js +21 -12
  1297. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  1298. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +4 -4
  1299. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -4
  1300. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +7 -7
  1301. package/dist/ee/signals/settings/trace-signal-settings.es.js +7 -7
  1302. package/dist/ee/signals/signal-delta-column.cjs.js +3 -3
  1303. package/dist/ee/signals/signal-delta-column.es.js +3 -3
  1304. package/dist/ee/signals/signal-lifelines.cjs.js +5 -5
  1305. package/dist/ee/signals/signal-lifelines.es.js +5 -5
  1306. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  1307. package/dist/ee/signals/signals-error-state.es.js +2 -2
  1308. package/dist/ee/signals/snapshot-summary.cjs.js +15 -0
  1309. package/dist/ee/signals/snapshot-summary.cjs.js.map +1 -0
  1310. package/dist/ee/signals/snapshot-summary.d.ts +1 -0
  1311. package/dist/ee/signals/snapshot-summary.es.js +14 -0
  1312. package/dist/ee/signals/snapshot-summary.es.js.map +1 -0
  1313. package/dist/ee/signals/snapshot-timeline.cjs.js +4 -4
  1314. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  1315. package/dist/ee/signals/snapshot-timeline.es.js +4 -4
  1316. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  1317. package/dist/ee/signals/sortable-signal-headers.cjs.js +6 -6
  1318. package/dist/ee/signals/sortable-signal-headers.es.js +6 -6
  1319. package/dist/ee/signals/theme-compare.cjs.js +15 -7
  1320. package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
  1321. package/dist/ee/signals/theme-compare.es.js +15 -7
  1322. package/dist/ee/signals/theme-compare.es.js.map +1 -1
  1323. package/dist/ee/signals/theme-detail-panel.cjs.js +13 -17
  1324. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  1325. package/dist/ee/signals/theme-detail-panel.es.js +13 -17
  1326. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  1327. package/dist/ee/signals/theme-filter-banner.cjs.js +7 -7
  1328. package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
  1329. package/dist/ee/signals/theme-filter-banner.es.js +7 -7
  1330. package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
  1331. package/dist/ee/signals/theme-lifelines.cjs.js +8 -5
  1332. package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
  1333. package/dist/ee/signals/theme-lifelines.es.js +8 -5
  1334. package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
  1335. package/dist/ee/signals/theme-trend-chart.cjs.js +3 -3
  1336. package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
  1337. package/dist/ee/signals/theme-trend-chart.es.js +3 -3
  1338. package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
  1339. package/dist/ee/signals/trace-insight-view.cjs.js +11 -13
  1340. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  1341. package/dist/ee/signals/trace-insight-view.es.js +11 -13
  1342. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  1343. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +10 -15
  1344. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
  1345. package/dist/ee/signals/trace-intelligence-explainer.es.js +10 -15
  1346. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
  1347. package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
  1348. package/dist/ee/signals/view-mode-tab.es.js +2 -2
  1349. package/dist/ee/signals.cjs.js +5 -5
  1350. package/dist/ee/signals.es.js +5 -5
  1351. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -1
  1352. package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -1
  1353. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +4 -4
  1354. package/dist/ee/topics/components/topic-trace-summary-list.es.js +4 -4
  1355. package/dist/ee/topics/components/topics-layout.cjs.js +1 -1
  1356. package/dist/ee/topics/components/topics-layout.es.js +1 -1
  1357. package/dist/{field-error-id-DBSuJ3HM.js → field-error-id-6ZynvsRO.js} +2 -2
  1358. package/dist/{field-error-id-DBSuJ3HM.js.map → field-error-id-6ZynvsRO.js.map} +1 -1
  1359. package/dist/{field-error-id-nGAF0330.cjs → field-error-id-VimPQI_b.cjs} +2 -2
  1360. package/dist/{field-error-id-nGAF0330.cjs.map → field-error-id-VimPQI_b.cjs.map} +1 -1
  1361. package/dist/{filter-bar-chip-Cg-UbIwP.cjs → filter-bar-chip-DFsbUZ-V.cjs} +10 -10
  1362. package/dist/{filter-bar-chip-Cg-UbIwP.cjs.map → filter-bar-chip-DFsbUZ-V.cjs.map} +1 -1
  1363. package/dist/{filter-bar-chip-CABeKrtf.js → filter-bar-chip-NBtfDca9.js} +11 -11
  1364. package/dist/{filter-bar-chip-CABeKrtf.js.map → filter-bar-chip-NBtfDca9.js.map} +1 -1
  1365. package/dist/{filter-bar-time-range-qlV8p7hp.js → filter-bar-time-range-D9SnzR2J.js} +3 -3
  1366. package/dist/{filter-bar-time-range-qlV8p7hp.js.map → filter-bar-time-range-D9SnzR2J.js.map} +1 -1
  1367. package/dist/{filter-bar-time-range-zdM024JD.cjs → filter-bar-time-range-DlVNjw43.cjs} +3 -3
  1368. package/dist/{filter-bar-time-range-zdM024JD.cjs.map → filter-bar-time-range-DlVNjw43.cjs.map} +1 -1
  1369. package/dist/hooks/use-clock.cjs.js +34 -0
  1370. package/dist/hooks/use-clock.cjs.js.map +1 -0
  1371. package/dist/hooks/use-clock.d.ts +1 -0
  1372. package/dist/hooks/use-clock.es.js +33 -0
  1373. package/dist/hooks/use-clock.es.js.map +1 -0
  1374. package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
  1375. package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
  1376. package/dist/hooks/use-text-highlight.cjs.js +3 -5
  1377. package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
  1378. package/dist/hooks/use-text-highlight.es.js +1 -3
  1379. package/dist/hooks/use-text-highlight.es.js.map +1 -1
  1380. package/dist/icons/ByteDanceIcon.cjs.js +37 -0
  1381. package/dist/icons/ByteDanceIcon.cjs.js.map +1 -0
  1382. package/dist/icons/ByteDanceIcon.d.ts +1 -0
  1383. package/dist/icons/ByteDanceIcon.es.js +34 -0
  1384. package/dist/icons/ByteDanceIcon.es.js.map +1 -0
  1385. package/dist/icons/CohereBrandIcon.cjs.js +34 -0
  1386. package/dist/icons/CohereBrandIcon.cjs.js.map +1 -0
  1387. package/dist/icons/CohereBrandIcon.d.ts +1 -0
  1388. package/dist/icons/CohereBrandIcon.es.js +31 -0
  1389. package/dist/icons/CohereBrandIcon.es.js.map +1 -0
  1390. package/dist/icons/FireworksIcon.cjs.js +22 -0
  1391. package/dist/icons/FireworksIcon.cjs.js.map +1 -0
  1392. package/dist/icons/FireworksIcon.d.ts +1 -0
  1393. package/dist/icons/FireworksIcon.es.js +19 -0
  1394. package/dist/icons/FireworksIcon.es.js.map +1 -0
  1395. package/dist/icons/Icon.cjs.js +1 -1
  1396. package/dist/icons/Icon.es.js +1 -1
  1397. package/dist/icons/LongCatIcon.cjs.js +22 -0
  1398. package/dist/icons/LongCatIcon.cjs.js.map +1 -0
  1399. package/dist/icons/LongCatIcon.d.ts +1 -0
  1400. package/dist/icons/LongCatIcon.es.js +19 -0
  1401. package/dist/icons/LongCatIcon.es.js.map +1 -0
  1402. package/dist/icons/MicrosoftIcon.cjs.js +34 -0
  1403. package/dist/icons/MicrosoftIcon.cjs.js.map +1 -0
  1404. package/dist/icons/MicrosoftIcon.d.ts +1 -0
  1405. package/dist/icons/MicrosoftIcon.es.js +31 -0
  1406. package/dist/icons/MicrosoftIcon.es.js.map +1 -0
  1407. package/dist/icons/MorphIcon.cjs.js +20 -0
  1408. package/dist/icons/MorphIcon.cjs.js.map +1 -0
  1409. package/dist/icons/MorphIcon.d.ts +1 -0
  1410. package/dist/icons/MorphIcon.es.js +17 -0
  1411. package/dist/icons/MorphIcon.es.js.map +1 -0
  1412. package/dist/icons/NousResearchIcon.cjs.js +19 -0
  1413. package/dist/icons/NousResearchIcon.cjs.js.map +1 -0
  1414. package/dist/icons/NousResearchIcon.d.ts +1 -0
  1415. package/dist/icons/NousResearchIcon.es.js +16 -0
  1416. package/dist/icons/NousResearchIcon.es.js.map +1 -0
  1417. package/dist/icons/NovaIcon.cjs.js +41 -0
  1418. package/dist/icons/NovaIcon.cjs.js.map +1 -0
  1419. package/dist/icons/NovaIcon.d.ts +1 -0
  1420. package/dist/icons/NovaIcon.es.js +38 -0
  1421. package/dist/icons/NovaIcon.es.js.map +1 -0
  1422. package/dist/icons/PerplexityIcon.cjs.js +21 -0
  1423. package/dist/icons/PerplexityIcon.cjs.js.map +1 -0
  1424. package/dist/icons/PerplexityIcon.d.ts +1 -0
  1425. package/dist/icons/PerplexityIcon.es.js +18 -0
  1426. package/dist/icons/PerplexityIcon.es.js.map +1 -0
  1427. package/dist/icons/SakanaIcon.cjs.js +20 -0
  1428. package/dist/icons/SakanaIcon.cjs.js.map +1 -0
  1429. package/dist/icons/SakanaIcon.d.ts +1 -0
  1430. package/dist/icons/SakanaIcon.es.js +17 -0
  1431. package/dist/icons/SakanaIcon.es.js.map +1 -0
  1432. package/dist/icons/StepFunIcon.cjs.js +35 -0
  1433. package/dist/icons/StepFunIcon.cjs.js.map +1 -0
  1434. package/dist/icons/StepFunIcon.d.ts +1 -0
  1435. package/dist/icons/StepFunIcon.es.js +32 -0
  1436. package/dist/icons/StepFunIcon.es.js.map +1 -0
  1437. package/dist/icons/TencentIcon.cjs.js +21 -0
  1438. package/dist/icons/TencentIcon.cjs.js.map +1 -0
  1439. package/dist/icons/TencentIcon.d.ts +1 -0
  1440. package/dist/icons/TencentIcon.es.js +18 -0
  1441. package/dist/icons/TencentIcon.es.js.map +1 -0
  1442. package/dist/icons/UpstageIcon.cjs.js +36 -0
  1443. package/dist/icons/UpstageIcon.cjs.js.map +1 -0
  1444. package/dist/icons/UpstageIcon.d.ts +1 -0
  1445. package/dist/icons/UpstageIcon.es.js +33 -0
  1446. package/dist/icons/UpstageIcon.es.js.map +1 -0
  1447. package/dist/{input-2hRXcZIu.cjs → input-BpnUsQSt.cjs} +4 -4
  1448. package/dist/{input-2hRXcZIu.cjs.map → input-BpnUsQSt.cjs.map} +1 -1
  1449. package/dist/{input-0l1uzOBZ.js → input-Cyit5ZSc.js} +4 -4
  1450. package/dist/{input-0l1uzOBZ.js.map → input-Cyit5ZSc.js.map} +1 -1
  1451. package/dist/{input-group-DVJLZDBL.cjs → input-group-DBCilXjT.cjs} +4 -4
  1452. package/dist/{input-group-DVJLZDBL.cjs.map → input-group-DBCilXjT.cjs.map} +1 -1
  1453. package/dist/{input-group-QKKV_ouF.js → input-group-NV4ZzKOk.js} +4 -4
  1454. package/dist/{input-group-QKKV_ouF.js.map → input-group-NV4ZzKOk.js.map} +1 -1
  1455. package/dist/layout/tabbed-container.cjs.js +1 -1
  1456. package/dist/layout/tabbed-container.es.js +1 -1
  1457. package/dist/lib/form/auto-form.cjs.js +1 -1
  1458. package/dist/lib/form/auto-form.es.js +1 -1
  1459. package/dist/lib/form/components/array-element-wrapper.cjs.js +4 -4
  1460. package/dist/lib/form/components/array-element-wrapper.es.js +4 -4
  1461. package/dist/lib/form/components/array-wrapper.cjs.js +2 -2
  1462. package/dist/lib/form/components/array-wrapper.es.js +2 -2
  1463. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  1464. package/dist/lib/form/components/boolean-field.es.js +1 -1
  1465. package/dist/lib/form/components/date-field.cjs.js +5 -5
  1466. package/dist/lib/form/components/date-field.es.js +5 -5
  1467. package/dist/lib/form/components/error-message.cjs.js +1 -1
  1468. package/dist/lib/form/components/error-message.es.js +1 -1
  1469. package/dist/lib/form/components/form-submit-row.cjs.js +2 -2
  1470. package/dist/lib/form/components/form-submit-row.es.js +2 -2
  1471. package/dist/lib/form/components/number-field.cjs.js +1 -1
  1472. package/dist/lib/form/components/number-field.es.js +1 -1
  1473. package/dist/lib/form/components/object-wrapper.cjs.js +3 -3
  1474. package/dist/lib/form/components/object-wrapper.es.js +3 -3
  1475. package/dist/lib/form/components/record-field.cjs.js +2 -2
  1476. package/dist/lib/form/components/record-field.es.js +2 -2
  1477. package/dist/lib/form/components/select-field.cjs.js +1 -1
  1478. package/dist/lib/form/components/select-field.es.js +1 -1
  1479. package/dist/lib/form/components/string-field.cjs.js +1 -1
  1480. package/dist/lib/form/components/string-field.es.js +1 -1
  1481. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  1482. package/dist/lib/form/components/submit-button.es.js +1 -1
  1483. package/dist/lib/form/components/union-field.cjs.js +1 -1
  1484. package/dist/lib/form/components/union-field.es.js +1 -1
  1485. package/dist/lib/form/dynamic-form.cjs.js +2 -2
  1486. package/dist/lib/form/dynamic-form.es.js +2 -2
  1487. package/dist/{list-search-CkhsTFdG.js → list-search-DUcIMJTk.js} +2 -2
  1488. package/dist/{list-search-CkhsTFdG.js.map → list-search-DUcIMJTk.js.map} +1 -1
  1489. package/dist/{list-search-BtRno5As.cjs → list-search-yF02rvZt.cjs} +2 -2
  1490. package/dist/{list-search-BtRno5As.cjs.map → list-search-yF02rvZt.cjs.map} +1 -1
  1491. package/dist/mcp-app-viewer-BV7FI498.js +2051 -0
  1492. package/dist/mcp-app-viewer-BV7FI498.js.map +1 -0
  1493. package/dist/mcp-app-viewer-M3-pqAlo.cjs +2058 -0
  1494. package/dist/mcp-app-viewer-M3-pqAlo.cjs.map +1 -0
  1495. package/dist/new/layout/page-header.cjs.js +1 -1
  1496. package/dist/new/layout/page-header.es.js +1 -1
  1497. package/dist/new/settings.cjs.js +1 -1
  1498. package/dist/new/settings.es.js +1 -1
  1499. package/dist/{observability-saved-views-CjKTEp1V.js → observability-saved-views-Ch53fh5_.js} +9 -9
  1500. package/dist/{observability-saved-views-CjKTEp1V.js.map → observability-saved-views-Ch53fh5_.js.map} +1 -1
  1501. package/dist/{observability-saved-views-Daizz4tU.cjs → observability-saved-views-DgABvgat.cjs} +9 -9
  1502. package/dist/{observability-saved-views-Daizz4tU.cjs.map → observability-saved-views-DgABvgat.cjs.map} +1 -1
  1503. package/dist/{page-header-BykBsHUy.js → page-header-Maytcmgh.js} +3 -3
  1504. package/dist/{page-header-BB6yjtce.cjs.map → page-header-Maytcmgh.js.map} +1 -1
  1505. package/dist/{page-header-BB6yjtce.cjs → page-header-pZCts_WC.cjs} +3 -3
  1506. package/dist/page-header-pZCts_WC.cjs.map +1 -0
  1507. package/dist/{popover-CzHvTPk2.js → popover-BpMi52Tb.js} +3 -3
  1508. package/dist/{popover-CzHvTPk2.js.map → popover-BpMi52Tb.js.map} +1 -1
  1509. package/dist/{popover-BJqa6Hz6.cjs → popover-D9AfJmla.cjs} +3 -3
  1510. package/dist/{popover-BJqa6Hz6.cjs.map → popover-D9AfJmla.cjs.map} +1 -1
  1511. package/dist/primitives/chart-frame.cjs.js +2 -2
  1512. package/dist/primitives/chart-frame.es.js +2 -2
  1513. package/dist/primitives/chart-time-tick.cjs.js +2 -2
  1514. package/dist/primitives/chart-time-tick.es.js +2 -2
  1515. package/dist/primitives/charts/drag-selection.cjs.js +1 -1
  1516. package/dist/primitives/charts/drag-selection.es.js +1 -1
  1517. package/dist/primitives/menu-item.cjs.js +2 -2
  1518. package/dist/primitives/menu-item.es.js +2 -2
  1519. package/dist/primitives/menu-scroll-area.cjs.js +1 -1
  1520. package/dist/primitives/menu-scroll-area.es.js +1 -1
  1521. package/dist/primitives/resize-handle-indicator.cjs.js +1 -1
  1522. package/dist/primitives/resize-handle-indicator.es.js +1 -1
  1523. package/dist/primitives/trigger-button.cjs.js +2 -2
  1524. package/dist/primitives/trigger-button.es.js +2 -2
  1525. package/dist/{property-filter-applied--U5EZdaA.js → property-filter-applied-DoxQHG09.js} +8 -8
  1526. package/dist/{property-filter-applied--U5EZdaA.js.map → property-filter-applied-DoxQHG09.js.map} +1 -1
  1527. package/dist/{property-filter-applied-BkkIObRq.cjs → property-filter-applied-DuyL4S_K.cjs} +8 -8
  1528. package/dist/{property-filter-applied-BkkIObRq.cjs.map → property-filter-applied-DuyL4S_K.cjs.map} +1 -1
  1529. package/dist/resize/collapsible-panel.cjs.js +4 -4
  1530. package/dist/resize/collapsible-panel.cjs.js.map +1 -1
  1531. package/dist/resize/collapsible-panel.es.js +4 -4
  1532. package/dist/resize/collapsible-panel.es.js.map +1 -1
  1533. package/dist/resize/panel-drawer.cjs.js +3 -3
  1534. package/dist/resize/panel-drawer.es.js +3 -3
  1535. package/dist/resize/panel-icon-button.cjs.js +1 -2
  1536. package/dist/resize/panel-icon-button.cjs.js.map +1 -1
  1537. package/dist/resize/panel-icon-button.es.js +1 -1
  1538. package/dist/resize/separator.cjs.js +1 -1
  1539. package/dist/resize/separator.es.js +1 -1
  1540. package/dist/{scroll-area-C226l0v0.js → scroll-area-9-S7wfSs.js} +2 -2
  1541. package/dist/{scroll-area-C226l0v0.js.map → scroll-area-9-S7wfSs.js.map} +1 -1
  1542. package/dist/{scroll-area-BP4gPZ4G.cjs → scroll-area-BU_TorPW.cjs} +2 -2
  1543. package/dist/{scroll-area-BP4gPZ4G.cjs.map → scroll-area-BU_TorPW.cjs.map} +1 -1
  1544. package/dist/{select-Dg8L5ROX.cjs → select-CeukeSn_.cjs} +5 -5
  1545. package/dist/{select-Dg8L5ROX.cjs.map → select-CeukeSn_.cjs.map} +1 -1
  1546. package/dist/{select-BdIZEdcy.js → select-dNX9If-s.js} +5 -5
  1547. package/dist/{select-BdIZEdcy.js.map → select-dNX9If-s.js.map} +1 -1
  1548. package/dist/{settings-BaUeaO96.js → settings-BEw_bg12.js} +2 -2
  1549. package/dist/{settings-BaUeaO96.js.map → settings-BEw_bg12.js.map} +1 -1
  1550. package/dist/{settings-CUVqhBbf.cjs → settings-Bminohri.cjs} +2 -2
  1551. package/dist/{settings-CUVqhBbf.cjs.map → settings-Bminohri.cjs.map} +1 -1
  1552. package/dist/{span-payload-primitives-CKKIAVPJ.js → span-payload-primitives-BKkRpVVO.js} +12 -12
  1553. package/dist/{span-payload-primitives-CKKIAVPJ.js.map → span-payload-primitives-BKkRpVVO.js.map} +1 -1
  1554. package/dist/{span-payload-primitives-D4tHWN2W.cjs → span-payload-primitives-D2NWznGy.cjs} +12 -12
  1555. package/dist/{span-payload-primitives-D4tHWN2W.cjs.map → span-payload-primitives-D2NWznGy.cjs.map} +1 -1
  1556. package/dist/{spinner-CnLgLj9R.js → spinner-B9ykw74u.js} +2 -2
  1557. package/dist/{spinner-CnLgLj9R.js.map → spinner-B9ykw74u.js.map} +1 -1
  1558. package/dist/{spinner-C8ZxiA5C.cjs → spinner-oS6q4pwx.cjs} +3 -3
  1559. package/dist/{spinner-C8ZxiA5C.cjs.map → spinner-oS6q4pwx.cjs.map} +1 -1
  1560. package/dist/src/domains/chat/activity/index.d.ts +1 -3
  1561. package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -2
  1562. package/dist/src/domains/chat/activity/model/activity-words.d.ts +1 -2
  1563. package/dist/src/domains/chat/context/chat-context.d.ts +9 -0
  1564. package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +2 -1
  1565. package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -1
  1566. package/dist/src/domains/chat/tools/badges/workspace-data-parts.d.ts +6 -0
  1567. package/dist/src/domains/chat/tools/tool-card-kind.d.ts +12 -2
  1568. package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +4 -1
  1569. package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +22 -2
  1570. package/dist/src/domains/dashboards/components/widget-controls.d.ts +3 -0
  1571. package/dist/src/domains/dashboards/components/widget-error.d.ts +7 -2
  1572. package/dist/src/domains/dashboards/index.d.ts +2 -2
  1573. package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -1
  1574. package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
  1575. package/dist/src/domains/dashboards/lib/chrome.d.ts +5 -2
  1576. package/dist/src/domains/dashboards/lib/pin-actions.d.ts +7 -0
  1577. package/dist/src/domains/dashboards/widget-kind.d.ts +13 -0
  1578. package/dist/src/domains/llm/models-dev-logo-slugs.d.ts +1 -0
  1579. package/dist/src/domains/llm/provider-logo-monogram.d.ts +8 -0
  1580. package/dist/src/domains/llm/provider-logo.d.ts +0 -4
  1581. package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +2 -1
  1582. package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +7 -2
  1583. package/dist/src/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +5 -0
  1584. package/dist/src/domains/metrics/components/chart-card.d.ts +6 -2
  1585. package/dist/src/domains/metrics/components/kpi-card.d.ts +2 -1
  1586. package/dist/src/domains/metrics/lib/index.d.ts +1 -0
  1587. package/dist/src/domains/metrics/lib/series-colors.d.ts +39 -0
  1588. package/dist/src/domains/traces/components/span-token-usage.utils.d.ts +1 -1
  1589. package/dist/src/domains/workflows/components/workflow-combobox.d.ts +2 -1
  1590. package/dist/src/ds/components/AgentIndicator/paint.d.ts +6 -2
  1591. package/dist/src/ds/components/AgentIndicator/poses/coordination.d.ts +7 -0
  1592. package/dist/src/ds/components/AgentIndicator/poses/documents.d.ts +2 -0
  1593. package/dist/src/ds/components/AgentIndicator/poses/files.d.ts +5 -0
  1594. package/dist/src/ds/components/AgentIndicator/poses/interface.d.ts +8 -0
  1595. package/dist/src/ds/components/AgentIndicator/poses/knowledge-actions.d.ts +6 -0
  1596. package/dist/src/ds/components/AgentIndicator/poses/knowledge.d.ts +2 -0
  1597. package/dist/src/ds/components/AgentIndicator/poses/skills.d.ts +4 -0
  1598. package/dist/src/ds/components/AgentIndicator/poses/terminal.d.ts +4 -0
  1599. package/dist/src/ds/components/AgentIndicator/poses/thinking.d.ts +2 -0
  1600. package/dist/src/ds/components/AgentIndicator/poses.d.ts +1 -1
  1601. package/dist/src/ds/components/AgentIndicator/shapes.d.ts +7 -1
  1602. package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +1 -0
  1603. package/dist/src/ds/components/ChatShell/chat-shell-context.d.ts +9 -0
  1604. package/dist/src/ds/components/ChatShell/chat-shell.d.ts +5 -0
  1605. package/dist/src/ds/components/ChatShell/index.d.ts +2 -1
  1606. package/dist/src/ds/components/Combobox/combobox-parts.d.ts +2 -1
  1607. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +9 -4
  1608. package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
  1609. package/dist/src/ds/components/CommandPalette/command-palette.d.ts +1 -1
  1610. package/dist/src/ds/components/DateTimePicker/date-picker.d.ts +6 -1
  1611. package/dist/src/ds/components/DateTimePicker/index.d.ts +0 -1
  1612. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -2
  1613. package/dist/src/ds/components/Message/message-timestamp.d.ts +1 -0
  1614. package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +3 -2
  1615. package/dist/src/ds/components/MessageScroller/message-scroller-geometry.d.ts +1 -1
  1616. package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +2 -8
  1617. package/dist/src/ds/components/MessageScroller/message-scroller-visibility-store.d.ts +8 -0
  1618. package/dist/src/ds/components/Metadata/index.d.ts +2 -0
  1619. package/dist/src/ds/components/Metadata/metadata.d.ts +10 -0
  1620. package/dist/src/ds/components/MetricsCard/index.d.ts +1 -0
  1621. package/dist/src/ds/components/MetricsCard/metrics-card-drag-handle.d.ts +12 -0
  1622. package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -0
  1623. package/dist/src/ds/components/Steps/index.d.ts +1 -0
  1624. package/dist/src/ds/components/Steps/step.d.ts +13 -0
  1625. package/dist/src/ds/components/Steps/steps-context.d.ts +2 -0
  1626. package/dist/src/ds/components/Steps/steps-root.d.ts +18 -0
  1627. package/dist/src/ds/components/Steps/steps.d.ts +7 -0
  1628. package/dist/src/ds/components/ai/annotations/annotatable-selection.d.ts +25 -0
  1629. package/dist/src/ds/components/ai/annotations/annotation-comment-card.d.ts +11 -0
  1630. package/dist/src/ds/components/ai/annotations/annotation-comment-popover.d.ts +15 -0
  1631. package/dist/src/ds/components/ai/annotations/annotation-highlights.d.ts +1 -0
  1632. package/dist/src/ds/components/ai/annotations/annotation-marker.d.ts +13 -0
  1633. package/dist/src/ds/components/ai/annotations/annotation-markers.d.ts +9 -0
  1634. package/dist/src/ds/components/ai/annotations/annotation-number.d.ts +4 -0
  1635. package/dist/src/ds/components/ai/annotations/annotation-selection-toolbar.d.ts +7 -0
  1636. package/dist/src/ds/components/ai/annotations/chat-annotations.d.ts +27 -0
  1637. package/dist/src/ds/components/ai/annotations/composer-annotation-list.d.ts +6 -0
  1638. package/dist/src/ds/components/ai/annotations/composer-annotations.d.ts +5 -0
  1639. package/dist/src/ds/components/ai/annotations/format-annotated-message.d.ts +11 -0
  1640. package/dist/src/ds/components/ai/annotations/index.d.ts +5 -0
  1641. package/dist/src/ds/components/ai/annotations/transcript-annotations.d.ts +6 -0
  1642. package/dist/src/ds/components/ai/annotations/use-annotation-placement.d.ts +11 -0
  1643. package/dist/src/ds/components/ai/annotations/use-annotation-selection.d.ts +12 -0
  1644. package/dist/src/ds/components/ai/tool-call/index.d.ts +3 -0
  1645. package/dist/src/ds/components/ai/tool-call/tool-call-body.d.ts +6 -0
  1646. package/dist/src/ds/components/ai/tool-call/tool-call-exit-status.d.ts +11 -0
  1647. package/dist/src/ds/components/ai/tool-call/tool-call-output.d.ts +1 -2
  1648. package/dist/src/ds/components/ai/tool-call/tool-call-view.d.ts +17 -0
  1649. package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +127 -138
  1650. package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +2 -0
  1651. package/dist/src/ds/components/ai/tool-call/tool-styles.d.ts +10 -0
  1652. package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +2 -2
  1653. package/dist/src/ds/icons/ByteDanceIcon.d.ts +2 -0
  1654. package/dist/src/ds/icons/CohereBrandIcon.d.ts +2 -0
  1655. package/dist/src/ds/icons/FireworksIcon.d.ts +2 -0
  1656. package/dist/src/ds/icons/LongCatIcon.d.ts +2 -0
  1657. package/dist/src/ds/icons/MicrosoftIcon.d.ts +2 -0
  1658. package/dist/src/ds/icons/MorphIcon.d.ts +2 -0
  1659. package/dist/src/ds/icons/NousResearchIcon.d.ts +2 -0
  1660. package/dist/src/ds/icons/NovaIcon.d.ts +2 -0
  1661. package/dist/src/ds/icons/PerplexityIcon.d.ts +2 -0
  1662. package/dist/src/ds/icons/SakanaIcon.d.ts +2 -0
  1663. package/dist/src/ds/icons/StepFunIcon.d.ts +2 -0
  1664. package/dist/src/ds/icons/TencentIcon.d.ts +2 -0
  1665. package/dist/src/ds/icons/UpstageIcon.d.ts +2 -0
  1666. package/dist/src/ds/icons/index.d.ts +13 -0
  1667. package/dist/src/ds/tokens/colors.d.ts +12 -0
  1668. package/dist/src/ee/signals/sankey-signals-data.d.ts +2 -2
  1669. package/dist/src/ee/signals/snapshot-summary.d.ts +7 -0
  1670. package/dist/src/ee/signals/snapshot-timeline.d.ts +2 -1
  1671. package/dist/src/hooks/use-clock.d.ts +5 -0
  1672. package/dist/src/lib/resize/collapsible-panel.d.ts +5 -3
  1673. package/dist/src/lib/string.d.ts +1 -0
  1674. package/dist/{string-CNKDIc_4.js → string-CA5M0mj_.js} +5 -2
  1675. package/dist/{string-CNKDIc_4.js.map → string-CA5M0mj_.js.map} +1 -1
  1676. package/dist/{string-DdJJdCv2.cjs → string-EyTazW-F.cjs} +10 -1
  1677. package/dist/{string-DdJJdCv2.cjs.map → string-EyTazW-F.cjs.map} +1 -1
  1678. package/dist/style.css +321 -144
  1679. package/dist/{tabbed-container-B4lCBgRP.cjs → tabbed-container-Bhfi-DWr.cjs} +9 -9
  1680. package/dist/{tabbed-container-B4lCBgRP.cjs.map → tabbed-container-Bhfi-DWr.cjs.map} +1 -1
  1681. package/dist/{tabbed-container-DI1GI1Qv.js → tabbed-container-DOkHshha.js} +8 -8
  1682. package/dist/{tabbed-container-DI1GI1Qv.js.map → tabbed-container-DOkHshha.js.map} +1 -1
  1683. package/dist/{tabs-content-CmXe5ML0.cjs → tabs-content-BACwMrMG.cjs} +3 -3
  1684. package/dist/{tabs-content-CmXe5ML0.cjs.map → tabs-content-BACwMrMG.cjs.map} +1 -1
  1685. package/dist/{tabs-content-D__B9hd-.js → tabs-content-DwU_eA-a.js} +3 -3
  1686. package/dist/{tabs-content-D__B9hd-.js.map → tabs-content-DwU_eA-a.js.map} +1 -1
  1687. package/dist/{tabs-tab-CYTZevdV.js → tabs-tab-BHs639jL.js} +4 -4
  1688. package/dist/{tabs-tab-CYTZevdV.js.map → tabs-tab-BHs639jL.js.map} +1 -1
  1689. package/dist/{tabs-tab-DGwfHVDr.cjs → tabs-tab-CANh2eAD.cjs} +4 -4
  1690. package/dist/{tabs-tab-DGwfHVDr.cjs.map → tabs-tab-CANh2eAD.cjs.map} +1 -1
  1691. package/dist/{toast-api-D_rrRhNG.js → toast-api-Cak5N8pT.js} +2 -2
  1692. package/dist/{toast-api-D_rrRhNG.js.map → toast-api-Cak5N8pT.js.map} +1 -1
  1693. package/dist/{toast-api-qtkOucy2.cjs → toast-api-DDcGCbIw.cjs} +2 -2
  1694. package/dist/{toast-api-qtkOucy2.cjs.map → toast-api-DDcGCbIw.cjs.map} +1 -1
  1695. package/dist/tokens.cjs.js +12 -0
  1696. package/dist/tokens.cjs.js.map +1 -1
  1697. package/dist/tokens.es.js +12 -0
  1698. package/dist/tokens.es.js.map +1 -1
  1699. package/dist/{tool-approval-CJvPDL7D.cjs → tool-approval-CguPaikn.cjs} +7 -7
  1700. package/dist/{tool-approval-CJvPDL7D.cjs.map → tool-approval-CguPaikn.cjs.map} +1 -1
  1701. package/dist/{tool-approval-DyN11vFA.js → tool-approval-Cjz0yAzw.js} +7 -7
  1702. package/dist/{tool-approval-DyN11vFA.js.map → tool-approval-Cjz0yAzw.js.map} +1 -1
  1703. package/dist/tool-call-BqDI9mrY.cjs +600 -0
  1704. package/dist/tool-call-BqDI9mrY.cjs.map +1 -0
  1705. package/dist/tool-call-ChJKYCfu.js +505 -0
  1706. package/dist/tool-call-ChJKYCfu.js.map +1 -0
  1707. package/dist/{tool-card-BOLXeKIp.cjs → tool-card-Dg4VOYV6.cjs} +24 -15
  1708. package/dist/tool-card-Dg4VOYV6.cjs.map +1 -0
  1709. package/dist/{tool-card-HZ5bm7ue.js → tool-card-GSiCfxMz.js} +25 -16
  1710. package/dist/tool-card-GSiCfxMz.js.map +1 -0
  1711. package/dist/tool-presentation-C2bYQ7gB.js +874 -0
  1712. package/dist/tool-presentation-C2bYQ7gB.js.map +1 -0
  1713. package/dist/tool-presentation-DPp9h-n2.cjs +915 -0
  1714. package/dist/tool-presentation-DPp9h-n2.cjs.map +1 -0
  1715. package/dist/{tooltip-BiRLT3Th.cjs → tooltip-BsExuMO8.cjs} +2 -2
  1716. package/dist/{tooltip-BiRLT3Th.cjs.map → tooltip-BsExuMO8.cjs.map} +1 -1
  1717. package/dist/{tooltip-HzcLyGtV.js → tooltip-DJcze2VZ.js} +2 -2
  1718. package/dist/{tooltip-HzcLyGtV.js.map → tooltip-DJcze2VZ.js.map} +1 -1
  1719. package/dist/{transcript-divider-CvdgElIC.js → transcript-divider-DM2HkdeO.js} +5 -11
  1720. package/dist/transcript-divider-DM2HkdeO.js.map +1 -0
  1721. package/dist/{transcript-divider-CQ6sc3nt.cjs → transcript-divider-DroC3feH.cjs} +4 -10
  1722. package/dist/transcript-divider-DroC3feH.cjs.map +1 -0
  1723. package/dist/{use-workflow-graph-runtime-BKNhOKsH.js → use-workflow-graph-runtime-B3VUuhUE.js} +12 -12
  1724. package/dist/{use-workflow-graph-runtime-BKNhOKsH.js.map → use-workflow-graph-runtime-B3VUuhUE.js.map} +1 -1
  1725. package/dist/{use-workflow-graph-runtime-DYao-08R.cjs → use-workflow-graph-runtime-BfCL6nd4.cjs} +12 -12
  1726. package/dist/{use-workflow-graph-runtime-DYao-08R.cjs.map → use-workflow-graph-runtime-BfCL6nd4.cjs.map} +1 -1
  1727. package/dist/utils/string.cjs.js +2 -1
  1728. package/dist/utils/string.es.js +1 -1
  1729. package/dist/utils/toast.cjs.js +1 -1
  1730. package/dist/utils/toast.es.js +1 -1
  1731. package/oxlint/copy-rules.d.ts +4 -0
  1732. package/oxlint/copy-rules.js +29 -0
  1733. package/oxlint/copy-sources.js +223 -0
  1734. package/oxlint/index.d.ts +5 -0
  1735. package/oxlint/index.js +17 -0
  1736. package/package.json +13 -10
  1737. package/theme/data-viz.css +33 -0
  1738. package/dist/AgentIndicator-Bs2S8AWJ.js +0 -847
  1739. package/dist/AgentIndicator-Bs2S8AWJ.js.map +0 -1
  1740. package/dist/AgentIndicator-to30W73z.cjs +0 -864
  1741. package/dist/AgentIndicator-to30W73z.cjs.map +0 -1
  1742. package/dist/Button-CLXTbAY8.js.map +0 -1
  1743. package/dist/Button-DLcMcuUL.cjs.map +0 -1
  1744. package/dist/Composer-BcueJvdX.cjs.map +0 -1
  1745. package/dist/Composer-D1gF-0jZ.js.map +0 -1
  1746. package/dist/FilterBar-BSP2UTjc.cjs.map +0 -1
  1747. package/dist/FilterBar-PSQ1OwqH.js.map +0 -1
  1748. package/dist/Message-jj56lxNL.cjs.map +0 -1
  1749. package/dist/MessageScroller-CGsfTd1Z.cjs.map +0 -1
  1750. package/dist/MessageScroller-DvaKlm4O.js.map +0 -1
  1751. package/dist/MetricsCard-BEwiS7Pe.cjs.map +0 -1
  1752. package/dist/MetricsCard-ua6C6b8a.js.map +0 -1
  1753. package/dist/Workflow-C3SlEdP-.js.map +0 -1
  1754. package/dist/Workflow-DSWQ-ROz.cjs.map +0 -1
  1755. package/dist/activity-C8Ql81WM.js.map +0 -1
  1756. package/dist/activity-CcQZeDYi.cjs.map +0 -1
  1757. package/dist/combobox-D21no8t5.js.map +0 -1
  1758. package/dist/combobox-DIT_6xiG.cjs.map +0 -1
  1759. package/dist/combobox-parts-C4phOq4t.cjs.map +0 -1
  1760. package/dist/combobox-parts-D90ir0Py.js.map +0 -1
  1761. package/dist/date-time-range-picker-CWGjoR3j.cjs.map +0 -1
  1762. package/dist/date-time-range-picker-CdSiXwB4.js.map +0 -1
  1763. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +0 -29
  1764. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js.map +0 -1
  1765. package/dist/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -1
  1766. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +0 -28
  1767. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js.map +0 -1
  1768. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +0 -1
  1769. package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +0 -1
  1770. package/dist/page-header-BykBsHUy.js.map +0 -1
  1771. package/dist/src/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -9
  1772. package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +0 -7
  1773. package/dist/tool-call-DBn14X-3.cjs +0 -497
  1774. package/dist/tool-call-DBn14X-3.cjs.map +0 -1
  1775. package/dist/tool-call-Dsj43lvJ.js +0 -426
  1776. package/dist/tool-call-Dsj43lvJ.js.map +0 -1
  1777. package/dist/tool-card-BOLXeKIp.cjs.map +0 -1
  1778. package/dist/tool-card-HZ5bm7ue.js.map +0 -1
  1779. package/dist/tool-presentation-CvibOP1J.js +0 -256
  1780. package/dist/tool-presentation-CvibOP1J.js.map +0 -1
  1781. package/dist/tool-presentation-D6nzVruN.cjs +0 -291
  1782. package/dist/tool-presentation-D6nzVruN.cjs.map +0 -1
  1783. package/dist/transcript-divider-CQ6sc3nt.cjs.map +0 -1
  1784. package/dist/transcript-divider-CvdgElIC.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.es.js","names":["Popover","PopoverPrimitive","_Fragment","Popover"],"sources":["../../../src/ds/components/ai/annotations/format-annotated-message.ts","../../../src/ds/components/ai/annotations/chat-annotations.tsx","../../../src/ds/components/ai/annotations/annotation-number.tsx","../../../src/ds/components/ai/annotations/annotation-comment-card.tsx","../../../src/ds/components/ai/annotations/annotation-comment-popover.tsx","../../../src/ds/components/ai/annotations/annotation-marker.tsx","../../../src/ds/components/ai/annotations/annotatable-selection.ts","../../../src/ds/components/ai/annotations/annotation-highlights.ts","../../../src/ds/components/ai/annotations/use-annotation-placement.ts","../../../src/ds/components/ai/annotations/annotation-markers.tsx","../../../src/ds/components/ai/annotations/use-annotation-selection.ts","../../../src/ds/components/ai/annotations/annotation-selection-toolbar.tsx","../../../src/ds/components/ai/annotations/transcript-annotations.tsx","../../../src/ds/components/ai/annotations/composer-annotation-list.tsx","../../../src/ds/components/ai/annotations/composer-annotations.tsx"],"sourcesContent":["export function normalizeAnnotationText(text: string): string {\n return text\n .replace(/\\r\\n?/g, '\\n')\n .split('\\n')\n .map(line => line.trimEnd())\n .join('\\n')\n .replace(/\\n{3,}/g, '\\n\\n')\n .trim();\n}\n\nexport interface AnnotatedPassage {\n text: string;\n comment?: string;\n}\n\nfunction formatListItem({ text, comment }: AnnotatedPassage, number: number): string {\n const marker = `${number}. `;\n const pad = ' '.repeat(marker.length);\n const quoted = text.split('\\n').map(line => (line ? `> ${line}` : '>'));\n const quote = `${marker}${quoted.join(`\\n${pad}`)}`;\n const note = comment ? normalizeAnnotationText(comment) : '';\n if (!note) return quote;\n const indentedNote = note.split('\\n').map(line => (line ? `${pad}${line}` : ''));\n return [quote, '', ...indentedNote].join('\\n');\n}\n\n// CommonMark keeps a numbered or indented line that follows the list inside it; an empty link definition ends the list and renders nothing.\nconst JOINS_LIST = /^(?:\\s|\\d{1,9}[.)](?:\\s|$))/;\n\n/**\n * Labelled with the shortest run of slashes the message never holds, so no `[//]` the person wrote turns into\n * a link; that run stays far below CommonMark's 999-character label limit.\n */\nfunction listEnd(message: string): string {\n const runs = new Set(Array.from(message.matchAll(/\\/+/g), match => match[0].length));\n let length = 2;\n while (runs.has(length)) length += 1;\n return `\\n\\n[${'/'.repeat(length)}]: #\\n\\n`;\n}\n\n/**\n * The message the agent receives: the annotations as a numbered Markdown list, each holding its passage\n * as a blockquote and any comment on it, then what the person typed. The list keeps a comment on the\n * last passage apart from the typed message.\n */\nexport function formatAnnotatedMessage(text: string, annotations: readonly AnnotatedPassage[]): string {\n const passages = annotations\n .map(annotation => ({ text: normalizeAnnotationText(annotation.text), comment: annotation.comment }))\n .filter(annotation => annotation.text);\n if (passages.length === 0) return text;\n const list = passages.map((passage, index) => formatListItem(passage, index + 1)).join('\\n\\n');\n if (!text.trim()) return list;\n if (!JOINS_LIST.test(text.replace(/^\\s*\\n/, ''))) return `${list}\\n\\n${text}`;\n return `${list}${listEnd(list + text)}${text}`;\n}\n","/* eslint-disable react-refresh/only-export-components -- the provider and its hook share one context */\nimport { nanoid } from 'nanoid';\nimport { createContext, useContext, useState } from 'react';\nimport type { ReactNode } from 'react';\n\nimport type { AnnotationSource } from './annotatable-selection';\nimport { normalizeAnnotationText } from './format-annotated-message';\n\nexport interface ChatAnnotation {\n id: string;\n text: string;\n source: AnnotationSource;\n comment?: string;\n}\n\nexport const visibleComment = (annotation: ChatAnnotation) => annotation.comment?.trim() || undefined;\n\nexport type NewChatAnnotation = Pick<ChatAnnotation, 'text' | 'source'>;\n\nexport interface ChatAnnotationsApi {\n /** In the order they were added: an annotation's number is its position. */\n annotations: ChatAnnotation[];\n /** Ignores blank text and a passage already waiting. */\n addAnnotation: (annotation: NewChatAnnotation) => void;\n removeAnnotation: (id: string) => void;\n setAnnotationComment: (id: string, comment: string) => void;\n /** Hands every waiting annotation to the message being sent and clears them from the chat. */\n takeAnnotations: () => ChatAnnotation[];\n /** Puts the annotations of a message that failed to send back, ahead of any added since. */\n restoreAnnotations: (annotations: readonly ChatAnnotation[]) => void;\n}\n\nconst ChatAnnotationsContext = createContext<ChatAnnotationsApi | undefined>(undefined);\n\nconst samePassage = (a: AnnotationSource, b: AnnotationSource) =>\n a.element === b.element && a.start === b.start && a.end === b.end;\n\n/** Mount it below whatever remounts when the thread changes, so annotations stay with their thread. */\nexport function ChatAnnotationsProvider({ children }: { children: ReactNode }) {\n const [annotations, setAnnotations] = useState<ChatAnnotation[]>([]);\n\n const value: ChatAnnotationsApi = {\n annotations,\n addAnnotation: ({ text, source }) => {\n const annotation = { text: normalizeAnnotationText(text), source };\n if (!annotation.text) return;\n setAnnotations(current =>\n current.some(waiting => samePassage(waiting.source, source))\n ? current\n : [...current, { id: nanoid(), ...annotation }],\n );\n },\n removeAnnotation: id => setAnnotations(current => current.filter(annotation => annotation.id !== id)),\n setAnnotationComment: (id, comment) =>\n setAnnotations(current =>\n current.map(annotation => (annotation.id === id ? { ...annotation, comment } : annotation)),\n ),\n takeAnnotations: () => {\n const taken = new Set(annotations.map(annotation => annotation.id));\n setAnnotations(current => current.filter(annotation => !taken.has(annotation.id)));\n return annotations;\n },\n restoreAnnotations: restored =>\n setAnnotations(current => {\n const kept = new Set(current.map(annotation => annotation.id));\n return [...restored.filter(annotation => !kept.has(annotation.id)), ...current];\n }),\n };\n\n return <ChatAnnotationsContext.Provider value={value}>{children}</ChatAnnotationsContext.Provider>;\n}\n\nexport function useChatAnnotations(): ChatAnnotationsApi {\n const value = useContext(ChatAnnotationsContext);\n if (!value) throw new Error('useChatAnnotations must be used within a ChatAnnotationsProvider');\n return value;\n}\n","import type { ComponentPropsWithoutRef } from 'react';\n\nimport { cn } from '@/lib/utils';\n\n/** The square bottom-left corner is the bubble's tail: in the transcript it touches the end of its passage. */\nexport const annotationBubbleStyle =\n 'inline-flex h-4.5 min-w-4.5 shrink-0 items-center justify-center gap-0.5 rounded-full rounded-bl-xs bg-info-indicator px-1.25 text-column leading-none text-background tabular-nums';\n\nexport function AnnotationNumber({ className, ...props }: ComponentPropsWithoutRef<'span'>) {\n return <span data-slot=\"annotation-number\" className={cn(annotationBubbleStyle, className)} {...props} />;\n}\n","import { Trash2 } from 'lucide-react';\nimport type { Ref } from 'react';\n\nimport { AnnotationNumber } from './annotation-number';\nimport type { ChatAnnotation } from './chat-annotations';\nimport { Button } from '@/ds/components/Button';\nimport { Textarea } from '@/ds/components/Textarea';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface AnnotationCommentCardProps {\n annotation: ChatAnnotation;\n number: number;\n commentRef?: Ref<HTMLTextAreaElement>;\n onCommentChange: (comment: string) => void;\n onRemove: () => void;\n onDone: () => void;\n}\n\nexport function AnnotationCommentCard({\n annotation,\n number,\n commentRef,\n onCommentChange,\n onRemove,\n onDone,\n}: AnnotationCommentCardProps) {\n return (\n <div data-slot=\"annotation-comment-card\" className=\"flex flex-col gap-2.5\">\n <div className=\"flex items-center gap-2\">\n <AnnotationNumber>{number}</AnnotationNumber>\n <Txt as=\"span\" variant=\"label\" className=\"flex-1\">\n Annotation {number}\n </Txt>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"-my-1 -me-1\"\n tooltip={`Remove annotation ${number}`}\n onClick={onRemove}\n >\n <Trash2 />\n </Button>\n </div>\n <blockquote className=\"line-clamp-3 border-l-2 border-info-indicator ps-2.5 text-body-sm whitespace-pre-line text-muted-foreground\">\n {annotation.text}\n </blockquote>\n <Textarea\n ref={commentRef}\n aria-label={`Comment on annotation ${number}`}\n placeholder=\"Add a comment\"\n rows={3}\n className=\"min-h-18 resize-none\"\n value={annotation.comment ?? ''}\n onChange={event => onCommentChange(event.target.value)}\n onKeyDown={event => {\n if (event.key === 'Enter' && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n onDone();\n }\n }}\n />\n <div className=\"flex items-center justify-between gap-2\">\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\">\n Sent with your next message\n </Txt>\n <Button type=\"button\" size=\"sm\" onClick={onDone}>\n Done\n </Button>\n </div>\n </div>\n );\n}\n","import { useRef } from 'react';\n\nimport { AnnotationCommentCard } from './annotation-comment-card';\nimport type { ChatAnnotation } from './chat-annotations';\nimport { Popover, PopoverContent } from '@/ds/components/Popover';\n\nexport interface CommentCard {\n id: string;\n anchor: HTMLElement;\n open: boolean;\n}\n\nexport interface AnnotationCommentPopoverProps {\n card: CommentCard;\n annotation: ChatAnnotation;\n number: number;\n onCommentChange: (comment: string) => void;\n onRemove: () => void;\n onClose: () => void;\n}\n\nexport function AnnotationCommentPopover({\n card,\n annotation,\n number,\n onCommentChange,\n onRemove,\n onClose,\n}: AnnotationCommentPopoverProps) {\n const commentRef = useRef<HTMLTextAreaElement>(null);\n\n return (\n <Popover\n open={card.open}\n onOpenChange={(next, { reason, event }) => {\n const target = event instanceof FocusEvent ? event.relatedTarget : event.target;\n // The bubble's own click toggles the card, so pressing or focusing it must not close the card first.\n const towardBubble =\n (reason === 'outside-press' || reason === 'focus-out') &&\n target instanceof Node &&\n card.anchor.contains(target);\n if (!next && !towardBubble) onClose();\n }}\n >\n <PopoverContent\n anchor={card.anchor}\n side=\"top\"\n align=\"start\"\n sideOffset={8}\n initialFocus={commentRef}\n aria-label={`Annotation ${number}`}\n className=\"w-80 max-w-[calc(100vw-2rem)] p-3\"\n >\n <AnnotationCommentCard\n annotation={annotation}\n number={number}\n commentRef={commentRef}\n onCommentChange={onCommentChange}\n onRemove={onRemove}\n onDone={onClose}\n />\n </PopoverContent>\n </Popover>\n );\n}\n","import type { Ref } from 'react';\n\nimport { annotationBubbleStyle } from './annotation-number';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport interface AnnotationMarkerProps {\n ref: Ref<HTMLButtonElement>;\n commented: boolean;\n number: number;\n active: boolean;\n expanded: boolean;\n onHoverStart: () => void;\n onHoverEnd: () => void;\n onToggle: (anchor: HTMLElement) => void;\n}\n\n/** Starts hidden: `AnnotationMarkers` shows it once the passage is laid out. */\nexport function AnnotationMarker({\n ref,\n commented,\n number,\n active,\n expanded,\n onHoverStart,\n onHoverEnd,\n onToggle,\n}: AnnotationMarkerProps) {\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"annotation-marker\"\n data-active={active || undefined}\n data-commented={commented || undefined}\n hidden\n aria-label={commented ? `Annotation ${number}, with a comment` : `Annotation ${number}`}\n aria-expanded={expanded}\n aria-haspopup=\"dialog\"\n className={cn(\n annotationBubbleStyle,\n 'pointer-events-auto absolute origin-bottom-left -translate-y-full cursor-pointer shadow-raised',\n 'motion-safe:transition-[scale,background-color] motion-safe:duration-fast motion-safe:ease-out-custom',\n 'hover:scale-115 hover:bg-info-bright data-[active]:scale-115 data-[active]:bg-info-bright',\n focusRing,\n )}\n onPointerEnter={onHoverStart}\n onPointerLeave={onHoverEnd}\n // Keyboard focus only: focus returns here when the card closes, which must not look hovered.\n onFocus={event => {\n if (event.currentTarget.matches(':focus-visible')) onHoverStart();\n }}\n onBlur={onHoverEnd}\n onClick={event => onToggle(event.currentTarget)}\n >\n {number}\n {commented && <span aria-hidden=\"true\" className=\"size-1 rounded-full bg-current\" />}\n </button>\n );\n}\n","import { escapeRegExp } from '@/lib/string';\n\n/** Every `Message` marks its content with this slot, in Studio and Factory alike. */\nconst ANNOTATABLE_SELECTOR = '[data-slot=\"message-content\"]';\n\nexport interface AnnotatablePart {\n element: Element;\n range: Range;\n extendsPastContent: boolean;\n}\n\nexport interface SelectionAnchor {\n getBoundingClientRect: () => DOMRect;\n /** Lets the positioner find the scroll containers it has to follow. */\n contextElement: Element;\n}\n\nconst visibleText = (value: string) => value.replace(/\\s+/g, '');\n\nfunction rangeWithin(range: Range, element: Element): Range {\n const within = element.ownerDocument.createRange();\n within.selectNodeContents(element);\n if (range.compareBoundaryPoints(Range.START_TO_START, within) > 0) {\n within.setStart(range.startContainer, range.startOffset);\n }\n if (range.compareBoundaryPoints(Range.END_TO_END, within) < 0) {\n within.setEnd(range.endContainer, range.endOffset);\n }\n return within;\n}\n\nconst isOutermostMessage = (element: Element) => !element.parentElement?.closest(ANNOTATABLE_SELECTOR);\n\nexport function findAnnotatablePart(container: Element, range: Range): AnnotatablePart | undefined {\n if (!range.intersectsNode(container)) return undefined;\n const selected = visibleText(range.toString());\n if (!selected) return undefined;\n\n const withText = Array.from(container.querySelectorAll(ANNOTATABLE_SELECTOR))\n .filter(element => range.intersectsNode(element) && isOutermostMessage(element))\n .map(element => ({ element, range: rangeWithin(range, element) }))\n .filter(part => visibleText(part.range.toString()));\n const [part, other] = withText;\n if (!part || other) return undefined;\n\n return { ...part, extendsPastContent: visibleText(part.range.toString()) !== selected };\n}\n\nfunction isBackward(selection: Selection): boolean {\n const { anchorNode, anchorOffset, focusNode, focusOffset } = selection;\n if (!anchorNode || !focusNode) return false;\n const anchor = anchorNode.ownerDocument?.createRange();\n if (!anchor) return false;\n anchor.setStart(anchorNode, anchorOffset);\n return anchor.comparePoint(focusNode, focusOffset) < 0;\n}\n\nexport function clampSelection(selection: Selection, part: AnnotatablePart) {\n const { startContainer, startOffset, endContainer, endOffset } = part.range;\n if (isBackward(selection)) selection.setBaseAndExtent(endContainer, endOffset, startContainer, startOffset);\n else selection.setBaseAndExtent(startContainer, startOffset, endContainer, endOffset);\n}\n\nconst lineRects = (range: Range) =>\n Array.from(range.getClientRects()).filter(rect => rect.width > 0 && rect.height > 0);\n\nexport function selectionAnchor(part: AnnotatablePart): SelectionAnchor {\n return {\n getBoundingClientRect: () => lineRects(part.range)[0] ?? part.range.getBoundingClientRect(),\n contextElement: part.element,\n };\n}\n\n/** Offsets rather than a `Range`, so the mark survives the message re-rendering its text nodes. */\nexport interface AnnotationSource {\n element: Element;\n start: number;\n end: number;\n text: string;\n textBefore: string;\n textAfter: string;\n}\n\ninterface Span {\n start: number;\n end: number;\n}\n\nconst SURROUNDING_VISIBLE_CHARS = 16;\n\nfunction surroundings(content: string, { start, end }: Span) {\n return {\n textBefore: visibleText(content.slice(0, start)).slice(-SURROUNDING_VISIBLE_CHARS),\n textAfter: visibleText(content.slice(end)).slice(0, SURROUNDING_VISIBLE_CHARS),\n };\n}\n\nfunction textOffset(element: Element, node: Node, offset: number): number {\n const before = element.ownerDocument.createRange();\n before.selectNodeContents(element);\n before.setEnd(node, offset);\n return before.toString().length;\n}\n\nexport function annotationSource({ element, range }: AnnotatablePart): AnnotationSource {\n const span = {\n start: textOffset(element, range.startContainer, range.startOffset),\n end: textOffset(element, range.endContainer, range.endOffset),\n };\n return { element, ...span, text: visibleText(range.toString()), ...surroundings(element.textContent ?? '', span) };\n}\n\nfunction passagePattern(text: string): RegExp {\n return new RegExp(Array.from(text, escapeRegExp).join('\\\\s*'), 'g');\n}\n\nfunction locate(element: Element, source: AnnotationSource): Span | undefined {\n const content = element.textContent ?? '';\n const surroundingsAgree = (span: Span) => {\n const now = surroundings(content, span);\n return now.textBefore === source.textBefore || now.textAfter === source.textAfter;\n };\n const saved = { start: source.start, end: source.end };\n if (visibleText(content.slice(saved.start, saved.end)) === source.text && surroundingsAgree(saved)) return saved;\n const copies = Array.from(content.matchAll(passagePattern(source.text)), match => ({\n start: match.index,\n end: match.index + match[0].length,\n }));\n if (copies.length <= 1) return copies[0];\n const distance = (copy: Span) => Math.abs(copy.start - source.start);\n return copies.filter(surroundingsAgree).toSorted((a, b) => distance(a) - distance(b))[0];\n}\n\nexport function rangeFromSource(source: AnnotationSource): Range | undefined {\n const { element } = source;\n if (!element.isConnected) return undefined;\n const span = locate(element, source);\n if (!span) return undefined;\n const document = element.ownerDocument;\n const range = document.createRange();\n const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);\n let seen = 0;\n let started = false;\n for (let node = walker.nextNode(); node; node = walker.nextNode()) {\n const length = node.textContent?.length ?? 0;\n if (!started && span.start < seen + length) {\n range.setStart(node, span.start - seen);\n started = true;\n }\n if (started && span.end <= seen + length) {\n range.setEnd(node, span.end - seen);\n return range;\n }\n seen += length;\n }\n return undefined;\n}\n\nexport function passageEndRect(range: Range): DOMRect | undefined {\n return lineRects(range).at(-1);\n}\n","import './annotation-highlights.css';\n\n/** Named in `annotation-highlights.css`. */\nconst HIGHLIGHT = 'chat-annotation';\nconst ACTIVE_HIGHLIGHT = 'chat-annotation-active';\n\nconst paintedByTranscript = new Map<string, { ranges: Range[]; active: Range | undefined }>();\n\nexport function paintHighlights(transcriptId: string, ranges: Range[], active: Range | undefined) {\n if (typeof CSS === 'undefined' || !('highlights' in CSS)) return;\n if (ranges.length === 0) paintedByTranscript.delete(transcriptId);\n else paintedByTranscript.set(transcriptId, { ranges, active });\n const painted = Array.from(paintedByTranscript.values());\n const allRanges = painted.flatMap(entry => entry.ranges);\n const activeRanges = painted.flatMap(entry => (entry.active ? [entry.active] : []));\n if (allRanges.length === 0) CSS.highlights.delete(HIGHLIGHT);\n else CSS.highlights.set(HIGHLIGHT, new Highlight(...allRanges));\n if (activeRanges.length === 0) {\n CSS.highlights.delete(ACTIVE_HIGHLIGHT);\n return;\n }\n const emphasis = new Highlight(...activeRanges);\n emphasis.priority = 1;\n CSS.highlights.set(ACTIVE_HIGHLIGHT, emphasis);\n}\n","import { useEffect, useEffectEvent, useId, useRef } from 'react';\nimport type { RefObject } from 'react';\n\nimport { passageEndRect, rangeFromSource } from './annotatable-selection';\nimport { paintHighlights } from './annotation-highlights';\nimport type { ChatAnnotation } from './chat-annotations';\n\nexport interface AnnotationPlacementOptions {\n containerRef: RefObject<Element | null>;\n annotations: readonly ChatAnnotation[];\n emphasized: string | undefined;\n}\n\ninterface PlacedPassage {\n id: string;\n marker: HTMLButtonElement;\n range: Range;\n end: DOMRect;\n}\n\ninterface PlacedBubble {\n marker: HTMLButtonElement;\n left: number;\n top: number;\n width: number;\n}\n\n// Leaves room for a hovered bubble's 115% scale.\nconst BUBBLE_GAP_PX = 4;\nconst TAIL_INSET_X_PX = 1;\nconst TAIL_DROP_Y_PX = 7;\n\n/** Bubbles on one line sit side by side, in the order their passages end, inside the transcript. */\nfunction spreadLine(line: readonly PlacedBubble[], layerWidth: number): PlacedBubble[] {\n const pushedRight: PlacedBubble[] = [];\n for (const bubble of line.toSorted((a, b) => a.left - b.left)) {\n const previous = pushedRight.at(-1);\n const left = previous ? Math.max(bubble.left, previous.left + previous.width + BUBBLE_GAP_PX) : bubble.left;\n pushedRight.push({ ...bubble, left });\n }\n const fitted: PlacedBubble[] = [];\n for (const bubble of pushedRight.toReversed()) {\n const next = fitted.at(-1);\n const limit = next ? next.left - BUBBLE_GAP_PX : layerWidth;\n fitted.push({ ...bubble, left: Math.min(bubble.left, limit - bubble.width) });\n }\n return fitted;\n}\n\nfunction spreadBubbles(bubbles: readonly PlacedBubble[], layerWidth: number): PlacedBubble[] {\n const lines = new Map<number, PlacedBubble[]>();\n for (const bubble of bubbles) {\n const line = Math.round(bubble.top);\n lines.set(line, [...(lines.get(line) ?? []), bubble]);\n }\n return [...lines.values()].flatMap(line => spreadLine(line, layerWidth));\n}\n\nfunction placedPassage(annotation: ChatAnnotation, marker: HTMLButtonElement): PlacedPassage | undefined {\n const range = rangeFromSource(annotation.source);\n if (!range) return undefined;\n const end = passageEndRect(range);\n if (!end) return undefined;\n return { id: annotation.id, marker, range, end };\n}\n\nexport function useAnnotationPlacement({ containerRef, annotations, emphasized }: AnnotationPlacementOptions) {\n const transcriptId = useId();\n const layerRef = useRef<HTMLDivElement>(null);\n const markersRef = useRef(new Map<string, HTMLButtonElement>());\n const tracking = annotations.length > 0;\n\n // Written straight to the bubbles: layout is read after commit, and nothing renders from it.\n const place = useEffectEvent(() => {\n const layer = layerRef.current;\n if (!layer) return;\n const origin = layer.getBoundingClientRect();\n const shown: PlacedPassage[] = [];\n for (const annotation of annotations) {\n const marker = markersRef.current.get(annotation.id);\n if (!marker) continue;\n const passage = placedPassage(annotation, marker);\n marker.hidden = !passage;\n if (passage) shown.push(passage);\n }\n const bubbles = shown.map(({ marker, end }) => ({\n marker,\n left: end.right - origin.left - TAIL_INSET_X_PX,\n top: end.top - origin.top + TAIL_DROP_Y_PX,\n width: marker.offsetWidth,\n }));\n for (const { marker, left, top } of spreadBubbles(bubbles, origin.width)) {\n marker.style.left = `${left}px`;\n marker.style.top = `${top}px`;\n }\n paintHighlights(\n transcriptId,\n shown.map(passage => passage.range),\n shown.find(passage => passage.id === emphasized)?.range,\n );\n });\n\n useEffect(() => {\n place();\n }, [annotations, emphasized]);\n\n useEffect(() => {\n const layer = layerRef.current;\n const container = containerRef.current;\n if (!tracking || !layer || !container) return;\n let frame = 0;\n const schedule = () => {\n cancelAnimationFrame(frame);\n frame = requestAnimationFrame(() => place());\n };\n const resizes = new ResizeObserver(schedule);\n resizes.observe(layer);\n const mutations = new MutationObserver(schedule);\n mutations.observe(container, { childList: true, characterData: true, subtree: true });\n container.addEventListener('scroll', schedule, { capture: true, passive: true });\n return () => {\n cancelAnimationFrame(frame);\n resizes.disconnect();\n mutations.disconnect();\n container.removeEventListener('scroll', schedule, { capture: true });\n paintHighlights(transcriptId, [], undefined);\n };\n }, [tracking, containerRef, transcriptId]);\n\n const markerRef = (id: string) => (marker: HTMLButtonElement | null) => {\n if (!marker) return;\n markersRef.current.set(id, marker);\n return () => {\n markersRef.current.delete(id);\n };\n };\n\n return { layerRef, markerRef };\n}\n","import { useState } from 'react';\nimport type { RefObject } from 'react';\n\nimport { AnnotationCommentPopover } from './annotation-comment-popover';\nimport type { CommentCard } from './annotation-comment-popover';\nimport { AnnotationMarker } from './annotation-marker';\nimport { visibleComment } from './chat-annotations';\nimport type { ChatAnnotation } from './chat-annotations';\nimport { useAnnotationPlacement } from './use-annotation-placement';\n\nexport interface AnnotationMarkersProps {\n containerRef: RefObject<Element | null>;\n annotations: readonly ChatAnnotation[];\n onCommentChange: (id: string, comment: string) => void;\n onRemove: (id: string) => void;\n}\n\nexport function AnnotationMarkers({ containerRef, annotations, onCommentChange, onRemove }: AnnotationMarkersProps) {\n const [hovered, setHovered] = useState<string>();\n const [card, setCard] = useState<CommentCard>();\n const cardIndex = card ? annotations.findIndex(annotation => annotation.id === card.id) : -1;\n const cardAnnotation = annotations[cardIndex];\n const openId = card?.open ? card.id : undefined;\n const emphasized = openId ?? hovered;\n const { layerRef, markerRef } = useAnnotationPlacement({ containerRef, annotations, emphasized });\n\n const close = () => setCard(current => current && { ...current, open: false });\n\n return (\n <div\n ref={layerRef}\n data-slot=\"annotation-markers\"\n // Above the transcript's own positioned parts, below the docked composer.\n className=\"pointer-events-none absolute inset-0 z-1\"\n >\n {annotations.map((annotation, index) => (\n <AnnotationMarker\n key={annotation.id}\n ref={markerRef(annotation.id)}\n number={index + 1}\n commented={Boolean(visibleComment(annotation))}\n active={annotation.id === emphasized}\n expanded={annotation.id === openId}\n onHoverStart={() => setHovered(annotation.id)}\n onHoverEnd={() => setHovered(current => (current === annotation.id ? undefined : current))}\n onToggle={anchor =>\n setCard(current =>\n current?.open && current.id === annotation.id\n ? { ...current, open: false }\n : { id: annotation.id, anchor, open: true },\n )\n }\n />\n ))}\n {card && cardAnnotation && (\n <AnnotationCommentPopover\n card={card}\n annotation={cardAnnotation}\n number={cardIndex + 1}\n onCommentChange={comment => onCommentChange(cardAnnotation.id, comment)}\n onRemove={() => {\n close();\n onRemove(cardAnnotation.id);\n }}\n onClose={close}\n />\n )}\n </div>\n );\n}\n","import { useEffect, useState } from 'react';\nimport type { RefObject } from 'react';\n\nimport { clampSelection, findAnnotatablePart, selectionAnchor, annotationSource } from './annotatable-selection';\nimport type { SelectionAnchor, AnnotationSource } from './annotatable-selection';\nimport { normalizeAnnotationText } from './format-annotated-message';\n\nexport interface AnnotationSelection {\n text: string;\n source: AnnotationSource;\n anchor: SelectionAnchor;\n}\n\ninterface AnnotationSelectionState {\n open: boolean;\n /** Kept after closing so the toolbar stays in place while it animates out. */\n selection?: AnnotationSelection;\n}\n\nconst CLOSED: AnnotationSelectionState = { open: false };\n\nconst closing = (state: AnnotationSelectionState) => (state.open ? { ...state, open: false } : state);\n\n// Firefox can hold several ranges at once; a passage is exactly one.\nfunction singleRange(selection: Selection | null): Range | undefined {\n if (!selection || selection.isCollapsed) return undefined;\n if (selection.rangeCount !== 1) return undefined;\n return selection.getRangeAt(0);\n}\n\nexport function useAnnotationSelection(containerRef: RefObject<Element | null>, toolbarRef: RefObject<Element | null>) {\n const [state, setState] = useState<AnnotationSelectionState>(CLOSED);\n const dismiss = () => setState(closing);\n\n useEffect(() => {\n let pressing = false;\n let settleTimer: ReturnType<typeof setTimeout> | undefined;\n const close = () => setState(closing);\n\n const reportSelection = (pointerReleased: boolean) => {\n const container = containerRef.current;\n const selection = document.getSelection();\n const range = singleRange(selection);\n if (!container || !selection || !range) return close();\n const part = findAnnotatablePart(container, range);\n if (!part || (part.extendsPastContent && !pointerReleased)) return close();\n if (part.extendsPastContent) clampSelection(selection, part);\n const text = normalizeAnnotationText(selection.toString());\n if (!text) return close();\n setState({ open: true, selection: { text, source: annotationSource(part), anchor: selectionAnchor(part) } });\n };\n\n const onPointerDown = () => {\n pressing = true;\n };\n const endPress = () => {\n pressing = false;\n };\n // Read after the browser finishes the gesture: a click inside a selection collapses it only after release.\n const onPointerUp = () => {\n pressing = false;\n clearTimeout(settleTimer);\n settleTimer = setTimeout(() => reportSelection(true));\n };\n const onSelectionChange = () => {\n // Focus moving into the toolbar can collapse the selection it acts on.\n if (toolbarRef.current?.contains(document.activeElement)) return;\n if (pressing) close();\n else reportSelection(false);\n };\n\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('pointerup', onPointerUp, true);\n document.addEventListener('pointercancel', endPress, true);\n // macOS swallows the pointer release behind a context menu.\n document.addEventListener('contextmenu', endPress, true);\n document.addEventListener('selectionchange', onSelectionChange);\n return () => {\n clearTimeout(settleTimer);\n document.removeEventListener('pointerdown', onPointerDown, true);\n document.removeEventListener('pointerup', onPointerUp, true);\n document.removeEventListener('pointercancel', endPress, true);\n document.removeEventListener('contextmenu', endPress, true);\n document.removeEventListener('selectionchange', onSelectionChange);\n };\n }, [containerRef, toolbarRef]);\n\n return { open: state.open, selection: state.selection, dismiss };\n}\n","import { Popover as PopoverPrimitive } from '@base-ui/react/popover';\nimport { TextQuote } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport type { KeyboardEvent as ReactKeyboardEvent, RefObject } from 'react';\n\nimport type { NewChatAnnotation } from './chat-annotations';\nimport { useAnnotationSelection } from './use-annotation-selection';\nimport { Button } from '@/ds/components/Button';\nimport { FLOATING_POSITION_METHOD } from '@/ds/primitives/floating';\nimport { usePortalContainer } from '@/ds/primitives/portal-container';\nimport { overlaySurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface AnnotationSelectionToolbarProps {\n containerRef: RefObject<HTMLElement | null>;\n onAnnotate: (annotation: NewChatAnnotation) => void;\n}\n\nconst hasModifier = (event: KeyboardEvent | ReactKeyboardEvent) => event.altKey || event.ctrlKey || event.metaKey;\n\nexport function AnnotationSelectionToolbar({ containerRef, onAnnotate }: AnnotationSelectionToolbarProps) {\n const toolbarRef = useRef<HTMLDivElement>(null);\n const { open, selection, dismiss } = useAnnotationSelection(containerRef, toolbarRef);\n const portalContainer = usePortalContainer();\n const addRef = useRef<HTMLElement>(null);\n const actionsRef = useRef<PopoverPrimitive.Root.Actions>(null);\n const originRef = useRef<HTMLElement>(undefined);\n\n useEffect(() => {\n if (!open) return;\n // Focus sits on the scroller around the transcript, outside anything this component renders.\n const onKeyDown = (event: KeyboardEvent) => {\n const add = addRef.current;\n const transcript = containerRef.current;\n const { target } = event;\n if (!add || !transcript || hasModifier(event)) return;\n const holdsTranscript = target instanceof HTMLElement && target !== document.body && target.contains(transcript);\n if (event.key !== 'Tab' || event.shiftKey || !holdsTranscript) return;\n add.focus();\n if (document.activeElement !== add) {\n actionsRef.current?.close();\n return;\n }\n event.preventDefault();\n originRef.current = target;\n };\n document.addEventListener('keydown', onKeyDown);\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n originRef.current = undefined;\n };\n }, [open, containerRef]);\n\n // Without a trigger Base UI cannot route focus out of the toolbar, so it goes back to the scroller it came from.\n const returnFocus = (event: ReactKeyboardEvent) => {\n const origin = originRef.current;\n if (!origin || hasModifier(event)) return;\n if (event.key !== 'Tab' && event.key !== 'Escape') return;\n if (event.key === 'Tab') {\n event.preventDefault();\n actionsRef.current?.close();\n }\n origin.focus();\n };\n\n const addToChat = () => {\n if (!selection) return;\n // Cleared first: the consumer usually focuses its composer next, and that must keep its caret.\n document.getSelection()?.removeAllRanges();\n dismiss();\n onAnnotate({ text: selection.text, source: selection.source });\n };\n\n return (\n <PopoverPrimitive.Root\n actionsRef={actionsRef}\n open={open}\n onOpenChange={next => {\n if (!next) dismiss();\n }}\n >\n <PopoverPrimitive.Portal container={portalContainer}>\n <PopoverPrimitive.Positioner\n anchor={selection?.anchor}\n side=\"top\"\n align=\"start\"\n sideOffset={8}\n collisionPadding={8}\n positionMethod={FLOATING_POSITION_METHOD}\n className=\"z-50 outline-none data-[anchor-hidden]:invisible\"\n >\n <PopoverPrimitive.Popup\n ref={toolbarRef}\n role=\"toolbar\"\n aria-label=\"Selected text\"\n initialFocus={false}\n finalFocus={false}\n // A press here must not collapse the selection it acts on.\n onMouseDown={event => event.preventDefault()}\n data-slot=\"annotation-selection-toolbar\"\n className={cn(\n 'flex origin-(--transform-origin) items-center rounded-full p-1 focus-visible:outline-hidden',\n overlaySurfaceStyle,\n 'motion-safe:data-[closed]:animate-out motion-safe:data-[closed]:fade-out-0 motion-safe:data-[closed]:zoom-out-95',\n 'motion-safe:data-[open]:animate-in motion-safe:data-[open]:fade-in-0 motion-safe:data-[open]:zoom-in-95',\n )}\n >\n <Button\n ref={addRef}\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n icon={<TextQuote />}\n onClick={addToChat}\n onKeyDown={returnFocus}\n >\n Add to chat\n </Button>\n </PopoverPrimitive.Popup>\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n );\n}\n","import { AnnotationMarkers } from './annotation-markers';\nimport { AnnotationSelectionToolbar } from './annotation-selection-toolbar';\nimport { useChatAnnotations } from './chat-annotations';\nimport { useChatShellRegions } from '@/ds/components/ChatShell/chat-shell-context';\n\n/**\n * Everything annotations add to a transcript, wired to `ChatAnnotationsProvider`: Add to chat over\n * selected text, and the numbered comment bubbles of what was added. Render it inside\n * `ChatShell.Transcript`; adding an annotation focuses the `ComposerInput` in `ChatShell.Dock`.\n */\nexport function TranscriptAnnotations() {\n const { transcriptRef, composerInputRef } = useChatShellRegions();\n const { annotations, addAnnotation, removeAnnotation, setAnnotationComment } = useChatAnnotations();\n\n return (\n <>\n <AnnotationMarkers\n containerRef={transcriptRef}\n annotations={annotations}\n onRemove={removeAnnotation}\n onCommentChange={setAnnotationComment}\n />\n <AnnotationSelectionToolbar\n containerRef={transcriptRef}\n onAnnotate={annotation => {\n addAnnotation(annotation);\n composerInputRef.current?.focus();\n }}\n />\n </>\n );\n}\n","import { TextQuote, X } from 'lucide-react';\nimport { useState } from 'react';\n\nimport { rangeFromSource } from './annotatable-selection';\nimport { AnnotationNumber } from './annotation-number';\nimport { visibleComment } from './chat-annotations';\nimport type { ChatAnnotation } from './chat-annotations';\nimport { Button } from '@/ds/components/Button';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/ds/components/Popover';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { pluralize } from '@/lib/string';\nimport { cn } from '@/lib/utils';\n\nexport interface ComposerAnnotationListProps {\n annotations: readonly ChatAnnotation[];\n onRemove: (id: string) => void;\n}\n\nfunction revealSource({ source }: ChatAnnotation): boolean {\n const target = rangeFromSource(source)?.startContainer.parentElement;\n if (!target) return false;\n target.scrollIntoView({ block: 'center', behavior: 'smooth' });\n return true;\n}\n\nexport function ComposerAnnotationList({ annotations, onRemove }: ComposerAnnotationListProps) {\n const [open, setOpen] = useState(false);\n\n return (\n <div data-slot=\"composer-annotations\" className=\"flex px-2 pt-2\">\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger type=\"button\" size=\"sm\">\n <TextQuote aria-hidden=\"true\" />\n {pluralize(annotations.length, 'annotation')}\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n side=\"top\"\n className=\"flex max-h-(--available-height) w-80 max-w-[calc(100vw-2rem)] flex-col gap-1 p-1.5\"\n >\n <ol aria-label=\"Annotations\" className=\"flex min-h-0 flex-col overflow-y-auto\">\n {annotations.map((annotation, index) => {\n const comment = visibleComment(annotation);\n return (\n <li key={annotation.id} className=\"flex items-start gap-2 rounded-lg p-1.5\">\n <AnnotationNumber className=\"mt-px\">{index + 1}</AnnotationNumber>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <button\n type=\"button\"\n title=\"Show in chat\"\n className={cn(\n 'line-clamp-3 cursor-pointer rounded-xs text-left text-body-sm whitespace-pre-line text-muted-foreground hover:text-foreground',\n focusRing,\n )}\n onClick={() => {\n if (revealSource(annotation)) setOpen(false);\n }}\n >\n {annotation.text}\n </button>\n {comment && (\n <p className=\"line-clamp-2 text-body-sm whitespace-pre-line text-foreground\">{comment}</p>\n )}\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n className=\"-my-1\"\n tooltip={`Remove annotation ${index + 1}`}\n onClick={() => onRemove(annotation.id)}\n >\n <X />\n </Button>\n </li>\n );\n })}\n </ol>\n {annotations.length > 1 && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"shrink-0 self-end\"\n onClick={() => {\n for (const annotation of annotations) onRemove(annotation.id);\n }}\n >\n Remove all\n </Button>\n )}\n </PopoverContent>\n </Popover>\n </div>\n );\n}\n","import { useChatAnnotations } from './chat-annotations';\nimport { ComposerAnnotationList } from './composer-annotation-list';\n\n/**\n * The waiting annotations as one chip at the top of `ComposerBox`, wired to\n * `ChatAnnotationsProvider`. Renders nothing while none is waiting.\n */\nexport function ComposerAnnotations() {\n const { annotations, removeAnnotation } = useChatAnnotations();\n if (annotations.length === 0) return null;\n return <ComposerAnnotationList annotations={annotations} onRemove={removeAnnotation} />;\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ask_user = require("../../ask-user-C1p2PEYe.cjs");
2
+ const require_ask_user = require("../../ask-user-DcnUNMM5.cjs");
3
3
  exports.AskUser = require_ask_user.AskUser;
4
4
  exports.AskUserBody = require_ask_user.AskUserBody;
5
5
  exports.AskUserContainer = require_ask_user.AskUserContainer;
@@ -1 +1 @@
1
- export { t as AskUser, c as AskUserBody, c as Body, l as AskUserContainer, r as AskUserCustomAnswer, r as CustomAnswer, u as AskUserLabel, i as AskUserOptionItem, i as Option, d as AskUserOptionRow, a as AskUserOptions, a as Options, f as AskUserOutput, f as Output, p as AskUserPending, p as Pending, m as AskUserQuestion, m as Question, n as AskUserRoot, n as Root, o as AskUserSubmit, o as Submit, s as AskUserTextAnswer, s as TextAnswer } from "../../ask-user-DPznrqGO.js";
1
+ export { t as AskUser, c as AskUserBody, c as Body, l as AskUserContainer, r as AskUserCustomAnswer, r as CustomAnswer, u as AskUserLabel, i as AskUserOptionItem, i as Option, d as AskUserOptionRow, a as AskUserOptions, a as Options, f as AskUserOutput, f as Output, p as AskUserPending, p as Pending, m as AskUserQuestion, m as Question, n as AskUserRoot, n as Root, o as AskUserSubmit, o as Submit, s as AskUserTextAnswer, s as TextAnswer } from "../../ask-user-D4ezQ6pt.js";
@@ -1,12 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_utils = require("../../utils-uDc1ofX1.cjs");
2
+ const require_Badge = require("../../Badge-DqaMg7Gy.cjs");
3
+ const require_Button = require("../../Button-BfICfyxD.cjs");
4
+ const require_components_CollapsibleBox = require("../CollapsibleBox.cjs.js");
5
+ const require_MarkdownRenderer = require("../../MarkdownRenderer-CUYpmuPh.cjs");
6
+ const require_Txt = require("../../Txt-_00wWxTd.cjs");
3
7
  const require_icons_Icon = require("../../icons/Icon.cjs.js");
4
- const require_Button = require("../../Button-DLcMcuUL.cjs");
5
- const require_Txt = require("../../Txt-BnoSqxKE.cjs");
6
8
  const require_hooks_use_copy_to_clipboard = require("../../hooks/use-copy-to-clipboard.cjs.js");
7
- const require_Badge = require("../../Badge-DZ6r6bcw.cjs");
8
- const require_MarkdownRenderer = require("../../MarkdownRenderer-y65WGBhC.cjs");
9
- const require_components_CollapsibleBox = require("../CollapsibleBox.cjs.js");
9
+ const require_utils = require("../../utils-uDc1ofX1.cjs");
10
10
  let react = require("react");
11
11
  let react_jsx_runtime = require("react/jsx-runtime");
12
12
  let lucide_react = require("lucide-react");
@@ -1,11 +1,11 @@
1
- import { t as cn } from "../../utils-DQx8TpNT.js";
1
+ import { t as Badge } from "../../Badge-C7NnqmMx.js";
2
+ import { t as Button } from "../../Button-Bi7aXd_G.js";
3
+ import { CollapsibleBox, useCollapsibleBox } from "../CollapsibleBox.es.js";
4
+ import { t as MarkdownRenderer } from "../../MarkdownRenderer-CY8LGt-l.js";
5
+ import { t as Txt } from "../../Txt-5efBsb2p.js";
2
6
  import { Icon } from "../../icons/Icon.es.js";
3
- import { t as Button } from "../../Button-CLXTbAY8.js";
4
- import { t as Txt } from "../../Txt-BM6TVV_c.js";
5
7
  import { useCopyToClipboard } from "../../hooks/use-copy-to-clipboard.es.js";
6
- import { t as Badge } from "../../Badge-aVu5iGAF.js";
7
- import { t as MarkdownRenderer } from "../../MarkdownRenderer-CI30RqdB.js";
8
- import { CollapsibleBox, useCollapsibleBox } from "../CollapsibleBox.es.js";
8
+ import { t as cn } from "../../utils-DQx8TpNT.js";
9
9
  import { createContext, useContext } from "react";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { CheckIcon, ClipboardList, CopyIcon, Maximize2, Minimize2 } from "lucide-react";
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_utils = require("../../utils-uDc1ofX1.cjs");
3
+ const require_scroll_area = require("../../scroll-area-BU_TorPW.cjs");
4
+ const require_tooltip = require("../../tooltip-BsExuMO8.cjs");
5
+ const require_Txt = require("../../Txt-_00wWxTd.cjs");
3
6
  const require_primitives_raised_surface = require("../../primitives/raised-surface.cjs.js");
4
- const require_tooltip = require("../../tooltip-BiRLT3Th.cjs");
5
7
  const require_primitives_transitions = require("../../primitives/transitions.cjs.js");
6
- const require_scroll_area = require("../../scroll-area-BP4gPZ4G.cjs");
7
- const require_Txt = require("../../Txt-BnoSqxKE.cjs");
8
8
  let react = require("react");
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
10
  let lucide_react = require("lucide-react");
@@ -322,7 +322,7 @@ var TaskListRow = ({ task, className, style, ...props }) => /* @__PURE__ */ (0,
322
322
  })]
323
323
  });
324
324
  var LIST_INSET_Y = 10;
325
- var edgeFades = "mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black_40%,transparent),linear-gradient(to_top,black_40%,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]";
325
+ var edgeFades = "mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black,transparent),linear-gradient(to_top,black,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]";
326
326
  var edgeFadesWhenScrolled = "data-[overflow-y-end]:[--fade-bottom:2rem] data-[overflow-y-start]:[--fade-top:2rem]";
327
327
  var focusedTaskIndex = (tasks) => {
328
328
  const activeIndex = tasks.findIndex((task) => task.status === "in_progress");
@@ -1 +1 @@
1
- {"version":3,"file":"task-list.cjs.js","names":["cn","useId","useRef","useEffectEvent","cn","raisedSurfaceStyle","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","Txt","useState","useId","ScrollArea","ScrollAreaViewport","transitions","focusRing","ChevronDown"],"sources":["../../../src/ds/components/ai/task-list/task-graph-node.ts","../../../src/ds/components/ai/task-list/task-graph.tsx","../../../src/ds/components/ai/task-list/use-focused-row-scroll.ts","../../../src/ds/components/ai/task-list/task-list.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\ntype TaskStatus = TaskItem['status'];\n\nexport const TASK_ROW_HEIGHT = 28;\nexport const TASK_GRAPH_MOTION_MS = 600;\n\n/* One timing for nodes and lines, so a line end never detaches from its node mid-move. */\nexport const taskGraphMotion = 'duration-[600ms] ease-(--resize-ease) motion-reduce:transition-none';\n\n/* left-0.5 centres the 12px node on the trunk (x=8); translate-x-4 lands it on the lane (x=24). */\nexport const taskGraphNodeClass = 'absolute top-1/2 left-0.5 -translate-y-1/2 transition-[translate]';\nexport const taskGraphLaneShift: Record<TaskStatus, string> = {\n completed: 'translate-x-0',\n in_progress: 'translate-x-4',\n pending: 'translate-x-0',\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { useId } from 'react';\nimport { TASK_ROW_HEIGHT, taskGraphMotion } from './task-graph-node';\nimport { cn } from '@/lib/utils';\n\ntype TaskStatus = TaskItem['status'];\n\nconst TRUNK_X = 8;\nconst LANE_X = 24;\n\nconst laneX = (status: TaskStatus, singleLane: boolean) => (status === 'in_progress' && !singleLane ? LANE_X : TRUNK_X);\nconst rowCenter = (index: number) => index * TASK_ROW_HEIGHT + TASK_ROW_HEIGHT / 2;\n\nconst ink: Record<TaskStatus, string> = {\n completed: 'var(--success-indicator)',\n in_progress: 'var(--warning-indicator)',\n pending: 'var(--border-strong)',\n};\n\nconst connectorPathData = (upper: TaskStatus, lower: TaskStatus, index: number, singleLane: boolean) => {\n const fromY = rowCenter(index);\n const toY = rowCenter(index + 1);\n const midY = (fromY + toY) / 2;\n const fromX = laneX(upper, singleLane);\n const toX = laneX(lower, singleLane);\n return `M ${fromX} ${fromY} C ${fromX} ${midY} ${toX} ${midY} ${toX} ${toY}`;\n};\n\ninterface TaskGraphSegmentProps {\n upper: TaskStatus;\n lower: TaskStatus;\n index: number;\n graphId: string;\n singleLane: boolean;\n}\n\nconst TaskGraphSegment = ({ upper, lower, index, graphId, singleLane }: TaskGraphSegmentProps) => {\n const pathData = connectorPathData(upper, lower, index, singleLane);\n const d = `path(\"${pathData}\")`;\n const reached = upper !== 'pending' && lower !== 'pending';\n const touchesActive = upper === 'in_progress' || lower === 'in_progress';\n\n return (\n <g>\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n mask={`url(#${graphId}-future)`}\n className={cn('transition-[d]', taskGraphMotion)}\n style={{ d, stroke: ink.pending }}\n />\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n pathLength={1}\n strokeDasharray=\"1 1\"\n className={cn('transition-[d,stroke-dashoffset,stroke]', taskGraphMotion)}\n style={{ d, strokeDashoffset: reached ? 0 : 1, stroke: touchesActive ? ink.in_progress : ink.completed }}\n />\n </g>\n );\n};\n\ninterface TaskGraphLinesProps {\n statuses: TaskStatus[];\n singleLane?: boolean;\n}\n\nexport const TaskGraphLines = ({ statuses, singleLane = false }: TaskGraphLinesProps) => {\n const graphId = `task-graph${useId().replace(/[^a-zA-Z0-9]/g, '')}`;\n const height = statuses.length * TASK_ROW_HEIGHT;\n const maskBox = { x: -8, y: 0, width: LANE_X + 24, height };\n\n return (\n <svg\n aria-hidden\n width={LANE_X + 8}\n height={height}\n className=\"pointer-events-none absolute top-0 left-0 overflow-visible\"\n >\n <defs>\n <linearGradient id={`${graphId}-fade`} gradientUnits=\"userSpaceOnUse\" x1={0} x2={0} y1={0} y2={height}>\n <stop offset=\"0\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity={0.15} />\n </linearGradient>\n <mask id={`${graphId}-future`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-fade)`} />\n </mask>\n <linearGradient id={`${graphId}-gap`} x1={0} x2={0} y1={0} y2={1}>\n <stop offset=\"0.2\" stopColor=\"white\" stopOpacity={0} />\n <stop offset=\"0.4\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.6\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.8\" stopColor=\"white\" stopOpacity={0} />\n </linearGradient>\n <pattern\n id={`${graphId}-gaps`}\n patternUnits=\"userSpaceOnUse\"\n x={maskBox.x}\n y={TASK_ROW_HEIGHT / 2}\n width={maskBox.width}\n height={TASK_ROW_HEIGHT}\n >\n <rect width={maskBox.width} height={TASK_ROW_HEIGHT} fill={`url(#${graphId}-gap)`} />\n </pattern>\n <mask id={`${graphId}-between-nodes`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-gaps)`} />\n </mask>\n </defs>\n <g mask={`url(#${graphId}-between-nodes)`}>\n {statuses.map((status, index) => {\n const next = statuses[index + 1];\n if (!next) return null;\n return (\n <TaskGraphSegment\n key={index}\n upper={status}\n lower={next}\n index={index}\n graphId={graphId}\n singleLane={singleLane}\n />\n );\n })}\n </g>\n </svg>\n );\n};\n","import { useEffect, useEffectEvent, useRef } from 'react';\nimport { TASK_GRAPH_MOTION_MS, TASK_ROW_HEIGHT } from './task-graph-node';\n\nconst prefersReducedMotion = () => window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n\nconst easeOutQuint = (progress: number) => 1 - (1 - progress) ** 5;\n\n/* Scroll position is not a CSS property, so the glide is tweened to match the max-height transition. */\nconst glideScrollTop = (viewport: HTMLElement, top: number) => {\n const start = viewport.scrollTop;\n const distance = top - start;\n if (prefersReducedMotion()) {\n viewport.scrollTo({ top });\n return () => {};\n }\n let frame = 0;\n const startedAt = performance.now();\n const step = (now: number) => {\n const progress = Math.min((now - startedAt) / TASK_GRAPH_MOTION_MS, 1);\n viewport.scrollTo({ top: start + distance * easeOutQuint(progress) });\n if (progress < 1) frame = requestAnimationFrame(step);\n };\n frame = requestAnimationFrame(step);\n return () => cancelAnimationFrame(frame);\n};\n\nconst revealedScrollTop = (rowIndex: number, currentTop: number, windowHeight: number) => {\n const rowTop = rowIndex * TASK_ROW_HEIGHT;\n const rowBottom = rowTop + TASK_ROW_HEIGHT;\n if (rowTop < currentTop) return rowTop;\n if (rowBottom > currentTop + windowHeight) return rowBottom - windowHeight;\n return currentTop;\n};\n\nconst EXPANDED_VISIBLE_ROWS = 4.5;\n\nexport const taskWindowHeight = (rowCount: number, open: boolean) =>\n open ? Math.min(rowCount, EXPANDED_VISIBLE_ROWS) * TASK_ROW_HEIGHT : TASK_ROW_HEIGHT;\n\ninterface ScrollTarget {\n focusIndex: number;\n windowHeight: number;\n open: boolean;\n followFocus: boolean;\n}\n\nconst wantedScrollTop = (currentTop: number, { focusIndex, windowHeight, open, followFocus }: ScrollTarget) => {\n if (!open) return focusIndex * TASK_ROW_HEIGHT;\n if (!followFocus) return currentTop;\n return revealedScrollTop(focusIndex, currentTop, windowHeight);\n};\n\nconst clampScrollTop = (top: number, contentHeight: number, windowHeight: number) =>\n Math.min(Math.max(top, 0), Math.max(contentHeight - windowHeight, 0));\n\ninterface FocusedRowScrollOptions {\n focusIndex: number;\n rowCount: number;\n open: boolean;\n followFocus: boolean;\n}\n\nexport const useFocusedRowScroll = ({ focusIndex, rowCount, open, followFocus }: FocusedRowScrollOptions) => {\n const viewportRef = useRef<HTMLDivElement>(null);\n const cancelGlide = useRef<() => void>(undefined);\n const placedOnce = useRef(false);\n\n const glideForOpen = (nextOpen: boolean) => {\n const viewport = viewportRef.current;\n if (!viewport || typeof viewport.scrollTo !== 'function') return;\n const windowHeight = taskWindowHeight(rowCount, nextOpen);\n const wantedTop = wantedScrollTop(viewport.scrollTop, { focusIndex, windowHeight, open: nextOpen, followFocus });\n const top = clampScrollTop(wantedTop, rowCount * TASK_ROW_HEIGHT, windowHeight);\n cancelGlide.current?.();\n if (!placedOnce.current) {\n placedOnce.current = true;\n viewport.scrollTo({ top });\n return;\n }\n if (top !== viewport.scrollTop) cancelGlide.current = glideScrollTop(viewport, top);\n };\n\n const followFocusedRow = useEffectEvent(() => glideForOpen(open));\n\n useEffect(() => {\n followFocusedRow();\n return () => cancelGlide.current?.();\n }, [focusIndex]);\n\n return { viewportRef, glideForOpen };\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { ChevronDown } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { TaskGraphLines } from './task-graph';\nimport { TASK_ROW_HEIGHT, taskGraphLaneShift, taskGraphMotion, taskGraphNodeClass } from './task-graph-node';\nimport { taskWindowHeight, useFocusedRowScroll } from './use-focused-row-scroll';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { focusRing, transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TaskListItem = TaskItem;\n\nexport const TaskListContainer = ({ className, ...props }: ComponentProps<'section'>) => (\n <section className={cn(raisedSurfaceStyle, 'overflow-hidden rounded-2xl', className)} {...props} />\n);\n\nconst barColors: Record<TaskListItem['status'], string> = {\n completed: 'bg-success-indicator',\n in_progress: 'bg-warning-indicator',\n pending: 'bg-fill-hover',\n};\n\nexport interface TaskListProgressProps extends Omit<ComponentProps<'span'>, 'children'> {\n tasks: TaskListItem[];\n}\n\nexport const TaskListProgress = ({ tasks, className, ...props }: TaskListProgressProps) => {\n const completed = tasks.filter(task => task.status === 'completed').length;\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"progressbar\"\n aria-label=\"Task completion\"\n aria-valuemin={0}\n aria-valuemax={tasks.length}\n aria-valuenow={completed}\n className={cn('ml-auto flex h-4 w-fit max-w-40 shrink-0 items-center gap-1 overflow-hidden', className)}\n {...props}\n >\n {tasks.map(task => (\n <span\n key={task.id}\n className={cn(\n 'h-full w-0.5 min-w-px shrink rounded-full transition-colors',\n taskGraphMotion,\n barColors[task.status],\n )}\n />\n ))}\n </span>\n }\n />\n <TooltipContent>\n {completed}/{tasks.length} completed\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nconst statusLabels: Record<TaskListItem['status'], string> = {\n completed: 'Completed',\n in_progress: 'In progress',\n pending: 'Pending',\n};\n\nconst ringClasses: Record<TaskListItem['status'], string> = {\n completed: 'size-[7px] border-success-indicator bg-card',\n in_progress: 'size-2 border-warning-indicator bg-warning-subtle',\n pending: 'size-1.5 border-muted-foreground/45 bg-card',\n};\n\nexport interface TaskListStatusIconProps extends ComponentProps<'span'> {\n status: TaskListItem['status'];\n}\n\nexport const TaskListStatusIcon = ({ status, className, ...props }: TaskListStatusIconProps) => (\n <span\n role=\"img\"\n aria-label={statusLabels[status]}\n className={cn('grid size-3 shrink-0 place-items-center rounded-full', className)}\n {...props}\n >\n <span\n className={cn(\n 'rounded-full border-[1.5px] transition-[width,height,border-color,background-color]',\n taskGraphMotion,\n ringClasses[status],\n )}\n />\n </span>\n);\n\nconst TaskListLabel = ({ task }: { task: TaskListItem }) => {\n const active = task.status === 'in_progress';\n return (\n <Txt as=\"span\" variant=\"caption\" className=\"grid min-w-0\">\n <span\n aria-hidden={active}\n className={cn(\n 'col-start-1 row-start-1 truncate transition-[opacity,color,translate,filter]',\n taskGraphMotion,\n task.status === 'pending' ? 'text-muted-foreground/70' : 'text-muted-foreground',\n active ? '-translate-y-1 opacity-0 blur-[2px]' : 'translate-y-0 opacity-100 blur-none',\n )}\n >\n <span\n className={cn(\n 'bg-[linear-gradient(currentColor,currentColor)] bg-no-repeat transition-[background-size]',\n taskGraphMotion,\n task.status === 'completed'\n ? 'bg-size-[100%_1px] bg-position-[left_55%]'\n : 'bg-size-[0%_1px] bg-position-[right_55%]',\n )}\n >\n {task.content}\n </span>\n </span>\n <span\n aria-hidden={!active}\n className={cn(\n 'col-start-1 row-start-1 truncate bg-linear-to-r from-warning-indicator to-foreground to-30% bg-size-[200%_100%] bg-clip-text font-medium text-transparent transition-[opacity,translate,filter,background-position]',\n taskGraphMotion,\n active\n ? 'translate-y-0 bg-position-[0%_0] opacity-100 blur-none'\n : 'translate-y-1 bg-position-[100%_0] opacity-0 blur-[2px]',\n )}\n >\n {task.activeForm}\n </span>\n </Txt>\n );\n};\n\nexport interface TaskListRowProps extends ComponentProps<'li'> {\n task: TaskListItem;\n}\n\nexport const TaskListRow = ({ task, className, style, ...props }: TaskListRowProps) => (\n <li className={cn('relative flex items-center', className)} style={{ height: TASK_ROW_HEIGHT, ...style }} {...props}>\n <TaskListStatusIcon\n status={task.status}\n className={cn(\n taskGraphNodeClass,\n taskGraphMotion,\n taskGraphLaneShift[task.status],\n 'group-data-collapsed/task-list:translate-x-0',\n )}\n />\n <span\n className={cn(\n 'flex min-w-0 transition-[padding-left]',\n taskGraphMotion,\n task.status === 'in_progress' ? 'pl-10 group-data-collapsed/task-list:pl-6' : 'pl-6',\n )}\n >\n <TaskListLabel task={task} />\n </span>\n </li>\n);\n\nconst LIST_INSET_Y = 10;\n\n/* A full layer minus one fade per edge; the fades are sized by mask-size, so their depth animates. */\nconst edgeFades =\n 'mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black_40%,transparent),linear-gradient(to_top,black_40%,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]';\nconst edgeFadesWhenScrolled = 'data-[overflow-y-end]:[--fade-bottom:2rem] data-[overflow-y-start]:[--fade-top:2rem]';\n\nconst focusedTaskIndex = (tasks: TaskListItem[]) => {\n const activeIndex = tasks.findIndex(task => task.status === 'in_progress');\n if (activeIndex >= 0) return activeIndex;\n const pendingIndex = tasks.findIndex(task => task.status === 'pending');\n if (pendingIndex >= 0) return pendingIndex;\n return tasks.length - 1;\n};\n\nexport interface TaskListProps extends Omit<ComponentProps<typeof TaskListContainer>, 'children'> {\n tasks: TaskListItem[];\n hideWhenComplete?: boolean;\n scrollActiveIntoView?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const TaskList = ({\n tasks,\n hideWhenComplete = true,\n scrollActiveIntoView = true,\n defaultOpen = true,\n className,\n ...props\n}: TaskListProps) => {\n const [open, setOpen] = useState(defaultOpen);\n const listId = useId();\n const completed = tasks.filter(task => task.status === 'completed').length;\n const total = tasks.length;\n const focusIndex = focusedTaskIndex(tasks);\n const windowHeight = taskWindowHeight(total, open);\n const { viewportRef, glideForOpen } = useFocusedRowScroll({\n focusIndex,\n rowCount: total,\n open,\n followFocus: scrollActiveIntoView,\n });\n\n const changeOpen = (nextOpen: boolean) => {\n setOpen(nextOpen);\n glideForOpen(nextOpen);\n };\n\n if (total === 0 || (hideWhenComplete && completed === total)) return null;\n\n return (\n <TaskListContainer\n aria-label=\"Task list\"\n data-testid=\"task-list\"\n data-collapsed={open ? undefined : ''}\n onClick={open ? undefined : () => changeOpen(true)}\n className={cn('group/task-list relative', !open && 'cursor-pointer', className)}\n {...props}\n >\n <ScrollArea id={listId} maxHeight={`${windowHeight + 2 * LIST_INSET_Y}px`} mask={false}>\n <ScrollAreaViewport\n ref={viewportRef}\n className={cn(\n edgeFades,\n 'transition-[max-height,mask-size]',\n taskGraphMotion,\n open ? edgeFadesWhenScrolled : 'overflow-hidden!',\n )}\n >\n <div className=\"px-3\" style={{ paddingBlock: LIST_INSET_Y }}>\n <div className=\"relative\">\n <TaskGraphLines statuses={tasks.map(task => task.status)} singleLane={!open} />\n <ul>\n {tasks.map((task, index) => {\n const clippedAway = !open && index !== focusIndex;\n return <TaskListRow key={task.id} task={task} inert={clippedAway} aria-hidden={clippedAway} />;\n })}\n </ul>\n </div>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n <div className=\"absolute top-2.5 right-3 flex h-7 items-center bg-linear-to-r from-transparent to-card to-[1.5rem] pl-6\">\n <div\n inert={open}\n aria-hidden={open}\n className={cn(\n 'grid transition-[grid-template-columns,opacity]',\n taskGraphMotion,\n open ? 'grid-cols-[0fr] opacity-0' : 'grid-cols-[1fr] opacity-100',\n )}\n >\n <div className=\"min-w-0 overflow-hidden\">\n <TaskListProgress tasks={tasks} className=\"mr-2\" />\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={open ? 'Collapse tasks' : 'Show all tasks'}\n aria-expanded={open}\n aria-controls={listId}\n onClick={event => {\n event.stopPropagation();\n changeOpen(!open);\n }}\n className={cn(\n 'grid size-6 cursor-pointer place-items-center rounded-md text-muted-foreground hover:text-foreground',\n transitions.colors,\n focusRing,\n !open && 'group-hover/task-list:text-foreground',\n )}\n >\n <ChevronDown\n className={cn('size-3.5 transition-[rotate]', taskGraphMotion, open ? 'rotate-180' : 'rotate-0')}\n />\n </button>\n </div>\n </TaskListContainer>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"task-list.cjs.js","names":["cn","useId","useRef","useEffectEvent","cn","raisedSurfaceStyle","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent","Txt","useState","useId","ScrollArea","ScrollAreaViewport","transitions","focusRing","ChevronDown"],"sources":["../../../src/ds/components/ai/task-list/task-graph-node.ts","../../../src/ds/components/ai/task-list/task-graph.tsx","../../../src/ds/components/ai/task-list/use-focused-row-scroll.ts","../../../src/ds/components/ai/task-list/task-list.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\ntype TaskStatus = TaskItem['status'];\n\nexport const TASK_ROW_HEIGHT = 28;\nexport const TASK_GRAPH_MOTION_MS = 600;\n\n/* One timing for nodes and lines, so a line end never detaches from its node mid-move. */\nexport const taskGraphMotion = 'duration-[600ms] ease-(--resize-ease) motion-reduce:transition-none';\n\n/* left-0.5 centres the 12px node on the trunk (x=8); translate-x-4 lands it on the lane (x=24). */\nexport const taskGraphNodeClass = 'absolute top-1/2 left-0.5 -translate-y-1/2 transition-[translate]';\nexport const taskGraphLaneShift: Record<TaskStatus, string> = {\n completed: 'translate-x-0',\n in_progress: 'translate-x-4',\n pending: 'translate-x-0',\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { useId } from 'react';\nimport { TASK_ROW_HEIGHT, taskGraphMotion } from './task-graph-node';\nimport { cn } from '@/lib/utils';\n\ntype TaskStatus = TaskItem['status'];\n\nconst TRUNK_X = 8;\nconst LANE_X = 24;\n\nconst laneX = (status: TaskStatus, singleLane: boolean) => (status === 'in_progress' && !singleLane ? LANE_X : TRUNK_X);\nconst rowCenter = (index: number) => index * TASK_ROW_HEIGHT + TASK_ROW_HEIGHT / 2;\n\nconst ink: Record<TaskStatus, string> = {\n completed: 'var(--success-indicator)',\n in_progress: 'var(--warning-indicator)',\n pending: 'var(--border-strong)',\n};\n\nconst connectorPathData = (upper: TaskStatus, lower: TaskStatus, index: number, singleLane: boolean) => {\n const fromY = rowCenter(index);\n const toY = rowCenter(index + 1);\n const midY = (fromY + toY) / 2;\n const fromX = laneX(upper, singleLane);\n const toX = laneX(lower, singleLane);\n return `M ${fromX} ${fromY} C ${fromX} ${midY} ${toX} ${midY} ${toX} ${toY}`;\n};\n\ninterface TaskGraphSegmentProps {\n upper: TaskStatus;\n lower: TaskStatus;\n index: number;\n graphId: string;\n singleLane: boolean;\n}\n\nconst TaskGraphSegment = ({ upper, lower, index, graphId, singleLane }: TaskGraphSegmentProps) => {\n const pathData = connectorPathData(upper, lower, index, singleLane);\n const d = `path(\"${pathData}\")`;\n const reached = upper !== 'pending' && lower !== 'pending';\n const touchesActive = upper === 'in_progress' || lower === 'in_progress';\n\n return (\n <g>\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n mask={`url(#${graphId}-future)`}\n className={cn('transition-[d]', taskGraphMotion)}\n style={{ d, stroke: ink.pending }}\n />\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n pathLength={1}\n strokeDasharray=\"1 1\"\n className={cn('transition-[d,stroke-dashoffset,stroke]', taskGraphMotion)}\n style={{ d, strokeDashoffset: reached ? 0 : 1, stroke: touchesActive ? ink.in_progress : ink.completed }}\n />\n </g>\n );\n};\n\ninterface TaskGraphLinesProps {\n statuses: TaskStatus[];\n singleLane?: boolean;\n}\n\nexport const TaskGraphLines = ({ statuses, singleLane = false }: TaskGraphLinesProps) => {\n const graphId = `task-graph${useId().replace(/[^a-zA-Z0-9]/g, '')}`;\n const height = statuses.length * TASK_ROW_HEIGHT;\n const maskBox = { x: -8, y: 0, width: LANE_X + 24, height };\n\n return (\n <svg\n aria-hidden\n width={LANE_X + 8}\n height={height}\n className=\"pointer-events-none absolute top-0 left-0 overflow-visible\"\n >\n <defs>\n <linearGradient id={`${graphId}-fade`} gradientUnits=\"userSpaceOnUse\" x1={0} x2={0} y1={0} y2={height}>\n <stop offset=\"0\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity={0.15} />\n </linearGradient>\n <mask id={`${graphId}-future`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-fade)`} />\n </mask>\n <linearGradient id={`${graphId}-gap`} x1={0} x2={0} y1={0} y2={1}>\n <stop offset=\"0.2\" stopColor=\"white\" stopOpacity={0} />\n <stop offset=\"0.4\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.6\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.8\" stopColor=\"white\" stopOpacity={0} />\n </linearGradient>\n <pattern\n id={`${graphId}-gaps`}\n patternUnits=\"userSpaceOnUse\"\n x={maskBox.x}\n y={TASK_ROW_HEIGHT / 2}\n width={maskBox.width}\n height={TASK_ROW_HEIGHT}\n >\n <rect width={maskBox.width} height={TASK_ROW_HEIGHT} fill={`url(#${graphId}-gap)`} />\n </pattern>\n <mask id={`${graphId}-between-nodes`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-gaps)`} />\n </mask>\n </defs>\n <g mask={`url(#${graphId}-between-nodes)`}>\n {statuses.map((status, index) => {\n const next = statuses[index + 1];\n if (!next) return null;\n return (\n <TaskGraphSegment\n key={index}\n upper={status}\n lower={next}\n index={index}\n graphId={graphId}\n singleLane={singleLane}\n />\n );\n })}\n </g>\n </svg>\n );\n};\n","import { useEffect, useEffectEvent, useRef } from 'react';\nimport { TASK_GRAPH_MOTION_MS, TASK_ROW_HEIGHT } from './task-graph-node';\n\nconst prefersReducedMotion = () => window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n\nconst easeOutQuint = (progress: number) => 1 - (1 - progress) ** 5;\n\n/* Scroll position is not a CSS property, so the glide is tweened to match the max-height transition. */\nconst glideScrollTop = (viewport: HTMLElement, top: number) => {\n const start = viewport.scrollTop;\n const distance = top - start;\n if (prefersReducedMotion()) {\n viewport.scrollTo({ top });\n return () => {};\n }\n let frame = 0;\n const startedAt = performance.now();\n const step = (now: number) => {\n const progress = Math.min((now - startedAt) / TASK_GRAPH_MOTION_MS, 1);\n viewport.scrollTo({ top: start + distance * easeOutQuint(progress) });\n if (progress < 1) frame = requestAnimationFrame(step);\n };\n frame = requestAnimationFrame(step);\n return () => cancelAnimationFrame(frame);\n};\n\nconst revealedScrollTop = (rowIndex: number, currentTop: number, windowHeight: number) => {\n const rowTop = rowIndex * TASK_ROW_HEIGHT;\n const rowBottom = rowTop + TASK_ROW_HEIGHT;\n if (rowTop < currentTop) return rowTop;\n if (rowBottom > currentTop + windowHeight) return rowBottom - windowHeight;\n return currentTop;\n};\n\nconst EXPANDED_VISIBLE_ROWS = 4.5;\n\nexport const taskWindowHeight = (rowCount: number, open: boolean) =>\n open ? Math.min(rowCount, EXPANDED_VISIBLE_ROWS) * TASK_ROW_HEIGHT : TASK_ROW_HEIGHT;\n\ninterface ScrollTarget {\n focusIndex: number;\n windowHeight: number;\n open: boolean;\n followFocus: boolean;\n}\n\nconst wantedScrollTop = (currentTop: number, { focusIndex, windowHeight, open, followFocus }: ScrollTarget) => {\n if (!open) return focusIndex * TASK_ROW_HEIGHT;\n if (!followFocus) return currentTop;\n return revealedScrollTop(focusIndex, currentTop, windowHeight);\n};\n\nconst clampScrollTop = (top: number, contentHeight: number, windowHeight: number) =>\n Math.min(Math.max(top, 0), Math.max(contentHeight - windowHeight, 0));\n\ninterface FocusedRowScrollOptions {\n focusIndex: number;\n rowCount: number;\n open: boolean;\n followFocus: boolean;\n}\n\nexport const useFocusedRowScroll = ({ focusIndex, rowCount, open, followFocus }: FocusedRowScrollOptions) => {\n const viewportRef = useRef<HTMLDivElement>(null);\n const cancelGlide = useRef<() => void>(undefined);\n const placedOnce = useRef(false);\n\n const glideForOpen = (nextOpen: boolean) => {\n const viewport = viewportRef.current;\n if (!viewport || typeof viewport.scrollTo !== 'function') return;\n const windowHeight = taskWindowHeight(rowCount, nextOpen);\n const wantedTop = wantedScrollTop(viewport.scrollTop, { focusIndex, windowHeight, open: nextOpen, followFocus });\n const top = clampScrollTop(wantedTop, rowCount * TASK_ROW_HEIGHT, windowHeight);\n cancelGlide.current?.();\n if (!placedOnce.current) {\n placedOnce.current = true;\n viewport.scrollTo({ top });\n return;\n }\n if (top !== viewport.scrollTop) cancelGlide.current = glideScrollTop(viewport, top);\n };\n\n const followFocusedRow = useEffectEvent(() => glideForOpen(open));\n\n useEffect(() => {\n followFocusedRow();\n return () => cancelGlide.current?.();\n }, [focusIndex]);\n\n return { viewportRef, glideForOpen };\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { ChevronDown } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { TaskGraphLines } from './task-graph';\nimport { TASK_ROW_HEIGHT, taskGraphLaneShift, taskGraphMotion, taskGraphNodeClass } from './task-graph-node';\nimport { taskWindowHeight, useFocusedRowScroll } from './use-focused-row-scroll';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { focusRing, transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TaskListItem = TaskItem;\n\nexport const TaskListContainer = ({ className, ...props }: ComponentProps<'section'>) => (\n <section className={cn(raisedSurfaceStyle, 'overflow-hidden rounded-2xl', className)} {...props} />\n);\n\nconst barColors: Record<TaskListItem['status'], string> = {\n completed: 'bg-success-indicator',\n in_progress: 'bg-warning-indicator',\n pending: 'bg-fill-hover',\n};\n\nexport interface TaskListProgressProps extends Omit<ComponentProps<'span'>, 'children'> {\n tasks: TaskListItem[];\n}\n\nexport const TaskListProgress = ({ tasks, className, ...props }: TaskListProgressProps) => {\n const completed = tasks.filter(task => task.status === 'completed').length;\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"progressbar\"\n aria-label=\"Task completion\"\n aria-valuemin={0}\n aria-valuemax={tasks.length}\n aria-valuenow={completed}\n className={cn('ml-auto flex h-4 w-fit max-w-40 shrink-0 items-center gap-1 overflow-hidden', className)}\n {...props}\n >\n {tasks.map(task => (\n <span\n key={task.id}\n className={cn(\n 'h-full w-0.5 min-w-px shrink rounded-full transition-colors',\n taskGraphMotion,\n barColors[task.status],\n )}\n />\n ))}\n </span>\n }\n />\n <TooltipContent>\n {completed}/{tasks.length} completed\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nconst statusLabels: Record<TaskListItem['status'], string> = {\n completed: 'Completed',\n in_progress: 'In progress',\n pending: 'Pending',\n};\n\nconst ringClasses: Record<TaskListItem['status'], string> = {\n completed: 'size-[7px] border-success-indicator bg-card',\n in_progress: 'size-2 border-warning-indicator bg-warning-subtle',\n pending: 'size-1.5 border-muted-foreground/45 bg-card',\n};\n\nexport interface TaskListStatusIconProps extends ComponentProps<'span'> {\n status: TaskListItem['status'];\n}\n\nexport const TaskListStatusIcon = ({ status, className, ...props }: TaskListStatusIconProps) => (\n <span\n role=\"img\"\n aria-label={statusLabels[status]}\n className={cn('grid size-3 shrink-0 place-items-center rounded-full', className)}\n {...props}\n >\n <span\n className={cn(\n 'rounded-full border-[1.5px] transition-[width,height,border-color,background-color]',\n taskGraphMotion,\n ringClasses[status],\n )}\n />\n </span>\n);\n\nconst TaskListLabel = ({ task }: { task: TaskListItem }) => {\n const active = task.status === 'in_progress';\n return (\n <Txt as=\"span\" variant=\"caption\" className=\"grid min-w-0\">\n <span\n aria-hidden={active}\n className={cn(\n 'col-start-1 row-start-1 truncate transition-[opacity,color,translate,filter]',\n taskGraphMotion,\n task.status === 'pending' ? 'text-muted-foreground/70' : 'text-muted-foreground',\n active ? '-translate-y-1 opacity-0 blur-[2px]' : 'translate-y-0 opacity-100 blur-none',\n )}\n >\n <span\n className={cn(\n 'bg-[linear-gradient(currentColor,currentColor)] bg-no-repeat transition-[background-size]',\n taskGraphMotion,\n task.status === 'completed'\n ? 'bg-size-[100%_1px] bg-position-[left_55%]'\n : 'bg-size-[0%_1px] bg-position-[right_55%]',\n )}\n >\n {task.content}\n </span>\n </span>\n <span\n aria-hidden={!active}\n className={cn(\n 'col-start-1 row-start-1 truncate bg-linear-to-r from-warning-indicator to-foreground to-30% bg-size-[200%_100%] bg-clip-text font-medium text-transparent transition-[opacity,translate,filter,background-position]',\n taskGraphMotion,\n active\n ? 'translate-y-0 bg-position-[0%_0] opacity-100 blur-none'\n : 'translate-y-1 bg-position-[100%_0] opacity-0 blur-[2px]',\n )}\n >\n {task.activeForm}\n </span>\n </Txt>\n );\n};\n\nexport interface TaskListRowProps extends ComponentProps<'li'> {\n task: TaskListItem;\n}\n\nexport const TaskListRow = ({ task, className, style, ...props }: TaskListRowProps) => (\n <li className={cn('relative flex items-center', className)} style={{ height: TASK_ROW_HEIGHT, ...style }} {...props}>\n <TaskListStatusIcon\n status={task.status}\n className={cn(\n taskGraphNodeClass,\n taskGraphMotion,\n taskGraphLaneShift[task.status],\n 'group-data-collapsed/task-list:translate-x-0',\n )}\n />\n <span\n className={cn(\n 'flex min-w-0 transition-[padding-left]',\n taskGraphMotion,\n task.status === 'in_progress' ? 'pl-10 group-data-collapsed/task-list:pl-6' : 'pl-6',\n )}\n >\n <TaskListLabel task={task} />\n </span>\n </li>\n);\n\nconst LIST_INSET_Y = 10;\n\n/* A full layer minus one fade per edge; the fades are sized by mask-size, so their depth animates. */\nconst edgeFades =\n 'mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black,transparent),linear-gradient(to_top,black,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]';\nconst edgeFadesWhenScrolled = 'data-[overflow-y-end]:[--fade-bottom:2rem] data-[overflow-y-start]:[--fade-top:2rem]';\n\nconst focusedTaskIndex = (tasks: TaskListItem[]) => {\n const activeIndex = tasks.findIndex(task => task.status === 'in_progress');\n if (activeIndex >= 0) return activeIndex;\n const pendingIndex = tasks.findIndex(task => task.status === 'pending');\n if (pendingIndex >= 0) return pendingIndex;\n return tasks.length - 1;\n};\n\nexport interface TaskListProps extends Omit<ComponentProps<typeof TaskListContainer>, 'children'> {\n tasks: TaskListItem[];\n hideWhenComplete?: boolean;\n scrollActiveIntoView?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const TaskList = ({\n tasks,\n hideWhenComplete = true,\n scrollActiveIntoView = true,\n defaultOpen = true,\n className,\n ...props\n}: TaskListProps) => {\n const [open, setOpen] = useState(defaultOpen);\n const listId = useId();\n const completed = tasks.filter(task => task.status === 'completed').length;\n const total = tasks.length;\n const focusIndex = focusedTaskIndex(tasks);\n const windowHeight = taskWindowHeight(total, open);\n const { viewportRef, glideForOpen } = useFocusedRowScroll({\n focusIndex,\n rowCount: total,\n open,\n followFocus: scrollActiveIntoView,\n });\n\n const changeOpen = (nextOpen: boolean) => {\n setOpen(nextOpen);\n glideForOpen(nextOpen);\n };\n\n if (total === 0 || (hideWhenComplete && completed === total)) return null;\n\n return (\n <TaskListContainer\n aria-label=\"Task list\"\n data-testid=\"task-list\"\n data-collapsed={open ? undefined : ''}\n onClick={open ? undefined : () => changeOpen(true)}\n className={cn('group/task-list relative', !open && 'cursor-pointer', className)}\n {...props}\n >\n <ScrollArea id={listId} maxHeight={`${windowHeight + 2 * LIST_INSET_Y}px`} mask={false}>\n <ScrollAreaViewport\n ref={viewportRef}\n className={cn(\n edgeFades,\n 'transition-[max-height,mask-size]',\n taskGraphMotion,\n open ? edgeFadesWhenScrolled : 'overflow-hidden!',\n )}\n >\n <div className=\"px-3\" style={{ paddingBlock: LIST_INSET_Y }}>\n <div className=\"relative\">\n <TaskGraphLines statuses={tasks.map(task => task.status)} singleLane={!open} />\n <ul>\n {tasks.map((task, index) => {\n const clippedAway = !open && index !== focusIndex;\n return <TaskListRow key={task.id} task={task} inert={clippedAway} aria-hidden={clippedAway} />;\n })}\n </ul>\n </div>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n <div className=\"absolute top-2.5 right-3 flex h-7 items-center bg-linear-to-r from-transparent to-card to-[1.5rem] pl-6\">\n <div\n inert={open}\n aria-hidden={open}\n className={cn(\n 'grid transition-[grid-template-columns,opacity]',\n taskGraphMotion,\n open ? 'grid-cols-[0fr] opacity-0' : 'grid-cols-[1fr] opacity-100',\n )}\n >\n <div className=\"min-w-0 overflow-hidden\">\n <TaskListProgress tasks={tasks} className=\"mr-2\" />\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={open ? 'Collapse tasks' : 'Show all tasks'}\n aria-expanded={open}\n aria-controls={listId}\n onClick={event => {\n event.stopPropagation();\n changeOpen(!open);\n }}\n className={cn(\n 'grid size-6 cursor-pointer place-items-center rounded-md text-muted-foreground hover:text-foreground',\n transitions.colors,\n focusRing,\n !open && 'group-hover/task-list:text-foreground',\n )}\n >\n <ChevronDown\n className={cn('size-3.5 transition-[rotate]', taskGraphMotion, open ? 'rotate-180' : 'rotate-0')}\n />\n </button>\n </div>\n </TaskListContainer>\n );\n};\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { t as cn } from "../../utils-DQx8TpNT.js";
2
+ import { n as ScrollAreaViewport, t as ScrollArea } from "../../scroll-area-9-S7wfSs.js";
3
+ import { i as TooltipTrigger, n as TooltipContent, r as TooltipProvider, t as Tooltip } from "../../tooltip-DJcze2VZ.js";
4
+ import { t as Txt } from "../../Txt-5efBsb2p.js";
2
5
  import { raisedSurfaceStyle } from "../../primitives/raised-surface.es.js";
3
- import { i as TooltipTrigger, n as TooltipContent, r as TooltipProvider, t as Tooltip } from "../../tooltip-HzcLyGtV.js";
4
6
  import { focusRing, transitions } from "../../primitives/transitions.es.js";
5
- import { n as ScrollAreaViewport, t as ScrollArea } from "../../scroll-area-C226l0v0.js";
6
- import { t as Txt } from "../../Txt-BM6TVV_c.js";
7
7
  import { useEffect, useEffectEvent, useId, useRef, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { ChevronDown } from "lucide-react";
@@ -321,7 +321,7 @@ var TaskListRow = ({ task, className, style, ...props }) => /* @__PURE__ */ jsxs
321
321
  })]
322
322
  });
323
323
  var LIST_INSET_Y = 10;
324
- var edgeFades = "mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black_40%,transparent),linear-gradient(to_top,black_40%,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]";
324
+ var edgeFades = "mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black,transparent),linear-gradient(to_top,black,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]";
325
325
  var edgeFadesWhenScrolled = "data-[overflow-y-end]:[--fade-bottom:2rem] data-[overflow-y-start]:[--fade-top:2rem]";
326
326
  var focusedTaskIndex = (tasks) => {
327
327
  const activeIndex = tasks.findIndex((task) => task.status === "in_progress");
@@ -1 +1 @@
1
- {"version":3,"file":"task-list.es.js","names":[],"sources":["../../../src/ds/components/ai/task-list/task-graph-node.ts","../../../src/ds/components/ai/task-list/task-graph.tsx","../../../src/ds/components/ai/task-list/use-focused-row-scroll.ts","../../../src/ds/components/ai/task-list/task-list.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\ntype TaskStatus = TaskItem['status'];\n\nexport const TASK_ROW_HEIGHT = 28;\nexport const TASK_GRAPH_MOTION_MS = 600;\n\n/* One timing for nodes and lines, so a line end never detaches from its node mid-move. */\nexport const taskGraphMotion = 'duration-[600ms] ease-(--resize-ease) motion-reduce:transition-none';\n\n/* left-0.5 centres the 12px node on the trunk (x=8); translate-x-4 lands it on the lane (x=24). */\nexport const taskGraphNodeClass = 'absolute top-1/2 left-0.5 -translate-y-1/2 transition-[translate]';\nexport const taskGraphLaneShift: Record<TaskStatus, string> = {\n completed: 'translate-x-0',\n in_progress: 'translate-x-4',\n pending: 'translate-x-0',\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { useId } from 'react';\nimport { TASK_ROW_HEIGHT, taskGraphMotion } from './task-graph-node';\nimport { cn } from '@/lib/utils';\n\ntype TaskStatus = TaskItem['status'];\n\nconst TRUNK_X = 8;\nconst LANE_X = 24;\n\nconst laneX = (status: TaskStatus, singleLane: boolean) => (status === 'in_progress' && !singleLane ? LANE_X : TRUNK_X);\nconst rowCenter = (index: number) => index * TASK_ROW_HEIGHT + TASK_ROW_HEIGHT / 2;\n\nconst ink: Record<TaskStatus, string> = {\n completed: 'var(--success-indicator)',\n in_progress: 'var(--warning-indicator)',\n pending: 'var(--border-strong)',\n};\n\nconst connectorPathData = (upper: TaskStatus, lower: TaskStatus, index: number, singleLane: boolean) => {\n const fromY = rowCenter(index);\n const toY = rowCenter(index + 1);\n const midY = (fromY + toY) / 2;\n const fromX = laneX(upper, singleLane);\n const toX = laneX(lower, singleLane);\n return `M ${fromX} ${fromY} C ${fromX} ${midY} ${toX} ${midY} ${toX} ${toY}`;\n};\n\ninterface TaskGraphSegmentProps {\n upper: TaskStatus;\n lower: TaskStatus;\n index: number;\n graphId: string;\n singleLane: boolean;\n}\n\nconst TaskGraphSegment = ({ upper, lower, index, graphId, singleLane }: TaskGraphSegmentProps) => {\n const pathData = connectorPathData(upper, lower, index, singleLane);\n const d = `path(\"${pathData}\")`;\n const reached = upper !== 'pending' && lower !== 'pending';\n const touchesActive = upper === 'in_progress' || lower === 'in_progress';\n\n return (\n <g>\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n mask={`url(#${graphId}-future)`}\n className={cn('transition-[d]', taskGraphMotion)}\n style={{ d, stroke: ink.pending }}\n />\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n pathLength={1}\n strokeDasharray=\"1 1\"\n className={cn('transition-[d,stroke-dashoffset,stroke]', taskGraphMotion)}\n style={{ d, strokeDashoffset: reached ? 0 : 1, stroke: touchesActive ? ink.in_progress : ink.completed }}\n />\n </g>\n );\n};\n\ninterface TaskGraphLinesProps {\n statuses: TaskStatus[];\n singleLane?: boolean;\n}\n\nexport const TaskGraphLines = ({ statuses, singleLane = false }: TaskGraphLinesProps) => {\n const graphId = `task-graph${useId().replace(/[^a-zA-Z0-9]/g, '')}`;\n const height = statuses.length * TASK_ROW_HEIGHT;\n const maskBox = { x: -8, y: 0, width: LANE_X + 24, height };\n\n return (\n <svg\n aria-hidden\n width={LANE_X + 8}\n height={height}\n className=\"pointer-events-none absolute top-0 left-0 overflow-visible\"\n >\n <defs>\n <linearGradient id={`${graphId}-fade`} gradientUnits=\"userSpaceOnUse\" x1={0} x2={0} y1={0} y2={height}>\n <stop offset=\"0\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity={0.15} />\n </linearGradient>\n <mask id={`${graphId}-future`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-fade)`} />\n </mask>\n <linearGradient id={`${graphId}-gap`} x1={0} x2={0} y1={0} y2={1}>\n <stop offset=\"0.2\" stopColor=\"white\" stopOpacity={0} />\n <stop offset=\"0.4\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.6\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.8\" stopColor=\"white\" stopOpacity={0} />\n </linearGradient>\n <pattern\n id={`${graphId}-gaps`}\n patternUnits=\"userSpaceOnUse\"\n x={maskBox.x}\n y={TASK_ROW_HEIGHT / 2}\n width={maskBox.width}\n height={TASK_ROW_HEIGHT}\n >\n <rect width={maskBox.width} height={TASK_ROW_HEIGHT} fill={`url(#${graphId}-gap)`} />\n </pattern>\n <mask id={`${graphId}-between-nodes`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-gaps)`} />\n </mask>\n </defs>\n <g mask={`url(#${graphId}-between-nodes)`}>\n {statuses.map((status, index) => {\n const next = statuses[index + 1];\n if (!next) return null;\n return (\n <TaskGraphSegment\n key={index}\n upper={status}\n lower={next}\n index={index}\n graphId={graphId}\n singleLane={singleLane}\n />\n );\n })}\n </g>\n </svg>\n );\n};\n","import { useEffect, useEffectEvent, useRef } from 'react';\nimport { TASK_GRAPH_MOTION_MS, TASK_ROW_HEIGHT } from './task-graph-node';\n\nconst prefersReducedMotion = () => window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n\nconst easeOutQuint = (progress: number) => 1 - (1 - progress) ** 5;\n\n/* Scroll position is not a CSS property, so the glide is tweened to match the max-height transition. */\nconst glideScrollTop = (viewport: HTMLElement, top: number) => {\n const start = viewport.scrollTop;\n const distance = top - start;\n if (prefersReducedMotion()) {\n viewport.scrollTo({ top });\n return () => {};\n }\n let frame = 0;\n const startedAt = performance.now();\n const step = (now: number) => {\n const progress = Math.min((now - startedAt) / TASK_GRAPH_MOTION_MS, 1);\n viewport.scrollTo({ top: start + distance * easeOutQuint(progress) });\n if (progress < 1) frame = requestAnimationFrame(step);\n };\n frame = requestAnimationFrame(step);\n return () => cancelAnimationFrame(frame);\n};\n\nconst revealedScrollTop = (rowIndex: number, currentTop: number, windowHeight: number) => {\n const rowTop = rowIndex * TASK_ROW_HEIGHT;\n const rowBottom = rowTop + TASK_ROW_HEIGHT;\n if (rowTop < currentTop) return rowTop;\n if (rowBottom > currentTop + windowHeight) return rowBottom - windowHeight;\n return currentTop;\n};\n\nconst EXPANDED_VISIBLE_ROWS = 4.5;\n\nexport const taskWindowHeight = (rowCount: number, open: boolean) =>\n open ? Math.min(rowCount, EXPANDED_VISIBLE_ROWS) * TASK_ROW_HEIGHT : TASK_ROW_HEIGHT;\n\ninterface ScrollTarget {\n focusIndex: number;\n windowHeight: number;\n open: boolean;\n followFocus: boolean;\n}\n\nconst wantedScrollTop = (currentTop: number, { focusIndex, windowHeight, open, followFocus }: ScrollTarget) => {\n if (!open) return focusIndex * TASK_ROW_HEIGHT;\n if (!followFocus) return currentTop;\n return revealedScrollTop(focusIndex, currentTop, windowHeight);\n};\n\nconst clampScrollTop = (top: number, contentHeight: number, windowHeight: number) =>\n Math.min(Math.max(top, 0), Math.max(contentHeight - windowHeight, 0));\n\ninterface FocusedRowScrollOptions {\n focusIndex: number;\n rowCount: number;\n open: boolean;\n followFocus: boolean;\n}\n\nexport const useFocusedRowScroll = ({ focusIndex, rowCount, open, followFocus }: FocusedRowScrollOptions) => {\n const viewportRef = useRef<HTMLDivElement>(null);\n const cancelGlide = useRef<() => void>(undefined);\n const placedOnce = useRef(false);\n\n const glideForOpen = (nextOpen: boolean) => {\n const viewport = viewportRef.current;\n if (!viewport || typeof viewport.scrollTo !== 'function') return;\n const windowHeight = taskWindowHeight(rowCount, nextOpen);\n const wantedTop = wantedScrollTop(viewport.scrollTop, { focusIndex, windowHeight, open: nextOpen, followFocus });\n const top = clampScrollTop(wantedTop, rowCount * TASK_ROW_HEIGHT, windowHeight);\n cancelGlide.current?.();\n if (!placedOnce.current) {\n placedOnce.current = true;\n viewport.scrollTo({ top });\n return;\n }\n if (top !== viewport.scrollTop) cancelGlide.current = glideScrollTop(viewport, top);\n };\n\n const followFocusedRow = useEffectEvent(() => glideForOpen(open));\n\n useEffect(() => {\n followFocusedRow();\n return () => cancelGlide.current?.();\n }, [focusIndex]);\n\n return { viewportRef, glideForOpen };\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { ChevronDown } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { TaskGraphLines } from './task-graph';\nimport { TASK_ROW_HEIGHT, taskGraphLaneShift, taskGraphMotion, taskGraphNodeClass } from './task-graph-node';\nimport { taskWindowHeight, useFocusedRowScroll } from './use-focused-row-scroll';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { focusRing, transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TaskListItem = TaskItem;\n\nexport const TaskListContainer = ({ className, ...props }: ComponentProps<'section'>) => (\n <section className={cn(raisedSurfaceStyle, 'overflow-hidden rounded-2xl', className)} {...props} />\n);\n\nconst barColors: Record<TaskListItem['status'], string> = {\n completed: 'bg-success-indicator',\n in_progress: 'bg-warning-indicator',\n pending: 'bg-fill-hover',\n};\n\nexport interface TaskListProgressProps extends Omit<ComponentProps<'span'>, 'children'> {\n tasks: TaskListItem[];\n}\n\nexport const TaskListProgress = ({ tasks, className, ...props }: TaskListProgressProps) => {\n const completed = tasks.filter(task => task.status === 'completed').length;\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"progressbar\"\n aria-label=\"Task completion\"\n aria-valuemin={0}\n aria-valuemax={tasks.length}\n aria-valuenow={completed}\n className={cn('ml-auto flex h-4 w-fit max-w-40 shrink-0 items-center gap-1 overflow-hidden', className)}\n {...props}\n >\n {tasks.map(task => (\n <span\n key={task.id}\n className={cn(\n 'h-full w-0.5 min-w-px shrink rounded-full transition-colors',\n taskGraphMotion,\n barColors[task.status],\n )}\n />\n ))}\n </span>\n }\n />\n <TooltipContent>\n {completed}/{tasks.length} completed\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nconst statusLabels: Record<TaskListItem['status'], string> = {\n completed: 'Completed',\n in_progress: 'In progress',\n pending: 'Pending',\n};\n\nconst ringClasses: Record<TaskListItem['status'], string> = {\n completed: 'size-[7px] border-success-indicator bg-card',\n in_progress: 'size-2 border-warning-indicator bg-warning-subtle',\n pending: 'size-1.5 border-muted-foreground/45 bg-card',\n};\n\nexport interface TaskListStatusIconProps extends ComponentProps<'span'> {\n status: TaskListItem['status'];\n}\n\nexport const TaskListStatusIcon = ({ status, className, ...props }: TaskListStatusIconProps) => (\n <span\n role=\"img\"\n aria-label={statusLabels[status]}\n className={cn('grid size-3 shrink-0 place-items-center rounded-full', className)}\n {...props}\n >\n <span\n className={cn(\n 'rounded-full border-[1.5px] transition-[width,height,border-color,background-color]',\n taskGraphMotion,\n ringClasses[status],\n )}\n />\n </span>\n);\n\nconst TaskListLabel = ({ task }: { task: TaskListItem }) => {\n const active = task.status === 'in_progress';\n return (\n <Txt as=\"span\" variant=\"caption\" className=\"grid min-w-0\">\n <span\n aria-hidden={active}\n className={cn(\n 'col-start-1 row-start-1 truncate transition-[opacity,color,translate,filter]',\n taskGraphMotion,\n task.status === 'pending' ? 'text-muted-foreground/70' : 'text-muted-foreground',\n active ? '-translate-y-1 opacity-0 blur-[2px]' : 'translate-y-0 opacity-100 blur-none',\n )}\n >\n <span\n className={cn(\n 'bg-[linear-gradient(currentColor,currentColor)] bg-no-repeat transition-[background-size]',\n taskGraphMotion,\n task.status === 'completed'\n ? 'bg-size-[100%_1px] bg-position-[left_55%]'\n : 'bg-size-[0%_1px] bg-position-[right_55%]',\n )}\n >\n {task.content}\n </span>\n </span>\n <span\n aria-hidden={!active}\n className={cn(\n 'col-start-1 row-start-1 truncate bg-linear-to-r from-warning-indicator to-foreground to-30% bg-size-[200%_100%] bg-clip-text font-medium text-transparent transition-[opacity,translate,filter,background-position]',\n taskGraphMotion,\n active\n ? 'translate-y-0 bg-position-[0%_0] opacity-100 blur-none'\n : 'translate-y-1 bg-position-[100%_0] opacity-0 blur-[2px]',\n )}\n >\n {task.activeForm}\n </span>\n </Txt>\n );\n};\n\nexport interface TaskListRowProps extends ComponentProps<'li'> {\n task: TaskListItem;\n}\n\nexport const TaskListRow = ({ task, className, style, ...props }: TaskListRowProps) => (\n <li className={cn('relative flex items-center', className)} style={{ height: TASK_ROW_HEIGHT, ...style }} {...props}>\n <TaskListStatusIcon\n status={task.status}\n className={cn(\n taskGraphNodeClass,\n taskGraphMotion,\n taskGraphLaneShift[task.status],\n 'group-data-collapsed/task-list:translate-x-0',\n )}\n />\n <span\n className={cn(\n 'flex min-w-0 transition-[padding-left]',\n taskGraphMotion,\n task.status === 'in_progress' ? 'pl-10 group-data-collapsed/task-list:pl-6' : 'pl-6',\n )}\n >\n <TaskListLabel task={task} />\n </span>\n </li>\n);\n\nconst LIST_INSET_Y = 10;\n\n/* A full layer minus one fade per edge; the fades are sized by mask-size, so their depth animates. */\nconst edgeFades =\n 'mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black_40%,transparent),linear-gradient(to_top,black_40%,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]';\nconst edgeFadesWhenScrolled = 'data-[overflow-y-end]:[--fade-bottom:2rem] data-[overflow-y-start]:[--fade-top:2rem]';\n\nconst focusedTaskIndex = (tasks: TaskListItem[]) => {\n const activeIndex = tasks.findIndex(task => task.status === 'in_progress');\n if (activeIndex >= 0) return activeIndex;\n const pendingIndex = tasks.findIndex(task => task.status === 'pending');\n if (pendingIndex >= 0) return pendingIndex;\n return tasks.length - 1;\n};\n\nexport interface TaskListProps extends Omit<ComponentProps<typeof TaskListContainer>, 'children'> {\n tasks: TaskListItem[];\n hideWhenComplete?: boolean;\n scrollActiveIntoView?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const TaskList = ({\n tasks,\n hideWhenComplete = true,\n scrollActiveIntoView = true,\n defaultOpen = true,\n className,\n ...props\n}: TaskListProps) => {\n const [open, setOpen] = useState(defaultOpen);\n const listId = useId();\n const completed = tasks.filter(task => task.status === 'completed').length;\n const total = tasks.length;\n const focusIndex = focusedTaskIndex(tasks);\n const windowHeight = taskWindowHeight(total, open);\n const { viewportRef, glideForOpen } = useFocusedRowScroll({\n focusIndex,\n rowCount: total,\n open,\n followFocus: scrollActiveIntoView,\n });\n\n const changeOpen = (nextOpen: boolean) => {\n setOpen(nextOpen);\n glideForOpen(nextOpen);\n };\n\n if (total === 0 || (hideWhenComplete && completed === total)) return null;\n\n return (\n <TaskListContainer\n aria-label=\"Task list\"\n data-testid=\"task-list\"\n data-collapsed={open ? undefined : ''}\n onClick={open ? undefined : () => changeOpen(true)}\n className={cn('group/task-list relative', !open && 'cursor-pointer', className)}\n {...props}\n >\n <ScrollArea id={listId} maxHeight={`${windowHeight + 2 * LIST_INSET_Y}px`} mask={false}>\n <ScrollAreaViewport\n ref={viewportRef}\n className={cn(\n edgeFades,\n 'transition-[max-height,mask-size]',\n taskGraphMotion,\n open ? edgeFadesWhenScrolled : 'overflow-hidden!',\n )}\n >\n <div className=\"px-3\" style={{ paddingBlock: LIST_INSET_Y }}>\n <div className=\"relative\">\n <TaskGraphLines statuses={tasks.map(task => task.status)} singleLane={!open} />\n <ul>\n {tasks.map((task, index) => {\n const clippedAway = !open && index !== focusIndex;\n return <TaskListRow key={task.id} task={task} inert={clippedAway} aria-hidden={clippedAway} />;\n })}\n </ul>\n </div>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n <div className=\"absolute top-2.5 right-3 flex h-7 items-center bg-linear-to-r from-transparent to-card to-[1.5rem] pl-6\">\n <div\n inert={open}\n aria-hidden={open}\n className={cn(\n 'grid transition-[grid-template-columns,opacity]',\n taskGraphMotion,\n open ? 'grid-cols-[0fr] opacity-0' : 'grid-cols-[1fr] opacity-100',\n )}\n >\n <div className=\"min-w-0 overflow-hidden\">\n <TaskListProgress tasks={tasks} className=\"mr-2\" />\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={open ? 'Collapse tasks' : 'Show all tasks'}\n aria-expanded={open}\n aria-controls={listId}\n onClick={event => {\n event.stopPropagation();\n changeOpen(!open);\n }}\n className={cn(\n 'grid size-6 cursor-pointer place-items-center rounded-md text-muted-foreground hover:text-foreground',\n transitions.colors,\n focusRing,\n !open && 'group-hover/task-list:text-foreground',\n )}\n >\n <ChevronDown\n className={cn('size-3.5 transition-[rotate]', taskGraphMotion, open ? 'rotate-180' : 'rotate-0')}\n />\n </button>\n </div>\n </TaskListContainer>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"task-list.es.js","names":[],"sources":["../../../src/ds/components/ai/task-list/task-graph-node.ts","../../../src/ds/components/ai/task-list/task-graph.tsx","../../../src/ds/components/ai/task-list/use-focused-row-scroll.ts","../../../src/ds/components/ai/task-list/task-list.tsx"],"sourcesContent":["import type { TaskItem } from '@mastra/core/signals';\n\ntype TaskStatus = TaskItem['status'];\n\nexport const TASK_ROW_HEIGHT = 28;\nexport const TASK_GRAPH_MOTION_MS = 600;\n\n/* One timing for nodes and lines, so a line end never detaches from its node mid-move. */\nexport const taskGraphMotion = 'duration-[600ms] ease-(--resize-ease) motion-reduce:transition-none';\n\n/* left-0.5 centres the 12px node on the trunk (x=8); translate-x-4 lands it on the lane (x=24). */\nexport const taskGraphNodeClass = 'absolute top-1/2 left-0.5 -translate-y-1/2 transition-[translate]';\nexport const taskGraphLaneShift: Record<TaskStatus, string> = {\n completed: 'translate-x-0',\n in_progress: 'translate-x-4',\n pending: 'translate-x-0',\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { useId } from 'react';\nimport { TASK_ROW_HEIGHT, taskGraphMotion } from './task-graph-node';\nimport { cn } from '@/lib/utils';\n\ntype TaskStatus = TaskItem['status'];\n\nconst TRUNK_X = 8;\nconst LANE_X = 24;\n\nconst laneX = (status: TaskStatus, singleLane: boolean) => (status === 'in_progress' && !singleLane ? LANE_X : TRUNK_X);\nconst rowCenter = (index: number) => index * TASK_ROW_HEIGHT + TASK_ROW_HEIGHT / 2;\n\nconst ink: Record<TaskStatus, string> = {\n completed: 'var(--success-indicator)',\n in_progress: 'var(--warning-indicator)',\n pending: 'var(--border-strong)',\n};\n\nconst connectorPathData = (upper: TaskStatus, lower: TaskStatus, index: number, singleLane: boolean) => {\n const fromY = rowCenter(index);\n const toY = rowCenter(index + 1);\n const midY = (fromY + toY) / 2;\n const fromX = laneX(upper, singleLane);\n const toX = laneX(lower, singleLane);\n return `M ${fromX} ${fromY} C ${fromX} ${midY} ${toX} ${midY} ${toX} ${toY}`;\n};\n\ninterface TaskGraphSegmentProps {\n upper: TaskStatus;\n lower: TaskStatus;\n index: number;\n graphId: string;\n singleLane: boolean;\n}\n\nconst TaskGraphSegment = ({ upper, lower, index, graphId, singleLane }: TaskGraphSegmentProps) => {\n const pathData = connectorPathData(upper, lower, index, singleLane);\n const d = `path(\"${pathData}\")`;\n const reached = upper !== 'pending' && lower !== 'pending';\n const touchesActive = upper === 'in_progress' || lower === 'in_progress';\n\n return (\n <g>\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n mask={`url(#${graphId}-future)`}\n className={cn('transition-[d]', taskGraphMotion)}\n style={{ d, stroke: ink.pending }}\n />\n <path\n d={pathData}\n fill=\"none\"\n strokeWidth={1}\n pathLength={1}\n strokeDasharray=\"1 1\"\n className={cn('transition-[d,stroke-dashoffset,stroke]', taskGraphMotion)}\n style={{ d, strokeDashoffset: reached ? 0 : 1, stroke: touchesActive ? ink.in_progress : ink.completed }}\n />\n </g>\n );\n};\n\ninterface TaskGraphLinesProps {\n statuses: TaskStatus[];\n singleLane?: boolean;\n}\n\nexport const TaskGraphLines = ({ statuses, singleLane = false }: TaskGraphLinesProps) => {\n const graphId = `task-graph${useId().replace(/[^a-zA-Z0-9]/g, '')}`;\n const height = statuses.length * TASK_ROW_HEIGHT;\n const maskBox = { x: -8, y: 0, width: LANE_X + 24, height };\n\n return (\n <svg\n aria-hidden\n width={LANE_X + 8}\n height={height}\n className=\"pointer-events-none absolute top-0 left-0 overflow-visible\"\n >\n <defs>\n <linearGradient id={`${graphId}-fade`} gradientUnits=\"userSpaceOnUse\" x1={0} x2={0} y1={0} y2={height}>\n <stop offset=\"0\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity={0.15} />\n </linearGradient>\n <mask id={`${graphId}-future`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-fade)`} />\n </mask>\n <linearGradient id={`${graphId}-gap`} x1={0} x2={0} y1={0} y2={1}>\n <stop offset=\"0.2\" stopColor=\"white\" stopOpacity={0} />\n <stop offset=\"0.4\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.6\" stopColor=\"white\" stopOpacity={1} />\n <stop offset=\"0.8\" stopColor=\"white\" stopOpacity={0} />\n </linearGradient>\n <pattern\n id={`${graphId}-gaps`}\n patternUnits=\"userSpaceOnUse\"\n x={maskBox.x}\n y={TASK_ROW_HEIGHT / 2}\n width={maskBox.width}\n height={TASK_ROW_HEIGHT}\n >\n <rect width={maskBox.width} height={TASK_ROW_HEIGHT} fill={`url(#${graphId}-gap)`} />\n </pattern>\n <mask id={`${graphId}-between-nodes`} maskUnits=\"userSpaceOnUse\" {...maskBox}>\n <rect {...maskBox} fill={`url(#${graphId}-gaps)`} />\n </mask>\n </defs>\n <g mask={`url(#${graphId}-between-nodes)`}>\n {statuses.map((status, index) => {\n const next = statuses[index + 1];\n if (!next) return null;\n return (\n <TaskGraphSegment\n key={index}\n upper={status}\n lower={next}\n index={index}\n graphId={graphId}\n singleLane={singleLane}\n />\n );\n })}\n </g>\n </svg>\n );\n};\n","import { useEffect, useEffectEvent, useRef } from 'react';\nimport { TASK_GRAPH_MOTION_MS, TASK_ROW_HEIGHT } from './task-graph-node';\n\nconst prefersReducedMotion = () => window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ?? false;\n\nconst easeOutQuint = (progress: number) => 1 - (1 - progress) ** 5;\n\n/* Scroll position is not a CSS property, so the glide is tweened to match the max-height transition. */\nconst glideScrollTop = (viewport: HTMLElement, top: number) => {\n const start = viewport.scrollTop;\n const distance = top - start;\n if (prefersReducedMotion()) {\n viewport.scrollTo({ top });\n return () => {};\n }\n let frame = 0;\n const startedAt = performance.now();\n const step = (now: number) => {\n const progress = Math.min((now - startedAt) / TASK_GRAPH_MOTION_MS, 1);\n viewport.scrollTo({ top: start + distance * easeOutQuint(progress) });\n if (progress < 1) frame = requestAnimationFrame(step);\n };\n frame = requestAnimationFrame(step);\n return () => cancelAnimationFrame(frame);\n};\n\nconst revealedScrollTop = (rowIndex: number, currentTop: number, windowHeight: number) => {\n const rowTop = rowIndex * TASK_ROW_HEIGHT;\n const rowBottom = rowTop + TASK_ROW_HEIGHT;\n if (rowTop < currentTop) return rowTop;\n if (rowBottom > currentTop + windowHeight) return rowBottom - windowHeight;\n return currentTop;\n};\n\nconst EXPANDED_VISIBLE_ROWS = 4.5;\n\nexport const taskWindowHeight = (rowCount: number, open: boolean) =>\n open ? Math.min(rowCount, EXPANDED_VISIBLE_ROWS) * TASK_ROW_HEIGHT : TASK_ROW_HEIGHT;\n\ninterface ScrollTarget {\n focusIndex: number;\n windowHeight: number;\n open: boolean;\n followFocus: boolean;\n}\n\nconst wantedScrollTop = (currentTop: number, { focusIndex, windowHeight, open, followFocus }: ScrollTarget) => {\n if (!open) return focusIndex * TASK_ROW_HEIGHT;\n if (!followFocus) return currentTop;\n return revealedScrollTop(focusIndex, currentTop, windowHeight);\n};\n\nconst clampScrollTop = (top: number, contentHeight: number, windowHeight: number) =>\n Math.min(Math.max(top, 0), Math.max(contentHeight - windowHeight, 0));\n\ninterface FocusedRowScrollOptions {\n focusIndex: number;\n rowCount: number;\n open: boolean;\n followFocus: boolean;\n}\n\nexport const useFocusedRowScroll = ({ focusIndex, rowCount, open, followFocus }: FocusedRowScrollOptions) => {\n const viewportRef = useRef<HTMLDivElement>(null);\n const cancelGlide = useRef<() => void>(undefined);\n const placedOnce = useRef(false);\n\n const glideForOpen = (nextOpen: boolean) => {\n const viewport = viewportRef.current;\n if (!viewport || typeof viewport.scrollTo !== 'function') return;\n const windowHeight = taskWindowHeight(rowCount, nextOpen);\n const wantedTop = wantedScrollTop(viewport.scrollTop, { focusIndex, windowHeight, open: nextOpen, followFocus });\n const top = clampScrollTop(wantedTop, rowCount * TASK_ROW_HEIGHT, windowHeight);\n cancelGlide.current?.();\n if (!placedOnce.current) {\n placedOnce.current = true;\n viewport.scrollTo({ top });\n return;\n }\n if (top !== viewport.scrollTop) cancelGlide.current = glideScrollTop(viewport, top);\n };\n\n const followFocusedRow = useEffectEvent(() => glideForOpen(open));\n\n useEffect(() => {\n followFocusedRow();\n return () => cancelGlide.current?.();\n }, [focusIndex]);\n\n return { viewportRef, glideForOpen };\n};\n","import type { TaskItem } from '@mastra/core/signals';\nimport { ChevronDown } from 'lucide-react';\nimport { useId, useState } from 'react';\nimport type { ComponentProps } from 'react';\nimport { TaskGraphLines } from './task-graph';\nimport { TASK_ROW_HEIGHT, taskGraphLaneShift, taskGraphMotion, taskGraphNodeClass } from './task-graph-node';\nimport { taskWindowHeight, useFocusedRowScroll } from './use-focused-row-scroll';\nimport { ScrollArea, ScrollAreaViewport } from '@/ds/components/ScrollArea';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { focusRing, transitions } from '@/ds/primitives/transitions';\nimport { cn } from '@/lib/utils';\n\nexport type TaskListItem = TaskItem;\n\nexport const TaskListContainer = ({ className, ...props }: ComponentProps<'section'>) => (\n <section className={cn(raisedSurfaceStyle, 'overflow-hidden rounded-2xl', className)} {...props} />\n);\n\nconst barColors: Record<TaskListItem['status'], string> = {\n completed: 'bg-success-indicator',\n in_progress: 'bg-warning-indicator',\n pending: 'bg-fill-hover',\n};\n\nexport interface TaskListProgressProps extends Omit<ComponentProps<'span'>, 'children'> {\n tasks: TaskListItem[];\n}\n\nexport const TaskListProgress = ({ tasks, className, ...props }: TaskListProgressProps) => {\n const completed = tasks.filter(task => task.status === 'completed').length;\n return (\n <TooltipProvider delayDuration={0}>\n <Tooltip>\n <TooltipTrigger\n render={\n <span\n role=\"progressbar\"\n aria-label=\"Task completion\"\n aria-valuemin={0}\n aria-valuemax={tasks.length}\n aria-valuenow={completed}\n className={cn('ml-auto flex h-4 w-fit max-w-40 shrink-0 items-center gap-1 overflow-hidden', className)}\n {...props}\n >\n {tasks.map(task => (\n <span\n key={task.id}\n className={cn(\n 'h-full w-0.5 min-w-px shrink rounded-full transition-colors',\n taskGraphMotion,\n barColors[task.status],\n )}\n />\n ))}\n </span>\n }\n />\n <TooltipContent>\n {completed}/{tasks.length} completed\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n\nconst statusLabels: Record<TaskListItem['status'], string> = {\n completed: 'Completed',\n in_progress: 'In progress',\n pending: 'Pending',\n};\n\nconst ringClasses: Record<TaskListItem['status'], string> = {\n completed: 'size-[7px] border-success-indicator bg-card',\n in_progress: 'size-2 border-warning-indicator bg-warning-subtle',\n pending: 'size-1.5 border-muted-foreground/45 bg-card',\n};\n\nexport interface TaskListStatusIconProps extends ComponentProps<'span'> {\n status: TaskListItem['status'];\n}\n\nexport const TaskListStatusIcon = ({ status, className, ...props }: TaskListStatusIconProps) => (\n <span\n role=\"img\"\n aria-label={statusLabels[status]}\n className={cn('grid size-3 shrink-0 place-items-center rounded-full', className)}\n {...props}\n >\n <span\n className={cn(\n 'rounded-full border-[1.5px] transition-[width,height,border-color,background-color]',\n taskGraphMotion,\n ringClasses[status],\n )}\n />\n </span>\n);\n\nconst TaskListLabel = ({ task }: { task: TaskListItem }) => {\n const active = task.status === 'in_progress';\n return (\n <Txt as=\"span\" variant=\"caption\" className=\"grid min-w-0\">\n <span\n aria-hidden={active}\n className={cn(\n 'col-start-1 row-start-1 truncate transition-[opacity,color,translate,filter]',\n taskGraphMotion,\n task.status === 'pending' ? 'text-muted-foreground/70' : 'text-muted-foreground',\n active ? '-translate-y-1 opacity-0 blur-[2px]' : 'translate-y-0 opacity-100 blur-none',\n )}\n >\n <span\n className={cn(\n 'bg-[linear-gradient(currentColor,currentColor)] bg-no-repeat transition-[background-size]',\n taskGraphMotion,\n task.status === 'completed'\n ? 'bg-size-[100%_1px] bg-position-[left_55%]'\n : 'bg-size-[0%_1px] bg-position-[right_55%]',\n )}\n >\n {task.content}\n </span>\n </span>\n <span\n aria-hidden={!active}\n className={cn(\n 'col-start-1 row-start-1 truncate bg-linear-to-r from-warning-indicator to-foreground to-30% bg-size-[200%_100%] bg-clip-text font-medium text-transparent transition-[opacity,translate,filter,background-position]',\n taskGraphMotion,\n active\n ? 'translate-y-0 bg-position-[0%_0] opacity-100 blur-none'\n : 'translate-y-1 bg-position-[100%_0] opacity-0 blur-[2px]',\n )}\n >\n {task.activeForm}\n </span>\n </Txt>\n );\n};\n\nexport interface TaskListRowProps extends ComponentProps<'li'> {\n task: TaskListItem;\n}\n\nexport const TaskListRow = ({ task, className, style, ...props }: TaskListRowProps) => (\n <li className={cn('relative flex items-center', className)} style={{ height: TASK_ROW_HEIGHT, ...style }} {...props}>\n <TaskListStatusIcon\n status={task.status}\n className={cn(\n taskGraphNodeClass,\n taskGraphMotion,\n taskGraphLaneShift[task.status],\n 'group-data-collapsed/task-list:translate-x-0',\n )}\n />\n <span\n className={cn(\n 'flex min-w-0 transition-[padding-left]',\n taskGraphMotion,\n task.status === 'in_progress' ? 'pl-10 group-data-collapsed/task-list:pl-6' : 'pl-6',\n )}\n >\n <TaskListLabel task={task} />\n </span>\n </li>\n);\n\nconst LIST_INSET_Y = 10;\n\n/* A full layer minus one fade per edge; the fades are sized by mask-size, so their depth animates. */\nconst edgeFades =\n 'mask-no-repeat [--fade-bottom:0.875rem] [--fade-top:0.875rem] [mask-composite:subtract,add] [mask-image:linear-gradient(black,black),linear-gradient(to_bottom,black,transparent),linear-gradient(to_top,black,transparent)] [mask-position:0_0,0_0,0_100%] [mask-size:100%_100%,100%_var(--fade-top),100%_var(--fade-bottom)]';\nconst edgeFadesWhenScrolled = 'data-[overflow-y-end]:[--fade-bottom:2rem] data-[overflow-y-start]:[--fade-top:2rem]';\n\nconst focusedTaskIndex = (tasks: TaskListItem[]) => {\n const activeIndex = tasks.findIndex(task => task.status === 'in_progress');\n if (activeIndex >= 0) return activeIndex;\n const pendingIndex = tasks.findIndex(task => task.status === 'pending');\n if (pendingIndex >= 0) return pendingIndex;\n return tasks.length - 1;\n};\n\nexport interface TaskListProps extends Omit<ComponentProps<typeof TaskListContainer>, 'children'> {\n tasks: TaskListItem[];\n hideWhenComplete?: boolean;\n scrollActiveIntoView?: boolean;\n defaultOpen?: boolean;\n}\n\nexport const TaskList = ({\n tasks,\n hideWhenComplete = true,\n scrollActiveIntoView = true,\n defaultOpen = true,\n className,\n ...props\n}: TaskListProps) => {\n const [open, setOpen] = useState(defaultOpen);\n const listId = useId();\n const completed = tasks.filter(task => task.status === 'completed').length;\n const total = tasks.length;\n const focusIndex = focusedTaskIndex(tasks);\n const windowHeight = taskWindowHeight(total, open);\n const { viewportRef, glideForOpen } = useFocusedRowScroll({\n focusIndex,\n rowCount: total,\n open,\n followFocus: scrollActiveIntoView,\n });\n\n const changeOpen = (nextOpen: boolean) => {\n setOpen(nextOpen);\n glideForOpen(nextOpen);\n };\n\n if (total === 0 || (hideWhenComplete && completed === total)) return null;\n\n return (\n <TaskListContainer\n aria-label=\"Task list\"\n data-testid=\"task-list\"\n data-collapsed={open ? undefined : ''}\n onClick={open ? undefined : () => changeOpen(true)}\n className={cn('group/task-list relative', !open && 'cursor-pointer', className)}\n {...props}\n >\n <ScrollArea id={listId} maxHeight={`${windowHeight + 2 * LIST_INSET_Y}px`} mask={false}>\n <ScrollAreaViewport\n ref={viewportRef}\n className={cn(\n edgeFades,\n 'transition-[max-height,mask-size]',\n taskGraphMotion,\n open ? edgeFadesWhenScrolled : 'overflow-hidden!',\n )}\n >\n <div className=\"px-3\" style={{ paddingBlock: LIST_INSET_Y }}>\n <div className=\"relative\">\n <TaskGraphLines statuses={tasks.map(task => task.status)} singleLane={!open} />\n <ul>\n {tasks.map((task, index) => {\n const clippedAway = !open && index !== focusIndex;\n return <TaskListRow key={task.id} task={task} inert={clippedAway} aria-hidden={clippedAway} />;\n })}\n </ul>\n </div>\n </div>\n </ScrollAreaViewport>\n </ScrollArea>\n <div className=\"absolute top-2.5 right-3 flex h-7 items-center bg-linear-to-r from-transparent to-card to-[1.5rem] pl-6\">\n <div\n inert={open}\n aria-hidden={open}\n className={cn(\n 'grid transition-[grid-template-columns,opacity]',\n taskGraphMotion,\n open ? 'grid-cols-[0fr] opacity-0' : 'grid-cols-[1fr] opacity-100',\n )}\n >\n <div className=\"min-w-0 overflow-hidden\">\n <TaskListProgress tasks={tasks} className=\"mr-2\" />\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={open ? 'Collapse tasks' : 'Show all tasks'}\n aria-expanded={open}\n aria-controls={listId}\n onClick={event => {\n event.stopPropagation();\n changeOpen(!open);\n }}\n className={cn(\n 'grid size-6 cursor-pointer place-items-center rounded-md text-muted-foreground hover:text-foreground',\n transitions.colors,\n focusRing,\n !open && 'group-hover/task-list:text-foreground',\n )}\n >\n <ChevronDown\n className={cn('size-3.5 transition-[rotate]', taskGraphMotion, open ? 'rotate-180' : 'rotate-0')}\n />\n </button>\n </div>\n </TaskListContainer>\n );\n};\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_tool_approval = require("../../tool-approval-CJvPDL7D.cjs");
2
+ const require_tool_approval = require("../../tool-approval-CguPaikn.cjs");
3
3
  exports.ToolApproval = require_tool_approval.ToolApproval;
4
4
  exports.ToolApprovalActions = require_tool_approval.ToolApprovalActions;
5
5
  exports.ToolApprovalStatus = require_tool_approval.ToolApprovalStatus;
@@ -1 +1 @@
1
- export { t as ToolApproval, n as ToolApprovalActions, r as ToolApprovalStatus } from "../../tool-approval-DyN11vFA.js";
1
+ export { t as ToolApproval, n as ToolApprovalActions, r as ToolApprovalStatus } from "../../tool-approval-Cjz0yAzw.js";
@@ -1,14 +1,17 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_tool_call = require("../../tool-call-DBn14X-3.cjs");
3
- const require_tool_presentation = require("../../tool-presentation-D6nzVruN.cjs");
2
+ const require_tool_call = require("../../tool-call-BqDI9mrY.cjs");
3
+ const require_tool_presentation = require("../../tool-presentation-DPp9h-n2.cjs");
4
4
  exports.TOOL_GROUP_MIN = require_tool_call.TOOL_GROUP_MIN;
5
5
  exports.ToolCallArguments = require_tool_call.ToolCallArguments;
6
+ exports.ToolCallBody = require_tool_call.ToolCallBody;
6
7
  exports.ToolCallCommand = require_tool_call.ToolCallCommand;
7
8
  exports.ToolCallEdit = require_tool_call.ToolCallEdit;
9
+ exports.ToolCallExitStatus = require_tool_call.ToolCallExitStatus;
8
10
  exports.ToolCallGroup = require_tool_call.ToolCallGroup;
9
11
  exports.ToolCallMono = require_tool_call.ToolCallMono;
10
12
  exports.ToolCallOutput = require_tool_call.ToolCallOutput;
11
13
  exports.ToolCallTime = require_tool_call.ToolCallTime;
14
+ exports.exitedWithFailure = require_tool_presentation.exitedWithFailure;
12
15
  exports.groupConsecutive = require_tool_call.groupConsecutive;
13
16
  exports.hasToolArguments = require_tool_presentation.hasToolArguments;
14
17
  exports.isTaskTool = require_tool_presentation.isTaskTool;
@@ -16,6 +19,8 @@ exports.presentTool = require_tool_presentation.presentTool;
16
19
  exports.stringifyToolValue = require_tool_presentation.stringifyToolValue;
17
20
  exports.stripAnsi = require_tool_call.stripAnsi;
18
21
  exports.stripSerializedAnsi = require_tool_call.stripSerializedAnsi;
22
+ exports.toolCallHasBody = require_tool_call.toolCallHasBody;
23
+ exports.toolCallResultText = require_tool_call.toolCallResultText;
19
24
  exports.toolEdit = require_tool_presentation.toolEdit;
20
25
  exports.toolPhrases = require_tool_call.toolPhrases;
21
26
  exports.visibleToolArgumentsText = require_tool_presentation.visibleToolArgumentsText;