@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
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetricsCard-ua6C6b8a.js","names":["_Fragment"],"sources":["../src/ds/components/MetricsCard/metrics-card-actions.tsx","../src/ds/components/MetricsCard/metrics-card-content.tsx","../src/ds/components/MetricsCard/metrics-card-error.tsx","../src/ds/components/MetricsCard/metrics-card-headline.tsx","../src/ds/components/MetricsCard/metrics-card-loading.tsx","../src/ds/components/MetricsCard/metrics-card-no-data.tsx","../src/ds/components/MetricsCard/metrics-card-root.tsx","../src/ds/components/MetricsCard/metrics-card-title.tsx","../src/ds/components/MetricsCard/metrics-card-title-menu.tsx","../src/ds/components/MetricsCard/metrics-card-toolbar.tsx","../src/ds/components/MetricsCard/metrics-card-top-bar.tsx","../src/ds/components/MetricsCard/metrics-card-total.tsx","../src/ds/components/MetricsCard/metrics-card.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/** Container for icon buttons / small actions in the top bar of a MetricsCard,\n * placed between the title and `Total` (which always renders last). Small (28px) buttons sit\n * centered on the 20px title line without making the top bar taller. */\nexport function MetricsCardActions({\n children,\n reveal = 'always',\n className,\n}: {\n children: ReactNode;\n /**\n * `hover`: the actions appear while the card is hovered or one of them has focus, so a page\n * of cards doesn't read as a page of buttons.\n */\n reveal?: 'always' | 'hover';\n className?: string;\n}) {\n return (\n <div\n className={cn(\n '-my-1 flex shrink-0 items-center gap-1 self-start',\n reveal === 'hover' &&\n 'opacity-0 transition-opacity duration-150 group-hover/metrics-card:opacity-100 focus-within:opacity-100',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * Scrolls sideways only (wide tables). Vertical overflow is hidden: a chart filling a card with a\n * fractional height rounds 1px past it, which otherwise turns the content into a scroll box.\n * Tables inside a card drop the last row's border: the card edge already closes them.\n */\nexport function MetricsCardContent({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('overflow-x-auto overflow-y-hidden [&_tbody>tr:last-child]:border-b-0', className)}>\n {children}\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardError({\n message = 'Failed to load data',\n className,\n}: {\n message?: string;\n className?: string;\n}) {\n return (\n <div className={cn('flex flex-col items-center justify-center gap-3', className)}>\n <Txt variant=\"caption\" className=\"text-destructive-foreground\">\n {message}\n </Txt>\n </div>\n );\n}\n","import { Skeleton } from '@/ds/components/Skeleton';\nimport { cn } from '@/lib/utils';\n\n/**\n * The header of a card with one large chart (an explorer, a detail page): the label over a large\n * value, the change against the previous period beside it. Cards in a grid use the compact title\n * and `MetricsCard.Total` instead. A skeleton while loading, at the value's own trimmed height.\n */\nexport function MetricsCardHeadline({\n label,\n value,\n change,\n isLoading = false,\n className,\n}: {\n label: string;\n value: string;\n /** E.g. \"+71.4%\"; shown as \"+71.4% vs previous\". */\n change?: string;\n isLoading?: boolean;\n className?: string;\n}) {\n return (\n <div className={cn('grid gap-1.5', className)}>\n <h3 className=\"text-body-sm text-muted-foreground\">{label}</h3>\n <span className=\"flex items-baseline gap-2\">\n <span\n className={cn(\n 'text-title text-foreground tabular-nums [text-box:trim-both_cap_alphabetic]',\n isLoading && 'relative min-w-24',\n )}\n >\n {isLoading ? (\n // Hidden text keeps the value's trimmed height, so the row (and the actions centred on\n // it) doesn't move when the value arrives; the bar covers it.\n <>\n <span className=\"invisible\">0</span>\n <Skeleton className=\"absolute inset-0\" />\n </>\n ) : (\n value\n )}\n </span>\n {!isLoading &&\n change && (\n // Trimmed like the value, so its line box doesn't make the row taller than while loading.\n <span className=\"text-body-sm text-muted-foreground tabular-nums [text-box:trim-both_cap_alphabetic]\">\n {change} vs previous\n </span>\n )}\n </span>\n </div>\n );\n}\n","import { Spinner } from '@/ds/components/Spinner/spinner';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardLoading({ className }: { className?: string }) {\n return (\n <div className={cn('flex items-center justify-center', className)}>\n <Spinner size=\"md\" variant=\"pulse\" className=\"text-placeholder\" />\n </div>\n );\n}\n","import { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardNoData({ message = 'No data yet', className }: { message?: string; className?: string }) {\n return (\n <div className={cn('flex h-full items-center justify-center', className)}>\n <Txt tone=\"faint\">{message}</Txt>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { Card } from '@/ds/components/Card';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardRoot({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <Card\n className={cn(\n 'group/metrics-card grid min-h-72 min-w-80 flex-1 grid-rows-[auto_1fr] gap-4 px-4 py-3 2xl:min-w-120 md:min-w-88 lg:min-w-sm xl:min-w-104',\n className,\n )}\n >\n {children}\n </Card>\n );\n}\n","import { cn } from '@/lib/utils';\n\nexport function MetricsCardTitle({\n children,\n className,\n as: Tag = 'h3',\n}: {\n children: string;\n className?: string;\n as?: 'h2' | 'h3' | 'h4';\n}) {\n return <Tag className={cn('text-body font-medium text-foreground', className)}>{children}</Tag>;\n}\n","import { ChevronDownIcon } from 'lucide-react';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport type { DropdownMenuRadioOption } from '@/ds/components/DropdownMenu';\nimport { cn } from '@/lib/utils';\n\nexport type MetricsCardTitleMenuProps<V extends string> = {\n /** The card title for the picked view (e.g. \"Spend by model\"). */\n title: string;\n value: V;\n onValueChange: (value: V) => void;\n /** The views (e.g. \"By model\", \"By provider\"). */\n options: readonly DropdownMenuRadioOption<V>[];\n className?: string;\n};\n\n/**\n * A card title that switches the card's view, as on Vercel's usage cards: the title is the\n * trigger, with a chevron. The hover fill bleeds past the text so the title stays aligned.\n * Wrapped, so the top bar stretches the wrapper rather than the button, and the menu's open-state\n * nodes next to the trigger don't become the top bar's first child.\n */\nexport function MetricsCardTitleMenu<V extends string>({\n title,\n value,\n onValueChange,\n options,\n className,\n}: MetricsCardTitleMenuProps<V>) {\n return (\n <div className=\"flex min-w-0\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn(\n '-mx-1.5 -my-0.5 flex items-center gap-1 self-start rounded-md px-1.5 py-0.5 text-left text-body font-medium text-foreground hover:bg-fill-subtle',\n className,\n )}\n />\n }\n >\n {title}\n <ChevronDownIcon className=\"size-3.5 text-muted-foreground\" />\n </DropdownMenu.Trigger>\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.RadioOptions options={options} value={value} onValueChange={onValueChange} closeOnSelect />\n </DropdownMenu.Content>\n </DropdownMenu>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\n/**\n * One row under the top bar for a card's controls: a legend, list column headers.\n * The first child sits on the left, the last on the right; either side may be omitted. When\n * both don't fit (a narrow card), the right side wraps to its own line, still on the right. At least 24px\n * tall, so toolbars line up across cards in the same row.\n */\nexport function MetricsCardToolbar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div\n className={cn(\n 'flex min-h-6 min-w-0 flex-wrap items-center justify-between gap-x-4 gap-y-2 [&>*:first-child]:min-w-0 [&>*:last-child:not(:first-child)]:ml-auto',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport function MetricsCardTopBar({ children, className }: { children: ReactNode; className?: string }) {\n return (\n <div className={cn('flex items-start gap-4 [&>:first-child]:min-w-0 [&>:first-child]:flex-1', className)}>\n {children}\n </div>\n );\n}\n","import { SkeletonText } from '@/ds/components/Skeleton';\nimport { cn } from '@/lib/utils';\n\n/** One of several totals in a card that charts a few series, marked with its series' color. */\nexport type MetricsCardTotalPart = { label: string; value: string; color: string };\n\n/**\n * A card's total, right of the title in the same type (14px, medium). Always the top\n * bar's last item. A skeleton while loading, in the value's own line box. A card charting a\n * few series of different things (resources, threads) can give one total each, each after a\n * marker in its series' color, like the legend.\n */\nexport function MetricsCardTotal({\n value,\n isLoading = false,\n className,\n}: {\n value: string | readonly MetricsCardTotalPart[];\n isLoading?: boolean;\n className?: string;\n}) {\n return (\n <span className={cn('order-last shrink-0 text-body font-medium text-foreground tabular-nums', className)}>\n <TotalValue value={value} isLoading={isLoading} />\n </span>\n );\n}\n\nfunction TotalValue({ value, isLoading }: { value: string | readonly MetricsCardTotalPart[]; isLoading: boolean }) {\n if (isLoading) return <SkeletonText line=\"text-body\" className=\"h-4 w-14\" />;\n if (typeof value === 'string') return value;\n return (\n <span className=\"inline-flex items-center gap-3\">\n {value.map(part => (\n <span key={part.label} className=\"inline-flex items-center gap-1.5\">\n <span aria-hidden className=\"size-2 shrink-0 rounded-[2px]\" style={{ backgroundColor: part.color }} />\n {/* The marker is decorative; screen readers hear which total this is. */}\n <span className=\"sr-only\">{part.label} </span>\n {part.value}\n </span>\n ))}\n </span>\n );\n}\n","import { MetricsCardActions } from './metrics-card-actions';\nimport { MetricsCardContent } from './metrics-card-content';\nimport { MetricsCardError } from './metrics-card-error';\nimport { MetricsCardHeadline } from './metrics-card-headline';\nimport { MetricsCardLoading } from './metrics-card-loading';\nimport { MetricsCardNoData } from './metrics-card-no-data';\nimport { MetricsCardRoot } from './metrics-card-root';\nimport { MetricsCardTitle } from './metrics-card-title';\nimport { MetricsCardTitleMenu } from './metrics-card-title-menu';\nimport { MetricsCardToolbar } from './metrics-card-toolbar';\nimport { MetricsCardTopBar } from './metrics-card-top-bar';\nimport { MetricsCardTotal } from './metrics-card-total';\nimport { MetricsKpiCard } from '@/ds/components/MetricsKpiCard';\n\nexport const MetricsCard = Object.assign(MetricsCardRoot, {\n Root: MetricsCardRoot,\n Kpi: MetricsKpiCard,\n TopBar: MetricsCardTopBar,\n Toolbar: MetricsCardToolbar,\n Actions: MetricsCardActions,\n Title: MetricsCardTitle,\n TitleMenu: MetricsCardTitleMenu,\n Total: MetricsCardTotal,\n Headline: MetricsCardHeadline,\n Loading: MetricsCardLoading,\n Error: MetricsCardError,\n Content: MetricsCardContent,\n NoData: MetricsCardNoData,\n});\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Workflow-C3SlEdP-.js","names":["_Fragment","_Fragment","_Fragment","_Fragment","_Fragment","_Fragment"],"sources":["../src/ds/components/Workflow/workflow-canvas-inset.ts","../src/ds/components/Workflow/cards/workflow-card-kind.ts","../src/ds/components/Workflow/cards/workflow-type-badge.tsx","../src/ds/components/Workflow/cards/workflow-card-badge-utils.ts","../src/ds/components/Workflow/cards/workflow-clock.tsx","../src/ds/components/Workflow/cards/condition/workflow-condition-expression.ts","../src/ds/components/Workflow/cards/condition/workflow-condition-source.tsx","../src/ds/components/Workflow/cards/condition/workflow-condition-card-view.tsx","../src/ds/components/Workflow/cards/timing/workflow-time-dial.tsx","../src/ds/components/Workflow/cards/timing/workflow-timing.tsx","../src/ds/components/Workflow/cards/step/workflow-step-card-view.tsx","../src/ds/components/Workflow/data/workflow-code-dialog-content.tsx","../src/ds/components/Workflow/data/workflow-edge-data-button.tsx","../src/ds/components/Workflow/graph/types.ts","../src/ds/components/Workflow/graph/workflow-boundary-node.tsx","../src/ds/components/Workflow/graph/workflow-data-edge-view.tsx","../src/ds/components/Workflow/graph/workflow-camera-duration.ts","../src/ds/components/Workflow/graph/workflow-graph-groups.tsx","../src/ds/components/Workflow/graph/zoom-slider.tsx","../src/ds/components/Workflow/graph/workflow-graph-canvas.tsx","../src/ds/components/Workflow/graph/workflow-node-frame.tsx","../src/ds/components/Workflow/controls/workflow-debug-controls.tsx","../src/ds/components/Workflow/graph/workflow-graph-placeholder.tsx","../src/ds/components/Workflow/cards/condition/workflow-condition-card.tsx","../src/ds/components/Workflow/controls/workflow-step-actions.tsx","../src/ds/components/Workflow/controls/workflow-step-action.tsx"],"sourcesContent":["import type { FitViewOptions } from '@xyflow/react';\nimport { createContext } from 'react';\n\nexport const WorkflowCanvasInsetContext = createContext(0);\n\nexport function workflowFitOptions(leftInset: number, isInline = false): FitViewOptions {\n return {\n maxZoom: 1,\n padding: isInline ? '20px' : { left: `${leftInset + 40}px`, right: '40px', top: '40px', bottom: '64px' },\n };\n}\n","import {\n ArrowRightLeft,\n Bot,\n Braces,\n CalendarClock,\n GitBranch,\n GitFork,\n Repeat2,\n Timer,\n Workflow,\n Wrench,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { WorkflowStepCardViewProps } from '../types';\nimport type { BadgeVariant } from '@/ds/components/Badge';\n\nexport type WorkflowTypeBadgeProps = Pick<\n WorkflowStepCardViewProps,\n 'nodeKind' | 'isForEach' | 'isNestedWorkflowStep' | 'stepGraph' | 'isParallel' | 'mapConfig' | 'date' | 'duration'\n>;\n\nexport function getWorkflowCardBadge(props: WorkflowTypeBadgeProps): {\n label: string;\n Icon: LucideIcon;\n tone: BadgeVariant;\n indicator?: string;\n} {\n if (props.isForEach) return { label: 'For each', tone: 'orange', Icon: Repeat2, indicator: 'foreach' };\n if (props.isNestedWorkflowStep || props.stepGraph)\n return { label: 'Workflow', tone: 'purple', Icon: Workflow, indicator: 'workflow' };\n if (props.isParallel && !props.nodeKind)\n return { label: 'Parallel', tone: 'blue', Icon: GitFork, indicator: 'parallel' };\n if (props.nodeKind === 'map' || props.mapConfig)\n return { label: 'Map', tone: 'orange', Icon: ArrowRightLeft, indicator: 'map' };\n if (props.nodeKind === 'wait-until' || props.date)\n return { label: 'Wait until', tone: 'purple', Icon: CalendarClock, indicator: 'sleep-until' };\n if (props.nodeKind === 'delay' || props.duration !== undefined)\n return { label: 'Delay', tone: 'purple', Icon: Timer, indicator: 'sleep' };\n if (props.nodeKind === 'agent') return { label: 'Agent', tone: 'cyan', Icon: Bot };\n if (props.nodeKind === 'tool') return { label: 'Tool', tone: 'pink', Icon: Wrench };\n if (props.nodeKind === 'classifier') return { label: 'Classifier', tone: 'blue', Icon: GitBranch };\n return { label: 'Step', tone: 'neutral', Icon: Braces };\n}\n","import { getWorkflowCardBadge } from './workflow-card-kind';\nimport type { WorkflowTypeBadgeProps } from './workflow-card-kind';\nimport { Badge } from '@/ds/components/Badge';\n\nexport function WorkflowTypeBadge(props: WorkflowTypeBadgeProps) {\n const { label, Icon, tone } = getWorkflowCardBadge(props);\n return (\n <Badge size=\"xs\" variant={tone} icon={<Icon aria-hidden />}>\n {label}\n </Badge>\n );\n}\n","import {\n CalendarClock,\n Clock,\n CornerDownRight,\n GitBranch,\n Layers,\n List,\n Network,\n PlayCircle,\n RefreshCw,\n Repeat,\n Repeat1,\n Timer,\n Workflow,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport const BADGE_COLORS = {\n sleep: 'var(--badge-purple-indicator)',\n forEach: 'var(--badge-orange-indicator)',\n map: 'var(--badge-orange-indicator)',\n parallel: 'var(--badge-blue-indicator)',\n suspend: 'var(--badge-pink-indicator)',\n after: 'var(--badge-cyan-indicator)',\n workflow: 'var(--badge-purple-indicator)',\n when: 'var(--badge-amber-indicator)',\n dountil: 'var(--badge-purple-indicator)',\n dowhile: 'var(--badge-cyan-indicator)',\n until: 'var(--badge-amber-indicator)',\n while: 'var(--badge-green-indicator)',\n if: 'var(--badge-blue-indicator)',\n else: 'var(--muted-foreground)',\n} as const;\n\nexport const BADGE_ICONS = {\n sleep: Timer,\n sleepUntil: CalendarClock,\n forEach: List,\n map: List,\n parallel: Workflow,\n suspend: PlayCircle,\n after: Clock,\n workflow: Layers,\n when: Network,\n dountil: Repeat1,\n dowhile: Repeat,\n until: Timer,\n while: RefreshCw,\n if: GitBranch,\n else: CornerDownRight,\n} as const;\n\nexport interface ConditionIconConfig {\n icon: LucideIcon | undefined;\n color: string | undefined;\n}\n\nexport interface WorkflowCardIndicator {\n id: string;\n label: string;\n icon: LucideIcon;\n color: string;\n}\n\nconst CONDITION_LABELS: Record<string, string> = {\n when: 'When condition',\n dountil: 'Do until condition',\n dowhile: 'Do while condition',\n until: 'Until condition',\n while: 'While condition',\n if: 'If condition',\n else: 'Else condition',\n and: 'And condition',\n or: 'Or condition',\n not: 'Not condition',\n};\n\nexport const getConditionIconAndColor = (type?: string): ConditionIconConfig => {\n switch (type) {\n case 'when':\n return { icon: BADGE_ICONS.when, color: BADGE_COLORS.when };\n case 'dountil':\n return { icon: BADGE_ICONS.dountil, color: BADGE_COLORS.dountil };\n case 'dowhile':\n return { icon: BADGE_ICONS.dowhile, color: BADGE_COLORS.dowhile };\n case 'until':\n return { icon: BADGE_ICONS.until, color: BADGE_COLORS.until };\n case 'while':\n return { icon: BADGE_ICONS.while, color: BADGE_COLORS.while };\n case 'if':\n return { icon: BADGE_ICONS.if, color: BADGE_COLORS.if };\n case 'else':\n return { icon: BADGE_ICONS.else, color: BADGE_COLORS.else };\n case 'and':\n case 'or':\n case 'not':\n return { icon: BADGE_ICONS.when, color: BADGE_COLORS.when };\n default:\n return { icon: undefined, color: undefined };\n }\n};\n\nexport const getConditionIndicator = (type?: string): WorkflowCardIndicator | undefined => {\n const { icon, color } = getConditionIconAndColor(type);\n\n if (!type || !icon || !color) {\n return undefined;\n }\n\n return {\n id: `condition-${type}`,\n label: CONDITION_LABELS[type] ?? `${type} condition`,\n icon,\n color,\n };\n};\n\nexport interface WorkflowNodeBadgeInfo {\n isSleepNode: boolean;\n isForEachNode: boolean;\n isMapNode: boolean;\n isNestedWorkflow: boolean;\n hasSpecialBadge: boolean;\n}\n\nexport interface WorkflowCardBadgesProps {\n duration?: number;\n date?: Date;\n isForEach?: boolean;\n mapConfig?: string;\n canSuspend?: boolean;\n isParallel?: boolean;\n stepGraph?: unknown;\n}\n\nexport const getNodeBadgeInfo = ({\n duration,\n date,\n isForEach,\n mapConfig,\n canSuspend,\n isParallel,\n stepGraph,\n}: WorkflowCardBadgesProps): WorkflowNodeBadgeInfo => {\n const isSleepNode = Boolean(duration || date);\n const isForEachNode = Boolean(isForEach);\n const isMapNode = Boolean(mapConfig && !isForEach);\n const isNestedWorkflow = Boolean(stepGraph);\n const hasSpecialBadge =\n isSleepNode || Boolean(canSuspend || isParallel) || isForEachNode || isMapNode || isNestedWorkflow;\n\n return {\n isSleepNode,\n isForEachNode,\n isMapNode,\n isNestedWorkflow,\n hasSpecialBadge,\n };\n};\n\nexport const getNodeIndicators = (props: WorkflowCardBadgesProps): WorkflowCardIndicator[] => {\n const { isSleepNode, isForEachNode, isMapNode, isNestedWorkflow } = getNodeBadgeInfo(props);\n const indicators: WorkflowCardIndicator[] = [];\n\n if (isSleepNode) {\n indicators.push({\n id: props.date ? 'sleep-until' : 'sleep',\n label: props.date ? 'Sleep until step' : 'Sleep step',\n icon: props.date ? BADGE_ICONS.sleepUntil : BADGE_ICONS.sleep,\n color: BADGE_COLORS.sleep,\n });\n }\n\n if (props.canSuspend) {\n indicators.push({\n id: 'suspend',\n label: 'Suspend/resume step',\n icon: BADGE_ICONS.suspend,\n color: BADGE_COLORS.suspend,\n });\n }\n\n if (props.isParallel) {\n indicators.push({\n id: 'parallel',\n label: 'Parallel step',\n icon: BADGE_ICONS.parallel,\n color: BADGE_COLORS.parallel,\n });\n }\n\n if (isNestedWorkflow) {\n indicators.push({\n id: 'workflow',\n label: 'Nested workflow step',\n icon: BADGE_ICONS.workflow,\n color: BADGE_COLORS.workflow,\n });\n }\n\n if (isForEachNode) {\n indicators.push({\n id: 'foreach',\n label: 'Foreach step',\n icon: BADGE_ICONS.forEach,\n color: BADGE_COLORS.forEach,\n });\n }\n\n if (isMapNode) {\n indicators.push({\n id: 'map',\n label: 'Map step',\n icon: BADGE_ICONS.map,\n color: BADGE_COLORS.map,\n });\n }\n\n return indicators;\n};\n","import { useEffect, useState } from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDuration } from '@/utils/duration';\n\ninterface WorkflowClockProps {\n startedAt: number;\n endedAt?: number;\n isRunning?: boolean;\n spansSuspension?: boolean;\n}\n\nexport const WorkflowClock = ({ startedAt, endedAt, isRunning = false, spansSuspension }: WorkflowClockProps) => {\n if (isRunning && endedAt === undefined && Number.isFinite(startedAt)) {\n return <RunningWorkflowClock key={startedAt} startedAt={startedAt} spansSuspension={spansSuspension} />;\n }\n return <ElapsedTime startedAt={startedAt} endedAt={endedAt} spansSuspension={spansSuspension} />;\n};\n\nfunction RunningWorkflowClock({ startedAt, spansSuspension }: Omit<WorkflowClockProps, 'isRunning'>) {\n const [time, setTime] = useState(() => Date.now());\n useEffect(() => {\n const interval = setInterval(() => setTime(Date.now()), 100);\n return () => clearInterval(interval);\n }, []);\n return <ElapsedTime startedAt={startedAt} endedAt={time} spansSuspension={spansSuspension} />;\n}\n\nfunction ElapsedTime({ startedAt, endedAt, spansSuspension }: Omit<WorkflowClockProps, 'isRunning'>) {\n const elapsed = endedAt === undefined ? undefined : formatDuration(endedAt - startedAt);\n\n return (\n <Txt\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className=\"whitespace-nowrap\"\n title={elapsed && spansSuspension ? 'Includes time spent suspended waiting for input' : undefined}\n >\n {elapsed === undefined ? <span aria-label=\"Timing unavailable\">—</span> : elapsed}\n </Txt>\n );\n}\n","import type { WorkflowCardCondition } from '../../types';\n\nexport function conditionExpression(condition: WorkflowCardCondition) {\n if (condition.fnString !== undefined) return condition.fnString;\n return JSON.stringify({ ref: condition.ref, query: condition.query, conj: condition.conj }, null, 2);\n}\n","import { useEffect, useState } from 'react';\nimport { Code } from '@/ds/components/Code';\nimport { formatTypeScript } from '@/utils/formatting';\n\nconst MAX_FORMATTED_SOURCE_CHARS = 10_000;\n\nexport function WorkflowConditionSource({ source }: { source: string }) {\n if (source.length > MAX_FORMATTED_SOURCE_CHARS) return <Code code={source} />;\n return <FormattedConditionSource key={source} source={source} />;\n}\n\nfunction FormattedConditionSource({ source }: { source: string }) {\n const [formatted, setFormatted] = useState<string>();\n\n useEffect(() => {\n let cancelled = false;\n formatTypeScript(source)\n .then(expression => {\n if (!cancelled) setFormatted(expression.trim());\n })\n .catch(() => undefined);\n return () => {\n cancelled = true;\n };\n }, [source]);\n\n return <Code code={formatted ?? source} lang={formatted === undefined ? undefined : 'typescript'} />;\n}\n","import { Braces } from 'lucide-react';\nimport type { WorkflowConditionCardViewProps } from '../../types';\nimport { getConditionIndicator } from '../workflow-card-badge-utils';\nimport { conditionExpression } from './workflow-condition-expression';\nimport { WorkflowConditionSource } from './workflow-condition-source';\nimport { Badge } from '@/ds/components/Badge';\nimport { Code } from '@/ds/components/Code';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\nconst surfaceClasses = 'rounded-[calc(var(--radius-xl)-2px)] bg-card text-meta';\n\nexport function WorkflowConditionCardView({\n type,\n conditions,\n previousDisplayStatus,\n actionBar,\n}: WorkflowConditionCardViewProps) {\n const indicator = getConditionIndicator(type);\n const Icon = indicator?.icon ?? Braces;\n const label = indicator?.label.replace(/ condition$/, '') ?? 'Condition';\n const occurrences = new Map<string, number>();\n const sources = conditions.map(condition => {\n const expression = conditionExpression(condition);\n const identity = `${condition.type}:${expression}`;\n const occurrence = occurrences.get(identity) ?? 0;\n occurrences.set(identity, occurrence + 1);\n return { condition, expression, key: `${identity}:${occurrence}` };\n });\n const copyContent =\n conditions.length > 1 ? JSON.stringify(conditions, null, 2) : sources.map(source => source.expression).join('\\n');\n const hasExpression = type !== 'else' && sources.some(({ expression }) => expression.trim().length > 0);\n\n return (\n <div\n className={`${raisedSurfaceStyle} w-[274px] overflow-hidden rounded-xl p-0.5 has-focus-visible:outline-1 has-focus-visible:outline-offset-4 has-focus-visible:outline-border-focus`}\n data-workflow-node\n data-testid=\"workflow-condition-node\"\n data-workflow-step-status={previousDisplayStatus ?? 'idle'}\n >\n <div className=\"flex h-[46px] items-center gap-2 px-2.5 text-meta text-muted-foreground\">\n <Badge size=\"xs\" variant={type === 'else' ? 'neutral' : 'amber'} emphasis=\"subtle\" icon={<Icon aria-hidden />}>\n {label}\n </Badge>\n {hasExpression && (\n <>\n <span className=\"ml-auto\">Expression</span>\n <CopyButton content={copyContent} tooltip=\"Copy expression\" className=\"nodrag nopan\" />\n </>\n )}\n </div>\n {hasExpression ? (\n <div\n role=\"region\"\n aria-label=\"Condition details\"\n tabIndex={0}\n className={`${surfaceClasses} nodrag nopan nowheel max-h-55 overflow-auto p-3.5 text-foreground [&_pre]:leading-relaxed [&_pre]:whitespace-pre-wrap`}\n >\n {sources.map(({ condition, expression, key }) => (\n <div key={key}>\n {condition.conj && (\n <Badge size=\"xs\" variant=\"neutral\">\n {condition.conj.toUpperCase()}\n </Badge>\n )}\n {condition.fnString !== undefined ? (\n <WorkflowConditionSource source={condition.fnString} />\n ) : (\n <Code code={expression} />\n )}\n </div>\n ))}\n </div>\n ) : (\n <p className={`${surfaceClasses} p-3 text-muted-foreground`}>\n {type === 'else' ? 'When no other branch matches' : 'Condition expression unavailable'}\n </p>\n )}\n {actionBar && <div className=\"nodrag nopan flex justify-end px-2.5 py-1.5 empty:hidden\">{actionBar}</div>}\n </div>\n );\n}\n","import type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport type DurationUnit = 'ms' | 's' | 'min' | 'h';\n\nconst DIAL_CENTER = 58;\nconst CLOCK_TICK_ANGLES = Array.from({ length: 60 }, (_, index) => index * 6);\nconst DURATION_TICK_ANGLES = Array.from({ length: 41 }, (_, index) => -120 + index * 6);\n\nfunction pointAt(angle: number, radius: number) {\n const radians = (angle * Math.PI) / 180;\n return {\n x: DIAL_CENTER + Math.sin(radians) * radius,\n y: DIAL_CENTER - Math.cos(radians) * radius,\n };\n}\n\nfunction DialTick({ angle, major, className, ...props }: ComponentProps<'line'> & { angle: number; major: boolean }) {\n const outer = pointAt(angle, 49);\n const inner = pointAt(angle, major ? 38 : 43);\n return (\n <line\n x1={inner.x}\n y1={inner.y}\n x2={outer.x}\n y2={outer.y}\n className={cn(major ? 'stroke-placeholder' : 'stroke-border-strong', className)}\n {...props}\n />\n );\n}\n\nfunction DialHand({ angle, length }: { angle: number; length: number }) {\n const tip = pointAt(angle, length);\n return (\n <line\n x1={DIAL_CENTER}\n y1={DIAL_CENTER}\n x2={tip.x}\n y2={tip.y}\n className=\"stroke-1.5 stroke-muted-foreground\"\n strokeLinecap=\"round\"\n />\n );\n}\n\nfunction DialFace({ tickAngles, children }: { tickAngles: number[]; children: ReactNode }) {\n return (\n <span className=\"block size-28 shrink-0 text-muted-foreground\" aria-hidden>\n <svg viewBox=\"0 0 116 116\" fill=\"none\" className=\"block size-full overflow-visible\">\n {tickAngles.map((angle, index) => (\n <DialTick key={angle} angle={angle} major={index % 5 === 0} />\n ))}\n {children}\n </svg>\n </span>\n );\n}\n\nexport function ClockDial({ date }: { date: Date }) {\n const minutes = date.getUTCMinutes();\n return (\n <DialFace tickAngles={CLOCK_TICK_ANGLES}>\n <DialHand angle={((date.getUTCHours() % 12) + minutes / 60) * 30} length={26} />\n <DialHand angle={minutes * 6} length={37} />\n <circle cx={DIAL_CENTER} cy={DIAL_CENTER} r={2} fill=\"currentColor\" />\n </DialFace>\n );\n}\n\nexport function DurationDial({ amount, unit }: { amount: number; unit: DurationUnit }) {\n const scale = Math.max({ h: 24, ms: 1000, s: 60, min: 60 }[unit], Math.ceil(amount / 10) * 10);\n return (\n <DialFace tickAngles={DURATION_TICK_ANGLES}>\n <DialTick\n angle={-120 + (amount / scale) * 240}\n major\n className=\"stroke-foreground stroke-2\"\n strokeLinecap=\"round\"\n />\n <text x={DIAL_CENTER} y={94} textAnchor=\"middle\" className=\"fill-muted-foreground font-body text-meta\">\n {scale} {unit}\n </text>\n <text x={DIAL_CENTER} y={106} textAnchor=\"middle\" className=\"fill-placeholder font-body text-meta\">\n scale\n </text>\n </DialFace>\n );\n}\n","import type { ReactNode } from 'react';\nimport type { WorkflowStepCardViewProps } from '../../types';\nimport { ClockDial, DurationDial } from './workflow-time-dial';\nimport type { DurationUnit } from './workflow-time-dial';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate, formatShortDate } from '@/utils/date-format';\nimport { formatDuration } from '@/utils/duration';\n\nconst captionClasses = 'text-meta tracking-wider whitespace-nowrap text-muted-foreground uppercase';\n\nfunction durationReading(duration: number): { amount: number; unit: DurationUnit } {\n if (duration < 1000) return { amount: duration, unit: 'ms' };\n if (duration < 60000) return { amount: duration / 1000, unit: 's' };\n if (duration < 3600000) return { amount: duration / 60000, unit: 'min' };\n return { amount: duration / 3600000, unit: 'h' };\n}\n\nfunction TimingReading({\n value,\n unit,\n caption,\n dial,\n}: {\n value: string;\n unit?: string;\n caption: string;\n dial: ReactNode;\n}) {\n return (\n <span className=\"mt-1 flex min-h-27 items-center justify-between gap-1 text-foreground\">\n <span className=\"z-10 flex min-w-0 flex-col gap-2\">\n <Txt\n as=\"span\"\n variant=\"display\"\n className=\"flex items-baseline gap-1 leading-none tracking-tighter whitespace-nowrap tabular-nums\"\n >\n {value}\n {unit && <small className=\"text-meta tracking-normal text-muted-foreground\">{unit}</small>}\n </Txt>\n <span className={captionClasses}>{caption}</span>\n </span>\n {dial}\n </span>\n );\n}\n\nexport function WorkflowTiming({ duration, date }: Pick<WorkflowStepCardViewProps, 'duration' | 'date'>) {\n if (date) {\n const scheduled = new Date(date);\n if (!Number.isFinite(scheduled.getTime())) {\n return <span className={captionClasses}>Schedule unavailable</span>;\n }\n return (\n <TimingReading\n value={formatDate(scheduled, 'time', { timeZone: 'UTC' }) ?? ''}\n unit=\"UTC\"\n caption={formatShortDate(scheduled, { timeZone: 'UTC', now: 0 }) ?? ''}\n dial={<ClockDial date={scheduled} />}\n />\n );\n }\n if (duration === undefined) return null;\n if (!Number.isFinite(duration) || duration < 0) {\n return <span className={captionClasses}>Delay unavailable</span>;\n }\n const reading = durationReading(duration);\n return (\n <TimingReading\n value={formatDuration(duration) ?? ''}\n caption=\"Configured delay\"\n dial={<DurationDial {...reading} />}\n />\n );\n}\n","import { useState } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { WorkflowCardDisplayStatus, WorkflowStepCardViewProps } from '../../types';\nimport { WorkflowTiming } from '../timing/workflow-timing';\nimport { getNodeIndicators } from '../workflow-card-badge-utils';\nimport { getWorkflowCardBadge } from '../workflow-card-kind';\nimport { WorkflowClock } from '../workflow-clock';\nimport { WorkflowTypeBadge } from '../workflow-type-badge';\nimport { ActivityWick } from '@/ds/components/Activity';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle, surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/utils/cn';\n\ntype ReportedStatus = NonNullable<WorkflowCardDisplayStatus>;\n\nconst statusLabels = {\n running: 'Running',\n success: 'Completed',\n failed: 'Failed',\n suspended: 'Needs input',\n waiting: 'Waiting',\n paused: 'Paused',\n skipped: 'Skipped',\n canceled: 'Canceled',\n tripwire: 'Tripwire blocked',\n} satisfies Record<ReportedStatus, string>;\n\nconst statusLineClasses: Partial<Record<ReportedStatus, string>> = {\n success: 'after:bg-success-indicator',\n failed: 'after:bg-destructive-indicator',\n tripwire: 'after:bg-warning-indicator',\n waiting: 'after:bg-warning-indicator',\n paused: 'after:bg-warning-indicator',\n skipped: 'after:bg-muted-foreground',\n};\n\nconst footerStatusClasses: Partial<Record<ReportedStatus, string>> = {\n success: 'text-success-indicator',\n failed: 'text-destructive-foreground',\n suspended: 'text-warning-foreground',\n tripwire: 'text-warning-foreground',\n};\n\nconst suspendedWickStyle: CSSProperties & { '--belt-hue': string } = { '--belt-hue': 'var(--warning-indicator)' };\n\nexport function WorkflowStepCardView(props: WorkflowStepCardViewProps) {\n const {\n label,\n description,\n displayStatus,\n stepKey,\n isSelected,\n isWaiting,\n isHovered,\n onHoverChange,\n onSelect,\n isForEach,\n foreachProgress,\n startedAt,\n endedAt,\n actionBar,\n body,\n } = props;\n const [expanded, setExpanded] = useState(props.initiallyOpen ?? false);\n const isRunning = displayStatus === 'running';\n const isSuspended = displayStatus === 'suspended';\n const reportedStatusLabel =\n displayStatus && Object.hasOwn(statusLabels, displayStatus) ? statusLabels[displayStatus] : undefined;\n const statusLabel = displayStatus ? (reportedStatusLabel ?? 'Status unavailable') : 'Not started';\n const kind = getWorkflowCardBadge(props);\n const capabilities = getNodeIndicators(props)\n .filter(indicator => indicator.id !== kind.indicator)\n .map(indicator => indicator.label.replace(/ step$/, ''));\n const hasActivity = isRunning || isSuspended;\n const isStacked = isForEach && !expanded;\n const isBodyExpanded = Boolean(body) && expanded;\n const Summary = onSelect ? 'button' : 'div';\n\n return (\n <div\n className={cn(\n 'relative isolate w-[274px]',\n isBodyExpanded && 'w-172',\n isStacked &&\n 'pb-3 before:absolute before:inset-x-1.5 before:top-2 before:bottom-1.5 before:-z-10 before:rounded-xl before:border before:border-border before:bg-card after:absolute after:inset-x-3 after:top-3.5 after:bottom-0 after:-z-20 after:rounded-xl after:border after:border-border after:bg-card',\n )}\n >\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className={cn(\n raisedSurfaceStyle,\n 'relative rounded-xl border border-transparent text-foreground transition-[border-color,background-color,box-shadow] [--card-radius:calc(var(--radius-xl)-2px)] motion-reduce:transition-none',\n 'after:pointer-events-none after:absolute after:inset-x-4 after:-top-px after:h-px after:mask-x-from-76%',\n displayStatus && statusLineClasses[displayStatus],\n 'has-focus-visible:outline-1 has-focus-visible:outline-offset-4 has-focus-visible:outline-border-focus',\n isSelected && 'outline-1 outline-offset-4 outline-border-focus',\n isBodyExpanded && 'border-dashed border-muted-foreground/40 shadow-none',\n isWaiting && 'border-info-indicator',\n isHovered && !isSelected && 'bg-muted',\n )}\n data-workflow-node\n data-workflow-step-key={stepKey}\n data-workflow-step-status={displayStatus ?? 'idle'}\n data-workflow-step-active={isSelected || undefined}\n data-workflow-step-waiting={isWaiting || undefined}\n data-workflow-step-hovered={isHovered || undefined}\n data-testid={props.isNestedWorkflowStep ? 'workflow-nested-node' : 'workflow-default-node'}\n onMouseEnter={() => onHoverChange?.(true)}\n onMouseLeave={() => onHoverChange?.(false)}\n >\n <div className=\"m-0.5 overflow-hidden rounded-(--card-radius)\">\n <Summary\n className={cn(\n 'nodrag nopan flex w-full flex-col text-left',\n onSelect && 'group cursor-pointer focus-visible:outline-hidden',\n )}\n type={onSelect ? 'button' : undefined}\n aria-label={onSelect ? `Inspect ${label}` : undefined}\n aria-pressed={onSelect ? Boolean(isSelected) : undefined}\n onClick={onSelect}\n >\n <span className=\"flex items-start justify-between gap-2.5 rounded-(--card-radius) px-3.5 py-3 group-hover:bg-fill-subtle\">\n <Txt as=\"span\" variant=\"column\" tone=\"ink\" className=\"min-w-0 wrap-anywhere\" title={label}>\n <Shimmer active={isRunning}>{label}</Shimmer>\n </Txt>\n <WorkflowTypeBadge {...props} />\n </span>\n <span className=\"flex flex-col gap-2 rounded-t-(--card-radius) bg-card px-3.5 py-3 empty:py-1.5\">\n {description && (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"wrap-anywhere\">\n {description}\n </Txt>\n )}\n <WorkflowTiming duration={props.duration} date={props.date} />\n {isWaiting && (\n <Txt as=\"span\" variant=\"meta\" className=\"text-info-indicator\">\n Next step in debug\n </Txt>\n )}\n {isForEach && foreachProgress && (\n <Txt as=\"span\" variant=\"meta\" className=\"flex flex-col gap-2 py-1\">\n <span>\n <strong>{foreachProgress.completedCount}</strong> of {foreachProgress.totalCount} items complete\n </span>\n {foreachProgress.totalCount > 0 ? (\n <progress\n className=\"h-1 w-full appearance-none border-0 bg-muted accent-success-indicator [&::-moz-progress-bar]:bg-success-indicator [&::-webkit-progress-bar]:bg-muted [&::-webkit-progress-value]:bg-success-indicator\"\n aria-label={`${label} completed items`}\n value={foreachProgress.completedCount}\n max={foreachProgress.totalCount}\n />\n ) : (\n <span>No items to process</span>\n )}\n </Txt>\n )}\n {capabilities.length > 0 && (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\">\n {capabilities.join(' · ')}\n </Txt>\n )}\n </span>\n </Summary>\n <div\n className={cn(\n 'nodrag nopan flex min-h-7 items-center justify-between gap-2 bg-card px-3.5 pb-2.5 text-meta text-muted-foreground',\n displayStatus && footerStatusClasses[displayStatus],\n )}\n >\n <span role=\"status\" className={isRunning ? 'sr-only motion-reduce:not-sr-only' : undefined}>\n {statusLabel}\n </span>\n {startedAt !== undefined && (\n <span className=\"ml-auto\">\n <WorkflowClock\n startedAt={startedAt}\n endedAt={endedAt}\n isRunning={isRunning}\n spansSuspension={props.spansSuspension}\n />\n </span>\n )}\n {actionBar}\n </div>\n\n {body && (\n <>\n <CollapsibleTrigger\n className={cn(\n surfaceStateLayerStyle,\n 'nodrag nopan flex min-h-11 w-full items-center justify-between border-t border-border bg-card px-3.5 py-2.5 text-caption focus-visible:outline-hidden',\n )}\n >\n <span>\n {expanded ? 'Collapse' : 'Expand'} {isForEach ? 'loop' : 'workflow'}\n </span>\n <DisclosureChevron direction=\"right\" className=\"size-3.5\" />\n </CollapsibleTrigger>\n <CollapsibleContent className=\"h-155 overflow-hidden border-t border-dashed border-border\">\n {body}\n </CollapsibleContent>\n </>\n )}\n </div>\n {hasActivity && (\n <ActivityWick\n status={isSuspended ? 'ready' : 'working'}\n aria-hidden\n className=\"before:hidden\"\n style={isSuspended ? suspendedWickStyle : undefined}\n />\n )}\n </Collapsible>\n </div>\n );\n}\n","import { javascript } from '@codemirror/lang-javascript';\nimport { jsonLanguage } from '@codemirror/lang-json';\nimport { EditorView } from '@codemirror/view';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { codeFoldGutter, useCodemirrorTheme } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\n\nexport const WorkflowCodeContent = ({\n data,\n language = 'auto',\n}: {\n data: unknown;\n language?: 'json' | 'javascript' | 'auto';\n}) => {\n const theme = useCodemirrorTheme();\n\n const getExtensions = (content: string) => {\n if (language === 'javascript') {\n return [javascript(), EditorView.lineWrapping];\n }\n if (language === 'json') {\n return [jsonLanguage, EditorView.lineWrapping];\n }\n\n try {\n JSON.parse(content);\n return [jsonLanguage, EditorView.lineWrapping];\n } catch {\n if (\n content.includes('=>') ||\n content.includes('function') ||\n content.includes('const ') ||\n content.includes('return ')\n ) {\n return [javascript(), EditorView.lineWrapping];\n }\n return [EditorView.lineWrapping];\n }\n };\n\n if (typeof data !== 'string') {\n const content = JSON.stringify(data, null, 2);\n return (\n <div className=\"relative overflow-auto\" style={{ maxHeight: 500 }}>\n <div className=\"absolute top-2 right-2 z-10 rounded-full bg-muted\">\n <CopyButton content={content} />\n </div>\n <div className=\"rounded-lg bg-muted p-4\">\n <CodeMirror\n value={content}\n theme={theme}\n extensions={[jsonLanguage, EditorView.lineWrapping, codeFoldGutter]}\n basicSetup={{ foldGutter: false }}\n />\n </div>\n </div>\n );\n }\n\n const extensions = getExtensions(data);\n\n let displayContent = data;\n try {\n const json = JSON.parse(data);\n displayContent = JSON.stringify(json, null, 2);\n } catch {}\n\n return (\n <div className=\"relative overflow-auto\" style={{ maxHeight: 500 }}>\n <div className=\"absolute top-2 right-2 z-10 rounded-full bg-muted\">\n <CopyButton content={data} />\n </div>\n <div className=\"rounded-lg bg-muted p-4\">\n <CodeMirror\n value={displayContent}\n theme={theme}\n extensions={[...extensions, codeFoldGutter]}\n basicSetup={{ foldGutter: false }}\n />\n </div>\n </div>\n );\n};\n","import { Database } from 'lucide-react';\nimport { useState } from 'react';\nimport type { MouseEventHandler } from 'react';\nimport { WorkflowCodeContent } from './workflow-code-dialog-content';\nimport { Button } from '@/ds/components/Button';\nimport { Dialog, DialogBody, DialogContent, DialogHeader, DialogTitle } from '@/ds/components/Dialog';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle, surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface WorkflowEdgeDataButtonProps {\n previousStepId?: string;\n output?: unknown;\n label?: string;\n selected?: boolean;\n onInspect?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const WorkflowEdgeDataButton = ({\n previousStepId,\n output,\n label,\n selected,\n onInspect,\n}: WorkflowEdgeDataButtonProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const dataLabel = label ?? (previousStepId ? `${previousStepId} output` : 'Previous output');\n\n if (output === undefined) {\n return null;\n }\n\n return (\n <>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={onInspect ?? (() => setIsOpen(true))}\n aria-label={`View ${dataLabel}`}\n aria-pressed={selected}\n className={cn(\n raisedSurfaceStyle,\n surfaceStateLayerStyle,\n 'h-7 rounded-lg px-2 text-foreground aria-pressed:before:bg-fill',\n )}\n icon={<Database className=\"text-muted-foreground\" />}\n >\n Data\n </Button>\n\n <Dialog open={isOpen} onOpenChange={setIsOpen}>\n <DialogContent size=\"xl\">\n <DialogHeader>\n <DialogTitle>Step output</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <div className=\"min-w-0 rounded-lg border border-border bg-background p-3\">\n <Txt variant=\"caption\" tone=\"ink\" className=\"mb-2 block\">\n {dataLabel}\n </Txt>\n <WorkflowCodeContent data={output} />\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n </>\n );\n};\n","import type { Edge, Node } from '@xyflow/react';\n\nexport const WORKFLOW_DATA_EDGE_TYPE = 'workflow-data-edge';\nexport const WORKFLOW_BOUNDARY_NODE_TYPE = 'workflow-boundary-node';\n\nexport interface WorkflowDataEdgeData {\n [key: string]: unknown;\n previousStepId?: string;\n nextStepId?: string;\n conditionNode?: boolean;\n boundaryPayload?: 'workflow-input' | 'workflow-output';\n edgeStatus?: 'success' | 'idle';\n dataLabelPlacement?: 'source' | 'hidden';\n}\n\nexport type WorkflowDataEdgeModel = Edge<WorkflowDataEdgeData, typeof WORKFLOW_DATA_EDGE_TYPE>;\n\nexport type WorkflowBoundaryNodeData = {\n boundaryRole: 'start' | 'end';\n label: string;\n};\n\nexport type WorkflowBoundaryNodeModel = Node<WorkflowBoundaryNodeData, typeof WORKFLOW_BOUNDARY_NODE_TYPE>;\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps } from '@xyflow/react';\n\nimport type { WorkflowBoundaryNodeModel } from './types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/utils/cn';\n\nexport const WorkflowBoundaryNode = ({ data }: NodeProps<WorkflowBoundaryNodeModel>) => {\n const isStart = data.boundaryRole === 'start';\n\n return (\n <>\n {!isStart && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div\n data-workflow-boundary-node\n data-testid={`workflow-boundary-${data.boundaryRole}`}\n className={cn(\n 'relative flex h-[38px] w-28 items-center justify-center text-muted-foreground after:absolute after:inset-x-0 after:mask-x-from-60%',\n isStart\n ? 'after:bottom-0 after:h-px after:bg-muted-foreground'\n : 'after:top-0 after:h-1 after:border-y after:border-muted-foreground',\n )}\n >\n <Txt variant=\"meta\">{data.label}</Txt>\n </div>\n {isStart && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </>\n );\n};\n","import { BaseEdge, EdgeLabelRenderer, getBezierPath, Position, useInternalNode } from '@xyflow/react';\nimport type { EdgeProps } from '@xyflow/react';\nimport { useId } from 'react';\nimport type { ReactNode } from 'react';\nimport { WorkflowEdgeDataButton } from '../data/workflow-edge-data-button';\nimport type { WorkflowDataEdgeModel } from './types';\n\nexport interface WorkflowDataEdgeViewProps extends EdgeProps<WorkflowDataEdgeModel> {\n output?: unknown;\n dataControl?: ReactNode;\n}\n\nexport function WorkflowDataEdgeView({ output, label, dataControl, ...props }: WorkflowDataEdgeViewProps) {\n const source = useInternalNode(props.source);\n const target = useInternalNode(props.target);\n const sourceWidth = source?.measured?.width ?? source?.width;\n const sourceHeight = source?.measured?.height ?? source?.height;\n const targetWidth = target?.measured?.width ?? target?.width;\n const hasBottomSource =\n source && sourceWidth !== undefined && sourceHeight !== undefined && props.sourcePosition === Position.Bottom;\n const hasTopTarget = target && targetWidth !== undefined && props.targetPosition === Position.Top;\n // Nested canvases scale DOM handle measurements twice; route in graph coordinates.\n const sourceX = hasBottomSource ? source.internals.positionAbsolute.x + sourceWidth / 2 : props.sourceX;\n const sourceY = hasBottomSource ? source.internals.positionAbsolute.y + sourceHeight : props.sourceY;\n const targetX = hasTopTarget ? target.internals.positionAbsolute.x + targetWidth / 2 : props.targetX;\n const targetY = hasTopTarget ? target.internals.positionAbsolute.y : props.targetY;\n const [edgePath, midpointX, midpointY] = getBezierPath({\n ...props,\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n const labelPlacement = props.data?.dataLabelPlacement;\n const labelX = labelPlacement === 'source' ? sourceX : midpointX;\n const labelY = labelPlacement === 'source' ? sourceY + Math.min(24, Math.max(0, (targetY - sourceY) / 4)) : midpointY;\n const arrowId = useId();\n const isExecuted = props.data?.edgeStatus === 'success';\n const pathColor = isExecuted ? 'var(--success-indicator)' : 'var(--muted-foreground)';\n\n return (\n <>\n <defs>\n <marker id={arrowId} viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"5\" markerHeight=\"5\" orient=\"auto\">\n <path d=\"M1 1 L9 5 L1 9 Z\" fill={pathColor} />\n </marker>\n </defs>\n <BaseEdge\n id={props.id}\n path={edgePath}\n markerEnd={`url(#${arrowId})`}\n style={{\n ...props.style,\n stroke: pathColor,\n strokeWidth: isExecuted ? 2 : 1,\n strokeLinecap: 'round',\n strokeDasharray: isExecuted ? 'none' : '5 6',\n }}\n vectorEffect=\"non-scaling-stroke\"\n data-edge-status={props.data?.edgeStatus ?? 'idle'}\n data-edge-from={props.data?.previousStepId}\n data-edge-to={props.data?.nextStepId}\n />\n {labelPlacement !== 'hidden' && (\n <EdgeLabelRenderer>\n <div\n className=\"nodrag nopan flex items-center justify-center\"\n style={{\n position: 'absolute',\n pointerEvents: 'all',\n transform: `translate(-50%, -50%) translate(${labelX}px, ${labelY}px)`,\n }}\n >\n {dataControl ?? (\n <WorkflowEdgeDataButton\n previousStepId={props.data?.boundaryPayload ? undefined : props.data?.previousStepId}\n output={output}\n label={typeof label === 'string' ? label : undefined}\n />\n )}\n </div>\n </EdgeLabelRenderer>\n )}\n </>\n );\n}\n","export function workflowCameraDuration() {\n return window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ? 0 : 300;\n}\n","import { useViewport } from '@xyflow/react';\nimport type { Node } from '@xyflow/react';\nimport { GitFork } from 'lucide-react';\nimport { Badge } from '@/ds/components/Badge';\n\nexport interface WorkflowGraphGroup {\n id: string;\n label: string;\n description: string;\n nodeIds: string[];\n}\n\nexport function WorkflowGraphGroups({ nodes, groups }: { nodes: Node[]; groups: WorkflowGraphGroup[] }) {\n const { x, y, zoom } = useViewport();\n return (\n <div\n className=\"pointer-events-none absolute inset-0 z-0 origin-top-left\"\n style={{ transform: `translate(${x}px, ${y}px) scale(${zoom})` }}\n >\n {groups.map(group => {\n const members = nodes.flatMap(node => {\n if (!group.nodeIds.includes(node.id) || !node.measured?.width || !node.measured.height) return [];\n return [{ x: node.position.x, y: node.position.y, width: node.measured.width, height: node.measured.height }];\n });\n if (!members.length || members.length !== group.nodeIds.length) return null;\n const left = Math.min(...members.map(node => node.x)) - 20;\n const top = Math.min(...members.map(node => node.y)) - 54;\n const right = Math.max(...members.map(node => node.x + node.width)) + 20;\n const bottom = Math.max(...members.map(node => node.y + node.height)) + 20;\n return (\n <div\n key={group.id}\n className=\"absolute rounded-xl border border-dashed border-muted-foreground/25 bg-muted-foreground/3\"\n style={{ transform: `translate(${left}px, ${top}px)`, width: right - left, height: bottom - top }}\n >\n <div className=\"flex items-center gap-2 px-5 py-4 text-meta text-muted-foreground\">\n <Badge size=\"xs\" variant=\"blue\" emphasis=\"subtle\" icon={<GitFork aria-hidden />}>\n {group.label}\n </Badge>\n <span>{group.description}</span>\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import type { PanelProps } from '@xyflow/react';\nimport { Panel, useViewport, useReactFlow, useStore } from '@xyflow/react';\nimport { Maximize, Minus, Plus } from 'lucide-react';\nimport { forwardRef } from 'react';\nimport { workflowCameraDuration } from './workflow-camera-duration';\nimport { Button } from '@/ds/components/Button';\nimport { Slider } from '@/ds/components/Slider';\nimport { cn } from '@/utils/cn';\n\nexport const ZoomSlider = forwardRef<\n HTMLDivElement,\n Omit<PanelProps, 'children'> & { compact?: boolean; onFitView?: () => void }\n>(({ className, compact = false, onFitView, ...props }, ref) => {\n const { zoom } = useViewport();\n const { zoomTo, zoomIn, zoomOut, fitView } = useReactFlow();\n const minZoom = useStore(state => state.minZoom);\n const maxZoom = useStore(state => state.maxZoom);\n\n return (\n <Panel\n ref={ref}\n className={cn(\n 'flex items-center gap-1 rounded-full border border-border bg-background p-1 text-foreground',\n className,\n )}\n {...props}\n >\n <Button\n size=\"icon-sm\"\n tooltip=\"Zoom out\"\n disabled={zoom <= minZoom}\n onClick={() => zoomOut({ duration: workflowCameraDuration() })}\n >\n <Minus />\n </Button>\n {!compact && (\n <Slider\n className=\"w-35\"\n aria-label=\"Canvas zoom\"\n value={[zoom]}\n min={minZoom}\n max={maxZoom}\n step={0.01}\n largeStep={0.25}\n format={{ style: 'percent' }}\n onValueChange={values => {\n const [nextZoom] = values;\n if (nextZoom !== undefined) void zoomTo(nextZoom);\n }}\n />\n )}\n <Button\n size=\"icon-sm\"\n tooltip=\"Zoom in\"\n disabled={zoom >= maxZoom}\n onClick={() => zoomIn({ duration: workflowCameraDuration() })}\n >\n <Plus />\n </Button>\n <Button\n size=\"sm\"\n className=\"min-w-16 tabular-nums\"\n tooltip=\"Reset to actual size (100%)\"\n onClick={() => zoomTo(1, { duration: workflowCameraDuration() })}\n >\n {(100 * zoom).toFixed(0)}%\n </Button>\n <Button\n size=\"icon-sm\"\n tooltip=\"Fit view\"\n onClick={onFitView ?? (() => fitView({ duration: workflowCameraDuration(), maxZoom: 1 }))}\n >\n <Maximize />\n </Button>\n </Panel>\n );\n});\n\nZoomSlider.displayName = 'ZoomSlider';\n","import { Background, BackgroundVariant, ReactFlow, useNodesInitialized, useReactFlow, useStore } from '@xyflow/react';\nimport type { Edge, Node, ReactFlowProps } from '@xyflow/react';\nimport { useContext, useEffect, useId, useRef } from 'react';\nimport { WorkflowCanvasInsetContext, workflowFitOptions } from '../workflow-canvas-inset';\nimport { workflowCameraDuration } from './workflow-camera-duration';\nimport { WorkflowGraphGroups } from './workflow-graph-groups';\nimport type { WorkflowGraphGroup } from './workflow-graph-groups';\nimport { ZoomSlider } from './zoom-slider';\nimport { cn } from '@/utils/cn';\nimport '@xyflow/react/dist/style.css';\n\nexport type { WorkflowGraphGroup } from './workflow-graph-groups';\n\nexport interface WorkflowGraphCanvasProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> extends Pick<\n ReactFlowProps<NodeType, EdgeType>,\n 'nodes' | 'edges' | 'nodeTypes' | 'edgeTypes' | 'onNodesChange' | 'onNodeClick'\n> {\n focusNodeId?: string;\n variant?: 'default' | 'nested' | 'inline';\n groups?: WorkflowGraphGroup[];\n}\n\nexport function WorkflowGraphCanvas<NodeType extends Node, EdgeType extends Edge>({\n nodes,\n edges,\n nodeTypes,\n edgeTypes,\n onNodesChange,\n onNodeClick,\n focusNodeId,\n groups,\n variant = 'default',\n}: WorkflowGraphCanvasProps<NodeType, EdgeType>) {\n const graphRef = useRef<HTMLDivElement>(null);\n const backgroundId = useId();\n const panelInset = useContext(WorkflowCanvasInsetContext);\n const leftInset = variant === 'default' ? panelInset : 0;\n const isInline = variant === 'inline';\n const { getNodes, setCenter, fitView } = useReactFlow<NodeType, EdgeType>();\n const nodesInitialized = useNodesInitialized();\n const canvasWidth = useStore(state => state.width);\n const canvasHeight = useStore(state => state.height);\n const hasCompactZoom = canvasWidth - leftInset < 560;\n const inlineNodeLayout = isInline\n ? JSON.stringify(\n nodes?.map(node => [\n node.id,\n node.position.x,\n node.position.y,\n node.measured?.width ?? node.width,\n node.measured?.height ?? node.height,\n ]),\n )\n : undefined;\n\n useEffect(() => {\n if (!canvasWidth || !canvasHeight || !nodesInitialized) return;\n if (variant === 'default') return;\n void fitView({ ...workflowFitOptions(leftInset, isInline), duration: 0 });\n }, [canvasWidth, canvasHeight, nodesInitialized, inlineNodeLayout, fitView, leftInset, isInline, variant]);\n\n useEffect(() => {\n if (!canvasWidth || !canvasHeight || !nodesInitialized || !focusNodeId) return;\n const focusNode = getNodes().find(node => node.id === focusNodeId);\n if (!focusNode) return;\n if (!graphRef.current?.contains(document.activeElement)) {\n graphRef.current?.focus({ preventScroll: true });\n }\n const width = focusNode.measured?.width ?? focusNode.width ?? 274;\n const height = focusNode.measured?.height ?? focusNode.height ?? 100;\n const duration = workflowCameraDuration();\n const exceedsVisibleWidth = canvasWidth > 0 && width > canvasWidth - leftInset - 80;\n const exceedsVisibleHeight = canvasHeight > 0 && height > canvasHeight - 104;\n if (exceedsVisibleWidth || exceedsVisibleHeight) {\n void fitView({ ...workflowFitOptions(leftInset), nodes: [{ id: focusNode.id }], duration });\n return;\n }\n void setCenter(focusNode.position.x + width / 2 - leftInset / 2, focusNode.position.y + height / 2, {\n duration,\n zoom: 1,\n });\n }, [canvasWidth, canvasHeight, nodesInitialized, focusNodeId, getNodes, setCenter, fitView, leftInset]);\n\n return (\n <div\n ref={graphRef}\n tabIndex={-1}\n data-testid=\"workflow-graph-viewport\"\n className={cn('size-full outline-none', variant === 'nested' ? 'bg-sidebar' : 'bg-background')}\n >\n <ReactFlow\n fitView={variant === 'default'}\n fitViewOptions={workflowFitOptions(leftInset)}\n nodes={nodes}\n edges={edges}\n nodeTypes={nodeTypes}\n edgeTypes={edgeTypes}\n onNodesChange={onNodesChange}\n onNodeClick={onNodeClick}\n nodesDraggable={false}\n nodesConnectable={false}\n elementsSelectable={false}\n deleteKeyCode={null}\n panOnScroll={!isInline}\n panOnDrag={!isInline}\n zoomOnPinch={!isInline}\n zoomOnDoubleClick={!isInline}\n preventScrolling={!isInline}\n proOptions={isInline ? { hideAttribution: true } : undefined}\n zoomOnScroll={false}\n minZoom={0.1}\n maxZoom={4}\n >\n {!isInline && (\n <ZoomSlider\n position=\"top-right\"\n className=\"m-2!\"\n compact={hasCompactZoom}\n onFitView={() => fitView({ ...workflowFitOptions(leftInset), duration: workflowCameraDuration() })}\n />\n )}\n {groups && <WorkflowGraphGroups nodes={nodes ?? []} groups={groups} />}\n {!isInline && <Background id={backgroundId} variant={BackgroundVariant.Dots} gap={12} size={0.5} />}\n </ReactFlow>\n </div>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { ReactNode } from 'react';\n\nexport interface WorkflowNodeFrameProps {\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n children: ReactNode;\n}\n\nexport function WorkflowNodeFrame({ withoutTopHandle, withoutBottomHandle, children }: WorkflowNodeFrameProps) {\n return (\n <>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div className=\"nodrag pointer-events-auto\">{children}</div>\n {!withoutBottomHandle && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </>\n );\n}\n","import { Loader2, Pause, PlayIcon, StepForwardIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface WorkflowDebugControlsProps {\n isStreaming?: boolean;\n canRunNextStep: boolean;\n nextStepLabel?: string;\n disabled?: boolean;\n children?: ReactNode;\n onRunNextStep: () => void;\n onContinueRun: () => void;\n}\n\nexport function WorkflowDebugControls({\n isStreaming,\n canRunNextStep,\n nextStepLabel,\n disabled,\n children,\n onRunNextStep,\n onContinueRun,\n}: WorkflowDebugControlsProps) {\n const nextStepFallback = canRunNextStep ? 'Ready to advance' : 'Next step unavailable';\n const actionsDisabled = !canRunNextStep || isStreaming || disabled;\n\n return (\n <div className=\"flex min-w-0 flex-col gap-3\" data-testid=\"workflow-debug-step-controls\">\n <div className=\"rounded-xl border border-surface-rim bg-background p-3\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-2\">\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\">\n Next step\n </Txt>\n <Badge size=\"sm\" icon={<Pause />} emphasis=\"subtle\">\n Step by step\n </Badge>\n </div>\n <div className=\"text-subheading break-words text-foreground\" aria-live=\"polite\">\n {nextStepLabel || nextStepFallback}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n className=\"min-w-0 flex-1\"\n aria-label=\"Run next step\"\n onClick={onRunNextStep}\n disabled={actionsDisabled}\n icon={isStreaming ? <Loader2 className=\"motion-safe:animate-spin\" /> : <StepForwardIcon />}\n >\n {isStreaming ? 'Running step…' : 'Run next step'}\n </Button>\n\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n tooltip=\"Continue full run\"\n onClick={onContinueRun}\n disabled={actionsDisabled}\n >\n <PlayIcon />\n </Button>\n {children}\n </div>\n </div>\n );\n}\n","import { AlertCircleIcon } from 'lucide-react';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type WorkflowGraphPlaceholderProps = { isLoading: true } | { isLoading?: false; workflowName: string };\n\nexport function WorkflowGraphPlaceholder(props: WorkflowGraphPlaceholderProps) {\n if (props.isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n }\n\n return (\n <div className=\"grid h-full place-items-center\">\n <div className=\"flex flex-col items-center gap-2\">\n <AlertCircleIcon />\n <div>We couldn&apos;t find {props.workflowName} workflow.</div>\n </div>\n </div>\n );\n}\n","import type { WorkflowConditionCardViewProps } from '../../types';\nimport { WorkflowConditionCardView } from './workflow-condition-card-view';\n\nexport type WorkflowConditionCardProps = Omit<WorkflowConditionCardViewProps, 'type'>;\n\nexport function WorkflowConditionCard({ conditions, ...props }: WorkflowConditionCardProps) {\n return <WorkflowConditionCardView {...props} type={conditions[0]?.type} conditions={conditions} />;\n}\n","import { MoreVerticalIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\n\nexport function WorkflowStepActions({ children }: { children: ReactNode }) {\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <Button\n size=\"icon-sm\"\n variant=\"ghost\"\n aria-label=\"Step actions\"\n title=\"Step actions\"\n className=\"nodrag nopan\"\n >\n <MoreVerticalIcon />\n </Button>\n }\n />\n <DropdownMenu.Content align=\"end\">{children}</DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n","import {\n AlertCircleIcon,\n BracesIcon,\n Clock3Icon,\n PanelRightIcon,\n PlayIcon,\n RotateCcwIcon,\n ShieldAlertIcon,\n StepForwardIcon,\n} from 'lucide-react';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\n\nconst actions = {\n nested: { icon: PanelRightIcon, label: 'View nested graph', activeLabel: 'Hide nested graph' },\n map: { icon: BracesIcon, label: 'Map config', activeLabel: 'Hide map config' },\n timeTravel: { icon: Clock3Icon, label: 'Time travel' },\n runStep: { icon: PlayIcon, label: 'Run step' },\n continueRun: { icon: StepForwardIcon, label: 'Continue run' },\n resumeData: { icon: RotateCcwIcon, label: 'Resume data' },\n error: { icon: AlertCircleIcon, label: 'Error' },\n tripwire: { icon: ShieldAlertIcon, label: 'Tripwire' },\n};\n\nexport interface WorkflowStepActionProps {\n action: keyof typeof actions;\n isActive?: boolean;\n onSelect: () => void;\n}\n\nexport function WorkflowStepAction({ action, isActive, onSelect }: WorkflowStepActionProps) {\n const definition = actions[action];\n const ActionIcon = definition.icon;\n const label = isActive && 'activeLabel' in definition ? definition.activeLabel : definition.label;\n return (\n <DropdownMenu.Item onSelect={onSelect} className={action === 'tripwire' ? 'text-warning-foreground' : undefined}>\n <ActionIcon />\n <span>{label}</span>\n </DropdownMenu.Item>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Workflow-DSWQ-ROz.cjs","names":["createContext","Repeat2","Workflow","GitFork","ArrowRightLeft","CalendarClock","Timer","Bot","Wrench","GitBranch","Braces","Badge","Timer","CalendarClock","List","Workflow","PlayCircle","Clock","Layers","Network","Repeat1","Repeat","RefreshCw","GitBranch","CornerDownRight","useState","formatDuration","Txt","Code","useState","Braces","raisedSurfaceStyle","Badge","_Fragment","CopyButton","Code","cn","Txt","formatDate","formatShortDate","formatDuration","useState","cn","Collapsible","raisedSurfaceStyle","Txt","Shimmer","_Fragment","CollapsibleTrigger","DisclosureChevron","CollapsibleContent","ActivityWick","useCodemirrorTheme","javascript","EditorView","jsonLanguage","CopyButton","CodeMirror","codeFoldGutter","useState","_Fragment","Button","cn","raisedSurfaceStyle","surfaceStateLayerStyle","Database","Dialog","DialogContent","DialogHeader","DialogTitle","DialogBody","Txt","_Fragment","Handle","Position","cn","Txt","useInternalNode","Position","getBezierPath","useId","_Fragment","BaseEdge","EdgeLabelRenderer","useViewport","Badge","GitFork","forwardRef","useViewport","useReactFlow","useStore","Panel","cn","Button","Minus","Slider","Plus","Maximize","useRef","useId","useContext","useReactFlow","useNodesInitialized","useStore","cn","ReactFlow","Background","BackgroundVariant","_Fragment","Handle","Position","Txt","Badge","Pause","Button","Loader2","StepForwardIcon","PlayIcon","Skeleton","AlertCircleIcon","DropdownMenu","Button","MoreVerticalIcon","PanelRightIcon","BracesIcon","Clock3Icon","PlayIcon","StepForwardIcon","RotateCcwIcon","AlertCircleIcon","ShieldAlertIcon","DropdownMenu"],"sources":["../src/ds/components/Workflow/workflow-canvas-inset.ts","../src/ds/components/Workflow/cards/workflow-card-kind.ts","../src/ds/components/Workflow/cards/workflow-type-badge.tsx","../src/ds/components/Workflow/cards/workflow-card-badge-utils.ts","../src/ds/components/Workflow/cards/workflow-clock.tsx","../src/ds/components/Workflow/cards/condition/workflow-condition-expression.ts","../src/ds/components/Workflow/cards/condition/workflow-condition-source.tsx","../src/ds/components/Workflow/cards/condition/workflow-condition-card-view.tsx","../src/ds/components/Workflow/cards/timing/workflow-time-dial.tsx","../src/ds/components/Workflow/cards/timing/workflow-timing.tsx","../src/ds/components/Workflow/cards/step/workflow-step-card-view.tsx","../src/ds/components/Workflow/data/workflow-code-dialog-content.tsx","../src/ds/components/Workflow/data/workflow-edge-data-button.tsx","../src/ds/components/Workflow/graph/types.ts","../src/ds/components/Workflow/graph/workflow-boundary-node.tsx","../src/ds/components/Workflow/graph/workflow-data-edge-view.tsx","../src/ds/components/Workflow/graph/workflow-camera-duration.ts","../src/ds/components/Workflow/graph/workflow-graph-groups.tsx","../src/ds/components/Workflow/graph/zoom-slider.tsx","../src/ds/components/Workflow/graph/workflow-graph-canvas.tsx","../src/ds/components/Workflow/graph/workflow-node-frame.tsx","../src/ds/components/Workflow/controls/workflow-debug-controls.tsx","../src/ds/components/Workflow/graph/workflow-graph-placeholder.tsx","../src/ds/components/Workflow/cards/condition/workflow-condition-card.tsx","../src/ds/components/Workflow/controls/workflow-step-actions.tsx","../src/ds/components/Workflow/controls/workflow-step-action.tsx"],"sourcesContent":["import type { FitViewOptions } from '@xyflow/react';\nimport { createContext } from 'react';\n\nexport const WorkflowCanvasInsetContext = createContext(0);\n\nexport function workflowFitOptions(leftInset: number, isInline = false): FitViewOptions {\n return {\n maxZoom: 1,\n padding: isInline ? '20px' : { left: `${leftInset + 40}px`, right: '40px', top: '40px', bottom: '64px' },\n };\n}\n","import {\n ArrowRightLeft,\n Bot,\n Braces,\n CalendarClock,\n GitBranch,\n GitFork,\n Repeat2,\n Timer,\n Workflow,\n Wrench,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { WorkflowStepCardViewProps } from '../types';\nimport type { BadgeVariant } from '@/ds/components/Badge';\n\nexport type WorkflowTypeBadgeProps = Pick<\n WorkflowStepCardViewProps,\n 'nodeKind' | 'isForEach' | 'isNestedWorkflowStep' | 'stepGraph' | 'isParallel' | 'mapConfig' | 'date' | 'duration'\n>;\n\nexport function getWorkflowCardBadge(props: WorkflowTypeBadgeProps): {\n label: string;\n Icon: LucideIcon;\n tone: BadgeVariant;\n indicator?: string;\n} {\n if (props.isForEach) return { label: 'For each', tone: 'orange', Icon: Repeat2, indicator: 'foreach' };\n if (props.isNestedWorkflowStep || props.stepGraph)\n return { label: 'Workflow', tone: 'purple', Icon: Workflow, indicator: 'workflow' };\n if (props.isParallel && !props.nodeKind)\n return { label: 'Parallel', tone: 'blue', Icon: GitFork, indicator: 'parallel' };\n if (props.nodeKind === 'map' || props.mapConfig)\n return { label: 'Map', tone: 'orange', Icon: ArrowRightLeft, indicator: 'map' };\n if (props.nodeKind === 'wait-until' || props.date)\n return { label: 'Wait until', tone: 'purple', Icon: CalendarClock, indicator: 'sleep-until' };\n if (props.nodeKind === 'delay' || props.duration !== undefined)\n return { label: 'Delay', tone: 'purple', Icon: Timer, indicator: 'sleep' };\n if (props.nodeKind === 'agent') return { label: 'Agent', tone: 'cyan', Icon: Bot };\n if (props.nodeKind === 'tool') return { label: 'Tool', tone: 'pink', Icon: Wrench };\n if (props.nodeKind === 'classifier') return { label: 'Classifier', tone: 'blue', Icon: GitBranch };\n return { label: 'Step', tone: 'neutral', Icon: Braces };\n}\n","import { getWorkflowCardBadge } from './workflow-card-kind';\nimport type { WorkflowTypeBadgeProps } from './workflow-card-kind';\nimport { Badge } from '@/ds/components/Badge';\n\nexport function WorkflowTypeBadge(props: WorkflowTypeBadgeProps) {\n const { label, Icon, tone } = getWorkflowCardBadge(props);\n return (\n <Badge size=\"xs\" variant={tone} icon={<Icon aria-hidden />}>\n {label}\n </Badge>\n );\n}\n","import {\n CalendarClock,\n Clock,\n CornerDownRight,\n GitBranch,\n Layers,\n List,\n Network,\n PlayCircle,\n RefreshCw,\n Repeat,\n Repeat1,\n Timer,\n Workflow,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\n\nexport const BADGE_COLORS = {\n sleep: 'var(--badge-purple-indicator)',\n forEach: 'var(--badge-orange-indicator)',\n map: 'var(--badge-orange-indicator)',\n parallel: 'var(--badge-blue-indicator)',\n suspend: 'var(--badge-pink-indicator)',\n after: 'var(--badge-cyan-indicator)',\n workflow: 'var(--badge-purple-indicator)',\n when: 'var(--badge-amber-indicator)',\n dountil: 'var(--badge-purple-indicator)',\n dowhile: 'var(--badge-cyan-indicator)',\n until: 'var(--badge-amber-indicator)',\n while: 'var(--badge-green-indicator)',\n if: 'var(--badge-blue-indicator)',\n else: 'var(--muted-foreground)',\n} as const;\n\nexport const BADGE_ICONS = {\n sleep: Timer,\n sleepUntil: CalendarClock,\n forEach: List,\n map: List,\n parallel: Workflow,\n suspend: PlayCircle,\n after: Clock,\n workflow: Layers,\n when: Network,\n dountil: Repeat1,\n dowhile: Repeat,\n until: Timer,\n while: RefreshCw,\n if: GitBranch,\n else: CornerDownRight,\n} as const;\n\nexport interface ConditionIconConfig {\n icon: LucideIcon | undefined;\n color: string | undefined;\n}\n\nexport interface WorkflowCardIndicator {\n id: string;\n label: string;\n icon: LucideIcon;\n color: string;\n}\n\nconst CONDITION_LABELS: Record<string, string> = {\n when: 'When condition',\n dountil: 'Do until condition',\n dowhile: 'Do while condition',\n until: 'Until condition',\n while: 'While condition',\n if: 'If condition',\n else: 'Else condition',\n and: 'And condition',\n or: 'Or condition',\n not: 'Not condition',\n};\n\nexport const getConditionIconAndColor = (type?: string): ConditionIconConfig => {\n switch (type) {\n case 'when':\n return { icon: BADGE_ICONS.when, color: BADGE_COLORS.when };\n case 'dountil':\n return { icon: BADGE_ICONS.dountil, color: BADGE_COLORS.dountil };\n case 'dowhile':\n return { icon: BADGE_ICONS.dowhile, color: BADGE_COLORS.dowhile };\n case 'until':\n return { icon: BADGE_ICONS.until, color: BADGE_COLORS.until };\n case 'while':\n return { icon: BADGE_ICONS.while, color: BADGE_COLORS.while };\n case 'if':\n return { icon: BADGE_ICONS.if, color: BADGE_COLORS.if };\n case 'else':\n return { icon: BADGE_ICONS.else, color: BADGE_COLORS.else };\n case 'and':\n case 'or':\n case 'not':\n return { icon: BADGE_ICONS.when, color: BADGE_COLORS.when };\n default:\n return { icon: undefined, color: undefined };\n }\n};\n\nexport const getConditionIndicator = (type?: string): WorkflowCardIndicator | undefined => {\n const { icon, color } = getConditionIconAndColor(type);\n\n if (!type || !icon || !color) {\n return undefined;\n }\n\n return {\n id: `condition-${type}`,\n label: CONDITION_LABELS[type] ?? `${type} condition`,\n icon,\n color,\n };\n};\n\nexport interface WorkflowNodeBadgeInfo {\n isSleepNode: boolean;\n isForEachNode: boolean;\n isMapNode: boolean;\n isNestedWorkflow: boolean;\n hasSpecialBadge: boolean;\n}\n\nexport interface WorkflowCardBadgesProps {\n duration?: number;\n date?: Date;\n isForEach?: boolean;\n mapConfig?: string;\n canSuspend?: boolean;\n isParallel?: boolean;\n stepGraph?: unknown;\n}\n\nexport const getNodeBadgeInfo = ({\n duration,\n date,\n isForEach,\n mapConfig,\n canSuspend,\n isParallel,\n stepGraph,\n}: WorkflowCardBadgesProps): WorkflowNodeBadgeInfo => {\n const isSleepNode = Boolean(duration || date);\n const isForEachNode = Boolean(isForEach);\n const isMapNode = Boolean(mapConfig && !isForEach);\n const isNestedWorkflow = Boolean(stepGraph);\n const hasSpecialBadge =\n isSleepNode || Boolean(canSuspend || isParallel) || isForEachNode || isMapNode || isNestedWorkflow;\n\n return {\n isSleepNode,\n isForEachNode,\n isMapNode,\n isNestedWorkflow,\n hasSpecialBadge,\n };\n};\n\nexport const getNodeIndicators = (props: WorkflowCardBadgesProps): WorkflowCardIndicator[] => {\n const { isSleepNode, isForEachNode, isMapNode, isNestedWorkflow } = getNodeBadgeInfo(props);\n const indicators: WorkflowCardIndicator[] = [];\n\n if (isSleepNode) {\n indicators.push({\n id: props.date ? 'sleep-until' : 'sleep',\n label: props.date ? 'Sleep until step' : 'Sleep step',\n icon: props.date ? BADGE_ICONS.sleepUntil : BADGE_ICONS.sleep,\n color: BADGE_COLORS.sleep,\n });\n }\n\n if (props.canSuspend) {\n indicators.push({\n id: 'suspend',\n label: 'Suspend/resume step',\n icon: BADGE_ICONS.suspend,\n color: BADGE_COLORS.suspend,\n });\n }\n\n if (props.isParallel) {\n indicators.push({\n id: 'parallel',\n label: 'Parallel step',\n icon: BADGE_ICONS.parallel,\n color: BADGE_COLORS.parallel,\n });\n }\n\n if (isNestedWorkflow) {\n indicators.push({\n id: 'workflow',\n label: 'Nested workflow step',\n icon: BADGE_ICONS.workflow,\n color: BADGE_COLORS.workflow,\n });\n }\n\n if (isForEachNode) {\n indicators.push({\n id: 'foreach',\n label: 'Foreach step',\n icon: BADGE_ICONS.forEach,\n color: BADGE_COLORS.forEach,\n });\n }\n\n if (isMapNode) {\n indicators.push({\n id: 'map',\n label: 'Map step',\n icon: BADGE_ICONS.map,\n color: BADGE_COLORS.map,\n });\n }\n\n return indicators;\n};\n","import { useEffect, useState } from 'react';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDuration } from '@/utils/duration';\n\ninterface WorkflowClockProps {\n startedAt: number;\n endedAt?: number;\n isRunning?: boolean;\n spansSuspension?: boolean;\n}\n\nexport const WorkflowClock = ({ startedAt, endedAt, isRunning = false, spansSuspension }: WorkflowClockProps) => {\n if (isRunning && endedAt === undefined && Number.isFinite(startedAt)) {\n return <RunningWorkflowClock key={startedAt} startedAt={startedAt} spansSuspension={spansSuspension} />;\n }\n return <ElapsedTime startedAt={startedAt} endedAt={endedAt} spansSuspension={spansSuspension} />;\n};\n\nfunction RunningWorkflowClock({ startedAt, spansSuspension }: Omit<WorkflowClockProps, 'isRunning'>) {\n const [time, setTime] = useState(() => Date.now());\n useEffect(() => {\n const interval = setInterval(() => setTime(Date.now()), 100);\n return () => clearInterval(interval);\n }, []);\n return <ElapsedTime startedAt={startedAt} endedAt={time} spansSuspension={spansSuspension} />;\n}\n\nfunction ElapsedTime({ startedAt, endedAt, spansSuspension }: Omit<WorkflowClockProps, 'isRunning'>) {\n const elapsed = endedAt === undefined ? undefined : formatDuration(endedAt - startedAt);\n\n return (\n <Txt\n variant=\"meta\"\n tone=\"muted\"\n font=\"mono\"\n className=\"whitespace-nowrap\"\n title={elapsed && spansSuspension ? 'Includes time spent suspended waiting for input' : undefined}\n >\n {elapsed === undefined ? <span aria-label=\"Timing unavailable\">—</span> : elapsed}\n </Txt>\n );\n}\n","import type { WorkflowCardCondition } from '../../types';\n\nexport function conditionExpression(condition: WorkflowCardCondition) {\n if (condition.fnString !== undefined) return condition.fnString;\n return JSON.stringify({ ref: condition.ref, query: condition.query, conj: condition.conj }, null, 2);\n}\n","import { useEffect, useState } from 'react';\nimport { Code } from '@/ds/components/Code';\nimport { formatTypeScript } from '@/utils/formatting';\n\nconst MAX_FORMATTED_SOURCE_CHARS = 10_000;\n\nexport function WorkflowConditionSource({ source }: { source: string }) {\n if (source.length > MAX_FORMATTED_SOURCE_CHARS) return <Code code={source} />;\n return <FormattedConditionSource key={source} source={source} />;\n}\n\nfunction FormattedConditionSource({ source }: { source: string }) {\n const [formatted, setFormatted] = useState<string>();\n\n useEffect(() => {\n let cancelled = false;\n formatTypeScript(source)\n .then(expression => {\n if (!cancelled) setFormatted(expression.trim());\n })\n .catch(() => undefined);\n return () => {\n cancelled = true;\n };\n }, [source]);\n\n return <Code code={formatted ?? source} lang={formatted === undefined ? undefined : 'typescript'} />;\n}\n","import { Braces } from 'lucide-react';\nimport type { WorkflowConditionCardViewProps } from '../../types';\nimport { getConditionIndicator } from '../workflow-card-badge-utils';\nimport { conditionExpression } from './workflow-condition-expression';\nimport { WorkflowConditionSource } from './workflow-condition-source';\nimport { Badge } from '@/ds/components/Badge';\nimport { Code } from '@/ds/components/Code';\nimport { CopyButton } from '@/ds/components/CopyButton';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\n\nconst surfaceClasses = 'rounded-[calc(var(--radius-xl)-2px)] bg-card text-meta';\n\nexport function WorkflowConditionCardView({\n type,\n conditions,\n previousDisplayStatus,\n actionBar,\n}: WorkflowConditionCardViewProps) {\n const indicator = getConditionIndicator(type);\n const Icon = indicator?.icon ?? Braces;\n const label = indicator?.label.replace(/ condition$/, '') ?? 'Condition';\n const occurrences = new Map<string, number>();\n const sources = conditions.map(condition => {\n const expression = conditionExpression(condition);\n const identity = `${condition.type}:${expression}`;\n const occurrence = occurrences.get(identity) ?? 0;\n occurrences.set(identity, occurrence + 1);\n return { condition, expression, key: `${identity}:${occurrence}` };\n });\n const copyContent =\n conditions.length > 1 ? JSON.stringify(conditions, null, 2) : sources.map(source => source.expression).join('\\n');\n const hasExpression = type !== 'else' && sources.some(({ expression }) => expression.trim().length > 0);\n\n return (\n <div\n className={`${raisedSurfaceStyle} w-[274px] overflow-hidden rounded-xl p-0.5 has-focus-visible:outline-1 has-focus-visible:outline-offset-4 has-focus-visible:outline-border-focus`}\n data-workflow-node\n data-testid=\"workflow-condition-node\"\n data-workflow-step-status={previousDisplayStatus ?? 'idle'}\n >\n <div className=\"flex h-[46px] items-center gap-2 px-2.5 text-meta text-muted-foreground\">\n <Badge size=\"xs\" variant={type === 'else' ? 'neutral' : 'amber'} emphasis=\"subtle\" icon={<Icon aria-hidden />}>\n {label}\n </Badge>\n {hasExpression && (\n <>\n <span className=\"ml-auto\">Expression</span>\n <CopyButton content={copyContent} tooltip=\"Copy expression\" className=\"nodrag nopan\" />\n </>\n )}\n </div>\n {hasExpression ? (\n <div\n role=\"region\"\n aria-label=\"Condition details\"\n tabIndex={0}\n className={`${surfaceClasses} nodrag nopan nowheel max-h-55 overflow-auto p-3.5 text-foreground [&_pre]:leading-relaxed [&_pre]:whitespace-pre-wrap`}\n >\n {sources.map(({ condition, expression, key }) => (\n <div key={key}>\n {condition.conj && (\n <Badge size=\"xs\" variant=\"neutral\">\n {condition.conj.toUpperCase()}\n </Badge>\n )}\n {condition.fnString !== undefined ? (\n <WorkflowConditionSource source={condition.fnString} />\n ) : (\n <Code code={expression} />\n )}\n </div>\n ))}\n </div>\n ) : (\n <p className={`${surfaceClasses} p-3 text-muted-foreground`}>\n {type === 'else' ? 'When no other branch matches' : 'Condition expression unavailable'}\n </p>\n )}\n {actionBar && <div className=\"nodrag nopan flex justify-end px-2.5 py-1.5 empty:hidden\">{actionBar}</div>}\n </div>\n );\n}\n","import type { ComponentProps, ReactNode } from 'react';\nimport { cn } from '@/utils/cn';\n\nexport type DurationUnit = 'ms' | 's' | 'min' | 'h';\n\nconst DIAL_CENTER = 58;\nconst CLOCK_TICK_ANGLES = Array.from({ length: 60 }, (_, index) => index * 6);\nconst DURATION_TICK_ANGLES = Array.from({ length: 41 }, (_, index) => -120 + index * 6);\n\nfunction pointAt(angle: number, radius: number) {\n const radians = (angle * Math.PI) / 180;\n return {\n x: DIAL_CENTER + Math.sin(radians) * radius,\n y: DIAL_CENTER - Math.cos(radians) * radius,\n };\n}\n\nfunction DialTick({ angle, major, className, ...props }: ComponentProps<'line'> & { angle: number; major: boolean }) {\n const outer = pointAt(angle, 49);\n const inner = pointAt(angle, major ? 38 : 43);\n return (\n <line\n x1={inner.x}\n y1={inner.y}\n x2={outer.x}\n y2={outer.y}\n className={cn(major ? 'stroke-placeholder' : 'stroke-border-strong', className)}\n {...props}\n />\n );\n}\n\nfunction DialHand({ angle, length }: { angle: number; length: number }) {\n const tip = pointAt(angle, length);\n return (\n <line\n x1={DIAL_CENTER}\n y1={DIAL_CENTER}\n x2={tip.x}\n y2={tip.y}\n className=\"stroke-1.5 stroke-muted-foreground\"\n strokeLinecap=\"round\"\n />\n );\n}\n\nfunction DialFace({ tickAngles, children }: { tickAngles: number[]; children: ReactNode }) {\n return (\n <span className=\"block size-28 shrink-0 text-muted-foreground\" aria-hidden>\n <svg viewBox=\"0 0 116 116\" fill=\"none\" className=\"block size-full overflow-visible\">\n {tickAngles.map((angle, index) => (\n <DialTick key={angle} angle={angle} major={index % 5 === 0} />\n ))}\n {children}\n </svg>\n </span>\n );\n}\n\nexport function ClockDial({ date }: { date: Date }) {\n const minutes = date.getUTCMinutes();\n return (\n <DialFace tickAngles={CLOCK_TICK_ANGLES}>\n <DialHand angle={((date.getUTCHours() % 12) + minutes / 60) * 30} length={26} />\n <DialHand angle={minutes * 6} length={37} />\n <circle cx={DIAL_CENTER} cy={DIAL_CENTER} r={2} fill=\"currentColor\" />\n </DialFace>\n );\n}\n\nexport function DurationDial({ amount, unit }: { amount: number; unit: DurationUnit }) {\n const scale = Math.max({ h: 24, ms: 1000, s: 60, min: 60 }[unit], Math.ceil(amount / 10) * 10);\n return (\n <DialFace tickAngles={DURATION_TICK_ANGLES}>\n <DialTick\n angle={-120 + (amount / scale) * 240}\n major\n className=\"stroke-foreground stroke-2\"\n strokeLinecap=\"round\"\n />\n <text x={DIAL_CENTER} y={94} textAnchor=\"middle\" className=\"fill-muted-foreground font-body text-meta\">\n {scale} {unit}\n </text>\n <text x={DIAL_CENTER} y={106} textAnchor=\"middle\" className=\"fill-placeholder font-body text-meta\">\n scale\n </text>\n </DialFace>\n );\n}\n","import type { ReactNode } from 'react';\nimport type { WorkflowStepCardViewProps } from '../../types';\nimport { ClockDial, DurationDial } from './workflow-time-dial';\nimport type { DurationUnit } from './workflow-time-dial';\nimport { Txt } from '@/ds/components/Txt';\nimport { formatDate, formatShortDate } from '@/utils/date-format';\nimport { formatDuration } from '@/utils/duration';\n\nconst captionClasses = 'text-meta tracking-wider whitespace-nowrap text-muted-foreground uppercase';\n\nfunction durationReading(duration: number): { amount: number; unit: DurationUnit } {\n if (duration < 1000) return { amount: duration, unit: 'ms' };\n if (duration < 60000) return { amount: duration / 1000, unit: 's' };\n if (duration < 3600000) return { amount: duration / 60000, unit: 'min' };\n return { amount: duration / 3600000, unit: 'h' };\n}\n\nfunction TimingReading({\n value,\n unit,\n caption,\n dial,\n}: {\n value: string;\n unit?: string;\n caption: string;\n dial: ReactNode;\n}) {\n return (\n <span className=\"mt-1 flex min-h-27 items-center justify-between gap-1 text-foreground\">\n <span className=\"z-10 flex min-w-0 flex-col gap-2\">\n <Txt\n as=\"span\"\n variant=\"display\"\n className=\"flex items-baseline gap-1 leading-none tracking-tighter whitespace-nowrap tabular-nums\"\n >\n {value}\n {unit && <small className=\"text-meta tracking-normal text-muted-foreground\">{unit}</small>}\n </Txt>\n <span className={captionClasses}>{caption}</span>\n </span>\n {dial}\n </span>\n );\n}\n\nexport function WorkflowTiming({ duration, date }: Pick<WorkflowStepCardViewProps, 'duration' | 'date'>) {\n if (date) {\n const scheduled = new Date(date);\n if (!Number.isFinite(scheduled.getTime())) {\n return <span className={captionClasses}>Schedule unavailable</span>;\n }\n return (\n <TimingReading\n value={formatDate(scheduled, 'time', { timeZone: 'UTC' }) ?? ''}\n unit=\"UTC\"\n caption={formatShortDate(scheduled, { timeZone: 'UTC', now: 0 }) ?? ''}\n dial={<ClockDial date={scheduled} />}\n />\n );\n }\n if (duration === undefined) return null;\n if (!Number.isFinite(duration) || duration < 0) {\n return <span className={captionClasses}>Delay unavailable</span>;\n }\n const reading = durationReading(duration);\n return (\n <TimingReading\n value={formatDuration(duration) ?? ''}\n caption=\"Configured delay\"\n dial={<DurationDial {...reading} />}\n />\n );\n}\n","import { useState } from 'react';\nimport type { CSSProperties } from 'react';\nimport type { WorkflowCardDisplayStatus, WorkflowStepCardViewProps } from '../../types';\nimport { WorkflowTiming } from '../timing/workflow-timing';\nimport { getNodeIndicators } from '../workflow-card-badge-utils';\nimport { getWorkflowCardBadge } from '../workflow-card-kind';\nimport { WorkflowClock } from '../workflow-clock';\nimport { WorkflowTypeBadge } from '../workflow-type-badge';\nimport { ActivityWick } from '@/ds/components/Activity';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle, surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/utils/cn';\n\ntype ReportedStatus = NonNullable<WorkflowCardDisplayStatus>;\n\nconst statusLabels = {\n running: 'Running',\n success: 'Completed',\n failed: 'Failed',\n suspended: 'Needs input',\n waiting: 'Waiting',\n paused: 'Paused',\n skipped: 'Skipped',\n canceled: 'Canceled',\n tripwire: 'Tripwire blocked',\n} satisfies Record<ReportedStatus, string>;\n\nconst statusLineClasses: Partial<Record<ReportedStatus, string>> = {\n success: 'after:bg-success-indicator',\n failed: 'after:bg-destructive-indicator',\n tripwire: 'after:bg-warning-indicator',\n waiting: 'after:bg-warning-indicator',\n paused: 'after:bg-warning-indicator',\n skipped: 'after:bg-muted-foreground',\n};\n\nconst footerStatusClasses: Partial<Record<ReportedStatus, string>> = {\n success: 'text-success-indicator',\n failed: 'text-destructive-foreground',\n suspended: 'text-warning-foreground',\n tripwire: 'text-warning-foreground',\n};\n\nconst suspendedWickStyle: CSSProperties & { '--belt-hue': string } = { '--belt-hue': 'var(--warning-indicator)' };\n\nexport function WorkflowStepCardView(props: WorkflowStepCardViewProps) {\n const {\n label,\n description,\n displayStatus,\n stepKey,\n isSelected,\n isWaiting,\n isHovered,\n onHoverChange,\n onSelect,\n isForEach,\n foreachProgress,\n startedAt,\n endedAt,\n actionBar,\n body,\n } = props;\n const [expanded, setExpanded] = useState(props.initiallyOpen ?? false);\n const isRunning = displayStatus === 'running';\n const isSuspended = displayStatus === 'suspended';\n const reportedStatusLabel =\n displayStatus && Object.hasOwn(statusLabels, displayStatus) ? statusLabels[displayStatus] : undefined;\n const statusLabel = displayStatus ? (reportedStatusLabel ?? 'Status unavailable') : 'Not started';\n const kind = getWorkflowCardBadge(props);\n const capabilities = getNodeIndicators(props)\n .filter(indicator => indicator.id !== kind.indicator)\n .map(indicator => indicator.label.replace(/ step$/, ''));\n const hasActivity = isRunning || isSuspended;\n const isStacked = isForEach && !expanded;\n const isBodyExpanded = Boolean(body) && expanded;\n const Summary = onSelect ? 'button' : 'div';\n\n return (\n <div\n className={cn(\n 'relative isolate w-[274px]',\n isBodyExpanded && 'w-172',\n isStacked &&\n 'pb-3 before:absolute before:inset-x-1.5 before:top-2 before:bottom-1.5 before:-z-10 before:rounded-xl before:border before:border-border before:bg-card after:absolute after:inset-x-3 after:top-3.5 after:bottom-0 after:-z-20 after:rounded-xl after:border after:border-border after:bg-card',\n )}\n >\n <Collapsible\n open={expanded}\n onOpenChange={setExpanded}\n className={cn(\n raisedSurfaceStyle,\n 'relative rounded-xl border border-transparent text-foreground transition-[border-color,background-color,box-shadow] [--card-radius:calc(var(--radius-xl)-2px)] motion-reduce:transition-none',\n 'after:pointer-events-none after:absolute after:inset-x-4 after:-top-px after:h-px after:mask-x-from-76%',\n displayStatus && statusLineClasses[displayStatus],\n 'has-focus-visible:outline-1 has-focus-visible:outline-offset-4 has-focus-visible:outline-border-focus',\n isSelected && 'outline-1 outline-offset-4 outline-border-focus',\n isBodyExpanded && 'border-dashed border-muted-foreground/40 shadow-none',\n isWaiting && 'border-info-indicator',\n isHovered && !isSelected && 'bg-muted',\n )}\n data-workflow-node\n data-workflow-step-key={stepKey}\n data-workflow-step-status={displayStatus ?? 'idle'}\n data-workflow-step-active={isSelected || undefined}\n data-workflow-step-waiting={isWaiting || undefined}\n data-workflow-step-hovered={isHovered || undefined}\n data-testid={props.isNestedWorkflowStep ? 'workflow-nested-node' : 'workflow-default-node'}\n onMouseEnter={() => onHoverChange?.(true)}\n onMouseLeave={() => onHoverChange?.(false)}\n >\n <div className=\"m-0.5 overflow-hidden rounded-(--card-radius)\">\n <Summary\n className={cn(\n 'nodrag nopan flex w-full flex-col text-left',\n onSelect && 'group cursor-pointer focus-visible:outline-hidden',\n )}\n type={onSelect ? 'button' : undefined}\n aria-label={onSelect ? `Inspect ${label}` : undefined}\n aria-pressed={onSelect ? Boolean(isSelected) : undefined}\n onClick={onSelect}\n >\n <span className=\"flex items-start justify-between gap-2.5 rounded-(--card-radius) px-3.5 py-3 group-hover:bg-fill-subtle\">\n <Txt as=\"span\" variant=\"column\" tone=\"ink\" className=\"min-w-0 wrap-anywhere\" title={label}>\n <Shimmer active={isRunning}>{label}</Shimmer>\n </Txt>\n <WorkflowTypeBadge {...props} />\n </span>\n <span className=\"flex flex-col gap-2 rounded-t-(--card-radius) bg-card px-3.5 py-3 empty:py-1.5\">\n {description && (\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" className=\"wrap-anywhere\">\n {description}\n </Txt>\n )}\n <WorkflowTiming duration={props.duration} date={props.date} />\n {isWaiting && (\n <Txt as=\"span\" variant=\"meta\" className=\"text-info-indicator\">\n Next step in debug\n </Txt>\n )}\n {isForEach && foreachProgress && (\n <Txt as=\"span\" variant=\"meta\" className=\"flex flex-col gap-2 py-1\">\n <span>\n <strong>{foreachProgress.completedCount}</strong> of {foreachProgress.totalCount} items complete\n </span>\n {foreachProgress.totalCount > 0 ? (\n <progress\n className=\"h-1 w-full appearance-none border-0 bg-muted accent-success-indicator [&::-moz-progress-bar]:bg-success-indicator [&::-webkit-progress-bar]:bg-muted [&::-webkit-progress-value]:bg-success-indicator\"\n aria-label={`${label} completed items`}\n value={foreachProgress.completedCount}\n max={foreachProgress.totalCount}\n />\n ) : (\n <span>No items to process</span>\n )}\n </Txt>\n )}\n {capabilities.length > 0 && (\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\">\n {capabilities.join(' · ')}\n </Txt>\n )}\n </span>\n </Summary>\n <div\n className={cn(\n 'nodrag nopan flex min-h-7 items-center justify-between gap-2 bg-card px-3.5 pb-2.5 text-meta text-muted-foreground',\n displayStatus && footerStatusClasses[displayStatus],\n )}\n >\n <span role=\"status\" className={isRunning ? 'sr-only motion-reduce:not-sr-only' : undefined}>\n {statusLabel}\n </span>\n {startedAt !== undefined && (\n <span className=\"ml-auto\">\n <WorkflowClock\n startedAt={startedAt}\n endedAt={endedAt}\n isRunning={isRunning}\n spansSuspension={props.spansSuspension}\n />\n </span>\n )}\n {actionBar}\n </div>\n\n {body && (\n <>\n <CollapsibleTrigger\n className={cn(\n surfaceStateLayerStyle,\n 'nodrag nopan flex min-h-11 w-full items-center justify-between border-t border-border bg-card px-3.5 py-2.5 text-caption focus-visible:outline-hidden',\n )}\n >\n <span>\n {expanded ? 'Collapse' : 'Expand'} {isForEach ? 'loop' : 'workflow'}\n </span>\n <DisclosureChevron direction=\"right\" className=\"size-3.5\" />\n </CollapsibleTrigger>\n <CollapsibleContent className=\"h-155 overflow-hidden border-t border-dashed border-border\">\n {body}\n </CollapsibleContent>\n </>\n )}\n </div>\n {hasActivity && (\n <ActivityWick\n status={isSuspended ? 'ready' : 'working'}\n aria-hidden\n className=\"before:hidden\"\n style={isSuspended ? suspendedWickStyle : undefined}\n />\n )}\n </Collapsible>\n </div>\n );\n}\n","import { javascript } from '@codemirror/lang-javascript';\nimport { jsonLanguage } from '@codemirror/lang-json';\nimport { EditorView } from '@codemirror/view';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { codeFoldGutter, useCodemirrorTheme } from '@/ds/components/CodeEditor';\nimport { CopyButton } from '@/ds/components/CopyButton';\n\nexport const WorkflowCodeContent = ({\n data,\n language = 'auto',\n}: {\n data: unknown;\n language?: 'json' | 'javascript' | 'auto';\n}) => {\n const theme = useCodemirrorTheme();\n\n const getExtensions = (content: string) => {\n if (language === 'javascript') {\n return [javascript(), EditorView.lineWrapping];\n }\n if (language === 'json') {\n return [jsonLanguage, EditorView.lineWrapping];\n }\n\n try {\n JSON.parse(content);\n return [jsonLanguage, EditorView.lineWrapping];\n } catch {\n if (\n content.includes('=>') ||\n content.includes('function') ||\n content.includes('const ') ||\n content.includes('return ')\n ) {\n return [javascript(), EditorView.lineWrapping];\n }\n return [EditorView.lineWrapping];\n }\n };\n\n if (typeof data !== 'string') {\n const content = JSON.stringify(data, null, 2);\n return (\n <div className=\"relative overflow-auto\" style={{ maxHeight: 500 }}>\n <div className=\"absolute top-2 right-2 z-10 rounded-full bg-muted\">\n <CopyButton content={content} />\n </div>\n <div className=\"rounded-lg bg-muted p-4\">\n <CodeMirror\n value={content}\n theme={theme}\n extensions={[jsonLanguage, EditorView.lineWrapping, codeFoldGutter]}\n basicSetup={{ foldGutter: false }}\n />\n </div>\n </div>\n );\n }\n\n const extensions = getExtensions(data);\n\n let displayContent = data;\n try {\n const json = JSON.parse(data);\n displayContent = JSON.stringify(json, null, 2);\n } catch {}\n\n return (\n <div className=\"relative overflow-auto\" style={{ maxHeight: 500 }}>\n <div className=\"absolute top-2 right-2 z-10 rounded-full bg-muted\">\n <CopyButton content={data} />\n </div>\n <div className=\"rounded-lg bg-muted p-4\">\n <CodeMirror\n value={displayContent}\n theme={theme}\n extensions={[...extensions, codeFoldGutter]}\n basicSetup={{ foldGutter: false }}\n />\n </div>\n </div>\n );\n};\n","import { Database } from 'lucide-react';\nimport { useState } from 'react';\nimport type { MouseEventHandler } from 'react';\nimport { WorkflowCodeContent } from './workflow-code-dialog-content';\nimport { Button } from '@/ds/components/Button';\nimport { Dialog, DialogBody, DialogContent, DialogHeader, DialogTitle } from '@/ds/components/Dialog';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle, surfaceStateLayerStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\nexport interface WorkflowEdgeDataButtonProps {\n previousStepId?: string;\n output?: unknown;\n label?: string;\n selected?: boolean;\n onInspect?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport const WorkflowEdgeDataButton = ({\n previousStepId,\n output,\n label,\n selected,\n onInspect,\n}: WorkflowEdgeDataButtonProps) => {\n const [isOpen, setIsOpen] = useState(false);\n const dataLabel = label ?? (previousStepId ? `${previousStepId} output` : 'Previous output');\n\n if (output === undefined) {\n return null;\n }\n\n return (\n <>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n onClick={onInspect ?? (() => setIsOpen(true))}\n aria-label={`View ${dataLabel}`}\n aria-pressed={selected}\n className={cn(\n raisedSurfaceStyle,\n surfaceStateLayerStyle,\n 'h-7 rounded-lg px-2 text-foreground aria-pressed:before:bg-fill',\n )}\n icon={<Database className=\"text-muted-foreground\" />}\n >\n Data\n </Button>\n\n <Dialog open={isOpen} onOpenChange={setIsOpen}>\n <DialogContent size=\"xl\">\n <DialogHeader>\n <DialogTitle>Step output</DialogTitle>\n </DialogHeader>\n <DialogBody>\n <div className=\"min-w-0 rounded-lg border border-border bg-background p-3\">\n <Txt variant=\"caption\" tone=\"ink\" className=\"mb-2 block\">\n {dataLabel}\n </Txt>\n <WorkflowCodeContent data={output} />\n </div>\n </DialogBody>\n </DialogContent>\n </Dialog>\n </>\n );\n};\n","import type { Edge, Node } from '@xyflow/react';\n\nexport const WORKFLOW_DATA_EDGE_TYPE = 'workflow-data-edge';\nexport const WORKFLOW_BOUNDARY_NODE_TYPE = 'workflow-boundary-node';\n\nexport interface WorkflowDataEdgeData {\n [key: string]: unknown;\n previousStepId?: string;\n nextStepId?: string;\n conditionNode?: boolean;\n boundaryPayload?: 'workflow-input' | 'workflow-output';\n edgeStatus?: 'success' | 'idle';\n dataLabelPlacement?: 'source' | 'hidden';\n}\n\nexport type WorkflowDataEdgeModel = Edge<WorkflowDataEdgeData, typeof WORKFLOW_DATA_EDGE_TYPE>;\n\nexport type WorkflowBoundaryNodeData = {\n boundaryRole: 'start' | 'end';\n label: string;\n};\n\nexport type WorkflowBoundaryNodeModel = Node<WorkflowBoundaryNodeData, typeof WORKFLOW_BOUNDARY_NODE_TYPE>;\n","import { Handle, Position } from '@xyflow/react';\nimport type { NodeProps } from '@xyflow/react';\n\nimport type { WorkflowBoundaryNodeModel } from './types';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/utils/cn';\n\nexport const WorkflowBoundaryNode = ({ data }: NodeProps<WorkflowBoundaryNodeModel>) => {\n const isStart = data.boundaryRole === 'start';\n\n return (\n <>\n {!isStart && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div\n data-workflow-boundary-node\n data-testid={`workflow-boundary-${data.boundaryRole}`}\n className={cn(\n 'relative flex h-[38px] w-28 items-center justify-center text-muted-foreground after:absolute after:inset-x-0 after:mask-x-from-60%',\n isStart\n ? 'after:bottom-0 after:h-px after:bg-muted-foreground'\n : 'after:top-0 after:h-1 after:border-y after:border-muted-foreground',\n )}\n >\n <Txt variant=\"meta\">{data.label}</Txt>\n </div>\n {isStart && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </>\n );\n};\n","import { BaseEdge, EdgeLabelRenderer, getBezierPath, Position, useInternalNode } from '@xyflow/react';\nimport type { EdgeProps } from '@xyflow/react';\nimport { useId } from 'react';\nimport type { ReactNode } from 'react';\nimport { WorkflowEdgeDataButton } from '../data/workflow-edge-data-button';\nimport type { WorkflowDataEdgeModel } from './types';\n\nexport interface WorkflowDataEdgeViewProps extends EdgeProps<WorkflowDataEdgeModel> {\n output?: unknown;\n dataControl?: ReactNode;\n}\n\nexport function WorkflowDataEdgeView({ output, label, dataControl, ...props }: WorkflowDataEdgeViewProps) {\n const source = useInternalNode(props.source);\n const target = useInternalNode(props.target);\n const sourceWidth = source?.measured?.width ?? source?.width;\n const sourceHeight = source?.measured?.height ?? source?.height;\n const targetWidth = target?.measured?.width ?? target?.width;\n const hasBottomSource =\n source && sourceWidth !== undefined && sourceHeight !== undefined && props.sourcePosition === Position.Bottom;\n const hasTopTarget = target && targetWidth !== undefined && props.targetPosition === Position.Top;\n // Nested canvases scale DOM handle measurements twice; route in graph coordinates.\n const sourceX = hasBottomSource ? source.internals.positionAbsolute.x + sourceWidth / 2 : props.sourceX;\n const sourceY = hasBottomSource ? source.internals.positionAbsolute.y + sourceHeight : props.sourceY;\n const targetX = hasTopTarget ? target.internals.positionAbsolute.x + targetWidth / 2 : props.targetX;\n const targetY = hasTopTarget ? target.internals.positionAbsolute.y : props.targetY;\n const [edgePath, midpointX, midpointY] = getBezierPath({\n ...props,\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n const labelPlacement = props.data?.dataLabelPlacement;\n const labelX = labelPlacement === 'source' ? sourceX : midpointX;\n const labelY = labelPlacement === 'source' ? sourceY + Math.min(24, Math.max(0, (targetY - sourceY) / 4)) : midpointY;\n const arrowId = useId();\n const isExecuted = props.data?.edgeStatus === 'success';\n const pathColor = isExecuted ? 'var(--success-indicator)' : 'var(--muted-foreground)';\n\n return (\n <>\n <defs>\n <marker id={arrowId} viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"5\" markerHeight=\"5\" orient=\"auto\">\n <path d=\"M1 1 L9 5 L1 9 Z\" fill={pathColor} />\n </marker>\n </defs>\n <BaseEdge\n id={props.id}\n path={edgePath}\n markerEnd={`url(#${arrowId})`}\n style={{\n ...props.style,\n stroke: pathColor,\n strokeWidth: isExecuted ? 2 : 1,\n strokeLinecap: 'round',\n strokeDasharray: isExecuted ? 'none' : '5 6',\n }}\n vectorEffect=\"non-scaling-stroke\"\n data-edge-status={props.data?.edgeStatus ?? 'idle'}\n data-edge-from={props.data?.previousStepId}\n data-edge-to={props.data?.nextStepId}\n />\n {labelPlacement !== 'hidden' && (\n <EdgeLabelRenderer>\n <div\n className=\"nodrag nopan flex items-center justify-center\"\n style={{\n position: 'absolute',\n pointerEvents: 'all',\n transform: `translate(-50%, -50%) translate(${labelX}px, ${labelY}px)`,\n }}\n >\n {dataControl ?? (\n <WorkflowEdgeDataButton\n previousStepId={props.data?.boundaryPayload ? undefined : props.data?.previousStepId}\n output={output}\n label={typeof label === 'string' ? label : undefined}\n />\n )}\n </div>\n </EdgeLabelRenderer>\n )}\n </>\n );\n}\n","export function workflowCameraDuration() {\n return window.matchMedia?.('(prefers-reduced-motion: reduce)').matches ? 0 : 300;\n}\n","import { useViewport } from '@xyflow/react';\nimport type { Node } from '@xyflow/react';\nimport { GitFork } from 'lucide-react';\nimport { Badge } from '@/ds/components/Badge';\n\nexport interface WorkflowGraphGroup {\n id: string;\n label: string;\n description: string;\n nodeIds: string[];\n}\n\nexport function WorkflowGraphGroups({ nodes, groups }: { nodes: Node[]; groups: WorkflowGraphGroup[] }) {\n const { x, y, zoom } = useViewport();\n return (\n <div\n className=\"pointer-events-none absolute inset-0 z-0 origin-top-left\"\n style={{ transform: `translate(${x}px, ${y}px) scale(${zoom})` }}\n >\n {groups.map(group => {\n const members = nodes.flatMap(node => {\n if (!group.nodeIds.includes(node.id) || !node.measured?.width || !node.measured.height) return [];\n return [{ x: node.position.x, y: node.position.y, width: node.measured.width, height: node.measured.height }];\n });\n if (!members.length || members.length !== group.nodeIds.length) return null;\n const left = Math.min(...members.map(node => node.x)) - 20;\n const top = Math.min(...members.map(node => node.y)) - 54;\n const right = Math.max(...members.map(node => node.x + node.width)) + 20;\n const bottom = Math.max(...members.map(node => node.y + node.height)) + 20;\n return (\n <div\n key={group.id}\n className=\"absolute rounded-xl border border-dashed border-muted-foreground/25 bg-muted-foreground/3\"\n style={{ transform: `translate(${left}px, ${top}px)`, width: right - left, height: bottom - top }}\n >\n <div className=\"flex items-center gap-2 px-5 py-4 text-meta text-muted-foreground\">\n <Badge size=\"xs\" variant=\"blue\" emphasis=\"subtle\" icon={<GitFork aria-hidden />}>\n {group.label}\n </Badge>\n <span>{group.description}</span>\n </div>\n </div>\n );\n })}\n </div>\n );\n}\n","import type { PanelProps } from '@xyflow/react';\nimport { Panel, useViewport, useReactFlow, useStore } from '@xyflow/react';\nimport { Maximize, Minus, Plus } from 'lucide-react';\nimport { forwardRef } from 'react';\nimport { workflowCameraDuration } from './workflow-camera-duration';\nimport { Button } from '@/ds/components/Button';\nimport { Slider } from '@/ds/components/Slider';\nimport { cn } from '@/utils/cn';\n\nexport const ZoomSlider = forwardRef<\n HTMLDivElement,\n Omit<PanelProps, 'children'> & { compact?: boolean; onFitView?: () => void }\n>(({ className, compact = false, onFitView, ...props }, ref) => {\n const { zoom } = useViewport();\n const { zoomTo, zoomIn, zoomOut, fitView } = useReactFlow();\n const minZoom = useStore(state => state.minZoom);\n const maxZoom = useStore(state => state.maxZoom);\n\n return (\n <Panel\n ref={ref}\n className={cn(\n 'flex items-center gap-1 rounded-full border border-border bg-background p-1 text-foreground',\n className,\n )}\n {...props}\n >\n <Button\n size=\"icon-sm\"\n tooltip=\"Zoom out\"\n disabled={zoom <= minZoom}\n onClick={() => zoomOut({ duration: workflowCameraDuration() })}\n >\n <Minus />\n </Button>\n {!compact && (\n <Slider\n className=\"w-35\"\n aria-label=\"Canvas zoom\"\n value={[zoom]}\n min={minZoom}\n max={maxZoom}\n step={0.01}\n largeStep={0.25}\n format={{ style: 'percent' }}\n onValueChange={values => {\n const [nextZoom] = values;\n if (nextZoom !== undefined) void zoomTo(nextZoom);\n }}\n />\n )}\n <Button\n size=\"icon-sm\"\n tooltip=\"Zoom in\"\n disabled={zoom >= maxZoom}\n onClick={() => zoomIn({ duration: workflowCameraDuration() })}\n >\n <Plus />\n </Button>\n <Button\n size=\"sm\"\n className=\"min-w-16 tabular-nums\"\n tooltip=\"Reset to actual size (100%)\"\n onClick={() => zoomTo(1, { duration: workflowCameraDuration() })}\n >\n {(100 * zoom).toFixed(0)}%\n </Button>\n <Button\n size=\"icon-sm\"\n tooltip=\"Fit view\"\n onClick={onFitView ?? (() => fitView({ duration: workflowCameraDuration(), maxZoom: 1 }))}\n >\n <Maximize />\n </Button>\n </Panel>\n );\n});\n\nZoomSlider.displayName = 'ZoomSlider';\n","import { Background, BackgroundVariant, ReactFlow, useNodesInitialized, useReactFlow, useStore } from '@xyflow/react';\nimport type { Edge, Node, ReactFlowProps } from '@xyflow/react';\nimport { useContext, useEffect, useId, useRef } from 'react';\nimport { WorkflowCanvasInsetContext, workflowFitOptions } from '../workflow-canvas-inset';\nimport { workflowCameraDuration } from './workflow-camera-duration';\nimport { WorkflowGraphGroups } from './workflow-graph-groups';\nimport type { WorkflowGraphGroup } from './workflow-graph-groups';\nimport { ZoomSlider } from './zoom-slider';\nimport { cn } from '@/utils/cn';\nimport '@xyflow/react/dist/style.css';\n\nexport type { WorkflowGraphGroup } from './workflow-graph-groups';\n\nexport interface WorkflowGraphCanvasProps<NodeType extends Node = Node, EdgeType extends Edge = Edge> extends Pick<\n ReactFlowProps<NodeType, EdgeType>,\n 'nodes' | 'edges' | 'nodeTypes' | 'edgeTypes' | 'onNodesChange' | 'onNodeClick'\n> {\n focusNodeId?: string;\n variant?: 'default' | 'nested' | 'inline';\n groups?: WorkflowGraphGroup[];\n}\n\nexport function WorkflowGraphCanvas<NodeType extends Node, EdgeType extends Edge>({\n nodes,\n edges,\n nodeTypes,\n edgeTypes,\n onNodesChange,\n onNodeClick,\n focusNodeId,\n groups,\n variant = 'default',\n}: WorkflowGraphCanvasProps<NodeType, EdgeType>) {\n const graphRef = useRef<HTMLDivElement>(null);\n const backgroundId = useId();\n const panelInset = useContext(WorkflowCanvasInsetContext);\n const leftInset = variant === 'default' ? panelInset : 0;\n const isInline = variant === 'inline';\n const { getNodes, setCenter, fitView } = useReactFlow<NodeType, EdgeType>();\n const nodesInitialized = useNodesInitialized();\n const canvasWidth = useStore(state => state.width);\n const canvasHeight = useStore(state => state.height);\n const hasCompactZoom = canvasWidth - leftInset < 560;\n const inlineNodeLayout = isInline\n ? JSON.stringify(\n nodes?.map(node => [\n node.id,\n node.position.x,\n node.position.y,\n node.measured?.width ?? node.width,\n node.measured?.height ?? node.height,\n ]),\n )\n : undefined;\n\n useEffect(() => {\n if (!canvasWidth || !canvasHeight || !nodesInitialized) return;\n if (variant === 'default') return;\n void fitView({ ...workflowFitOptions(leftInset, isInline), duration: 0 });\n }, [canvasWidth, canvasHeight, nodesInitialized, inlineNodeLayout, fitView, leftInset, isInline, variant]);\n\n useEffect(() => {\n if (!canvasWidth || !canvasHeight || !nodesInitialized || !focusNodeId) return;\n const focusNode = getNodes().find(node => node.id === focusNodeId);\n if (!focusNode) return;\n if (!graphRef.current?.contains(document.activeElement)) {\n graphRef.current?.focus({ preventScroll: true });\n }\n const width = focusNode.measured?.width ?? focusNode.width ?? 274;\n const height = focusNode.measured?.height ?? focusNode.height ?? 100;\n const duration = workflowCameraDuration();\n const exceedsVisibleWidth = canvasWidth > 0 && width > canvasWidth - leftInset - 80;\n const exceedsVisibleHeight = canvasHeight > 0 && height > canvasHeight - 104;\n if (exceedsVisibleWidth || exceedsVisibleHeight) {\n void fitView({ ...workflowFitOptions(leftInset), nodes: [{ id: focusNode.id }], duration });\n return;\n }\n void setCenter(focusNode.position.x + width / 2 - leftInset / 2, focusNode.position.y + height / 2, {\n duration,\n zoom: 1,\n });\n }, [canvasWidth, canvasHeight, nodesInitialized, focusNodeId, getNodes, setCenter, fitView, leftInset]);\n\n return (\n <div\n ref={graphRef}\n tabIndex={-1}\n data-testid=\"workflow-graph-viewport\"\n className={cn('size-full outline-none', variant === 'nested' ? 'bg-sidebar' : 'bg-background')}\n >\n <ReactFlow\n fitView={variant === 'default'}\n fitViewOptions={workflowFitOptions(leftInset)}\n nodes={nodes}\n edges={edges}\n nodeTypes={nodeTypes}\n edgeTypes={edgeTypes}\n onNodesChange={onNodesChange}\n onNodeClick={onNodeClick}\n nodesDraggable={false}\n nodesConnectable={false}\n elementsSelectable={false}\n deleteKeyCode={null}\n panOnScroll={!isInline}\n panOnDrag={!isInline}\n zoomOnPinch={!isInline}\n zoomOnDoubleClick={!isInline}\n preventScrolling={!isInline}\n proOptions={isInline ? { hideAttribution: true } : undefined}\n zoomOnScroll={false}\n minZoom={0.1}\n maxZoom={4}\n >\n {!isInline && (\n <ZoomSlider\n position=\"top-right\"\n className=\"m-2!\"\n compact={hasCompactZoom}\n onFitView={() => fitView({ ...workflowFitOptions(leftInset), duration: workflowCameraDuration() })}\n />\n )}\n {groups && <WorkflowGraphGroups nodes={nodes ?? []} groups={groups} />}\n {!isInline && <Background id={backgroundId} variant={BackgroundVariant.Dots} gap={12} size={0.5} />}\n </ReactFlow>\n </div>\n );\n}\n","import { Handle, Position } from '@xyflow/react';\nimport type { ReactNode } from 'react';\n\nexport interface WorkflowNodeFrameProps {\n withoutTopHandle?: boolean;\n withoutBottomHandle?: boolean;\n children: ReactNode;\n}\n\nexport function WorkflowNodeFrame({ withoutTopHandle, withoutBottomHandle, children }: WorkflowNodeFrameProps) {\n return (\n <>\n {!withoutTopHandle && <Handle type=\"target\" position={Position.Top} style={{ visibility: 'hidden' }} />}\n <div className=\"nodrag pointer-events-auto\">{children}</div>\n {!withoutBottomHandle && <Handle type=\"source\" position={Position.Bottom} style={{ visibility: 'hidden' }} />}\n </>\n );\n}\n","import { Loader2, Pause, PlayIcon, StepForwardIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface WorkflowDebugControlsProps {\n isStreaming?: boolean;\n canRunNextStep: boolean;\n nextStepLabel?: string;\n disabled?: boolean;\n children?: ReactNode;\n onRunNextStep: () => void;\n onContinueRun: () => void;\n}\n\nexport function WorkflowDebugControls({\n isStreaming,\n canRunNextStep,\n nextStepLabel,\n disabled,\n children,\n onRunNextStep,\n onContinueRun,\n}: WorkflowDebugControlsProps) {\n const nextStepFallback = canRunNextStep ? 'Ready to advance' : 'Next step unavailable';\n const actionsDisabled = !canRunNextStep || isStreaming || disabled;\n\n return (\n <div className=\"flex min-w-0 flex-col gap-3\" data-testid=\"workflow-debug-step-controls\">\n <div className=\"rounded-xl border border-surface-rim bg-background p-3\">\n <div className=\"mb-2 flex flex-wrap items-center justify-between gap-2\">\n <Txt as=\"span\" variant=\"meta\" tone=\"muted\">\n Next step\n </Txt>\n <Badge size=\"sm\" icon={<Pause />} emphasis=\"subtle\">\n Step by step\n </Badge>\n </div>\n <div className=\"text-subheading break-words text-foreground\" aria-live=\"polite\">\n {nextStepLabel || nextStepFallback}\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"primary\"\n className=\"min-w-0 flex-1\"\n aria-label=\"Run next step\"\n onClick={onRunNextStep}\n disabled={actionsDisabled}\n icon={isStreaming ? <Loader2 className=\"motion-safe:animate-spin\" /> : <StepForwardIcon />}\n >\n {isStreaming ? 'Running step…' : 'Run next step'}\n </Button>\n\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-md\"\n tooltip=\"Continue full run\"\n onClick={onContinueRun}\n disabled={actionsDisabled}\n >\n <PlayIcon />\n </Button>\n {children}\n </div>\n </div>\n );\n}\n","import { AlertCircleIcon } from 'lucide-react';\nimport { Skeleton } from '@/ds/components/Skeleton';\n\nexport type WorkflowGraphPlaceholderProps = { isLoading: true } | { isLoading?: false; workflowName: string };\n\nexport function WorkflowGraphPlaceholder(props: WorkflowGraphPlaceholderProps) {\n if (props.isLoading) {\n return (\n <div className=\"p-4\">\n <Skeleton className=\"h-full\" />\n </div>\n );\n }\n\n return (\n <div className=\"grid h-full place-items-center\">\n <div className=\"flex flex-col items-center gap-2\">\n <AlertCircleIcon />\n <div>We couldn&apos;t find {props.workflowName} workflow.</div>\n </div>\n </div>\n );\n}\n","import type { WorkflowConditionCardViewProps } from '../../types';\nimport { WorkflowConditionCardView } from './workflow-condition-card-view';\n\nexport type WorkflowConditionCardProps = Omit<WorkflowConditionCardViewProps, 'type'>;\n\nexport function WorkflowConditionCard({ conditions, ...props }: WorkflowConditionCardProps) {\n return <WorkflowConditionCardView {...props} type={conditions[0]?.type} conditions={conditions} />;\n}\n","import { MoreVerticalIcon } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { Button } from '@/ds/components/Button';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\n\nexport function WorkflowStepActions({ children }: { children: ReactNode }) {\n return (\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <Button\n size=\"icon-sm\"\n variant=\"ghost\"\n aria-label=\"Step actions\"\n title=\"Step actions\"\n className=\"nodrag nopan\"\n >\n <MoreVerticalIcon />\n </Button>\n }\n />\n <DropdownMenu.Content align=\"end\">{children}</DropdownMenu.Content>\n </DropdownMenu>\n );\n}\n","import {\n AlertCircleIcon,\n BracesIcon,\n Clock3Icon,\n PanelRightIcon,\n PlayIcon,\n RotateCcwIcon,\n ShieldAlertIcon,\n StepForwardIcon,\n} from 'lucide-react';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\n\nconst actions = {\n nested: { icon: PanelRightIcon, label: 'View nested graph', activeLabel: 'Hide nested graph' },\n map: { icon: BracesIcon, label: 'Map config', activeLabel: 'Hide map config' },\n timeTravel: { icon: Clock3Icon, label: 'Time travel' },\n runStep: { icon: PlayIcon, label: 'Run step' },\n continueRun: { icon: StepForwardIcon, label: 'Continue run' },\n resumeData: { icon: RotateCcwIcon, label: 'Resume data' },\n error: { icon: AlertCircleIcon, label: 'Error' },\n tripwire: { icon: ShieldAlertIcon, label: 'Tripwire' },\n};\n\nexport interface WorkflowStepActionProps {\n action: keyof typeof actions;\n isActive?: boolean;\n onSelect: () => void;\n}\n\nexport function WorkflowStepAction({ action, isActive, onSelect }: WorkflowStepActionProps) {\n const definition = actions[action];\n const ActionIcon = definition.icon;\n const label = isActive && 'activeLabel' in definition ? definition.activeLabel : definition.label;\n return (\n <DropdownMenu.Item onSelect={onSelect} className={action === 'tripwire' ? 'text-warning-foreground' : undefined}>\n <ActionIcon />\n <span>{label}</span>\n </DropdownMenu.Item>\n );\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"activity-C8Ql81WM.js","names":["ActivityIcon","_Fragment","ActivityIcon","_Fragment"],"sources":["../src/ds/components/ai/activity/use-relative-paths.ts","../src/ds/components/ai/activity/activity.tsx","../src/ds/components/ai/activity/presets/message-preview.ts","../src/ds/components/ai/activity/presets/notification-activity.tsx","../src/ds/components/ai/activity/presets/reasoning-text.tsx","../src/ds/components/ai/activity/presets/reasoning-visibility.ts","../src/ds/components/ai/activity/presets/reasoning-activity.tsx","../src/ds/components/ai/activity/presets/signal-activity.tsx"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport const WorkingDirectoryContext = createContext<string | undefined>(undefined);\n\nfunction relativeTo(directory: string | undefined, text: string): string {\n const root = directory?.replace(/\\/+$/, '');\n if (!root) return text;\n const escaped = root.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return text.replace(new RegExp(`(?<![^\\\\s'\"=(])${escaped}(?:/(?=[^\\\\s/])|(?![\\\\w.-]))`, 'g'), match =>\n match.endsWith('/') ? '' : '.',\n );\n}\n\n/** Rewrites text the way `ActivityDetail` shows it, for names that must say the same thing. */\nexport function useRelativePaths(): (text: string) => string {\n const directory = useContext(WorkingDirectoryContext);\n return text => relativeTo(directory, text);\n}\n","import { X } from 'lucide-react';\nimport { createContext, useContext, useId, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useRelativePaths, WorkingDirectoryContext } from './use-relative-paths';\nimport { ArrivalScope, useArriving } from '@/ds/components/Arrival';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { Shimmer } from '@/ds/components/Shimmer';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\n\ntype ActivityStatus = 'idle' | 'running' | 'error';\n\n/** `row` sits on a hover surface; `inline` reads as text beside prose: no surface, no inset, the line lifts on hover. */\ntype ActivityAppearance = 'row' | 'inline';\n\ninterface ActivityContextValue {\n open: boolean;\n foldable: boolean;\n status: ActivityStatus;\n appearance: ActivityAppearance;\n nested: boolean;\n toggle: () => void;\n}\n\nconst LIFTS = 'transition-colors motion-reduce:transition-none';\nconst LIFTS_TO_FOREGROUND = `${LIFTS} group-hover/row:text-foreground group-has-focus-visible/row:text-foreground`;\nconst LIFTS_TO_MUTED = `${LIFTS} group-hover/row:text-muted-foreground group-has-focus-visible/row:text-muted-foreground`;\n\nconst ActivityContext = createContext<ActivityContextValue | undefined>(undefined);\n\n// Stryker disable next-line ArrowFunction: the default callback is intentionally behaviorless.\nconst noopOpenChange = () => {};\n\nfunction useActivity() {\n const context = useContext(ActivityContext);\n if (!context) throw new Error('Activity compounds must be rendered within Activity');\n return context;\n}\n\nfunction useInline() {\n return useContext(ActivityContext)?.appearance === 'inline';\n}\n\nexport interface ActivityProps extends Omit<\n ComponentProps<typeof Collapsible>,\n 'defaultOpen' | 'onOpenChange' | 'open'\n> {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n foldable?: boolean;\n status?: ActivityStatus;\n appearance?: ActivityAppearance;\n}\n\nexport function Activity({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange = noopOpenChange,\n foldable = true,\n status = 'idle',\n appearance = 'row',\n className,\n children,\n ...props\n}: ActivityProps) {\n const nested = useContext(ActivityContext) !== undefined;\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const open = controlledOpen ?? (foldable && uncontrolledOpen);\n const statusId = useId();\n\n const handleOpenChange = (nextOpen: boolean) => {\n if (controlledOpen === undefined) setUncontrolledOpen(nextOpen);\n onOpenChange(nextOpen);\n };\n\n return (\n <ActivityContext.Provider\n value={{ open, foldable, status, appearance, nested, toggle: () => handleOpenChange(!open) }}\n >\n <Collapsible\n open={open}\n onOpenChange={handleOpenChange}\n className={cn('max-w-full min-w-0', className)}\n role=\"group\"\n aria-busy={status === 'running'}\n aria-invalid={status === 'error' || undefined}\n aria-describedby={status === 'idle' ? undefined : statusId}\n data-status={status}\n {...props}\n >\n {children}\n <span id={statusId} className=\"sr-only\" aria-live=\"polite\">\n {status === 'running' && 'Running'}\n {status === 'error' && 'Failed'}\n </span>\n </Collapsible>\n </ActivityContext.Provider>\n );\n}\n\nexport const ActivityTrigger = ({ className, children, ...props }: ComponentProps<'div'>) => {\n const { foldable, appearance } = useActivity();\n const lineId = useId();\n\n return (\n <div\n className={cn(\n 'group/row relative w-full min-w-0 rounded-md transition-colors motion-reduce:transition-none',\n foldable && appearance === 'row' && 'hover:bg-fill',\n className,\n )}\n {...props}\n >\n {foldable && (\n <CollapsibleTrigger\n aria-labelledby={lineId}\n className=\"absolute inset-0 cursor-pointer rounded-md focus-visible:ring-1 focus-visible:ring-border-focus focus-visible:outline-hidden\"\n />\n )}\n <div id={lineId} className={cn(foldable && 'pointer-events-none relative')}>\n {children}\n </div>\n </div>\n );\n};\n\nexport const ActivityHeader = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { status, appearance } = useActivity();\n\n return (\n <Shimmer\n active={status === 'running'}\n className={cn(\n 'flex min-w-0 items-center gap-2 py-1',\n appearance === 'inline' ? 'w-fit max-w-full' : 'w-full px-1.5',\n className,\n )}\n {...props}\n >\n {children}\n </Shimmer>\n );\n};\n\nexport const ActivityLeading = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { foldable, toggle } = useActivity();\n\n if (!children) return null;\n\n return (\n <span\n className={cn('pointer-events-auto flex shrink-0 empty:hidden', foldable && 'cursor-pointer', className)}\n onClick={foldable ? toggle : undefined}\n {...props}\n >\n {children}\n </span>\n );\n};\n\nexport const ActivityIcon = ({ className, ...props }: ComponentProps<'span'>) => {\n const { status, appearance } = useActivity();\n\n return (\n <span\n className={cn(\n 'flex size-4 shrink-0 items-center justify-center [&_svg]:size-3.5 [&_svg]:shrink-0',\n status === 'error' ? 'text-destructive-foreground' : 'text-placeholder',\n status !== 'error' && appearance === 'inline' && LIFTS_TO_MUTED,\n className,\n )}\n {...props}\n />\n );\n};\n\nexport interface ActivityLabelProps extends ComponentProps<typeof Txt> {\n wrap?: boolean;\n}\n\nexport const ActivityLabel = ({ wrap = false, className, ...props }: ActivityLabelProps) => {\n const inline = useInline();\n\n return (\n <Txt\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn(\n wrap ? 'min-w-0 break-words' : 'shrink-0 truncate',\n inline ? `max-w-none ${LIFTS_TO_FOREGROUND}` : 'max-w-[55%]',\n className,\n )}\n {...props}\n />\n );\n};\n\n/** Paths under the agent's working directory read relative to it, the way the agent itself refers to them. */\nexport function ActivityWorkingDirectory({ path, children }: { path: string | undefined; children: ReactNode }) {\n return <WorkingDirectoryContext value={path}>{children}</WorkingDirectoryContext>;\n}\n\nexport interface ActivityDetailProps extends Omit<ComponentProps<typeof Txt>, 'font'> {\n wrap?: boolean;\n}\n\nexport const ActivityDetail = ({ wrap = false, className, children, ...props }: ActivityDetailProps) => {\n const arriving = useArriving();\n const inline = useInline();\n const relative = useRelativePaths();\n\n return (\n <Txt\n as=\"span\"\n variant=\"caption\"\n tone=\"muted\"\n className={cn('min-w-0', wrap ? 'break-words' : 'truncate', inline && LIFTS_TO_FOREGROUND, arriving, className)}\n {...props}\n >\n {typeof children === 'string' ? relative(children) : children}\n </Txt>\n );\n};\n\nexport const ActivitySummary = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex min-w-0 items-center gap-1', className)} {...props} />\n);\n\nexport interface ActivitySpacerProps extends ComponentProps<'span'> {\n rule?: boolean;\n}\n\nexport const ActivitySpacer = ({ rule, className, ...props }: ActivitySpacerProps) => {\n const inline = useInline();\n\n return (\n <span\n aria-hidden\n className={cn(\n 'min-w-2 flex-1',\n rule && 'h-px bg-border mask-r-from-[calc(100%-min(100%,160px))]',\n inline && !rule && 'hidden',\n className,\n )}\n {...props}\n />\n );\n};\n\nexport const ActivityTrailing = ({ className, ...props }: ComponentProps<'span'>) => (\n <span className={cn('flex shrink-0 items-center', className)} {...props} />\n);\n\nexport const ActivityDisclosure = ({ className, children, ...props }: ComponentProps<'span'>) => {\n const { open, foldable, nested } = useActivity();\n\n return (\n <span\n className={cn(\n 'flex size-4 shrink-0 items-center justify-center transition-opacity duration-150 motion-reduce:transition-none starting:opacity-0',\n !foldable && 'hidden',\n foldable && nested && 'hidden group-hover/row:flex group-has-focus-visible/row:flex',\n className,\n )}\n {...props}\n >\n <span\n aria-hidden\n className={cn(\n 'flex shrink-0 items-center text-muted-foreground/60 transition duration-150 motion-reduce:transition-none',\n 'group-hover/row:text-muted-foreground group-has-focus-visible/row:text-muted-foreground',\n open && 'text-muted-foreground',\n open && children != null && 'rotate-90',\n )}\n >\n {children ?? <DisclosureChevron direction=\"right\" open={open} className=\"size-3.25\" />}\n </span>\n </span>\n );\n};\n\nexport interface ActivityHeadlineProps extends Omit<ComponentProps<typeof ActivityHeader>, 'children'> {\n leading?: ReactNode;\n icon: ReactNode;\n label: ReactNode;\n detail?: string;\n description?: string;\n wrapDetail?: boolean;\n badges?: ReactNode;\n}\n\nexport const ActivityHeadline = ({\n leading,\n icon,\n label,\n detail,\n description,\n wrapDetail,\n badges,\n ...props\n}: ActivityHeadlineProps) => {\n const { status, appearance } = useActivity();\n const hasBadges = Boolean(badges);\n const labelShrinks = Boolean(description) || (appearance === 'inline' && !detail);\n\n return (\n <ActivityHeader {...props}>\n <ActivityLeading>{leading}</ActivityLeading>\n <ActivityIcon>{icon}</ActivityIcon>\n <span className={cn('contents', hasBadges && 'flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1')}>\n <ActivityLabel className={cn(labelShrinks && 'max-w-none min-w-0 shrink')}>\n {description || label}\n </ActivityLabel>\n {badges}\n {!description && detail && (\n <ActivityDetail wrap={wrapDetail} className={cn(hasBadges && 'grow basis-40')}>\n {detail}\n </ActivityDetail>\n )}\n </span>\n <ActivitySpacer className={cn(hasBadges && 'flex-none')} />\n {status === 'error' && (\n <ActivityTrailing>\n <X size={13} role=\"img\" aria-label=\"Failed\" className=\"shrink-0 text-destructive-foreground\" />\n </ActivityTrailing>\n )}\n <ActivityDisclosure />\n </ActivityHeader>\n );\n};\n\nexport interface ActivityContentProps extends ComponentProps<typeof CollapsibleContent> {\n /** Drop the rail and its indent, so the content lines up with the text around the line. */\n flush?: boolean;\n}\n\nexport const ActivityContent = ({ flush = false, className, children, ...props }: ActivityContentProps) => {\n const inline = useInline();\n\n return (\n <CollapsibleContent className=\"max-w-full min-w-0\" {...props}>\n <div\n className={cn(\n 'relative flex max-w-full min-w-0 flex-col py-1.5',\n !flush &&\n \"gap-1.5 pr-1 pl-4 before:absolute before:inset-y-0 before:left-0 before:w-px before:bg-border before:mask-b-from-[calc(100%-min(40%,80px))] before:content-['']\",\n !flush && (inline ? 'ml-2' : 'ml-[14px]'),\n className,\n )}\n >\n <ArrivalScope>{children}</ArrivalScope>\n </div>\n </CollapsibleContent>\n );\n};\n\nexport interface ActivityItemProps extends Omit<ActivityProps, 'children' | 'open' | 'onOpenChange' | 'foldable'> {\n icon: ReactNode;\n label: string;\n detail?: string;\n badges?: ReactNode;\n collapsible?: boolean;\n children?: ReactNode;\n 'aria-label': string;\n}\n\nexport function ActivityItem({\n icon,\n label,\n detail,\n badges,\n collapsible = true,\n children,\n ...props\n}: ActivityItemProps) {\n const folds = collapsible && Boolean(children);\n\n return (\n <Activity {...props} foldable={folds} open={collapsible ? undefined : true}>\n <ActivityTrigger>\n <ActivityHeadline icon={icon} label={label} detail={detail} wrapDetail={!folds} badges={badges} />\n </ActivityTrigger>\n {children && <ActivityContent>{children}</ActivityContent>}\n </Activity>\n );\n}\n\nexport type { ActivityAppearance, ActivityStatus };\n","import { truncateString } from '@/lib/truncate-string';\n\nexport function messagePreview(message: string): string {\n return truncateString(message, 72);\n}\n\nexport function messagePreviewShowsAll(message: string): boolean {\n return !message.includes('\\n') && messagePreview(message) === message;\n}\n","import { Bell, ExternalLink } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { ActivityItem } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { Badge } from '@/ds/components/Badge';\nimport type { BadgeVariant } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface NotificationActivityProps {\n label: string;\n message: string;\n state?: string;\n icon?: ReactNode;\n priority?: string;\n status?: string;\n pending?: string;\n link?: { href: string; label: string };\n defaultOpen?: boolean;\n /** Badges rendered after the priority, status and pending badges. */\n extraBadges?: ReactNode;\n /** A label shown above the message once opened, e.g. to flag it as untrusted. */\n messageLabel?: string;\n}\n\nconst priorityBadgeVariants: Partial<Record<string, BadgeVariant>> = {\n urgent: 'red',\n high: 'orange',\n medium: 'blue',\n};\n\nexport function NotificationActivity({\n label,\n message,\n state = 'notification',\n icon,\n priority,\n status,\n pending,\n link,\n defaultOpen,\n extraBadges,\n messageLabel,\n}: NotificationActivityProps) {\n const lineHoldsMessage = messagePreviewShowsAll(message) && !messageLabel;\n const hasBadges = Boolean(priority || status || pending || extraBadges);\n\n return (\n <ActivityItem\n label={label}\n detail={messagePreview(message)}\n icon={icon ?? <Bell className=\"text-warning-foreground\" aria-hidden />}\n badges={\n hasBadges && (\n <>\n {priority && (\n <Badge size=\"xs\" variant={priorityBadgeVariants[priority]}>\n {priority}\n </Badge>\n )}\n {status && <Badge size=\"xs\">{status}</Badge>}\n {pending && <Badge size=\"xs\">{pending} pending</Badge>}\n {extraBadges}\n </>\n )\n }\n defaultOpen={defaultOpen}\n data-notification-state={state}\n aria-label={`Notification: ${label}`}\n >\n {(!lineHoldsMessage || link) && (\n <div className=\"flex flex-col gap-2\">\n {messageLabel && (\n <Txt variant=\"caption\" tone=\"muted\">\n {messageLabel}\n </Txt>\n )}\n {message && (\n <Txt variant=\"caption\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n )}\n {link && <NotificationLink link={link} message={message} />}\n </div>\n )}\n </ActivityItem>\n );\n}\n\nfunction NotificationLink({\n link,\n message,\n}: {\n link: NonNullable<NotificationActivityProps['link']>;\n message: string;\n}) {\n return (\n <a\n href={link.href}\n target=\"_blank\"\n rel=\"noreferrer\"\n aria-label={`${link.label}: ${messagePreview(message)}`}\n className=\"flex w-fit items-center gap-1 text-meta text-muted-foreground hover:text-foreground\"\n >\n {link.label}\n <ExternalLink size={12} aria-hidden />\n </a>\n );\n}\n","import type { ReasoningContent } from './reasoning-visibility';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\n\nexport interface ReasoningTextProps {\n content: ReasoningContent;\n className?: string;\n}\n\nexport function ReasoningText({ content: { text, redacted, streaming }, className }: ReasoningTextProps) {\n return (\n <MarkdownRenderer className={className} streaming={streaming && !redacted}>\n {redacted ? 'Reasoning was redacted by the provider.' : text}\n </MarkdownRenderer>\n );\n}\n","export interface ReasoningContent {\n text: string;\n redacted?: boolean;\n streaming?: boolean;\n}\n\nexport function hasVisibleReasoning({ text, redacted, streaming }: ReasoningContent): boolean {\n return Boolean(streaming || redacted) || hasReasoningText({ text, redacted });\n}\n\n/** Whether the passage has something to read: its text, or the notice that it was redacted. */\nexport function hasReasoningText({ text, redacted }: ReasoningContent): boolean {\n return Boolean(redacted) || text.trim().length > 0;\n}\n","import { ActivityItem } from '../activity';\nimport { ReasoningText } from './reasoning-text';\nimport { hasReasoningText, hasVisibleReasoning } from './reasoning-visibility';\nimport type { ReasoningContent } from './reasoning-visibility';\nimport { agentGlyph } from '@/ds/components/AgentIndicator';\n\nconst ThinkingGlyph = agentGlyph('thinking');\n\nexport interface ReasoningActivityProps extends ReasoningContent {\n defaultOpen?: boolean;\n}\n\nexport function ReasoningActivity({ defaultOpen = true, ...content }: ReasoningActivityProps) {\n if (!hasVisibleReasoning(content)) return null;\n\n return (\n <ActivityItem\n icon={<ThinkingGlyph aria-hidden />}\n label=\"Reasoning\"\n status={content.streaming ? 'running' : 'idle'}\n defaultOpen={defaultOpen}\n aria-label=\"Reasoning\"\n >\n {hasReasoningText(content) && (\n <ReasoningText content={content} className=\"text-caption text-muted-foreground [&_p]:my-0.5\" />\n )}\n </ActivityItem>\n );\n}\n","import {\n Activity,\n ActivityContent,\n ActivityDetail,\n ActivityDisclosure,\n ActivityHeader,\n ActivityIcon,\n ActivityItem,\n ActivityLabel,\n ActivityTrigger,\n} from '../activity';\nimport type { ActivityAppearance } from '../activity';\nimport { messagePreview, messagePreviewShowsAll } from './message-preview';\nimport { agentGlyph } from '@/ds/components/AgentIndicator';\nimport { Badge } from '@/ds/components/Badge';\nimport { Txt } from '@/ds/components/Txt';\nimport { humanize } from '@/lib/string';\n\nexport interface SignalActivityProps {\n kind: 'state' | 'reactive' | 'reminder';\n label: string;\n message: string;\n detail?: string;\n mode?: string;\n defaultOpen?: boolean;\n /** `inline` reads like the agent's own lines: their glyph, type and weight, the message as prose. */\n appearance?: ActivityAppearance;\n}\n\nconst signalKinds = {\n state: {\n Icon: agentGlyph('context'),\n accent: 'text-badge-purple-indicator',\n body: { variant: 'caption' },\n },\n reactive: {\n Icon: agentGlyph('notice'),\n accent: undefined,\n body: { variant: 'caption' },\n },\n reminder: {\n Icon: agentGlyph('notice'),\n accent: 'text-info-indicator',\n body: { variant: 'meta', font: 'mono' },\n },\n} as const;\n\nfunction SignalLine({ kind, label, message, detail, mode, defaultOpen }: Omit<SignalActivityProps, 'appearance'>) {\n const { Icon } = signalKinds[kind];\n const name = humanize(label);\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <Activity\n appearance=\"inline\"\n foldable={!lineHoldsMessage}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${name}`}\n >\n <ActivityTrigger>\n <ActivityHeader>\n <ActivityIcon className=\"[&_svg]:size-4\">\n <Icon />\n </ActivityIcon>\n <ActivityLabel className=\"text-body font-medium\">{name}</ActivityLabel>\n {mode && <ActivityLabel className=\"-ml-1 text-body before:content-['·_']\">{mode}</ActivityLabel>}\n {detail && <ActivityDetail className=\"text-body-sm\">{detail}</ActivityDetail>}\n {lineHoldsMessage && message && (\n <ActivityLabel wrap className=\"text-body\">\n {message}\n </ActivityLabel>\n )}\n <ActivityDisclosure />\n </ActivityHeader>\n </ActivityTrigger>\n {!lineHoldsMessage && (\n <ActivityContent>\n <Txt tone=\"muted\" className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </ActivityContent>\n )}\n </Activity>\n );\n}\n\nexport function SignalActivity({ appearance = 'row', ...signal }: SignalActivityProps) {\n if (appearance === 'inline') return <SignalLine {...signal} />;\n const { kind, label, message, detail, mode, defaultOpen } = signal;\n const { Icon, accent, body } = signalKinds[kind];\n const lineHoldsMessage = detail === undefined && messagePreviewShowsAll(message);\n\n return (\n <ActivityItem\n icon={<Icon className={accent} aria-hidden />}\n label={label}\n detail={detail ?? messagePreview(message)}\n badges={mode ? <Badge size=\"xs\">{mode}</Badge> : undefined}\n defaultOpen={defaultOpen}\n data-signal-kind={kind}\n aria-label={`Signal: ${label}`}\n >\n {message && !lineHoldsMessage && (\n <>\n {detail && (\n <Txt variant=\"meta\" font=\"mono\" tone=\"muted\" className=\"break-all\">\n {detail}\n </Txt>\n )}\n <Txt {...body} className=\"break-words whitespace-pre-wrap\">\n {message}\n </Txt>\n </>\n )}\n </ActivityItem>\n );\n}\n"],"mappings":"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"}