@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-explorer-actions.es.js","names":[],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-actions.ts"],"sourcesContent":["import { buildTraceListFilters, ROOT_ENTITY_TYPE_OPTIONS, TRACE_STATUS_VALUES } from '../../trace-filters';\nimport type { EntityOptions, TraceFilterGroup, TraceFilterToken, TraceStatusFilter } from '../../trace-filters';\nimport { buildTraceQueryRequest, TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS } from '../../trace-query-filters';\nimport type { SpanTab, TraceDatePreset } from '../../types';\nimport type { TraceSpanView } from '../trace-data-panel-view';\n\nexport type TracesSelection = {\n traceId?: string;\n spanId?: string;\n spanTab?: SpanTab;\n spanView: TraceSpanView;\n scoreId?: string;\n highlightSpanIds: string[];\n};\n\n/** `rootEntityType` and `status` are tokens too (`fieldId: 'rootEntityType' | 'status'`), like every other filter. */\nexport type TracesFilters = {\n datePreset: TraceDatePreset;\n /** Only read when `datePreset` is `custom`. */\n dateFrom?: Date;\n /** Only read when `datePreset` is `custom`. */\n dateTo?: Date;\n tokens: TraceFilterToken[];\n groups: TraceFilterGroup[];\n};\n\nexport type TracesSortDirection = 'asc' | 'desc';\n\n/** Fields the traces list can be sorted by, named like the trace query's `orderBy` fields. */\nexport type TracesSortField = 'startedAt' | 'timeToFirstChunkMs';\n\nexport type TracesSort = { field: TracesSortField; direction: TracesSortDirection };\n\nexport const DEFAULT_TRACES_SORT: TracesSort = { field: 'startedAt', direction: 'desc' };\n\n/** What the explorer emits on every change: filters and selection move together (a filter edit clears the selection). */\nexport type TracesExplorerState = { selection: TracesSelection; filters: TracesFilters };\n\nexport const EMPTY_TRACES_SELECTION: TracesSelection = { spanView: 'tree', highlightSpanIds: [] };\n\nexport const DEFAULT_TRACES_FILTERS: TracesFilters = { datePreset: 'last-7d', tokens: [], groups: [] };\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<TraceDatePreset, number>> = {\n 'last-24h': DAY_MS,\n 'last-3d': 3 * DAY_MS,\n 'last-7d': 7 * DAY_MS,\n 'last-14d': 14 * DAY_MS,\n 'last-30d': 30 * DAY_MS,\n};\n\nexport const isSelectionEmpty = (selection: TracesSelection) =>\n !selection.traceId &&\n !selection.spanId &&\n !selection.spanTab &&\n !selection.scoreId &&\n selection.highlightSpanIds.length === 0;\n\n/** Keeps the span view: it is a display preference, not part of what is selected. */\nexport const clearSelection = (selection: TracesSelection): TracesSelection => ({\n spanView: selection.spanView,\n highlightSpanIds: [],\n});\n\nexport const selectTrace = (selection: TracesSelection, traceId: string | null): TracesSelection =>\n traceId ? { traceId, spanView: selection.spanView, highlightSpanIds: [] } : clearSelection(selection);\n\n/**\n * The open tab stays, so stepping through spans compares the same tab; the score belongs to the\n * previous span and is dropped with it.\n */\nexport const selectSpan = (selection: TracesSelection, spanId: string | null): TracesSelection => {\n if ((spanId ?? undefined) === selection.spanId) return selection;\n return { ...selection, spanId: spanId ?? undefined, scoreId: undefined };\n};\n\nexport const setSpanTab = (selection: TracesSelection, tab: SpanTab): TracesSelection => {\n if (tab === selection.spanTab) return selection;\n return { ...selection, spanTab: tab === 'details' ? undefined : tab, scoreId: undefined };\n};\n\nexport const setSpanView = (selection: TracesSelection, spanView: TraceSpanView): TracesSelection =>\n spanView === selection.spanView ? selection : { ...selection, spanView };\n\nexport const selectScore = (selection: TracesSelection, scoreId: string | null): TracesSelection =>\n (scoreId ?? undefined) === selection.scoreId ? selection : { ...selection, scoreId: scoreId ?? undefined };\n\nexport const highlightSpans = (selection: TracesSelection, spanIds: string[]): TracesSelection => {\n const unchanged =\n spanIds.length === selection.highlightSpanIds.length &&\n spanIds.every((id, index) => id === selection.highlightSpanIds[index]);\n return unchanged ? selection : { ...selection, highlightSpanIds: spanIds };\n};\n\nexport const applyFilterTokens = (\n filters: TracesFilters,\n tokens: TraceFilterToken[],\n groups: TraceFilterGroup[],\n): TracesFilters => ({ ...filters, tokens, groups });\n\n/** Switching to `custom` keeps the current dates so the picker opens on them; any other preset drops them. */\nexport const applyDatePreset = (filters: TracesFilters, datePreset: TraceDatePreset): TracesFilters =>\n datePreset === 'custom' ? { ...filters, datePreset } : { datePreset, tokens: filters.tokens, groups: filters.groups };\n\n// The picker can report a date right after switching away from `custom`; those are ignored.\nexport const applyDate = (filters: TracesFilters, date: Date | undefined, end: 'from' | 'to'): TracesFilters => {\n if (filters.datePreset !== 'custom') return filters;\n return end === 'from' ? { ...filters, dateFrom: date } : { ...filters, dateTo: date };\n};\n\nexport const applyDateRange = (\n filters: TracesFilters,\n dateFrom: Date | undefined,\n dateTo: Date | undefined,\n): TracesFilters => (filters.datePreset === 'custom' ? { ...filters, dateFrom, dateTo } : filters);\n\nconst ROOT_DURATION_FIELD_IDS: ReadonlySet<string> = new Set(['durationMs']);\nconst NO_FIELD_IDS: ReadonlySet<string> = new Set();\n\n/** Fields this server can't query on top of the always-unsupported ones: root duration needs its capability. */\nconst serverUnqueryableFieldIds = (withRootDuration: boolean) =>\n withRootDuration ? NO_FIELD_IDS : ROOT_DURATION_FIELD_IDS;\n\nconst isQueryableToken = (token: TraceFilterToken, withRootDuration: boolean) => {\n if (token.fieldId === 'status' && token.value === 'running') return false;\n if (TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS.has(token.fieldId)) return false;\n return !serverUnqueryableFieldIds(withRootDuration).has(token.fieldId);\n};\n\n/**\n * Drops the top-level tokens the trace query can't run, so no chip advertises a filter with no effect.\n * Groups pass through and stay visible in the bar: `buildTracesQueryRequest` leaves their unqueryable\n * conditions out of the query. Returns the same object when nothing is dropped.\n */\nexport const sanitizeTracesFilters = (filters: TracesFilters, withRootDuration: boolean): TracesFilters => {\n const tokens = filters.tokens.filter(token => isQueryableToken(token, withRootDuration));\n return tokens.length === filters.tokens.length ? filters : { ...filters, tokens };\n};\n\nconst selectsRunning = (node: TraceFilterGroup | TraceFilterToken): boolean => {\n if ('nodes' in node) return node.nodes.some(selectsRunning);\n if (node.fieldId !== 'status') return false;\n return Array.isArray(node.value) ? node.value.includes('running') : node.value === 'running';\n};\n\n/** Whether a status filter asks for `running`, which the trace query can't express and drops. */\nexport const selectsRunningStatus = (filters: TracesFilters): boolean =>\n filters.tokens.some(selectsRunning) || filters.groups.some(selectsRunning);\n\nconst tokenValue = (tokens: TraceFilterToken[], fieldId: string) => {\n const value = tokens.find(token => token.fieldId === fieldId)?.value;\n return typeof value === 'string' ? value : undefined;\n};\n\nexport const getSelectedEntityOption = (tokens: TraceFilterToken[]): EntityOptions | undefined => {\n const value = tokenValue(tokens, 'rootEntityType');\n return ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === value);\n};\n\nexport const getSelectedStatus = (tokens: TraceFilterToken[]): TraceStatusFilter | undefined => {\n const value = tokenValue(tokens, 'status');\n return value && TRACE_STATUS_VALUES.has(value as TraceStatusFilter) ? (value as TraceStatusFilter) : undefined;\n};\n\ntype TracesQueryWindow = { filters: TracesFilters; dateFrom?: Date; dateTo?: Date };\n\n/** The trace query for the (sanitized) filters and the resolved date window. */\nexport const buildTracesQueryRequest = ({\n filters,\n dateFrom,\n dateTo,\n withRootDuration,\n now,\n}: TracesQueryWindow & { withRootDuration: boolean; now: Date }) =>\n buildTraceQueryRequest({\n rootEntityType: getSelectedEntityOption(filters.tokens)?.entityType,\n status: getSelectedStatus(filters.tokens),\n dateFrom,\n dateTo,\n tokens: filters.tokens,\n groups: filters.groups,\n excludedFieldIds: serverUnqueryableFieldIds(withRootDuration),\n now,\n });\n\n/** The `listTracesLight` filters for servers without the trace query API (no groups there). */\nexport const buildTracesLegacyFilters = ({ filters, dateFrom, dateTo }: TracesQueryWindow) =>\n buildTraceListFilters({\n rootEntityType: getSelectedEntityOption(filters.tokens)?.entityType,\n status: getSelectedStatus(filters.tokens),\n dateFrom,\n dateTo,\n tokens: filters.tokens,\n });\n\n/** Rolling presets start `PRESET_MS` before now and stay open-ended; `all` is open on both ends. */\nexport const resolveTracesDateWindow = (\n datePreset: TraceDatePreset,\n dateFrom: Date | undefined,\n dateTo: Date | undefined,\n): { dateFrom?: Date; dateTo?: Date } => {\n if (datePreset === 'custom') return { dateFrom, dateTo };\n const ms = PRESET_MS[datePreset];\n return { dateFrom: ms ? new Date(Date.now() - ms) : undefined, dateTo: undefined };\n};\n"],"mappings":";;AAiCA,IAAa,sBAAkC;CAAE,OAAO;CAAa,WAAW;AAAO;AAKvF,IAAa,yBAA0C;CAAE,UAAU;CAAQ,kBAAkB,CAAC;AAAE;AAEhG,IAAa,yBAAwC;CAAE,YAAY;CAAW,QAAQ,CAAC;CAAG,QAAQ,CAAC;AAAE;AAErG,IAAM,SAAS;AACf,IAAM,YAAsD;CAC1D,YAAY;CACZ,WAAW,IAAI;CACf,WAAW,IAAI;CACf,YAAY,KAAK;CACjB,YAAY,KAAK;AACnB;AAEA,IAAa,oBAAoB,cAC/B,CAAC,UAAU,WACX,CAAC,UAAU,UACX,CAAC,UAAU,WACX,CAAC,UAAU,WACX,UAAU,iBAAiB,WAAW;;AAGxC,IAAa,kBAAkB,eAAiD;CAC9E,UAAU,UAAU;CACpB,kBAAkB,CAAC;AACrB;AAEA,IAAa,eAAe,WAA4B,YACtD,UAAU;CAAE;CAAS,UAAU,UAAU;CAAU,kBAAkB,CAAC;AAAE,IAAI,eAAe,SAAS;;;;;AAMtG,IAAa,cAAc,WAA4B,WAA2C;CAChG,KAAK,UAAU,KAAA,OAAe,UAAU,QAAQ,OAAO;CACvD,OAAO;EAAE,GAAG;EAAW,QAAQ,UAAU,KAAA;EAAW,SAAS,KAAA;CAAU;AACzE;AAEA,IAAa,cAAc,WAA4B,QAAkC;CACvF,IAAI,QAAQ,UAAU,SAAS,OAAO;CACtC,OAAO;EAAE,GAAG;EAAW,SAAS,QAAQ,YAAY,KAAA,IAAY;EAAK,SAAS,KAAA;CAAU;AAC1F;AAEA,IAAa,eAAe,WAA4B,aACtD,aAAa,UAAU,WAAW,YAAY;CAAE,GAAG;CAAW;AAAS;AAEzE,IAAa,eAAe,WAA4B,aACrD,WAAW,KAAA,OAAe,UAAU,UAAU,YAAY;CAAE,GAAG;CAAW,SAAS,WAAW,KAAA;AAAU;AAE3G,IAAa,kBAAkB,WAA4B,YAAuC;CAIhG,OAFE,QAAQ,WAAW,UAAU,iBAAiB,UAC9C,QAAQ,OAAO,IAAI,UAAU,OAAO,UAAU,iBAAiB,MAAM,IACpD,YAAY;EAAE,GAAG;EAAW,kBAAkB;CAAQ;AAC3E;AAEA,IAAa,qBACX,SACA,QACA,YACmB;CAAE,GAAG;CAAS;CAAQ;AAAO;;AAGlD,IAAa,mBAAmB,SAAwB,eACtD,eAAe,WAAW;CAAE,GAAG;CAAS;AAAW,IAAI;CAAE;CAAY,QAAQ,QAAQ;CAAQ,QAAQ,QAAQ;AAAO;AAGtH,IAAa,aAAa,SAAwB,MAAwB,QAAsC;CAC9G,IAAI,QAAQ,eAAe,UAAU,OAAO;CAC5C,OAAO,QAAQ,SAAS;EAAE,GAAG;EAAS,UAAU;CAAK,IAAI;EAAE,GAAG;EAAS,QAAQ;CAAK;AACtF;AAEA,IAAa,kBACX,SACA,UACA,WACmB,QAAQ,eAAe,WAAW;CAAE,GAAG;CAAS;CAAU;AAAO,IAAI;AAE1F,IAAM,0CAA+C,IAAI,IAAI,CAAC,YAAY,CAAC;AAC3E,IAAM,+BAAoC,IAAI,IAAI;;AAGlD,IAAM,6BAA6B,qBACjC,mBAAmB,eAAe;AAEpC,IAAM,oBAAoB,OAAyB,qBAA8B;CAC/E,IAAI,MAAM,YAAY,YAAY,MAAM,UAAU,WAAW,OAAO;CACpE,IAAI,sCAAsC,IAAI,MAAM,OAAO,GAAG,OAAO;CACrE,OAAO,CAAC,0BAA0B,gBAAgB,CAAC,CAAC,IAAI,MAAM,OAAO;AACvE;;;;;;AAOA,IAAa,yBAAyB,SAAwB,qBAA6C;CACzG,MAAM,SAAS,QAAQ,OAAO,QAAO,UAAS,iBAAiB,OAAO,gBAAgB,CAAC;CACvF,OAAO,OAAO,WAAW,QAAQ,OAAO,SAAS,UAAU;EAAE,GAAG;EAAS;CAAO;AAClF;AAEA,IAAM,kBAAkB,SAAuD;CAC7E,IAAI,WAAW,MAAM,OAAO,KAAK,MAAM,KAAK,cAAc;CAC1D,IAAI,KAAK,YAAY,UAAU,OAAO;CACtC,OAAO,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,MAAM,SAAS,SAAS,IAAI,KAAK,UAAU;AACrF;;AAGA,IAAa,wBAAwB,YACnC,QAAQ,OAAO,KAAK,cAAc,KAAK,QAAQ,OAAO,KAAK,cAAc;AAE3E,IAAM,cAAc,QAA4B,YAAoB;CAClE,MAAM,QAAQ,OAAO,MAAK,UAAS,MAAM,YAAY,OAAO,CAAC,EAAE;CAC/D,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;AAC7C;AAEA,IAAa,2BAA2B,WAA0D;CAChG,MAAM,QAAQ,WAAW,QAAQ,gBAAgB;CACjD,OAAO,yBAAyB,MAAK,WAAU,OAAO,eAAe,KAAK;AAC5E;AAEA,IAAa,qBAAqB,WAA8D;CAC9F,MAAM,QAAQ,WAAW,QAAQ,QAAQ;CACzC,OAAO,SAAS,oBAAoB,IAAI,KAA0B,IAAK,QAA8B,KAAA;AACvG;;AAKA,IAAa,2BAA2B,EACtC,SACA,UACA,QACA,kBACA,UAEA,uBAAuB;CACrB,gBAAgB,wBAAwB,QAAQ,MAAM,CAAC,EAAE;CACzD,QAAQ,kBAAkB,QAAQ,MAAM;CACxC;CACA;CACA,QAAQ,QAAQ;CAChB,QAAQ,QAAQ;CAChB,kBAAkB,0BAA0B,gBAAgB;CAC5D;AACF,CAAC;;AAGH,IAAa,4BAA4B,EAAE,SAAS,UAAU,aAC5D,sBAAsB;CACpB,gBAAgB,wBAAwB,QAAQ,MAAM,CAAC,EAAE;CACzD,QAAQ,kBAAkB,QAAQ,MAAM;CACxC;CACA;CACA,QAAQ,QAAQ;AAClB,CAAC;;AAGH,IAAa,2BACX,YACA,UACA,WACuC;CACvC,IAAI,eAAe,UAAU,OAAO;EAAE;EAAU;CAAO;CACvD,MAAM,KAAK,UAAU;CACrB,OAAO;EAAE,UAAU,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,KAAA;EAAW,QAAQ,KAAA;CAAU;AACnF"}
1
+ {"version":3,"file":"traces-explorer-actions.es.js","names":[],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-actions.ts"],"sourcesContent":["import {\n buildTraceListFilters,\n ROOT_ENTITY_TYPE_OPTIONS,\n TRACE_STATUS_VALUES,\n traceQueryUnqueryableFieldIds,\n} from '../../trace-filters';\nimport type {\n EntityOptions,\n TraceFilterGroup,\n TraceFilterToken,\n TraceQueryFieldSupport,\n TraceStatusFilter,\n} from '../../trace-filters';\nimport { buildTraceQueryRequest, TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS } from '../../trace-query-filters';\nimport type { SpanTab, TraceDatePreset } from '../../types';\nimport type { TraceSpanView } from '../trace-data-panel-view';\n\nexport type TracesSelection = {\n traceId?: string;\n spanId?: string;\n spanTab?: SpanTab;\n spanView: TraceSpanView;\n scoreId?: string;\n highlightSpanIds: string[];\n};\n\n/** `rootEntityType` and `status` are tokens too (`fieldId: 'rootEntityType' | 'status'`), like every other filter. */\nexport type TracesFilters = {\n datePreset: TraceDatePreset;\n /** Only read when `datePreset` is `custom`. */\n dateFrom?: Date;\n /** Only read when `datePreset` is `custom`. */\n dateTo?: Date;\n tokens: TraceFilterToken[];\n groups: TraceFilterGroup[];\n};\n\nexport type TracesSortDirection = 'asc' | 'desc';\n\n/** Fields the traces list can be sorted by, named like the trace query's `orderBy` fields. */\nexport const TRACES_SORT_FIELDS = ['startedAt', 'timeToFirstChunkMs', 'timeToFirstTokenMs'] as const;\nexport type TracesSortField = (typeof TRACES_SORT_FIELDS)[number];\n\nexport type TracesSort = { field: TracesSortField; direction: TracesSortDirection };\n\nexport const DEFAULT_TRACES_SORT: TracesSort = { field: 'startedAt', direction: 'desc' };\n\n/** What the explorer emits on every change: filters and selection move together (a filter edit clears the selection). */\nexport type TracesExplorerState = { selection: TracesSelection; filters: TracesFilters };\n\nexport const EMPTY_TRACES_SELECTION: TracesSelection = { spanView: 'tree', highlightSpanIds: [] };\n\nexport const DEFAULT_TRACES_FILTERS: TracesFilters = { datePreset: 'last-7d', tokens: [], groups: [] };\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<TraceDatePreset, number>> = {\n 'last-24h': DAY_MS,\n 'last-3d': 3 * DAY_MS,\n 'last-7d': 7 * DAY_MS,\n 'last-14d': 14 * DAY_MS,\n 'last-30d': 30 * DAY_MS,\n};\n\nexport const isSelectionEmpty = (selection: TracesSelection) =>\n !selection.traceId &&\n !selection.spanId &&\n !selection.spanTab &&\n !selection.scoreId &&\n selection.highlightSpanIds.length === 0;\n\n/** Keeps the span view: it is a display preference, not part of what is selected. */\nexport const clearSelection = (selection: TracesSelection): TracesSelection => ({\n spanView: selection.spanView,\n highlightSpanIds: [],\n});\n\nexport const selectTrace = (selection: TracesSelection, traceId: string | null): TracesSelection =>\n traceId ? { traceId, spanView: selection.spanView, highlightSpanIds: [] } : clearSelection(selection);\n\n/**\n * The open tab stays, so stepping through spans compares the same tab; the score belongs to the\n * previous span and is dropped with it.\n */\nexport const selectSpan = (selection: TracesSelection, spanId: string | null): TracesSelection => {\n if ((spanId ?? undefined) === selection.spanId) return selection;\n return { ...selection, spanId: spanId ?? undefined, scoreId: undefined };\n};\n\nexport const setSpanTab = (selection: TracesSelection, tab: SpanTab): TracesSelection => {\n if (tab === selection.spanTab) return selection;\n return { ...selection, spanTab: tab === 'details' ? undefined : tab, scoreId: undefined };\n};\n\nexport const setSpanView = (selection: TracesSelection, spanView: TraceSpanView): TracesSelection =>\n spanView === selection.spanView ? selection : { ...selection, spanView };\n\nexport const selectScore = (selection: TracesSelection, scoreId: string | null): TracesSelection =>\n (scoreId ?? undefined) === selection.scoreId ? selection : { ...selection, scoreId: scoreId ?? undefined };\n\nexport const highlightSpans = (selection: TracesSelection, spanIds: string[]): TracesSelection => {\n const unchanged =\n spanIds.length === selection.highlightSpanIds.length &&\n spanIds.every((id, index) => id === selection.highlightSpanIds[index]);\n return unchanged ? selection : { ...selection, highlightSpanIds: spanIds };\n};\n\nexport const applyFilterTokens = (\n filters: TracesFilters,\n tokens: TraceFilterToken[],\n groups: TraceFilterGroup[],\n): TracesFilters => ({ ...filters, tokens, groups });\n\n/** Switching to `custom` keeps the current dates so the picker opens on them; any other preset drops them. */\nexport const applyDatePreset = (filters: TracesFilters, datePreset: TraceDatePreset): TracesFilters =>\n datePreset === 'custom' ? { ...filters, datePreset } : { datePreset, tokens: filters.tokens, groups: filters.groups };\n\n// The picker can report a date right after switching away from `custom`; those are ignored.\nexport const applyDate = (filters: TracesFilters, date: Date | undefined, end: 'from' | 'to'): TracesFilters => {\n if (filters.datePreset !== 'custom') return filters;\n return end === 'from' ? { ...filters, dateFrom: date } : { ...filters, dateTo: date };\n};\n\nexport const applyDateRange = (\n filters: TracesFilters,\n dateFrom: Date | undefined,\n dateTo: Date | undefined,\n): TracesFilters => (filters.datePreset === 'custom' ? { ...filters, dateFrom, dateTo } : filters);\n\nconst isQueryableToken = (token: TraceFilterToken, unqueryableFieldIds: ReadonlySet<string>) => {\n if (token.fieldId === 'status' && token.value === 'running') return false;\n if (TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS.has(token.fieldId)) return false;\n return !unqueryableFieldIds.has(token.fieldId);\n};\n\n/**\n * Drops the top-level tokens the trace query can't run, so no chip advertises a filter with no effect.\n * Groups pass through and stay visible in the bar: `buildTracesQueryRequest` leaves their unqueryable\n * conditions out of the query. Returns the same object when nothing is dropped.\n */\nexport const sanitizeTracesFilters = (filters: TracesFilters, support: TraceQueryFieldSupport): TracesFilters => {\n const unqueryableFieldIds = traceQueryUnqueryableFieldIds(support);\n const tokens = filters.tokens.filter(token => isQueryableToken(token, unqueryableFieldIds));\n return tokens.length === filters.tokens.length ? filters : { ...filters, tokens };\n};\n\nconst selectsRunning = (node: TraceFilterGroup | TraceFilterToken): boolean => {\n if ('nodes' in node) return node.nodes.some(selectsRunning);\n if (node.fieldId !== 'status') return false;\n return Array.isArray(node.value) ? node.value.includes('running') : node.value === 'running';\n};\n\n/** Whether a status filter asks for `running`, which the trace query can't express and drops. */\nexport const selectsRunningStatus = (filters: TracesFilters): boolean =>\n filters.tokens.some(selectsRunning) || filters.groups.some(selectsRunning);\n\nconst tokenValue = (tokens: TraceFilterToken[], fieldId: string) => {\n const value = tokens.find(token => token.fieldId === fieldId)?.value;\n return typeof value === 'string' ? value : undefined;\n};\n\nexport const getSelectedEntityOption = (tokens: TraceFilterToken[]): EntityOptions | undefined => {\n const value = tokenValue(tokens, 'rootEntityType');\n return ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === value);\n};\n\nexport const getSelectedStatus = (tokens: TraceFilterToken[]): TraceStatusFilter | undefined => {\n const value = tokenValue(tokens, 'status');\n return value && TRACE_STATUS_VALUES.has(value as TraceStatusFilter) ? (value as TraceStatusFilter) : undefined;\n};\n\ntype TracesQueryWindow = { filters: TracesFilters; dateFrom?: Date; dateTo?: Date };\n\n/** The trace query for the (sanitized) filters and the resolved date window. */\nexport const buildTracesQueryRequest = ({\n filters,\n dateFrom,\n dateTo,\n now,\n ...support\n}: TracesQueryWindow & TraceQueryFieldSupport & { now: Date }) =>\n buildTraceQueryRequest({\n rootEntityType: getSelectedEntityOption(filters.tokens)?.entityType,\n status: getSelectedStatus(filters.tokens),\n dateFrom,\n dateTo,\n tokens: filters.tokens,\n groups: filters.groups,\n excludedFieldIds: traceQueryUnqueryableFieldIds(support),\n now,\n });\n\n/** The `listTracesLight` filters for servers without the trace query API (no groups there). */\nexport const buildTracesLegacyFilters = ({ filters, dateFrom, dateTo }: TracesQueryWindow) =>\n buildTraceListFilters({\n rootEntityType: getSelectedEntityOption(filters.tokens)?.entityType,\n status: getSelectedStatus(filters.tokens),\n dateFrom,\n dateTo,\n tokens: filters.tokens,\n });\n\n/** Rolling presets start `PRESET_MS` before now and stay open-ended; `all` is open on both ends. */\nexport const resolveTracesDateWindow = (\n datePreset: TraceDatePreset,\n dateFrom: Date | undefined,\n dateTo: Date | undefined,\n): { dateFrom?: Date; dateTo?: Date } => {\n if (datePreset === 'custom') return { dateFrom, dateTo };\n const ms = PRESET_MS[datePreset];\n return { dateFrom: ms ? new Date(Date.now() - ms) : undefined, dateTo: undefined };\n};\n"],"mappings":";;;AAwCA,IAAa,qBAAqB;CAAC;CAAa;CAAsB;AAAoB;AAK1F,IAAa,sBAAkC;CAAE,OAAO;CAAa,WAAW;AAAO;AAKvF,IAAa,yBAA0C;CAAE,UAAU;CAAQ,kBAAkB,CAAC;AAAE;AAEhG,IAAa,yBAAwC;CAAE,YAAY;CAAW,QAAQ,CAAC;CAAG,QAAQ,CAAC;AAAE;AAErG,IAAM,SAAS;AACf,IAAM,YAAsD;CAC1D,YAAY;CACZ,WAAW,IAAI;CACf,WAAW,IAAI;CACf,YAAY,KAAK;CACjB,YAAY,KAAK;AACnB;AAEA,IAAa,oBAAoB,cAC/B,CAAC,UAAU,WACX,CAAC,UAAU,UACX,CAAC,UAAU,WACX,CAAC,UAAU,WACX,UAAU,iBAAiB,WAAW;;AAGxC,IAAa,kBAAkB,eAAiD;CAC9E,UAAU,UAAU;CACpB,kBAAkB,CAAC;AACrB;AAEA,IAAa,eAAe,WAA4B,YACtD,UAAU;CAAE;CAAS,UAAU,UAAU;CAAU,kBAAkB,CAAC;AAAE,IAAI,eAAe,SAAS;;;;;AAMtG,IAAa,cAAc,WAA4B,WAA2C;CAChG,KAAK,UAAU,KAAA,OAAe,UAAU,QAAQ,OAAO;CACvD,OAAO;EAAE,GAAG;EAAW,QAAQ,UAAU,KAAA;EAAW,SAAS,KAAA;CAAU;AACzE;AAEA,IAAa,cAAc,WAA4B,QAAkC;CACvF,IAAI,QAAQ,UAAU,SAAS,OAAO;CACtC,OAAO;EAAE,GAAG;EAAW,SAAS,QAAQ,YAAY,KAAA,IAAY;EAAK,SAAS,KAAA;CAAU;AAC1F;AAEA,IAAa,eAAe,WAA4B,aACtD,aAAa,UAAU,WAAW,YAAY;CAAE,GAAG;CAAW;AAAS;AAEzE,IAAa,eAAe,WAA4B,aACrD,WAAW,KAAA,OAAe,UAAU,UAAU,YAAY;CAAE,GAAG;CAAW,SAAS,WAAW,KAAA;AAAU;AAE3G,IAAa,kBAAkB,WAA4B,YAAuC;CAIhG,OAFE,QAAQ,WAAW,UAAU,iBAAiB,UAC9C,QAAQ,OAAO,IAAI,UAAU,OAAO,UAAU,iBAAiB,MAAM,IACpD,YAAY;EAAE,GAAG;EAAW,kBAAkB;CAAQ;AAC3E;AAEA,IAAa,qBACX,SACA,QACA,YACmB;CAAE,GAAG;CAAS;CAAQ;AAAO;;AAGlD,IAAa,mBAAmB,SAAwB,eACtD,eAAe,WAAW;CAAE,GAAG;CAAS;AAAW,IAAI;CAAE;CAAY,QAAQ,QAAQ;CAAQ,QAAQ,QAAQ;AAAO;AAGtH,IAAa,aAAa,SAAwB,MAAwB,QAAsC;CAC9G,IAAI,QAAQ,eAAe,UAAU,OAAO;CAC5C,OAAO,QAAQ,SAAS;EAAE,GAAG;EAAS,UAAU;CAAK,IAAI;EAAE,GAAG;EAAS,QAAQ;CAAK;AACtF;AAEA,IAAa,kBACX,SACA,UACA,WACmB,QAAQ,eAAe,WAAW;CAAE,GAAG;CAAS;CAAU;AAAO,IAAI;AAE1F,IAAM,oBAAoB,OAAyB,wBAA6C;CAC9F,IAAI,MAAM,YAAY,YAAY,MAAM,UAAU,WAAW,OAAO;CACpE,IAAI,sCAAsC,IAAI,MAAM,OAAO,GAAG,OAAO;CACrE,OAAO,CAAC,oBAAoB,IAAI,MAAM,OAAO;AAC/C;;;;;;AAOA,IAAa,yBAAyB,SAAwB,YAAmD;CAC/G,MAAM,sBAAsB,8BAA8B,OAAO;CACjE,MAAM,SAAS,QAAQ,OAAO,QAAO,UAAS,iBAAiB,OAAO,mBAAmB,CAAC;CAC1F,OAAO,OAAO,WAAW,QAAQ,OAAO,SAAS,UAAU;EAAE,GAAG;EAAS;CAAO;AAClF;AAEA,IAAM,kBAAkB,SAAuD;CAC7E,IAAI,WAAW,MAAM,OAAO,KAAK,MAAM,KAAK,cAAc;CAC1D,IAAI,KAAK,YAAY,UAAU,OAAO;CACtC,OAAO,MAAM,QAAQ,KAAK,KAAK,IAAI,KAAK,MAAM,SAAS,SAAS,IAAI,KAAK,UAAU;AACrF;;AAGA,IAAa,wBAAwB,YACnC,QAAQ,OAAO,KAAK,cAAc,KAAK,QAAQ,OAAO,KAAK,cAAc;AAE3E,IAAM,cAAc,QAA4B,YAAoB;CAClE,MAAM,QAAQ,OAAO,MAAK,UAAS,MAAM,YAAY,OAAO,CAAC,EAAE;CAC/D,OAAO,OAAO,UAAU,WAAW,QAAQ,KAAA;AAC7C;AAEA,IAAa,2BAA2B,WAA0D;CAChG,MAAM,QAAQ,WAAW,QAAQ,gBAAgB;CACjD,OAAO,yBAAyB,MAAK,WAAU,OAAO,eAAe,KAAK;AAC5E;AAEA,IAAa,qBAAqB,WAA8D;CAC9F,MAAM,QAAQ,WAAW,QAAQ,QAAQ;CACzC,OAAO,SAAS,oBAAoB,IAAI,KAA0B,IAAK,QAA8B,KAAA;AACvG;;AAKA,IAAa,2BAA2B,EACtC,SACA,UACA,QACA,KACA,GAAG,cAEH,uBAAuB;CACrB,gBAAgB,wBAAwB,QAAQ,MAAM,CAAC,EAAE;CACzD,QAAQ,kBAAkB,QAAQ,MAAM;CACxC;CACA;CACA,QAAQ,QAAQ;CAChB,QAAQ,QAAQ;CAChB,kBAAkB,8BAA8B,OAAO;CACvD;AACF,CAAC;;AAGH,IAAa,4BAA4B,EAAE,SAAS,UAAU,aAC5D,sBAAsB;CACpB,gBAAgB,wBAAwB,QAAQ,MAAM,CAAC,EAAE;CACzD,QAAQ,kBAAkB,QAAQ,MAAM;CACxC;CACA;CACA,QAAQ,QAAQ;AAClB,CAAC;;AAGH,IAAa,2BACX,YACA,UACA,WACuC;CACvC,IAAI,eAAe,UAAU,OAAO;EAAE;EAAU;CAAO;CACvD,MAAM,KAAK,UAAU;CACrB,OAAO;EAAE,UAAU,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,KAAA;EAAW,QAAQ,KAAA;CAAU;AACnF"}
@@ -29,12 +29,13 @@ var CHECKING_USAGE_REASON = "Checking whether this storage supports usage data."
29
29
  var UNSUPPORTED_USAGE_REASON = "This observability store does not support token and cost metrics.";
30
30
  var useTraceUsageColumns = () => {
31
31
  const { preferences } = useTracesColumns();
32
- const { metricsSupport, withTimeToFirstChunk, isCapabilitiesLoading } = useTracesConfig();
32
+ const { metricsSupport, withTimeToFirstChunk, withTimeToFirstToken, isCapabilitiesLoading } = useTracesConfig();
33
33
  const unavailable = !metricsSupport.isLoading && !metricsSupport.supported;
34
34
  const timeToFirstChunkUnavailable = !isCapabilitiesLoading && !withTimeToFirstChunk;
35
- const displayedPreferences = unavailable || timeToFirstChunkUnavailable ? {
35
+ const timeToFirstTokenUnavailable = !isCapabilitiesLoading && !withTimeToFirstToken;
36
+ const displayedPreferences = unavailable || timeToFirstChunkUnavailable || timeToFirstTokenUnavailable ? {
36
37
  ...preferences,
37
- visibleColumns: preferences.visibleColumns.filter((column) => !(unavailable && require_domains_traces_trace_list_columns.isTraceUsageColumn(column)) && !(timeToFirstChunkUnavailable && column === "timeToFirstChunk"))
38
+ visibleColumns: preferences.visibleColumns.filter((column) => !(unavailable && require_domains_traces_trace_list_columns.isTraceUsageColumn(column)) && !(timeToFirstChunkUnavailable && column === "timeToFirstChunk") && !(timeToFirstTokenUnavailable && column === "timeToFirstToken"))
38
39
  } : preferences;
39
40
  return {
40
41
  displayedPreferences,
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-context.cjs.js","names":["createContext","useContext","isTraceUsageColumn","hasTraceUsageColumn"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-context.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { TraceQueryDiscoveryTimeRange } from '@mastra/react/hooks/traces';\nimport { createContext, useContext } from 'react';\nimport type { useTraceColumnPreferences } from '../../hooks/use-trace-column-preferences';\nimport type { useTracesListSource } from '../../hooks/use-traces-list-source';\nimport { hasTraceUsageColumn, isTraceUsageColumn } from '../../trace-list-columns';\nimport type { TraceColumnPreferences } from '../../trace-list-columns';\nimport type { SpanTab, TraceDatePreset } from '../../types';\nimport type { TraceSpanView } from '../trace-data-panel-view';\nimport type { TracesFilters, TracesSelection, TracesSort } from './traces-explorer-actions';\n\nexport type TracesExplorerScope = { entityId: string; entityType?: EntityType };\n\nexport type TracesMetricsSupport = { supported: boolean; isLoading: boolean };\n\n/**\n * Host switches (e.g. feature flags), combined with what the server supports.\n * `traceQuery` and `feedback` default to on and can only turn their feature off.\n * `spanQuery` and `threadQuery` default to off: each view is offered only when its flag is `true`\n * and the server supports it.\n */\nexport type TracesExplorerFeatures = {\n traceQuery?: boolean;\n feedback?: boolean;\n spanQuery?: boolean;\n threadQuery?: boolean;\n};\n\nexport type TracesConfigContextValue = {\n listId: string;\n scopedFieldIds: ReadonlySet<string>;\n hiddenFieldIds: readonly string[];\n withQueryTrace: boolean;\n withFeedback: boolean;\n /** The span query API is on, so the host can offer a spans view next to the traces list. */\n withSpanQuery: boolean;\n /** The thread rows API is on, so the host can offer a threads view next to the traces list. */\n withThreadQuery: boolean;\n withRootDuration: boolean;\n /** Trace rows carry the root span's time to first chunk, so the TTFC column can be shown. */\n withTimeToFirstChunk: boolean;\n /** Trace queries can be ordered by the root span's time to first chunk. */\n withTimeToFirstChunkSort: boolean;\n /** The server supports delta polling, so auto-refresh merges new traces instead of reloading pages. */\n withDeltaPolling: boolean;\n /** Whether field discovery should run: the server supports it and the trace query API is on. */\n withDiscovery: boolean;\n isCapabilitiesLoading: boolean;\n metricsSupport: TracesMetricsSupport;\n /** Shared by every discovery consumer so they hit the same cached query. */\n discoveryTimeRange: TraceQueryDiscoveryTimeRange;\n};\n\nexport type TracesFiltersActions = {\n /** Replaces the filter tokens and groups. The scope tokens are always kept. */\n setFilterTokens: (tokens: TracesFilters['tokens'], groups: TracesFilters['groups']) => void;\n setDatePreset: (preset: TraceDatePreset) => void;\n setDate: (value: Date | undefined, end: 'from' | 'to') => void;\n setDateRange: (from: Date | undefined, to: Date | undefined) => void;\n};\n\nexport type TracesFiltersContextValue = TracesFiltersActions & {\n /** The host's filters with the entries this server can't query dropped. */\n filters: TracesFilters;\n dateFrom?: Date;\n dateTo?: Date;\n filtersApplied: boolean;\n contentFiltersApplied: boolean;\n /** The host's filters ask for `running` traces, which `filters` (and so the query) can't express. */\n runningSelected: boolean;\n};\n\nexport type TracesSelectionActions = {\n selectTrace: (traceId: string) => void;\n closeTrace: () => void;\n selectSpan: (spanId: string | null) => void;\n setSpanTab: (tab: SpanTab) => void;\n setSpanView: (view: TraceSpanView) => void;\n selectScore: (scoreId: string | null) => void;\n highlightSpans: (spanIds: string[]) => void;\n};\n\nexport type TracesSelectionContextValue = TracesSelectionActions & {\n selection: TracesSelection;\n selectedTraceId?: string;\n};\n\ntype ListSource = ReturnType<typeof useTracesListSource>;\n\nexport type TracesListContextValue = Pick<\n ListSource,\n | 'rows'\n | 'isLoading'\n | 'isFetchingNextPage'\n | 'hasNextPage'\n | 'setEndOfListElement'\n | 'error'\n | 'refetch'\n | 'autoRefetch'\n> & {\n sort: TracesSort;\n onSortChange: (next: TracesSort) => void;\n};\n\nexport type TracesColumnsContextValue = ReturnType<typeof useTraceColumnPreferences>;\n\nexport const TracesConfigContext = createContext<TracesConfigContextValue | null>(null);\nexport const TracesFiltersContext = createContext<TracesFiltersContextValue | null>(null);\nexport const TracesSelectionContext = createContext<TracesSelectionContextValue | null>(null);\nexport const TracesListContext = createContext<TracesListContextValue | null>(null);\n/** Kept out of `TracesListContext` so a poll tick doesn't re-render every list consumer. */\nexport const TracesListFetchingContext = createContext<boolean | null>(null);\nexport const TracesColumnsContext = createContext<TracesColumnsContextValue | null>(null);\n\nconst useRequired = <T>(context: React.Context<T | null>, name: string): T => {\n const value = useContext(context);\n if (!value) throw new Error(`${name} must be used inside <TracesExplorer>`);\n return value;\n};\n\nexport const useTracesConfig = () => useRequired(TracesConfigContext, 'useTracesConfig');\nexport const useTracesFilters = () => useRequired(TracesFiltersContext, 'useTracesFilters');\nexport const useTracesSelection = () => useRequired(TracesSelectionContext, 'useTracesSelection');\nexport const useTracesList = () => useRequired(TracesListContext, 'useTracesList');\n/** Whether the list query is fetching, including background refetches and retries. */\nexport const useTracesListFetching = () => {\n const value = useContext(TracesListFetchingContext);\n if (value === null) throw new Error('useTracesListFetching must be used inside <TracesExplorer>');\n return value;\n};\nexport const useTracesColumns = () => useRequired(TracesColumnsContext, 'useTracesColumns');\n\nexport const CHECKING_USAGE_REASON = 'Checking whether this storage supports usage data.';\nexport const UNSUPPORTED_USAGE_REASON = 'This observability store does not support token and cost metrics.';\n\nexport type TraceUsageColumns = {\n /** Column preferences without the columns the store can't serve (usage, time to first chunk). */\n displayedPreferences: TraceColumnPreferences;\n /** Whether usage should be fetched: metrics are supported and a usage column is visible. */\n usageEnabled: boolean;\n usageDisabledReason?: string;\n};\n\nexport const useTraceUsageColumns = (): TraceUsageColumns => {\n const { preferences } = useTracesColumns();\n const { metricsSupport, withTimeToFirstChunk, isCapabilitiesLoading } = useTracesConfig();\n const unavailable = !metricsSupport.isLoading && !metricsSupport.supported;\n const timeToFirstChunkUnavailable = !isCapabilitiesLoading && !withTimeToFirstChunk;\n const displayedPreferences =\n unavailable || timeToFirstChunkUnavailable\n ? {\n ...preferences,\n visibleColumns: preferences.visibleColumns.filter(\n column =>\n !(unavailable && isTraceUsageColumn(column)) &&\n !(timeToFirstChunkUnavailable && column === 'timeToFirstChunk'),\n ),\n }\n : preferences;\n return {\n displayedPreferences,\n usageEnabled: !unavailable && !metricsSupport.isLoading && hasTraceUsageColumn(displayedPreferences),\n usageDisabledReason: metricsSupport.isLoading\n ? CHECKING_USAGE_REASON\n : !metricsSupport.supported\n ? UNSUPPORTED_USAGE_REASON\n : undefined,\n };\n};\n"],"mappings":";;;;AA0GA,IAAa,uBAAA,GAAsBA,MAAAA,cAAAA,CAA+C,IAAI;AACtF,IAAa,wBAAA,GAAuBA,MAAAA,cAAAA,CAAgD,IAAI;AACxF,IAAa,0BAAA,GAAyBA,MAAAA,cAAAA,CAAkD,IAAI;AAC5F,IAAa,qBAAA,GAAoBA,MAAAA,cAAAA,CAA6C,IAAI;;AAElF,IAAa,6BAAA,GAA4BA,MAAAA,cAAAA,CAA8B,IAAI;AAC3E,IAAa,wBAAA,GAAuBA,MAAAA,cAAAA,CAAgD,IAAI;AAExF,IAAM,eAAkB,SAAkC,SAAoB;CAC5E,MAAM,SAAA,GAAQC,MAAAA,WAAAA,CAAW,OAAO;CAChC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,GAAG,KAAK,sCAAsC;CAC1E,OAAO;AACT;AAEA,IAAa,wBAAwB,YAAY,qBAAqB,iBAAiB;AACvF,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAC1F,IAAa,2BAA2B,YAAY,wBAAwB,oBAAoB;AAChG,IAAa,sBAAsB,YAAY,mBAAmB,eAAe;;AAEjF,IAAa,8BAA8B;CACzC,MAAM,SAAA,GAAQA,MAAAA,WAAAA,CAAW,yBAAyB;CAClD,IAAI,UAAU,MAAM,MAAM,IAAI,MAAM,4DAA4D;CAChG,OAAO;AACT;AACA,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAE1F,IAAa,wBAAwB;AACrC,IAAa,2BAA2B;AAUxC,IAAa,6BAAgD;CAC3D,MAAM,EAAE,gBAAgB,iBAAiB;CACzC,MAAM,EAAE,gBAAgB,sBAAsB,0BAA0B,gBAAgB;CACxF,MAAM,cAAc,CAAC,eAAe,aAAa,CAAC,eAAe;CACjE,MAAM,8BAA8B,CAAC,yBAAyB,CAAC;CAC/D,MAAM,uBACJ,eAAe,8BACX;EACE,GAAG;EACH,gBAAgB,YAAY,eAAe,QACzC,WACE,EAAE,eAAeC,0CAAAA,mBAAmB,MAAM,MAC1C,EAAE,+BAA+B,WAAW,mBAChD;CACF,IACA;CACN,OAAO;EACL;EACA,cAAc,CAAC,eAAe,CAAC,eAAe,aAAaC,0CAAAA,oBAAoB,oBAAoB;EACnG,qBAAqB,eAAe,YAChC,wBACA,CAAC,eAAe,YACd,2BACA,KAAA;CACR;AACF"}
1
+ {"version":3,"file":"traces-explorer-context.cjs.js","names":["createContext","useContext","isTraceUsageColumn","hasTraceUsageColumn"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-context.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { TraceQueryDiscoveryTimeRange } from '@mastra/react/hooks/traces';\nimport { createContext, useContext } from 'react';\nimport type { useTraceColumnPreferences } from '../../hooks/use-trace-column-preferences';\nimport type { useTracesListSource } from '../../hooks/use-traces-list-source';\nimport { hasTraceUsageColumn, isTraceUsageColumn } from '../../trace-list-columns';\nimport type { TraceColumnPreferences } from '../../trace-list-columns';\nimport type { SpanTab, TraceDatePreset } from '../../types';\nimport type { TraceSpanView } from '../trace-data-panel-view';\nimport type { TracesFilters, TracesSelection, TracesSort } from './traces-explorer-actions';\n\nexport type TracesExplorerScope = { entityId: string; entityType?: EntityType };\n\nexport type TracesMetricsSupport = { supported: boolean; isLoading: boolean };\n\n/**\n * Host switches (e.g. feature flags), combined with what the server supports.\n * `traceQuery` and `feedback` default to on and can only turn their feature off.\n * `spanQuery` and `threadQuery` default to off: each view is offered only when its flag is `true`\n * and the server supports it.\n */\nexport type TracesExplorerFeatures = {\n traceQuery?: boolean;\n feedback?: boolean;\n spanQuery?: boolean;\n threadQuery?: boolean;\n};\n\nexport type TracesConfigContextValue = {\n listId: string;\n scopedFieldIds: ReadonlySet<string>;\n hiddenFieldIds: readonly string[];\n withQueryTrace: boolean;\n withFeedback: boolean;\n /** The span query API is on, so the host can offer a spans view next to the traces list. */\n withSpanQuery: boolean;\n /** The thread rows API is on, so the host can offer a threads view next to the traces list. */\n withThreadQuery: boolean;\n withRootDuration: boolean;\n /** The server filters trace queries on the root span's `outcome` and `stopReason`. */\n withOutcomeFields: boolean;\n /** Trace rows carry the root span's time to first chunk, so the TTFC column can be shown. */\n withTimeToFirstChunk: boolean;\n /** Trace queries can be ordered by the root span's time to first chunk. */\n withTimeToFirstChunkSort: boolean;\n /** Trace rows carry the root span's time to first token, so the TTFT column can be shown. */\n withTimeToFirstToken: boolean;\n /** Trace queries can be ordered by the root span's time to first token. */\n withTimeToFirstTokenSort: boolean;\n /** The server supports delta polling, so auto-refresh merges new traces instead of reloading pages. */\n withDeltaPolling: boolean;\n /** Whether field discovery should run: the server supports it and the trace query API is on. */\n withDiscovery: boolean;\n isCapabilitiesLoading: boolean;\n metricsSupport: TracesMetricsSupport;\n /** Shared by every discovery consumer so they hit the same cached query. */\n discoveryTimeRange: TraceQueryDiscoveryTimeRange;\n};\n\nexport type TracesFiltersActions = {\n /** Replaces the filter tokens and groups. The scope tokens are always kept. */\n setFilterTokens: (tokens: TracesFilters['tokens'], groups: TracesFilters['groups']) => void;\n setDatePreset: (preset: TraceDatePreset) => void;\n setDate: (value: Date | undefined, end: 'from' | 'to') => void;\n setDateRange: (from: Date | undefined, to: Date | undefined) => void;\n /** Narrows the range to a histogram selection, remembering the range to return to on reset. */\n zoomDateRange: (from: Date, to: Date) => void;\n /** Undoes the last histogram zoom, or switches to `defaultPreset` when there is none to undo. */\n resetDateRange: (defaultPreset: TraceDatePreset) => void;\n};\n\nexport type TracesFiltersContextValue = TracesFiltersActions & {\n /** The host's filters with the entries this server can't query dropped. */\n filters: TracesFilters;\n dateFrom?: Date;\n dateTo?: Date;\n filtersApplied: boolean;\n contentFiltersApplied: boolean;\n /** The host's filters ask for `running` traces, which `filters` (and so the query) can't express. */\n runningSelected: boolean;\n};\n\nexport type TracesSelectionActions = {\n selectTrace: (traceId: string) => void;\n closeTrace: () => void;\n selectSpan: (spanId: string | null) => void;\n setSpanTab: (tab: SpanTab) => void;\n setSpanView: (view: TraceSpanView) => void;\n selectScore: (scoreId: string | null) => void;\n highlightSpans: (spanIds: string[]) => void;\n};\n\nexport type TracesSelectionContextValue = TracesSelectionActions & {\n selection: TracesSelection;\n selectedTraceId?: string;\n};\n\ntype ListSource = ReturnType<typeof useTracesListSource>;\n\nexport type TracesListContextValue = Pick<\n ListSource,\n | 'rows'\n | 'isLoading'\n | 'isFetchingNextPage'\n | 'hasNextPage'\n | 'setEndOfListElement'\n | 'error'\n | 'refetch'\n | 'autoRefetch'\n> & {\n sort: TracesSort;\n onSortChange: (next: TracesSort) => void;\n};\n\nexport type TracesColumnsContextValue = ReturnType<typeof useTraceColumnPreferences>;\n\nexport const TracesConfigContext = createContext<TracesConfigContextValue | null>(null);\nexport const TracesFiltersContext = createContext<TracesFiltersContextValue | null>(null);\nexport const TracesSelectionContext = createContext<TracesSelectionContextValue | null>(null);\nexport const TracesListContext = createContext<TracesListContextValue | null>(null);\n/** Kept out of `TracesListContext` so a poll tick doesn't re-render every list consumer. */\nexport const TracesListFetchingContext = createContext<boolean | null>(null);\nexport const TracesColumnsContext = createContext<TracesColumnsContextValue | null>(null);\n\nconst useRequired = <T>(context: React.Context<T | null>, name: string): T => {\n const value = useContext(context);\n if (!value) throw new Error(`${name} must be used inside <TracesExplorer>`);\n return value;\n};\n\nexport const useTracesConfig = () => useRequired(TracesConfigContext, 'useTracesConfig');\nexport const useTracesFilters = () => useRequired(TracesFiltersContext, 'useTracesFilters');\nexport const useTracesSelection = () => useRequired(TracesSelectionContext, 'useTracesSelection');\nexport const useTracesList = () => useRequired(TracesListContext, 'useTracesList');\n/** Whether the list query is fetching, including background refetches and retries. */\nexport const useTracesListFetching = () => {\n const value = useContext(TracesListFetchingContext);\n if (value === null) throw new Error('useTracesListFetching must be used inside <TracesExplorer>');\n return value;\n};\nexport const useTracesColumns = () => useRequired(TracesColumnsContext, 'useTracesColumns');\n\nexport const CHECKING_USAGE_REASON = 'Checking whether this storage supports usage data.';\nexport const UNSUPPORTED_USAGE_REASON = 'This observability store does not support token and cost metrics.';\n\nexport type TraceUsageColumns = {\n /** Column preferences without the columns the store can't serve (usage, time to first chunk/token). */\n displayedPreferences: TraceColumnPreferences;\n /** Whether usage should be fetched: metrics are supported and a usage column is visible. */\n usageEnabled: boolean;\n usageDisabledReason?: string;\n};\n\nexport const useTraceUsageColumns = (): TraceUsageColumns => {\n const { preferences } = useTracesColumns();\n const { metricsSupport, withTimeToFirstChunk, withTimeToFirstToken, isCapabilitiesLoading } = useTracesConfig();\n const unavailable = !metricsSupport.isLoading && !metricsSupport.supported;\n const timeToFirstChunkUnavailable = !isCapabilitiesLoading && !withTimeToFirstChunk;\n const timeToFirstTokenUnavailable = !isCapabilitiesLoading && !withTimeToFirstToken;\n const displayedPreferences =\n unavailable || timeToFirstChunkUnavailable || timeToFirstTokenUnavailable\n ? {\n ...preferences,\n visibleColumns: preferences.visibleColumns.filter(\n column =>\n !(unavailable && isTraceUsageColumn(column)) &&\n !(timeToFirstChunkUnavailable && column === 'timeToFirstChunk') &&\n !(timeToFirstTokenUnavailable && column === 'timeToFirstToken'),\n ),\n }\n : preferences;\n return {\n displayedPreferences,\n usageEnabled: !unavailable && !metricsSupport.isLoading && hasTraceUsageColumn(displayedPreferences),\n usageDisabledReason: metricsSupport.isLoading\n ? CHECKING_USAGE_REASON\n : !metricsSupport.supported\n ? UNSUPPORTED_USAGE_REASON\n : undefined,\n };\n};\n"],"mappings":";;;;AAoHA,IAAa,uBAAA,GAAsBA,MAAAA,cAAAA,CAA+C,IAAI;AACtF,IAAa,wBAAA,GAAuBA,MAAAA,cAAAA,CAAgD,IAAI;AACxF,IAAa,0BAAA,GAAyBA,MAAAA,cAAAA,CAAkD,IAAI;AAC5F,IAAa,qBAAA,GAAoBA,MAAAA,cAAAA,CAA6C,IAAI;;AAElF,IAAa,6BAAA,GAA4BA,MAAAA,cAAAA,CAA8B,IAAI;AAC3E,IAAa,wBAAA,GAAuBA,MAAAA,cAAAA,CAAgD,IAAI;AAExF,IAAM,eAAkB,SAAkC,SAAoB;CAC5E,MAAM,SAAA,GAAQC,MAAAA,WAAAA,CAAW,OAAO;CAChC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,GAAG,KAAK,sCAAsC;CAC1E,OAAO;AACT;AAEA,IAAa,wBAAwB,YAAY,qBAAqB,iBAAiB;AACvF,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAC1F,IAAa,2BAA2B,YAAY,wBAAwB,oBAAoB;AAChG,IAAa,sBAAsB,YAAY,mBAAmB,eAAe;;AAEjF,IAAa,8BAA8B;CACzC,MAAM,SAAA,GAAQA,MAAAA,WAAAA,CAAW,yBAAyB;CAClD,IAAI,UAAU,MAAM,MAAM,IAAI,MAAM,4DAA4D;CAChG,OAAO;AACT;AACA,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAE1F,IAAa,wBAAwB;AACrC,IAAa,2BAA2B;AAUxC,IAAa,6BAAgD;CAC3D,MAAM,EAAE,gBAAgB,iBAAiB;CACzC,MAAM,EAAE,gBAAgB,sBAAsB,sBAAsB,0BAA0B,gBAAgB;CAC9G,MAAM,cAAc,CAAC,eAAe,aAAa,CAAC,eAAe;CACjE,MAAM,8BAA8B,CAAC,yBAAyB,CAAC;CAC/D,MAAM,8BAA8B,CAAC,yBAAyB,CAAC;CAC/D,MAAM,uBACJ,eAAe,+BAA+B,8BAC1C;EACE,GAAG;EACH,gBAAgB,YAAY,eAAe,QACzC,WACE,EAAE,eAAeC,0CAAAA,mBAAmB,MAAM,MAC1C,EAAE,+BAA+B,WAAW,uBAC5C,EAAE,+BAA+B,WAAW,mBAChD;CACF,IACA;CACN,OAAO;EACL;EACA,cAAc,CAAC,eAAe,CAAC,eAAe,aAAaC,0CAAAA,oBAAoB,oBAAoB;EACnG,qBAAqB,eAAe,YAChC,wBACA,CAAC,eAAe,YACd,2BACA,KAAA;CACR;AACF"}
@@ -28,12 +28,13 @@ var CHECKING_USAGE_REASON = "Checking whether this storage supports usage data."
28
28
  var UNSUPPORTED_USAGE_REASON = "This observability store does not support token and cost metrics.";
29
29
  var useTraceUsageColumns = () => {
30
30
  const { preferences } = useTracesColumns();
31
- const { metricsSupport, withTimeToFirstChunk, isCapabilitiesLoading } = useTracesConfig();
31
+ const { metricsSupport, withTimeToFirstChunk, withTimeToFirstToken, isCapabilitiesLoading } = useTracesConfig();
32
32
  const unavailable = !metricsSupport.isLoading && !metricsSupport.supported;
33
33
  const timeToFirstChunkUnavailable = !isCapabilitiesLoading && !withTimeToFirstChunk;
34
- const displayedPreferences = unavailable || timeToFirstChunkUnavailable ? {
34
+ const timeToFirstTokenUnavailable = !isCapabilitiesLoading && !withTimeToFirstToken;
35
+ const displayedPreferences = unavailable || timeToFirstChunkUnavailable || timeToFirstTokenUnavailable ? {
35
36
  ...preferences,
36
- visibleColumns: preferences.visibleColumns.filter((column) => !(unavailable && isTraceUsageColumn(column)) && !(timeToFirstChunkUnavailable && column === "timeToFirstChunk"))
37
+ visibleColumns: preferences.visibleColumns.filter((column) => !(unavailable && isTraceUsageColumn(column)) && !(timeToFirstChunkUnavailable && column === "timeToFirstChunk") && !(timeToFirstTokenUnavailable && column === "timeToFirstToken"))
37
38
  } : preferences;
38
39
  return {
39
40
  displayedPreferences,
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-context.es.js","names":[],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-context.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { TraceQueryDiscoveryTimeRange } from '@mastra/react/hooks/traces';\nimport { createContext, useContext } from 'react';\nimport type { useTraceColumnPreferences } from '../../hooks/use-trace-column-preferences';\nimport type { useTracesListSource } from '../../hooks/use-traces-list-source';\nimport { hasTraceUsageColumn, isTraceUsageColumn } from '../../trace-list-columns';\nimport type { TraceColumnPreferences } from '../../trace-list-columns';\nimport type { SpanTab, TraceDatePreset } from '../../types';\nimport type { TraceSpanView } from '../trace-data-panel-view';\nimport type { TracesFilters, TracesSelection, TracesSort } from './traces-explorer-actions';\n\nexport type TracesExplorerScope = { entityId: string; entityType?: EntityType };\n\nexport type TracesMetricsSupport = { supported: boolean; isLoading: boolean };\n\n/**\n * Host switches (e.g. feature flags), combined with what the server supports.\n * `traceQuery` and `feedback` default to on and can only turn their feature off.\n * `spanQuery` and `threadQuery` default to off: each view is offered only when its flag is `true`\n * and the server supports it.\n */\nexport type TracesExplorerFeatures = {\n traceQuery?: boolean;\n feedback?: boolean;\n spanQuery?: boolean;\n threadQuery?: boolean;\n};\n\nexport type TracesConfigContextValue = {\n listId: string;\n scopedFieldIds: ReadonlySet<string>;\n hiddenFieldIds: readonly string[];\n withQueryTrace: boolean;\n withFeedback: boolean;\n /** The span query API is on, so the host can offer a spans view next to the traces list. */\n withSpanQuery: boolean;\n /** The thread rows API is on, so the host can offer a threads view next to the traces list. */\n withThreadQuery: boolean;\n withRootDuration: boolean;\n /** Trace rows carry the root span's time to first chunk, so the TTFC column can be shown. */\n withTimeToFirstChunk: boolean;\n /** Trace queries can be ordered by the root span's time to first chunk. */\n withTimeToFirstChunkSort: boolean;\n /** The server supports delta polling, so auto-refresh merges new traces instead of reloading pages. */\n withDeltaPolling: boolean;\n /** Whether field discovery should run: the server supports it and the trace query API is on. */\n withDiscovery: boolean;\n isCapabilitiesLoading: boolean;\n metricsSupport: TracesMetricsSupport;\n /** Shared by every discovery consumer so they hit the same cached query. */\n discoveryTimeRange: TraceQueryDiscoveryTimeRange;\n};\n\nexport type TracesFiltersActions = {\n /** Replaces the filter tokens and groups. The scope tokens are always kept. */\n setFilterTokens: (tokens: TracesFilters['tokens'], groups: TracesFilters['groups']) => void;\n setDatePreset: (preset: TraceDatePreset) => void;\n setDate: (value: Date | undefined, end: 'from' | 'to') => void;\n setDateRange: (from: Date | undefined, to: Date | undefined) => void;\n};\n\nexport type TracesFiltersContextValue = TracesFiltersActions & {\n /** The host's filters with the entries this server can't query dropped. */\n filters: TracesFilters;\n dateFrom?: Date;\n dateTo?: Date;\n filtersApplied: boolean;\n contentFiltersApplied: boolean;\n /** The host's filters ask for `running` traces, which `filters` (and so the query) can't express. */\n runningSelected: boolean;\n};\n\nexport type TracesSelectionActions = {\n selectTrace: (traceId: string) => void;\n closeTrace: () => void;\n selectSpan: (spanId: string | null) => void;\n setSpanTab: (tab: SpanTab) => void;\n setSpanView: (view: TraceSpanView) => void;\n selectScore: (scoreId: string | null) => void;\n highlightSpans: (spanIds: string[]) => void;\n};\n\nexport type TracesSelectionContextValue = TracesSelectionActions & {\n selection: TracesSelection;\n selectedTraceId?: string;\n};\n\ntype ListSource = ReturnType<typeof useTracesListSource>;\n\nexport type TracesListContextValue = Pick<\n ListSource,\n | 'rows'\n | 'isLoading'\n | 'isFetchingNextPage'\n | 'hasNextPage'\n | 'setEndOfListElement'\n | 'error'\n | 'refetch'\n | 'autoRefetch'\n> & {\n sort: TracesSort;\n onSortChange: (next: TracesSort) => void;\n};\n\nexport type TracesColumnsContextValue = ReturnType<typeof useTraceColumnPreferences>;\n\nexport const TracesConfigContext = createContext<TracesConfigContextValue | null>(null);\nexport const TracesFiltersContext = createContext<TracesFiltersContextValue | null>(null);\nexport const TracesSelectionContext = createContext<TracesSelectionContextValue | null>(null);\nexport const TracesListContext = createContext<TracesListContextValue | null>(null);\n/** Kept out of `TracesListContext` so a poll tick doesn't re-render every list consumer. */\nexport const TracesListFetchingContext = createContext<boolean | null>(null);\nexport const TracesColumnsContext = createContext<TracesColumnsContextValue | null>(null);\n\nconst useRequired = <T>(context: React.Context<T | null>, name: string): T => {\n const value = useContext(context);\n if (!value) throw new Error(`${name} must be used inside <TracesExplorer>`);\n return value;\n};\n\nexport const useTracesConfig = () => useRequired(TracesConfigContext, 'useTracesConfig');\nexport const useTracesFilters = () => useRequired(TracesFiltersContext, 'useTracesFilters');\nexport const useTracesSelection = () => useRequired(TracesSelectionContext, 'useTracesSelection');\nexport const useTracesList = () => useRequired(TracesListContext, 'useTracesList');\n/** Whether the list query is fetching, including background refetches and retries. */\nexport const useTracesListFetching = () => {\n const value = useContext(TracesListFetchingContext);\n if (value === null) throw new Error('useTracesListFetching must be used inside <TracesExplorer>');\n return value;\n};\nexport const useTracesColumns = () => useRequired(TracesColumnsContext, 'useTracesColumns');\n\nexport const CHECKING_USAGE_REASON = 'Checking whether this storage supports usage data.';\nexport const UNSUPPORTED_USAGE_REASON = 'This observability store does not support token and cost metrics.';\n\nexport type TraceUsageColumns = {\n /** Column preferences without the columns the store can't serve (usage, time to first chunk). */\n displayedPreferences: TraceColumnPreferences;\n /** Whether usage should be fetched: metrics are supported and a usage column is visible. */\n usageEnabled: boolean;\n usageDisabledReason?: string;\n};\n\nexport const useTraceUsageColumns = (): TraceUsageColumns => {\n const { preferences } = useTracesColumns();\n const { metricsSupport, withTimeToFirstChunk, isCapabilitiesLoading } = useTracesConfig();\n const unavailable = !metricsSupport.isLoading && !metricsSupport.supported;\n const timeToFirstChunkUnavailable = !isCapabilitiesLoading && !withTimeToFirstChunk;\n const displayedPreferences =\n unavailable || timeToFirstChunkUnavailable\n ? {\n ...preferences,\n visibleColumns: preferences.visibleColumns.filter(\n column =>\n !(unavailable && isTraceUsageColumn(column)) &&\n !(timeToFirstChunkUnavailable && column === 'timeToFirstChunk'),\n ),\n }\n : preferences;\n return {\n displayedPreferences,\n usageEnabled: !unavailable && !metricsSupport.isLoading && hasTraceUsageColumn(displayedPreferences),\n usageDisabledReason: metricsSupport.isLoading\n ? CHECKING_USAGE_REASON\n : !metricsSupport.supported\n ? UNSUPPORTED_USAGE_REASON\n : undefined,\n };\n};\n"],"mappings":";;;AA0GA,IAAa,sBAAsB,cAA+C,IAAI;AACtF,IAAa,uBAAuB,cAAgD,IAAI;AACxF,IAAa,yBAAyB,cAAkD,IAAI;AAC5F,IAAa,oBAAoB,cAA6C,IAAI;;AAElF,IAAa,4BAA4B,cAA8B,IAAI;AAC3E,IAAa,uBAAuB,cAAgD,IAAI;AAExF,IAAM,eAAkB,SAAkC,SAAoB;CAC5E,MAAM,QAAQ,WAAW,OAAO;CAChC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,GAAG,KAAK,sCAAsC;CAC1E,OAAO;AACT;AAEA,IAAa,wBAAwB,YAAY,qBAAqB,iBAAiB;AACvF,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAC1F,IAAa,2BAA2B,YAAY,wBAAwB,oBAAoB;AAChG,IAAa,sBAAsB,YAAY,mBAAmB,eAAe;;AAEjF,IAAa,8BAA8B;CACzC,MAAM,QAAQ,WAAW,yBAAyB;CAClD,IAAI,UAAU,MAAM,MAAM,IAAI,MAAM,4DAA4D;CAChG,OAAO;AACT;AACA,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAE1F,IAAa,wBAAwB;AACrC,IAAa,2BAA2B;AAUxC,IAAa,6BAAgD;CAC3D,MAAM,EAAE,gBAAgB,iBAAiB;CACzC,MAAM,EAAE,gBAAgB,sBAAsB,0BAA0B,gBAAgB;CACxF,MAAM,cAAc,CAAC,eAAe,aAAa,CAAC,eAAe;CACjE,MAAM,8BAA8B,CAAC,yBAAyB,CAAC;CAC/D,MAAM,uBACJ,eAAe,8BACX;EACE,GAAG;EACH,gBAAgB,YAAY,eAAe,QACzC,WACE,EAAE,eAAe,mBAAmB,MAAM,MAC1C,EAAE,+BAA+B,WAAW,mBAChD;CACF,IACA;CACN,OAAO;EACL;EACA,cAAc,CAAC,eAAe,CAAC,eAAe,aAAa,oBAAoB,oBAAoB;EACnG,qBAAqB,eAAe,YAChC,wBACA,CAAC,eAAe,YACd,2BACA,KAAA;CACR;AACF"}
1
+ {"version":3,"file":"traces-explorer-context.es.js","names":[],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-context.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { TraceQueryDiscoveryTimeRange } from '@mastra/react/hooks/traces';\nimport { createContext, useContext } from 'react';\nimport type { useTraceColumnPreferences } from '../../hooks/use-trace-column-preferences';\nimport type { useTracesListSource } from '../../hooks/use-traces-list-source';\nimport { hasTraceUsageColumn, isTraceUsageColumn } from '../../trace-list-columns';\nimport type { TraceColumnPreferences } from '../../trace-list-columns';\nimport type { SpanTab, TraceDatePreset } from '../../types';\nimport type { TraceSpanView } from '../trace-data-panel-view';\nimport type { TracesFilters, TracesSelection, TracesSort } from './traces-explorer-actions';\n\nexport type TracesExplorerScope = { entityId: string; entityType?: EntityType };\n\nexport type TracesMetricsSupport = { supported: boolean; isLoading: boolean };\n\n/**\n * Host switches (e.g. feature flags), combined with what the server supports.\n * `traceQuery` and `feedback` default to on and can only turn their feature off.\n * `spanQuery` and `threadQuery` default to off: each view is offered only when its flag is `true`\n * and the server supports it.\n */\nexport type TracesExplorerFeatures = {\n traceQuery?: boolean;\n feedback?: boolean;\n spanQuery?: boolean;\n threadQuery?: boolean;\n};\n\nexport type TracesConfigContextValue = {\n listId: string;\n scopedFieldIds: ReadonlySet<string>;\n hiddenFieldIds: readonly string[];\n withQueryTrace: boolean;\n withFeedback: boolean;\n /** The span query API is on, so the host can offer a spans view next to the traces list. */\n withSpanQuery: boolean;\n /** The thread rows API is on, so the host can offer a threads view next to the traces list. */\n withThreadQuery: boolean;\n withRootDuration: boolean;\n /** The server filters trace queries on the root span's `outcome` and `stopReason`. */\n withOutcomeFields: boolean;\n /** Trace rows carry the root span's time to first chunk, so the TTFC column can be shown. */\n withTimeToFirstChunk: boolean;\n /** Trace queries can be ordered by the root span's time to first chunk. */\n withTimeToFirstChunkSort: boolean;\n /** Trace rows carry the root span's time to first token, so the TTFT column can be shown. */\n withTimeToFirstToken: boolean;\n /** Trace queries can be ordered by the root span's time to first token. */\n withTimeToFirstTokenSort: boolean;\n /** The server supports delta polling, so auto-refresh merges new traces instead of reloading pages. */\n withDeltaPolling: boolean;\n /** Whether field discovery should run: the server supports it and the trace query API is on. */\n withDiscovery: boolean;\n isCapabilitiesLoading: boolean;\n metricsSupport: TracesMetricsSupport;\n /** Shared by every discovery consumer so they hit the same cached query. */\n discoveryTimeRange: TraceQueryDiscoveryTimeRange;\n};\n\nexport type TracesFiltersActions = {\n /** Replaces the filter tokens and groups. The scope tokens are always kept. */\n setFilterTokens: (tokens: TracesFilters['tokens'], groups: TracesFilters['groups']) => void;\n setDatePreset: (preset: TraceDatePreset) => void;\n setDate: (value: Date | undefined, end: 'from' | 'to') => void;\n setDateRange: (from: Date | undefined, to: Date | undefined) => void;\n /** Narrows the range to a histogram selection, remembering the range to return to on reset. */\n zoomDateRange: (from: Date, to: Date) => void;\n /** Undoes the last histogram zoom, or switches to `defaultPreset` when there is none to undo. */\n resetDateRange: (defaultPreset: TraceDatePreset) => void;\n};\n\nexport type TracesFiltersContextValue = TracesFiltersActions & {\n /** The host's filters with the entries this server can't query dropped. */\n filters: TracesFilters;\n dateFrom?: Date;\n dateTo?: Date;\n filtersApplied: boolean;\n contentFiltersApplied: boolean;\n /** The host's filters ask for `running` traces, which `filters` (and so the query) can't express. */\n runningSelected: boolean;\n};\n\nexport type TracesSelectionActions = {\n selectTrace: (traceId: string) => void;\n closeTrace: () => void;\n selectSpan: (spanId: string | null) => void;\n setSpanTab: (tab: SpanTab) => void;\n setSpanView: (view: TraceSpanView) => void;\n selectScore: (scoreId: string | null) => void;\n highlightSpans: (spanIds: string[]) => void;\n};\n\nexport type TracesSelectionContextValue = TracesSelectionActions & {\n selection: TracesSelection;\n selectedTraceId?: string;\n};\n\ntype ListSource = ReturnType<typeof useTracesListSource>;\n\nexport type TracesListContextValue = Pick<\n ListSource,\n | 'rows'\n | 'isLoading'\n | 'isFetchingNextPage'\n | 'hasNextPage'\n | 'setEndOfListElement'\n | 'error'\n | 'refetch'\n | 'autoRefetch'\n> & {\n sort: TracesSort;\n onSortChange: (next: TracesSort) => void;\n};\n\nexport type TracesColumnsContextValue = ReturnType<typeof useTraceColumnPreferences>;\n\nexport const TracesConfigContext = createContext<TracesConfigContextValue | null>(null);\nexport const TracesFiltersContext = createContext<TracesFiltersContextValue | null>(null);\nexport const TracesSelectionContext = createContext<TracesSelectionContextValue | null>(null);\nexport const TracesListContext = createContext<TracesListContextValue | null>(null);\n/** Kept out of `TracesListContext` so a poll tick doesn't re-render every list consumer. */\nexport const TracesListFetchingContext = createContext<boolean | null>(null);\nexport const TracesColumnsContext = createContext<TracesColumnsContextValue | null>(null);\n\nconst useRequired = <T>(context: React.Context<T | null>, name: string): T => {\n const value = useContext(context);\n if (!value) throw new Error(`${name} must be used inside <TracesExplorer>`);\n return value;\n};\n\nexport const useTracesConfig = () => useRequired(TracesConfigContext, 'useTracesConfig');\nexport const useTracesFilters = () => useRequired(TracesFiltersContext, 'useTracesFilters');\nexport const useTracesSelection = () => useRequired(TracesSelectionContext, 'useTracesSelection');\nexport const useTracesList = () => useRequired(TracesListContext, 'useTracesList');\n/** Whether the list query is fetching, including background refetches and retries. */\nexport const useTracesListFetching = () => {\n const value = useContext(TracesListFetchingContext);\n if (value === null) throw new Error('useTracesListFetching must be used inside <TracesExplorer>');\n return value;\n};\nexport const useTracesColumns = () => useRequired(TracesColumnsContext, 'useTracesColumns');\n\nexport const CHECKING_USAGE_REASON = 'Checking whether this storage supports usage data.';\nexport const UNSUPPORTED_USAGE_REASON = 'This observability store does not support token and cost metrics.';\n\nexport type TraceUsageColumns = {\n /** Column preferences without the columns the store can't serve (usage, time to first chunk/token). */\n displayedPreferences: TraceColumnPreferences;\n /** Whether usage should be fetched: metrics are supported and a usage column is visible. */\n usageEnabled: boolean;\n usageDisabledReason?: string;\n};\n\nexport const useTraceUsageColumns = (): TraceUsageColumns => {\n const { preferences } = useTracesColumns();\n const { metricsSupport, withTimeToFirstChunk, withTimeToFirstToken, isCapabilitiesLoading } = useTracesConfig();\n const unavailable = !metricsSupport.isLoading && !metricsSupport.supported;\n const timeToFirstChunkUnavailable = !isCapabilitiesLoading && !withTimeToFirstChunk;\n const timeToFirstTokenUnavailable = !isCapabilitiesLoading && !withTimeToFirstToken;\n const displayedPreferences =\n unavailable || timeToFirstChunkUnavailable || timeToFirstTokenUnavailable\n ? {\n ...preferences,\n visibleColumns: preferences.visibleColumns.filter(\n column =>\n !(unavailable && isTraceUsageColumn(column)) &&\n !(timeToFirstChunkUnavailable && column === 'timeToFirstChunk') &&\n !(timeToFirstTokenUnavailable && column === 'timeToFirstToken'),\n ),\n }\n : preferences;\n return {\n displayedPreferences,\n usageEnabled: !unavailable && !metricsSupport.isLoading && hasTraceUsageColumn(displayedPreferences),\n usageDisabledReason: metricsSupport.isLoading\n ? CHECKING_USAGE_REASON\n : !metricsSupport.supported\n ? UNSUPPORTED_USAGE_REASON\n : undefined,\n };\n};\n"],"mappings":";;;AAoHA,IAAa,sBAAsB,cAA+C,IAAI;AACtF,IAAa,uBAAuB,cAAgD,IAAI;AACxF,IAAa,yBAAyB,cAAkD,IAAI;AAC5F,IAAa,oBAAoB,cAA6C,IAAI;;AAElF,IAAa,4BAA4B,cAA8B,IAAI;AAC3E,IAAa,uBAAuB,cAAgD,IAAI;AAExF,IAAM,eAAkB,SAAkC,SAAoB;CAC5E,MAAM,QAAQ,WAAW,OAAO;CAChC,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,GAAG,KAAK,sCAAsC;CAC1E,OAAO;AACT;AAEA,IAAa,wBAAwB,YAAY,qBAAqB,iBAAiB;AACvF,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAC1F,IAAa,2BAA2B,YAAY,wBAAwB,oBAAoB;AAChG,IAAa,sBAAsB,YAAY,mBAAmB,eAAe;;AAEjF,IAAa,8BAA8B;CACzC,MAAM,QAAQ,WAAW,yBAAyB;CAClD,IAAI,UAAU,MAAM,MAAM,IAAI,MAAM,4DAA4D;CAChG,OAAO;AACT;AACA,IAAa,yBAAyB,YAAY,sBAAsB,kBAAkB;AAE1F,IAAa,wBAAwB;AACrC,IAAa,2BAA2B;AAUxC,IAAa,6BAAgD;CAC3D,MAAM,EAAE,gBAAgB,iBAAiB;CACzC,MAAM,EAAE,gBAAgB,sBAAsB,sBAAsB,0BAA0B,gBAAgB;CAC9G,MAAM,cAAc,CAAC,eAAe,aAAa,CAAC,eAAe;CACjE,MAAM,8BAA8B,CAAC,yBAAyB,CAAC;CAC/D,MAAM,8BAA8B,CAAC,yBAAyB,CAAC;CAC/D,MAAM,uBACJ,eAAe,+BAA+B,8BAC1C;EACE,GAAG;EACH,gBAAgB,YAAY,eAAe,QACzC,WACE,EAAE,eAAe,mBAAmB,MAAM,MAC1C,EAAE,+BAA+B,WAAW,uBAC5C,EAAE,+BAA+B,WAAW,mBAChD;CACF,IACA;CACN,OAAO;EACL;EACA,cAAc,CAAC,eAAe,CAAC,eAAe,aAAa,oBAAoB,oBAAoB;EACnG,qBAAqB,eAAe,YAChC,wBACA,CAAC,eAAe,YACd,2BACA,KAAA;CACR;AACF"}
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_trace_filters = require("../../../../trace-filters-BpeBUjCb.cjs");
3
- const require_domains_traces_components_trace_time_range_chip = require("../trace-time-range-chip.cjs.js");
2
+ const require_trace_filters = require("../../../../trace-filters-BNEZ31HX.cjs");
4
3
  const require_domains_traces_components_traces_explorer_traces_explorer_actions = require("./traces-explorer-actions.cjs.js");
5
- const require_FilterBar = require("../../../../FilterBar-gEvoWDXA.cjs");
4
+ const require_domains_traces_components_trace_time_range_chip = require("../trace-time-range-chip.cjs.js");
5
+ const require_FilterBar = require("../../../../FilterBar-BUd4f7oi.cjs");
6
6
  const require_domains_traces_components_traces_explorer_traces_explorer_context = require("./traces-explorer-context.cjs.js");
7
7
  const require_domains_traces_components_traces_explorer_use_traces_filter_bar = require("./use-traces-filter-bar.cjs.js");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -48,7 +48,7 @@ function TracesExplorerFilterChips({ timeRange, renderChip }) {
48
48
  }
49
49
  /** Its own component so a list loading flip only re-renders the chip, not the whole bar. */
50
50
  function TracesExplorerTimeRangeChip({ presets = TIME_RANGE_PRESETS, minDate, maxRangeMs }) {
51
- const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesFilters();
51
+ const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange, resetDateRange } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesFilters();
52
52
  const { isLoading } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesList();
53
53
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_traces_components_trace_time_range_chip.TraceTimeRangeChip, {
54
54
  preset: filters.datePreset,
@@ -60,6 +60,7 @@ function TracesExplorerTimeRangeChip({ presets = TIME_RANGE_PRESETS, minDate, ma
60
60
  disabled: isLoading,
61
61
  presets,
62
62
  defaultPreset: require_domains_traces_components_traces_explorer_traces_explorer_actions.DEFAULT_TRACES_FILTERS.datePreset,
63
+ onReset: () => resetDateRange(require_domains_traces_components_traces_explorer_traces_explorer_actions.DEFAULT_TRACES_FILTERS.datePreset),
63
64
  minDate,
64
65
  maxRangeMs
65
66
  });
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-filter-bar.cjs.js","names":["useTracesConfig","useTracesFilterBarFields","useTracesFilterBar","FilterBar","TRACE_FILTER_BAR_OPERATORS","_Fragment","useTracesFilters","useTracesList","TraceTimeRangeChip","DEFAULT_TRACES_FILTERS"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { TRACE_FILTER_BAR_OPERATORS } from '../../trace-filters';\nimport type { TraceDatePreset } from '../../types';\nimport { TRACE_TIME_RANGE_FIELD_ID, TraceTimeRangeChip } from '../trace-time-range-chip';\nimport type { TraceTimeRangeChipProps } from '../trace-time-range-chip';\nimport { DEFAULT_TRACES_FILTERS } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters, useTracesList } from './traces-explorer-context';\nimport { useTracesFilterBar, useTracesFilterBarFields } from './use-traces-filter-bar';\nimport { FilterBar } from '@/ds/components/FilterBar';\nimport type { FilterBarItem } from '@/ds/components/FilterBar';\n\nconst TIME_RANGE_PRESETS: readonly TraceDatePreset[] = [\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n];\n\n// Items are rebuilt from tokens with `id: fieldId` (traceTokensToFilterBarItems); give the\n// draft that id so the chip survives the round trip without remounting.\nconst createItemId = (fieldId: string) => fieldId;\n\nexport type TracesExplorerFilterBarProps = {\n /** Replaces the default chips and input, e.g. to pass a configured `TracesExplorer.TimeRangeChip`. */\n children?: ReactNode;\n};\n\n/**\n * The trace filters bar, wired to the explorer's fields and filters. Hosts that need extra\n * fields or items (e.g. their own scope pickers) can render the design-system `FilterBar`\n * themselves from `useTracesFilterBarFields()` / `useTracesFilterBar()` and reuse `FilterChips`.\n */\nexport function TracesExplorerFilterBar({ children }: TracesExplorerFilterBarProps) {\n const { withQueryTrace } = useTracesConfig();\n const filterBarFields = useTracesFilterBarFields();\n const { filterBarValue, flatFilterBarValue, onFilterBarChange, onFlatFilterBarChange } = useTracesFilterBar();\n\n return (\n <FilterBar\n fields={filterBarFields}\n operators={TRACE_FILTER_BAR_OPERATORS}\n {...(withQueryTrace\n ? { value: filterBarValue, onValueChange: onFilterBarChange }\n : { value: flatFilterBarValue, onValueChange: onFlatFilterBarChange })}\n createItemId={createItemId}\n maxDepth={3}\n aria-label=\"Trace filters\"\n className=\"min-w-64 flex-1\"\n >\n {children ?? (\n <>\n <TracesExplorerFilterChips />\n <FilterBar.Input placeholder=\"Filter traces…\" />\n </>\n )}\n </FilterBar>\n );\n}\n\nexport type TracesExplorerFilterChipsProps = {\n /** Rendered for the time range item. Defaults to `<TracesExplorer.TimeRangeChip />`. */\n timeRange?: ReactNode;\n /** Renders every other item. Defaults to the design-system chip. */\n renderChip?: (item: FilterBarItem) => ReactNode;\n};\n\n/** The bar's chips: the time range chip in its slot, then one chip per filter. */\nexport function TracesExplorerFilterChips({ timeRange, renderChip }: TracesExplorerFilterChipsProps) {\n return (\n <FilterBar.Chips\n renderChip={item =>\n item.fieldId === TRACE_TIME_RANGE_FIELD_ID ? (\n (timeRange ?? <TracesExplorerTimeRangeChip />)\n ) : renderChip ? (\n renderChip(item)\n ) : (\n <FilterBar.Chip item={item} />\n )\n }\n />\n );\n}\n\nexport type TracesExplorerTimeRangeChipProps = Partial<\n Pick<TraceTimeRangeChipProps, 'presets' | 'minDate' | 'maxRangeMs'>\n>;\n\n/** Its own component so a list loading flip only re-renders the chip, not the whole bar. */\nexport function TracesExplorerTimeRangeChip({\n presets = TIME_RANGE_PRESETS,\n minDate,\n maxRangeMs,\n}: TracesExplorerTimeRangeChipProps) {\n const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange } = useTracesFilters();\n const { isLoading } = useTracesList();\n\n return (\n <TraceTimeRangeChip\n preset={filters.datePreset}\n onPresetChange={setDatePreset}\n dateFrom={dateFrom}\n dateTo={dateTo}\n onDateChange={setDate}\n onDateRangeChange={setDateRange}\n disabled={isLoading}\n presets={presets}\n defaultPreset={DEFAULT_TRACES_FILTERS.datePreset}\n minDate={minDate}\n maxRangeMs={maxRangeMs}\n />\n );\n}\n"],"mappings":";;;;;;;;;AAWA,IAAM,qBAAiD;CACrD;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAM,gBAAgB,YAAoB;;;;;;AAY1C,SAAgB,wBAAwB,EAAE,YAA0C;CAClF,MAAM,EAAE,mBAAmBA,0EAAAA,gBAAgB;CAC3C,MAAM,kBAAkBC,wEAAAA,yBAAyB;CACjD,MAAM,EAAE,gBAAgB,oBAAoB,mBAAmB,0BAA0BC,wEAAAA,mBAAmB;CAE5G,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,WAAD;EACE,QAAQ;EACR,WAAWC,sBAAAA;EACX,GAAK,iBACD;GAAE,OAAO;GAAgB,eAAe;EAAkB,IAC1D;GAAE,OAAO;GAAoB,eAAe;EAAsB;EACxD;EACd,UAAU;EACV,cAAW;EACX,WAAU;EAET,UAAA,YACC,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,2BAAD,CAA4B,CAAA,GAC5B,iBAAA,GAAA,kBAAA,IAAA,CAACF,kBAAAA,UAAU,OAAX,EAAiB,aAAY,iBAAkB,CAAA,CAC/C,EAAA,CAAA;CAEK,CAAA;AAEf;;AAUA,SAAgB,0BAA0B,EAAE,WAAW,cAA8C;CACnG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,UAAU,OAAX,EACE,aAAY,SACV,KAAK,YAAA,cACF,aAAa,iBAAA,GAAA,kBAAA,IAAA,CAAC,6BAAD,CAA8B,CAAA,IAC1C,aACF,WAAW,IAAI,IAEf,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,UAAU,MAAX,EAAsB,KAAO,CAAA,EAGlC,CAAA;AAEL;;AAOA,SAAgB,4BAA4B,EAC1C,UAAU,oBACV,SACA,cACmC;CACnC,MAAM,EAAE,SAAS,UAAU,QAAQ,eAAe,SAAS,iBAAiBG,0EAAAA,iBAAiB;CAC7F,MAAM,EAAE,cAAcC,0EAAAA,cAAc;CAEpC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wDAAAA,oBAAD;EACE,QAAQ,QAAQ;EAChB,gBAAgB;EACN;EACF;EACR,cAAc;EACd,mBAAmB;EACnB,UAAU;EACD;EACT,eAAeC,0EAAAA,uBAAuB;EAC7B;EACG;CACb,CAAA;AAEL"}
1
+ {"version":3,"file":"traces-explorer-filter-bar.cjs.js","names":["useTracesConfig","useTracesFilterBarFields","useTracesFilterBar","FilterBar","TRACE_FILTER_BAR_OPERATORS","_Fragment","useTracesFilters","useTracesList","TraceTimeRangeChip","DEFAULT_TRACES_FILTERS"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { TRACE_FILTER_BAR_OPERATORS } from '../../trace-filters';\nimport type { TraceDatePreset } from '../../types';\nimport { TRACE_TIME_RANGE_FIELD_ID, TraceTimeRangeChip } from '../trace-time-range-chip';\nimport type { TraceTimeRangeChipProps } from '../trace-time-range-chip';\nimport { DEFAULT_TRACES_FILTERS } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters, useTracesList } from './traces-explorer-context';\nimport { useTracesFilterBar, useTracesFilterBarFields } from './use-traces-filter-bar';\nimport { FilterBar } from '@/ds/components/FilterBar';\nimport type { FilterBarItem } from '@/ds/components/FilterBar';\n\nconst TIME_RANGE_PRESETS: readonly TraceDatePreset[] = [\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n];\n\n// Items are rebuilt from tokens with `id: fieldId` (traceTokensToFilterBarItems); give the\n// draft that id so the chip survives the round trip without remounting.\nconst createItemId = (fieldId: string) => fieldId;\n\nexport type TracesExplorerFilterBarProps = {\n /** Replaces the default chips and input, e.g. to pass a configured `TracesExplorer.TimeRangeChip`. */\n children?: ReactNode;\n};\n\n/**\n * The trace filters bar, wired to the explorer's fields and filters. Hosts that need extra\n * fields or items (e.g. their own scope pickers) can render the design-system `FilterBar`\n * themselves from `useTracesFilterBarFields()` / `useTracesFilterBar()` and reuse `FilterChips`.\n */\nexport function TracesExplorerFilterBar({ children }: TracesExplorerFilterBarProps) {\n const { withQueryTrace } = useTracesConfig();\n const filterBarFields = useTracesFilterBarFields();\n const { filterBarValue, flatFilterBarValue, onFilterBarChange, onFlatFilterBarChange } = useTracesFilterBar();\n\n return (\n <FilterBar\n fields={filterBarFields}\n operators={TRACE_FILTER_BAR_OPERATORS}\n {...(withQueryTrace\n ? { value: filterBarValue, onValueChange: onFilterBarChange }\n : { value: flatFilterBarValue, onValueChange: onFlatFilterBarChange })}\n createItemId={createItemId}\n maxDepth={3}\n aria-label=\"Trace filters\"\n className=\"min-w-64 flex-1\"\n >\n {children ?? (\n <>\n <TracesExplorerFilterChips />\n <FilterBar.Input placeholder=\"Filter traces…\" />\n </>\n )}\n </FilterBar>\n );\n}\n\nexport type TracesExplorerFilterChipsProps = {\n /** Rendered for the time range item. Defaults to `<TracesExplorer.TimeRangeChip />`. */\n timeRange?: ReactNode;\n /** Renders every other item. Defaults to the design-system chip. */\n renderChip?: (item: FilterBarItem) => ReactNode;\n};\n\n/** The bar's chips: the time range chip in its slot, then one chip per filter. */\nexport function TracesExplorerFilterChips({ timeRange, renderChip }: TracesExplorerFilterChipsProps) {\n return (\n <FilterBar.Chips\n renderChip={item =>\n item.fieldId === TRACE_TIME_RANGE_FIELD_ID ? (\n (timeRange ?? <TracesExplorerTimeRangeChip />)\n ) : renderChip ? (\n renderChip(item)\n ) : (\n <FilterBar.Chip item={item} />\n )\n }\n />\n );\n}\n\nexport type TracesExplorerTimeRangeChipProps = Partial<\n Pick<TraceTimeRangeChipProps, 'presets' | 'minDate' | 'maxRangeMs'>\n>;\n\n/** Its own component so a list loading flip only re-renders the chip, not the whole bar. */\nexport function TracesExplorerTimeRangeChip({\n presets = TIME_RANGE_PRESETS,\n minDate,\n maxRangeMs,\n}: TracesExplorerTimeRangeChipProps) {\n const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange, resetDateRange } = useTracesFilters();\n const { isLoading } = useTracesList();\n\n return (\n <TraceTimeRangeChip\n preset={filters.datePreset}\n onPresetChange={setDatePreset}\n dateFrom={dateFrom}\n dateTo={dateTo}\n onDateChange={setDate}\n onDateRangeChange={setDateRange}\n disabled={isLoading}\n presets={presets}\n defaultPreset={DEFAULT_TRACES_FILTERS.datePreset}\n onReset={() => resetDateRange(DEFAULT_TRACES_FILTERS.datePreset)}\n minDate={minDate}\n maxRangeMs={maxRangeMs}\n />\n );\n}\n"],"mappings":";;;;;;;;;AAWA,IAAM,qBAAiD;CACrD;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAM,gBAAgB,YAAoB;;;;;;AAY1C,SAAgB,wBAAwB,EAAE,YAA0C;CAClF,MAAM,EAAE,mBAAmBA,0EAAAA,gBAAgB;CAC3C,MAAM,kBAAkBC,wEAAAA,yBAAyB;CACjD,MAAM,EAAE,gBAAgB,oBAAoB,mBAAmB,0BAA0BC,wEAAAA,mBAAmB;CAE5G,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,WAAD;EACE,QAAQ;EACR,WAAWC,sBAAAA;EACX,GAAK,iBACD;GAAE,OAAO;GAAgB,eAAe;EAAkB,IAC1D;GAAE,OAAO;GAAoB,eAAe;EAAsB;EACxD;EACd,UAAU;EACV,cAAW;EACX,WAAU;EAET,UAAA,YACC,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,2BAAD,CAA4B,CAAA,GAC5B,iBAAA,GAAA,kBAAA,IAAA,CAACF,kBAAAA,UAAU,OAAX,EAAiB,aAAY,iBAAkB,CAAA,CAC/C,EAAA,CAAA;CAEK,CAAA;AAEf;;AAUA,SAAgB,0BAA0B,EAAE,WAAW,cAA8C;CACnG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,UAAU,OAAX,EACE,aAAY,SACV,KAAK,YAAA,cACF,aAAa,iBAAA,GAAA,kBAAA,IAAA,CAAC,6BAAD,CAA8B,CAAA,IAC1C,aACF,WAAW,IAAI,IAEf,iBAAA,GAAA,kBAAA,IAAA,CAACA,kBAAAA,UAAU,MAAX,EAAsB,KAAO,CAAA,EAGlC,CAAA;AAEL;;AAOA,SAAgB,4BAA4B,EAC1C,UAAU,oBACV,SACA,cACmC;CACnC,MAAM,EAAE,SAAS,UAAU,QAAQ,eAAe,SAAS,cAAc,mBAAmBG,0EAAAA,iBAAiB;CAC7G,MAAM,EAAE,cAAcC,0EAAAA,cAAc;CAEpC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wDAAAA,oBAAD;EACE,QAAQ,QAAQ;EAChB,gBAAgB;EACN;EACF;EACR,cAAc;EACd,mBAAmB;EACnB,UAAU;EACD;EACT,eAAeC,0EAAAA,uBAAuB;EACtC,eAAe,eAAeA,0EAAAA,uBAAuB,UAAU;EACtD;EACG;CACb,CAAA;AAEL"}
@@ -1,7 +1,7 @@
1
- import { u as TRACE_FILTER_BAR_OPERATORS } from "../../../../trace-filters-C27yWcan.js";
2
- import { TraceTimeRangeChip } from "../trace-time-range-chip.es.js";
1
+ import { u as TRACE_FILTER_BAR_OPERATORS } from "../../../../trace-filters-BJaebsxJ.js";
3
2
  import { DEFAULT_TRACES_FILTERS } from "./traces-explorer-actions.es.js";
4
- import { n as FilterBar } from "../../../../FilterBar-Dk3QEuT6.js";
3
+ import { TraceTimeRangeChip } from "../trace-time-range-chip.es.js";
4
+ import { n as FilterBar } from "../../../../FilterBar--4oguuVe.js";
5
5
  import { useTracesConfig, useTracesFilters, useTracesList } from "./traces-explorer-context.es.js";
6
6
  import { useTracesFilterBar, useTracesFilterBarFields } from "./use-traces-filter-bar.es.js";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -47,7 +47,7 @@ function TracesExplorerFilterChips({ timeRange, renderChip }) {
47
47
  }
48
48
  /** Its own component so a list loading flip only re-renders the chip, not the whole bar. */
49
49
  function TracesExplorerTimeRangeChip({ presets = TIME_RANGE_PRESETS, minDate, maxRangeMs }) {
50
- const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange } = useTracesFilters();
50
+ const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange, resetDateRange } = useTracesFilters();
51
51
  const { isLoading } = useTracesList();
52
52
  return /* @__PURE__ */ jsx(TraceTimeRangeChip, {
53
53
  preset: filters.datePreset,
@@ -59,6 +59,7 @@ function TracesExplorerTimeRangeChip({ presets = TIME_RANGE_PRESETS, minDate, ma
59
59
  disabled: isLoading,
60
60
  presets,
61
61
  defaultPreset: DEFAULT_TRACES_FILTERS.datePreset,
62
+ onReset: () => resetDateRange(DEFAULT_TRACES_FILTERS.datePreset),
62
63
  minDate,
63
64
  maxRangeMs
64
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-filter-bar.es.js","names":["_Fragment"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { TRACE_FILTER_BAR_OPERATORS } from '../../trace-filters';\nimport type { TraceDatePreset } from '../../types';\nimport { TRACE_TIME_RANGE_FIELD_ID, TraceTimeRangeChip } from '../trace-time-range-chip';\nimport type { TraceTimeRangeChipProps } from '../trace-time-range-chip';\nimport { DEFAULT_TRACES_FILTERS } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters, useTracesList } from './traces-explorer-context';\nimport { useTracesFilterBar, useTracesFilterBarFields } from './use-traces-filter-bar';\nimport { FilterBar } from '@/ds/components/FilterBar';\nimport type { FilterBarItem } from '@/ds/components/FilterBar';\n\nconst TIME_RANGE_PRESETS: readonly TraceDatePreset[] = [\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n];\n\n// Items are rebuilt from tokens with `id: fieldId` (traceTokensToFilterBarItems); give the\n// draft that id so the chip survives the round trip without remounting.\nconst createItemId = (fieldId: string) => fieldId;\n\nexport type TracesExplorerFilterBarProps = {\n /** Replaces the default chips and input, e.g. to pass a configured `TracesExplorer.TimeRangeChip`. */\n children?: ReactNode;\n};\n\n/**\n * The trace filters bar, wired to the explorer's fields and filters. Hosts that need extra\n * fields or items (e.g. their own scope pickers) can render the design-system `FilterBar`\n * themselves from `useTracesFilterBarFields()` / `useTracesFilterBar()` and reuse `FilterChips`.\n */\nexport function TracesExplorerFilterBar({ children }: TracesExplorerFilterBarProps) {\n const { withQueryTrace } = useTracesConfig();\n const filterBarFields = useTracesFilterBarFields();\n const { filterBarValue, flatFilterBarValue, onFilterBarChange, onFlatFilterBarChange } = useTracesFilterBar();\n\n return (\n <FilterBar\n fields={filterBarFields}\n operators={TRACE_FILTER_BAR_OPERATORS}\n {...(withQueryTrace\n ? { value: filterBarValue, onValueChange: onFilterBarChange }\n : { value: flatFilterBarValue, onValueChange: onFlatFilterBarChange })}\n createItemId={createItemId}\n maxDepth={3}\n aria-label=\"Trace filters\"\n className=\"min-w-64 flex-1\"\n >\n {children ?? (\n <>\n <TracesExplorerFilterChips />\n <FilterBar.Input placeholder=\"Filter traces…\" />\n </>\n )}\n </FilterBar>\n );\n}\n\nexport type TracesExplorerFilterChipsProps = {\n /** Rendered for the time range item. Defaults to `<TracesExplorer.TimeRangeChip />`. */\n timeRange?: ReactNode;\n /** Renders every other item. Defaults to the design-system chip. */\n renderChip?: (item: FilterBarItem) => ReactNode;\n};\n\n/** The bar's chips: the time range chip in its slot, then one chip per filter. */\nexport function TracesExplorerFilterChips({ timeRange, renderChip }: TracesExplorerFilterChipsProps) {\n return (\n <FilterBar.Chips\n renderChip={item =>\n item.fieldId === TRACE_TIME_RANGE_FIELD_ID ? (\n (timeRange ?? <TracesExplorerTimeRangeChip />)\n ) : renderChip ? (\n renderChip(item)\n ) : (\n <FilterBar.Chip item={item} />\n )\n }\n />\n );\n}\n\nexport type TracesExplorerTimeRangeChipProps = Partial<\n Pick<TraceTimeRangeChipProps, 'presets' | 'minDate' | 'maxRangeMs'>\n>;\n\n/** Its own component so a list loading flip only re-renders the chip, not the whole bar. */\nexport function TracesExplorerTimeRangeChip({\n presets = TIME_RANGE_PRESETS,\n minDate,\n maxRangeMs,\n}: TracesExplorerTimeRangeChipProps) {\n const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange } = useTracesFilters();\n const { isLoading } = useTracesList();\n\n return (\n <TraceTimeRangeChip\n preset={filters.datePreset}\n onPresetChange={setDatePreset}\n dateFrom={dateFrom}\n dateTo={dateTo}\n onDateChange={setDate}\n onDateRangeChange={setDateRange}\n disabled={isLoading}\n presets={presets}\n defaultPreset={DEFAULT_TRACES_FILTERS.datePreset}\n minDate={minDate}\n maxRangeMs={maxRangeMs}\n />\n );\n}\n"],"mappings":";;;;;;;;AAWA,IAAM,qBAAiD;CACrD;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAM,gBAAgB,YAAoB;;;;;;AAY1C,SAAgB,wBAAwB,EAAE,YAA0C;CAClF,MAAM,EAAE,mBAAmB,gBAAgB;CAC3C,MAAM,kBAAkB,yBAAyB;CACjD,MAAM,EAAE,gBAAgB,oBAAoB,mBAAmB,0BAA0B,mBAAmB;CAE5G,OACE,oBAAC,WAAD;EACE,QAAQ;EACR,WAAW;EACX,GAAK,iBACD;GAAE,OAAO;GAAgB,eAAe;EAAkB,IAC1D;GAAE,OAAO;GAAoB,eAAe;EAAsB;EACxD;EACd,UAAU;EACV,cAAW;EACX,WAAU;EAET,UAAA,YACC,qBAAAA,UAAA,EAAA,UAAA,CACE,oBAAC,2BAAD,CAA4B,CAAA,GAC5B,oBAAC,UAAU,OAAX,EAAiB,aAAY,iBAAkB,CAAA,CAC/C,EAAA,CAAA;CAEK,CAAA;AAEf;;AAUA,SAAgB,0BAA0B,EAAE,WAAW,cAA8C;CACnG,OACE,oBAAC,UAAU,OAAX,EACE,aAAY,SACV,KAAK,YAAA,cACF,aAAa,oBAAC,6BAAD,CAA8B,CAAA,IAC1C,aACF,WAAW,IAAI,IAEf,oBAAC,UAAU,MAAX,EAAsB,KAAO,CAAA,EAGlC,CAAA;AAEL;;AAOA,SAAgB,4BAA4B,EAC1C,UAAU,oBACV,SACA,cACmC;CACnC,MAAM,EAAE,SAAS,UAAU,QAAQ,eAAe,SAAS,iBAAiB,iBAAiB;CAC7F,MAAM,EAAE,cAAc,cAAc;CAEpC,OACE,oBAAC,oBAAD;EACE,QAAQ,QAAQ;EAChB,gBAAgB;EACN;EACF;EACR,cAAc;EACd,mBAAmB;EACnB,UAAU;EACD;EACT,eAAe,uBAAuB;EAC7B;EACG;CACb,CAAA;AAEL"}
1
+ {"version":3,"file":"traces-explorer-filter-bar.es.js","names":["_Fragment"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-filter-bar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { TRACE_FILTER_BAR_OPERATORS } from '../../trace-filters';\nimport type { TraceDatePreset } from '../../types';\nimport { TRACE_TIME_RANGE_FIELD_ID, TraceTimeRangeChip } from '../trace-time-range-chip';\nimport type { TraceTimeRangeChipProps } from '../trace-time-range-chip';\nimport { DEFAULT_TRACES_FILTERS } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters, useTracesList } from './traces-explorer-context';\nimport { useTracesFilterBar, useTracesFilterBarFields } from './use-traces-filter-bar';\nimport { FilterBar } from '@/ds/components/FilterBar';\nimport type { FilterBarItem } from '@/ds/components/FilterBar';\n\nconst TIME_RANGE_PRESETS: readonly TraceDatePreset[] = [\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n];\n\n// Items are rebuilt from tokens with `id: fieldId` (traceTokensToFilterBarItems); give the\n// draft that id so the chip survives the round trip without remounting.\nconst createItemId = (fieldId: string) => fieldId;\n\nexport type TracesExplorerFilterBarProps = {\n /** Replaces the default chips and input, e.g. to pass a configured `TracesExplorer.TimeRangeChip`. */\n children?: ReactNode;\n};\n\n/**\n * The trace filters bar, wired to the explorer's fields and filters. Hosts that need extra\n * fields or items (e.g. their own scope pickers) can render the design-system `FilterBar`\n * themselves from `useTracesFilterBarFields()` / `useTracesFilterBar()` and reuse `FilterChips`.\n */\nexport function TracesExplorerFilterBar({ children }: TracesExplorerFilterBarProps) {\n const { withQueryTrace } = useTracesConfig();\n const filterBarFields = useTracesFilterBarFields();\n const { filterBarValue, flatFilterBarValue, onFilterBarChange, onFlatFilterBarChange } = useTracesFilterBar();\n\n return (\n <FilterBar\n fields={filterBarFields}\n operators={TRACE_FILTER_BAR_OPERATORS}\n {...(withQueryTrace\n ? { value: filterBarValue, onValueChange: onFilterBarChange }\n : { value: flatFilterBarValue, onValueChange: onFlatFilterBarChange })}\n createItemId={createItemId}\n maxDepth={3}\n aria-label=\"Trace filters\"\n className=\"min-w-64 flex-1\"\n >\n {children ?? (\n <>\n <TracesExplorerFilterChips />\n <FilterBar.Input placeholder=\"Filter traces…\" />\n </>\n )}\n </FilterBar>\n );\n}\n\nexport type TracesExplorerFilterChipsProps = {\n /** Rendered for the time range item. Defaults to `<TracesExplorer.TimeRangeChip />`. */\n timeRange?: ReactNode;\n /** Renders every other item. Defaults to the design-system chip. */\n renderChip?: (item: FilterBarItem) => ReactNode;\n};\n\n/** The bar's chips: the time range chip in its slot, then one chip per filter. */\nexport function TracesExplorerFilterChips({ timeRange, renderChip }: TracesExplorerFilterChipsProps) {\n return (\n <FilterBar.Chips\n renderChip={item =>\n item.fieldId === TRACE_TIME_RANGE_FIELD_ID ? (\n (timeRange ?? <TracesExplorerTimeRangeChip />)\n ) : renderChip ? (\n renderChip(item)\n ) : (\n <FilterBar.Chip item={item} />\n )\n }\n />\n );\n}\n\nexport type TracesExplorerTimeRangeChipProps = Partial<\n Pick<TraceTimeRangeChipProps, 'presets' | 'minDate' | 'maxRangeMs'>\n>;\n\n/** Its own component so a list loading flip only re-renders the chip, not the whole bar. */\nexport function TracesExplorerTimeRangeChip({\n presets = TIME_RANGE_PRESETS,\n minDate,\n maxRangeMs,\n}: TracesExplorerTimeRangeChipProps) {\n const { filters, dateFrom, dateTo, setDatePreset, setDate, setDateRange, resetDateRange } = useTracesFilters();\n const { isLoading } = useTracesList();\n\n return (\n <TraceTimeRangeChip\n preset={filters.datePreset}\n onPresetChange={setDatePreset}\n dateFrom={dateFrom}\n dateTo={dateTo}\n onDateChange={setDate}\n onDateRangeChange={setDateRange}\n disabled={isLoading}\n presets={presets}\n defaultPreset={DEFAULT_TRACES_FILTERS.datePreset}\n onReset={() => resetDateRange(DEFAULT_TRACES_FILTERS.datePreset)}\n minDate={minDate}\n maxRangeMs={maxRangeMs}\n />\n );\n}\n"],"mappings":";;;;;;;;AAWA,IAAM,qBAAiD;CACrD;CACA;CACA;CACA;CACA;CACA;AACF;AAIA,IAAM,gBAAgB,YAAoB;;;;;;AAY1C,SAAgB,wBAAwB,EAAE,YAA0C;CAClF,MAAM,EAAE,mBAAmB,gBAAgB;CAC3C,MAAM,kBAAkB,yBAAyB;CACjD,MAAM,EAAE,gBAAgB,oBAAoB,mBAAmB,0BAA0B,mBAAmB;CAE5G,OACE,oBAAC,WAAD;EACE,QAAQ;EACR,WAAW;EACX,GAAK,iBACD;GAAE,OAAO;GAAgB,eAAe;EAAkB,IAC1D;GAAE,OAAO;GAAoB,eAAe;EAAsB;EACxD;EACd,UAAU;EACV,cAAW;EACX,WAAU;EAET,UAAA,YACC,qBAAAA,UAAA,EAAA,UAAA,CACE,oBAAC,2BAAD,CAA4B,CAAA,GAC5B,oBAAC,UAAU,OAAX,EAAiB,aAAY,iBAAkB,CAAA,CAC/C,EAAA,CAAA;CAEK,CAAA;AAEf;;AAUA,SAAgB,0BAA0B,EAAE,WAAW,cAA8C;CACnG,OACE,oBAAC,UAAU,OAAX,EACE,aAAY,SACV,KAAK,YAAA,cACF,aAAa,oBAAC,6BAAD,CAA8B,CAAA,IAC1C,aACF,WAAW,IAAI,IAEf,oBAAC,UAAU,MAAX,EAAsB,KAAO,CAAA,EAGlC,CAAA;AAEL;;AAOA,SAAgB,4BAA4B,EAC1C,UAAU,oBACV,SACA,cACmC;CACnC,MAAM,EAAE,SAAS,UAAU,QAAQ,eAAe,SAAS,cAAc,mBAAmB,iBAAiB;CAC7G,MAAM,EAAE,cAAc,cAAc;CAEpC,OACE,oBAAC,oBAAD;EACE,QAAQ,QAAQ;EAChB,gBAAgB;EACN;EACF;EACR,cAAc;EACd,mBAAmB;EACnB,UAAU;EACD;EACT,eAAe,uBAAuB;EACtC,eAAe,eAAe,uBAAuB,UAAU;EACtD;EACG;CACb,CAAA;AAEL"}
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_domains_observability_components_observability_histogram = require("../../../observability/components/observability-histogram.cjs.js");
3
2
  const require_domains_traces_components_traces_explorer_traces_explorer_actions = require("./traces-explorer-actions.cjs.js");
3
+ const require_domains_observability_components_observability_histogram = require("../../../observability/components/observability-histogram.cjs.js");
4
4
  const require_domains_observability_lib_histogram_buckets = require("../../../observability/lib/histogram-buckets.cjs.js");
5
5
  const require_domains_traces_components_traces_explorer_traces_explorer_context = require("./traces-explorer-context.cjs.js");
6
6
  let react = require("react");
@@ -18,14 +18,17 @@ var SELECTION_CLOCK = /* @__PURE__ */ new Date(0);
18
18
  * Dragging across bars narrows the list to their time span as a custom range.
19
19
  */
20
20
  function TracesExplorerHistogram() {
21
- const { withQueryTrace, withRootDuration } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesConfig();
22
- const { filters, dateFrom, dateTo, runningSelected, setDatePreset, setDateRange } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesFilters();
21
+ const { withQueryTrace, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withOutcomeFields } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesConfig();
22
+ const { filters, dateFrom, dateTo, runningSelected, zoomDateRange } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesFilters();
23
23
  const aggregateAvailable = (0, _mastra_react_hooks_capabilities.useTraceAggregateAvailable)();
24
24
  const selectionKey = JSON.stringify(require_domains_traces_components_traces_explorer_traces_explorer_actions.buildTracesQueryRequest({
25
25
  filters,
26
26
  dateFrom,
27
27
  dateTo,
28
28
  withRootDuration,
29
+ withTimeToFirstChunk,
30
+ withTimeToFirstToken,
31
+ withOutcomeFields,
29
32
  now: SELECTION_CLOCK
30
33
  }));
31
34
  const now = (0, react.useMemo)(() => /* @__PURE__ */ new Date(), [selectionKey]);
@@ -35,6 +38,9 @@ function TracesExplorerHistogram() {
35
38
  dateFrom,
36
39
  dateTo,
37
40
  withRootDuration,
41
+ withTimeToFirstChunk,
42
+ withTimeToFirstToken,
43
+ withOutcomeFields,
38
44
  now
39
45
  });
40
46
  return {
@@ -49,6 +55,9 @@ function TracesExplorerHistogram() {
49
55
  dateFrom,
50
56
  dateTo,
51
57
  withRootDuration,
58
+ withTimeToFirstChunk,
59
+ withTimeToFirstToken,
60
+ withOutcomeFields,
52
61
  now
53
62
  ]);
54
63
  const hidden = !withQueryTrace || !aggregateAvailable.enabled || runningSelected || require_domains_observability_lib_histogram_buckets.exceedsAggregateWindow(request.timeRange);
@@ -68,8 +77,7 @@ function TracesExplorerHistogram() {
68
77
  isUpdating: isPlaceholderData,
69
78
  onZoom: (range) => {
70
79
  const { from, to } = require_domains_observability_lib_histogram_buckets.zoomWindow(buckets, range, request.timeRange);
71
- setDatePreset("custom");
72
- setDateRange(from, to);
80
+ zoomDateRange(from, to);
73
81
  }
74
82
  });
75
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-histogram.cjs.js","names":["useTracesConfig","useTracesFilters","useTraceAggregateAvailable","buildTracesQueryRequest","useMemo","histogramPlan","HISTOGRAM_MEASURES","exceedsAggregateWindow","useTraceAggregate","keepPreviousData","bucketCountRows","ObservabilityHistogram","zoomWindow"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-histogram.tsx"],"sourcesContent":["import type { AggregateTracesArgs } from '@mastra/client-js';\nimport { useTraceAggregateAvailable } from '@mastra/react/hooks/capabilities';\nimport { useTraceAggregate } from '@mastra/react/hooks/traces';\nimport { keepPreviousData } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { buildTracesQueryRequest } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters } from './traces-explorer-context';\nimport { ObservabilityHistogram } from '@/domains/observability/components/observability-histogram';\nimport {\n bucketCountRows,\n exceedsAggregateWindow,\n HISTOGRAM_MEASURES,\n histogramPlan,\n zoomWindow,\n} from '@/domains/observability/lib/histogram-buckets';\n\n/** Compares selections, not instants: only filter or date changes move the chart's `now`. */\nconst SELECTION_CLOCK = new Date(0);\n\n/**\n * Trace and error counts over the list's time range, built from the same filters as the list query.\n * Renders nothing when the server can't aggregate traces, the window is wider than it aggregates,\n * or the filters ask for `running` traces (the query drops that status, so the counts wouldn't match).\n * Dragging across bars narrows the list to their time span as a custom range.\n */\nexport function TracesExplorerHistogram() {\n const { withQueryTrace, withRootDuration } = useTracesConfig();\n const { filters, dateFrom, dateTo, runningSelected, setDatePreset, setDateRange } = useTracesFilters();\n const aggregateAvailable = useTraceAggregateAvailable();\n\n const selectionKey = JSON.stringify(\n buildTracesQueryRequest({ filters, dateFrom, dateTo, withRootDuration, now: SELECTION_CLOCK }),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `selectionKey` is the trigger, not an input.\n const now = useMemo(() => new Date(), [selectionKey]);\n\n const request = useMemo<AggregateTracesArgs>(() => {\n const { timeRange, where } = buildTracesQueryRequest({ filters, dateFrom, dateTo, withRootDuration, now });\n return {\n timeRange,\n ...(where ? { where } : {}),\n interval: histogramPlan(timeRange).interval,\n measures: [...HISTOGRAM_MEASURES],\n // No groupBy means a single group; the default limit would multiply past the server's row cap.\n limit: 1,\n };\n }, [filters, dateFrom, dateTo, withRootDuration, now]);\n\n const hidden =\n !withQueryTrace || !aggregateAvailable.enabled || runningSelected || exceedsAggregateWindow(request.timeRange);\n\n const { data, isLoading, isError, isPlaceholderData } = useTraceAggregate({\n request,\n enabled: !hidden,\n queryOptions: { placeholderData: keepPreviousData },\n });\n\n const buckets = useMemo(() => bucketCountRows(data?.rows ?? [], request.timeRange), [data, request.timeRange]);\n\n if (hidden) return null;\n\n return (\n <ObservabilityHistogram\n label=\"Traces over time\"\n resourceLabel=\"Traces\"\n buckets={buckets}\n isLoading={isLoading}\n isError={isError}\n isUpdating={isPlaceholderData}\n onZoom={range => {\n const { from, to } = zoomWindow(buckets, range, request.timeRange);\n setDatePreset('custom');\n setDateRange(from, to);\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAM,kCAAkB,IAAI,KAAK,CAAC;;;;;;;AAQlC,SAAgB,0BAA0B;CACxC,MAAM,EAAE,gBAAgB,qBAAqBA,0EAAAA,gBAAgB;CAC7D,MAAM,EAAE,SAAS,UAAU,QAAQ,iBAAiB,eAAe,iBAAiBC,0EAAAA,iBAAiB;CACrG,MAAM,sBAAA,GAAqBC,iCAAAA,2BAAAA,CAA2B;CAEtD,MAAM,eAAe,KAAK,UACxBC,0EAAAA,wBAAwB;EAAE;EAAS;EAAU;EAAQ;EAAkB,KAAK;CAAgB,CAAC,CAC/F;CAEA,MAAM,OAAA,GAAMC,MAAAA,QAAAA,uBAAc,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC;CAEpD,MAAM,WAAA,GAAUA,MAAAA,QAAAA,OAAmC;EACjD,MAAM,EAAE,WAAW,UAAUD,0EAAAA,wBAAwB;GAAE;GAAS;GAAU;GAAQ;GAAkB;EAAI,CAAC;EACzG,OAAO;GACL;GACA,GAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;GACzB,UAAUE,oDAAAA,cAAc,SAAS,CAAC,CAAC;GACnC,UAAU,CAAC,GAAGC,oDAAAA,kBAAkB;GAEhC,OAAO;EACT;CACF,GAAG;EAAC;EAAS;EAAU;EAAQ;EAAkB;CAAG,CAAC;CAErD,MAAM,SACJ,CAAC,kBAAkB,CAAC,mBAAmB,WAAW,mBAAmBC,oDAAAA,uBAAuB,QAAQ,SAAS;CAE/G,MAAM,EAAE,MAAM,WAAW,SAAS,uBAAA,GAAsBC,2BAAAA,kBAAAA,CAAkB;EACxE;EACA,SAAS,CAAC;EACV,cAAc,EAAE,iBAAiBC,sBAAAA,iBAAiB;CACpD,CAAC;CAED,MAAM,WAAA,GAAUL,MAAAA,QAAAA,OAAcM,oDAAAA,gBAAgB,MAAM,QAAQ,CAAC,GAAG,QAAQ,SAAS,GAAG,CAAC,MAAM,QAAQ,SAAS,CAAC;CAE7G,IAAI,QAAQ,OAAO;CAEnB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,iEAAAA,wBAAD;EACE,OAAM;EACN,eAAc;EACL;EACE;EACF;EACT,YAAY;EACZ,SAAQ,UAAS;GACf,MAAM,EAAE,MAAM,OAAOC,oDAAAA,WAAW,SAAS,OAAO,QAAQ,SAAS;GACjE,cAAc,QAAQ;GACtB,aAAa,MAAM,EAAE;EACvB;CACD,CAAA;AAEL"}
1
+ {"version":3,"file":"traces-explorer-histogram.cjs.js","names":["useTracesConfig","useTracesFilters","useTraceAggregateAvailable","buildTracesQueryRequest","useMemo","histogramPlan","HISTOGRAM_MEASURES","exceedsAggregateWindow","useTraceAggregate","keepPreviousData","bucketCountRows","ObservabilityHistogram","zoomWindow"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-histogram.tsx"],"sourcesContent":["import type { AggregateTracesArgs } from '@mastra/client-js';\nimport { useTraceAggregateAvailable } from '@mastra/react/hooks/capabilities';\nimport { useTraceAggregate } from '@mastra/react/hooks/traces';\nimport { keepPreviousData } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { buildTracesQueryRequest } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters } from './traces-explorer-context';\nimport { ObservabilityHistogram } from '@/domains/observability/components/observability-histogram';\nimport {\n bucketCountRows,\n exceedsAggregateWindow,\n HISTOGRAM_MEASURES,\n histogramPlan,\n zoomWindow,\n} from '@/domains/observability/lib/histogram-buckets';\n\n/** Compares selections, not instants: only filter or date changes move the chart's `now`. */\nconst SELECTION_CLOCK = new Date(0);\n\n/**\n * Trace and error counts over the list's time range, built from the same filters as the list query.\n * Renders nothing when the server can't aggregate traces, the window is wider than it aggregates,\n * or the filters ask for `running` traces (the query drops that status, so the counts wouldn't match).\n * Dragging across bars narrows the list to their time span as a custom range.\n */\nexport function TracesExplorerHistogram() {\n const { withQueryTrace, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withOutcomeFields } =\n useTracesConfig();\n const { filters, dateFrom, dateTo, runningSelected, zoomDateRange } = useTracesFilters();\n const aggregateAvailable = useTraceAggregateAvailable();\n\n const selectionKey = JSON.stringify(\n buildTracesQueryRequest({\n filters,\n dateFrom,\n dateTo,\n withRootDuration,\n withTimeToFirstChunk,\n withTimeToFirstToken,\n withOutcomeFields,\n now: SELECTION_CLOCK,\n }),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `selectionKey` is the trigger, not an input.\n const now = useMemo(() => new Date(), [selectionKey]);\n\n const request = useMemo<AggregateTracesArgs>(() => {\n const { timeRange, where } = buildTracesQueryRequest({\n filters,\n dateFrom,\n dateTo,\n withRootDuration,\n withTimeToFirstChunk,\n withTimeToFirstToken,\n withOutcomeFields,\n now,\n });\n return {\n timeRange,\n ...(where ? { where } : {}),\n interval: histogramPlan(timeRange).interval,\n measures: [...HISTOGRAM_MEASURES],\n // No groupBy means a single group; the default limit would multiply past the server's row cap.\n limit: 1,\n };\n }, [filters, dateFrom, dateTo, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withOutcomeFields, now]);\n\n const hidden =\n !withQueryTrace || !aggregateAvailable.enabled || runningSelected || exceedsAggregateWindow(request.timeRange);\n\n const { data, isLoading, isError, isPlaceholderData } = useTraceAggregate({\n request,\n enabled: !hidden,\n queryOptions: { placeholderData: keepPreviousData },\n });\n\n const buckets = useMemo(() => bucketCountRows(data?.rows ?? [], request.timeRange), [data, request.timeRange]);\n\n if (hidden) return null;\n\n return (\n <ObservabilityHistogram\n label=\"Traces over time\"\n resourceLabel=\"Traces\"\n buckets={buckets}\n isLoading={isLoading}\n isError={isError}\n isUpdating={isPlaceholderData}\n onZoom={range => {\n const { from, to } = zoomWindow(buckets, range, request.timeRange);\n zoomDateRange(from, to);\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;AAiBA,IAAM,kCAAkB,IAAI,KAAK,CAAC;;;;;;;AAQlC,SAAgB,0BAA0B;CACxC,MAAM,EAAE,gBAAgB,kBAAkB,sBAAsB,sBAAsB,sBACpFA,0EAAAA,gBAAgB;CAClB,MAAM,EAAE,SAAS,UAAU,QAAQ,iBAAiB,kBAAkBC,0EAAAA,iBAAiB;CACvF,MAAM,sBAAA,GAAqBC,iCAAAA,2BAAAA,CAA2B;CAEtD,MAAM,eAAe,KAAK,UACxBC,0EAAAA,wBAAwB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,KAAK;CACP,CAAC,CACH;CAEA,MAAM,OAAA,GAAMC,MAAAA,QAAAA,uBAAc,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC;CAEpD,MAAM,WAAA,GAAUA,MAAAA,QAAAA,OAAmC;EACjD,MAAM,EAAE,WAAW,UAAUD,0EAAAA,wBAAwB;GACnD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,OAAO;GACL;GACA,GAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;GACzB,UAAUE,oDAAAA,cAAc,SAAS,CAAC,CAAC;GACnC,UAAU,CAAC,GAAGC,oDAAAA,kBAAkB;GAEhC,OAAO;EACT;CACF,GAAG;EAAC;EAAS;EAAU;EAAQ;EAAkB;EAAsB;EAAsB;EAAmB;CAAG,CAAC;CAEpH,MAAM,SACJ,CAAC,kBAAkB,CAAC,mBAAmB,WAAW,mBAAmBC,oDAAAA,uBAAuB,QAAQ,SAAS;CAE/G,MAAM,EAAE,MAAM,WAAW,SAAS,uBAAA,GAAsBC,2BAAAA,kBAAAA,CAAkB;EACxE;EACA,SAAS,CAAC;EACV,cAAc,EAAE,iBAAiBC,sBAAAA,iBAAiB;CACpD,CAAC;CAED,MAAM,WAAA,GAAUL,MAAAA,QAAAA,OAAcM,oDAAAA,gBAAgB,MAAM,QAAQ,CAAC,GAAG,QAAQ,SAAS,GAAG,CAAC,MAAM,QAAQ,SAAS,CAAC;CAE7G,IAAI,QAAQ,OAAO;CAEnB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,iEAAAA,wBAAD;EACE,OAAM;EACN,eAAc;EACL;EACE;EACF;EACT,YAAY;EACZ,SAAQ,UAAS;GACf,MAAM,EAAE,MAAM,OAAOC,oDAAAA,WAAW,SAAS,OAAO,QAAQ,SAAS;GACjE,cAAc,MAAM,EAAE;EACxB;CACD,CAAA;AAEL"}
@@ -1,5 +1,5 @@
1
- import { ObservabilityHistogram } from "../../../observability/components/observability-histogram.es.js";
2
1
  import { buildTracesQueryRequest } from "./traces-explorer-actions.es.js";
2
+ import { ObservabilityHistogram } from "../../../observability/components/observability-histogram.es.js";
3
3
  import { HISTOGRAM_MEASURES, bucketCountRows, exceedsAggregateWindow, histogramPlan, zoomWindow } from "../../../observability/lib/histogram-buckets.es.js";
4
4
  import { useTracesConfig, useTracesFilters } from "./traces-explorer-context.es.js";
5
5
  import { useMemo } from "react";
@@ -17,14 +17,17 @@ var SELECTION_CLOCK = /* @__PURE__ */ new Date(0);
17
17
  * Dragging across bars narrows the list to their time span as a custom range.
18
18
  */
19
19
  function TracesExplorerHistogram() {
20
- const { withQueryTrace, withRootDuration } = useTracesConfig();
21
- const { filters, dateFrom, dateTo, runningSelected, setDatePreset, setDateRange } = useTracesFilters();
20
+ const { withQueryTrace, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withOutcomeFields } = useTracesConfig();
21
+ const { filters, dateFrom, dateTo, runningSelected, zoomDateRange } = useTracesFilters();
22
22
  const aggregateAvailable = useTraceAggregateAvailable();
23
23
  const selectionKey = JSON.stringify(buildTracesQueryRequest({
24
24
  filters,
25
25
  dateFrom,
26
26
  dateTo,
27
27
  withRootDuration,
28
+ withTimeToFirstChunk,
29
+ withTimeToFirstToken,
30
+ withOutcomeFields,
28
31
  now: SELECTION_CLOCK
29
32
  }));
30
33
  const now = useMemo(() => /* @__PURE__ */ new Date(), [selectionKey]);
@@ -34,6 +37,9 @@ function TracesExplorerHistogram() {
34
37
  dateFrom,
35
38
  dateTo,
36
39
  withRootDuration,
40
+ withTimeToFirstChunk,
41
+ withTimeToFirstToken,
42
+ withOutcomeFields,
37
43
  now
38
44
  });
39
45
  return {
@@ -48,6 +54,9 @@ function TracesExplorerHistogram() {
48
54
  dateFrom,
49
55
  dateTo,
50
56
  withRootDuration,
57
+ withTimeToFirstChunk,
58
+ withTimeToFirstToken,
59
+ withOutcomeFields,
51
60
  now
52
61
  ]);
53
62
  const hidden = !withQueryTrace || !aggregateAvailable.enabled || runningSelected || exceedsAggregateWindow(request.timeRange);
@@ -67,8 +76,7 @@ function TracesExplorerHistogram() {
67
76
  isUpdating: isPlaceholderData,
68
77
  onZoom: (range) => {
69
78
  const { from, to } = zoomWindow(buckets, range, request.timeRange);
70
- setDatePreset("custom");
71
- setDateRange(from, to);
79
+ zoomDateRange(from, to);
72
80
  }
73
81
  });
74
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-histogram.es.js","names":[],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-histogram.tsx"],"sourcesContent":["import type { AggregateTracesArgs } from '@mastra/client-js';\nimport { useTraceAggregateAvailable } from '@mastra/react/hooks/capabilities';\nimport { useTraceAggregate } from '@mastra/react/hooks/traces';\nimport { keepPreviousData } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { buildTracesQueryRequest } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters } from './traces-explorer-context';\nimport { ObservabilityHistogram } from '@/domains/observability/components/observability-histogram';\nimport {\n bucketCountRows,\n exceedsAggregateWindow,\n HISTOGRAM_MEASURES,\n histogramPlan,\n zoomWindow,\n} from '@/domains/observability/lib/histogram-buckets';\n\n/** Compares selections, not instants: only filter or date changes move the chart's `now`. */\nconst SELECTION_CLOCK = new Date(0);\n\n/**\n * Trace and error counts over the list's time range, built from the same filters as the list query.\n * Renders nothing when the server can't aggregate traces, the window is wider than it aggregates,\n * or the filters ask for `running` traces (the query drops that status, so the counts wouldn't match).\n * Dragging across bars narrows the list to their time span as a custom range.\n */\nexport function TracesExplorerHistogram() {\n const { withQueryTrace, withRootDuration } = useTracesConfig();\n const { filters, dateFrom, dateTo, runningSelected, setDatePreset, setDateRange } = useTracesFilters();\n const aggregateAvailable = useTraceAggregateAvailable();\n\n const selectionKey = JSON.stringify(\n buildTracesQueryRequest({ filters, dateFrom, dateTo, withRootDuration, now: SELECTION_CLOCK }),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `selectionKey` is the trigger, not an input.\n const now = useMemo(() => new Date(), [selectionKey]);\n\n const request = useMemo<AggregateTracesArgs>(() => {\n const { timeRange, where } = buildTracesQueryRequest({ filters, dateFrom, dateTo, withRootDuration, now });\n return {\n timeRange,\n ...(where ? { where } : {}),\n interval: histogramPlan(timeRange).interval,\n measures: [...HISTOGRAM_MEASURES],\n // No groupBy means a single group; the default limit would multiply past the server's row cap.\n limit: 1,\n };\n }, [filters, dateFrom, dateTo, withRootDuration, now]);\n\n const hidden =\n !withQueryTrace || !aggregateAvailable.enabled || runningSelected || exceedsAggregateWindow(request.timeRange);\n\n const { data, isLoading, isError, isPlaceholderData } = useTraceAggregate({\n request,\n enabled: !hidden,\n queryOptions: { placeholderData: keepPreviousData },\n });\n\n const buckets = useMemo(() => bucketCountRows(data?.rows ?? [], request.timeRange), [data, request.timeRange]);\n\n if (hidden) return null;\n\n return (\n <ObservabilityHistogram\n label=\"Traces over time\"\n resourceLabel=\"Traces\"\n buckets={buckets}\n isLoading={isLoading}\n isError={isError}\n isUpdating={isPlaceholderData}\n onZoom={range => {\n const { from, to } = zoomWindow(buckets, range, request.timeRange);\n setDatePreset('custom');\n setDateRange(from, to);\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AAiBA,IAAM,kCAAkB,IAAI,KAAK,CAAC;;;;;;;AAQlC,SAAgB,0BAA0B;CACxC,MAAM,EAAE,gBAAgB,qBAAqB,gBAAgB;CAC7D,MAAM,EAAE,SAAS,UAAU,QAAQ,iBAAiB,eAAe,iBAAiB,iBAAiB;CACrG,MAAM,qBAAqB,2BAA2B;CAEtD,MAAM,eAAe,KAAK,UACxB,wBAAwB;EAAE;EAAS;EAAU;EAAQ;EAAkB,KAAK;CAAgB,CAAC,CAC/F;CAEA,MAAM,MAAM,8BAAc,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC;CAEpD,MAAM,UAAU,cAAmC;EACjD,MAAM,EAAE,WAAW,UAAU,wBAAwB;GAAE;GAAS;GAAU;GAAQ;GAAkB;EAAI,CAAC;EACzG,OAAO;GACL;GACA,GAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;GACzB,UAAU,cAAc,SAAS,CAAC,CAAC;GACnC,UAAU,CAAC,GAAG,kBAAkB;GAEhC,OAAO;EACT;CACF,GAAG;EAAC;EAAS;EAAU;EAAQ;EAAkB;CAAG,CAAC;CAErD,MAAM,SACJ,CAAC,kBAAkB,CAAC,mBAAmB,WAAW,mBAAmB,uBAAuB,QAAQ,SAAS;CAE/G,MAAM,EAAE,MAAM,WAAW,SAAS,sBAAsB,kBAAkB;EACxE;EACA,SAAS,CAAC;EACV,cAAc,EAAE,iBAAiB,iBAAiB;CACpD,CAAC;CAED,MAAM,UAAU,cAAc,gBAAgB,MAAM,QAAQ,CAAC,GAAG,QAAQ,SAAS,GAAG,CAAC,MAAM,QAAQ,SAAS,CAAC;CAE7G,IAAI,QAAQ,OAAO;CAEnB,OACE,oBAAC,wBAAD;EACE,OAAM;EACN,eAAc;EACL;EACE;EACF;EACT,YAAY;EACZ,SAAQ,UAAS;GACf,MAAM,EAAE,MAAM,OAAO,WAAW,SAAS,OAAO,QAAQ,SAAS;GACjE,cAAc,QAAQ;GACtB,aAAa,MAAM,EAAE;EACvB;CACD,CAAA;AAEL"}
1
+ {"version":3,"file":"traces-explorer-histogram.es.js","names":[],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-histogram.tsx"],"sourcesContent":["import type { AggregateTracesArgs } from '@mastra/client-js';\nimport { useTraceAggregateAvailable } from '@mastra/react/hooks/capabilities';\nimport { useTraceAggregate } from '@mastra/react/hooks/traces';\nimport { keepPreviousData } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { buildTracesQueryRequest } from './traces-explorer-actions';\nimport { useTracesConfig, useTracesFilters } from './traces-explorer-context';\nimport { ObservabilityHistogram } from '@/domains/observability/components/observability-histogram';\nimport {\n bucketCountRows,\n exceedsAggregateWindow,\n HISTOGRAM_MEASURES,\n histogramPlan,\n zoomWindow,\n} from '@/domains/observability/lib/histogram-buckets';\n\n/** Compares selections, not instants: only filter or date changes move the chart's `now`. */\nconst SELECTION_CLOCK = new Date(0);\n\n/**\n * Trace and error counts over the list's time range, built from the same filters as the list query.\n * Renders nothing when the server can't aggregate traces, the window is wider than it aggregates,\n * or the filters ask for `running` traces (the query drops that status, so the counts wouldn't match).\n * Dragging across bars narrows the list to their time span as a custom range.\n */\nexport function TracesExplorerHistogram() {\n const { withQueryTrace, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withOutcomeFields } =\n useTracesConfig();\n const { filters, dateFrom, dateTo, runningSelected, zoomDateRange } = useTracesFilters();\n const aggregateAvailable = useTraceAggregateAvailable();\n\n const selectionKey = JSON.stringify(\n buildTracesQueryRequest({\n filters,\n dateFrom,\n dateTo,\n withRootDuration,\n withTimeToFirstChunk,\n withTimeToFirstToken,\n withOutcomeFields,\n now: SELECTION_CLOCK,\n }),\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps -- `selectionKey` is the trigger, not an input.\n const now = useMemo(() => new Date(), [selectionKey]);\n\n const request = useMemo<AggregateTracesArgs>(() => {\n const { timeRange, where } = buildTracesQueryRequest({\n filters,\n dateFrom,\n dateTo,\n withRootDuration,\n withTimeToFirstChunk,\n withTimeToFirstToken,\n withOutcomeFields,\n now,\n });\n return {\n timeRange,\n ...(where ? { where } : {}),\n interval: histogramPlan(timeRange).interval,\n measures: [...HISTOGRAM_MEASURES],\n // No groupBy means a single group; the default limit would multiply past the server's row cap.\n limit: 1,\n };\n }, [filters, dateFrom, dateTo, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withOutcomeFields, now]);\n\n const hidden =\n !withQueryTrace || !aggregateAvailable.enabled || runningSelected || exceedsAggregateWindow(request.timeRange);\n\n const { data, isLoading, isError, isPlaceholderData } = useTraceAggregate({\n request,\n enabled: !hidden,\n queryOptions: { placeholderData: keepPreviousData },\n });\n\n const buckets = useMemo(() => bucketCountRows(data?.rows ?? [], request.timeRange), [data, request.timeRange]);\n\n if (hidden) return null;\n\n return (\n <ObservabilityHistogram\n label=\"Traces over time\"\n resourceLabel=\"Traces\"\n buckets={buckets}\n isLoading={isLoading}\n isError={isError}\n isUpdating={isPlaceholderData}\n onZoom={range => {\n const { from, to } = zoomWindow(buckets, range, request.timeRange);\n zoomDateRange(from, to);\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;;AAiBA,IAAM,kCAAkB,IAAI,KAAK,CAAC;;;;;;;AAQlC,SAAgB,0BAA0B;CACxC,MAAM,EAAE,gBAAgB,kBAAkB,sBAAsB,sBAAsB,sBACpF,gBAAgB;CAClB,MAAM,EAAE,SAAS,UAAU,QAAQ,iBAAiB,kBAAkB,iBAAiB;CACvF,MAAM,qBAAqB,2BAA2B;CAEtD,MAAM,eAAe,KAAK,UACxB,wBAAwB;EACtB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,KAAK;CACP,CAAC,CACH;CAEA,MAAM,MAAM,8BAAc,IAAI,KAAK,GAAG,CAAC,YAAY,CAAC;CAEpD,MAAM,UAAU,cAAmC;EACjD,MAAM,EAAE,WAAW,UAAU,wBAAwB;GACnD;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,OAAO;GACL;GACA,GAAI,QAAQ,EAAE,MAAM,IAAI,CAAC;GACzB,UAAU,cAAc,SAAS,CAAC,CAAC;GACnC,UAAU,CAAC,GAAG,kBAAkB;GAEhC,OAAO;EACT;CACF,GAAG;EAAC;EAAS;EAAU;EAAQ;EAAkB;EAAsB;EAAsB;EAAmB;CAAG,CAAC;CAEpH,MAAM,SACJ,CAAC,kBAAkB,CAAC,mBAAmB,WAAW,mBAAmB,uBAAuB,QAAQ,SAAS;CAE/G,MAAM,EAAE,MAAM,WAAW,SAAS,sBAAsB,kBAAkB;EACxE;EACA,SAAS,CAAC;EACV,cAAc,EAAE,iBAAiB,iBAAiB;CACpD,CAAC;CAED,MAAM,UAAU,cAAc,gBAAgB,MAAM,QAAQ,CAAC,GAAG,QAAQ,SAAS,GAAG,CAAC,MAAM,QAAQ,SAAS,CAAC;CAE7G,IAAI,QAAQ,OAAO;CAEnB,OACE,oBAAC,wBAAD;EACE,OAAM;EACN,eAAc;EACL;EACE;EACF;EACT,YAAY;EACZ,SAAQ,UAAS;GACf,MAAM,EAAE,MAAM,OAAO,WAAW,SAAS,OAAO,QAAQ,SAAS;GACjE,cAAc,MAAM,EAAE;EACxB;CACD,CAAA;AAEL"}
@@ -11,10 +11,10 @@ let react_jsx_runtime = require("react/jsx-runtime");
11
11
  * only list consumers, and a selection change doesn't re-run the list query hooks.
12
12
  */
13
13
  var TracesListProvider = (0, react.memo)(function TracesListProvider({ sort: hostSort, onSortChange, children }) {
14
- const { withQueryTrace, withRootDuration, withTimeToFirstChunkSort, withDeltaPolling, isCapabilitiesLoading } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesConfig();
14
+ const { withQueryTrace, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withTimeToFirstChunkSort, withTimeToFirstTokenSort, withOutcomeFields, withDeltaPolling, isCapabilitiesLoading } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesConfig();
15
15
  const { filters, dateFrom, dateTo } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTracesFilters();
16
16
  const { displayedPreferences } = require_domains_traces_components_traces_explorer_traces_explorer_context.useTraceUsageColumns();
17
- const sort = hostSort.field !== "timeToFirstChunkMs" || withTimeToFirstChunkSort && require_domains_traces_trace_list_columns.hasTraceColumn(displayedPreferences, "timeToFirstChunk") ? hostSort : require_domains_traces_components_traces_explorer_traces_explorer_actions.DEFAULT_TRACES_SORT;
17
+ const sort = hostSort.field === "startedAt" || hostSort.field === "timeToFirstChunkMs" && withTimeToFirstChunkSort && require_domains_traces_trace_list_columns.hasTraceColumn(displayedPreferences, "timeToFirstChunk") || hostSort.field === "timeToFirstTokenMs" && withTimeToFirstTokenSort && require_domains_traces_trace_list_columns.hasTraceColumn(displayedPreferences, "timeToFirstToken") ? hostSort : require_domains_traces_components_traces_explorer_traces_explorer_actions.DEFAULT_TRACES_SORT;
18
18
  const { rows, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, error, refetch, isFetching, autoRefetch } = require_domains_traces_hooks_use_traces_list_source.useTracesListSource({
19
19
  rolling: !dateTo,
20
20
  query: (now) => require_domains_traces_components_traces_explorer_traces_explorer_actions.buildTracesQueryRequest({
@@ -22,6 +22,9 @@ var TracesListProvider = (0, react.memo)(function TracesListProvider({ sort: hos
22
22
  dateFrom,
23
23
  dateTo,
24
24
  withRootDuration,
25
+ withTimeToFirstChunk,
26
+ withTimeToFirstToken,
27
+ withOutcomeFields,
25
28
  now
26
29
  }),
27
30
  orderBy: [sort],
@@ -1 +1 @@
1
- {"version":3,"file":"traces-explorer-list-provider.cjs.js","names":["memo","useTracesConfig","useTracesFilters","useTraceUsageColumns","hasTraceColumn","DEFAULT_TRACES_SORT","useTracesListSource","buildTracesQueryRequest","buildTracesLegacyFilters","useMemo","TracesListContext","TracesListFetchingContext"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-list-provider.tsx"],"sourcesContent":["import { memo, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { useTracesListSource } from '../../hooks/use-traces-list-source';\nimport { hasTraceColumn } from '../../trace-list-columns';\nimport { buildTracesLegacyFilters, buildTracesQueryRequest, DEFAULT_TRACES_SORT } from './traces-explorer-actions';\nimport type { TracesSort } from './traces-explorer-actions';\nimport {\n TracesListContext,\n TracesListFetchingContext,\n useTraceUsageColumns,\n useTracesConfig,\n useTracesFilters,\n} from './traces-explorer-context';\nimport type { TracesListContextValue } from './traces-explorer-context';\n\ntype TracesListProviderProps = {\n sort: TracesSort;\n onSortChange: (next: TracesSort) => void;\n children: ReactNode;\n};\n\n/**\n * Owns the list query and its poll clock. Its own memoized component so a poll tick re-renders\n * only list consumers, and a selection change doesn't re-run the list query hooks.\n */\nexport const TracesListProvider = memo(function TracesListProvider({\n sort: hostSort,\n onSortChange,\n children,\n}: TracesListProviderProps) {\n const { withQueryTrace, withRootDuration, withTimeToFirstChunkSort, withDeltaPolling, isCapabilitiesLoading } =\n useTracesConfig();\n const { filters, dateFrom, dateTo } = useTracesFilters();\n const { displayedPreferences } = useTraceUsageColumns();\n // A TTFC sort the store can't run, or on a column that isn't shown, lists newest first instead.\n // The host keeps its raw value, like filters the server can't query.\n const sortable =\n hostSort.field !== 'timeToFirstChunkMs' ||\n (withTimeToFirstChunkSort && hasTraceColumn(displayedPreferences, 'timeToFirstChunk'));\n const sort = sortable ? hostSort : DEFAULT_TRACES_SORT;\n const list = useTracesListSource({\n rolling: !dateTo,\n query: now => buildTracesQueryRequest({ filters, dateFrom, dateTo, withRootDuration, now }),\n orderBy: [sort],\n withQueryTrace,\n withDeltaPolling,\n enabled: !isCapabilitiesLoading,\n legacyFilters: buildTracesLegacyFilters({ filters, dateFrom, dateTo }),\n });\n\n const {\n rows,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n error,\n refetch,\n isFetching,\n autoRefetch,\n } = list;\n const value = useMemo<TracesListContextValue>(\n () => ({\n rows,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n error,\n refetch,\n autoRefetch,\n sort,\n onSortChange,\n }),\n [\n rows,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n error,\n refetch,\n autoRefetch,\n sort,\n onSortChange,\n ],\n );\n\n return (\n <TracesListContext.Provider value={value}>\n <TracesListFetchingContext.Provider value={isFetching}>{children}</TracesListFetchingContext.Provider>\n </TracesListContext.Provider>\n );\n});\n"],"mappings":";;;;;;;;;;;;AAyBA,IAAa,sBAAA,GAAqBA,MAAAA,KAAAA,CAAK,SAAS,mBAAmB,EACjE,MAAM,UACN,cACA,YAC0B;CAC1B,MAAM,EAAE,gBAAgB,kBAAkB,0BAA0B,kBAAkB,0BACpFC,0EAAAA,gBAAgB;CAClB,MAAM,EAAE,SAAS,UAAU,WAAWC,0EAAAA,iBAAiB;CACvD,MAAM,EAAE,yBAAyBC,0EAAAA,qBAAqB;CAMtD,MAAM,OAFJ,SAAS,UAAU,wBAClB,4BAA4BC,0CAAAA,eAAe,sBAAsB,kBAAkB,IAC9D,WAAWC,0EAAAA;CAWnC,MAAM,EACJ,MACA,WACA,oBACA,aACA,qBACA,OACA,SACA,YACA,gBAnBWC,oDAAAA,oBAAoB;EAC/B,SAAS,CAAC;EACV,QAAO,QAAOC,0EAAAA,wBAAwB;GAAE;GAAS;GAAU;GAAQ;GAAkB;EAAI,CAAC;EAC1F,SAAS,CAAC,IAAI;EACd;EACA;EACA,SAAS,CAAC;EACV,eAAeC,0EAAAA,yBAAyB;GAAE;GAAS;GAAU;EAAO,CAAC;CACvE,CAYI;CACJ,MAAM,SAAA,GAAQC,MAAAA,QAAAA,QACL;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,0EAAAA,kBAAkB,UAAnB;EAAmC;EACjC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,0EAAAA,0BAA0B,UAA3B;GAAoC,OAAO;GAAa;EAA6C,CAAA;CAC3E,CAAA;AAEhC,CAAC"}
1
+ {"version":3,"file":"traces-explorer-list-provider.cjs.js","names":["memo","useTracesConfig","useTracesFilters","useTraceUsageColumns","hasTraceColumn","DEFAULT_TRACES_SORT","useTracesListSource","buildTracesQueryRequest","buildTracesLegacyFilters","useMemo","TracesListContext","TracesListFetchingContext"],"sources":["../../../../../src/domains/traces/components/traces-explorer/traces-explorer-list-provider.tsx"],"sourcesContent":["import { memo, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { useTracesListSource } from '../../hooks/use-traces-list-source';\nimport { hasTraceColumn } from '../../trace-list-columns';\nimport { buildTracesLegacyFilters, buildTracesQueryRequest, DEFAULT_TRACES_SORT } from './traces-explorer-actions';\nimport type { TracesSort } from './traces-explorer-actions';\nimport {\n TracesListContext,\n TracesListFetchingContext,\n useTraceUsageColumns,\n useTracesConfig,\n useTracesFilters,\n} from './traces-explorer-context';\nimport type { TracesListContextValue } from './traces-explorer-context';\n\ntype TracesListProviderProps = {\n sort: TracesSort;\n onSortChange: (next: TracesSort) => void;\n children: ReactNode;\n};\n\n/**\n * Owns the list query and its poll clock. Its own memoized component so a poll tick re-renders\n * only list consumers, and a selection change doesn't re-run the list query hooks.\n */\nexport const TracesListProvider = memo(function TracesListProvider({\n sort: hostSort,\n onSortChange,\n children,\n}: TracesListProviderProps) {\n const {\n withQueryTrace,\n withRootDuration,\n withTimeToFirstChunk,\n withTimeToFirstToken,\n withTimeToFirstChunkSort,\n withTimeToFirstTokenSort,\n withOutcomeFields,\n withDeltaPolling,\n isCapabilitiesLoading,\n } = useTracesConfig();\n const { filters, dateFrom, dateTo } = useTracesFilters();\n const { displayedPreferences } = useTraceUsageColumns();\n // A TTFC/TTFT sort the store can't run, or on a column that isn't shown, lists newest first instead.\n // The host keeps its raw value, like filters the server can't query.\n const sortable =\n hostSort.field === 'startedAt' ||\n (hostSort.field === 'timeToFirstChunkMs' &&\n withTimeToFirstChunkSort &&\n hasTraceColumn(displayedPreferences, 'timeToFirstChunk')) ||\n (hostSort.field === 'timeToFirstTokenMs' &&\n withTimeToFirstTokenSort &&\n hasTraceColumn(displayedPreferences, 'timeToFirstToken'));\n const sort = sortable ? hostSort : DEFAULT_TRACES_SORT;\n const list = useTracesListSource({\n rolling: !dateTo,\n query: now =>\n buildTracesQueryRequest({\n filters,\n dateFrom,\n dateTo,\n withRootDuration,\n withTimeToFirstChunk,\n withTimeToFirstToken,\n withOutcomeFields,\n now,\n }),\n orderBy: [sort],\n withQueryTrace,\n withDeltaPolling,\n enabled: !isCapabilitiesLoading,\n legacyFilters: buildTracesLegacyFilters({ filters, dateFrom, dateTo }),\n });\n\n const {\n rows,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n error,\n refetch,\n isFetching,\n autoRefetch,\n } = list;\n const value = useMemo<TracesListContextValue>(\n () => ({\n rows,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n error,\n refetch,\n autoRefetch,\n sort,\n onSortChange,\n }),\n [\n rows,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n error,\n refetch,\n autoRefetch,\n sort,\n onSortChange,\n ],\n );\n\n return (\n <TracesListContext.Provider value={value}>\n <TracesListFetchingContext.Provider value={isFetching}>{children}</TracesListFetchingContext.Provider>\n </TracesListContext.Provider>\n );\n});\n"],"mappings":";;;;;;;;;;;;AAyBA,IAAa,sBAAA,GAAqBA,MAAAA,KAAAA,CAAK,SAAS,mBAAmB,EACjE,MAAM,UACN,cACA,YAC0B;CAC1B,MAAM,EACJ,gBACA,kBACA,sBACA,sBACA,0BACA,0BACA,mBACA,kBACA,0BACEC,0EAAAA,gBAAgB;CACpB,MAAM,EAAE,SAAS,UAAU,WAAWC,0EAAAA,iBAAiB;CACvD,MAAM,EAAE,yBAAyBC,0EAAAA,qBAAqB;CAWtD,MAAM,OAPJ,SAAS,UAAU,eAClB,SAAS,UAAU,wBAClB,4BACAC,0CAAAA,eAAe,sBAAsB,kBAAkB,KACxD,SAAS,UAAU,wBAClB,4BACAA,0CAAAA,eAAe,sBAAsB,kBAAkB,IACnC,WAAWC,0EAAAA;CAqBnC,MAAM,EACJ,MACA,WACA,oBACA,aACA,qBACA,OACA,SACA,YACA,gBA7BWC,oDAAAA,oBAAoB;EAC/B,SAAS,CAAC;EACV,QAAO,QACLC,0EAAAA,wBAAwB;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACH,SAAS,CAAC,IAAI;EACd;EACA;EACA,SAAS,CAAC;EACV,eAAeC,0EAAAA,yBAAyB;GAAE;GAAS;GAAU;EAAO,CAAC;CACvE,CAYI;CACJ,MAAM,SAAA,GAAQC,MAAAA,QAAAA,QACL;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,0EAAAA,kBAAkB,UAAnB;EAAmC;EACjC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,0EAAAA,0BAA0B,UAA3B;GAAoC,OAAO;GAAa;EAA6C,CAAA;CAC3E,CAAA;AAEhC,CAAC"}
@@ -10,10 +10,10 @@ import { jsx } from "react/jsx-runtime";
10
10
  * only list consumers, and a selection change doesn't re-run the list query hooks.
11
11
  */
12
12
  var TracesListProvider = memo(function TracesListProvider({ sort: hostSort, onSortChange, children }) {
13
- const { withQueryTrace, withRootDuration, withTimeToFirstChunkSort, withDeltaPolling, isCapabilitiesLoading } = useTracesConfig();
13
+ const { withQueryTrace, withRootDuration, withTimeToFirstChunk, withTimeToFirstToken, withTimeToFirstChunkSort, withTimeToFirstTokenSort, withOutcomeFields, withDeltaPolling, isCapabilitiesLoading } = useTracesConfig();
14
14
  const { filters, dateFrom, dateTo } = useTracesFilters();
15
15
  const { displayedPreferences } = useTraceUsageColumns();
16
- const sort = hostSort.field !== "timeToFirstChunkMs" || withTimeToFirstChunkSort && hasTraceColumn(displayedPreferences, "timeToFirstChunk") ? hostSort : DEFAULT_TRACES_SORT;
16
+ const sort = hostSort.field === "startedAt" || hostSort.field === "timeToFirstChunkMs" && withTimeToFirstChunkSort && hasTraceColumn(displayedPreferences, "timeToFirstChunk") || hostSort.field === "timeToFirstTokenMs" && withTimeToFirstTokenSort && hasTraceColumn(displayedPreferences, "timeToFirstToken") ? hostSort : DEFAULT_TRACES_SORT;
17
17
  const { rows, isLoading, isFetchingNextPage, hasNextPage, setEndOfListElement, error, refetch, isFetching, autoRefetch } = useTracesListSource({
18
18
  rolling: !dateTo,
19
19
  query: (now) => buildTracesQueryRequest({
@@ -21,6 +21,9 @@ var TracesListProvider = memo(function TracesListProvider({ sort: hostSort, onSo
21
21
  dateFrom,
22
22
  dateTo,
23
23
  withRootDuration,
24
+ withTimeToFirstChunk,
25
+ withTimeToFirstToken,
26
+ withOutcomeFields,
24
27
  now
25
28
  }),
26
29
  orderBy: [sort],