@mastra/playground-ui 60.2.1-alpha.0 → 61.0.0-alpha.2

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 (1149) hide show
  1. package/README.md +18 -0
  2. package/dist/{Avatar-bHcyExU7.js → Avatar-Bg_EZRgZ.js} +2 -2
  3. package/dist/{Avatar-bHcyExU7.js.map → Avatar-Bg_EZRgZ.js.map} +1 -1
  4. package/dist/{Avatar-B3PwGdWv.cjs → Avatar-DchBEEMO.cjs} +2 -2
  5. package/dist/{Avatar-B3PwGdWv.cjs.map → Avatar-DchBEEMO.cjs.map} +1 -1
  6. package/dist/{Badge-D3EctKQo.cjs → Badge-DB59RxT5.cjs} +3 -3
  7. package/dist/Badge-DB59RxT5.cjs.map +1 -0
  8. package/dist/{Badge-DmOqFpXW.js → Badge-DId-8rYY.js} +3 -3
  9. package/dist/Badge-DId-8rYY.js.map +1 -0
  10. package/dist/{EmptyState-DyyUFpzY.js → EmptyState-DGzBN0Ix.js} +2 -2
  11. package/dist/{EmptyState-DyyUFpzY.js.map → EmptyState-DGzBN0Ix.js.map} +1 -1
  12. package/dist/{EmptyState-CuoMGNP0.cjs → EmptyState-DvSib3QC.cjs} +2 -2
  13. package/dist/{EmptyState-CuoMGNP0.cjs.map → EmptyState-DvSib3QC.cjs.map} +1 -1
  14. package/dist/{Header-hTHhO02b.js → Header-BXl3AZgO.js} +2 -2
  15. package/dist/{Header-hTHhO02b.js.map → Header-BXl3AZgO.js.map} +1 -1
  16. package/dist/{Header-y51Sfo3G.cjs → Header-W3PBmXia.cjs} +2 -2
  17. package/dist/{Header-y51Sfo3G.cjs.map → Header-W3PBmXia.cjs.map} +1 -1
  18. package/dist/{Notice-B8RIClJD.js → Notice-D4gMAkVI.js} +2 -2
  19. package/dist/{Notice-B8RIClJD.js.map → Notice-D4gMAkVI.js.map} +1 -1
  20. package/dist/{Notice-C4Tgmtgb.cjs → Notice-D4zc_oTj.cjs} +2 -2
  21. package/dist/{Notice-C4Tgmtgb.cjs.map → Notice-D4zc_oTj.cjs.map} +1 -1
  22. package/dist/{Txt-BP1SRHmL.js → Txt-C3cYJgKU.js} +4 -1
  23. package/dist/Txt-C3cYJgKU.js.map +1 -0
  24. package/dist/{Txt-DPmEpNbp.cjs → Txt-DNnvlrBo.cjs} +4 -1
  25. package/dist/Txt-DNnvlrBo.cjs.map +1 -0
  26. package/dist/{activity-CbQG59Oc.cjs → activity-ClKZR5_o.cjs} +2 -2
  27. package/dist/{activity-CbQG59Oc.cjs.map → activity-ClKZR5_o.cjs.map} +1 -1
  28. package/dist/{activity-BoXbE4Kz.js → activity-D0SefV4r.js} +2 -2
  29. package/dist/{activity-BoXbE4Kz.js.map → activity-D0SefV4r.js.map} +1 -1
  30. package/dist/{ask-user-DE8TaPhb.js → ask-user-CqCUiZRR.js} +4 -4
  31. package/dist/{ask-user-DE8TaPhb.js.map → ask-user-CqCUiZRR.js.map} +1 -1
  32. package/dist/{ask-user-XYY0fUoI.cjs → ask-user-DBb0lUh2.cjs} +4 -4
  33. package/dist/{ask-user-XYY0fUoI.cjs.map → ask-user-DBb0lUh2.cjs.map} +1 -1
  34. package/dist/buttons-group.css +1 -1
  35. package/dist/{code-BeWhOFT4.js → code-C8akLzcu.js} +12 -9
  36. package/dist/code-C8akLzcu.js.map +1 -0
  37. package/dist/{code-B-x-9sJ1.cjs → code-D_sH618U.cjs} +12 -9
  38. package/dist/code-D_sH618U.cjs.map +1 -0
  39. package/dist/{code-block-Bnz7Pq0Q.js → code-block-CXZNO_qi.js} +6 -5
  40. package/dist/{code-block-Bnz7Pq0Q.js.map → code-block-CXZNO_qi.js.map} +1 -1
  41. package/dist/{code-block-C3DbSINk.cjs → code-block-z2hVcNq7.cjs} +7 -6
  42. package/dist/{code-block-C3DbSINk.cjs.map → code-block-z2hVcNq7.cjs.map} +1 -1
  43. package/dist/collapsible-box-DW-y0Oi1.js +67 -0
  44. package/dist/collapsible-box-DW-y0Oi1.js.map +1 -0
  45. package/dist/collapsible-box-DdUueeh6.cjs +69 -0
  46. package/dist/collapsible-box-DdUueeh6.cjs.map +1 -0
  47. package/dist/{combobox-RzEkcOuu.cjs → combobox-DPpiBLWV.cjs} +3 -3
  48. package/dist/{combobox-RzEkcOuu.cjs.map → combobox-DPpiBLWV.cjs.map} +1 -1
  49. package/dist/{combobox-DKFPbNMB.js → combobox-DoJgbq9N.js} +3 -3
  50. package/dist/{combobox-DKFPbNMB.js.map → combobox-DoJgbq9N.js.map} +1 -1
  51. package/dist/{combobox-styles-mbcWlNZQ.js → combobox-styles-BuHYzri9.js} +3 -3
  52. package/dist/combobox-styles-BuHYzri9.js.map +1 -0
  53. package/dist/{combobox-styles-qL3FSgmU.cjs → combobox-styles-zdW4cHSq.cjs} +3 -3
  54. package/dist/combobox-styles-zdW4cHSq.cjs.map +1 -0
  55. package/dist/{command-DFin7kHN.js → command-CXPbrw66.js} +7 -4
  56. package/dist/command-CXPbrw66.js.map +1 -0
  57. package/dist/{command-Bm0VcX7X.cjs → command-DD3WIrQX.cjs} +7 -4
  58. package/dist/command-DD3WIrQX.cjs.map +1 -0
  59. package/dist/{comment-DKWkzdMj.js → comment-B1Cf9w4Z.js} +2 -2
  60. package/dist/{comment-DKWkzdMj.js.map → comment-B1Cf9w4Z.js.map} +1 -1
  61. package/dist/{comment-DWY6D0pZ.cjs → comment-DnbibTOe.cjs} +2 -2
  62. package/dist/{comment-DWY6D0pZ.cjs.map → comment-DnbibTOe.cjs.map} +1 -1
  63. package/dist/components/Avatar.cjs.js +1 -1
  64. package/dist/components/Avatar.es.js +1 -1
  65. package/dist/components/Badge.cjs.js +1 -1
  66. package/dist/components/Badge.es.js +1 -1
  67. package/dist/components/ChatShell.cjs.js +6 -5
  68. package/dist/components/ChatShell.cjs.js.map +1 -1
  69. package/dist/components/ChatShell.es.js +6 -5
  70. package/dist/components/ChatShell.es.js.map +1 -1
  71. package/dist/components/ClampedText.cjs.js +1 -1
  72. package/dist/components/ClampedText.es.js +1 -1
  73. package/dist/components/Code.cjs.js +1 -1
  74. package/dist/components/Code.es.js +1 -1
  75. package/dist/components/CodeBlock.cjs.js +1 -1
  76. package/dist/components/CodeBlock.es.js +1 -1
  77. package/dist/components/CollapsibleBox.cjs.js +3 -2
  78. package/dist/components/CollapsibleBox.cjs.js.map +1 -1
  79. package/dist/components/CollapsibleBox.es.js +2 -1
  80. package/dist/components/CollapsibleBox.es.js.map +1 -1
  81. package/dist/components/Combobox.cjs.js +2 -2
  82. package/dist/components/Combobox.es.js +2 -2
  83. package/dist/components/Command.cjs.js +1 -1
  84. package/dist/components/Command.es.js +1 -1
  85. package/dist/components/CommandPalette.cjs.js +2 -2
  86. package/dist/components/CommandPalette.es.js +2 -2
  87. package/dist/components/Comment.cjs.js +4 -4
  88. package/dist/components/Comment.es.js +5 -5
  89. package/dist/components/DataCodeSection.cjs.js +1 -1
  90. package/dist/components/DataCodeSection.es.js +1 -1
  91. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  92. package/dist/components/DataDetailsPanel.es.js +2 -2
  93. package/dist/components/DataList.cjs.js +4 -4
  94. package/dist/components/DataList.es.js +4 -4
  95. package/dist/components/DataPanel.cjs.js +1 -1
  96. package/dist/components/DataPanel.es.js +1 -1
  97. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  98. package/dist/components/DateRangeTimeline.es.js +1 -1
  99. package/dist/components/DateTimePicker.cjs.js +2 -2
  100. package/dist/components/DateTimePicker.es.js +2 -2
  101. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  102. package/dist/components/DateTimeRangePicker.es.js +1 -1
  103. package/dist/components/EmptyState.cjs.js +1 -1
  104. package/dist/components/EmptyState.es.js +1 -1
  105. package/dist/components/Entity.cjs.js +1 -1
  106. package/dist/components/Entity.es.js +1 -1
  107. package/dist/components/EntityHeader.cjs.js +1 -1
  108. package/dist/components/EntityHeader.es.js +1 -1
  109. package/dist/components/Entry.cjs.js +1 -1
  110. package/dist/components/Entry.es.js +1 -1
  111. package/dist/components/EnvironmentVariablesEditor.cjs.js +5 -5
  112. package/dist/components/EnvironmentVariablesEditor.es.js +5 -5
  113. package/dist/components/Field.cjs.js +1 -1
  114. package/dist/components/Field.es.js +1 -1
  115. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  116. package/dist/components/FileDropBackdrop.es.js +1 -1
  117. package/dist/components/FilterBar.cjs.js +3 -3
  118. package/dist/components/FilterBar.es.js +4 -4
  119. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  120. package/dist/components/FormFieldBlocks.es.js +2 -2
  121. package/dist/components/Header.cjs.js +1 -1
  122. package/dist/components/Header.es.js +1 -1
  123. package/dist/components/HorizontalBars.cjs.js +1 -1
  124. package/dist/components/HorizontalBars.es.js +1 -1
  125. package/dist/components/InputGroup.cjs.js +3 -1
  126. package/dist/components/InputGroup.cjs.js.map +1 -1
  127. package/dist/components/InputGroup.es.js +1 -1
  128. package/dist/components/InputNumber.cjs.js +95 -0
  129. package/dist/components/InputNumber.cjs.js.map +1 -0
  130. package/dist/components/InputNumber.d.ts +2 -0
  131. package/dist/components/InputNumber.es.js +68 -0
  132. package/dist/components/InputNumber.es.js.map +1 -0
  133. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  134. package/dist/components/JSONSchemaForm.es.js +2 -2
  135. package/dist/components/KeyValueList.cjs.js +1 -1
  136. package/dist/components/KeyValueList.es.js +1 -1
  137. package/dist/components/ListSearch.cjs.js +1 -1
  138. package/dist/components/ListSearch.es.js +1 -1
  139. package/dist/components/LogsDataList.cjs.js +3 -1
  140. package/dist/components/LogsDataList.cjs.js.map +1 -1
  141. package/dist/components/LogsDataList.es.js +3 -1
  142. package/dist/components/LogsDataList.es.js.map +1 -1
  143. package/dist/components/MainHeader.cjs.js +1 -1
  144. package/dist/components/MainHeader.es.js +1 -1
  145. package/dist/components/MainSidebar.cjs.js +11 -125
  146. package/dist/components/MainSidebar.cjs.js.map +1 -1
  147. package/dist/components/MainSidebar.es.js +1 -120
  148. package/dist/components/MainSidebar.es.js.map +1 -1
  149. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  150. package/dist/components/MarkdownRenderer.es.js +1 -1
  151. package/dist/components/Message.cjs.js +1 -1
  152. package/dist/components/Message.es.js +2 -2
  153. package/dist/components/MessageScroller.cjs.js +1 -1
  154. package/dist/components/MessageScroller.es.js +1 -1
  155. package/dist/components/MetricsCard.cjs.js +1 -1
  156. package/dist/components/MetricsCard.es.js +1 -1
  157. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  158. package/dist/components/MetricsKpiCard.es.js +1 -1
  159. package/dist/components/MetricsLineChart.cjs.js +2 -2
  160. package/dist/components/MetricsLineChart.es.js +2 -2
  161. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  162. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  163. package/dist/components/Notice.cjs.js +1 -1
  164. package/dist/components/Notice.es.js +1 -1
  165. package/dist/components/PageHeader.cjs.js +1 -1
  166. package/dist/components/PageHeader.es.js +1 -1
  167. package/dist/components/PageLayout.cjs.js +1 -1
  168. package/dist/components/PageLayout.es.js +1 -1
  169. package/dist/components/ProductBadge.cjs.js +1 -1
  170. package/dist/components/ProductBadge.es.js +1 -1
  171. package/dist/components/PropertyFilter.cjs.js +3 -3
  172. package/dist/components/PropertyFilter.es.js +3 -3
  173. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  174. package/dist/components/RelativeTimestamp.es.js +1 -1
  175. package/dist/components/RuleBuilder.cjs.js +2 -2
  176. package/dist/components/RuleBuilder.es.js +2 -2
  177. package/dist/components/ScatterPlotChart.cjs.js +1 -1
  178. package/dist/components/ScatterPlotChart.es.js +1 -1
  179. package/dist/components/SearchInput.cjs.js +1 -1
  180. package/dist/components/SearchInput.es.js +1 -1
  181. package/dist/components/Section.cjs.js +1 -1
  182. package/dist/components/Section.es.js +1 -1
  183. package/dist/components/SectionCard.cjs.js +1 -1
  184. package/dist/components/SectionCard.es.js +1 -1
  185. package/dist/components/Select.cjs.js +1 -1
  186. package/dist/components/Select.es.js +1 -1
  187. package/dist/components/SideDialog.cjs.js +1 -1
  188. package/dist/components/SideDialog.es.js +1 -1
  189. package/dist/components/StatusIndicators.cjs.js +1 -1
  190. package/dist/components/StatusIndicators.es.js +1 -1
  191. package/dist/components/Steps.cjs.js +1 -1
  192. package/dist/components/Steps.es.js +1 -1
  193. package/dist/components/Table.cjs.js +1 -1
  194. package/dist/components/Table.es.js +1 -1
  195. package/dist/components/Tabs.cjs.js +5 -4
  196. package/dist/components/Tabs.cjs.js.map +1 -1
  197. package/dist/components/Tabs.es.js +4 -3
  198. package/dist/components/Tabs.es.js.map +1 -1
  199. package/dist/components/Text.cjs.js +1 -1
  200. package/dist/components/Text.es.js +1 -1
  201. package/dist/components/ThinkingLevel.cjs.js +230 -0
  202. package/dist/components/ThinkingLevel.cjs.js.map +1 -0
  203. package/dist/components/ThinkingLevel.d.ts +2 -0
  204. package/dist/components/ThinkingLevel.es.js +223 -0
  205. package/dist/components/ThinkingLevel.es.js.map +1 -0
  206. package/dist/components/ThreadList.cjs.js +1 -1
  207. package/dist/components/ThreadList.es.js +1 -1
  208. package/dist/components/ThreadRail.cjs.js +1 -1
  209. package/dist/components/ThreadRail.es.js +1 -1
  210. package/dist/components/TokenBudget.cjs.js +1 -1
  211. package/dist/components/TokenBudget.es.js +1 -1
  212. package/dist/components/Tree.cjs.js +2 -487
  213. package/dist/components/Tree.cjs.js.map +1 -1
  214. package/dist/components/Tree.es.js +1 -471
  215. package/dist/components/Tree.es.js.map +1 -1
  216. package/dist/components/Truncate.cjs.js +1 -1
  217. package/dist/components/Truncate.es.js +1 -1
  218. package/dist/components/Txt.cjs.js +1 -1
  219. package/dist/components/Txt.es.js +1 -1
  220. package/dist/components/Workflow.cjs.js +4 -4
  221. package/dist/components/Workflow.es.js +4 -4
  222. package/dist/components/ai/activity.cjs.js +4 -4
  223. package/dist/components/ai/activity.es.js +4 -4
  224. package/dist/components/ai/ask-user.cjs.js +1 -1
  225. package/dist/components/ai/ask-user.es.js +1 -1
  226. package/dist/components/ai/plan.cjs.js +1 -1
  227. package/dist/components/ai/plan.es.js +1 -1
  228. package/dist/components/ai/task-list.cjs.js +1 -1
  229. package/dist/components/ai/task-list.es.js +1 -1
  230. package/dist/components/ai/tool-call.cjs.js +2 -2
  231. package/dist/components/ai/tool-call.es.js +2 -2
  232. package/dist/components/ai/transcript-divider.cjs.js +3 -11
  233. package/dist/components/ai/transcript-divider.cjs.js.map +1 -1
  234. package/dist/components/ai/transcript-divider.es.js +1 -13
  235. package/dist/components/ai/transcript-divider.es.js.map +1 -1
  236. package/dist/{data-code-section-Ds79F6W-.cjs → data-code-section-BK0bftM-.cjs} +3 -3
  237. package/dist/{data-code-section-Ds79F6W-.cjs.map → data-code-section-BK0bftM-.cjs.map} +1 -1
  238. package/dist/{data-code-section-DFxE6ckH.js → data-code-section-yMYmVciV.js} +3 -3
  239. package/dist/{data-code-section-DFxE6ckH.js.map → data-code-section-yMYmVciV.js.map} +1 -1
  240. package/dist/{data-list-CEIYm7FY.js → data-list-DdsyfT8B.js} +3 -3
  241. package/dist/{data-list-CEIYm7FY.js.map → data-list-DdsyfT8B.js.map} +1 -1
  242. package/dist/{data-list-Bqf-fhMx.cjs → data-list-DoKc-wSe.cjs} +3 -3
  243. package/dist/{data-list-Bqf-fhMx.cjs.map → data-list-DoKc-wSe.cjs.map} +1 -1
  244. package/dist/{data-list-spacer-BH2DjRdk.js → data-list-spacer-7QVTcgIS.js} +2 -2
  245. package/dist/{data-list-spacer-BH2DjRdk.js.map → data-list-spacer-7QVTcgIS.js.map} +1 -1
  246. package/dist/{data-list-spacer-DFvaAEqo.cjs → data-list-spacer-CD4hD-As.cjs} +2 -2
  247. package/dist/{data-list-spacer-DFvaAEqo.cjs.map → data-list-spacer-CD4hD-As.cjs.map} +1 -1
  248. package/dist/{data-panel-CbomKGJt.js → data-panel-GT4fMXR0.js} +4 -4
  249. package/dist/data-panel-GT4fMXR0.js.map +1 -0
  250. package/dist/{data-panel-o-QLWuFV.cjs → data-panel-mzQKwVkT.cjs} +4 -4
  251. package/dist/data-panel-mzQKwVkT.cjs.map +1 -0
  252. package/dist/{date-time-range-picker-Bb-CGVEL.cjs → date-time-range-picker-BbX8F_LY.cjs} +4 -4
  253. package/dist/{date-time-range-picker-Bb-CGVEL.cjs.map → date-time-range-picker-BbX8F_LY.cjs.map} +1 -1
  254. package/dist/{date-time-range-picker-B1zYIQTC.js → date-time-range-picker-DzPLKJol.js} +4 -4
  255. package/dist/{date-time-range-picker-B1zYIQTC.js.map → date-time-range-picker-DzPLKJol.js.map} +1 -1
  256. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  257. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  258. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  259. package/dist/domains/auth/components/session-expired.es.js +1 -1
  260. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  261. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  262. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  263. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  264. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  265. package/dist/domains/chat/components/section-label.es.js +1 -1
  266. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
  267. package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
  268. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -2
  269. package/dist/domains/chat/messages/dataset-save-action.es.js +2 -2
  270. package/dist/domains/chat/messages/message-row.cjs.js +4 -4
  271. package/dist/domains/chat/messages/message-row.es.js +4 -4
  272. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  273. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  274. package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
  275. package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
  276. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  277. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  278. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  279. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  280. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  281. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  282. package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
  283. package/dist/domains/chat/messages/skill-message.es.js +3 -3
  284. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  285. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  286. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  287. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  288. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  289. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  290. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  291. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  292. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  293. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  294. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  295. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  296. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  297. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  298. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +3 -3
  299. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +3 -3
  300. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +2 -2
  301. package/dist/domains/chat/tools/badges/observation-renderer.es.js +2 -2
  302. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  303. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  304. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  305. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  306. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -0
  307. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  308. package/dist/domains/chat/tools/badges/workflow-badge.es.js +2 -0
  309. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  310. package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
  311. package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
  312. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  313. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  314. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  315. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  316. package/dist/domains/logs/components/log-data-panel.cjs.js +2 -2
  317. package/dist/domains/logs/components/log-data-panel.es.js +2 -2
  318. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  319. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  320. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  321. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  322. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  323. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  324. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  325. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  326. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  327. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  328. package/dist/domains/memory/components/observation-detail-view.cjs.js +3 -3
  329. package/dist/domains/memory/components/observation-detail-view.es.js +3 -3
  330. package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
  331. package/dist/domains/metrics/components/bar-list.es.js +1 -1
  332. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  333. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  334. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  335. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  336. package/dist/domains/metrics/components/latency-card-view.cjs.js +8 -7
  337. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  338. package/dist/domains/metrics/components/latency-card-view.es.js +7 -6
  339. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  340. package/dist/domains/metrics/components/memory-card-view.cjs.js +7 -6
  341. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  342. package/dist/domains/metrics/components/memory-card-view.es.js +6 -5
  343. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  344. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  345. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  346. package/dist/domains/metrics/components/scores-card-view.cjs.js +8 -7
  347. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  348. package/dist/domains/metrics/components/scores-card-view.es.js +7 -6
  349. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  350. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +7 -6
  351. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
  352. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +6 -5
  353. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
  354. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +8 -7
  355. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  356. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +7 -6
  357. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  358. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +7 -6
  359. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
  360. package/dist/domains/metrics/components/traces-volume-card-view.es.js +6 -5
  361. package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
  362. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  363. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  364. package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +1 -1
  365. package/dist/domains/observability/components/trace-as-item-dialog.es.js +1 -1
  366. package/dist/domains/request-context/components/request-context-label.cjs.js +1 -1
  367. package/dist/domains/request-context/components/request-context-label.es.js +1 -1
  368. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  369. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  370. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
  371. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
  372. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  373. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  374. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  375. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  376. package/dist/domains/scores/components/trace-scores-tab.cjs.js +5 -4
  377. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  378. package/dist/domains/scores/components/trace-scores-tab.es.js +5 -4
  379. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  380. package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
  381. package/dist/domains/traces/components/feedback-thread.es.js +4 -4
  382. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  383. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  384. package/dist/domains/traces/components/span-data-panel-view.cjs.js +21 -16
  385. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  386. package/dist/domains/traces/components/span-data-panel-view.es.js +20 -15
  387. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  388. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  389. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  390. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  391. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  392. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  393. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  394. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  395. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  396. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  397. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  398. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
  399. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
  400. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  401. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  402. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  403. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  404. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -2
  405. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
  406. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -1
  407. package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
  408. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  409. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  410. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  411. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  412. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  413. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  414. package/dist/domains/traces/components/span-timeline-row.cjs.js +1 -1
  415. package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
  416. package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
  417. package/dist/domains/traces/components/span-token-usage.es.js +1 -1
  418. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  419. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  420. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +5 -3
  421. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
  422. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +5 -3
  423. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +1 -1
  424. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +4 -3
  425. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
  426. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +4 -3
  427. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
  428. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +8 -16
  429. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
  430. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +8 -15
  431. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
  432. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +3 -16
  433. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
  434. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +3 -16
  435. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +1 -1
  436. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +27 -5
  437. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
  438. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +27 -7
  439. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
  440. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +29 -24
  441. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js.map +1 -1
  442. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +30 -25
  443. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js.map +1 -1
  444. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +45 -45
  445. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
  446. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +47 -47
  447. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
  448. package/dist/domains/traces/components/thread-trace.cjs.js +2 -1
  449. package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
  450. package/dist/domains/traces/components/thread-trace.es.js +4 -3
  451. package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
  452. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +43 -23
  453. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  454. package/dist/domains/traces/components/thread-view-by-trace.es.js +46 -26
  455. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  456. package/dist/domains/traces/components/thread-view-skeleton.cjs.js +28 -13
  457. package/dist/domains/traces/components/thread-view-skeleton.cjs.js.map +1 -1
  458. package/dist/domains/traces/components/thread-view-skeleton.es.js +28 -13
  459. package/dist/domains/traces/components/thread-view-skeleton.es.js.map +1 -1
  460. package/dist/domains/traces/components/timeline-name-col.cjs.js +5 -5
  461. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  462. package/dist/domains/traces/components/timeline-name-col.es.js +5 -5
  463. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  464. package/dist/domains/traces/components/timeline-timing-col.cjs.js +1 -1
  465. package/dist/domains/traces/components/timeline-timing-col.es.js +1 -1
  466. package/dist/domains/traces/components/trace-columns-menu.cjs.js +3 -3
  467. package/dist/domains/traces/components/trace-columns-menu.es.js +3 -3
  468. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +72 -50
  469. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  470. package/dist/domains/traces/components/trace-data-panel-view.es.js +72 -50
  471. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  472. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -0
  473. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  474. package/dist/domains/traces/components/trace-data-panel.es.js +1 -0
  475. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  476. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  477. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  478. package/dist/domains/traces/components/trace-messages-panel.cjs.js +2 -16
  479. package/dist/domains/traces/components/trace-messages-panel.cjs.js.map +1 -1
  480. package/dist/domains/traces/components/trace-messages-panel.es.js +3 -17
  481. package/dist/domains/traces/components/trace-messages-panel.es.js.map +1 -1
  482. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +18 -15
  483. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js.map +1 -1
  484. package/dist/domains/traces/components/trace-messages-skeleton.es.js +18 -15
  485. package/dist/domains/traces/components/trace-messages-skeleton.es.js.map +1 -1
  486. package/dist/domains/traces/components/trace-span-panel.cjs.js +77 -66
  487. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  488. package/dist/domains/traces/components/trace-span-panel.es.js +78 -67
  489. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  490. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +11 -13
  491. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js.map +1 -1
  492. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +11 -13
  493. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js.map +1 -1
  494. package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -1
  495. package/dist/domains/traces/components/trace-span-tree.es.js +1 -1
  496. package/dist/domains/traces/components/trace-summary-description.cjs.js +2 -2
  497. package/dist/domains/traces/components/trace-summary-description.es.js +2 -2
  498. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +2 -2
  499. package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
  500. package/dist/domains/traces/components/trace-thread-item-view.es.js +2 -2
  501. package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
  502. package/dist/domains/traces/components/trace-thread-panel.cjs.js +32 -21
  503. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  504. package/dist/domains/traces/components/trace-thread-panel.es.js +32 -21
  505. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  506. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  507. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  508. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  509. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  510. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  511. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  512. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -0
  513. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  514. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -0
  515. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  516. package/dist/domains/traces/hooks/use-branch.cjs.js +0 -3
  517. package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -1
  518. package/dist/domains/traces/hooks/use-branch.es.js +0 -3
  519. package/dist/domains/traces/hooks/use-branch.es.js.map +1 -1
  520. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -3
  521. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -1
  522. package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -3
  523. package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -1
  524. package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +1 -1
  525. package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +1 -1
  526. package/dist/domains/traces/hooks/use-trace-query.cjs.js +2 -0
  527. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  528. package/dist/domains/traces/hooks/use-trace-query.es.js +2 -0
  529. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  530. package/dist/domains/traces/hooks/use-trace-search.cjs.js +7 -2
  531. package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
  532. package/dist/domains/traces/hooks/use-trace-search.es.js +7 -2
  533. package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
  534. package/dist/domains/traces/hooks/use-trace-spans.cjs.js +1 -5
  535. package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -1
  536. package/dist/domains/traces/hooks/use-trace-spans.es.js +1 -5
  537. package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -1
  538. package/dist/domains/traces/utils/to-searchable-spans.cjs.js +0 -5
  539. package/dist/domains/traces/utils/to-searchable-spans.cjs.js.map +1 -1
  540. package/dist/domains/traces/utils/to-searchable-spans.es.js +1 -5
  541. package/dist/domains/traces/utils/to-searchable-spans.es.js.map +1 -1
  542. package/dist/domains/traces/utils.cjs.js +0 -1
  543. package/dist/domains/traces/utils.cjs.js.map +1 -1
  544. package/dist/domains/traces/utils.es.js +1 -1
  545. package/dist/domains/traces.cjs.js +0 -1
  546. package/dist/domains/traces.cjs.js.map +1 -1
  547. package/dist/domains/traces.es.js +1 -1
  548. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  549. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  550. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +2 -2
  551. package/dist/domains/workflows/components/workflow-entity-header.es.js +2 -2
  552. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  553. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  554. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  555. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  556. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +3 -3
  557. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
  558. package/dist/domains/workflows/runs/workflow-run-details.cjs.js +1 -1
  559. package/dist/domains/workflows/runs/workflow-run-details.es.js +1 -1
  560. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  561. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  562. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  563. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  564. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  565. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  566. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  567. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  568. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
  569. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
  570. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  571. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  572. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +2 -2
  573. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +2 -2
  574. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  575. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  576. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  577. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  578. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  579. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  580. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +1 -1
  581. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +1 -1
  582. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  583. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  584. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  585. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  586. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -1
  587. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  588. package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -1
  589. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  590. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
  591. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +1 -1
  592. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +4 -4
  593. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +4 -4
  594. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +6 -5
  595. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
  596. package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -4
  597. package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
  598. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  599. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  600. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +3 -3
  601. package/dist/domains/workflows/workflow/workflow-run-header.es.js +3 -3
  602. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  603. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  604. package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
  605. package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
  606. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  607. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  608. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  609. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  610. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  611. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  612. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  613. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  614. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
  615. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
  616. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  617. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  618. package/dist/domains/workspace/components/frontmatter.cjs.js +13 -0
  619. package/dist/domains/workspace/components/frontmatter.cjs.js.map +1 -0
  620. package/dist/domains/workspace/components/frontmatter.d.ts +2 -0
  621. package/dist/domains/workspace/components/frontmatter.es.js +9 -0
  622. package/dist/domains/workspace/components/frontmatter.es.js.map +1 -0
  623. package/dist/domains/workspace/components/mount-icon.cjs.js +42 -0
  624. package/dist/domains/workspace/components/mount-icon.cjs.js.map +1 -0
  625. package/dist/domains/workspace/components/mount-icon.d.ts +2 -0
  626. package/dist/domains/workspace/components/mount-icon.es.js +38 -0
  627. package/dist/domains/workspace/components/mount-icon.es.js.map +1 -0
  628. package/dist/domains/workspace/components/use-workspace-context.cjs.js +16 -0
  629. package/dist/domains/workspace/components/use-workspace-context.cjs.js.map +1 -0
  630. package/dist/domains/workspace/components/use-workspace-context.d.ts +2 -0
  631. package/dist/domains/workspace/components/use-workspace-context.es.js +11 -0
  632. package/dist/domains/workspace/components/use-workspace-context.es.js.map +1 -0
  633. package/dist/domains/workspace/components/workspace-active-file.cjs.js +72 -0
  634. package/dist/domains/workspace/components/workspace-active-file.cjs.js.map +1 -0
  635. package/dist/domains/workspace/components/workspace-active-file.d.ts +2 -0
  636. package/dist/domains/workspace/components/workspace-active-file.es.js +67 -0
  637. package/dist/domains/workspace/components/workspace-active-file.es.js.map +1 -0
  638. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +282 -0
  639. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -0
  640. package/dist/domains/workspace/components/workspace-add-skill-dialog.d.ts +2 -0
  641. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +278 -0
  642. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -0
  643. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +48 -0
  644. package/dist/domains/workspace/components/workspace-add-skill.cjs.js.map +1 -0
  645. package/dist/domains/workspace/components/workspace-add-skill.d.ts +2 -0
  646. package/dist/domains/workspace/components/workspace-add-skill.es.js +44 -0
  647. package/dist/domains/workspace/components/workspace-add-skill.es.js.map +1 -0
  648. package/dist/domains/workspace/components/workspace-context.cjs.js +88 -0
  649. package/dist/domains/workspace/components/workspace-context.cjs.js.map +1 -0
  650. package/dist/domains/workspace/components/workspace-context.d.ts +2 -0
  651. package/dist/domains/workspace/components/workspace-context.es.js +84 -0
  652. package/dist/domains/workspace/components/workspace-context.es.js.map +1 -0
  653. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +68 -0
  654. package/dist/domains/workspace/components/workspace-create-directory.cjs.js.map +1 -0
  655. package/dist/domains/workspace/components/workspace-create-directory.d.ts +2 -0
  656. package/dist/domains/workspace/components/workspace-create-directory.es.js +64 -0
  657. package/dist/domains/workspace/components/workspace-create-directory.es.js.map +1 -0
  658. package/dist/domains/workspace/components/workspace-error.cjs.js +26 -0
  659. package/dist/domains/workspace/components/workspace-error.cjs.js.map +1 -0
  660. package/dist/domains/workspace/components/workspace-error.d.ts +2 -0
  661. package/dist/domains/workspace/components/workspace-error.es.js +22 -0
  662. package/dist/domains/workspace/components/workspace-error.es.js.map +1 -0
  663. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +27 -0
  664. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js.map +1 -0
  665. package/dist/domains/workspace/components/workspace-markdown-preview.d.ts +2 -0
  666. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +23 -0
  667. package/dist/domains/workspace/components/workspace-markdown-preview.es.js.map +1 -0
  668. package/dist/domains/workspace/components/workspace-parts.cjs.js +94 -0
  669. package/dist/domains/workspace/components/workspace-parts.cjs.js.map +1 -0
  670. package/dist/domains/workspace/components/workspace-parts.d.ts +2 -0
  671. package/dist/domains/workspace/components/workspace-parts.es.js +84 -0
  672. package/dist/domains/workspace/components/workspace-parts.es.js.map +1 -0
  673. package/dist/domains/workspace/components/workspace-search.cjs.js +117 -0
  674. package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -0
  675. package/dist/domains/workspace/components/workspace-search.d.ts +2 -0
  676. package/dist/domains/workspace/components/workspace-search.es.js +111 -0
  677. package/dist/domains/workspace/components/workspace-search.es.js.map +1 -0
  678. package/dist/domains/workspace/components/workspace-tree-view.cjs.js +34 -0
  679. package/dist/domains/workspace/components/workspace-tree-view.cjs.js.map +1 -0
  680. package/dist/domains/workspace/components/workspace-tree-view.d.ts +2 -0
  681. package/dist/domains/workspace/components/workspace-tree-view.es.js +30 -0
  682. package/dist/domains/workspace/components/workspace-tree-view.es.js.map +1 -0
  683. package/dist/domains/workspace/components/workspace-tree.cjs.js +245 -0
  684. package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -0
  685. package/dist/domains/workspace/components/workspace-tree.d.ts +2 -0
  686. package/dist/domains/workspace/components/workspace-tree.es.js +241 -0
  687. package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -0
  688. package/dist/domains/workspace/components/workspace.cjs.js +25 -0
  689. package/dist/domains/workspace/components/workspace.cjs.js.map +1 -0
  690. package/dist/domains/workspace/components/workspace.d.ts +2 -0
  691. package/dist/domains/workspace/components/workspace.es.js +21 -0
  692. package/dist/domains/workspace/components/workspace.es.js.map +1 -0
  693. package/dist/domains/workspace/file-type.cjs.js +25 -0
  694. package/dist/domains/workspace/file-type.cjs.js.map +1 -0
  695. package/dist/domains/workspace/file-type.d.ts +2 -0
  696. package/dist/domains/workspace/file-type.es.js +17 -0
  697. package/dist/domains/workspace/file-type.es.js.map +1 -0
  698. package/dist/domains/workspace/hooks/use-skills-sh.cjs.js +72 -0
  699. package/dist/domains/workspace/hooks/use-skills-sh.cjs.js.map +1 -0
  700. package/dist/domains/workspace/hooks/use-skills-sh.d.ts +2 -0
  701. package/dist/domains/workspace/hooks/use-skills-sh.es.js +65 -0
  702. package/dist/domains/workspace/hooks/use-skills-sh.es.js.map +1 -0
  703. package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js +21 -0
  704. package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js.map +1 -0
  705. package/dist/domains/workspace/hooks/use-workspace-directory.d.ts +2 -0
  706. package/dist/domains/workspace/hooks/use-workspace-directory.es.js +16 -0
  707. package/dist/domains/workspace/hooks/use-workspace-directory.es.js.map +1 -0
  708. package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js +22 -0
  709. package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js.map +1 -0
  710. package/dist/domains/workspace/hooks/use-workspace-file-content.d.ts +2 -0
  711. package/dist/domains/workspace/hooks/use-workspace-file-content.es.js +18 -0
  712. package/dist/domains/workspace/hooks/use-workspace-file-content.es.js.map +1 -0
  713. package/dist/domains/workspace/hooks/use-workspace-search.cjs.js +53 -0
  714. package/dist/domains/workspace/hooks/use-workspace-search.cjs.js.map +1 -0
  715. package/dist/domains/workspace/hooks/use-workspace-search.d.ts +2 -0
  716. package/dist/domains/workspace/hooks/use-workspace-search.es.js +49 -0
  717. package/dist/domains/workspace/hooks/use-workspace-search.es.js.map +1 -0
  718. package/dist/domains/workspace/path.cjs.js +17 -0
  719. package/dist/domains/workspace/path.cjs.js.map +1 -0
  720. package/dist/domains/workspace/path.d.ts +2 -0
  721. package/dist/domains/workspace/path.es.js +10 -0
  722. package/dist/domains/workspace/path.es.js.map +1 -0
  723. package/dist/domains/workspace.cjs.js +24 -0
  724. package/dist/domains/workspace.cjs.js.map +1 -0
  725. package/dist/domains/workspace.d.ts +2 -0
  726. package/dist/domains/workspace.es.js +9 -0
  727. package/dist/domains/workspace.es.js.map +1 -0
  728. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +2 -2
  729. package/dist/ee/signals/components/entity-index-compact-grid.es.js +2 -2
  730. package/dist/ee/signals/components/entity-index-list.cjs.js +4 -2
  731. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  732. package/dist/ee/signals/components/entity-index-list.es.js +4 -2
  733. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  734. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  735. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  736. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  737. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  738. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -3
  739. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  740. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -3
  741. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  742. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  743. package/dist/ee/signals/examples-pager.es.js +1 -1
  744. package/dist/ee/signals/flow-card.cjs.js +1 -1
  745. package/dist/ee/signals/flow-card.es.js +1 -1
  746. package/dist/ee/signals/lifeline-row.cjs.js +1 -1
  747. package/dist/ee/signals/lifeline-row.es.js +1 -1
  748. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  749. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  750. package/dist/ee/signals/sankey-signals.cjs.js +4 -3
  751. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  752. package/dist/ee/signals/sankey-signals.es.js +3 -2
  753. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  754. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
  755. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
  756. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  757. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  758. package/dist/ee/signals/signal-delta-column.cjs.js +1 -1
  759. package/dist/ee/signals/signal-delta-column.es.js +1 -1
  760. package/dist/ee/signals/signal-lifelines.cjs.js +1 -1
  761. package/dist/ee/signals/signal-lifelines.es.js +1 -1
  762. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  763. package/dist/ee/signals/signals-error-state.es.js +1 -1
  764. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  765. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  766. package/dist/ee/signals/theme-compare.cjs.js +1 -1
  767. package/dist/ee/signals/theme-compare.es.js +1 -1
  768. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  769. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  770. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  771. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  772. package/dist/ee/signals/theme-lifelines.cjs.js +1 -1
  773. package/dist/ee/signals/theme-lifelines.es.js +1 -1
  774. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  775. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  776. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -1
  777. package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -1
  778. package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
  779. package/dist/ee/signals/view-mode-tab.es.js +2 -2
  780. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +2 -1
  781. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -1
  782. package/dist/ee/topics/components/topic-trace-details-panel.es.js +2 -1
  783. package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -1
  784. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  785. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  786. package/dist/{entity-header-DEjkHoqj.cjs → entity-header-By57lpH8.cjs} +2 -2
  787. package/dist/{entity-header-DEjkHoqj.cjs.map → entity-header-By57lpH8.cjs.map} +1 -1
  788. package/dist/{entity-header-9qzr-3xQ.js → entity-header-DMjzE4Za.js} +2 -2
  789. package/dist/{entity-header-9qzr-3xQ.js.map → entity-header-DMjzE4Za.js.map} +1 -1
  790. package/dist/{field-BtvEQ68O.js → field-BiMIiq2Y.js} +3 -3
  791. package/dist/field-BiMIiq2Y.js.map +1 -0
  792. package/dist/{field-ip9xiOVa.cjs → field-BkeKcz_6.cjs} +3 -3
  793. package/dist/field-BkeKcz_6.cjs.map +1 -0
  794. package/dist/{field-error-id-4DYu4KZ2.cjs → field-error-id-4xiCVBJ_.cjs} +5 -5
  795. package/dist/field-error-id-4xiCVBJ_.cjs.map +1 -0
  796. package/dist/{field-error-id-BSQLcfHo.js → field-error-id-CSvLKtJE.js} +5 -5
  797. package/dist/field-error-id-CSvLKtJE.js.map +1 -0
  798. package/dist/{filter-bar-chip-Dmboyu1t.js → filter-bar-chip-CRejLco-.js} +2 -2
  799. package/dist/{filter-bar-chip-Dmboyu1t.js.map → filter-bar-chip-CRejLco-.js.map} +1 -1
  800. package/dist/{filter-bar-chip-BsWm7SQr.cjs → filter-bar-chip-Cr7kUN9G.cjs} +2 -2
  801. package/dist/{filter-bar-chip-BsWm7SQr.cjs.map → filter-bar-chip-Cr7kUN9G.cjs.map} +1 -1
  802. package/dist/hooks/use-fluid-hover.cjs.js +11 -0
  803. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  804. package/dist/hooks/use-fluid-hover.es.js +11 -0
  805. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  806. package/dist/{horizontal-bars-BSRESJsp.js → horizontal-bars-BL-GHeFh.js} +2 -2
  807. package/dist/{horizontal-bars-BSRESJsp.js.map → horizontal-bars-BL-GHeFh.js.map} +1 -1
  808. package/dist/{horizontal-bars-DRD7JkHL.cjs → horizontal-bars-D-rFCRbH.cjs} +2 -2
  809. package/dist/{horizontal-bars-DRD7JkHL.cjs.map → horizontal-bars-D-rFCRbH.cjs.map} +1 -1
  810. package/dist/icons/FileIcon.cjs.js +18 -0
  811. package/dist/icons/FileIcon.cjs.js.map +1 -0
  812. package/dist/icons/FileIcon.d.ts +2 -0
  813. package/dist/icons/FileIcon.es.js +14 -0
  814. package/dist/icons/FileIcon.es.js.map +1 -0
  815. package/dist/icons/SearchIcon.cjs.js +18 -0
  816. package/dist/icons/SearchIcon.cjs.js.map +1 -0
  817. package/dist/icons/SearchIcon.d.ts +2 -0
  818. package/dist/icons/SearchIcon.es.js +14 -0
  819. package/dist/icons/SearchIcon.es.js.map +1 -0
  820. package/dist/icons/TrashIcon.cjs.js +18 -0
  821. package/dist/icons/TrashIcon.cjs.js.map +1 -0
  822. package/dist/icons/TrashIcon.d.ts +2 -0
  823. package/dist/icons/TrashIcon.es.js +14 -0
  824. package/dist/icons/TrashIcon.es.js.map +1 -0
  825. package/dist/{input-group-wzirc-1k.js → input-group-D1XvzgI2.js} +10 -7
  826. package/dist/input-group-D1XvzgI2.js.map +1 -0
  827. package/dist/{input-group-BgCXLSRV.cjs → input-group-DBRe9V5t.cjs} +11 -6
  828. package/dist/input-group-DBRe9V5t.cjs.map +1 -0
  829. package/dist/layout/tabbed-container.cjs.js +11 -9
  830. package/dist/layout/tabbed-container.cjs.js.map +1 -1
  831. package/dist/layout/tabbed-container.es.js +9 -7
  832. package/dist/layout/tabbed-container.es.js.map +1 -1
  833. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  834. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  835. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  836. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  837. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  838. package/dist/lib/form/components/boolean-field.es.js +1 -1
  839. package/dist/lib/form/components/error-message.cjs.js +1 -1
  840. package/dist/lib/form/components/error-message.es.js +1 -1
  841. package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
  842. package/dist/lib/form/components/field-wrapper.es.js +1 -1
  843. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  844. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  845. package/dist/lib/form/components/select-field.cjs.js +1 -1
  846. package/dist/lib/form/components/select-field.es.js +1 -1
  847. package/dist/lib/form/components/union-field.cjs.js +1 -1
  848. package/dist/lib/form/components/union-field.es.js +1 -1
  849. package/dist/{list-search-CTGQJCh1.cjs → list-search-CCHN2OMB.cjs} +2 -2
  850. package/dist/{list-search-CTGQJCh1.cjs.map → list-search-CCHN2OMB.cjs.map} +1 -1
  851. package/dist/{list-search-CmOCmTwL.js → list-search-DcACBmNB.js} +2 -2
  852. package/dist/{list-search-CmOCmTwL.js.map → list-search-DcACBmNB.js.map} +1 -1
  853. package/dist/{logs-data-list-B9CAqAHD.cjs → logs-data-list-BITdSK12.cjs} +4 -4
  854. package/dist/{logs-data-list-B9CAqAHD.cjs.map → logs-data-list-BITdSK12.cjs.map} +1 -1
  855. package/dist/{logs-data-list-DfzdzgXB.js → logs-data-list-PlH4_hgq.js} +4 -4
  856. package/dist/{logs-data-list-DfzdzgXB.js.map → logs-data-list-PlH4_hgq.js.map} +1 -1
  857. package/dist/{main-sidebar-link-active-buZAhlHo.js → main-sidebar-B0ivY7lW.js} +118 -6
  858. package/dist/main-sidebar-B0ivY7lW.js.map +1 -0
  859. package/dist/{main-sidebar-link-active-D8VSuJKx.cjs → main-sidebar-BWKVSRoQ.cjs} +117 -4
  860. package/dist/main-sidebar-BWKVSRoQ.cjs.map +1 -0
  861. package/dist/{markdown-renderer-DPwN7Vtm.cjs → markdown-renderer-4iyMU2Cm.cjs} +2 -2
  862. package/dist/{markdown-renderer-DPwN7Vtm.cjs.map → markdown-renderer-4iyMU2Cm.cjs.map} +1 -1
  863. package/dist/{markdown-renderer-zvB6a8uj.js → markdown-renderer-B3Pf1uW9.js} +2 -2
  864. package/dist/{markdown-renderer-zvB6a8uj.js.map → markdown-renderer-B3Pf1uW9.js.map} +1 -1
  865. package/dist/{message-C1c5oZE7.cjs → message-DGDmsmOT.cjs} +2 -2
  866. package/dist/{message-C1c5oZE7.cjs.map → message-DGDmsmOT.cjs.map} +1 -1
  867. package/dist/{message-C7hocqft.js → message-DoxVrgBX.js} +2 -2
  868. package/dist/{message-C7hocqft.js.map → message-DoxVrgBX.js.map} +1 -1
  869. package/dist/{message-scroller-E05PLPmT.cjs → message-scroller-D-_KN9Fv.cjs} +3 -1
  870. package/dist/message-scroller-D-_KN9Fv.cjs.map +1 -0
  871. package/dist/{message-scroller-CiFr8MwT.js → message-scroller-WWaQ-XU_.js} +3 -1
  872. package/dist/message-scroller-WWaQ-XU_.js.map +1 -0
  873. package/dist/{metrics-card-C1rTkbcn.js → metrics-card-DFEWxFkJ.js} +3 -3
  874. package/dist/{metrics-card-C1rTkbcn.js.map → metrics-card-DFEWxFkJ.js.map} +1 -1
  875. package/dist/{metrics-card-D7J9JDgn.cjs → metrics-card-xX9SHUpB.cjs} +3 -3
  876. package/dist/{metrics-card-D7J9JDgn.cjs.map → metrics-card-xX9SHUpB.cjs.map} +1 -1
  877. package/dist/{metrics-kpi-card-1hbihR2T.cjs → metrics-kpi-card-9L0j_oGY.cjs} +5 -14
  878. package/dist/metrics-kpi-card-9L0j_oGY.cjs.map +1 -0
  879. package/dist/{metrics-kpi-card-CiB88L41.js → metrics-kpi-card-DxcLqbDU.js} +5 -14
  880. package/dist/metrics-kpi-card-DxcLqbDU.js.map +1 -0
  881. package/dist/{metrics-line-chart-C3UMBQ38.js → metrics-line-chart-C9_EMuHK.js} +2 -2
  882. package/dist/{metrics-line-chart-C3UMBQ38.js.map → metrics-line-chart-C9_EMuHK.js.map} +1 -1
  883. package/dist/{metrics-line-chart-CjJxBbM-.cjs → metrics-line-chart-R-T_jyeP.cjs} +2 -2
  884. package/dist/{metrics-line-chart-CjJxBbM-.cjs.map → metrics-line-chart-R-T_jyeP.cjs.map} +1 -1
  885. package/dist/{metrics-line-chart-tooltip-DiXCgpik.cjs → metrics-line-chart-tooltip-BoG8nbkO.cjs} +2 -2
  886. package/dist/{metrics-line-chart-tooltip-DiXCgpik.cjs.map → metrics-line-chart-tooltip-BoG8nbkO.cjs.map} +1 -1
  887. package/dist/{metrics-line-chart-tooltip-mZXPH1yH.js → metrics-line-chart-tooltip-C3WAk3DN.js} +2 -2
  888. package/dist/{metrics-line-chart-tooltip-mZXPH1yH.js.map → metrics-line-chart-tooltip-C3WAk3DN.js.map} +1 -1
  889. package/dist/new/layout/page-header.cjs.js +1 -1
  890. package/dist/new/layout/page-header.es.js +1 -1
  891. package/dist/new/settings.cjs.js +2 -2
  892. package/dist/new/settings.es.js +2 -2
  893. package/dist/new/sidebar.cjs.js +35 -35
  894. package/dist/new/sidebar.cjs.js.map +1 -1
  895. package/dist/new/sidebar.es.js +3 -3
  896. package/dist/{notification-activity-CFR_b8eA.js → notification-activity-BDoleJAA.js} +4 -4
  897. package/dist/{notification-activity-CFR_b8eA.js.map → notification-activity-BDoleJAA.js.map} +1 -1
  898. package/dist/{notification-activity-Dk50wcE4.cjs → notification-activity-C_vZiswj.cjs} +4 -4
  899. package/dist/{notification-activity-Dk50wcE4.cjs.map → notification-activity-C_vZiswj.cjs.map} +1 -1
  900. package/dist/{page-header-DIS8V2TK.js → page-header-D5a7qrVc.js} +2 -2
  901. package/dist/{page-header-DIS8V2TK.js.map → page-header-D5a7qrVc.js.map} +1 -1
  902. package/dist/{page-header-C1WiOrTE.cjs → page-header-Dc2KSbnw.cjs} +2 -2
  903. package/dist/{page-header-C1WiOrTE.cjs.map → page-header-Dc2KSbnw.cjs.map} +1 -1
  904. package/dist/{plan-D8rM4i4S.cjs → plan-D49plJdQ.cjs} +7 -6
  905. package/dist/{plan-D8rM4i4S.cjs.map → plan-D49plJdQ.cjs.map} +1 -1
  906. package/dist/{plan-BtOryfz5.js → plan-DvkySMRk.js} +6 -5
  907. package/dist/{plan-BtOryfz5.js.map → plan-DvkySMRk.js.map} +1 -1
  908. package/dist/primitives/form-element.cjs.js +1 -1
  909. package/dist/primitives/form-element.cjs.js.map +1 -1
  910. package/dist/primitives/form-element.es.js +1 -1
  911. package/dist/primitives/form-element.es.js.map +1 -1
  912. package/dist/{reasoning-activity-DaXMgyr3.cjs → reasoning-activity-COiiln9U.cjs} +3 -3
  913. package/dist/{reasoning-activity-DaXMgyr3.cjs.map → reasoning-activity-COiiln9U.cjs.map} +1 -1
  914. package/dist/{reasoning-activity-6VkIbDT4.js → reasoning-activity-r7B4_j4d.js} +3 -3
  915. package/dist/{reasoning-activity-6VkIbDT4.js.map → reasoning-activity-r7B4_j4d.js.map} +1 -1
  916. package/dist/{relative-timestamp-BlmN8Vjn.cjs → relative-timestamp-Nnwtw7Rp.cjs} +2 -2
  917. package/dist/{relative-timestamp-BlmN8Vjn.cjs.map → relative-timestamp-Nnwtw7Rp.cjs.map} +1 -1
  918. package/dist/{relative-timestamp-Cnp4VeLp.js → relative-timestamp-Rn8mAobA.js} +2 -2
  919. package/dist/{relative-timestamp-Cnp4VeLp.js.map → relative-timestamp-Rn8mAobA.js.map} +1 -1
  920. package/dist/resize/panel-group.cjs.js +14 -2
  921. package/dist/resize/panel-group.cjs.js.map +1 -1
  922. package/dist/resize/panel-group.es.js +14 -2
  923. package/dist/resize/panel-group.es.js.map +1 -1
  924. package/dist/{search-input-BKXiYeed.js → search-input-63Y1_wgA.js} +3 -3
  925. package/dist/{search-input-BKXiYeed.js.map → search-input-63Y1_wgA.js.map} +1 -1
  926. package/dist/{search-input-T0orZ7Jf.cjs → search-input-CBhT3N4z.cjs} +3 -3
  927. package/dist/{search-input-T0orZ7Jf.cjs.map → search-input-CBhT3N4z.cjs.map} +1 -1
  928. package/dist/{section-Byml9qxH.cjs → section-C5r-Mtxk.cjs} +3 -3
  929. package/dist/{section-Byml9qxH.cjs.map → section-C5r-Mtxk.cjs.map} +1 -1
  930. package/dist/{section-DTooysg2.js → section-DYrbH35K.js} +3 -3
  931. package/dist/{section-DTooysg2.js.map → section-DYrbH35K.js.map} +1 -1
  932. package/dist/{select--ArpXYDc.js → select-CWxcmE3F.js} +2 -2
  933. package/dist/select-CWxcmE3F.js.map +1 -0
  934. package/dist/{select-DJQYAVcm.cjs → select-KV77JIvp.cjs} +2 -2
  935. package/dist/select-KV77JIvp.cjs.map +1 -0
  936. package/dist/{settings-row-B0jGFpVw.js → settings-row-Dc6ECXjj.js} +2 -2
  937. package/dist/{settings-row-B0jGFpVw.js.map → settings-row-Dc6ECXjj.js.map} +1 -1
  938. package/dist/{settings-row-Dt4WnnRf.cjs → settings-row-UPZXTcx1.cjs} +2 -2
  939. package/dist/{settings-row-Dt4WnnRf.cjs.map → settings-row-UPZXTcx1.cjs.map} +1 -1
  940. package/dist/{side-dialog-lQUx6B_M.cjs → side-dialog-CFTgnDXu.cjs} +2 -2
  941. package/dist/{side-dialog-lQUx6B_M.cjs.map → side-dialog-CFTgnDXu.cjs.map} +1 -1
  942. package/dist/{side-dialog-DZJc85m3.js → side-dialog-yvAvCday.js} +2 -2
  943. package/dist/{side-dialog-DZJc85m3.js.map → side-dialog-yvAvCday.js.map} +1 -1
  944. package/dist/{signal-activity-byCTRP86.cjs → signal-activity-BI-DRdjw.cjs} +4 -4
  945. package/dist/{signal-activity-byCTRP86.cjs.map → signal-activity-BI-DRdjw.cjs.map} +1 -1
  946. package/dist/{signal-activity-DW2ExjIp.js → signal-activity-_ChAbNsW.js} +4 -4
  947. package/dist/{signal-activity-DW2ExjIp.js.map → signal-activity-_ChAbNsW.js.map} +1 -1
  948. package/dist/{span-payload-primitives-CGamdu2t.js → span-payload-primitives-DceLKTQK.js} +3 -3
  949. package/dist/{span-payload-primitives-CGamdu2t.js.map → span-payload-primitives-DceLKTQK.js.map} +1 -1
  950. package/dist/{span-payload-primitives-SkL3U9hR.cjs → span-payload-primitives-DqeZJkw3.cjs} +3 -3
  951. package/dist/{span-payload-primitives-SkL3U9hR.cjs.map → span-payload-primitives-DqeZJkw3.cjs.map} +1 -1
  952. package/dist/src/domains/traces/components/span-data-panel-view.d.ts +3 -1
  953. package/dist/src/domains/traces/components/thread-trace/index.d.ts +23 -20
  954. package/dist/src/domains/traces/components/thread-trace/thread-trace-details.d.ts +1 -1
  955. package/dist/src/domains/traces/components/thread-trace/thread-trace-messages.d.ts +5 -15
  956. package/dist/src/domains/traces/components/thread-trace/thread-trace-root.d.ts +2 -2
  957. package/dist/src/domains/traces/components/thread-trace/thread-trace-row.d.ts +17 -2
  958. package/dist/src/domains/traces/components/thread-trace/thread-trace-span-panel.d.ts +3 -3
  959. package/dist/src/domains/traces/components/thread-trace/thread-trace-spans.d.ts +3 -4
  960. package/dist/src/domains/traces/components/thread-view-skeleton.d.ts +10 -4
  961. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +10 -3
  962. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +7 -5
  963. package/dist/src/domains/traces/components/trace-messages-panel.d.ts +2 -10
  964. package/dist/src/domains/traces/components/trace-messages-skeleton.d.ts +9 -6
  965. package/dist/src/domains/traces/components/trace-span-panel.d.ts +1 -1
  966. package/dist/src/domains/traces/components/trace-span-tree-skeleton.d.ts +4 -6
  967. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +7 -5
  968. package/dist/src/domains/traces/hooks/use-branch.d.ts +2 -2
  969. package/dist/src/domains/traces/hooks/use-trace-light-spans.d.ts +2 -2
  970. package/dist/src/domains/traces/hooks/use-trace-or-branch-spans.d.ts +2 -2
  971. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +2 -0
  972. package/dist/src/domains/traces/hooks/use-trace-search.d.ts +11 -8
  973. package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +1 -7
  974. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -0
  975. package/dist/src/domains/traces/utils/index.d.ts +1 -1
  976. package/dist/src/domains/traces/utils/to-searchable-spans.d.ts +2 -26
  977. package/dist/src/domains/workspace/components/frontmatter.d.ts +4 -0
  978. package/dist/src/domains/workspace/components/mount-icon.d.ts +6 -0
  979. package/dist/src/domains/workspace/components/use-workspace-context.d.ts +32 -0
  980. package/dist/src/domains/workspace/components/workspace-active-file.d.ts +13 -0
  981. package/dist/src/domains/workspace/components/workspace-add-skill-dialog.d.ts +39 -0
  982. package/dist/src/domains/workspace/components/workspace-add-skill.d.ts +10 -0
  983. package/dist/src/domains/workspace/components/workspace-context.d.ts +28 -0
  984. package/dist/src/domains/workspace/components/workspace-create-directory.d.ts +4 -0
  985. package/dist/src/domains/workspace/components/workspace-error.d.ts +5 -0
  986. package/dist/src/domains/workspace/components/workspace-markdown-preview.d.ts +4 -0
  987. package/dist/src/domains/workspace/components/workspace-parts.d.ts +25 -0
  988. package/dist/src/domains/workspace/components/workspace-search.d.ts +5 -0
  989. package/dist/src/domains/workspace/components/workspace-tree-view.d.ts +32 -0
  990. package/dist/src/domains/workspace/components/workspace-tree.d.ts +1 -0
  991. package/dist/src/domains/workspace/components/workspace.d.ts +18 -0
  992. package/dist/src/domains/workspace/file-type.d.ts +6 -0
  993. package/dist/src/domains/workspace/hooks/use-skills-sh.d.ts +51 -0
  994. package/dist/src/domains/workspace/hooks/use-workspace-directory.d.ts +17 -0
  995. package/dist/src/domains/workspace/hooks/use-workspace-file-content.d.ts +8 -0
  996. package/dist/src/domains/workspace/hooks/use-workspace-search.d.ts +11 -0
  997. package/dist/src/domains/workspace/index.d.ts +14 -0
  998. package/dist/src/domains/workspace/path.d.ts +6 -0
  999. package/dist/src/ds/components/Button/button.stories.d.ts +1 -0
  1000. package/dist/src/ds/components/ChatShell/chat-shell.d.ts +13 -8
  1001. package/dist/src/ds/components/Code/code.d.ts +1 -1
  1002. package/dist/src/ds/components/CollapsibleBox/collapsible-box.d.ts +5 -2
  1003. package/dist/src/ds/components/CollapsibleBox/collapsible-box.stories.d.ts +1 -0
  1004. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
  1005. package/dist/src/ds/components/Command/command.stories.d.ts +1 -0
  1006. package/dist/src/ds/components/InputGroup/input-group.d.ts +2 -0
  1007. package/dist/src/ds/components/InputGroup/input-group.stories.d.ts +0 -1
  1008. package/dist/src/ds/components/InputNumber/index.d.ts +1 -0
  1009. package/dist/src/ds/components/InputNumber/input-number.d.ts +26 -0
  1010. package/dist/src/ds/components/InputNumber/input-number.stories.d.ts +11 -0
  1011. package/dist/src/ds/components/Tabs/tabs-context.d.ts +0 -1
  1012. package/dist/src/ds/components/Tabs/tabs-list.d.ts +0 -7
  1013. package/dist/src/ds/components/Tabs/tabs-root.d.ts +1 -1
  1014. package/dist/src/ds/components/Tabs/tabs-tab.d.ts +3 -1
  1015. package/dist/src/ds/components/Tabs/tabs.stories.d.ts +0 -1
  1016. package/dist/src/ds/components/ThinkingLevel/index.d.ts +4 -0
  1017. package/dist/src/ds/components/ThinkingLevel/thinking-level-picker.d.ts +17 -0
  1018. package/dist/src/ds/components/ThinkingLevel/thinking-level-ramp.d.ts +9 -0
  1019. package/dist/src/ds/components/ThinkingLevel/thinking-level-slider.d.ts +13 -0
  1020. package/dist/src/ds/components/ThinkingLevel/thinking-level.stories.d.ts +14 -0
  1021. package/dist/src/ds/components/ThinkingLevel/use-thinking-level-stop.d.ts +29 -0
  1022. package/dist/src/ds/components/ai/transcript-divider/stories/transcript-divider.stories.d.ts +3 -0
  1023. package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +6 -1
  1024. package/dist/src/ds/icons/FileIcon.d.ts +2 -0
  1025. package/dist/src/ds/icons/SearchIcon.d.ts +2 -0
  1026. package/dist/src/ds/icons/TrashIcon.d.ts +2 -0
  1027. package/dist/src/ds/icons/index.d.ts +3 -0
  1028. package/dist/src/ds/layout/tabbed-container/tabbed-container-root.d.ts +2 -1
  1029. package/dist/src/ds/tokens/fonts.d.ts +1 -1
  1030. package/dist/src/lib/resize/panel-group.d.ts +3 -1
  1031. package/dist/style.css +300 -127
  1032. package/dist/{tabs-content-DnscxcLI.cjs → tabs-content-DfH1hhpU.cjs} +3 -3
  1033. package/dist/{tabs-content-DnscxcLI.cjs.map → tabs-content-DfH1hhpU.cjs.map} +1 -1
  1034. package/dist/{tabs-content-CwbkTutf.js → tabs-content-OWF8un_n.js} +2 -2
  1035. package/dist/{tabs-content-CwbkTutf.js.map → tabs-content-OWF8un_n.js.map} +1 -1
  1036. package/dist/tabs-context-Cbuw7i0u.js +7 -0
  1037. package/dist/tabs-context-Cbuw7i0u.js.map +1 -0
  1038. package/dist/tabs-context-pnspPkI-.cjs +10 -0
  1039. package/dist/tabs-context-pnspPkI-.cjs.map +1 -0
  1040. package/dist/{tabs-root-C-ePF1y9.cjs → tabs-list-Tqj36HIL.cjs} +10 -43
  1041. package/dist/tabs-list-Tqj36HIL.cjs.map +1 -0
  1042. package/dist/{tabs-root-lrZZ3KwH.js → tabs-list-tLx5fgP0.js} +12 -44
  1043. package/dist/tabs-list-tLx5fgP0.js.map +1 -0
  1044. package/dist/tabs-root-BbzhUZl4.js +40 -0
  1045. package/dist/tabs-root-BbzhUZl4.js.map +1 -0
  1046. package/dist/tabs-root-Hkt7A6oq.cjs +42 -0
  1047. package/dist/tabs-root-Hkt7A6oq.cjs.map +1 -0
  1048. package/dist/tabs-root.css +0 -70
  1049. package/dist/{tabs-tab-BmIBFifi.cjs → tabs-tab-C-C2vX-D.cjs} +10 -7
  1050. package/dist/tabs-tab-C-C2vX-D.cjs.map +1 -0
  1051. package/dist/{tabs-tab-DoPSW-1s.js → tabs-tab-ClLIOGiC.js} +11 -6
  1052. package/dist/tabs-tab-ClLIOGiC.js.map +1 -0
  1053. package/dist/{text-and-icon-CuBm-Wjm.js → text-and-icon-Bo6NLLBl.js} +2 -2
  1054. package/dist/{text-and-icon-CuBm-Wjm.js.map → text-and-icon-Bo6NLLBl.js.map} +1 -1
  1055. package/dist/{text-and-icon-4eVhfmbb.cjs → text-and-icon-CvakH4YL.cjs} +2 -2
  1056. package/dist/{text-and-icon-4eVhfmbb.cjs.map → text-and-icon-CvakH4YL.cjs.map} +1 -1
  1057. package/dist/{thread-list-BTpezI4f.js → thread-list-D2zSEQWK.js} +2 -2
  1058. package/dist/{thread-list-BTpezI4f.js.map → thread-list-D2zSEQWK.js.map} +1 -1
  1059. package/dist/{thread-list-Drcptd4x.cjs → thread-list-DKBwiGfX.cjs} +2 -2
  1060. package/dist/{thread-list-Drcptd4x.cjs.map → thread-list-DKBwiGfX.cjs.map} +1 -1
  1061. package/dist/{time-picker-KE48KlpH.cjs → time-picker-Uz05Y0qU.cjs} +2 -2
  1062. package/dist/{time-picker-KE48KlpH.cjs.map → time-picker-Uz05Y0qU.cjs.map} +1 -1
  1063. package/dist/{time-picker-DRSAkFuj.js → time-picker-eQkyOP4X.js} +2 -2
  1064. package/dist/{time-picker-DRSAkFuj.js.map → time-picker-eQkyOP4X.js.map} +1 -1
  1065. package/dist/tokens.cjs.js +3 -0
  1066. package/dist/tokens.cjs.js.map +1 -1
  1067. package/dist/tokens.es.js +3 -0
  1068. package/dist/tokens.es.js.map +1 -1
  1069. package/dist/{tool-call-arguments-CtUKj7IB.js → tool-call-arguments-DQv3oaEC.js} +3 -3
  1070. package/dist/{tool-call-arguments-CtUKj7IB.js.map → tool-call-arguments-DQv3oaEC.js.map} +1 -1
  1071. package/dist/{tool-call-arguments-BemKsB9v.cjs → tool-call-arguments-DdO3E60i.cjs} +3 -3
  1072. package/dist/{tool-call-arguments-BemKsB9v.cjs.map → tool-call-arguments-DdO3E60i.cjs.map} +1 -1
  1073. package/dist/{tool-call-group-D_ioE9hT.cjs → tool-call-group-CALHT0zr.cjs} +3 -3
  1074. package/dist/{tool-call-group-D_ioE9hT.cjs.map → tool-call-group-CALHT0zr.cjs.map} +1 -1
  1075. package/dist/{tool-call-group-ZuYxpyDs.js → tool-call-group-UoMplOy2.js} +3 -3
  1076. package/dist/{tool-call-group-ZuYxpyDs.js.map → tool-call-group-UoMplOy2.js.map} +1 -1
  1077. package/dist/{traces-data-list-Dd8vMPQK.cjs → traces-data-list-D-wz-Je3.cjs} +5 -5
  1078. package/dist/{traces-data-list-Dd8vMPQK.cjs.map → traces-data-list-D-wz-Je3.cjs.map} +1 -1
  1079. package/dist/{traces-data-list-Fvl8mlih.js → traces-data-list-DmCgejAx.js} +5 -5
  1080. package/dist/{traces-data-list-Fvl8mlih.js.map → traces-data-list-DmCgejAx.js.map} +1 -1
  1081. package/dist/transcript-divider-273Bsdjs.cjs +30 -0
  1082. package/dist/transcript-divider-273Bsdjs.cjs.map +1 -0
  1083. package/dist/transcript-divider-CPIo8NUj.js +28 -0
  1084. package/dist/transcript-divider-CPIo8NUj.js.map +1 -0
  1085. package/dist/tree-DOVwqiSm.cjs +493 -0
  1086. package/dist/tree-DOVwqiSm.cjs.map +1 -0
  1087. package/dist/tree-DixCN7B0.js +472 -0
  1088. package/dist/tree-DixCN7B0.js.map +1 -0
  1089. package/dist/use-collapsible-box-B0t2_SvP.js +20 -0
  1090. package/dist/use-collapsible-box-B0t2_SvP.js.map +1 -0
  1091. package/dist/use-collapsible-box-BI80L4h_.cjs +23 -0
  1092. package/dist/use-collapsible-box-BI80L4h_.cjs.map +1 -0
  1093. package/dist/{use-workflow-graph-runtime-JQwLwNBD.js → use-workflow-graph-runtime-BF_NZEkj.js} +4 -4
  1094. package/dist/{use-workflow-graph-runtime-JQwLwNBD.js.map → use-workflow-graph-runtime-BF_NZEkj.js.map} +1 -1
  1095. package/dist/{use-workflow-graph-runtime-BNAtEa06.cjs → use-workflow-graph-runtime-r_OOpvSo.cjs} +4 -4
  1096. package/dist/{use-workflow-graph-runtime-BNAtEa06.cjs.map → use-workflow-graph-runtime-r_OOpvSo.cjs.map} +1 -1
  1097. package/dist/{workflow-condition-card-3J-As62x.js → workflow-condition-card-BCSYogql.js} +4 -4
  1098. package/dist/{workflow-condition-card-3J-As62x.js.map → workflow-condition-card-BCSYogql.js.map} +1 -1
  1099. package/dist/{workflow-condition-card-BjEAp0t6.cjs → workflow-condition-card-Dlo2PaKV.cjs} +4 -4
  1100. package/dist/{workflow-condition-card-BjEAp0t6.cjs.map → workflow-condition-card-Dlo2PaKV.cjs.map} +1 -1
  1101. package/dist/{workflow-data-edge-view-C4nbA2Fa.js → workflow-data-edge-view-JmkSlDp1.js} +2 -2
  1102. package/dist/{workflow-data-edge-view-C4nbA2Fa.js.map → workflow-data-edge-view-JmkSlDp1.js.map} +1 -1
  1103. package/dist/{workflow-data-edge-view-aHAZkZOH.cjs → workflow-data-edge-view-aNTgHQUk.cjs} +2 -2
  1104. package/dist/{workflow-data-edge-view-aHAZkZOH.cjs.map → workflow-data-edge-view-aNTgHQUk.cjs.map} +1 -1
  1105. package/dist/{workflow-debug-controls-tty6gLX2.js → workflow-debug-controls-CQc8ljAI.js} +3 -3
  1106. package/dist/{workflow-debug-controls-tty6gLX2.js.map → workflow-debug-controls-CQc8ljAI.js.map} +1 -1
  1107. package/dist/{workflow-debug-controls-VbxiluNZ.cjs → workflow-debug-controls-WXT05idC.cjs} +3 -3
  1108. package/dist/{workflow-debug-controls-VbxiluNZ.cjs.map → workflow-debug-controls-WXT05idC.cjs.map} +1 -1
  1109. package/dist/{workflow-edge-data-button-2aIkzgev.js → workflow-edge-data-button-B7bM7UqW.js} +2 -2
  1110. package/dist/{workflow-edge-data-button-2aIkzgev.js.map → workflow-edge-data-button-B7bM7UqW.js.map} +1 -1
  1111. package/dist/{workflow-edge-data-button-BFNO-TRL.cjs → workflow-edge-data-button-CHoNrfef.cjs} +2 -2
  1112. package/dist/{workflow-edge-data-button-BFNO-TRL.cjs.map → workflow-edge-data-button-CHoNrfef.cjs.map} +1 -1
  1113. package/package.json +10 -10
  1114. package/theme/colors.css +1 -1
  1115. package/theme/typography.css +19 -2
  1116. package/dist/Badge-D3EctKQo.cjs.map +0 -1
  1117. package/dist/Badge-DmOqFpXW.js.map +0 -1
  1118. package/dist/Txt-BP1SRHmL.js.map +0 -1
  1119. package/dist/Txt-DPmEpNbp.cjs.map +0 -1
  1120. package/dist/code-B-x-9sJ1.cjs.map +0 -1
  1121. package/dist/code-BeWhOFT4.js.map +0 -1
  1122. package/dist/combobox-styles-mbcWlNZQ.js.map +0 -1
  1123. package/dist/combobox-styles-qL3FSgmU.cjs.map +0 -1
  1124. package/dist/command-Bm0VcX7X.cjs.map +0 -1
  1125. package/dist/command-DFin7kHN.js.map +0 -1
  1126. package/dist/data-panel-CbomKGJt.js.map +0 -1
  1127. package/dist/data-panel-o-QLWuFV.cjs.map +0 -1
  1128. package/dist/field-BtvEQ68O.js.map +0 -1
  1129. package/dist/field-error-id-4DYu4KZ2.cjs.map +0 -1
  1130. package/dist/field-error-id-BSQLcfHo.js.map +0 -1
  1131. package/dist/field-ip9xiOVa.cjs.map +0 -1
  1132. package/dist/input-group-BgCXLSRV.cjs.map +0 -1
  1133. package/dist/input-group-wzirc-1k.js.map +0 -1
  1134. package/dist/main-sidebar-link-active-D8VSuJKx.cjs.map +0 -1
  1135. package/dist/main-sidebar-link-active-buZAhlHo.js.map +0 -1
  1136. package/dist/message-scroller-CiFr8MwT.js.map +0 -1
  1137. package/dist/message-scroller-E05PLPmT.cjs.map +0 -1
  1138. package/dist/metrics-kpi-card-1hbihR2T.cjs.map +0 -1
  1139. package/dist/metrics-kpi-card-CiB88L41.js.map +0 -1
  1140. package/dist/select--ArpXYDc.js.map +0 -1
  1141. package/dist/select-DJQYAVcm.cjs.map +0 -1
  1142. package/dist/tabs-root-C-ePF1y9.cjs.map +0 -1
  1143. package/dist/tabs-root-lrZZ3KwH.js.map +0 -1
  1144. package/dist/tabs-tab-BmIBFifi.cjs.map +0 -1
  1145. package/dist/tabs-tab-DoPSW-1s.js.map +0 -1
  1146. package/dist/use-collapsible-box-CCvsF_a9.js +0 -54
  1147. package/dist/use-collapsible-box-CCvsF_a9.js.map +0 -1
  1148. package/dist/use-collapsible-box-CbQOkokQ.cjs +0 -58
  1149. package/dist/use-collapsible-box-CbQOkokQ.cjs.map +0 -1
@@ -5,29 +5,25 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_traces_components_threadTrace_threadTraceRow = require('./thread-trace-row.cjs.js');
7
7
  const domains_traces_components_threadTrace_threadTraceRowContext = require('./thread-trace-row-context.cjs.js');
8
- const dataPanel = require('../../../../data-panel-o-QLWuFV.cjs');
9
- const tabsRoot = require('../../../../tabs-root-C-ePF1y9.cjs');
10
- const tabsTab = require('../../../../tabs-tab-BmIBFifi.cjs');
11
- const tabsContent = require('../../../../tabs-content-DnscxcLI.cjs');
8
+ const tabsList = require('../../../../tabs-list-Tqj36HIL.cjs');
9
+ const tabsTab = require('../../../../tabs-tab-C-C2vX-D.cjs');
10
+ const tabsContent = require('../../../../tabs-content-DfH1hhpU.cjs');
12
11
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
13
12
 
14
13
  function ThreadTraceMessages({ className, innerClassName, children, ...props }) {
15
- const { messagesRef, messagesHeight, tab, setTab } = domains_traces_components_threadTrace_threadTraceRowContext.useThreadTraceRow();
14
+ const { messagesRef, messagesHeight, tab } = domains_traces_components_threadTrace_threadTraceRowContext.useThreadTraceRow();
16
15
  const minHeight = tab === domains_traces_components_threadTrace_threadTraceRow.THREAD_TRACE_MESSAGES_TAB ? void 0 : messagesHeight ?? void 0;
17
16
  return /* @__PURE__ */ jsxRuntime.jsx(
18
17
  "div",
19
18
  {
20
19
  "data-slot": "thread-trace-messages",
21
- className: utils_cn.cn("relative min-w-0 overflow-x-clip border-r border-border", className),
20
+ className: utils_cn.cn("relative min-w-0 overflow-x-clip px-4", className),
22
21
  ...props,
23
22
  style: { minHeight, ...props.style },
24
23
  children: /* @__PURE__ */ jsxRuntime.jsx(
25
- tabsRoot.Tabs,
24
+ "div",
26
25
  {
27
26
  ref: messagesRef,
28
- defaultTab: domains_traces_components_threadTrace_threadTraceRow.THREAD_TRACE_MESSAGES_TAB,
29
- value: tab,
30
- onValueChange: setTab,
31
27
  "data-slot": "thread-trace-messages-inner",
32
28
  className: utils_cn.cn("sticky top-0", innerClassName),
33
29
  "data-testid": "trace-row-messages",
@@ -37,19 +33,15 @@ function ThreadTraceMessages({ className, innerClassName, children, ...props })
37
33
  }
38
34
  );
39
35
  }
40
- function ThreadTraceMessagesHeader({ className, ...props }) {
41
- return /* @__PURE__ */ jsxRuntime.jsx(dataPanel.DataPanel.Header, { className: utils_cn.cn("border-b border-border", className), ...props });
42
- }
43
36
  function ThreadTraceTabList({ variant = "pill-ghost", size = "sm", ...props }) {
44
- return /* @__PURE__ */ jsxRuntime.jsx(tabsRoot.TabList, { variant, size, ...props });
37
+ return /* @__PURE__ */ jsxRuntime.jsx(tabsList.TabList, { variant, size, ...props });
45
38
  }
46
39
  const ThreadTraceTab = tabsTab.Tab;
47
40
  function ThreadTraceTabContent({ className, ...props }) {
48
- return /* @__PURE__ */ jsxRuntime.jsx(tabsContent.TabContent, { className: utils_cn.cn("overflow-x-hidden px-4", className), ...props });
41
+ return /* @__PURE__ */ jsxRuntime.jsx(tabsContent.TabContent, { className: utils_cn.cn("overflow-x-hidden", className), ...props });
49
42
  }
50
43
 
51
44
  exports.ThreadTraceMessages = ThreadTraceMessages;
52
- exports.ThreadTraceMessagesHeader = ThreadTraceMessagesHeader;
53
45
  exports.ThreadTraceTab = ThreadTraceTab;
54
46
  exports.ThreadTraceTabContent = ThreadTraceTabContent;
55
47
  exports.ThreadTraceTabList = ThreadTraceTabList;
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-messages.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-messages.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { THREAD_TRACE_MESSAGES_TAB } from './thread-trace-row';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport type { DataPanelHeaderProps } from '@/ds/components/DataPanel';\nimport { Tab, TabContent, TabList, Tabs } from '@/ds/components/Tabs';\nimport type { TabContentProps, TabListProps, TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceMessagesProps extends ComponentProps<'div'> {\n /** Class name of the sticky, measured wrapper around the children. */\n innerClassName?: string;\n}\n\n/**\n * The left column of a row: the same Messages / Feedback / Scores tabs as the trace panel's side\n * column, one set per turn. Children are a `ThreadTrace.MessagesHeader` (holding the\n * `ThreadTrace.TabList`) followed by one `ThreadTrace.TabContent` per view. Like the trace\n * panel's side column it is framed by a left border (closing the rail gutter) and a right border,\n * which every row continues so they read as one line down the thread. Its measured height is the\n * clamp budget of the span tree.\n */\nexport function ThreadTraceMessages({ className, innerClassName, children, ...props }: ThreadTraceMessagesProps) {\n const { messagesRef, messagesHeight, tab, setTab } = useThreadTraceRow();\n // A short Feedback / Scores view keeps the row as tall as the Messages view, so the span tree\n // next to it is not clipped.\n const minHeight = tab === THREAD_TRACE_MESSAGES_TAB ? undefined : (messagesHeight ?? undefined);\n return (\n <div\n data-slot=\"thread-trace-messages\"\n className={cn('relative min-w-0 overflow-x-clip border-r border-border', className)}\n {...props}\n style={{ minHeight, ...props.style }}\n >\n {/* Sticky within the row, so a long trace on the right never scrolls its messages away. */}\n <Tabs<string>\n ref={messagesRef}\n defaultTab={THREAD_TRACE_MESSAGES_TAB}\n value={tab}\n onValueChange={setTab}\n data-slot=\"thread-trace-messages-inner\"\n className={cn('sticky top-0', innerClassName)}\n data-testid=\"trace-row-messages\"\n >\n {children}\n </Tabs>\n </div>\n );\n}\n\nexport type ThreadTraceMessagesHeaderProps = DataPanelHeaderProps;\n\n/**\n * The bordered tab row at the top of the messages column, same chrome as the trace panel's side\n * column; its border spans the column and continues into the details header's border as one line.\n */\nexport function ThreadTraceMessagesHeader({ className, ...props }: ThreadTraceMessagesHeaderProps) {\n return <DataPanel.Header className={cn('border-b border-border', className)} {...props} />;\n}\n\nexport type ThreadTraceTabListProps = Omit<TabListProps, 'variant' | 'size'> & {\n variant?: TabListProps['variant'];\n size?: TabListProps['size'];\n};\n\nexport function ThreadTraceTabList({ variant = 'pill-ghost', size = 'sm', ...props }: ThreadTraceTabListProps) {\n return <TabList variant={variant} size={size} {...props} />;\n}\n\nexport type ThreadTraceTabProps = TabProps;\nexport const ThreadTraceTab = Tab;\n\nexport type ThreadTraceTabContentProps = TabContentProps;\n\n/** One view of the messages column; keeps a gutter before the column's right border. */\nexport function ThreadTraceTabContent({ className, ...props }: ThreadTraceTabContentProps) {\n return <TabContent className={cn('overflow-x-hidden px-4', className)} {...props} />;\n}\n"],"names":["useThreadTraceRow","THREAD_TRACE_MESSAGES_TAB","jsx","cn","Tabs","DataPanel","TabList","Tab","TabContent"],"mappings":";;;;;;;;;;;;;AAuBO,SAAS,oBAAoB,EAAE,SAAA,EAAW,gBAAgB,QAAA,EAAU,GAAG,OAAM,EAA6B;AAC/G,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAA,EAAK,MAAA,KAAWA,6EAAA,EAAkB;AAGvE,EAAA,MAAM,SAAA,GAAY,GAAA,KAAQC,8EAAA,GAA4B,MAAA,GAAa,cAAA,IAAkB,MAAA;AACrF,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAWC,WAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,MACjF,GAAG,KAAA;AAAA,MACJ,KAAA,EAAO,EAAE,SAAA,EAAW,GAAG,MAAM,KAAA,EAAM;AAAA,MAGnC,QAAA,kBAAAD,cAAA;AAAA,QAACE,aAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,UAAA,EAAYH,8EAAA;AAAA,UACZ,KAAA,EAAO,GAAA;AAAA,UACP,aAAA,EAAe,MAAA;AAAA,UACf,WAAA,EAAU,6BAAA;AAAA,UACV,SAAA,EAAWE,WAAA,CAAG,cAAA,EAAgB,cAAc,CAAA;AAAA,UAC5C,aAAA,EAAY,oBAAA;AAAA,UAEX;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAQO,SAAS,yBAAA,CAA0B,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AACjG,EAAA,uBAAOD,cAAA,CAACG,mBAAA,CAAU,MAAA,EAAV,EAAiB,SAAA,EAAWF,YAAG,wBAAA,EAA0B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC1F;AAOO,SAAS,kBAAA,CAAmB,EAAE,OAAA,GAAU,YAAA,EAAc,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AAC7G,EAAA,uBAAOD,cAAA,CAACI,gBAAA,EAAA,EAAQ,OAAA,EAAkB,IAAA,EAAa,GAAG,KAAA,EAAO,CAAA;AAC3D;AAGO,MAAM,cAAA,GAAiBC;AAKvB,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AACzF,EAAA,uBAAOL,cAAA,CAACM,0BAAW,SAAA,EAAWL,WAAA,CAAG,0BAA0B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACpF;;;;;;;;"}
1
+ {"version":3,"file":"thread-trace-messages.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-messages.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { THREAD_TRACE_MESSAGES_TAB } from './thread-trace-row';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { Tab, TabContent, TabList } from '@/ds/components/Tabs';\nimport type { TabContentProps, TabListProps, TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceMessagesProps extends ComponentProps<'div'> {\n /** Class name of the sticky, measured wrapper around the children. */\n innerClassName?: string;\n}\n\n/**\n * The left column of a row: one `ThreadTrace.TabContent` per view (Messages / Feedback / Scores),\n * switched by the `ThreadTrace.TabList` in the row's divider. Its measured height is the clamp\n * budget of the span tree.\n */\nexport function ThreadTraceMessages({ className, innerClassName, children, ...props }: ThreadTraceMessagesProps) {\n const { messagesRef, messagesHeight, tab } = useThreadTraceRow();\n // A short Feedback / Scores view keeps the row as tall as the Messages view, so the span tree\n // next to it is not clipped.\n const minHeight = tab === THREAD_TRACE_MESSAGES_TAB ? undefined : (messagesHeight ?? undefined);\n return (\n <div\n data-slot=\"thread-trace-messages\"\n className={cn('relative min-w-0 overflow-x-clip px-4', className)}\n {...props}\n style={{ minHeight, ...props.style }}\n >\n {/* Sticky within the row, so a long trace on the right never scrolls its messages away. */}\n <div\n ref={messagesRef}\n data-slot=\"thread-trace-messages-inner\"\n className={cn('sticky top-0', innerClassName)}\n data-testid=\"trace-row-messages\"\n >\n {children}\n </div>\n </div>\n );\n}\n\nexport type ThreadTraceTabListProps = Omit<TabListProps, 'variant' | 'size'> & {\n variant?: TabListProps['variant'];\n size?: TabListProps['size'];\n};\n\nexport function ThreadTraceTabList({ variant = 'pill-ghost', size = 'sm', ...props }: ThreadTraceTabListProps) {\n return <TabList variant={variant} size={size} {...props} />;\n}\n\nexport type ThreadTraceTabProps = TabProps;\nexport const ThreadTraceTab = Tab;\n\nexport type ThreadTraceTabContentProps = TabContentProps;\n\n/** One view of the messages column. */\nexport function ThreadTraceTabContent({ className, ...props }: ThreadTraceTabContentProps) {\n return <TabContent className={cn('overflow-x-hidden', className)} {...props} />;\n}\n"],"names":["useThreadTraceRow","THREAD_TRACE_MESSAGES_TAB","jsx","cn","TabList","Tab","TabContent"],"mappings":";;;;;;;;;;;;AAkBO,SAAS,oBAAoB,EAAE,SAAA,EAAW,gBAAgB,QAAA,EAAU,GAAG,OAAM,EAA6B;AAC/G,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAA,KAAQA,6EAAA,EAAkB;AAG/D,EAAA,MAAM,SAAA,GAAY,GAAA,KAAQC,8EAAA,GAA4B,MAAA,GAAa,cAAA,IAAkB,MAAA;AACrF,EAAA,uBACEC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAWC,WAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,MAC/D,GAAG,KAAA;AAAA,MACJ,KAAA,EAAO,EAAE,SAAA,EAAW,GAAG,MAAM,KAAA,EAAM;AAAA,MAGnC,QAAA,kBAAAD,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,WAAA,EAAU,6BAAA;AAAA,UACV,SAAA,EAAWC,WAAA,CAAG,cAAA,EAAgB,cAAc,CAAA;AAAA,UAC5C,aAAA,EAAY,oBAAA;AAAA,UAEX;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAOO,SAAS,kBAAA,CAAmB,EAAE,OAAA,GAAU,YAAA,EAAc,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AAC7G,EAAA,uBAAOD,cAAA,CAACE,gBAAA,EAAA,EAAQ,OAAA,EAAkB,IAAA,EAAa,GAAG,KAAA,EAAO,CAAA;AAC3D;AAGO,MAAM,cAAA,GAAiBC;AAKvB,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AACzF,EAAA,uBAAOH,cAAA,CAACI,0BAAW,SAAA,EAAWH,WAAA,CAAG,qBAAqB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/E;;;;;;;"}
@@ -1,29 +1,25 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { THREAD_TRACE_MESSAGES_TAB } from './thread-trace-row.es.js';
3
3
  import { useThreadTraceRow } from './thread-trace-row-context.es.js';
4
- import { D as DataPanel } from '../../../../data-panel-CbomKGJt.js';
5
- import { T as TabList, a as Tabs } from '../../../../tabs-root-lrZZ3KwH.js';
6
- import { T as Tab } from '../../../../tabs-tab-DoPSW-1s.js';
7
- import { T as TabContent } from '../../../../tabs-content-CwbkTutf.js';
4
+ import { T as TabList } from '../../../../tabs-list-tLx5fgP0.js';
5
+ import { T as Tab } from '../../../../tabs-tab-ClLIOGiC.js';
6
+ import { T as TabContent } from '../../../../tabs-content-OWF8un_n.js';
8
7
  import { c as cn } from '../../../../cn-65Adrsfj.js';
9
8
 
10
9
  function ThreadTraceMessages({ className, innerClassName, children, ...props }) {
11
- const { messagesRef, messagesHeight, tab, setTab } = useThreadTraceRow();
10
+ const { messagesRef, messagesHeight, tab } = useThreadTraceRow();
12
11
  const minHeight = tab === THREAD_TRACE_MESSAGES_TAB ? void 0 : messagesHeight ?? void 0;
13
12
  return /* @__PURE__ */ jsx(
14
13
  "div",
15
14
  {
16
15
  "data-slot": "thread-trace-messages",
17
- className: cn("relative min-w-0 overflow-x-clip border-r border-border", className),
16
+ className: cn("relative min-w-0 overflow-x-clip px-4", className),
18
17
  ...props,
19
18
  style: { minHeight, ...props.style },
20
19
  children: /* @__PURE__ */ jsx(
21
- Tabs,
20
+ "div",
22
21
  {
23
22
  ref: messagesRef,
24
- defaultTab: THREAD_TRACE_MESSAGES_TAB,
25
- value: tab,
26
- onValueChange: setTab,
27
23
  "data-slot": "thread-trace-messages-inner",
28
24
  className: cn("sticky top-0", innerClassName),
29
25
  "data-testid": "trace-row-messages",
@@ -33,16 +29,13 @@ function ThreadTraceMessages({ className, innerClassName, children, ...props })
33
29
  }
34
30
  );
35
31
  }
36
- function ThreadTraceMessagesHeader({ className, ...props }) {
37
- return /* @__PURE__ */ jsx(DataPanel.Header, { className: cn("border-b border-border", className), ...props });
38
- }
39
32
  function ThreadTraceTabList({ variant = "pill-ghost", size = "sm", ...props }) {
40
33
  return /* @__PURE__ */ jsx(TabList, { variant, size, ...props });
41
34
  }
42
35
  const ThreadTraceTab = Tab;
43
36
  function ThreadTraceTabContent({ className, ...props }) {
44
- return /* @__PURE__ */ jsx(TabContent, { className: cn("overflow-x-hidden px-4", className), ...props });
37
+ return /* @__PURE__ */ jsx(TabContent, { className: cn("overflow-x-hidden", className), ...props });
45
38
  }
46
39
 
47
- export { ThreadTraceMessages, ThreadTraceMessagesHeader, ThreadTraceTab, ThreadTraceTabContent, ThreadTraceTabList };
40
+ export { ThreadTraceMessages, ThreadTraceTab, ThreadTraceTabContent, ThreadTraceTabList };
48
41
  //# sourceMappingURL=thread-trace-messages.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-messages.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-messages.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { THREAD_TRACE_MESSAGES_TAB } from './thread-trace-row';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { DataPanel } from '@/ds/components/DataPanel';\nimport type { DataPanelHeaderProps } from '@/ds/components/DataPanel';\nimport { Tab, TabContent, TabList, Tabs } from '@/ds/components/Tabs';\nimport type { TabContentProps, TabListProps, TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceMessagesProps extends ComponentProps<'div'> {\n /** Class name of the sticky, measured wrapper around the children. */\n innerClassName?: string;\n}\n\n/**\n * The left column of a row: the same Messages / Feedback / Scores tabs as the trace panel's side\n * column, one set per turn. Children are a `ThreadTrace.MessagesHeader` (holding the\n * `ThreadTrace.TabList`) followed by one `ThreadTrace.TabContent` per view. Like the trace\n * panel's side column it is framed by a left border (closing the rail gutter) and a right border,\n * which every row continues so they read as one line down the thread. Its measured height is the\n * clamp budget of the span tree.\n */\nexport function ThreadTraceMessages({ className, innerClassName, children, ...props }: ThreadTraceMessagesProps) {\n const { messagesRef, messagesHeight, tab, setTab } = useThreadTraceRow();\n // A short Feedback / Scores view keeps the row as tall as the Messages view, so the span tree\n // next to it is not clipped.\n const minHeight = tab === THREAD_TRACE_MESSAGES_TAB ? undefined : (messagesHeight ?? undefined);\n return (\n <div\n data-slot=\"thread-trace-messages\"\n className={cn('relative min-w-0 overflow-x-clip border-r border-border', className)}\n {...props}\n style={{ minHeight, ...props.style }}\n >\n {/* Sticky within the row, so a long trace on the right never scrolls its messages away. */}\n <Tabs<string>\n ref={messagesRef}\n defaultTab={THREAD_TRACE_MESSAGES_TAB}\n value={tab}\n onValueChange={setTab}\n data-slot=\"thread-trace-messages-inner\"\n className={cn('sticky top-0', innerClassName)}\n data-testid=\"trace-row-messages\"\n >\n {children}\n </Tabs>\n </div>\n );\n}\n\nexport type ThreadTraceMessagesHeaderProps = DataPanelHeaderProps;\n\n/**\n * The bordered tab row at the top of the messages column, same chrome as the trace panel's side\n * column; its border spans the column and continues into the details header's border as one line.\n */\nexport function ThreadTraceMessagesHeader({ className, ...props }: ThreadTraceMessagesHeaderProps) {\n return <DataPanel.Header className={cn('border-b border-border', className)} {...props} />;\n}\n\nexport type ThreadTraceTabListProps = Omit<TabListProps, 'variant' | 'size'> & {\n variant?: TabListProps['variant'];\n size?: TabListProps['size'];\n};\n\nexport function ThreadTraceTabList({ variant = 'pill-ghost', size = 'sm', ...props }: ThreadTraceTabListProps) {\n return <TabList variant={variant} size={size} {...props} />;\n}\n\nexport type ThreadTraceTabProps = TabProps;\nexport const ThreadTraceTab = Tab;\n\nexport type ThreadTraceTabContentProps = TabContentProps;\n\n/** One view of the messages column; keeps a gutter before the column's right border. */\nexport function ThreadTraceTabContent({ className, ...props }: ThreadTraceTabContentProps) {\n return <TabContent className={cn('overflow-x-hidden px-4', className)} {...props} />;\n}\n"],"names":[],"mappings":";;;;;;;;;AAuBO,SAAS,oBAAoB,EAAE,SAAA,EAAW,gBAAgB,QAAA,EAAU,GAAG,OAAM,EAA6B;AAC/G,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAA,EAAK,MAAA,KAAW,iBAAA,EAAkB;AAGvE,EAAA,MAAM,SAAA,GAAY,GAAA,KAAQ,yBAAA,GAA4B,MAAA,GAAa,cAAA,IAAkB,MAAA;AACrF,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,yDAAA,EAA2D,SAAS,CAAA;AAAA,MACjF,GAAG,KAAA;AAAA,MACJ,KAAA,EAAO,EAAE,SAAA,EAAW,GAAG,MAAM,KAAA,EAAM;AAAA,MAGnC,QAAA,kBAAA,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,UAAA,EAAY,yBAAA;AAAA,UACZ,KAAA,EAAO,GAAA;AAAA,UACP,aAAA,EAAe,MAAA;AAAA,UACf,WAAA,EAAU,6BAAA;AAAA,UACV,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,cAAc,CAAA;AAAA,UAC5C,aAAA,EAAY,oBAAA;AAAA,UAEX;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAQO,SAAS,yBAAA,CAA0B,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmC;AACjG,EAAA,uBAAO,GAAA,CAAC,SAAA,CAAU,MAAA,EAAV,EAAiB,SAAA,EAAW,GAAG,wBAAA,EAA0B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC1F;AAOO,SAAS,kBAAA,CAAmB,EAAE,OAAA,GAAU,YAAA,EAAc,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AAC7G,EAAA,uBAAO,GAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAkB,IAAA,EAAa,GAAG,KAAA,EAAO,CAAA;AAC3D;AAGO,MAAM,cAAA,GAAiB;AAKvB,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AACzF,EAAA,uBAAO,GAAA,CAAC,cAAW,SAAA,EAAW,EAAA,CAAG,0BAA0B,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AACpF;;;;"}
1
+ {"version":3,"file":"thread-trace-messages.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-messages.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { THREAD_TRACE_MESSAGES_TAB } from './thread-trace-row';\nimport { useThreadTraceRow } from './thread-trace-row-context';\nimport { Tab, TabContent, TabList } from '@/ds/components/Tabs';\nimport type { TabContentProps, TabListProps, TabProps } from '@/ds/components/Tabs';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceMessagesProps extends ComponentProps<'div'> {\n /** Class name of the sticky, measured wrapper around the children. */\n innerClassName?: string;\n}\n\n/**\n * The left column of a row: one `ThreadTrace.TabContent` per view (Messages / Feedback / Scores),\n * switched by the `ThreadTrace.TabList` in the row's divider. Its measured height is the clamp\n * budget of the span tree.\n */\nexport function ThreadTraceMessages({ className, innerClassName, children, ...props }: ThreadTraceMessagesProps) {\n const { messagesRef, messagesHeight, tab } = useThreadTraceRow();\n // A short Feedback / Scores view keeps the row as tall as the Messages view, so the span tree\n // next to it is not clipped.\n const minHeight = tab === THREAD_TRACE_MESSAGES_TAB ? undefined : (messagesHeight ?? undefined);\n return (\n <div\n data-slot=\"thread-trace-messages\"\n className={cn('relative min-w-0 overflow-x-clip px-4', className)}\n {...props}\n style={{ minHeight, ...props.style }}\n >\n {/* Sticky within the row, so a long trace on the right never scrolls its messages away. */}\n <div\n ref={messagesRef}\n data-slot=\"thread-trace-messages-inner\"\n className={cn('sticky top-0', innerClassName)}\n data-testid=\"trace-row-messages\"\n >\n {children}\n </div>\n </div>\n );\n}\n\nexport type ThreadTraceTabListProps = Omit<TabListProps, 'variant' | 'size'> & {\n variant?: TabListProps['variant'];\n size?: TabListProps['size'];\n};\n\nexport function ThreadTraceTabList({ variant = 'pill-ghost', size = 'sm', ...props }: ThreadTraceTabListProps) {\n return <TabList variant={variant} size={size} {...props} />;\n}\n\nexport type ThreadTraceTabProps = TabProps;\nexport const ThreadTraceTab = Tab;\n\nexport type ThreadTraceTabContentProps = TabContentProps;\n\n/** One view of the messages column. */\nexport function ThreadTraceTabContent({ className, ...props }: ThreadTraceTabContentProps) {\n return <TabContent className={cn('overflow-x-hidden', className)} {...props} />;\n}\n"],"names":[],"mappings":";;;;;;;;AAkBO,SAAS,oBAAoB,EAAE,SAAA,EAAW,gBAAgB,QAAA,EAAU,GAAG,OAAM,EAA6B;AAC/G,EAAA,MAAM,EAAE,WAAA,EAAa,cAAA,EAAgB,GAAA,KAAQ,iBAAA,EAAkB;AAG/D,EAAA,MAAM,SAAA,GAAY,GAAA,KAAQ,yBAAA,GAA4B,MAAA,GAAa,cAAA,IAAkB,MAAA;AACrF,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA;AAAA,MAC/D,GAAG,KAAA;AAAA,MACJ,KAAA,EAAO,EAAE,SAAA,EAAW,GAAG,MAAM,KAAA,EAAM;AAAA,MAGnC,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,WAAA;AAAA,UACL,WAAA,EAAU,6BAAA;AAAA,UACV,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,cAAc,CAAA;AAAA,UAC5C,aAAA,EAAY,oBAAA;AAAA,UAEX;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAOO,SAAS,kBAAA,CAAmB,EAAE,OAAA,GAAU,YAAA,EAAc,OAAO,IAAA,EAAM,GAAG,OAAM,EAA4B;AAC7G,EAAA,uBAAO,GAAA,CAAC,OAAA,EAAA,EAAQ,OAAA,EAAkB,IAAA,EAAa,GAAG,KAAA,EAAO,CAAA;AAC3D;AAGO,MAAM,cAAA,GAAiB;AAKvB,SAAS,qBAAA,CAAsB,EAAE,SAAA,EAAW,GAAG,OAAM,EAA+B;AACzF,EAAA,uBAAO,GAAA,CAAC,cAAW,SAAA,EAAW,EAAA,CAAG,qBAAqB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAC/E;;;;"}
@@ -6,7 +6,8 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_traces_hooks_useVisibleTraceRows = require('../../hooks/use-visible-trace-rows.cjs.js');
8
8
  const domains_traces_components_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
9
- const messageScroller = require('../../../../message-scroller-E05PLPmT.cjs');
9
+ const messageScroller = require('../../../../message-scroller-D-_KN9Fv.cjs');
10
+ const resize_panelGroup = require('../../../../resize/panel-group.cjs.js');
10
11
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
11
12
 
12
13
  function ThreadTraceRoot({
@@ -95,21 +96,7 @@ function ThreadTraceRoot({
95
96
  autoScroll: true,
96
97
  preserveScrollOnPrepend: true,
97
98
  onReachStart: onLoadOlder,
98
- children: /* @__PURE__ */ jsxRuntime.jsx(
99
- "div",
100
- {
101
- "data-slot": "thread-trace",
102
- className: utils_cn.cn(
103
- // The span cell always exists and collapses to zero so opening/closing it animates
104
- // via `grid-template-columns`, like the trace panel's columns.
105
- "grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out",
106
- selected ? "grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" : "grid-cols-[minmax(0,2fr)_minmax(0,0fr)]",
107
- className
108
- ),
109
- ...props,
110
- children
111
- }
112
- )
99
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { "data-slot": "thread-trace", className: utils_cn.cn("flex h-full min-h-0", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(resize_panelGroup.PanelGroup, { orientation: "horizontal", className: "min-h-0 flex-1", children }) })
113
100
  }
114
101
  ) });
115
102
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-root.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the outer grid that gains a\n * side column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Show less\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div\n data-slot=\"thread-trace\"\n className={cn(\n // The span cell always exists and collapses to zero so opening/closing it animates\n // via `grid-template-columns`, like the trace panel's columns.\n 'grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out',\n selected ? 'grid-cols-[minmax(0,2fr)_minmax(0,1fr)]' : 'grid-cols-[minmax(0,2fr)_minmax(0,0fr)]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":["useRef","useVisibleTraceRows","useState","useCallback","useMemo","jsx","ThreadTraceContext","MessageScrollerProvider","cn"],"mappings":";;;;;;;;;;;AAwBO,SAAS,eAAA,CAAgB;AAAA,EAC9B,QAAA;AAAA,EACA,WAAA;AAAA,EACA,oBAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,OAAA,GAAUA,aAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,EAAE,eAAA,EAAiB,cAAA,EAAe,GAAIC,4DAAA,CAAoB,SAAS,QAAQ,CAAA;AAEjF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIC,eAAyC,IAAI,CAAA;AAC7E,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,eAAsC,IAAI,CAAA;AAE5E,EAAA,MAAM,CAAC,kBAAkB,mBAAmB,CAAA,GAAIA,eAA8B,sBAAM,IAAI,KAAK,CAAA;AAE7F,EAAA,MAAM,gBAAA,GAAmBC,iBAAA,CAAY,CAAC,OAAA,EAAiB,QAAA,KAAsB;AAC3E,IAAA,mBAAA,CAAoB,CAAA,OAAA,KAAW;AAC7B,MAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,KAAM,UAAU,OAAO,OAAA;AAC9C,MAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,OAAO,CAAA;AAC5B,MAAA,IAAI,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA;AAAA,WACzB,IAAA,CAAK,OAAO,OAAO,CAAA;AACxB,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,UAAA,GAAaA,iBAAA;AAAA,IACjB,CAAC,SAAiB,MAAA,KAA+B;AAC/C,MAAA,MAAM,IAAA,GAAO,MAAA,GAAS,EAAE,OAAA,EAAS,QAAO,GAAI,IAAA;AAC5C,MAAA,WAAA,CAAY,IAAI,CAAA;AAChB,MAAA,oBAAA,GAAuB,IAAI,CAAA;AAC3B,MAAA,IAAI,MAAA,EAAQ,gBAAA,CAAiB,OAAA,EAAS,IAAI,CAAA;AAE1C,MAAA,IAAI,CAAC,MAAA,EAAQ,YAAA,CAAa,IAAI,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,kBAAkB,oBAAoB;AAAA,GACzC;AAKA,EAAA,MAAM,cAAA,GAAiBA,iBAAA;AAAA,IACrB,CAAC,SAAiB,OAAA,KAAsB;AACtC,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,YAAA,CAAa,IAAI,CAAA;AACjB,QAAA;AAAA,MACF;AACA,MAAA,YAAA,CAAa,EAAE,OAAA,EAAS,OAAA,EAAS,CAAA;AACjC,MAAA,gBAAA,CAAiB,SAAS,IAAI,CAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,gBAAgB;AAAA,GACnB;AAEA,EAAA,MAAM,aAAA,GAAgBA,iBAAA,CAAY,CAAC,OAAA,KAAoB;AACrD,IAAA,MAAM,OAAO,OAAA,CAAQ,OAAA,EAAS,gBAAA,CAA8B,iBAAiB,KAAK,EAAC;AACnF,IAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,MAAA,IAAI,GAAA,CAAI,OAAA,CAAQ,OAAA,KAAY,OAAA,EAAS;AACnC,QAAA,GAAA,CAAI,eAAe,EAAE,QAAA,EAAU,QAAA,EAAU,KAAA,EAAO,SAAS,CAAA;AACzD,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,YAAA,GAAeC,aAAA;AAAA,IACnB,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA,aAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA;AAAA,MACE,QAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,cAAA;AAAA,MACA,gBAAA;AAAA,MACA,gBAAA;AAAA,MACA,eAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,uBACEC,cAAA,CAACC,2EAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAO,YAAA,EAGlC,QAAA,kBAAAD,cAAA;AAAA,IAACE,uCAAA;AAAA,IAAA;AAAA,MACC,qBAAA,EAAsB,KAAA;AAAA,MACtB,UAAA,EAAU,IAAA;AAAA,MACV,uBAAA,EAAuB,IAAA;AAAA,MACvB,YAAA,EAAc,WAAA;AAAA,MAEd,QAAA,kBAAAF,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,WAAA,EAAU,cAAA;AAAA,UACV,SAAA,EAAWG,WAAA;AAAA;AAAA;AAAA,YAGT,iFAAA;AAAA,YACA,WAAW,yCAAA,GAA4C,yCAAA;AAAA,YACvD;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"thread-trace-root.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { PanelGroup } from '@/lib/resize/panel-group';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the resizable panel group that\n * gains a span column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Collapse\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div data-slot=\"thread-trace\" className={cn('flex h-full min-h-0', className)} {...props}>\n <PanelGroup orientation=\"horizontal\" className=\"min-h-0 flex-1\">\n {children}\n </PanelGroup>\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":["useRef","useVisibleTraceRows","useState","useCallback","useMemo","jsx","ThreadTraceContext","MessageScrollerProvider","cn","PanelGroup"],"mappings":"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"}
@@ -2,7 +2,8 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { useRef, useState, useCallback, useMemo } from 'react';
3
3
  import { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows.es.js';
4
4
  import { ThreadTraceContext } from './thread-trace-context.es.js';
5
- import { d as MessageScrollerProvider } from '../../../../message-scroller-CiFr8MwT.js';
5
+ import { d as MessageScrollerProvider } from '../../../../message-scroller-WWaQ-XU_.js';
6
+ import { PanelGroup } from '../../../../resize/panel-group.es.js';
6
7
  import { c as cn } from '../../../../cn-65Adrsfj.js';
7
8
 
8
9
  function ThreadTraceRoot({
@@ -91,21 +92,7 @@ function ThreadTraceRoot({
91
92
  autoScroll: true,
92
93
  preserveScrollOnPrepend: true,
93
94
  onReachStart: onLoadOlder,
94
- children: /* @__PURE__ */ jsx(
95
- "div",
96
- {
97
- "data-slot": "thread-trace",
98
- className: cn(
99
- // The span cell always exists and collapses to zero so opening/closing it animates
100
- // via `grid-template-columns`, like the trace panel's columns.
101
- "grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out",
102
- selected ? "grid-cols-[minmax(0,2fr)_minmax(0,1fr)]" : "grid-cols-[minmax(0,2fr)_minmax(0,0fr)]",
103
- className
104
- ),
105
- ...props,
106
- children
107
- }
108
- )
95
+ children: /* @__PURE__ */ jsx("div", { "data-slot": "thread-trace", className: cn("flex h-full min-h-0", className), ...props, children: /* @__PURE__ */ jsx(PanelGroup, { orientation: "horizontal", className: "min-h-0 flex-1", children }) })
109
96
  }
110
97
  ) });
111
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-root.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the outer grid that gains a\n * side column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Show less\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div\n data-slot=\"thread-trace\"\n className={cn(\n // The span cell always exists and collapses to zero so opening/closing it animates\n // via `grid-template-columns`, like the trace panel's columns.\n 'grid h-full min-h-0 transition-[grid-template-columns] duration-300 ease-in-out',\n selected ? 'grid-cols-[minmax(0,2fr)_minmax(0,1fr)]' : 'grid-cols-[minmax(0,2fr)_minmax(0,0fr)]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-root.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-root.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useVisibleTraceRows } from '../../hooks/use-visible-trace-rows';\nimport { ThreadTraceContext } from './thread-trace-context';\nimport type { ThreadTraceContextValue, ThreadTraceHighlight, ThreadTraceSelectedSpan } from './thread-trace-context';\nimport { MessageScrollerProvider } from '@/ds/components/MessageScroller';\nimport { PanelGroup } from '@/lib/resize/panel-group';\nimport { cn } from '@/lib/utils';\n\nexport interface ThreadTraceRootProps extends ComponentProps<'div'> {\n /** Trace ids in reading order (oldest first); must match the order of the rendered rows. */\n traceIds: string[];\n /** Fires when the reader scrolls up to the oldest loaded row; load the previous page here. */\n onLoadOlder?: () => void;\n /** Fires when a span detail opens or closes (`null`). */\n onSelectedSpanChange?: (selected: ThreadTraceSelectedSpan | null) => void;\n}\n\n/**\n * Owns the interaction state of a thread rendered as its traces: the selected span, the\n * highlighted spans, which rows are expanded, and which rows are on screen. Layout parts read it\n * through `useThreadTrace()` / `useThreadTraceRow()`; the root itself is the resizable panel group that\n * gains a span column while a span is selected.\n */\nexport function ThreadTraceRoot({\n traceIds,\n onLoadOlder,\n onSelectedSpanChange,\n className,\n children,\n ...props\n}: ThreadTraceRootProps) {\n const listRef = useRef<HTMLDivElement>(null);\n const { visibleTraceIds, currentTraceId } = useVisibleTraceRows(listRef, traceIds);\n\n const [selected, setSelected] = useState<ThreadTraceSelectedSpan | null>(null);\n const [highlight, setHighlight] = useState<ThreadTraceHighlight | null>(null);\n // Selecting a span expands its row and it stays expanded until the reader collapses it with \"Collapse\".\n const [expandedTraceIds, setExpandedTraceIds] = useState<ReadonlySet<string>>(() => new Set());\n\n const setTraceExpanded = useCallback((traceId: string, expanded: boolean) => {\n setExpandedTraceIds(current => {\n if (current.has(traceId) === expanded) return current;\n const next = new Set(current);\n if (expanded) next.add(traceId);\n else next.delete(traceId);\n return next;\n });\n }, []);\n\n const selectSpan = useCallback(\n (traceId: string, spanId: string | undefined) => {\n const next = spanId ? { traceId, spanId } : null;\n setSelected(next);\n onSelectedSpanChange?.(next);\n if (spanId) setTraceExpanded(traceId, true);\n // Closing the panel also ends the highlight, like clearing the URL param on the traces page.\n if (!spanId) setHighlight(null);\n },\n [setTraceExpanded, onSelectedSpanChange],\n );\n\n // Fades the other spans and brings the last (most specific, deepest) span into view, since it is\n // the one most likely to sit below the fold. Opening a span's detail panel stays a separate,\n // deliberate click so highlighting does not hijack the side panel.\n const highlightSpans = useCallback(\n (traceId: string, spanIds: string[]) => {\n if (spanIds.length === 0) {\n setHighlight(null);\n return;\n }\n setHighlight({ traceId, spanIds });\n setTraceExpanded(traceId, true);\n },\n [setTraceExpanded],\n );\n\n const scrollToTrace = useCallback((traceId: string) => {\n const rows = listRef.current?.querySelectorAll<HTMLElement>('[data-trace-id]') ?? [];\n for (const row of rows) {\n if (row.dataset.traceId === traceId) {\n row.scrollIntoView({ behavior: 'smooth', block: 'start' });\n return;\n }\n }\n }, []);\n\n const contextValue = useMemo<ThreadTraceContextValue>(\n () => ({\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n listRef,\n }),\n [\n traceIds,\n selected,\n selectSpan,\n highlight,\n highlightSpans,\n expandedTraceIds,\n setTraceExpanded,\n visibleTraceIds,\n currentTraceId,\n scrollToTrace,\n ],\n );\n\n return (\n <ThreadTraceContext.Provider value={contextValue}>\n {/* Chat-like: opens on the latest turn, follows it while rows grow until the reader scrolls\n up, and keeps the reading position when older turns are prepended. */}\n <MessageScrollerProvider\n defaultScrollPosition=\"end\"\n autoScroll\n preserveScrollOnPrepend\n onReachStart={onLoadOlder}\n >\n <div data-slot=\"thread-trace\" className={cn('flex h-full min-h-0', className)} {...props}>\n <PanelGroup orientation=\"horizontal\" className=\"min-h-0 flex-1\">\n {children}\n </PanelGroup>\n </div>\n </MessageScrollerProvider>\n </ThreadTraceContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_traces_components_threadTrace_threadTraceContext = require('./thread-trace-context.cjs.js');
8
8
  const domains_traces_components_threadTrace_threadTraceRowContext = require('./thread-trace-row-context.cjs.js');
9
- const messageScroller = require('../../../../message-scroller-E05PLPmT.cjs');
9
+ const transcriptDivider = require('../../../../transcript-divider-273Bsdjs.cjs');
10
+ const messageScroller = require('../../../../message-scroller-D-_KN9Fv.cjs');
11
+ const tabsRoot = require('../../../../tabs-root-Hkt7A6oq.cjs');
10
12
  const hooks_useMeasuredAutoHeight = require('../../../../hooks/use-measured-auto-height.cjs.js');
11
13
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
12
14
 
@@ -76,13 +78,15 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
76
78
  ]
77
79
  );
78
80
  return /* @__PURE__ */ jsxRuntime.jsx(domains_traces_components_threadTrace_threadTraceRowContext.ThreadTraceRowContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(messageScroller.MessageScrollerItem, { messageId: traceId, className: "[content-visibility:visible]", children: /* @__PURE__ */ jsxRuntime.jsx(
79
- "div",
81
+ tabsRoot.Tabs,
80
82
  {
83
+ defaultTab: THREAD_TRACE_MESSAGES_TAB,
84
+ value: tab,
85
+ onValueChange: setTab,
81
86
  "data-slot": "thread-trace-row",
82
87
  className: utils_cn.cn(
83
- // Same fixed messages width as the trace panel; the details column takes the rest.
84
- "group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100",
85
- isActive || isCurrent ? "opacity-100" : "opacity-50",
88
+ // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.
89
+ "group flex flex-col overflow-visible pb-4",
86
90
  className
87
91
  ),
88
92
  "data-trace-id": traceId,
@@ -92,7 +96,25 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
92
96
  }
93
97
  ) }) });
94
98
  }
99
+ function ThreadTraceRowBody({ className, ...props }) {
100
+ return /* @__PURE__ */ jsxRuntime.jsx(
101
+ "div",
102
+ {
103
+ "data-slot": "thread-trace-row-body",
104
+ className: utils_cn.cn("grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", className),
105
+ ...props
106
+ }
107
+ );
108
+ }
109
+ function ThreadTraceDivider({ label, children }) {
110
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-slot": "thread-trace-divider", className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", children: [
111
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 pl-4", children: /* @__PURE__ */ jsxRuntime.jsx(transcriptDivider.TranscriptDivider, { label, hideLabel: true, children }) }),
112
+ /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": true, className: "flex items-center pr-4", children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "h-px flex-1 bg-border" }) })
113
+ ] });
114
+ }
95
115
 
96
116
  exports.THREAD_TRACE_MESSAGES_TAB = THREAD_TRACE_MESSAGES_TAB;
117
+ exports.ThreadTraceDivider = ThreadTraceDivider;
97
118
  exports.ThreadTraceRow = ThreadTraceRow;
119
+ exports.ThreadTraceRowBody = ThreadTraceRowBody;
98
120
  //# sourceMappingURL=thread-trace-row.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-row.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: the messages column on the left and the details column on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n <div\n data-slot=\"thread-trace-row\"\n className={cn(\n // Same fixed messages width as the trace panel; the details column takes the rest.\n 'group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100',\n isActive || isCurrent ? 'opacity-100' : 'opacity-50',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n"],"names":["useThreadTrace","useMeasuredAutoHeight","useState","useCallback","useMemo","jsx","ThreadTraceRowContext","MessageScrollerItem","cn"],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-row.cjs.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { TranscriptDivider } from '@/ds/components/ai/transcript-divider';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { Tabs } from '@/ds/components/Tabs';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: a `ThreadTrace.Divider` (turn label + tabs) above a `ThreadTrace.RowBody` holding\n * the messages column on the left and the details card on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n {/* The row is the tabs root, so the tab list in the divider drives the messages column. */}\n <Tabs<string>\n defaultTab={THREAD_TRACE_MESSAGES_TAB}\n value={tab}\n onValueChange={setTab}\n data-slot=\"thread-trace-row\"\n className={cn(\n // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.\n 'group flex flex-col overflow-visible pb-4',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </Tabs>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n\nexport type ThreadTraceRowBodyProps = ComponentProps<'div'>;\n\n/** The two columns of a row: the messages on the left and the details card on the right, each padded on x. */\nexport function ThreadTraceRowBody({ className, ...props }: ThreadTraceRowBodyProps) {\n return (\n <div\n data-slot=\"thread-trace-row-body\"\n className={cn('grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]', className)}\n {...props}\n />\n );\n}\n\nexport interface ThreadTraceDividerProps {\n /** Names the turn, e.g. `Turn 1`. Used as the accessible name; not shown. */\n label: string;\n /** Typically the row's `ThreadTrace.TabList`. */\n children?: ReactNode;\n}\n\n/**\n * The rule above a row: a full-width line, with its content (e.g. a trace link and tabs) centered over the messages\n * column only, so the line runs on uninterrupted above the details card.\n */\nexport function ThreadTraceDivider({ label, children }: ThreadTraceDividerProps) {\n return (\n <div data-slot=\"thread-trace-divider\" className=\"grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]\">\n <div className=\"min-w-0 pl-4\">\n <TranscriptDivider label={label} hideLabel>\n {children}\n </TranscriptDivider>\n </div>\n <div aria-hidden className=\"flex items-center pr-4\">\n <span className=\"h-px flex-1 bg-border\" />\n </div>\n </div>\n );\n}\n"],"names":["useThreadTrace","useMeasuredAutoHeight","useState","useCallback","useMemo","jsx","ThreadTraceRowContext","MessageScrollerItem","Tabs","cn","jsxs","TranscriptDivider"],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { jsx } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useState, useCallback, useMemo } from 'react';
3
3
  import { useThreadTrace } from './thread-trace-context.es.js';
4
4
  import { ThreadTraceRowContext } from './thread-trace-row-context.es.js';
5
- import { c as MessageScrollerItem } from '../../../../message-scroller-CiFr8MwT.js';
5
+ import { T as TranscriptDivider } from '../../../../transcript-divider-CPIo8NUj.js';
6
+ import { c as MessageScrollerItem } from '../../../../message-scroller-WWaQ-XU_.js';
7
+ import { T as Tabs } from '../../../../tabs-root-BbzhUZl4.js';
6
8
  import { useMeasuredAutoHeight } from '../../../../hooks/use-measured-auto-height.es.js';
7
9
  import { c as cn } from '../../../../cn-65Adrsfj.js';
8
10
 
@@ -72,13 +74,15 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
72
74
  ]
73
75
  );
74
76
  return /* @__PURE__ */ jsx(ThreadTraceRowContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(MessageScrollerItem, { messageId: traceId, className: "[content-visibility:visible]", children: /* @__PURE__ */ jsx(
75
- "div",
77
+ Tabs,
76
78
  {
79
+ defaultTab: THREAD_TRACE_MESSAGES_TAB,
80
+ value: tab,
81
+ onValueChange: setTab,
77
82
  "data-slot": "thread-trace-row",
78
83
  className: cn(
79
- // Same fixed messages width as the trace panel; the details column takes the rest.
80
- "group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100",
81
- isActive || isCurrent ? "opacity-100" : "opacity-50",
84
+ // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.
85
+ "group flex flex-col overflow-visible pb-4",
82
86
  className
83
87
  ),
84
88
  "data-trace-id": traceId,
@@ -88,6 +92,22 @@ function ThreadTraceRow({ traceId, className, children, ...props }) {
88
92
  }
89
93
  ) }) });
90
94
  }
95
+ function ThreadTraceRowBody({ className, ...props }) {
96
+ return /* @__PURE__ */ jsx(
97
+ "div",
98
+ {
99
+ "data-slot": "thread-trace-row-body",
100
+ className: cn("grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", className),
101
+ ...props
102
+ }
103
+ );
104
+ }
105
+ function ThreadTraceDivider({ label, children }) {
106
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "thread-trace-divider", className: "grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]", children: [
107
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 pl-4", children: /* @__PURE__ */ jsx(TranscriptDivider, { label, hideLabel: true, children }) }),
108
+ /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: "flex items-center pr-4", children: /* @__PURE__ */ jsx("span", { className: "h-px flex-1 bg-border" }) })
109
+ ] });
110
+ }
91
111
 
92
- export { THREAD_TRACE_MESSAGES_TAB, ThreadTraceRow };
112
+ export { THREAD_TRACE_MESSAGES_TAB, ThreadTraceDivider, ThreadTraceRow, ThreadTraceRowBody };
93
113
  //# sourceMappingURL=thread-trace-row.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"thread-trace-row.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: the messages column on the left and the details column on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n <div\n data-slot=\"thread-trace-row\"\n className={cn(\n // Same fixed messages width as the trace panel; the details column takes the rest.\n 'group grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)] border-b border-border transition-opacity hover:opacity-100',\n isActive || isCurrent ? 'opacity-100' : 'opacity-50',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </div>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-trace-row.es.js","sources":["../../../../../src/domains/traces/components/thread-trace/thread-trace-row.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport type { ComponentProps, ReactNode } from 'react';\n\nimport { useThreadTrace } from './thread-trace-context';\nimport { ThreadTraceRowContext } from './thread-trace-row-context';\nimport type { ThreadTraceRowContextValue } from './thread-trace-row-context';\nimport { TranscriptDivider } from '@/ds/components/ai/transcript-divider';\nimport { MessageScrollerItem } from '@/ds/components/MessageScroller';\nimport { Tabs } from '@/ds/components/Tabs';\nimport { useMeasuredAutoHeight } from '@/hooks/use-measured-auto-height';\nimport { cn } from '@/lib/utils';\n\nexport const THREAD_TRACE_MESSAGES_TAB = 'messages';\n\nexport interface ThreadTraceRowProps extends ComponentProps<'div'> {\n traceId: string;\n}\n\n/**\n * One agent turn: a `ThreadTrace.Divider` (turn label + tabs) above a `ThreadTrace.RowBody` holding\n * the messages column on the left and the details card on the right. The whole\n * row is dimmed unless it is the first one in view, hovered, or its span is open in the side panel,\n * so the reader keeps track of which turn they are on without hovering.\n */\nexport function ThreadTraceRow({ traceId, className, children, ...props }: ThreadTraceRowProps) {\n const root = useThreadTrace();\n\n const selectedSpanId = root.selected?.traceId === traceId ? root.selected.spanId : undefined;\n const featuredSpanIds = root.highlight?.traceId === traceId ? root.highlight.spanIds : undefined;\n const revealSpanId = featuredSpanIds?.at(-1);\n const isActive = selectedSpanId !== undefined;\n const isCurrent = root.currentTraceId === traceId;\n const isExpanded = root.expandedTraceIds.has(traceId);\n\n // A long trace is clamped to the real height of its messages column (not a nominal row height),\n // so the timeline never dwarfs the turn it belongs to. The refs live here because the messages\n // and the timeline are sibling parts.\n const messages = useMeasuredAutoHeight<HTMLDivElement>();\n const timeline = useMeasuredAutoHeight<HTMLDivElement>();\n const detailsHeader = useMeasuredAutoHeight<HTMLDivElement>();\n\n // Which view the messages column shows (Messages / Feedback / Scores), one per row.\n const [tab, setTab] = useState<string>(THREAD_TRACE_MESSAGES_TAB);\n // The clamp budget is the height of the *Messages* view: a short Feedback or Scores view\n // must not squash the span tree next to it, so the last Messages height is kept while\n // another view is showing.\n const [messagesViewHeight, setMessagesViewHeight] = useState<number | null>(null);\n if (tab === THREAD_TRACE_MESSAGES_TAB && messages.height !== messagesViewHeight) {\n setMessagesViewHeight(messages.height);\n }\n\n const { highlightSpans: rootHighlightSpans, setTraceExpanded } = root;\n const highlightSpans = useCallback(\n (spanIds: string[]) => rootHighlightSpans(traceId, spanIds),\n [rootHighlightSpans, traceId],\n );\n const setExpanded = useCallback(\n (expanded: boolean) => setTraceExpanded(traceId, expanded),\n [setTraceExpanded, traceId],\n );\n\n const contextValue = useMemo<ThreadTraceRowContextValue>(\n () => ({\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n setTab,\n messagesRef: messages.ref,\n timelineRef: timeline.ref,\n detailsHeaderRef: detailsHeader.ref,\n messagesHeight: messagesViewHeight,\n timelineHeight: timeline.height,\n detailsHeaderHeight: detailsHeader.height,\n }),\n [\n traceId,\n isActive,\n isCurrent,\n isExpanded,\n selectedSpanId,\n featuredSpanIds,\n revealSpanId,\n highlightSpans,\n setExpanded,\n tab,\n messages.ref,\n timeline.ref,\n detailsHeader.ref,\n messagesViewHeight,\n timeline.height,\n detailsHeader.height,\n ],\n );\n\n return (\n <ThreadTraceRowContext.Provider value={contextValue}>\n {/* Registers the row with the scroller so prepends of older turns keep the reading position.\n Rows measure their own columns, so they stay rendered off screen. */}\n <MessageScrollerItem messageId={traceId} className=\"[content-visibility:visible]\">\n {/* The row is the tabs root, so the tab list in the divider drives the messages column. */}\n <Tabs<string>\n defaultTab={THREAD_TRACE_MESSAGES_TAB}\n value={tab}\n onValueChange={setTab}\n data-slot=\"thread-trace-row\"\n className={cn(\n // `overflow-visible` overrides the tabs root scroll box so the messages column stays sticky.\n 'group flex flex-col overflow-visible pb-4',\n className,\n )}\n data-trace-id={traceId}\n data-active={isActive || undefined}\n {...props}\n >\n {children}\n </Tabs>\n </MessageScrollerItem>\n </ThreadTraceRowContext.Provider>\n );\n}\n\nexport type ThreadTraceRowBodyProps = ComponentProps<'div'>;\n\n/** The two columns of a row: the messages on the left and the details card on the right, each padded on x. */\nexport function ThreadTraceRowBody({ className, ...props }: ThreadTraceRowBodyProps) {\n return (\n <div\n data-slot=\"thread-trace-row-body\"\n className={cn('grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]', className)}\n {...props}\n />\n );\n}\n\nexport interface ThreadTraceDividerProps {\n /** Names the turn, e.g. `Turn 1`. Used as the accessible name; not shown. */\n label: string;\n /** Typically the row's `ThreadTrace.TabList`. */\n children?: ReactNode;\n}\n\n/**\n * The rule above a row: a full-width line, with its content (e.g. a trace link and tabs) centered over the messages\n * column only, so the line runs on uninterrupted above the details card.\n */\nexport function ThreadTraceDivider({ label, children }: ThreadTraceDividerProps) {\n return (\n <div data-slot=\"thread-trace-divider\" className=\"grid grid-cols-[minmax(0,1fr)_minmax(0,1fr)]\">\n <div className=\"min-w-0 pl-4\">\n <TranscriptDivider label={label} hideLabel>\n {children}\n </TranscriptDivider>\n </div>\n <div aria-hidden className=\"flex items-center pr-4\">\n <span className=\"h-px flex-1 bg-border\" />\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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"}