@mastra/playground-ui 66.1.0-alpha.2 → 67.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1052) hide show
  1. package/dist/AgentIndicator-Bs2S8AWJ.js +847 -0
  2. package/dist/AgentIndicator-Bs2S8AWJ.js.map +1 -0
  3. package/dist/AgentIndicator-to30W73z.cjs +864 -0
  4. package/dist/AgentIndicator-to30W73z.cjs.map +1 -0
  5. package/dist/AgentIndicator.css +28 -0
  6. package/dist/{Arrival-NpBOyV52.js → Arrival-CJFEOXr5.js} +33 -3
  7. package/dist/Arrival-CJFEOXr5.js.map +1 -0
  8. package/dist/{Arrival-Dm6Vgn78.cjs → Arrival-Cs1oWjo4.cjs} +43 -1
  9. package/dist/Arrival-Cs1oWjo4.cjs.map +1 -0
  10. package/dist/{Comment-CUQvfikb.cjs → Comment-KYUQzeSu.cjs} +2 -2
  11. package/dist/{Comment-CUQvfikb.cjs.map → Comment-KYUQzeSu.cjs.map} +1 -1
  12. package/dist/{Comment-CPA3IyPS.js → Comment-VFJq2wRp.js} +2 -2
  13. package/dist/{Comment-CPA3IyPS.js.map → Comment-VFJq2wRp.js.map} +1 -1
  14. package/dist/{DataList-Ve3omCXT.js → DataList-2tIlQsLc.js} +95 -3
  15. package/dist/DataList-2tIlQsLc.js.map +1 -0
  16. package/dist/{DataList-Cmk08jUV.cjs → DataList-Czwmwyvp.cjs} +93 -1
  17. package/dist/DataList-Czwmwyvp.cjs.map +1 -0
  18. package/dist/{DateTimeRangePicker-ByMbLdom.js → DateTimeRangePicker-C_Lie_2P.js} +23 -2
  19. package/dist/DateTimeRangePicker-C_Lie_2P.js.map +1 -0
  20. package/dist/{DateTimeRangePicker-DGbH5WOn.cjs → DateTimeRangePicker-HmPOHwAQ.cjs} +23 -2
  21. package/dist/DateTimeRangePicker-HmPOHwAQ.cjs.map +1 -0
  22. package/dist/{FilterBar-Dk3QEuT6.js → FilterBar--4oguuVe.js} +4 -4
  23. package/dist/FilterBar--4oguuVe.js.map +1 -0
  24. package/dist/{FilterBar-gEvoWDXA.cjs → FilterBar-BUd4f7oi.cjs} +7 -7
  25. package/dist/FilterBar-BUd4f7oi.cjs.map +1 -0
  26. package/dist/GrainFill.css +2 -0
  27. package/dist/{MarkdownRenderer-BgqKfmRm.cjs → MarkdownRenderer-CS6u5drO.cjs} +2 -2
  28. package/dist/{MarkdownRenderer-BgqKfmRm.cjs.map → MarkdownRenderer-CS6u5drO.cjs.map} +1 -1
  29. package/dist/{MarkdownRenderer-DKCDXaLy.js → MarkdownRenderer-DME2xKTk.js} +2 -2
  30. package/dist/{MarkdownRenderer-DKCDXaLy.js.map → MarkdownRenderer-DME2xKTk.js.map} +1 -1
  31. package/dist/{Message-BF9cpYaw.cjs → Message-DsCNQpou.cjs} +2 -2
  32. package/dist/{Message-BF9cpYaw.cjs.map → Message-DsCNQpou.cjs.map} +1 -1
  33. package/dist/{Message-Bkf6Ro9H.js → Message-nVI6tMS3.js} +2 -2
  34. package/dist/{Message-Bkf6Ro9H.js.map → Message-nVI6tMS3.js.map} +1 -1
  35. package/dist/{MetricsCard-Dly_H3oX.cjs → MetricsCard-CEB-f2sv.cjs} +91 -109
  36. package/dist/MetricsCard-CEB-f2sv.cjs.map +1 -0
  37. package/dist/{MetricsCard-C9GWgT58.js → MetricsCard-M8awJ2B_.js} +91 -109
  38. package/dist/MetricsCard-M8awJ2B_.js.map +1 -0
  39. package/dist/{MetricsKpiCard-Uw0nyMgW.cjs → MetricsKpiCard-By_-sagx.cjs} +3 -2
  40. package/dist/{MetricsKpiCard-Uw0nyMgW.cjs.map → MetricsKpiCard-By_-sagx.cjs.map} +1 -1
  41. package/dist/{MetricsKpiCard-Idxjl-dn.js → MetricsKpiCard-OHbAElTl.js} +3 -2
  42. package/dist/{MetricsKpiCard-Idxjl-dn.js.map → MetricsKpiCard-OHbAElTl.js.map} +1 -1
  43. package/dist/{MetricsLineChart-DKzuRU2q.js → MetricsLineChart-BhHoduO0.js} +21 -39
  44. package/dist/MetricsLineChart-BhHoduO0.js.map +1 -0
  45. package/dist/{MetricsLineChart-2m4LVL1N.cjs → MetricsLineChart-CjBm4IXu.cjs} +21 -39
  46. package/dist/MetricsLineChart-CjBm4IXu.cjs.map +1 -0
  47. package/dist/{MetricsStackedBarChart-DJB4aByt.js → MetricsStackedBarChart-BRuA6MTE.js} +2 -3
  48. package/dist/MetricsStackedBarChart-BRuA6MTE.js.map +1 -0
  49. package/dist/{MetricsStackedBarChart-NATtwA_W.cjs → MetricsStackedBarChart-BdMlKv6G.cjs} +2 -3
  50. package/dist/MetricsStackedBarChart-BdMlKv6G.cjs.map +1 -0
  51. package/dist/Notice.css +2 -0
  52. package/dist/Shimmer.css +7 -0
  53. package/dist/{activity-ihrl0JtH.js → activity-CM34JyW-.js} +98 -33
  54. package/dist/activity-CM34JyW-.js.map +1 -0
  55. package/dist/{activity-QyLJcBKc.cjs → activity-DAK8tj7r.cjs} +108 -31
  56. package/dist/activity-DAK8tj7r.cjs.map +1 -0
  57. package/dist/chart-plot.css +15 -0
  58. package/dist/combobox-8kNAJFlj.cjs +309 -0
  59. package/dist/combobox-8kNAJFlj.cjs.map +1 -0
  60. package/dist/{combobox-C-E7_q4j.cjs → combobox-parts-BZVXwbG7.cjs} +7 -300
  61. package/dist/combobox-parts-BZVXwbG7.cjs.map +1 -0
  62. package/dist/{combobox-CDS2pBqz.js → combobox-parts-W7KRQUsV.js} +10 -297
  63. package/dist/combobox-parts-W7KRQUsV.js.map +1 -0
  64. package/dist/combobox-wFudhN8F.js +302 -0
  65. package/dist/combobox-wFudhN8F.js.map +1 -0
  66. package/dist/components/AgentIndicator.cjs.js +5 -0
  67. package/dist/components/AgentIndicator.d.ts +1 -0
  68. package/dist/components/AgentIndicator.es.js +1 -0
  69. package/dist/components/Arrival.cjs.js +3 -1
  70. package/dist/components/Arrival.es.js +1 -1
  71. package/dist/components/Combobox.cjs.js +24 -23
  72. package/dist/components/Combobox.es.js +2 -1
  73. package/dist/components/Comment.cjs.js +1 -1
  74. package/dist/components/Comment.es.js +1 -1
  75. package/dist/components/DataList.cjs.js +2 -2
  76. package/dist/components/DataList.es.js +2 -2
  77. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  78. package/dist/components/DateTimeRangePicker.es.js +1 -1
  79. package/dist/components/DiffStat.cjs.js +1 -1
  80. package/dist/components/DiffStat.es.js +1 -1
  81. package/dist/components/FilterBar.cjs.js +2 -2
  82. package/dist/components/FilterBar.es.js +2 -2
  83. package/dist/components/LogsDataList.cjs.js +1 -1
  84. package/dist/components/LogsDataList.es.js +1 -1
  85. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  86. package/dist/components/MarkdownRenderer.es.js +1 -1
  87. package/dist/components/Message.cjs.js +1 -1
  88. package/dist/components/Message.es.js +1 -1
  89. package/dist/components/MetricsCard.cjs.js +1 -1
  90. package/dist/components/MetricsCard.es.js +1 -1
  91. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  92. package/dist/components/MetricsKpiCard.es.js +1 -1
  93. package/dist/components/MetricsLineChart.cjs.js +1 -1
  94. package/dist/components/MetricsLineChart.es.js +1 -1
  95. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  96. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  97. package/dist/components/PropertyFilter.cjs.js +1 -1
  98. package/dist/components/PropertyFilter.es.js +1 -1
  99. package/dist/components/SavedViews.cjs.js +27 -69
  100. package/dist/components/SavedViews.cjs.js.map +1 -1
  101. package/dist/components/SavedViews.es.js +26 -68
  102. package/dist/components/SavedViews.es.js.map +1 -1
  103. package/dist/components/ai/activity.cjs.js +3 -1
  104. package/dist/components/ai/activity.es.js +1 -1
  105. package/dist/components/ai/message-reveal.cjs.js +2 -1
  106. package/dist/components/ai/message-reveal.cjs.js.map +1 -1
  107. package/dist/components/ai/message-reveal.es.js +2 -1
  108. package/dist/components/ai/message-reveal.es.js.map +1 -1
  109. package/dist/components/ai/plan.cjs.js +1 -1
  110. package/dist/components/ai/plan.es.js +1 -1
  111. package/dist/components/ai/tool-approval.cjs.js +1 -1
  112. package/dist/components/ai/tool-approval.es.js +1 -1
  113. package/dist/components/ai/tool-call.cjs.js +2 -2
  114. package/dist/components/ai/tool-call.es.js +2 -2
  115. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +6 -4
  116. package/dist/domains/chat/activity/activity-stretch-line.cjs.js.map +1 -1
  117. package/dist/domains/chat/activity/activity-stretch-line.es.js +6 -4
  118. package/dist/domains/chat/activity/activity-stretch-line.es.js.map +1 -1
  119. package/dist/domains/chat/activity/components/activity-fold.cjs.js +81 -28
  120. package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
  121. package/dist/domains/chat/activity/components/activity-fold.es.js +82 -29
  122. package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
  123. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
  124. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
  125. package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
  126. package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
  127. package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
  128. package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
  129. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  130. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  131. package/dist/domains/chat/activity/components/use-fading-edge.cjs.js +26 -0
  132. package/dist/domains/chat/activity/components/use-fading-edge.cjs.js.map +1 -0
  133. package/dist/domains/chat/activity/components/use-fading-edge.d.ts +1 -0
  134. package/dist/domains/chat/activity/components/use-fading-edge.es.js +25 -0
  135. package/dist/domains/chat/activity/components/use-fading-edge.es.js.map +1 -0
  136. package/dist/domains/chat/activity/components/use-rolling-words.cjs.js +123 -0
  137. package/dist/domains/chat/activity/components/use-rolling-words.cjs.js.map +1 -0
  138. package/dist/domains/chat/activity/components/use-rolling-words.d.ts +1 -0
  139. package/dist/domains/chat/activity/components/use-rolling-words.es.js +122 -0
  140. package/dist/domains/chat/activity/components/use-rolling-words.es.js.map +1 -0
  141. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  142. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  143. package/dist/domains/chat/activity/model/activity-words.cjs.js +16 -6
  144. package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
  145. package/dist/domains/chat/activity/model/activity-words.es.js +15 -7
  146. package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
  147. package/dist/domains/chat/activity.cjs.js +3 -0
  148. package/dist/domains/chat/activity.es.js +2 -1
  149. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  150. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  151. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
  152. package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
  153. package/dist/domains/chat/messages/message-row.cjs.js +4 -4
  154. package/dist/domains/chat/messages/message-row.es.js +4 -4
  155. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  156. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  157. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  158. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  159. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  160. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  161. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  162. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  163. package/dist/domains/chat/messages/renderers/tool-part.cjs.js +18 -0
  164. package/dist/domains/chat/messages/renderers/tool-part.cjs.js.map +1 -1
  165. package/dist/domains/chat/messages/renderers/tool-part.es.js +18 -0
  166. package/dist/domains/chat/messages/renderers/tool-part.es.js.map +1 -1
  167. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  168. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  169. package/dist/domains/chat/messages/skill-message.cjs.js +10 -7
  170. package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -1
  171. package/dist/domains/chat/messages/skill-message.es.js +10 -7
  172. package/dist/domains/chat/messages/skill-message.es.js.map +1 -1
  173. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  174. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  175. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  176. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  177. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  178. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  179. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
  180. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
  181. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +111 -0
  182. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -0
  183. package/dist/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -0
  184. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +109 -0
  185. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -0
  186. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +8 -6
  187. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
  188. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +9 -7
  189. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
  190. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -3
  191. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
  192. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -3
  193. package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
  194. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  195. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  196. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  197. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  198. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  199. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  200. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +10 -4
  201. package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
  202. package/dist/domains/chat/tools/badges/tool-badge.es.js +10 -4
  203. package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
  204. package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +51 -0
  205. package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -0
  206. package/dist/domains/chat/tools/badges/use-mcp-task-progress.d.ts +1 -0
  207. package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +49 -0
  208. package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -0
  209. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
  210. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
  211. package/dist/domains/chat/tools/tool-card-kind.cjs.js +1 -1
  212. package/dist/domains/chat/tools/tool-card-kind.es.js +1 -1
  213. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  214. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  215. package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
  216. package/dist/domains/chat/tools/tool-groups.es.js +1 -1
  217. package/dist/domains/dashboards/components/dashboard-grid.cjs.js +44 -0
  218. package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -0
  219. package/dist/domains/dashboards/components/dashboard-grid.d.ts +1 -0
  220. package/dist/domains/dashboards/components/dashboard-grid.es.js +41 -0
  221. package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -0
  222. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +72 -0
  223. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -0
  224. package/dist/domains/dashboards/components/dashboard-renderer.d.ts +1 -0
  225. package/dist/domains/dashboards/components/dashboard-renderer.es.js +71 -0
  226. package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -0
  227. package/dist/domains/dashboards/components/view-gate.cjs.js +55 -0
  228. package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -0
  229. package/dist/domains/dashboards/components/view-gate.d.ts +1 -0
  230. package/dist/domains/dashboards/components/view-gate.es.js +54 -0
  231. package/dist/domains/dashboards/components/view-gate.es.js.map +1 -0
  232. package/dist/domains/dashboards/components/widget-chrome.cjs.js +16 -0
  233. package/dist/domains/dashboards/components/widget-chrome.cjs.js.map +1 -0
  234. package/dist/domains/dashboards/components/widget-chrome.d.ts +1 -0
  235. package/dist/domains/dashboards/components/widget-chrome.es.js +15 -0
  236. package/dist/domains/dashboards/components/widget-chrome.es.js.map +1 -0
  237. package/dist/domains/dashboards/components/widget-controls.cjs.js +21 -0
  238. package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -0
  239. package/dist/domains/dashboards/components/widget-controls.d.ts +1 -0
  240. package/dist/domains/dashboards/components/widget-controls.es.js +20 -0
  241. package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -0
  242. package/dist/domains/dashboards/components/widget-error.cjs.js +18 -0
  243. package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -0
  244. package/dist/domains/dashboards/components/widget-error.d.ts +1 -0
  245. package/dist/domains/dashboards/components/widget-error.es.js +17 -0
  246. package/dist/domains/dashboards/components/widget-error.es.js.map +1 -0
  247. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +47 -0
  248. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -0
  249. package/dist/domains/dashboards/hooks/use-dashboard-requests.d.ts +1 -0
  250. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +46 -0
  251. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -0
  252. package/dist/domains/dashboards/hooks/use-scorers.cjs.js +41 -0
  253. package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +1 -0
  254. package/dist/domains/dashboards/hooks/use-scorers.d.ts +1 -0
  255. package/dist/domains/dashboards/hooks/use-scorers.es.js +40 -0
  256. package/dist/domains/dashboards/hooks/use-scorers.es.js.map +1 -0
  257. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +35 -0
  258. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -0
  259. package/dist/domains/dashboards/hooks/use-widget-views.d.ts +1 -0
  260. package/dist/domains/dashboards/hooks/use-widget-views.es.js +32 -0
  261. package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -0
  262. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +63 -0
  263. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -0
  264. package/dist/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -0
  265. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +62 -0
  266. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -0
  267. package/dist/domains/dashboards/kinds/kpis/options.cjs.js +72 -0
  268. package/dist/domains/dashboards/kinds/kpis/options.cjs.js.map +1 -0
  269. package/dist/domains/dashboards/kinds/kpis/options.d.ts +1 -0
  270. package/dist/domains/dashboards/kinds/kpis/options.es.js +69 -0
  271. package/dist/domains/dashboards/kinds/kpis/options.es.js.map +1 -0
  272. package/dist/domains/dashboards/kinds/kpis.cjs.js +17 -0
  273. package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -0
  274. package/dist/domains/dashboards/kinds/kpis.d.ts +1 -0
  275. package/dist/domains/dashboards/kinds/kpis.es.js +14 -0
  276. package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -0
  277. package/dist/domains/dashboards/kinds/scores/options.cjs.js +30 -0
  278. package/dist/domains/dashboards/kinds/scores/options.cjs.js.map +1 -0
  279. package/dist/domains/dashboards/kinds/scores/options.d.ts +1 -0
  280. package/dist/domains/dashboards/kinds/scores/options.es.js +28 -0
  281. package/dist/domains/dashboards/kinds/scores/options.es.js.map +1 -0
  282. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +91 -0
  283. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -0
  284. package/dist/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -0
  285. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +90 -0
  286. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -0
  287. package/dist/domains/dashboards/kinds/scores.cjs.js +16 -0
  288. package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -0
  289. package/dist/domains/dashboards/kinds/scores.d.ts +1 -0
  290. package/dist/domains/dashboards/kinds/scores.es.js +14 -0
  291. package/dist/domains/dashboards/kinds/scores.es.js.map +1 -0
  292. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +67 -0
  293. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -0
  294. package/dist/domains/dashboards/kinds/table/table-cells.d.ts +1 -0
  295. package/dist/domains/dashboards/kinds/table/table-cells.es.js +63 -0
  296. package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -0
  297. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +72 -0
  298. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -0
  299. package/dist/domains/dashboards/kinds/table/table-columns.d.ts +1 -0
  300. package/dist/domains/dashboards/kinds/table/table-columns.es.js +71 -0
  301. package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -0
  302. package/dist/domains/dashboards/kinds/table/table-frame.cjs.js +16 -0
  303. package/dist/domains/dashboards/kinds/table/table-frame.cjs.js.map +1 -0
  304. package/dist/domains/dashboards/kinds/table/table-frame.d.ts +1 -0
  305. package/dist/domains/dashboards/kinds/table/table-frame.es.js +15 -0
  306. package/dist/domains/dashboards/kinds/table/table-frame.es.js.map +1 -0
  307. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +55 -0
  308. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -0
  309. package/dist/domains/dashboards/kinds/table/table-tabs.d.ts +1 -0
  310. package/dist/domains/dashboards/kinds/table/table-tabs.es.js +54 -0
  311. package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -0
  312. package/dist/domains/dashboards/kinds/table/table-view.cjs.js +80 -0
  313. package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -0
  314. package/dist/domains/dashboards/kinds/table/table-view.d.ts +1 -0
  315. package/dist/domains/dashboards/kinds/table/table-view.es.js +79 -0
  316. package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -0
  317. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +30 -0
  318. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -0
  319. package/dist/domains/dashboards/kinds/table/table-widget.d.ts +1 -0
  320. package/dist/domains/dashboards/kinds/table/table-widget.es.js +29 -0
  321. package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -0
  322. package/dist/domains/dashboards/kinds/table.cjs.js +17 -0
  323. package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -0
  324. package/dist/domains/dashboards/kinds/table.d.ts +1 -0
  325. package/dist/domains/dashboards/kinds/table.es.js +14 -0
  326. package/dist/domains/dashboards/kinds/table.es.js.map +1 -0
  327. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +115 -0
  328. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -0
  329. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.d.ts +1 -0
  330. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +114 -0
  331. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -0
  332. package/dist/domains/dashboards/kinds/timeseries.cjs.js +15 -0
  333. package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -0
  334. package/dist/domains/dashboards/kinds/timeseries.d.ts +1 -0
  335. package/dist/domains/dashboards/kinds/timeseries.es.js +14 -0
  336. package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -0
  337. package/dist/domains/dashboards/kinds.cjs.js +20 -0
  338. package/dist/domains/dashboards/kinds.cjs.js.map +1 -0
  339. package/dist/domains/dashboards/kinds.d.ts +1 -0
  340. package/dist/domains/dashboards/kinds.es.js +15 -0
  341. package/dist/domains/dashboards/kinds.es.js.map +1 -0
  342. package/dist/domains/dashboards/lib/answers.cjs.js +42 -0
  343. package/dist/domains/dashboards/lib/answers.cjs.js.map +1 -0
  344. package/dist/domains/dashboards/lib/answers.d.ts +1 -0
  345. package/dist/domains/dashboards/lib/answers.es.js +37 -0
  346. package/dist/domains/dashboards/lib/answers.es.js.map +1 -0
  347. package/dist/domains/dashboards/lib/chrome.cjs.js +41 -0
  348. package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -0
  349. package/dist/domains/dashboards/lib/chrome.d.ts +1 -0
  350. package/dist/domains/dashboards/lib/chrome.es.js +37 -0
  351. package/dist/domains/dashboards/lib/chrome.es.js.map +1 -0
  352. package/dist/domains/dashboards/lib/definition.cjs.js +59 -0
  353. package/dist/domains/dashboards/lib/definition.cjs.js.map +1 -0
  354. package/dist/domains/dashboards/lib/definition.d.ts +1 -0
  355. package/dist/domains/dashboards/lib/definition.es.js +55 -0
  356. package/dist/domains/dashboards/lib/definition.es.js.map +1 -0
  357. package/dist/domains/dashboards/lib/filters.cjs.js +44 -0
  358. package/dist/domains/dashboards/lib/filters.cjs.js.map +1 -0
  359. package/dist/domains/dashboards/lib/filters.d.ts +1 -0
  360. package/dist/domains/dashboards/lib/filters.es.js +43 -0
  361. package/dist/domains/dashboards/lib/filters.es.js.map +1 -0
  362. package/dist/domains/dashboards/lib/format.cjs.js +32 -0
  363. package/dist/domains/dashboards/lib/format.cjs.js.map +1 -0
  364. package/dist/domains/dashboards/lib/format.d.ts +1 -0
  365. package/dist/domains/dashboards/lib/format.es.js +30 -0
  366. package/dist/domains/dashboards/lib/format.es.js.map +1 -0
  367. package/dist/domains/dashboards/lib/prepare-widget.cjs.js +77 -0
  368. package/dist/domains/dashboards/lib/prepare-widget.cjs.js.map +1 -0
  369. package/dist/domains/dashboards/lib/prepare-widget.d.ts +1 -0
  370. package/dist/domains/dashboards/lib/prepare-widget.es.js +75 -0
  371. package/dist/domains/dashboards/lib/prepare-widget.es.js.map +1 -0
  372. package/dist/domains/dashboards/lib/requests.cjs.js +279 -0
  373. package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -0
  374. package/dist/domains/dashboards/lib/requests.d.ts +1 -0
  375. package/dist/domains/dashboards/lib/requests.es.js +273 -0
  376. package/dist/domains/dashboards/lib/requests.es.js.map +1 -0
  377. package/dist/domains/dashboards/lib/scores.cjs.js +58 -0
  378. package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -0
  379. package/dist/domains/dashboards/lib/scores.d.ts +1 -0
  380. package/dist/domains/dashboards/lib/scores.es.js +53 -0
  381. package/dist/domains/dashboards/lib/scores.es.js.map +1 -0
  382. package/dist/domains/dashboards/lib/table.cjs.js +408 -0
  383. package/dist/domains/dashboards/lib/table.cjs.js.map +1 -0
  384. package/dist/domains/dashboards/lib/table.d.ts +1 -0
  385. package/dist/domains/dashboards/lib/table.es.js +388 -0
  386. package/dist/domains/dashboards/lib/table.es.js.map +1 -0
  387. package/dist/domains/dashboards/lib/timeseries.cjs.js +192 -0
  388. package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -0
  389. package/dist/domains/dashboards/lib/timeseries.d.ts +1 -0
  390. package/dist/domains/dashboards/lib/timeseries.es.js +188 -0
  391. package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -0
  392. package/dist/domains/dashboards/lib/values.cjs.js +155 -0
  393. package/dist/domains/dashboards/lib/values.cjs.js.map +1 -0
  394. package/dist/domains/dashboards/lib/values.d.ts +1 -0
  395. package/dist/domains/dashboards/lib/values.es.js +142 -0
  396. package/dist/domains/dashboards/lib/values.es.js.map +1 -0
  397. package/dist/domains/dashboards/metrics-dashboard.cjs.js +737 -0
  398. package/dist/domains/dashboards/metrics-dashboard.cjs.js.map +1 -0
  399. package/dist/domains/dashboards/metrics-dashboard.d.ts +1 -0
  400. package/dist/domains/dashboards/metrics-dashboard.es.js +736 -0
  401. package/dist/domains/dashboards/metrics-dashboard.es.js.map +1 -0
  402. package/dist/domains/dashboards/widget-kind.cjs.js +7 -0
  403. package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -0
  404. package/dist/domains/dashboards/widget-kind.d.ts +1 -0
  405. package/dist/domains/dashboards/widget-kind.es.js +6 -0
  406. package/dist/domains/dashboards/widget-kind.es.js.map +1 -0
  407. package/dist/domains/dashboards.cjs.js +39 -0
  408. package/dist/domains/dashboards.d.ts +1 -0
  409. package/dist/domains/dashboards.es.js +18 -0
  410. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  411. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  412. package/dist/domains/logs/components/logs-saved-views.cjs.js +14 -0
  413. package/dist/domains/logs/components/logs-saved-views.cjs.js.map +1 -0
  414. package/dist/domains/logs/components/logs-saved-views.d.ts +1 -0
  415. package/dist/domains/logs/components/logs-saved-views.es.js +13 -0
  416. package/dist/domains/logs/components/logs-saved-views.es.js.map +1 -0
  417. package/dist/domains/logs/components.cjs.js +2 -0
  418. package/dist/domains/logs/components.es.js +2 -1
  419. package/dist/domains/logs/hooks/use-logs-url-state.cjs.js +1 -1
  420. package/dist/domains/logs/hooks/use-logs-url-state.cjs.js.map +1 -1
  421. package/dist/domains/logs/hooks/use-logs-url-state.es.js +2 -2
  422. package/dist/domains/logs/hooks/use-logs-url-state.es.js.map +1 -1
  423. package/dist/domains/logs/log-filters.cjs.js +11 -0
  424. package/dist/domains/logs/log-filters.cjs.js.map +1 -1
  425. package/dist/domains/logs/log-filters.es.js +9 -1
  426. package/dist/domains/logs/log-filters.es.js.map +1 -1
  427. package/dist/domains/logs.cjs.js +6 -1
  428. package/dist/domains/logs.es.js +3 -2
  429. package/dist/domains/metrics/components/agent-runs-card.cjs.js +38 -15
  430. package/dist/domains/metrics/components/agent-runs-card.cjs.js.map +1 -1
  431. package/dist/domains/metrics/components/agent-runs-card.es.js +38 -15
  432. package/dist/domains/metrics/components/agent-runs-card.es.js.map +1 -1
  433. package/dist/domains/metrics/components/breakdown/breakdown-change-cell.cjs.js +4 -11
  434. package/dist/domains/metrics/components/breakdown/breakdown-change-cell.cjs.js.map +1 -1
  435. package/dist/domains/metrics/components/breakdown/breakdown-change-cell.es.js +4 -11
  436. package/dist/domains/metrics/components/breakdown/breakdown-change-cell.es.js.map +1 -1
  437. package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.cjs.js +2 -4
  438. package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.cjs.js.map +1 -1
  439. package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.es.js +2 -4
  440. package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.es.js.map +1 -1
  441. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +1 -1
  442. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +1 -1
  443. package/dist/domains/metrics/components/breakdown/breakdown-frame.cjs.js +16 -27
  444. package/dist/domains/metrics/components/breakdown/breakdown-frame.cjs.js.map +1 -1
  445. package/dist/domains/metrics/components/breakdown/breakdown-frame.es.js +16 -27
  446. package/dist/domains/metrics/components/breakdown/breakdown-frame.es.js.map +1 -1
  447. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +1 -1
  448. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +1 -1
  449. package/dist/domains/metrics/components/breakdown/breakdown-name.cjs.js +22 -0
  450. package/dist/domains/metrics/components/breakdown/breakdown-name.cjs.js.map +1 -0
  451. package/dist/domains/metrics/components/breakdown/breakdown-name.d.ts +1 -0
  452. package/dist/domains/metrics/components/breakdown/breakdown-name.es.js +21 -0
  453. package/dist/domains/metrics/components/breakdown/breakdown-name.es.js.map +1 -0
  454. package/dist/domains/metrics/components/breakdown/breakdown-not-priced.cjs.js +13 -0
  455. package/dist/domains/metrics/components/breakdown/breakdown-not-priced.cjs.js.map +1 -0
  456. package/dist/domains/metrics/components/breakdown/breakdown-not-priced.d.ts +1 -0
  457. package/dist/domains/metrics/components/breakdown/breakdown-not-priced.es.js +12 -0
  458. package/dist/domains/metrics/components/breakdown/breakdown-not-priced.es.js.map +1 -0
  459. package/dist/domains/metrics/components/breakdown/breakdown-projects-first.cjs.js +1 -1
  460. package/dist/domains/metrics/components/breakdown/breakdown-projects-first.es.js +1 -1
  461. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +26 -13
  462. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js.map +1 -1
  463. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +25 -14
  464. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js.map +1 -1
  465. package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +10 -13
  466. package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js.map +1 -1
  467. package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +11 -14
  468. package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js.map +1 -1
  469. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
  470. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
  471. package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +5 -5
  472. package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +5 -5
  473. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +1 -1
  474. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +1 -1
  475. package/dist/domains/metrics/components/breakdown/breakdown-trend-text.cjs.js +25 -0
  476. package/dist/domains/metrics/components/breakdown/breakdown-trend-text.cjs.js.map +1 -0
  477. package/dist/domains/metrics/components/breakdown/breakdown-trend-text.d.ts +1 -0
  478. package/dist/domains/metrics/components/breakdown/breakdown-trend-text.es.js +24 -0
  479. package/dist/domains/metrics/components/breakdown/breakdown-trend-text.es.js.map +1 -0
  480. package/dist/domains/metrics/components/breakdown-card.cjs.js +3 -3
  481. package/dist/domains/metrics/components/breakdown-card.es.js +3 -3
  482. package/dist/domains/metrics/components/card-action-buttons.cjs.js +43 -3
  483. package/dist/domains/metrics/components/card-action-buttons.cjs.js.map +1 -1
  484. package/dist/domains/metrics/components/card-action-buttons.es.js +42 -5
  485. package/dist/domains/metrics/components/card-action-buttons.es.js.map +1 -1
  486. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  487. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  488. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  489. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  490. package/dist/domains/metrics/components/chart-card.cjs.js +39 -38
  491. package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
  492. package/dist/domains/metrics/components/chart-card.es.js +39 -38
  493. package/dist/domains/metrics/components/chart-card.es.js.map +1 -1
  494. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  495. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  496. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +15 -16
  497. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js.map +1 -1
  498. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +16 -16
  499. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
  500. package/dist/domains/metrics/components/distinct-ids-card.cjs.js +0 -1
  501. package/dist/domains/metrics/components/distinct-ids-card.cjs.js.map +1 -1
  502. package/dist/domains/metrics/components/distinct-ids-card.es.js +1 -2
  503. package/dist/domains/metrics/components/distinct-ids-card.es.js.map +1 -1
  504. package/dist/domains/metrics/components/failure-rate-card.cjs.js +11 -14
  505. package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
  506. package/dist/domains/metrics/components/failure-rate-card.es.js +11 -14
  507. package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
  508. package/dist/domains/metrics/components/kpi-card.cjs.js +8 -5
  509. package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
  510. package/dist/domains/metrics/components/kpi-card.es.js +8 -5
  511. package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
  512. package/dist/domains/metrics/components/latency-card.cjs.js +33 -30
  513. package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
  514. package/dist/domains/metrics/components/latency-card.es.js +34 -31
  515. package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
  516. package/dist/domains/metrics/components/metrics-grid/metrics-grid.cjs.js +5 -2
  517. package/dist/domains/metrics/components/metrics-grid/metrics-grid.cjs.js.map +1 -1
  518. package/dist/domains/metrics/components/metrics-grid/metrics-grid.es.js +5 -2
  519. package/dist/domains/metrics/components/metrics-grid/metrics-grid.es.js.map +1 -1
  520. package/dist/domains/metrics/components/scores-card.cjs.js +7 -17
  521. package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
  522. package/dist/domains/metrics/components/scores-card.es.js +7 -17
  523. package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
  524. package/dist/domains/metrics/components/token-usage-card.cjs.js +29 -26
  525. package/dist/domains/metrics/components/token-usage-card.cjs.js.map +1 -1
  526. package/dist/domains/metrics/components/token-usage-card.es.js +30 -27
  527. package/dist/domains/metrics/components/token-usage-card.es.js.map +1 -1
  528. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +3 -2
  529. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js.map +1 -1
  530. package/dist/domains/metrics/components/trace-aggregate-card.es.js +3 -2
  531. package/dist/domains/metrics/components/trace-aggregate-card.es.js.map +1 -1
  532. package/dist/domains/metrics/components/trace-volume-card.cjs.js +31 -35
  533. package/dist/domains/metrics/components/trace-volume-card.cjs.js.map +1 -1
  534. package/dist/domains/metrics/components/trace-volume-card.es.js +31 -35
  535. package/dist/domains/metrics/components/trace-volume-card.es.js.map +1 -1
  536. package/dist/domains/metrics/components/usage-card.cjs.js +29 -28
  537. package/dist/domains/metrics/components/usage-card.cjs.js.map +1 -1
  538. package/dist/domains/metrics/components/usage-card.es.js +30 -29
  539. package/dist/domains/metrics/components/usage-card.es.js.map +1 -1
  540. package/dist/domains/metrics/components.cjs.js +6 -5
  541. package/dist/domains/metrics/components.es.js +4 -5
  542. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  543. package/dist/domains/metrics/drilldown.es.js +1 -1
  544. package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
  545. package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
  546. package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
  547. package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
  548. package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
  549. package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
  550. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +1 -1
  551. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +1 -1
  552. package/dist/domains/metrics/hooks.cjs.js +1 -1
  553. package/dist/domains/metrics/hooks.es.js +1 -1
  554. package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
  555. package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
  556. package/dist/domains/metrics/lib.cjs.js +2 -2
  557. package/dist/domains/metrics/lib.es.js +2 -2
  558. package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
  559. package/dist/domains/metrics/metrics-filters.es.js +1 -1
  560. package/dist/domains/metrics.cjs.js +14 -13
  561. package/dist/domains/metrics.es.js +12 -13
  562. package/dist/domains/observability/components/observability-header-slot.cjs.js +13 -0
  563. package/dist/domains/observability/components/observability-header-slot.cjs.js.map +1 -0
  564. package/dist/domains/observability/components/observability-header-slot.d.ts +1 -0
  565. package/dist/domains/observability/components/observability-header-slot.es.js +11 -0
  566. package/dist/domains/observability/components/observability-header-slot.es.js.map +1 -0
  567. package/dist/domains/observability/components/observability-histogram.cjs.js +6 -2
  568. package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
  569. package/dist/domains/observability/components/observability-histogram.es.js +6 -2
  570. package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
  571. package/dist/domains/observability/components/observability-page-layout.cjs.js +19 -5
  572. package/dist/domains/observability/components/observability-page-layout.cjs.js.map +1 -1
  573. package/dist/domains/observability/components/observability-page-layout.es.js +20 -6
  574. package/dist/domains/observability/components/observability-page-layout.es.js.map +1 -1
  575. package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +75 -18
  576. package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js.map +1 -1
  577. package/dist/domains/observability/hooks/use-observability-list-filters.es.js +76 -19
  578. package/dist/domains/observability/hooks/use-observability-list-filters.es.js.map +1 -1
  579. package/dist/domains/observability/lib/zoom-memory.cjs.js +24 -0
  580. package/dist/domains/observability/lib/zoom-memory.cjs.js.map +1 -0
  581. package/dist/domains/observability/lib/zoom-memory.d.ts +1 -0
  582. package/dist/domains/observability/lib/zoom-memory.es.js +22 -0
  583. package/dist/domains/observability/lib/zoom-memory.es.js.map +1 -0
  584. package/dist/domains/observability/observability-list-url-state.cjs.js +122 -0
  585. package/dist/domains/observability/observability-list-url-state.cjs.js.map +1 -0
  586. package/dist/domains/observability/observability-list-url-state.d.ts +1 -0
  587. package/dist/domains/observability/observability-list-url-state.es.js +111 -0
  588. package/dist/domains/observability/observability-list-url-state.es.js.map +1 -0
  589. package/dist/domains/observability/saved-view-state.cjs.js +292 -0
  590. package/dist/domains/observability/saved-view-state.cjs.js.map +1 -0
  591. package/dist/domains/observability/saved-view-state.d.ts +1 -0
  592. package/dist/domains/observability/saved-view-state.es.js +286 -0
  593. package/dist/domains/observability/saved-view-state.es.js.map +1 -0
  594. package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +3 -0
  595. package/dist/domains/observability/saved-views/observability-saved-views.d.ts +1 -0
  596. package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -0
  597. package/dist/domains/observability/saved-views/saved-views-provider.cjs.js +18 -0
  598. package/dist/domains/observability/saved-views/saved-views-provider.cjs.js.map +1 -0
  599. package/dist/domains/observability/saved-views/saved-views-provider.d.ts +1 -0
  600. package/dist/domains/observability/saved-views/saved-views-provider.es.js +17 -0
  601. package/dist/domains/observability/saved-views/saved-views-provider.es.js.map +1 -0
  602. package/dist/domains/observability/saved-views/saved-views-source.cjs.js +23 -0
  603. package/dist/domains/observability/saved-views/saved-views-source.cjs.js.map +1 -0
  604. package/dist/domains/observability/saved-views/saved-views-source.d.ts +1 -0
  605. package/dist/domains/observability/saved-views/saved-views-source.es.js +19 -0
  606. package/dist/domains/observability/saved-views/saved-views-source.es.js.map +1 -0
  607. package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +235 -0
  608. package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js.map +1 -0
  609. package/dist/domains/observability/saved-views/use-hosted-saved-views.d.ts +1 -0
  610. package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +232 -0
  611. package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js.map +1 -0
  612. package/dist/domains/observability/saved-views.cjs.js +7 -0
  613. package/dist/domains/observability/saved-views.d.ts +1 -0
  614. package/dist/domains/observability/saved-views.es.js +4 -0
  615. package/dist/domains/observability.cjs.js +6 -0
  616. package/dist/domains/observability.es.js +4 -1
  617. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  618. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  619. package/dist/domains/scores/components/trace-scores-list.cjs.js +1 -1
  620. package/dist/domains/scores/components/trace-scores-list.es.js +1 -1
  621. package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
  622. package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
  623. package/dist/domains/skills/skill-simple-form.cjs.js +1 -1
  624. package/dist/domains/skills/skill-simple-form.es.js +1 -1
  625. package/dist/domains/spans/components/spans-explorer-body.cjs.js +64 -18
  626. package/dist/domains/spans/components/spans-explorer-body.cjs.js.map +1 -1
  627. package/dist/domains/spans/components/spans-explorer-body.es.js +64 -18
  628. package/dist/domains/spans/components/spans-explorer-body.es.js.map +1 -1
  629. package/dist/domains/spans/components/spans-filter-bar.cjs.js +6 -5
  630. package/dist/domains/spans/components/spans-filter-bar.cjs.js.map +1 -1
  631. package/dist/domains/spans/components/spans-filter-bar.es.js +6 -5
  632. package/dist/domains/spans/components/spans-filter-bar.es.js.map +1 -1
  633. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +15 -3
  634. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js.map +1 -1
  635. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +15 -3
  636. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js.map +1 -1
  637. package/dist/domains/spans/span-filters.cjs.js +53 -14
  638. package/dist/domains/spans/span-filters.cjs.js.map +1 -1
  639. package/dist/domains/spans/span-filters.es.js +52 -15
  640. package/dist/domains/spans/span-filters.es.js.map +1 -1
  641. package/dist/domains/spans/span-list-row.cjs.js +6 -1
  642. package/dist/domains/spans/span-list-row.cjs.js.map +1 -1
  643. package/dist/domains/spans/span-list-row.es.js +6 -1
  644. package/dist/domains/spans/span-list-row.es.js.map +1 -1
  645. package/dist/domains/threads/components/threads-explorer-body.cjs.js +45 -12
  646. package/dist/domains/threads/components/threads-explorer-body.cjs.js.map +1 -1
  647. package/dist/domains/threads/components/threads-explorer-body.es.js +46 -12
  648. package/dist/domains/threads/components/threads-explorer-body.es.js.map +1 -1
  649. package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
  650. package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
  651. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +14 -3
  652. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js.map +1 -1
  653. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +14 -3
  654. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js.map +1 -1
  655. package/dist/domains/threads/thread-filters.cjs.js +26 -13
  656. package/dist/domains/threads/thread-filters.cjs.js.map +1 -1
  657. package/dist/domains/threads/thread-filters.es.js +26 -13
  658. package/dist/domains/threads/thread-filters.es.js.map +1 -1
  659. package/dist/domains/threads/thread-list-row.cjs.js +2 -0
  660. package/dist/domains/threads/thread-list-row.cjs.js.map +1 -1
  661. package/dist/domains/threads/thread-list-row.es.js +2 -0
  662. package/dist/domains/threads/thread-list-row.es.js.map +1 -1
  663. package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +24 -19
  664. package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js.map +1 -1
  665. package/dist/domains/traces/components/columns-menu/columns-menu.es.js +25 -20
  666. package/dist/domains/traces/components/columns-menu/columns-menu.es.js.map +1 -1
  667. package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
  668. package/dist/domains/traces/components/feedback-thread.es.js +1 -1
  669. package/dist/domains/traces/components/span-data-panel-view.cjs.js +12 -2
  670. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  671. package/dist/domains/traces/components/span-data-panel-view.es.js +12 -2
  672. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  673. package/dist/domains/traces/components/span-outcome.utils.cjs.js +1 -1
  674. package/dist/domains/traces/components/span-outcome.utils.es.js +1 -1
  675. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  676. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  677. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  678. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  679. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  680. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  681. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
  682. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
  683. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  684. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  685. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  686. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  687. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  688. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  689. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +2 -2
  690. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +2 -2
  691. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
  692. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
  693. package/dist/domains/traces/components/span-prompt-changes.cjs.js +1 -1
  694. package/dist/domains/traces/components/span-prompt-changes.es.js +1 -1
  695. package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -1
  696. package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
  697. package/dist/domains/traces/components/trace-columns-menu.es.js +2 -1
  698. package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
  699. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +9 -2
  700. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  701. package/dist/domains/traces/components/trace-data-panel-view.es.js +9 -2
  702. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  703. package/dist/domains/traces/components/trace-span-panel.cjs.js +2 -1
  704. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  705. package/dist/domains/traces/components/trace-span-panel.es.js +2 -1
  706. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  707. package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +120 -0
  708. package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js.map +1 -0
  709. package/dist/domains/traces/components/trace-span-timeline-markers.d.ts +1 -0
  710. package/dist/domains/traces/components/trace-span-timeline-markers.es.js +119 -0
  711. package/dist/domains/traces/components/trace-span-timeline-markers.es.js.map +1 -0
  712. package/dist/domains/traces/components/trace-span-timeline.cjs.js +8 -5
  713. package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
  714. package/dist/domains/traces/components/trace-span-timeline.es.js +8 -5
  715. package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
  716. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +5 -5
  717. package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
  718. package/dist/domains/traces/components/trace-time-range-chip.es.js +5 -5
  719. package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
  720. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +15 -11
  721. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js.map +1 -1
  722. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +15 -12
  723. package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js.map +1 -1
  724. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js +4 -3
  725. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
  726. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js +4 -3
  727. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
  728. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +5 -4
  729. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -1
  730. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +5 -4
  731. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -1
  732. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +13 -5
  733. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js.map +1 -1
  734. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +13 -5
  735. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js.map +1 -1
  736. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +5 -2
  737. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js.map +1 -1
  738. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +5 -2
  739. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js.map +1 -1
  740. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +7 -11
  741. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js.map +1 -1
  742. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +7 -11
  743. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js.map +1 -1
  744. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +3 -1
  745. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
  746. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +3 -1
  747. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
  748. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +51 -5
  749. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
  750. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +51 -5
  751. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
  752. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +20 -0
  753. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js.map +1 -0
  754. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.d.ts +1 -0
  755. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +19 -0
  756. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js.map +1 -0
  757. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +10 -4
  758. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -1
  759. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +10 -4
  760. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js.map +1 -1
  761. package/dist/domains/traces/components/traces-explorer.cjs.js +4 -1
  762. package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
  763. package/dist/domains/traces/components/traces-explorer.es.js +5 -3
  764. package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
  765. package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +5 -1
  766. package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -1
  767. package/dist/domains/traces/components/traces-list-view-adapter.es.js +5 -1
  768. package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -1
  769. package/dist/domains/traces/components/traces-list-view.cjs.js +53 -18
  770. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  771. package/dist/domains/traces/components/traces-list-view.es.js +53 -18
  772. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  773. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
  774. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
  775. package/dist/domains/traces/trace-filters.cjs.js +5 -1
  776. package/dist/domains/traces/trace-filters.es.js +1 -1
  777. package/dist/domains/traces/trace-list-columns.cjs.js +48 -9
  778. package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
  779. package/dist/domains/traces/trace-list-columns.es.js +48 -9
  780. package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
  781. package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
  782. package/dist/domains/traces/trace-query-filters.es.js +1 -1
  783. package/dist/domains/traces/utils/timeline-markers.cjs.js +34 -0
  784. package/dist/domains/traces/utils/timeline-markers.cjs.js.map +1 -0
  785. package/dist/domains/traces/utils/timeline-markers.d.ts +1 -0
  786. package/dist/domains/traces/utils/timeline-markers.es.js +33 -0
  787. package/dist/domains/traces/utils/timeline-markers.es.js.map +1 -0
  788. package/dist/domains/traces.cjs.js +5 -1
  789. package/dist/domains/traces.es.js +2 -2
  790. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  791. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  792. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +1 -1
  793. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +1 -1
  794. package/dist/domains/workflows/workflow/workflow-graph.cjs.js +1 -1
  795. package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
  796. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
  797. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
  798. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
  799. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
  800. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -1
  801. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -1
  802. package/dist/{filter-bar-chip-B3pgpngW.js → filter-bar-chip-7O02P9Vk.js} +27 -9
  803. package/dist/filter-bar-chip-7O02P9Vk.js.map +1 -0
  804. package/dist/{filter-bar-chip-CyTAmjt6.cjs → filter-bar-chip-BUyMf8XQ.cjs} +40 -22
  805. package/dist/filter-bar-chip-BUyMf8XQ.cjs.map +1 -0
  806. package/dist/layout/tabbed-container.cjs.js +1 -1
  807. package/dist/layout/tabbed-container.es.js +1 -1
  808. package/dist/lib/form/json-schema-to-zod-runtime.cjs.js +4 -4
  809. package/dist/lib/form/json-schema-to-zod-runtime.cjs.js.map +1 -1
  810. package/dist/lib/form/json-schema-to-zod-runtime.es.js +4 -4
  811. package/dist/lib/form/json-schema-to-zod-runtime.es.js.map +1 -1
  812. package/dist/lib/form/zod-provider.cjs.js +5 -1
  813. package/dist/lib/form/zod-provider.cjs.js.map +1 -1
  814. package/dist/lib/form/zod-provider.es.js +5 -1
  815. package/dist/lib/form/zod-provider.es.js.map +1 -1
  816. package/dist/observability-saved-views-Bo5kLN20.js +297 -0
  817. package/dist/observability-saved-views-Bo5kLN20.js.map +1 -0
  818. package/dist/observability-saved-views-CwCii7hh.cjs +302 -0
  819. package/dist/observability-saved-views-CwCii7hh.cjs.map +1 -0
  820. package/dist/primitives/chart-axes.cjs.js +44 -0
  821. package/dist/primitives/chart-axes.cjs.js.map +1 -1
  822. package/dist/primitives/chart-axes.es.js +43 -1
  823. package/dist/primitives/chart-axes.es.js.map +1 -1
  824. package/dist/primitives/chart-frame.cjs.js +5 -3
  825. package/dist/primitives/chart-frame.cjs.js.map +1 -1
  826. package/dist/primitives/chart-frame.es.js +6 -4
  827. package/dist/primitives/chart-frame.es.js.map +1 -1
  828. package/dist/primitives/chart-time-tick.cjs.js +15 -11
  829. package/dist/primitives/chart-time-tick.cjs.js.map +1 -1
  830. package/dist/primitives/chart-time-tick.es.js +16 -12
  831. package/dist/primitives/chart-time-tick.es.js.map +1 -1
  832. package/dist/saved-view-schema-DRJYELfK.cjs +71 -0
  833. package/dist/saved-view-schema-DRJYELfK.cjs.map +1 -0
  834. package/dist/saved-view-schema-eJXlRRel.js +54 -0
  835. package/dist/saved-view-schema-eJXlRRel.js.map +1 -0
  836. package/dist/{span-payload-primitives-D3OO0u6u.cjs → span-payload-primitives-B10Xxmx7.cjs} +4 -4
  837. package/dist/{span-payload-primitives-D3OO0u6u.cjs.map → span-payload-primitives-B10Xxmx7.cjs.map} +1 -1
  838. package/dist/{span-payload-primitives-DTV7eUY-.js → span-payload-primitives-Dyhbqaa7.js} +4 -4
  839. package/dist/{span-payload-primitives-DTV7eUY-.js.map → span-payload-primitives-Dyhbqaa7.js.map} +1 -1
  840. package/dist/src/domains/chat/activity/activity-stretch-line.d.ts +4 -2
  841. package/dist/src/domains/chat/activity/components/activity-fold.d.ts +5 -4
  842. package/dist/src/domains/chat/activity/components/use-fading-edge.d.ts +6 -0
  843. package/dist/src/domains/chat/activity/components/use-rolling-words.d.ts +7 -0
  844. package/dist/src/domains/chat/activity/index.d.ts +2 -1
  845. package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -0
  846. package/dist/src/domains/chat/activity/model/activity-words.d.ts +3 -0
  847. package/dist/src/domains/chat/messages/renderers/tool-part.d.ts +4 -0
  848. package/dist/src/domains/chat/messages/skill-message.d.ts +3 -1
  849. package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +14 -0
  850. package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +5 -1
  851. package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +27 -0
  852. package/dist/src/domains/chat/tools/tool-card.d.ts +5 -1
  853. package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +18 -0
  854. package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +19 -0
  855. package/dist/src/domains/dashboards/components/view-gate.d.ts +30 -0
  856. package/dist/src/domains/dashboards/components/widget-chrome.d.ts +7 -0
  857. package/dist/src/domains/dashboards/components/widget-controls.d.ts +8 -0
  858. package/dist/src/domains/dashboards/components/widget-error.d.ts +6 -0
  859. package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +10 -0
  860. package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +66 -0
  861. package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +18 -0
  862. package/dist/src/domains/dashboards/index.d.ts +19 -0
  863. package/dist/src/domains/dashboards/kinds/index.d.ts +7 -0
  864. package/dist/src/domains/dashboards/kinds/kpis/index.d.ts +13 -0
  865. package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +3 -0
  866. package/dist/src/domains/dashboards/kinds/kpis/options.d.ts +35 -0
  867. package/dist/src/domains/dashboards/kinds/scores/index.d.ts +8 -0
  868. package/dist/src/domains/dashboards/kinds/scores/options.d.ts +13 -0
  869. package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +3 -0
  870. package/dist/src/domains/dashboards/kinds/table/index.d.ts +23 -0
  871. package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +26 -0
  872. package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +7 -0
  873. package/dist/src/domains/dashboards/kinds/table/table-frame.d.ts +13 -0
  874. package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +10 -0
  875. package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +5 -0
  876. package/dist/src/domains/dashboards/kinds/table/table-widget.d.ts +7 -0
  877. package/dist/src/domains/dashboards/kinds/timeseries/index.d.ts +30 -0
  878. package/dist/src/domains/dashboards/kinds/timeseries/timeseries-widget.d.ts +5 -0
  879. package/dist/src/domains/dashboards/lib/answers.d.ts +43 -0
  880. package/dist/src/domains/dashboards/lib/chrome.d.ts +14 -0
  881. package/dist/src/domains/dashboards/lib/definition.d.ts +27 -0
  882. package/dist/src/domains/dashboards/lib/filters.d.ts +6 -0
  883. package/dist/src/domains/dashboards/lib/format.d.ts +7 -0
  884. package/dist/src/domains/dashboards/lib/prepare-widget.d.ts +26 -0
  885. package/dist/src/domains/dashboards/lib/requests.d.ts +95 -0
  886. package/dist/src/domains/dashboards/lib/scores.d.ts +35 -0
  887. package/dist/src/domains/dashboards/lib/table.d.ts +188 -0
  888. package/dist/src/domains/dashboards/lib/timeseries.d.ts +119 -0
  889. package/dist/src/domains/dashboards/lib/values.d.ts +86 -0
  890. package/dist/src/domains/dashboards/metrics-dashboard.d.ts +7 -0
  891. package/dist/src/domains/dashboards/widget-kind.d.ts +31 -0
  892. package/dist/src/domains/logs/components/index.d.ts +1 -0
  893. package/dist/src/domains/logs/components/logs-saved-views.d.ts +4 -0
  894. package/dist/src/domains/logs/log-filters.d.ts +8 -0
  895. package/dist/src/domains/metrics/components/agent-runs-card.d.ts +10 -3
  896. package/dist/src/domains/metrics/components/breakdown/breakdown-name.d.ts +13 -0
  897. package/dist/src/domains/metrics/components/breakdown/breakdown-not-priced.d.ts +2 -0
  898. package/dist/src/domains/metrics/components/breakdown/breakdown-row-mark.d.ts +17 -4
  899. package/dist/src/domains/metrics/components/breakdown/breakdown-trend-text.d.ts +9 -0
  900. package/dist/src/domains/metrics/components/card-action-buttons.d.ts +9 -0
  901. package/dist/src/domains/metrics/components/chart-card.d.ts +33 -21
  902. package/dist/src/domains/metrics/components/distinct-ids/distinct-ids-chart.d.ts +0 -1
  903. package/dist/src/domains/metrics/components/failure-rate-card.d.ts +5 -2
  904. package/dist/src/domains/metrics/components/index.d.ts +1 -2
  905. package/dist/src/domains/metrics/components/metrics-grid/metrics-grid.d.ts +4 -1
  906. package/dist/src/domains/metrics/components/trace-aggregate-card.d.ts +1 -1
  907. package/dist/src/domains/observability/components/observability-header-slot.d.ts +6 -0
  908. package/dist/src/domains/observability/components/observability-histogram.d.ts +1 -1
  909. package/dist/src/domains/observability/hooks/use-observability-list-filters.d.ts +21 -5
  910. package/dist/src/domains/observability/index.d.ts +2 -0
  911. package/dist/src/domains/observability/lib/zoom-memory.d.ts +19 -0
  912. package/dist/src/domains/observability/observability-list-url-state.d.ts +39 -0
  913. package/dist/src/domains/observability/saved-view-state.d.ts +46 -0
  914. package/dist/src/domains/observability/saved-views/index.d.ts +7 -0
  915. package/dist/src/domains/observability/saved-views/observability-saved-views.d.ts +22 -0
  916. package/dist/src/domains/observability/saved-views/saved-views-provider.d.ts +15 -0
  917. package/dist/src/domains/observability/saved-views/saved-views-source.d.ts +41 -0
  918. package/dist/src/domains/observability/saved-views/use-hosted-saved-views.d.ts +34 -0
  919. package/dist/src/domains/spans/components/spans-explorer-body.d.ts +4 -1
  920. package/dist/src/domains/spans/components/spans-filter-bar.d.ts +3 -1
  921. package/dist/src/domains/spans/hooks/use-spans-filter-bar.d.ts +1 -1
  922. package/dist/src/domains/spans/hooks/use-spans-list-source.d.ts +3 -0
  923. package/dist/src/domains/spans/span-filters.d.ts +16 -5
  924. package/dist/src/domains/threads/components/threads-explorer-body.d.ts +4 -1
  925. package/dist/src/domains/threads/thread-filters.d.ts +6 -5
  926. package/dist/src/domains/traces/components/columns-menu/columns-menu.d.ts +3 -3
  927. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +7 -1
  928. package/dist/src/domains/traces/components/trace-span-panel.d.ts +2 -1
  929. package/dist/src/domains/traces/components/trace-span-timeline-markers.d.ts +5 -0
  930. package/dist/src/domains/traces/components/trace-span-timeline.d.ts +6 -1
  931. package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +3 -1
  932. package/dist/src/domains/traces/components/traces-explorer/index.d.ts +4 -1
  933. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-actions.d.ts +5 -5
  934. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +11 -1
  935. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-saved-views.d.ts +7 -0
  936. package/dist/src/domains/traces/components/traces-list-view.d.ts +20 -7
  937. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +5 -0
  938. package/dist/src/domains/traces/trace-filters.d.ts +27 -3
  939. package/dist/src/domains/traces/trace-list-columns.d.ts +16 -6
  940. package/dist/src/domains/traces/utils/timeline-markers.d.ts +25 -0
  941. package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +2 -0
  942. package/dist/src/domains/workflows/workflow/input/processor-input.d.ts +5 -535
  943. package/dist/src/domains/workflows/workflow/use-workflow-trigger.d.ts +1 -1
  944. package/dist/src/ds/components/AgentIndicator/agent-glyph.d.ts +4 -0
  945. package/dist/src/ds/components/AgentIndicator/agent-indicator.d.ts +8 -0
  946. package/dist/src/ds/components/AgentIndicator/animate.d.ts +5 -0
  947. package/dist/src/ds/components/AgentIndicator/index.d.ts +4 -0
  948. package/dist/src/ds/components/AgentIndicator/paint.d.ts +21 -0
  949. package/dist/src/ds/components/AgentIndicator/poses.d.ts +7 -0
  950. package/dist/src/ds/components/AgentIndicator/shapes.d.ts +41 -0
  951. package/dist/src/ds/components/Arrival/arrival.d.ts +11 -0
  952. package/dist/src/ds/components/Arrival/index.d.ts +1 -1
  953. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +12 -0
  954. package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +3 -1
  955. package/dist/src/ds/components/FilterBar/types.d.ts +2 -0
  956. package/dist/src/ds/components/MetricsCard/index.d.ts +1 -1
  957. package/dist/src/ds/components/MetricsCard/metrics-card-actions.d.ts +2 -1
  958. package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +13 -0
  959. package/dist/src/ds/components/MetricsCard/metrics-card-title-menu.d.ts +2 -0
  960. package/dist/src/ds/components/MetricsCard/metrics-card-title.d.ts +1 -3
  961. package/dist/src/ds/components/MetricsCard/metrics-card-toolbar.d.ts +3 -3
  962. package/dist/src/ds/components/MetricsCard/metrics-card-total.d.ts +11 -3
  963. package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -9
  964. package/dist/src/ds/components/MetricsCard/metrics-story-data.d.ts +0 -26
  965. package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-root.d.ts +5 -2
  966. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart-legend.d.ts +3 -4
  967. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +2 -6
  968. package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +3 -1
  969. package/dist/src/ds/components/SavedViews/saved-view-picker.d.ts +21 -0
  970. package/dist/src/ds/components/SavedViews/use-saved-views.d.ts +6 -2
  971. package/dist/src/ds/components/ai/activity/activity.d.ts +12 -7
  972. package/dist/src/ds/components/ai/activity/index.d.ts +1 -0
  973. package/dist/src/ds/components/ai/activity/presets/signal-activity.d.ts +4 -1
  974. package/dist/src/ds/components/ai/activity/use-relative-paths.d.ts +3 -0
  975. package/dist/src/ds/components/ai/message-reveal/message-reveal.d.ts +2 -1
  976. package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +4 -0
  977. package/dist/src/ds/primitives/chart-axes.d.ts +24 -0
  978. package/dist/src/ds/primitives/chart-frame.d.ts +2 -1
  979. package/dist/src/ds/primitives/chart-time-tick.d.ts +7 -4
  980. package/dist/src/lib/string.d.ts +1 -0
  981. package/dist/{string-OAgeMRQ5.js → string-CNKDIc_4.js} +6 -2
  982. package/dist/string-CNKDIc_4.js.map +1 -0
  983. package/dist/{string-CymY0aJ9.cjs → string-DdJJdCv2.cjs} +11 -1
  984. package/dist/string-DdJJdCv2.cjs.map +1 -0
  985. package/dist/style.css +67 -4
  986. package/dist/{tabbed-container-x2mfK07d.js → tabbed-container-BKUqfEKy.js} +2 -2
  987. package/dist/{tabbed-container-x2mfK07d.js.map → tabbed-container-BKUqfEKy.js.map} +1 -1
  988. package/dist/{tabbed-container-CBTb0LgE.cjs → tabbed-container-CFEImJOK.cjs} +2 -2
  989. package/dist/{tabbed-container-CBTb0LgE.cjs.map → tabbed-container-CFEImJOK.cjs.map} +1 -1
  990. package/dist/{tool-approval-6E73C0r6.cjs → tool-approval-BfjoSNOC.cjs} +4 -4
  991. package/dist/{tool-approval-6E73C0r6.cjs.map → tool-approval-BfjoSNOC.cjs.map} +1 -1
  992. package/dist/{tool-approval-BXlro6fV.js → tool-approval-FeuyUUcL.js} +4 -4
  993. package/dist/{tool-approval-BXlro6fV.js.map → tool-approval-FeuyUUcL.js.map} +1 -1
  994. package/dist/{tool-call-CItJ8KLA.js → tool-call-BxYXs9w0.js} +9 -7
  995. package/dist/{tool-call-CItJ8KLA.js.map → tool-call-BxYXs9w0.js.map} +1 -1
  996. package/dist/{tool-call-Dq9xF3WD.cjs → tool-call-CvilN9ti.cjs} +9 -7
  997. package/dist/{tool-call-Dq9xF3WD.cjs.map → tool-call-CvilN9ti.cjs.map} +1 -1
  998. package/dist/{tool-card-o5u4YCR0.cjs → tool-card-B7O8AsRl.cjs} +9 -5
  999. package/dist/tool-card-B7O8AsRl.cjs.map +1 -0
  1000. package/dist/{tool-card-Bd8weXze.js → tool-card-ELW898uw.js} +9 -5
  1001. package/dist/tool-card-ELW898uw.js.map +1 -0
  1002. package/dist/{tool-presentation-D2uUj1AB.cjs → tool-presentation-BLErsb7c.cjs} +38 -40
  1003. package/dist/tool-presentation-BLErsb7c.cjs.map +1 -0
  1004. package/dist/{tool-presentation-DKfIKLQy.js → tool-presentation-BSZYIWx2.js} +38 -40
  1005. package/dist/tool-presentation-BSZYIWx2.js.map +1 -0
  1006. package/dist/{trace-filters-C27yWcan.js → trace-filters-BJaebsxJ.js} +78 -11
  1007. package/dist/trace-filters-BJaebsxJ.js.map +1 -0
  1008. package/dist/{trace-filters-BpeBUjCb.cjs → trace-filters-BNEZ31HX.cjs} +100 -9
  1009. package/dist/trace-filters-BNEZ31HX.cjs.map +1 -0
  1010. package/dist/types-CP7wbYua.cjs.map +1 -1
  1011. package/dist/types-DiiL5mTO.js.map +1 -1
  1012. package/dist/utils/string.cjs.js +2 -1
  1013. package/dist/utils/string.es.js +1 -1
  1014. package/package.json +14 -14
  1015. package/dist/Arrival-Dm6Vgn78.cjs.map +0 -1
  1016. package/dist/Arrival-NpBOyV52.js.map +0 -1
  1017. package/dist/DataList-Cmk08jUV.cjs.map +0 -1
  1018. package/dist/DataList-Ve3omCXT.js.map +0 -1
  1019. package/dist/DateTimeRangePicker-ByMbLdom.js.map +0 -1
  1020. package/dist/DateTimeRangePicker-DGbH5WOn.cjs.map +0 -1
  1021. package/dist/FilterBar-Dk3QEuT6.js.map +0 -1
  1022. package/dist/FilterBar-gEvoWDXA.cjs.map +0 -1
  1023. package/dist/MetricsCard-C9GWgT58.js.map +0 -1
  1024. package/dist/MetricsCard-Dly_H3oX.cjs.map +0 -1
  1025. package/dist/MetricsLineChart-2m4LVL1N.cjs.map +0 -1
  1026. package/dist/MetricsLineChart-DKzuRU2q.js.map +0 -1
  1027. package/dist/MetricsStackedBarChart-DJB4aByt.js.map +0 -1
  1028. package/dist/MetricsStackedBarChart-NATtwA_W.cjs.map +0 -1
  1029. package/dist/activity-QyLJcBKc.cjs.map +0 -1
  1030. package/dist/activity-ihrl0JtH.js.map +0 -1
  1031. package/dist/combobox-C-E7_q4j.cjs.map +0 -1
  1032. package/dist/combobox-CDS2pBqz.js.map +0 -1
  1033. package/dist/domains/metrics/components/metrics-kpis.cjs.js +0 -106
  1034. package/dist/domains/metrics/components/metrics-kpis.cjs.js.map +0 -1
  1035. package/dist/domains/metrics/components/metrics-kpis.d.ts +0 -1
  1036. package/dist/domains/metrics/components/metrics-kpis.es.js +0 -105
  1037. package/dist/domains/metrics/components/metrics-kpis.es.js.map +0 -1
  1038. package/dist/filter-bar-chip-B3pgpngW.js.map +0 -1
  1039. package/dist/filter-bar-chip-CyTAmjt6.cjs.map +0 -1
  1040. package/dist/src/domains/metrics/components/metrics-kpis.d.ts +0 -2
  1041. package/dist/src/ds/components/MetricsCard/metrics-card-description.d.ts +0 -4
  1042. package/dist/src/ds/components/MetricsCard/metrics-card-summary.d.ts +0 -8
  1043. package/dist/src/ds/components/MetricsCard/metrics-card-tabs.d.ts +0 -16
  1044. package/dist/src/ds/components/MetricsCard/metrics-card-title-and-description.d.ts +0 -16
  1045. package/dist/string-CymY0aJ9.cjs.map +0 -1
  1046. package/dist/string-OAgeMRQ5.js.map +0 -1
  1047. package/dist/tool-card-Bd8weXze.js.map +0 -1
  1048. package/dist/tool-card-o5u4YCR0.cjs.map +0 -1
  1049. package/dist/tool-presentation-D2uUj1AB.cjs.map +0 -1
  1050. package/dist/tool-presentation-DKfIKLQy.js.map +0 -1
  1051. package/dist/trace-filters-BpeBUjCb.cjs.map +0 -1
  1052. package/dist/trace-filters-C27yWcan.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"traces-list-view.cjs.js","names":["Tooltip","TooltipTrigger","TooltipContent","DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","buildTraceListColumnKeys","useVirtualizer","useDataListKeyboard","TracesDataList","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","DataListSkeletonRows","splitColumns","_Fragment","getInputPreview","TraceErrorCell","DataList","formatDuration","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { TraceErrorCell } from './trace-error-cell';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n /** Model and provider of a model span; only span rows carry them. */\n model?: string | null;\n provider?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n /** Server-rendered preview of the root span's output. */\n outputPreview?: string;\n /** Server-rendered preview of the root span's error. Shown in place of the output when `status` is `'error'`. */\n errorPreview?: string;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n /** The root span's time to first chunk; `null` when it never streamed one. */\n timeToFirstChunkMs?: number | null;\n /** Thread rows only: every trace in the thread, regardless of the listed time range. */\n traceCount?: number;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\ntype FailedTrace = TracesListViewTrace & { spanId: string; errorPreview: string };\n\n/** A failed row whose error preview can open the full error from its span. */\nfunction isFailedTrace(trace: TracesListViewTrace): trace is FailedTrace {\n return trace.status === 'error' && !!trace.errorPreview && !!trace.spanId;\n}\n\n/** The TTFC abbreviation, spelled out on hover; the sort button already names the column for screen readers. */\nfunction TimeToFirstChunkLabel() {\n return (\n <Tooltip>\n <TooltipTrigger render={<span />}>TTFC</TooltipTrigger>\n <TooltipContent>Time to first chunk</TooltipContent>\n </Tooltip>\n );\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** What the rows hold, named in the empty messages. Defaults to `traces`. */\n resource?: 'traces' | 'spans' | 'threads';\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** Current sort of the TTFC column. When `onTimeToFirstChunkSortChange` is provided the header becomes sortable. */\n timeToFirstChunkSort?: DataListSort;\n onTimeToFirstChunkSortChange?: (direction: DataListSort) => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n resource = 'traces',\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n timeToFirstChunkSort,\n onTimeToFirstChunkSortChange,\n onFilterByField,\n listId = 'all-traces',\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n const columnKeys = buildTraceListColumnKeys(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'output') && <TracesDataList.TopCell>Output</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <TracesDataList.TopCellWithTooltip\n tooltip=\"Messages sent in this thread, counting the whole thread, not just the selected time range\"\n className=\"justify-end text-right\"\n >\n Messages\n </TracesDataList.TopCellWithTooltip>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') &&\n (onTimeToFirstChunkSortChange ? (\n <TracesDataList.SortableTopCell\n sortKey=\"timeToFirstChunkMs\"\n sort={timeToFirstChunkSort}\n onSortChange={onTimeToFirstChunkSortChange}\n label=\"Time to first chunk\"\n align=\"end\"\n >\n <TimeToFirstChunkLabel />\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCellWithTooltip tooltip=\"Time to first chunk\" className=\"justify-end text-right\">\n TTFC\n </TracesDataList.TopCellWithTooltip>\n ))}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && <TracesDataList.TopCell>Model</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'provider') && <TracesDataList.TopCell>Provider</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? `No ${resource} found for applied filters` : `No ${resource} found yet`}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n {hasTraceColumn(columnPreferences, 'output') &&\n (isFailedTrace(trace) ? (\n <TraceErrorCell traceId={trace.traceId} spanId={trace.spanId} errorPreview={trace.errorPreview} />\n ) : (\n <TracesDataList.OutputCell\n output={trace.outputPreview}\n error={trace.errorPreview}\n status={trace.status}\n />\n ))}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <DataList.NumberCell>\n {trace.traceCount === undefined ? undefined : formatCompactNumber(trace.traceCount)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') && (\n <DataList.NumberCell font=\"mono\">{formatDuration(trace.timeToFirstChunkMs)}</DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && (\n <DataList.TextCell>{trace.model || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'provider') && (\n <DataList.TextCell>{trace.provider || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traces-list-view.cjs.js","names":["Tooltip","TooltipTrigger","TooltipContent","DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","buildTraceListColumnKeys","useVirtualizer","useDataListKeyboard","TracesDataList","hasTraceColumn","_Fragment","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","DataListSkeletonRows","splitColumns","getInputPreview","TraceErrorCell","DataList","formatDuration","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { TraceErrorCell } from './trace-error-cell';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n /** Model and provider of a model span; only span rows carry them. */\n model?: string | null;\n provider?: string | null;\n status?: string | null;\n /** How the span or the trace's root span ended (`success`, `limit`, …); absent when not recorded. */\n outcome?: string | null;\n stopReason?: string | null;\n stopReasonContext?: Record<string, unknown> | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n /** Server-rendered preview of the root span's output. */\n outputPreview?: string;\n /** Server-rendered preview of the root span's error. Shown in place of the output when `status` is `'error'`. */\n errorPreview?: string;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n /** The root span's time to first chunk; `null` when it never streamed one. */\n timeToFirstChunkMs?: number | null;\n /** The root span's time to first token; `null` when its model never produced one. */\n timeToFirstTokenMs?: number | null;\n /** Thread rows only: every trace in the thread, regardless of the listed time range. */\n traceCount?: number;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\ntype FailedTrace = TracesListViewTrace & { spanId: string; errorPreview: string };\n\n/** A failed row whose error preview can open the full error from its span. */\nfunction isFailedTrace(trace: TracesListViewTrace): trace is FailedTrace {\n return trace.status === 'error' && !!trace.errorPreview && !!trace.spanId;\n}\n\n/** An abbreviated header, spelled out on hover; the sort button already names the column for screen readers. */\nfunction AbbreviatedLabel({ abbreviation, title }: { abbreviation: string; title: string }) {\n return (\n <Tooltip>\n <TooltipTrigger render={<span />}>{abbreviation}</TooltipTrigger>\n <TooltipContent>{title}</TooltipContent>\n </Tooltip>\n );\n}\n\n/** Columns the list can be ordered by, named like the query `orderBy` fields. */\nexport type TracesListSortField = 'startedAt' | 'timeToFirstChunkMs' | 'timeToFirstTokenMs';\nexport type TracesListSort = { field: TracesListSortField; direction: DataListSort };\n\nconst DEFAULT_SORTABLE_FIELDS: readonly TracesListSortField[] = ['startedAt'];\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** What the rows hold, named in the empty messages. Defaults to `traces`. */\n resource?: 'traces' | 'spans' | 'threads';\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current order of the list; only the header of `sort.field` shows a direction. */\n sort?: TracesListSort;\n /** Headers that become sortable when `onSortChange` is provided. Defaults to Start only. */\n sortableFields?: readonly TracesListSortField[];\n onSortChange?: (sort: TracesListSort) => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n /** Show the Outcome column in place of Status. Defaults to `true`; thread rows carry no outcome. */\n outcomeColumn?: boolean;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n resource = 'traces',\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n sort,\n sortableFields = DEFAULT_SORTABLE_FIELDS,\n onSortChange,\n onFilterByField,\n listId = 'all-traces',\n outcomeColumn = true,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences, { outcomeColumn });\n const columnKeys = buildTraceListColumnKeys(columnPreferences, { outcomeColumn });\n const isSortable = (field: TracesListSortField) => !!onSortChange && sortableFields.includes(field);\n const sortFor = (field: TracesListSortField) => (sort?.field === field ? sort.direction : undefined);\n const handleSortChange = (direction: DataListSort, field: TracesListSortField) =>\n onSortChange?.({ field, direction });\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {isSortable('startedAt') ? (\n <TracesDataList.SortableTopCell\n sortKey=\"startedAt\"\n sort={sortFor('startedAt')}\n onSortChange={handleSortChange}\n >\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'output') && <TracesDataList.TopCell>Output</TracesDataList.TopCell>}\n {outcomeColumn ? (\n <>\n <TracesDataList.TopCell>Outcome</TracesDataList.TopCell>\n <TracesDataList.TopCell>Stop reason</TracesDataList.TopCell>\n </>\n ) : (\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <TracesDataList.TopCellWithTooltip\n tooltip=\"Messages sent in this thread, counting the whole thread, not just the selected time range\"\n className=\"justify-end text-right\"\n >\n Messages\n </TracesDataList.TopCellWithTooltip>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') &&\n (isSortable('timeToFirstChunkMs') ? (\n <TracesDataList.SortableTopCell\n sortKey=\"timeToFirstChunkMs\"\n sort={sortFor('timeToFirstChunkMs')}\n onSortChange={handleSortChange}\n label=\"Time to first chunk\"\n align=\"end\"\n >\n <AbbreviatedLabel abbreviation=\"TTFC\" title=\"Time to first chunk\" />\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCellWithTooltip tooltip=\"Time to first chunk\" className=\"justify-end text-right\">\n TTFC\n </TracesDataList.TopCellWithTooltip>\n ))}\n {hasTraceColumn(columnPreferences, 'timeToFirstToken') &&\n (isSortable('timeToFirstTokenMs') ? (\n <TracesDataList.SortableTopCell\n sortKey=\"timeToFirstTokenMs\"\n sort={sortFor('timeToFirstTokenMs')}\n onSortChange={handleSortChange}\n label=\"Time to first token\"\n align=\"end\"\n >\n <AbbreviatedLabel abbreviation=\"TTFT\" title=\"Time to first token\" />\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCellWithTooltip tooltip=\"Time to first token\" className=\"justify-end text-right\">\n TTFT\n </TracesDataList.TopCellWithTooltip>\n ))}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && <TracesDataList.TopCell>Model</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'provider') && <TracesDataList.TopCell>Provider</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? `No ${resource} found for applied filters` : `No ${resource} found yet`}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n {hasTraceColumn(columnPreferences, 'output') &&\n (isFailedTrace(trace) ? (\n <TraceErrorCell traceId={trace.traceId} spanId={trace.spanId} errorPreview={trace.errorPreview} />\n ) : (\n <TracesDataList.OutputCell\n output={trace.outputPreview}\n error={trace.errorPreview}\n status={trace.status}\n />\n ))}\n {outcomeColumn ? (\n <>\n <TracesDataList.OutcomeCell outcome={trace.outcome} status={trace.status} />\n <TracesDataList.StopReasonCell\n stopReason={trace.stopReason}\n stopReasonContext={trace.stopReasonContext}\n />\n </>\n ) : (\n <TracesDataList.StatusCell status={trace.status} />\n )}\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <DataList.NumberCell>\n {trace.traceCount === undefined ? undefined : formatCompactNumber(trace.traceCount)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') && (\n <DataList.NumberCell font=\"mono\">{formatDuration(trace.timeToFirstChunkMs)}</DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstToken') && (\n <DataList.NumberCell font=\"mono\">{formatDuration(trace.timeToFirstTokenMs)}</DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && (\n <DataList.TextCell>{trace.model || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'provider') && (\n <DataList.TextCell>{trace.provider || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAiEA,IAAM,aAAa;AACnB,IAAM,WAAW;;AAEjB,IAAM,oBAAoB;AAE1B,SAAS,kBAAkB,OAA4B,OAAqD;CAC1G,OAAO,MAAM;AACf;AAEA,SAAS,2BAA2B,QAA+B,OAAoC;CACrG,MAAM,yBAAS,IAAI,IAAY;CAC/B,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,QAAQ,MAAM;EACpB,IAAI,OAAO,UAAU,YAAY,OAAO,OAAO,IAAI,KAAK;EACxD,IAAI,OAAO,QAAQ,mBAAmB;CACxC;CACA,OAAO,CAAC,GAAG,MAAM;AACnB;AAEA,SAAS,UAAU,OAA0D;CAC3E,IAAI,OAAO,gBAAgB,KAAA,KAAa,OAAO,iBAAiB,KAAA,GAAW,OAAO,KAAA;CAClF,QAAQ,OAAO,eAAe,MAAM,OAAO,gBAAgB;AAC7D;;AAKA,SAAS,cAAc,OAAkD;CACvE,OAAO,MAAM,WAAW,WAAW,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,MAAM;AACrE;;AAGA,SAAS,iBAAiB,EAAE,cAAc,SAAkD;CAC1F,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,gBAAAA,SAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,gBAAD;EAAgB,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,CAAO,CAAA;EAAI,UAAA;CAA6B,CAAA,GAChE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,gBAAD,EAAA,UAAiB,MAAsB,CAAA,CAChC,EAAA,CAAA;AAEb;AAMA,IAAM,0BAA0D,CAAC,WAAW;;;;;AAgD5E,SAAgB,eAAe,EAC7B,QACA,WACA,oBACA,aACA,qBACA,gBACA,WAAW,UACX,iBACA,gBACA,gBACA,mBACA,oBAAoBC,0CAAAA,kCACpB,gBACA,cACA,MACA,iBAAiB,yBACjB,cACA,iBACA,SAAS,cACT,gBAAgB,QACM;CACtB,MAAM,aAAA,GAAYC,MAAAA,OAAAA,CAA8B,IAAI;CACpD,MAAM,UAAUC,0CAAAA,sBAAsB,mBAAmB,EAAE,cAAc,CAAC;CAC1E,MAAM,aAAaC,0CAAAA,yBAAyB,mBAAmB,EAAE,cAAc,CAAC;CAChF,MAAM,cAAc,UAA+B,CAAC,CAAC,gBAAgB,eAAe,SAAS,KAAK;CAClG,MAAM,WAAW,UAAgC,MAAM,UAAU,QAAQ,KAAK,YAAY,KAAA;CAC1F,MAAM,oBAAoB,WAAyB,UACjD,eAAe;EAAE;EAAO;CAAU,CAAC;CAErC,MAAM,eAAA,GAAcC,wBAAAA,eAAAA,CAAe;EACjC,OAAO,OAAO;EACd,wBAAwB,UAAU;EAClC,oBAAoB;EACpB,UAAU;CACZ,CAAC;CAED,MAAM,EAAE,gBAAgBC,+BAAAA,oBAAoB;EAC1C,OAAO,OAAO;EACd,cAAc;EACd,aAAY,UAAS,YAAY,cAAc,KAAK;EACpD,QAAQ;CACV,CAAC;CAED,MAAM,eAAe,YAAY,gBAAgB;CACjD,MAAM,YAAY,YAAY,aAAa;CAC3C,MAAM,aAAa,aAAa,EAAE,EAAE,SAAS;CAC7C,MAAM,gBACJ,aAAa,SAAS,IAAI,KAAK,IAAI,GAAG,aAAa,aAAa,aAAa,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI;CAEzG,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,iBAAAA,gBAAD;EACE,aAAA;EACA,IAAI;EACK;EACG;EACZ,KAAI;EACO;EACX,WAAU;EAPZ,UAAA,CASE,iBAAA,GAAA,kBAAA,KAAA,CAACA,iBAAAA,eAAe,KAAhB,EAAA,UAAA;GACG,WAAW,WAAW,IACrB,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,iBAAhB;IACE,SAAQ;IACR,MAAM,QAAQ,WAAW;IACzB,cAAc;IACf,UAAA;GAE+B,CAAA,IAEhC,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,QAA6B,CAAA;GAEtDC,0CAAAA,eAAe,mBAAmB,MAAM,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,iBAAsC,CAAA;GAC5G,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,iBAAsC,CAAA;GAC7DC,0CAAAA,eAAe,mBAAmB,OAAO,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,QAA6B,CAAA;GACnGC,0CAAAA,eAAe,mBAAmB,QAAQ,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,SAA8B,CAAA;GACrG,gBACC,iBAAA,GAAA,kBAAA,KAAA,CAAAE,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,UAA+B,CAAA,GACvD,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,cAAmC,CAAA,CAC3D,EAAA,CAAA,IAEF,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,SAA8B,CAAA;GAEvDC,0CAAAA,eAAe,mBAAmB,UAAU,KAC3C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAgC,CAAA;GAE5FC,0CAAAA,eAAe,mBAAmB,YAAY,KAC7C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,oBAAhB;IACE,SAAQ;IACR,WAAU;IACX,UAAA;GAEkC,CAAA;GAEpCC,0CAAAA,eAAe,mBAAmB,kBAAkB,MAClD,WAAW,oBAAoB,IAC9B,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,iBAAhB;IACE,SAAQ;IACR,MAAM,QAAQ,oBAAoB;IAClC,cAAc;IACd,OAAM;IACN,OAAM;IAEN,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;KAAkB,cAAa;KAAO,OAAM;IAAuB,CAAA;GACrC,CAAA,IAEhC,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,oBAAhB;IAAmC,SAAQ;IAAsB,WAAU;IAAyB,UAAA;GAEjE,CAAA;GAEtCC,0CAAAA,eAAe,mBAAmB,kBAAkB,MAClD,WAAW,oBAAoB,IAC9B,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,iBAAhB;IACE,SAAQ;IACR,MAAM,QAAQ,oBAAoB;IAClC,cAAc;IACd,OAAM;IACN,OAAM;IAEN,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;KAAkB,cAAa;KAAO,OAAM;IAAuB,CAAA;GACrC,CAAA,IAEhC,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,oBAAhB;IAAmC,SAAQ;IAAsB,WAAU;IAAyB,UAAA;GAEjE,CAAA;GAEtCC,0CAAAA,eAAe,mBAAmB,SAAS,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,MAA2B,CAAA;GACnGC,0CAAAA,eAAe,mBAAmB,aAAa,KAC9C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,cAAmC,CAAA;GAE5DC,0CAAAA,eAAe,mBAAmB,OAAO,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,QAA6B,CAAA;GACnGC,0CAAAA,eAAe,mBAAmB,UAAU,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB,EAAA,UAAwB,WAAgC,CAAA;GACzGC,0CAAAA,eAAe,mBAAmB,aAAa,KAC9C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAoC,CAAA;GAEhGC,0CAAAA,eAAe,mBAAmB,cAAc,KAC/C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAqC,CAAA;GAEjGC,0CAAAA,eAAe,mBAAmB,aAAa,KAC9C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAoC,CAAA;GAEhGC,0CAAAA,eAAe,mBAAmB,eAAe,KAChD,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAiC,CAAA;GAE7F,kBAAkB,cAAc,KAAI,UAAS;IAC5C,MAAM,QAAQG,0CAAAA,2BAA2B;IACzC,MAAM,eAAe,kBAAkB,2BAA2B,QAAQ,KAAK,IAAI,CAAC;IACpF,IAAI,CAAC,mBAAmB,aAAa,WAAW,GAC9C,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACH,iBAAAA,eAAe,SAAhB,EAAA,UAAqC,MAA8B,GAAtC,KAAsC;IAE5E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,SAAhB;KAAoC,WAAU;KAC5C,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACI,sBAAAA,cAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,sBAAAA,aAAa,SAAd,EACE,QACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD;MACE,MAAK;MACL,WAAWC,cAAAA,GAAG,oEAAoEC,+BAAAA,SAAS;MAF7F,UAAA,CAIE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;OAAM,WAAU;OAAoB,UAAA;MAAY,CAAA,GAChD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,gBAAD;OAAgB,eAAA;OAAY,WAAU;MAAyB,CAAA,CACzD;KAEX,CAAA,EAAA,CAAA,GACD,iBAAA,GAAA,kBAAA,KAAA,CAACH,sBAAAA,aAAa,SAAd;MAAsB,OAAM;MAA5B,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,sBAAAA,aAAa,OAAd,EAAA,UAAoB,kBAAmC,CAAA,GACtD,aAAa,KAAI,UAChB,iBAAA,GAAA,kBAAA,IAAA,CAACA,sBAAAA,aAAa,MAAd;OAA+B,gBAAgB,gBAAgB,OAAO,KAAK;OACzE,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACI,YAAAA,KAAD;QAAK,IAAG;QAAO,SAAQ;QAAU,MAAK;QAAO,WAAU;QACpD,UAAA;OACE,CAAA;MACY,GAJK,KAIL,CACpB,CACmB;KACV,CAAA,CAAA,EAAA,CAAA;IACQ,GAxBK,KAwBL;GAE5B,CAAC;GACA,kBAAkB,aAAa,KAAI,QAClC,iBAAA,GAAA,kBAAA,IAAA,CAACR,iBAAAA,eAAe,oBAAhB;IAA6C,SAAS;IACnD,UAAA;GACgC,GAFK,GAEL,CACpC;EACiB,EAAA,CAAA,GAEnB,YACC,iBAAA,GAAA,kBAAA,IAAA,CAACS,iBAAAA,sBAAD,EAAsB,aAAaC,kBAAAA,aAAa,OAAO,CAAC,CAAC,OAAS,CAAA,IAChE,OAAO,WAAW,IACpB,iBAAA,GAAA,kBAAA,IAAA,CAACV,iBAAAA,eAAe,SAAhB,EACE,SAAS,iBAAiB,MAAM,SAAS,8BAA8B,MAAM,SAAS,YACvF,CAAA,IAED,iBAAA,GAAA,kBAAA,KAAA,CAAAE,kBAAAA,UAAA,EAAA,UAAA;GACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,iBAAAA,eAAe,QAAhB,EAAuB,QAAQ,WAAa,CAAA;GAC3C,aAAa,KAAI,OAAM;IACtB,MAAM,QAAQ,OAAO,GAAG;IACxB,IAAI,CAAC,OAAO,OAAO;IAEnB,MAAM,aACJ,MAAM,YAAY,oBAAoB,kBAAkB,QAAQ,MAAM,WAAW;IACnF,MAAM,SAAS,GAAG,MAAM,QAAQ,GAAG,MAAM,UAAU;IACnD,MAAM,kBAAkB,mBAAmB,IAAI,MAAM,KAAK;IAC1D,MAAM,cAAc,MAAM,aAAa,MAAM;IAC7C,MAAM,QAAQ,gBAAgB,IAAI,MAAM,OAAO;IAE/C,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,iBAAAA,eAAe,WAAhB;KAEE,KAAK,YAAY;KACjB,cAAY,GAAG;KACf,GAAI,YAAY,GAAG,KAAK;KACxB,eAAe,aAAa,KAAK;KACjC,UAAU;KACV,WAAWK,cAAAA,GAAG,mBAAmB,uBAAuB;KAP1D,UAAA;MASE,iBAAA,GAAA,kBAAA,IAAA,CAACL,iBAAAA,eAAe,aAAhB;OAA4B,WAAW;OAAa,QAAO;MAAoB,CAAA;MAC9EC,0CAAAA,eAAe,mBAAmB,MAAM,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,UAAhB,EAAyB,YAAY,MAAM,WAAa,CAAA;MACtG,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,UAAhB;OACE,MAAM,MAAM,cAAc,MAAM;OAChC,cAAc,MAAM;OACpB,kBAAkB;MACnB,CAAA;MACAC,0CAAAA,eAAe,mBAAmB,OAAO,KACxC,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,WAAhB,EAA0B,OAAO,MAAM,gBAAgBW,wCAAAA,gBAAgB,MAAM,KAAK,EAAI,CAAA;MAEvFV,0CAAAA,eAAe,mBAAmB,QAAQ,MACxC,cAAc,KAAK,IAClB,iBAAA,GAAA,kBAAA,IAAA,CAACW,mDAAAA,gBAAD;OAAgB,SAAS,MAAM;OAAS,QAAQ,MAAM;OAAQ,cAAc,MAAM;MAAe,CAAA,IAEjG,iBAAA,GAAA,kBAAA,IAAA,CAACZ,iBAAAA,eAAe,YAAhB;OACE,QAAQ,MAAM;OACd,OAAO,MAAM;OACb,QAAQ,MAAM;MACf,CAAA;MAEJ,gBACC,iBAAA,GAAA,kBAAA,KAAA,CAAAE,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,iBAAAA,eAAe,aAAhB;OAA4B,SAAS,MAAM;OAAS,QAAQ,MAAM;MAAS,CAAA,GAC3E,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,gBAAhB;OACE,YAAY,MAAM;OAClB,mBAAmB,MAAM;MAC1B,CAAA,CACD,EAAA,CAAA,IAEF,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,YAAhB,EAA2B,QAAQ,MAAM,OAAS,CAAA;MAEnDC,0CAAAA,eAAe,mBAAmB,UAAU,KAC3C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV;OAAqB,MAAK;OACvB,UAAAC,uBAAAA,eAAeC,wCAAAA,kBAAkB,MAAM,WAAW,MAAM,OAAO,CAAC;MAC9C,CAAA;MAEtBd,0CAAAA,eAAe,mBAAmB,YAAY,KAC7C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV,EAAA,UACG,MAAM,eAAe,KAAA,IAAY,KAAA,IAAYG,aAAAA,oBAAoB,MAAM,UAAU,EAC/D,CAAA;MAEtBf,0CAAAA,eAAe,mBAAmB,kBAAkB,KACnD,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV;OAAqB,MAAK;OAAQ,UAAAC,uBAAAA,eAAe,MAAM,kBAAkB;MAAuB,CAAA;MAEjGb,0CAAAA,eAAe,mBAAmB,kBAAkB,KACnD,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV;OAAqB,MAAK;OAAQ,UAAAC,uBAAAA,eAAe,MAAM,kBAAkB;MAAuB,CAAA;MAEjGb,0CAAAA,eAAe,mBAAmB,SAAS,KAC1C,iBAAA,GAAA,kBAAA,IAAA,CAACD,iBAAAA,eAAe,aAAhB;OAA4B,WAAW,MAAM,WAAW;OAAI,QAAO;MAAoB,CAAA;MAExFC,0CAAAA,eAAe,mBAAmB,aAAa,KAC9C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,UAAV,EAAA,UAAoB,MAAM,eAAe,IAAuB,CAAA;MAEjEZ,0CAAAA,eAAe,mBAAmB,OAAO,KACxC,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,UAAV,EAAA,UAAoB,MAAM,SAAS,IAAuB,CAAA;MAE3DZ,0CAAAA,eAAe,mBAAmB,UAAU,KAC3C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,UAAV,EAAA,UAAoB,MAAM,YAAY,IAAuB,CAAA;MAE9DZ,0CAAAA,eAAe,mBAAmB,aAAa,KAC9C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV,EAAA,UACG,OAAO,gBAAgB,KAAA,IAAY,KAAA,IAAYG,aAAAA,oBAAoB,MAAM,WAAW,EAClE,CAAA;MAEtBf,0CAAAA,eAAe,mBAAmB,cAAc,KAC/C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV,EAAA,UACG,OAAO,iBAAiB,KAAA,IAAY,KAAA,IAAYG,aAAAA,oBAAoB,MAAM,YAAY,EACpE,CAAA;MAEtBf,0CAAAA,eAAe,mBAAmB,aAAa,KAC9C,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV,EAAA,iBACU;OACN,MAAM,QAAQ,UAAU,KAAK;OAC7B,OAAO,UAAU,KAAA,IAAY,KAAA,IAAYG,aAAAA,oBAAoB,KAAK;MACpE,EAAA,CAAG,EACgB,CAAA;MAEtBf,0CAAAA,eAAe,mBAAmB,eAAe,KAChD,iBAAA,GAAA,kBAAA,IAAA,CAACY,kBAAAA,SAAS,YAAV,EAAA,UACG,OAAO,kBAAkB,KAAA,IAAY,KAAA,IAAYI,aAAAA,WAAW,MAAM,eAAe,MAAM,QAAQ,EAC7E,CAAA;MAEtB,kBAAkB,cAAc,KAAI,UACnC,iBAAA,GAAA,kBAAA,IAAA,CAACJ,kBAAAA,SAAS,UAAV;OAAmB,MAAK;OACrB,UAAA,kBAAkB,OAAO,KAAK,KAAK,KAAA;MACnB,GAFiB,KAEjB,CACpB;MACA,kBAAkB,aAAa,KAAI,QAAO;OACzC,MAAM,QAAQK,0CAAAA,yBAAyB,MAAM,UAAU,GAAG;OAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACL,kBAAAA,SAAS,UAAV;QAAmB,MAAK;QACrB,UAAA;OACgB,GAFiB,GAEjB;MAEvB,CAAC;KACuB;IAvGnB,GAAA,MAuGmB;GAE9B,CAAC;GACD,iBAAA,GAAA,kBAAA,IAAA,CAACb,iBAAAA,eAAe,QAAhB,EAAuB,QAAQ,cAAgB,CAAA;GAC/C,iBAAA,GAAA,kBAAA,IAAA,CAACA,iBAAAA,eAAe,iBAAhB;IACE,WAAW;IACX,SAAS;IACY;GACtB,CAAA;EACD,EAAA,CAAA,CAEU;;AAEpB"}
@@ -6,10 +6,10 @@ import { focusRing } from "../../../primitives/transitions.es.js";
6
6
  import { t as Txt } from "../../../Txt-BM6TVV_c.js";
7
7
  import { t as DropdownMenu } from "../../../dropdown-menu-B4jY3J9e.js";
8
8
  import { C as splitColumns, t as DataList } from "../../../data-list-evmf5xWI.js";
9
- import { i as DataListSkeletonRows, t as TracesDataList } from "../../../DataList-Ve3omCXT.js";
9
+ import { i as DataListSkeletonRows, t as TracesDataList } from "../../../DataList-2tIlQsLc.js";
10
10
  import { t as useDataListKeyboard } from "../../../use-data-list-keyboard-fJXq2T3y.js";
11
- import { getInputPreview, getSpanDurationMs } from "../utils/span-utils.es.js";
12
11
  import { DEFAULT_TRACE_COLUMN_PREFERENCES, TRACE_CUSTOM_COLUMN_LABELS, buildTraceListColumnKeys, buildTraceListColumns, formatTraceMetadataValue, hasTraceColumn } from "../trace-list-columns.es.js";
12
+ import { getInputPreview, getSpanDurationMs } from "../utils/span-utils.es.js";
13
13
  import { TraceErrorCell } from "./trace-error-cell.es.js";
14
14
  import { useRef } from "react";
15
15
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -40,21 +40,28 @@ function sumTokens(usage) {
40
40
  function isFailedTrace(trace) {
41
41
  return trace.status === "error" && !!trace.errorPreview && !!trace.spanId;
42
42
  }
43
- /** The TTFC abbreviation, spelled out on hover; the sort button already names the column for screen readers. */
44
- function TimeToFirstChunkLabel() {
43
+ /** An abbreviated header, spelled out on hover; the sort button already names the column for screen readers. */
44
+ function AbbreviatedLabel({ abbreviation, title }) {
45
45
  return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
46
46
  render: /* @__PURE__ */ jsx("span", {}),
47
- children: "TTFC"
48
- }), /* @__PURE__ */ jsx(TooltipContent, { children: "Time to first chunk" })] });
47
+ children: abbreviation
48
+ }), /* @__PURE__ */ jsx(TooltipContent, { children: title })] });
49
49
  }
50
+ var DEFAULT_SORTABLE_FIELDS = ["startedAt"];
50
51
  /**
51
52
  * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and
52
53
  * uses DataList primitives for layout (CSS Grid with subgrid rows).
53
54
  */
54
- function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, filtersApplied, resource = "traces", featuredTraceId, featuredSpanId, isBranchesMode, recentlyAddedKeys, columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES, usageByTraceId, onTraceClick, createdSort, onSortChange, timeToFirstChunkSort, onTimeToFirstChunkSortChange, onFilterByField, listId = "all-traces" }) {
55
+ function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, filtersApplied, resource = "traces", featuredTraceId, featuredSpanId, isBranchesMode, recentlyAddedKeys, columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES, usageByTraceId, onTraceClick, sort, sortableFields = DEFAULT_SORTABLE_FIELDS, onSortChange, onFilterByField, listId = "all-traces", outcomeColumn = true }) {
55
56
  const scrollRef = useRef(null);
56
- const columns = buildTraceListColumns(columnPreferences);
57
- const columnKeys = buildTraceListColumnKeys(columnPreferences);
57
+ const columns = buildTraceListColumns(columnPreferences, { outcomeColumn });
58
+ const columnKeys = buildTraceListColumnKeys(columnPreferences, { outcomeColumn });
59
+ const isSortable = (field) => !!onSortChange && sortableFields.includes(field);
60
+ const sortFor = (field) => sort?.field === field ? sort.direction : void 0;
61
+ const handleSortChange = (direction, field) => onSortChange?.({
62
+ field,
63
+ direction
64
+ });
58
65
  const virtualizer = useVirtualizer({
59
66
  count: traces.length,
60
67
  getScrollElement: () => scrollRef.current,
@@ -80,17 +87,17 @@ function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, se
80
87
  scrollRef,
81
88
  className: "min-w-0",
82
89
  children: [/* @__PURE__ */ jsxs(TracesDataList.Top, { children: [
83
- onSortChange ? /* @__PURE__ */ jsx(TracesDataList.SortableTopCell, {
90
+ isSortable("startedAt") ? /* @__PURE__ */ jsx(TracesDataList.SortableTopCell, {
84
91
  sortKey: "startedAt",
85
- sort: createdSort,
86
- onSortChange,
92
+ sort: sortFor("startedAt"),
93
+ onSortChange: handleSortChange,
87
94
  children: "Start"
88
95
  }) : /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Start" }),
89
96
  hasTraceColumn(columnPreferences, "type") && /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Primitive type" }),
90
97
  /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Primitive name" }),
91
98
  hasTraceColumn(columnPreferences, "input") && /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Input" }),
92
99
  hasTraceColumn(columnPreferences, "output") && /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Output" }),
93
- /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Status" }),
100
+ outcomeColumn ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Outcome" }), /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Stop reason" })] }) : /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Status" }),
94
101
  hasTraceColumn(columnPreferences, "duration") && /* @__PURE__ */ jsx(TracesDataList.TopCell, {
95
102
  className: "justify-end text-right",
96
103
  children: "Duration"
@@ -100,18 +107,36 @@ function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, se
100
107
  className: "justify-end text-right",
101
108
  children: "Messages"
102
109
  }),
103
- hasTraceColumn(columnPreferences, "timeToFirstChunk") && (onTimeToFirstChunkSortChange ? /* @__PURE__ */ jsx(TracesDataList.SortableTopCell, {
110
+ hasTraceColumn(columnPreferences, "timeToFirstChunk") && (isSortable("timeToFirstChunkMs") ? /* @__PURE__ */ jsx(TracesDataList.SortableTopCell, {
104
111
  sortKey: "timeToFirstChunkMs",
105
- sort: timeToFirstChunkSort,
106
- onSortChange: onTimeToFirstChunkSortChange,
112
+ sort: sortFor("timeToFirstChunkMs"),
113
+ onSortChange: handleSortChange,
107
114
  label: "Time to first chunk",
108
115
  align: "end",
109
- children: /* @__PURE__ */ jsx(TimeToFirstChunkLabel, {})
116
+ children: /* @__PURE__ */ jsx(AbbreviatedLabel, {
117
+ abbreviation: "TTFC",
118
+ title: "Time to first chunk"
119
+ })
110
120
  }) : /* @__PURE__ */ jsx(TracesDataList.TopCellWithTooltip, {
111
121
  tooltip: "Time to first chunk",
112
122
  className: "justify-end text-right",
113
123
  children: "TTFC"
114
124
  })),
125
+ hasTraceColumn(columnPreferences, "timeToFirstToken") && (isSortable("timeToFirstTokenMs") ? /* @__PURE__ */ jsx(TracesDataList.SortableTopCell, {
126
+ sortKey: "timeToFirstTokenMs",
127
+ sort: sortFor("timeToFirstTokenMs"),
128
+ onSortChange: handleSortChange,
129
+ label: "Time to first token",
130
+ align: "end",
131
+ children: /* @__PURE__ */ jsx(AbbreviatedLabel, {
132
+ abbreviation: "TTFT",
133
+ title: "Time to first token"
134
+ })
135
+ }) : /* @__PURE__ */ jsx(TracesDataList.TopCellWithTooltip, {
136
+ tooltip: "Time to first token",
137
+ className: "justify-end text-right",
138
+ children: "TTFT"
139
+ })),
115
140
  hasTraceColumn(columnPreferences, "endTime") && /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "End" }),
116
141
  hasTraceColumn(columnPreferences, "environment") && /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Environment" }),
117
142
  hasTraceColumn(columnPreferences, "model") && /* @__PURE__ */ jsx(TracesDataList.TopCell, { children: "Model" }),
@@ -205,7 +230,13 @@ function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, se
205
230
  error: trace.errorPreview,
206
231
  status: trace.status
207
232
  })),
208
- /* @__PURE__ */ jsx(TracesDataList.StatusCell, { status: trace.status }),
233
+ outcomeColumn ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(TracesDataList.OutcomeCell, {
234
+ outcome: trace.outcome,
235
+ status: trace.status
236
+ }), /* @__PURE__ */ jsx(TracesDataList.StopReasonCell, {
237
+ stopReason: trace.stopReason,
238
+ stopReasonContext: trace.stopReasonContext
239
+ })] }) : /* @__PURE__ */ jsx(TracesDataList.StatusCell, { status: trace.status }),
209
240
  hasTraceColumn(columnPreferences, "duration") && /* @__PURE__ */ jsx(DataList.NumberCell, {
210
241
  font: "mono",
211
242
  children: formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))
@@ -215,6 +246,10 @@ function TracesListView({ traces, isLoading, isFetchingNextPage, hasNextPage, se
215
246
  font: "mono",
216
247
  children: formatDuration(trace.timeToFirstChunkMs)
217
248
  }),
249
+ hasTraceColumn(columnPreferences, "timeToFirstToken") && /* @__PURE__ */ jsx(DataList.NumberCell, {
250
+ font: "mono",
251
+ children: formatDuration(trace.timeToFirstTokenMs)
252
+ }),
218
253
  hasTraceColumn(columnPreferences, "endTime") && /* @__PURE__ */ jsx(TracesDataList.CreatedCell, {
219
254
  timestamp: trace.endedAt ?? "",
220
255
  preset: "day-time-seconds"
@@ -1 +1 @@
1
- {"version":3,"file":"traces-list-view.es.js","names":["_Fragment"],"sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { TraceErrorCell } from './trace-error-cell';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n /** Model and provider of a model span; only span rows carry them. */\n model?: string | null;\n provider?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n /** Server-rendered preview of the root span's output. */\n outputPreview?: string;\n /** Server-rendered preview of the root span's error. Shown in place of the output when `status` is `'error'`. */\n errorPreview?: string;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n /** The root span's time to first chunk; `null` when it never streamed one. */\n timeToFirstChunkMs?: number | null;\n /** Thread rows only: every trace in the thread, regardless of the listed time range. */\n traceCount?: number;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\ntype FailedTrace = TracesListViewTrace & { spanId: string; errorPreview: string };\n\n/** A failed row whose error preview can open the full error from its span. */\nfunction isFailedTrace(trace: TracesListViewTrace): trace is FailedTrace {\n return trace.status === 'error' && !!trace.errorPreview && !!trace.spanId;\n}\n\n/** The TTFC abbreviation, spelled out on hover; the sort button already names the column for screen readers. */\nfunction TimeToFirstChunkLabel() {\n return (\n <Tooltip>\n <TooltipTrigger render={<span />}>TTFC</TooltipTrigger>\n <TooltipContent>Time to first chunk</TooltipContent>\n </Tooltip>\n );\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** What the rows hold, named in the empty messages. Defaults to `traces`. */\n resource?: 'traces' | 'spans' | 'threads';\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** Current sort of the TTFC column. When `onTimeToFirstChunkSortChange` is provided the header becomes sortable. */\n timeToFirstChunkSort?: DataListSort;\n onTimeToFirstChunkSortChange?: (direction: DataListSort) => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n resource = 'traces',\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n timeToFirstChunkSort,\n onTimeToFirstChunkSortChange,\n onFilterByField,\n listId = 'all-traces',\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n const columnKeys = buildTraceListColumnKeys(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'output') && <TracesDataList.TopCell>Output</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <TracesDataList.TopCellWithTooltip\n tooltip=\"Messages sent in this thread, counting the whole thread, not just the selected time range\"\n className=\"justify-end text-right\"\n >\n Messages\n </TracesDataList.TopCellWithTooltip>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') &&\n (onTimeToFirstChunkSortChange ? (\n <TracesDataList.SortableTopCell\n sortKey=\"timeToFirstChunkMs\"\n sort={timeToFirstChunkSort}\n onSortChange={onTimeToFirstChunkSortChange}\n label=\"Time to first chunk\"\n align=\"end\"\n >\n <TimeToFirstChunkLabel />\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCellWithTooltip tooltip=\"Time to first chunk\" className=\"justify-end text-right\">\n TTFC\n </TracesDataList.TopCellWithTooltip>\n ))}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && <TracesDataList.TopCell>Model</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'provider') && <TracesDataList.TopCell>Provider</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? `No ${resource} found for applied filters` : `No ${resource} found yet`}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n {hasTraceColumn(columnPreferences, 'output') &&\n (isFailedTrace(trace) ? (\n <TraceErrorCell traceId={trace.traceId} spanId={trace.spanId} errorPreview={trace.errorPreview} />\n ) : (\n <TracesDataList.OutputCell\n output={trace.outputPreview}\n error={trace.errorPreview}\n status={trace.status}\n />\n ))}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <DataList.NumberCell>\n {trace.traceCount === undefined ? undefined : formatCompactNumber(trace.traceCount)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') && (\n <DataList.NumberCell font=\"mono\">{formatDuration(trace.timeToFirstChunkMs)}</DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && (\n <DataList.TextCell>{trace.model || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'provider') && (\n <DataList.TextCell>{trace.provider || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traces-list-view.es.js","names":["_Fragment"],"sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumnKeys,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { TraceErrorCell } from './trace-error-cell';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/ds/components/Tooltip';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n /** Model and provider of a model span; only span rows carry them. */\n model?: string | null;\n provider?: string | null;\n status?: string | null;\n /** How the span or the trace's root span ended (`success`, `limit`, …); absent when not recorded. */\n outcome?: string | null;\n stopReason?: string | null;\n stopReasonContext?: Record<string, unknown> | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n /** Server-rendered preview of the root span's output. */\n outputPreview?: string;\n /** Server-rendered preview of the root span's error. Shown in place of the output when `status` is `'error'`. */\n errorPreview?: string;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n /** The root span's time to first chunk; `null` when it never streamed one. */\n timeToFirstChunkMs?: number | null;\n /** The root span's time to first token; `null` when its model never produced one. */\n timeToFirstTokenMs?: number | null;\n /** Thread rows only: every trace in the thread, regardless of the listed time range. */\n traceCount?: number;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\ntype FailedTrace = TracesListViewTrace & { spanId: string; errorPreview: string };\n\n/** A failed row whose error preview can open the full error from its span. */\nfunction isFailedTrace(trace: TracesListViewTrace): trace is FailedTrace {\n return trace.status === 'error' && !!trace.errorPreview && !!trace.spanId;\n}\n\n/** An abbreviated header, spelled out on hover; the sort button already names the column for screen readers. */\nfunction AbbreviatedLabel({ abbreviation, title }: { abbreviation: string; title: string }) {\n return (\n <Tooltip>\n <TooltipTrigger render={<span />}>{abbreviation}</TooltipTrigger>\n <TooltipContent>{title}</TooltipContent>\n </Tooltip>\n );\n}\n\n/** Columns the list can be ordered by, named like the query `orderBy` fields. */\nexport type TracesListSortField = 'startedAt' | 'timeToFirstChunkMs' | 'timeToFirstTokenMs';\nexport type TracesListSort = { field: TracesListSortField; direction: DataListSort };\n\nconst DEFAULT_SORTABLE_FIELDS: readonly TracesListSortField[] = ['startedAt'];\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** What the rows hold, named in the empty messages. Defaults to `traces`. */\n resource?: 'traces' | 'spans' | 'threads';\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current order of the list; only the header of `sort.field` shows a direction. */\n sort?: TracesListSort;\n /** Headers that become sortable when `onSortChange` is provided. Defaults to Start only. */\n sortableFields?: readonly TracesListSortField[];\n onSortChange?: (sort: TracesListSort) => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n /** Storage id for the persisted column order. Use a distinct id per page so each keeps its own order. */\n listId?: string;\n /** Show the Outcome column in place of Status. Defaults to `true`; thread rows carry no outcome. */\n outcomeColumn?: boolean;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n resource = 'traces',\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n sort,\n sortableFields = DEFAULT_SORTABLE_FIELDS,\n onSortChange,\n onFilterByField,\n listId = 'all-traces',\n outcomeColumn = true,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences, { outcomeColumn });\n const columnKeys = buildTraceListColumnKeys(columnPreferences, { outcomeColumn });\n const isSortable = (field: TracesListSortField) => !!onSortChange && sortableFields.includes(field);\n const sortFor = (field: TracesListSortField) => (sort?.field === field ? sort.direction : undefined);\n const handleSortChange = (direction: DataListSort, field: TracesListSortField) =>\n onSortChange?.({ field, direction });\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList\n reorderable\n id={listId}\n columns={columns}\n columnKeys={columnKeys}\n fit=\"container\"\n scrollRef={scrollRef}\n className=\"min-w-0\"\n >\n <TracesDataList.Top>\n {isSortable('startedAt') ? (\n <TracesDataList.SortableTopCell\n sortKey=\"startedAt\"\n sort={sortFor('startedAt')}\n onSortChange={handleSortChange}\n >\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'output') && <TracesDataList.TopCell>Output</TracesDataList.TopCell>}\n {outcomeColumn ? (\n <>\n <TracesDataList.TopCell>Outcome</TracesDataList.TopCell>\n <TracesDataList.TopCell>Stop reason</TracesDataList.TopCell>\n </>\n ) : (\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <TracesDataList.TopCellWithTooltip\n tooltip=\"Messages sent in this thread, counting the whole thread, not just the selected time range\"\n className=\"justify-end text-right\"\n >\n Messages\n </TracesDataList.TopCellWithTooltip>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') &&\n (isSortable('timeToFirstChunkMs') ? (\n <TracesDataList.SortableTopCell\n sortKey=\"timeToFirstChunkMs\"\n sort={sortFor('timeToFirstChunkMs')}\n onSortChange={handleSortChange}\n label=\"Time to first chunk\"\n align=\"end\"\n >\n <AbbreviatedLabel abbreviation=\"TTFC\" title=\"Time to first chunk\" />\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCellWithTooltip tooltip=\"Time to first chunk\" className=\"justify-end text-right\">\n TTFC\n </TracesDataList.TopCellWithTooltip>\n ))}\n {hasTraceColumn(columnPreferences, 'timeToFirstToken') &&\n (isSortable('timeToFirstTokenMs') ? (\n <TracesDataList.SortableTopCell\n sortKey=\"timeToFirstTokenMs\"\n sort={sortFor('timeToFirstTokenMs')}\n onSortChange={handleSortChange}\n label=\"Time to first token\"\n align=\"end\"\n >\n <AbbreviatedLabel abbreviation=\"TTFT\" title=\"Time to first token\" />\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCellWithTooltip tooltip=\"Time to first token\" className=\"justify-end text-right\">\n TTFT\n </TracesDataList.TopCellWithTooltip>\n ))}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && <TracesDataList.TopCell>Model</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'provider') && <TracesDataList.TopCell>Provider</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? `No ${resource} found for applied filters` : `No ${resource} found yet`}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n {hasTraceColumn(columnPreferences, 'output') &&\n (isFailedTrace(trace) ? (\n <TraceErrorCell traceId={trace.traceId} spanId={trace.spanId} errorPreview={trace.errorPreview} />\n ) : (\n <TracesDataList.OutputCell\n output={trace.outputPreview}\n error={trace.errorPreview}\n status={trace.status}\n />\n ))}\n {outcomeColumn ? (\n <>\n <TracesDataList.OutcomeCell outcome={trace.outcome} status={trace.status} />\n <TracesDataList.StopReasonCell\n stopReason={trace.stopReason}\n stopReasonContext={trace.stopReasonContext}\n />\n </>\n ) : (\n <TracesDataList.StatusCell status={trace.status} />\n )}\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'traceCount') && (\n <DataList.NumberCell>\n {trace.traceCount === undefined ? undefined : formatCompactNumber(trace.traceCount)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstChunk') && (\n <DataList.NumberCell font=\"mono\">{formatDuration(trace.timeToFirstChunkMs)}</DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'timeToFirstToken') && (\n <DataList.NumberCell font=\"mono\">{formatDuration(trace.timeToFirstTokenMs)}</DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'model') && (\n <DataList.TextCell>{trace.model || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'provider') && (\n <DataList.TextCell>{trace.provider || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiEA,IAAM,aAAa;AACnB,IAAM,WAAW;;AAEjB,IAAM,oBAAoB;AAE1B,SAAS,kBAAkB,OAA4B,OAAqD;CAC1G,OAAO,MAAM;AACf;AAEA,SAAS,2BAA2B,QAA+B,OAAoC;CACrG,MAAM,yBAAS,IAAI,IAAY;CAC/B,KAAK,MAAM,SAAS,QAAQ;EAC1B,MAAM,QAAQ,MAAM;EACpB,IAAI,OAAO,UAAU,YAAY,OAAO,OAAO,IAAI,KAAK;EACxD,IAAI,OAAO,QAAQ,mBAAmB;CACxC;CACA,OAAO,CAAC,GAAG,MAAM;AACnB;AAEA,SAAS,UAAU,OAA0D;CAC3E,IAAI,OAAO,gBAAgB,KAAA,KAAa,OAAO,iBAAiB,KAAA,GAAW,OAAO,KAAA;CAClF,QAAQ,OAAO,eAAe,MAAM,OAAO,gBAAgB;AAC7D;;AAKA,SAAS,cAAc,OAAkD;CACvE,OAAO,MAAM,WAAW,WAAW,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,MAAM;AACrE;;AAGA,SAAS,iBAAiB,EAAE,cAAc,SAAkD;CAC1F,OACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD;EAAgB,QAAQ,oBAAC,QAAD,CAAO,CAAA;EAAI,UAAA;CAA6B,CAAA,GAChE,oBAAC,gBAAD,EAAA,UAAiB,MAAsB,CAAA,CAChC,EAAA,CAAA;AAEb;AAMA,IAAM,0BAA0D,CAAC,WAAW;;;;;AAgD5E,SAAgB,eAAe,EAC7B,QACA,WACA,oBACA,aACA,qBACA,gBACA,WAAW,UACX,iBACA,gBACA,gBACA,mBACA,oBAAoB,kCACpB,gBACA,cACA,MACA,iBAAiB,yBACjB,cACA,iBACA,SAAS,cACT,gBAAgB,QACM;CACtB,MAAM,YAAY,OAA8B,IAAI;CACpD,MAAM,UAAU,sBAAsB,mBAAmB,EAAE,cAAc,CAAC;CAC1E,MAAM,aAAa,yBAAyB,mBAAmB,EAAE,cAAc,CAAC;CAChF,MAAM,cAAc,UAA+B,CAAC,CAAC,gBAAgB,eAAe,SAAS,KAAK;CAClG,MAAM,WAAW,UAAgC,MAAM,UAAU,QAAQ,KAAK,YAAY,KAAA;CAC1F,MAAM,oBAAoB,WAAyB,UACjD,eAAe;EAAE;EAAO;CAAU,CAAC;CAErC,MAAM,cAAc,eAAe;EACjC,OAAO,OAAO;EACd,wBAAwB,UAAU;EAClC,oBAAoB;EACpB,UAAU;CACZ,CAAC;CAED,MAAM,EAAE,gBAAgB,oBAAoB;EAC1C,OAAO,OAAO;EACd,cAAc;EACd,aAAY,UAAS,YAAY,cAAc,KAAK;EACpD,QAAQ;CACV,CAAC;CAED,MAAM,eAAe,YAAY,gBAAgB;CACjD,MAAM,YAAY,YAAY,aAAa;CAC3C,MAAM,aAAa,aAAa,EAAE,EAAE,SAAS;CAC7C,MAAM,gBACJ,aAAa,SAAS,IAAI,KAAK,IAAI,GAAG,aAAa,aAAa,aAAa,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI;CAEzG,OACE,qBAAC,gBAAD;EACE,aAAA;EACA,IAAI;EACK;EACG;EACZ,KAAI;EACO;EACX,WAAU;EAPZ,UAAA,CASE,qBAAC,eAAe,KAAhB,EAAA,UAAA;GACG,WAAW,WAAW,IACrB,oBAAC,eAAe,iBAAhB;IACE,SAAQ;IACR,MAAM,QAAQ,WAAW;IACzB,cAAc;IACf,UAAA;GAE+B,CAAA,IAEhC,oBAAC,eAAe,SAAhB,EAAA,UAAwB,QAA6B,CAAA;GAEtD,eAAe,mBAAmB,MAAM,KAAK,oBAAC,eAAe,SAAhB,EAAA,UAAwB,iBAAsC,CAAA;GAC5G,oBAAC,eAAe,SAAhB,EAAA,UAAwB,iBAAsC,CAAA;GAC7D,eAAe,mBAAmB,OAAO,KAAK,oBAAC,eAAe,SAAhB,EAAA,UAAwB,QAA6B,CAAA;GACnG,eAAe,mBAAmB,QAAQ,KAAK,oBAAC,eAAe,SAAhB,EAAA,UAAwB,SAA8B,CAAA;GACrG,gBACC,qBAAAA,YAAA,EAAA,UAAA,CACE,oBAAC,eAAe,SAAhB,EAAA,UAAwB,UAA+B,CAAA,GACvD,oBAAC,eAAe,SAAhB,EAAA,UAAwB,cAAmC,CAAA,CAC3D,EAAA,CAAA,IAEF,oBAAC,eAAe,SAAhB,EAAA,UAAwB,SAA8B,CAAA;GAEvD,eAAe,mBAAmB,UAAU,KAC3C,oBAAC,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAgC,CAAA;GAE5F,eAAe,mBAAmB,YAAY,KAC7C,oBAAC,eAAe,oBAAhB;IACE,SAAQ;IACR,WAAU;IACX,UAAA;GAEkC,CAAA;GAEpC,eAAe,mBAAmB,kBAAkB,MAClD,WAAW,oBAAoB,IAC9B,oBAAC,eAAe,iBAAhB;IACE,SAAQ;IACR,MAAM,QAAQ,oBAAoB;IAClC,cAAc;IACd,OAAM;IACN,OAAM;IAEN,UAAA,oBAAC,kBAAD;KAAkB,cAAa;KAAO,OAAM;IAAuB,CAAA;GACrC,CAAA,IAEhC,oBAAC,eAAe,oBAAhB;IAAmC,SAAQ;IAAsB,WAAU;IAAyB,UAAA;GAEjE,CAAA;GAEtC,eAAe,mBAAmB,kBAAkB,MAClD,WAAW,oBAAoB,IAC9B,oBAAC,eAAe,iBAAhB;IACE,SAAQ;IACR,MAAM,QAAQ,oBAAoB;IAClC,cAAc;IACd,OAAM;IACN,OAAM;IAEN,UAAA,oBAAC,kBAAD;KAAkB,cAAa;KAAO,OAAM;IAAuB,CAAA;GACrC,CAAA,IAEhC,oBAAC,eAAe,oBAAhB;IAAmC,SAAQ;IAAsB,WAAU;IAAyB,UAAA;GAEjE,CAAA;GAEtC,eAAe,mBAAmB,SAAS,KAAK,oBAAC,eAAe,SAAhB,EAAA,UAAwB,MAA2B,CAAA;GACnG,eAAe,mBAAmB,aAAa,KAC9C,oBAAC,eAAe,SAAhB,EAAA,UAAwB,cAAmC,CAAA;GAE5D,eAAe,mBAAmB,OAAO,KAAK,oBAAC,eAAe,SAAhB,EAAA,UAAwB,QAA6B,CAAA;GACnG,eAAe,mBAAmB,UAAU,KAAK,oBAAC,eAAe,SAAhB,EAAA,UAAwB,WAAgC,CAAA;GACzG,eAAe,mBAAmB,aAAa,KAC9C,oBAAC,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAoC,CAAA;GAEhG,eAAe,mBAAmB,cAAc,KAC/C,oBAAC,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAqC,CAAA;GAEjG,eAAe,mBAAmB,aAAa,KAC9C,oBAAC,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAoC,CAAA;GAEhG,eAAe,mBAAmB,eAAe,KAChD,oBAAC,eAAe,SAAhB;IAAwB,WAAU;IAAyB,UAAA;GAAiC,CAAA;GAE7F,kBAAkB,cAAc,KAAI,UAAS;IAC5C,MAAM,QAAQ,2BAA2B;IACzC,MAAM,eAAe,kBAAkB,2BAA2B,QAAQ,KAAK,IAAI,CAAC;IACpF,IAAI,CAAC,mBAAmB,aAAa,WAAW,GAC9C,OAAO,oBAAC,eAAe,SAAhB,EAAA,UAAqC,MAA8B,GAAtC,KAAsC;IAE5E,OACE,oBAAC,eAAe,SAAhB;KAAoC,WAAU;KAC5C,UAAA,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,aAAa,SAAd,EACE,QACE,qBAAC,UAAD;MACE,MAAK;MACL,WAAW,GAAG,oEAAoE,SAAS;MAF7F,UAAA,CAIE,oBAAC,QAAD;OAAM,WAAU;OAAoB,UAAA;MAAY,CAAA,GAChD,oBAAC,gBAAD;OAAgB,eAAA;OAAY,WAAU;MAAyB,CAAA,CACzD;KAEX,CAAA,EAAA,CAAA,GACD,qBAAC,aAAa,SAAd;MAAsB,OAAM;MAA5B,UAAA,CACE,oBAAC,aAAa,OAAd,EAAA,UAAoB,kBAAmC,CAAA,GACtD,aAAa,KAAI,UAChB,oBAAC,aAAa,MAAd;OAA+B,gBAAgB,gBAAgB,OAAO,KAAK;OACzE,UAAA,oBAAC,KAAD;QAAK,IAAG;QAAO,SAAQ;QAAU,MAAK;QAAO,WAAU;QACpD,UAAA;OACE,CAAA;MACY,GAJK,KAIL,CACpB,CACmB;KACV,CAAA,CAAA,EAAA,CAAA;IACQ,GAxBK,KAwBL;GAE5B,CAAC;GACA,kBAAkB,aAAa,KAAI,QAClC,oBAAC,eAAe,oBAAhB;IAA6C,SAAS;IACnD,UAAA;GACgC,GAFK,GAEL,CACpC;EACiB,EAAA,CAAA,GAEnB,YACC,oBAAC,sBAAD,EAAsB,aAAa,aAAa,OAAO,CAAC,CAAC,OAAS,CAAA,IAChE,OAAO,WAAW,IACpB,oBAAC,eAAe,SAAhB,EACE,SAAS,iBAAiB,MAAM,SAAS,8BAA8B,MAAM,SAAS,YACvF,CAAA,IAED,qBAAAA,YAAA,EAAA,UAAA;GACE,oBAAC,eAAe,QAAhB,EAAuB,QAAQ,WAAa,CAAA;GAC3C,aAAa,KAAI,OAAM;IACtB,MAAM,QAAQ,OAAO,GAAG;IACxB,IAAI,CAAC,OAAO,OAAO;IAEnB,MAAM,aACJ,MAAM,YAAY,oBAAoB,kBAAkB,QAAQ,MAAM,WAAW;IACnF,MAAM,SAAS,GAAG,MAAM,QAAQ,GAAG,MAAM,UAAU;IACnD,MAAM,kBAAkB,mBAAmB,IAAI,MAAM,KAAK;IAC1D,MAAM,cAAc,MAAM,aAAa,MAAM;IAC7C,MAAM,QAAQ,gBAAgB,IAAI,MAAM,OAAO;IAE/C,OACE,qBAAC,eAAe,WAAhB;KAEE,KAAK,YAAY;KACjB,cAAY,GAAG;KACf,GAAI,YAAY,GAAG,KAAK;KACxB,eAAe,aAAa,KAAK;KACjC,UAAU;KACV,WAAW,GAAG,mBAAmB,uBAAuB;KAP1D,UAAA;MASE,oBAAC,eAAe,aAAhB;OAA4B,WAAW;OAAa,QAAO;MAAoB,CAAA;MAC9E,eAAe,mBAAmB,MAAM,KAAK,oBAAC,eAAe,UAAhB,EAAyB,YAAY,MAAM,WAAa,CAAA;MACtG,oBAAC,eAAe,UAAhB;OACE,MAAM,MAAM,cAAc,MAAM;OAChC,cAAc,MAAM;OACpB,kBAAkB;MACnB,CAAA;MACA,eAAe,mBAAmB,OAAO,KACxC,oBAAC,eAAe,WAAhB,EAA0B,OAAO,MAAM,gBAAgB,gBAAgB,MAAM,KAAK,EAAI,CAAA;MAEvF,eAAe,mBAAmB,QAAQ,MACxC,cAAc,KAAK,IAClB,oBAAC,gBAAD;OAAgB,SAAS,MAAM;OAAS,QAAQ,MAAM;OAAQ,cAAc,MAAM;MAAe,CAAA,IAEjG,oBAAC,eAAe,YAAhB;OACE,QAAQ,MAAM;OACd,OAAO,MAAM;OACb,QAAQ,MAAM;MACf,CAAA;MAEJ,gBACC,qBAAAA,YAAA,EAAA,UAAA,CACE,oBAAC,eAAe,aAAhB;OAA4B,SAAS,MAAM;OAAS,QAAQ,MAAM;MAAS,CAAA,GAC3E,oBAAC,eAAe,gBAAhB;OACE,YAAY,MAAM;OAClB,mBAAmB,MAAM;MAC1B,CAAA,CACD,EAAA,CAAA,IAEF,oBAAC,eAAe,YAAhB,EAA2B,QAAQ,MAAM,OAAS,CAAA;MAEnD,eAAe,mBAAmB,UAAU,KAC3C,oBAAC,SAAS,YAAV;OAAqB,MAAK;OACvB,UAAA,eAAe,kBAAkB,MAAM,WAAW,MAAM,OAAO,CAAC;MAC9C,CAAA;MAEtB,eAAe,mBAAmB,YAAY,KAC7C,oBAAC,SAAS,YAAV,EAAA,UACG,MAAM,eAAe,KAAA,IAAY,KAAA,IAAY,oBAAoB,MAAM,UAAU,EAC/D,CAAA;MAEtB,eAAe,mBAAmB,kBAAkB,KACnD,oBAAC,SAAS,YAAV;OAAqB,MAAK;OAAQ,UAAA,eAAe,MAAM,kBAAkB;MAAuB,CAAA;MAEjG,eAAe,mBAAmB,kBAAkB,KACnD,oBAAC,SAAS,YAAV;OAAqB,MAAK;OAAQ,UAAA,eAAe,MAAM,kBAAkB;MAAuB,CAAA;MAEjG,eAAe,mBAAmB,SAAS,KAC1C,oBAAC,eAAe,aAAhB;OAA4B,WAAW,MAAM,WAAW;OAAI,QAAO;MAAoB,CAAA;MAExF,eAAe,mBAAmB,aAAa,KAC9C,oBAAC,SAAS,UAAV,EAAA,UAAoB,MAAM,eAAe,IAAuB,CAAA;MAEjE,eAAe,mBAAmB,OAAO,KACxC,oBAAC,SAAS,UAAV,EAAA,UAAoB,MAAM,SAAS,IAAuB,CAAA;MAE3D,eAAe,mBAAmB,UAAU,KAC3C,oBAAC,SAAS,UAAV,EAAA,UAAoB,MAAM,YAAY,IAAuB,CAAA;MAE9D,eAAe,mBAAmB,aAAa,KAC9C,oBAAC,SAAS,YAAV,EAAA,UACG,OAAO,gBAAgB,KAAA,IAAY,KAAA,IAAY,oBAAoB,MAAM,WAAW,EAClE,CAAA;MAEtB,eAAe,mBAAmB,cAAc,KAC/C,oBAAC,SAAS,YAAV,EAAA,UACG,OAAO,iBAAiB,KAAA,IAAY,KAAA,IAAY,oBAAoB,MAAM,YAAY,EACpE,CAAA;MAEtB,eAAe,mBAAmB,aAAa,KAC9C,oBAAC,SAAS,YAAV,EAAA,iBACU;OACN,MAAM,QAAQ,UAAU,KAAK;OAC7B,OAAO,UAAU,KAAA,IAAY,KAAA,IAAY,oBAAoB,KAAK;MACpE,EAAA,CAAG,EACgB,CAAA;MAEtB,eAAe,mBAAmB,eAAe,KAChD,oBAAC,SAAS,YAAV,EAAA,UACG,OAAO,kBAAkB,KAAA,IAAY,KAAA,IAAY,WAAW,MAAM,eAAe,MAAM,QAAQ,EAC7E,CAAA;MAEtB,kBAAkB,cAAc,KAAI,UACnC,oBAAC,SAAS,UAAV;OAAmB,MAAK;OACrB,UAAA,kBAAkB,OAAO,KAAK,KAAK,KAAA;MACnB,GAFiB,KAEjB,CACpB;MACA,kBAAkB,aAAa,KAAI,QAAO;OACzC,MAAM,QAAQ,yBAAyB,MAAM,UAAU,GAAG;OAC1D,OACE,oBAAC,SAAS,UAAV;QAAmB,MAAK;QACrB,UAAA;OACgB,GAFiB,GAEjB;MAEvB,CAAC;KACuB;IAvGnB,GAAA,MAuGmB;GAE9B,CAAC;GACD,oBAAC,eAAe,QAAhB,EAAuB,QAAQ,cAAgB,CAAA;GAC/C,oBAAC,eAAe,iBAAhB;IACE,WAAW;IACX,SAAS;IACY;GACtB,CAAA;EACD,EAAA,CAAA,CAEU;;AAEpB"}
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_components_Skeleton = require("../../../components/Skeleton.cjs.js");
3
- const require_DataList = require("../../../DataList-Cmk08jUV.cjs");
3
+ const require_DataList = require("../../../DataList-Czwmwyvp.cjs");
4
4
  const require_domains_traces_trace_list_columns = require("../trace-list-columns.cjs.js");
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
6
  // src/domains/traces/components/traces-page-skeleton.tsx
@@ -1,5 +1,5 @@
1
1
  import { Skeleton } from "../../../components/Skeleton.es.js";
2
- import { r as DataListSkeleton } from "../../../DataList-Ve3omCXT.js";
2
+ import { r as DataListSkeleton } from "../../../DataList-2tIlQsLc.js";
3
3
  import { DEFAULT_TRACE_COLUMN_PREFERENCES, buildTraceListColumns } from "../trace-list-columns.es.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  // src/domains/traces/components/traces-page-skeleton.tsx
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_trace_filters = require("../../trace-filters-BpeBUjCb.cjs");
2
+ const require_trace_filters = require("../../trace-filters-BNEZ31HX.cjs");
3
3
  let _mastra_react_hooks_traces = require("@mastra/react/hooks/traces");
4
4
  exports.DEFAULT_TRACE_FILTERS_STORAGE_KEY = require_trace_filters.DEFAULT_TRACE_FILTERS_STORAGE_KEY;
5
5
  Object.defineProperty(exports, "ROOT_ENTITY_TYPES", {
@@ -35,10 +35,12 @@ exports.TRACE_STATUS_VALUES = require_trace_filters.TRACE_STATUS_VALUES;
35
35
  exports.TRACE_STRING_OPERATORS = require_trace_filters.TRACE_STRING_OPERATORS;
36
36
  exports.TRACE_SYNTHETIC_FILTER_FIELD_IDS = require_trace_filters.TRACE_SYNTHETIC_FILTER_FIELD_IDS;
37
37
  exports.TRACE_SYNTHETIC_OPERATORS = require_trace_filters.TRACE_SYNTHETIC_OPERATORS;
38
+ exports.TRACE_TAGS_OPERATORS = require_trace_filters.TRACE_TAGS_OPERATORS;
38
39
  exports.TRACE_TEXT_OPERATORS = require_trace_filters.TRACE_TEXT_OPERATORS;
39
40
  exports.applyTracePropertyFilterTokens = require_trace_filters.applyTracePropertyFilterTokens;
40
41
  exports.buildTraceListFilters = require_trace_filters.buildTraceListFilters;
41
42
  exports.clearSavedTraceFilters = require_trace_filters.clearSavedTraceFilters;
43
+ exports.createOutcomeFilterBarFields = require_trace_filters.createOutcomeFilterBarFields;
42
44
  exports.createTraceFilterBarFields = require_trace_filters.createTraceFilterBarFields;
43
45
  exports.filterBarExpressionToTraceFilters = require_trace_filters.filterBarExpressionToTraceFilters;
44
46
  exports.filterBarItemsToTraceTokens = require_trace_filters.filterBarItemsToTraceTokens;
@@ -60,4 +62,6 @@ exports.traceFilterFieldIcon = require_trace_filters.traceFilterFieldIcon;
60
62
  exports.traceFilterOperatorParam = require_trace_filters.traceFilterOperatorParam;
61
63
  exports.traceFilterTokenOperator = require_trace_filters.traceFilterTokenOperator;
62
64
  exports.traceFiltersToFilterBarExpression = require_trace_filters.traceFiltersToFilterBarExpression;
65
+ exports.traceQueryUnqueryableFieldIds = require_trace_filters.traceQueryUnqueryableFieldIds;
63
66
  exports.traceTokensToFilterBarItems = require_trace_filters.traceTokensToFilterBarItems;
67
+ exports.withoutUnrecordedStreamingTimings = require_trace_filters.withoutUnrecordedStreamingTimings;
@@ -1 +1 @@
1
- export { t as DEFAULT_TRACE_FILTERS_STORAGE_KEY, n as ROOT_ENTITY_TYPES, r as ROOT_ENTITY_TYPE_OPTIONS, i as TRACE_ANCHOR_SPAN_ID_PARAM, a as TRACE_DATE_FROM_PARAM, o as TRACE_DATE_PRESET_PARAM, s as TRACE_DATE_PRESET_VALUES, c as TRACE_DATE_TO_PARAM, l as TRACE_FILTER_BAR_LABELS, u as TRACE_FILTER_BAR_OPERATORS, d as TRACE_FILTER_GROUP_PARAM, f as TRACE_FILTER_OPERATOR_PARAM_SUFFIX, p as TRACE_LIST_MODE_OPTIONS, m as TRACE_LIST_MODE_PARAM, h as TRACE_LIST_MODE_VALUES, g as TRACE_METADATA_FILTER_FIELD_PREFIX, _ as TRACE_METADATA_FILTER_PARAM_PREFIX, v as TRACE_NUMBER_OPERATORS, y as TRACE_PRESENCE_OPERATORS, b as TRACE_PROPERTY_FILTER_FIELD_IDS, x as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, S as TRACE_REQUIRED_STRING_OPERATORS, C as TRACE_ROOT_ENTITY_TYPE_PARAM, w as TRACE_STATUS_OPTIONS, T as TRACE_STATUS_PARAM, E as TRACE_STATUS_VALUES, D as TRACE_STRING_OPERATORS, O as TRACE_SYNTHETIC_FILTER_FIELD_IDS, k as TRACE_SYNTHETIC_OPERATORS, A as TRACE_TEXT_OPERATORS, j as applyTracePropertyFilterTokens, M as buildTraceListFilters, N as clearSavedTraceFilters, P as createTraceFilterBarFields, F as filterBarExpressionToTraceFilters, I as filterBarItemsToTraceTokens, L as getPreservedTraceFilterParams, R as getTraceFilterGroups, z as getTracePropertyFilterTokens, B as hasAnyTraceFilterParams, V as isLegacyAnyValue, ot as isTraceFilterGroup, H as isTraceMetadataFieldId, U as loadTraceFiltersFromStorage, W as metadataFieldIdToParam, G as metadataParamToFieldId, K as parseTraceFilterGroupParam, q as saveTraceFiltersToStorage, J as serializeTraceFilterGroup, Y as traceFilterFieldColor, X as traceFilterFieldIcon, Z as traceFilterOperatorParam, Q as traceFilterTokenOperator, $ as traceFiltersToFilterBarExpression, et as traceTokensToFilterBarItems } from "../../trace-filters-C27yWcan.js";
1
+ export { t as DEFAULT_TRACE_FILTERS_STORAGE_KEY, n as ROOT_ENTITY_TYPES, r as ROOT_ENTITY_TYPE_OPTIONS, i as TRACE_ANCHOR_SPAN_ID_PARAM, a as TRACE_DATE_FROM_PARAM, o as TRACE_DATE_PRESET_PARAM, s as TRACE_DATE_PRESET_VALUES, c as TRACE_DATE_TO_PARAM, l as TRACE_FILTER_BAR_LABELS, u as TRACE_FILTER_BAR_OPERATORS, d as TRACE_FILTER_GROUP_PARAM, f as TRACE_FILTER_OPERATOR_PARAM_SUFFIX, p as TRACE_LIST_MODE_OPTIONS, m as TRACE_LIST_MODE_PARAM, h as TRACE_LIST_MODE_VALUES, g as TRACE_METADATA_FILTER_FIELD_PREFIX, _ as TRACE_METADATA_FILTER_PARAM_PREFIX, v as TRACE_NUMBER_OPERATORS, y as TRACE_PRESENCE_OPERATORS, b as TRACE_PROPERTY_FILTER_FIELD_IDS, x as TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, S as TRACE_REQUIRED_STRING_OPERATORS, C as TRACE_ROOT_ENTITY_TYPE_PARAM, w as TRACE_STATUS_OPTIONS, T as TRACE_STATUS_PARAM, E as TRACE_STATUS_VALUES, D as TRACE_STRING_OPERATORS, O as TRACE_SYNTHETIC_FILTER_FIELD_IDS, k as TRACE_SYNTHETIC_OPERATORS, A as TRACE_TAGS_OPERATORS, j as TRACE_TEXT_OPERATORS, M as applyTracePropertyFilterTokens, N as buildTraceListFilters, P as clearSavedTraceFilters, F as createOutcomeFilterBarFields, I as createTraceFilterBarFields, L as filterBarExpressionToTraceFilters, R as filterBarItemsToTraceTokens, z as getPreservedTraceFilterParams, B as getTraceFilterGroups, V as getTracePropertyFilterTokens, H as hasAnyTraceFilterParams, U as isLegacyAnyValue, ut as isTraceFilterGroup, W as isTraceMetadataFieldId, G as loadTraceFiltersFromStorage, K as metadataFieldIdToParam, q as metadataParamToFieldId, J as parseTraceFilterGroupParam, Y as saveTraceFiltersToStorage, X as serializeTraceFilterGroup, Z as traceFilterFieldColor, Q as traceFilterFieldIcon, $ as traceFilterOperatorParam, et as traceFilterTokenOperator, tt as traceFiltersToFilterBarExpression, nt as traceQueryUnqueryableFieldIds, rt as traceTokensToFilterBarItems, it as withoutUnrecordedStreamingTimings } from "../../trace-filters-BJaebsxJ.js";