@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-dashboard.es.js","names":[],"sources":["../../../src/domains/dashboards/metrics-dashboard.ts"],"sourcesContent":["import type {\n DashboardColumn,\n DashboardDefinition,\n DashboardDrilldownTarget,\n DashboardQuery,\n DashboardWidget,\n DashboardWidgetView,\n} from '@mastra/client-js';\n\nconst INPUT = 'mastra_model_total_input_tokens';\nconst OUTPUT = 'mastra_model_total_output_tokens';\nconst CACHE_READ = 'mastra_model_input_cache_read_tokens';\nconst AGENT_DURATION = 'mastra_agent_duration_ms';\n\nconst sumSeries = (id: string, name: string): DashboardQuery => ({\n id,\n source: 'metrics',\n request: 'timeSeries',\n name: [name],\n aggregation: 'sum',\n});\n\nconst agentRunsByStatus: DashboardQuery = {\n id: 'runs',\n source: 'metrics',\n request: 'timeSeries',\n name: [AGENT_DURATION],\n aggregation: 'count',\n groupBy: ['status'],\n};\n\n// Runs report status `ok` or `error` (observability/mastra auto-extract); the card also counts `failed`.\nconst FAILED = ['error', 'failed'];\nconst completedRuns = { query: 'runs', notGroups: FAILED };\nconst failedRuns = { query: 'runs', groups: FAILED };\nconst agentRunsTraces: DashboardDrilldownTarget = {\n page: 'traces',\n filters: [{ fieldId: 'rootEntityType', value: 'agent' }],\n};\n\nconst tokenUsageWidget: DashboardWidget = {\n id: 'token-usage',\n span: 6,\n kind: 'timeseries',\n title: 'Token usage',\n drilldown: { action: { page: 'traces' }, click: { page: 'traces' } },\n views: [\n {\n label: 'Token usage',\n description: 'Input, cache reads and output.',\n queries: [sumSeries('input', INPUT), sumSeries('output', OUTPUT), sumSeries('cacheRead', CACHE_READ)],\n options: {\n chart: 'stackedBar',\n format: 'count',\n xLabels: 'edges',\n series: [\n {\n dataKey: 'input',\n label: 'Input',\n color: 'green',\n value: { max: [{ minus: [{ query: 'input' }, { query: 'cacheRead' }] }, { const: 0 }] },\n },\n { dataKey: 'cacheRead', label: 'Cache read', color: 'violet', value: { query: 'cacheRead' } },\n { dataKey: 'output', label: 'Output', color: 'sky', value: { query: 'output' } },\n ],\n total: { value: 'total' },\n emptyMessage: 'No model calls in this range.',\n },\n },\n {\n label: 'Model cost',\n description: 'Estimated model spend.',\n // Cache reads aren't charted here, but fetching them keeps their answer, so going back to\n // Token usage sends nothing, as the card's one request for both views does.\n queries: [sumSeries('input', INPUT), sumSeries('output', OUTPUT), sumSeries('cacheRead', CACHE_READ)],\n options: {\n chart: 'stackedBar',\n format: 'usd',\n xLabels: 'edges',\n series: [\n {\n dataKey: 'cost',\n label: 'Cost',\n color: 'green',\n value: {\n sum: [\n { query: 'input', field: 'estimatedCost' },\n { query: 'output', field: 'estimatedCost' },\n ],\n },\n },\n ],\n total: { value: 'total' },\n emptyMessage: 'No model calls in this range.',\n },\n },\n ],\n};\n\nconst failedAgentRuns = [\n { fieldId: 'rootEntityType', value: 'agent' },\n { fieldId: 'status', value: 'error' },\n];\n\n/** Agent runs, with Failure rate in its title menu, as the Agent runs card. */\nconst agentRunsWidget: DashboardWidget = {\n id: 'agent-runs',\n span: 6,\n kind: 'timeseries',\n title: 'Agent runs',\n views: [\n {\n label: 'Agent runs',\n description: 'Completed and failed runs.',\n drilldown: { click: agentRunsTraces },\n queries: [agentRunsByStatus],\n options: {\n chart: 'stackedBar',\n format: 'count',\n axis: false,\n xLabels: 'edges',\n series: [\n { dataKey: 'completed', label: 'Completed', color: 'green', value: completedRuns },\n { dataKey: 'failed', label: 'Failed', color: 'error', value: failedRuns },\n ],\n total: { value: 'total' },\n emptyMessage: 'No agent runs in this range.',\n },\n },\n {\n label: 'Failure rate',\n description: 'Share of agent runs that failed.',\n drilldown: {\n action: { page: 'logs', filters: failedAgentRuns },\n click: { page: 'traces', filters: failedAgentRuns },\n },\n queries: [agentRunsByStatus],\n options: {\n chart: 'line',\n format: 'percent',\n xLabels: 'edges',\n flatYDomain: [0, 1],\n series: [\n {\n dataKey: 'failureRate',\n label: 'Failed runs',\n color: 'error',\n value: {\n coalesce: [{ ratio: { of: failedRuns, over: { sum: [completedRuns, failedRuns] } } }, { const: 0 }],\n },\n },\n ],\n total: {\n value: {\n coalesce: [{ ratio: { of: failedRuns, over: { sum: [completedRuns, failedRuns] } } }, { const: 0 }],\n },\n },\n emptyWhenZero: { sum: [completedRuns, failedRuns] },\n emptyMessage: 'No agent runs in this range.',\n },\n },\n ],\n};\n\nconst latencyView = (label: string, metric: string, rootEntityType: string, noun: string): DashboardWidgetView => ({\n label,\n queries: [\n {\n id: 'latency',\n source: 'metrics',\n request: 'percentiles',\n name: metric,\n percentiles: [0.5, 0.95, 0.99],\n } satisfies DashboardQuery,\n ],\n drilldown: { action: { page: 'traces', filters: [{ fieldId: 'rootEntityType', value: rootEntityType }] } },\n options: {\n chart: 'line',\n format: 'duration',\n buckets: 'api',\n xLabels: 'edges',\n series: [\n { dataKey: 'p50', label: 'P50', color: 'sky', value: { query: 'latency', percentile: 0.5 }, round: true },\n {\n dataKey: 'p95',\n label: 'P95',\n color: 'green',\n emphasis: true,\n value: { query: 'latency', percentile: 0.95 },\n round: true,\n },\n { dataKey: 'p99', label: 'P99', color: 'violet', value: { query: 'latency', percentile: 0.99 }, round: true },\n ],\n total: { value: { peak: 'p95' } },\n emptyMessage: `No ${noun} in this range.`,\n },\n});\n\nconst latencyWidget: DashboardWidget = {\n id: 'latency',\n span: 6,\n kind: 'timeseries',\n title: 'Latency',\n description: 'Duration percentiles.',\n drilldown: { click: { page: 'traces' } },\n views: [\n latencyView('Agent latency', 'mastra_agent_duration_ms', 'agent', 'agent runs'),\n latencyView('Workflow latency', 'mastra_workflow_duration_ms', 'workflow_run', 'workflow runs'),\n latencyView('Tool latency', 'mastra_tool_duration_ms', 'tool', 'tool calls'),\n ],\n};\n\nconst DISTINCT_IDS = [\n ['countDistinct.resourceId', 'resources', 'Resources', 'sky'],\n ['countDistinct.threadId', 'threads', 'Threads', 'green'],\n ['countDistinct.userId', 'users', 'Users', 'violet'],\n ['countDistinct.sessionId', 'sessions', 'Sessions', 'teal'],\n] as const;\nconst distinctMeasures = DISTINCT_IDS.map(([measure]) => measure);\n\nconst distinctIdsWidget: DashboardWidget = {\n id: 'distinct-ids',\n span: 6,\n kind: 'timeseries',\n title: 'Resources and threads',\n description: 'Unique ids on traces; users and sessions only when set.',\n drilldown: { click: { page: 'traces' } },\n views: [\n {\n queries: [\n { id: 'buckets', source: 'traceAggregate', measures: distinctMeasures, limit: 10 },\n { id: 'totals', source: 'traceAggregate', measures: distinctMeasures },\n ],\n options: {\n chart: 'line',\n format: 'count',\n xLabels: 'edges',\n totals: ['totals'],\n hideEmpty: true,\n emphasizeFirst: true,\n series: DISTINCT_IDS.map(([measure, dataKey, label, color]) => ({\n dataKey,\n label,\n color,\n value: { query: 'buckets', measure },\n rangeTotal: { query: 'totals', measure },\n })),\n emptyMessage: 'No traces in this range set a resource, thread, user or session id.',\n },\n },\n ],\n};\n\nconst USAGE = [INPUT, OUTPUT];\nconst TRACE_LIMIT = 1000;\nconst SPAN_LIMIT = 500;\ntype TraceMeasure = NonNullable<Extract<DashboardQuery, { source: 'traceAggregate' }>['measures']>[number];\ntype SpanMeasure = NonNullable<Extract<DashboardQuery, { source: 'spanAggregate' }>['measures']>[number];\nconst ERRORS: TraceMeasure[] = ['count', 'errorRate', 'duration.p95'];\n/** Traces with a thread. */\nconst hasThread = { op: 'exists', path: 'threadId' } as const;\n\nconst usageTotals = (groupBy: string[], filters?: Record<string, string>): DashboardQuery => ({\n id: 'usage',\n source: 'metrics',\n request: 'breakdown',\n name: USAGE,\n groupBy,\n aggregation: 'sum',\n orderDirection: 'DESC',\n limit: 1000,\n ...(filters ? { filters } : {}),\n compare: 'previousWindow',\n});\n\nconst TRACE_DESCRIPTION = 'A trace is one end-to-end request, with every step it took.';\nconst SPAN_DESCRIPTION =\n 'A span is one step inside a trace, such as a tool call or a model call. One trace can have many.';\n\nconst nameColumn = (label: string, options: Record<string, unknown> = {}): DashboardColumn => ({\n id: 'name',\n label,\n options: { type: 'name', width: 'minmax(12rem,3fr)', ...options },\n});\nconst projectColumn: DashboardColumn = {\n id: 'project',\n label: 'Project',\n scope: 'org',\n options: { type: 'dimension', dimension: 'projectId', as: 'project', width: 'minmax(8rem,2fr)' },\n};\nconst errorColumns: DashboardColumn[] = [\n {\n id: 'errorRate',\n label: 'Errors',\n options: { type: 'value', value: { query: 'figures', measure: 'errorRate' }, format: 'percent', better: 'lower' },\n },\n {\n id: 'p95',\n label: 'P95 latency',\n options: {\n type: 'value',\n value: { query: 'figures', measure: 'duration.p95' },\n format: 'duration',\n better: 'lower',\n },\n },\n];\nconst usageColumns: DashboardColumn[] = [\n {\n id: 'tokens',\n label: 'Tokens',\n options: {\n type: 'value',\n value: { query: 'usage', field: 'value' },\n format: 'count',\n missing: 0,\n additive: true,\n better: 'lower',\n },\n },\n {\n id: 'cost',\n label: 'Cost',\n options: {\n type: 'value',\n value: { query: 'usage', field: 'estimatedCost' },\n format: 'usd',\n additive: true,\n better: 'lower',\n unpricedWhen: 'tokens',\n },\n },\n];\nconst countColumn = (count: { label: string; value: Record<string, unknown>; spans: boolean }): DashboardColumn => ({\n id: 'count',\n label: count.label,\n options: {\n type: 'value',\n value: count.value,\n format: 'count',\n emphasis: true,\n missing: 0,\n additive: true,\n better: 'higher',\n description: count.spans ? SPAN_DESCRIPTION : TRACE_DESCRIPTION,\n },\n});\nconst changeColumn: DashboardColumn = { id: 'change', label: '% Change', options: { type: 'change' } };\nconst TRACES = { label: 'Traces', value: { query: 'figures', measure: 'count' }, spans: false };\n\nconst tableOptions = (groupBy: string[], name: string, emptyMessage: string, extra: Record<string, unknown> = {}) => ({\n groupBy,\n defaultSort: { column: 'count', direction: 'desc' },\n pageSize: 13,\n emptyMessage,\n ariaLabel: `${name} breakdown`,\n ...extra,\n});\n\n/** Row clicks open traces in the row's project, plus the row's own name as `field`. */\nconst drill = (scope: 'org' | 'project', name: string, field: string, extra: Record<string, unknown> = {}) => ({\n rowDrilldown: { fields: { ...(scope === 'org' ? { projectId: 'projectId' } : {}), [name]: field }, ...extra },\n});\n\nconst scoped = (scope: 'org' | 'project', dimension: string) =>\n scope === 'org' ? ['projectId', dimension] : [dimension];\n\nconst ENTITIES = {\n Agents: { name: 'Agent', icon: 'agent', spanTypes: ['agent_run'] },\n Workflows: { name: 'Workflow', icon: 'workflow', spanTypes: ['workflow_run'] },\n Tools: { name: 'Tool', icon: 'tool', spanTypes: ['tool_call', 'mcp_tool_call'] },\n} as const;\n\n/** An entity's figures; agents and workflows count the traces they ran in, tools every call. */\nconst spanMeasures = (traces: boolean): SpanMeasure[] => [\n 'count',\n ...(traces ? (['countDistinct.traceId'] as const) : []),\n 'errorCount',\n 'errorRate',\n 'duration.p95',\n];\n\nconst entityView = (\n scope: 'org' | 'project',\n label: keyof typeof ENTITIES,\n description: string,\n emptyMessage: string,\n): DashboardWidgetView => {\n const { name, icon, spanTypes } = ENTITIES[label];\n const groupBy = scoped(scope, 'entityName');\n const usage = label === 'Agents';\n const traces = label !== 'Tools';\n return {\n label: `Breakdown by ${name.toLowerCase()}`,\n scope,\n description,\n queries: [\n {\n id: 'figures',\n source: 'spanAggregate',\n where:\n spanTypes.length === 1\n ? { op: 'eq', left: { path: 'spanType' }, right: { literal: spanTypes[0] } }\n : { op: 'in', value: { path: 'spanType' }, set: [...spanTypes] },\n groupBy,\n measures: spanMeasures(traces),\n limit: SPAN_LIMIT,\n compare: 'previousWindow',\n },\n ...(usage ? [usageTotals(groupBy, { entityType: 'agent' })] : []),\n ],\n columns: [\n nameColumn(name, { mark: { icon } }),\n projectColumn,\n ...errorColumns,\n ...(usage ? usageColumns : []),\n countColumn(\n traces\n ? { label: 'Traces', value: { query: 'figures', measure: 'countDistinct.traceId' }, spans: false }\n : { label: 'Spans', value: { query: 'figures', measure: 'count' }, spans: true },\n ),\n changeColumn,\n ],\n options: tableOptions(\n groupBy,\n name,\n emptyMessage,\n drill(scope, 'entityName', 'entityName', { spanTypes, keepEmpty: true }),\n ),\n };\n};\n\nconst traceColumns = (\n name: string,\n options: Record<string, unknown> = {},\n extra: DashboardColumn[] = [],\n): DashboardColumn[] => [\n nameColumn(name, options),\n projectColumn,\n ...extra,\n ...errorColumns,\n ...usageColumns,\n countColumn(TRACES),\n changeColumn,\n];\n\nconst environmentsView = (scope: 'org' | 'project'): DashboardWidgetView => {\n const groupBy = scoped(scope, 'environment');\n return {\n label: 'Breakdown by environment',\n scope,\n description: 'Traces, errors, latency and spend per environment.',\n queries: [\n {\n id: 'figures',\n source: 'traceAggregate',\n groupBy,\n measures: ERRORS,\n limit: TRACE_LIMIT,\n compare: 'previousWindow',\n },\n usageTotals(groupBy),\n ],\n columns: traceColumns('Environment', { unnamed: 'No environment' }),\n options: tableOptions(\n groupBy,\n 'Environment',\n 'No traces in this range.',\n drill(scope, 'environment', 'environment'),\n ),\n };\n};\n\nconst threadsView = (scope: 'org' | 'project'): DashboardWidgetView => {\n const groupBy = scoped(scope, 'threadId');\n const threads: DashboardQuery = {\n id: 'figures',\n source: 'traceAggregate',\n where: hasThread,\n groupBy: scope === 'org' ? ['projectId', 'threadId'] : ['resourceId', 'threadId'],\n measures: ERRORS,\n limit: TRACE_LIMIT,\n compare: 'previousWindow',\n };\n // Org-wide the second dimension is the project, so a third request names each thread's resource.\n const resources: DashboardQuery = {\n id: 'resources',\n source: 'traceAggregate',\n where: hasThread,\n groupBy: ['resourceId', 'threadId'],\n measures: ['count'],\n limit: TRACE_LIMIT,\n };\n const resourceColumn: DashboardColumn = {\n id: 'resource',\n label: 'Resource',\n options: {\n type: 'dimension',\n dimension: 'resourceId',\n query: scope === 'org' ? 'resources' : 'figures',\n joinOn: 'threadId',\n width: 'minmax(6rem,1fr)',\n },\n };\n return {\n label: 'Breakdown by thread',\n scope,\n description: 'Traces, errors, latency and spend per thread.',\n queries: [threads, usageTotals(groupBy), ...(scope === 'org' ? [resources] : [])],\n columns: traceColumns('Thread', {}, [resourceColumn]),\n options: tableOptions(groupBy, 'Thread', 'No traces with a thread in this range.', {\n hideUnnamed: true,\n dropped: false,\n ...drill(scope, 'threadId', 'threadId', { keepEmpty: true }),\n }),\n };\n};\n\nconst modelsView = (scope: 'org' | 'project'): DashboardWidgetView => {\n const groupBy = scoped(scope, 'provider').concat('model');\n return {\n label: 'Breakdown by model',\n scope,\n description: 'Model calls, tokens and spend per model.',\n queries: [\n {\n id: 'calls',\n source: 'metrics',\n request: 'breakdown',\n name: [INPUT],\n groupBy,\n aggregation: 'count',\n orderDirection: 'DESC',\n limit: 1000,\n compare: 'previousWindow',\n },\n usageTotals(groupBy),\n ],\n columns: [\n nameColumn('Model', { unnamed: 'Unknown model', mark: { providerDimension: 'provider' } }),\n projectColumn,\n ...usageColumns,\n countColumn({ label: 'Spans', value: { query: 'calls', field: 'value' }, spans: true }),\n changeColumn,\n ],\n options: tableOptions(groupBy, 'Model', 'No model usage in this range.', drill(scope, 'model', 'model')),\n };\n};\n\nconst scopedViews = (scope: 'org' | 'project'): DashboardWidgetView[] => [\n entityView(\n scope,\n 'Agents',\n 'Traces each agent ran in, nested runs included, with errors, latency and spend.',\n 'No agent runs in this range.',\n ),\n entityView(\n scope,\n 'Workflows',\n 'Traces each workflow ran in, nested runs included, with errors and latency.',\n 'No workflow runs in this range.',\n ),\n entityView(\n scope,\n 'Tools',\n 'Every tool call, MCP tools included, with errors and latency.',\n 'No tool calls in this range.',\n ),\n modelsView(scope),\n threadsView(scope),\n environmentsView(scope),\n];\n\nconst breakdownWidget: DashboardWidget = {\n id: 'breakdown',\n span: 12,\n kind: 'table',\n title: 'Breakdown',\n drilldown: { click: { page: 'traces' } },\n views: [\n {\n label: 'Breakdown by project',\n scope: 'org',\n description: 'Traces, errors, latency and spend per project.',\n queries: [\n {\n id: 'figures',\n source: 'traceAggregate',\n groupBy: ['projectId'],\n measures: [...ERRORS, 'countDistinct.resourceId', 'countDistinct.threadId'],\n limit: TRACE_LIMIT,\n compare: 'previousWindow',\n },\n usageTotals(['projectId']),\n ],\n columns: [\n nameColumn('Project', { as: 'project' }),\n ...errorColumns,\n ...usageColumns,\n countColumn(TRACES),\n changeColumn,\n ],\n options: tableOptions(['projectId'], 'Project', 'No traces in this range.', {\n openWhen: { minRows: 2 },\n rowDrilldown: { fields: { projectId: 'projectId' } },\n }),\n },\n ...scopedViews('org'),\n ...scopedViews('project'),\n ],\n};\n\n/** Freezes a value and everything it holds, so a shared definition can't be edited in place. */\nfunction deepFreeze<T>(value: T): T {\n if (value && typeof value === 'object' && !Object.isFrozen(value)) {\n for (const child of Object.values(value)) deepFreeze(child);\n Object.freeze(value);\n }\n return value;\n}\n\n/**\n * The Metrics page as a dashboard: four charts in two rows (usage and health first), then the\n * breakdown of who caused them. Org and project pages share it; scope-tagged parts pick per page.\n * It is frozen: copy it (`structuredClone(METRICS_DASHBOARD)`) before customising.\n */\nexport const METRICS_DASHBOARD: DashboardDefinition = deepFreeze({\n schemaVersion: 1,\n rows: [\n { widgets: [tokenUsageWidget, agentRunsWidget] },\n { widgets: [latencyWidget, distinctIdsWidget] },\n { widgets: [breakdownWidget] },\n ],\n});\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ // src/domains/dashboards/widget-kind.ts
3
+ /** Keeps a kind's options type while it joins a list of kinds of different options. */
4
+ var defineWidgetKind = (kind) => kind;
5
+ exports.defineWidgetKind = defineWidgetKind;
6
+
7
+ //# sourceMappingURL=widget-kind.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-kind.cjs.js","names":[],"sources":["../../../src/domains/dashboards/widget-kind.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport type { ComponentType } from 'react';\nimport type { z } from 'zod/v4';\nimport type { DashboardScope, OnDashboardDrilldown } from './lib/definition';\n\n/** A view whose options passed its kind's schema. */\nexport type ResolvedView<Options> = DashboardWidgetView & { options: Options };\n\nexport type WidgetKindProps<Options> = {\n widget: DashboardWidget;\n /** The views at the page's scope, options parsed. Never empty. */\n views: [ResolvedView<Options>, ...ResolvedView<Options>[]];\n scope: DashboardScope;\n onDrilldown?: OnDashboardDrilldown;\n};\n\n/**\n * One kind of widget, self-contained: the renderer only looks it up by name, checks each view's\n * options against `optionsSchema`, and renders `component`.\n */\nexport type WidgetKind<Options = unknown> = {\n kind: string;\n /** Each view's `options`, parsed before the widget renders. */\n optionsSchema: z.ZodType<Options>;\n /** Further problems with a view, e.g. options naming a query the view doesn't have. */\n issues?: (view: ResolvedView<Options>) => string[];\n component: ComponentType<WidgetKindProps<Options>>;\n};\n\n/** Keeps a kind's options type while it joins a list of kinds of different options. */\nexport const defineWidgetKind = <Options>(kind: WidgetKind<Options>): WidgetKind<Options> => kind;\n\n/** A registry entry, whatever its options. */\nexport type AnyWidgetKind = WidgetKind<any>;\n"],"mappings":";;;AA8BA,IAAa,oBAA6B,SAAmD"}
@@ -0,0 +1 @@
1
+ export * from '../../src/domains/dashboards/widget-kind';
@@ -0,0 +1,6 @@
1
+ // src/domains/dashboards/widget-kind.ts
2
+ /** Keeps a kind's options type while it joins a list of kinds of different options. */
3
+ var defineWidgetKind = (kind) => kind;
4
+ export { defineWidgetKind };
5
+
6
+ //# sourceMappingURL=widget-kind.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-kind.es.js","names":[],"sources":["../../../src/domains/dashboards/widget-kind.ts"],"sourcesContent":["import type { DashboardWidget, DashboardWidgetView } from '@mastra/client-js';\nimport type { ComponentType } from 'react';\nimport type { z } from 'zod/v4';\nimport type { DashboardScope, OnDashboardDrilldown } from './lib/definition';\n\n/** A view whose options passed its kind's schema. */\nexport type ResolvedView<Options> = DashboardWidgetView & { options: Options };\n\nexport type WidgetKindProps<Options> = {\n widget: DashboardWidget;\n /** The views at the page's scope, options parsed. Never empty. */\n views: [ResolvedView<Options>, ...ResolvedView<Options>[]];\n scope: DashboardScope;\n onDrilldown?: OnDashboardDrilldown;\n};\n\n/**\n * One kind of widget, self-contained: the renderer only looks it up by name, checks each view's\n * options against `optionsSchema`, and renders `component`.\n */\nexport type WidgetKind<Options = unknown> = {\n kind: string;\n /** Each view's `options`, parsed before the widget renders. */\n optionsSchema: z.ZodType<Options>;\n /** Further problems with a view, e.g. options naming a query the view doesn't have. */\n issues?: (view: ResolvedView<Options>) => string[];\n component: ComponentType<WidgetKindProps<Options>>;\n};\n\n/** Keeps a kind's options type while it joins a list of kinds of different options. */\nexport const defineWidgetKind = <Options>(kind: WidgetKind<Options>): WidgetKind<Options> => kind;\n\n/** A registry entry, whatever its options. */\nexport type AnyWidgetKind = WidgetKind<any>;\n"],"mappings":";;AA8BA,IAAa,oBAA6B,SAAmD"}
@@ -0,0 +1,39 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_domains_dashboards_components_dashboard_grid = require("./dashboards/components/dashboard-grid.cjs.js");
3
+ const require_domains_dashboards_widget_kind = require("./dashboards/widget-kind.cjs.js");
4
+ const require_domains_dashboards_lib_requests = require("./dashboards/lib/requests.cjs.js");
5
+ const require_domains_dashboards_components_view_gate = require("./dashboards/components/view-gate.cjs.js");
6
+ const require_domains_dashboards_hooks_use_dashboard_requests = require("./dashboards/hooks/use-dashboard-requests.cjs.js");
7
+ const require_domains_dashboards_kinds_kpis = require("./dashboards/kinds/kpis.cjs.js");
8
+ const require_domains_dashboards_kinds_scores = require("./dashboards/kinds/scores.cjs.js");
9
+ const require_domains_dashboards_lib_definition = require("./dashboards/lib/definition.cjs.js");
10
+ const require_domains_dashboards_hooks_use_widget_views = require("./dashboards/hooks/use-widget-views.cjs.js");
11
+ const require_domains_dashboards_kinds_table = require("./dashboards/kinds/table.cjs.js");
12
+ const require_domains_dashboards_components_widget_controls = require("./dashboards/components/widget-controls.cjs.js");
13
+ const require_domains_dashboards_kinds_timeseries = require("./dashboards/kinds/timeseries.cjs.js");
14
+ const require_domains_dashboards_kinds = require("./dashboards/kinds.cjs.js");
15
+ const require_domains_dashboards_lib_prepare_widget = require("./dashboards/lib/prepare-widget.cjs.js");
16
+ const require_domains_dashboards_components_widget_error = require("./dashboards/components/widget-error.cjs.js");
17
+ const require_domains_dashboards_components_dashboard_renderer = require("./dashboards/components/dashboard-renderer.cjs.js");
18
+ const require_domains_dashboards_metrics_dashboard = require("./dashboards/metrics-dashboard.cjs.js");
19
+ exports.BUILT_IN_WIDGET_KINDS = require_domains_dashboards_kinds.BUILT_IN_WIDGET_KINDS;
20
+ exports.DashboardGrid = require_domains_dashboards_components_dashboard_grid.DashboardGrid;
21
+ exports.DashboardGridCell = require_domains_dashboards_components_dashboard_grid.DashboardGridCell;
22
+ exports.DashboardGridRow = require_domains_dashboards_components_dashboard_grid.DashboardGridRow;
23
+ exports.DashboardRenderer = require_domains_dashboards_components_dashboard_renderer.DashboardRenderer;
24
+ exports.DrilldownAction = require_domains_dashboards_components_widget_controls.DrilldownAction;
25
+ exports.METRICS_DASHBOARD = require_domains_dashboards_metrics_dashboard.METRICS_DASHBOARD;
26
+ exports.ViewGate = require_domains_dashboards_components_view_gate.ViewGate;
27
+ exports.WidgetError = require_domains_dashboards_components_widget_error.WidgetError;
28
+ exports.buildRequest = require_domains_dashboards_lib_requests.buildRequest;
29
+ exports.dashboardDefaults = require_domains_dashboards_lib_definition.dashboardDefaults;
30
+ exports.defineWidgetKind = require_domains_dashboards_widget_kind.defineWidgetKind;
31
+ exports.hasDrilldownAction = require_domains_dashboards_hooks_use_widget_views.hasDrilldownAction;
32
+ exports.kpisKind = require_domains_dashboards_kinds_kpis.kpisKind;
33
+ exports.prepareWidget = require_domains_dashboards_lib_prepare_widget.prepareWidget;
34
+ exports.scoresKind = require_domains_dashboards_kinds_scores.scoresKind;
35
+ exports.tableKind = require_domains_dashboards_kinds_table.tableKind;
36
+ exports.timeseriesKind = require_domains_dashboards_kinds_timeseries.timeseriesKind;
37
+ exports.useDashboardRequests = require_domains_dashboards_hooks_use_dashboard_requests.useDashboardRequests;
38
+ exports.useDrilldown = require_domains_dashboards_hooks_use_widget_views.useDrilldown;
39
+ exports.useViewMenu = require_domains_dashboards_hooks_use_widget_views.useViewMenu;
@@ -0,0 +1 @@
1
+ export * from '../src/domains/dashboards/index';
@@ -0,0 +1,18 @@
1
+ import { DashboardGrid, DashboardGridCell, DashboardGridRow } from "./dashboards/components/dashboard-grid.es.js";
2
+ import { defineWidgetKind } from "./dashboards/widget-kind.es.js";
3
+ import { buildRequest } from "./dashboards/lib/requests.es.js";
4
+ import { ViewGate } from "./dashboards/components/view-gate.es.js";
5
+ import { useDashboardRequests } from "./dashboards/hooks/use-dashboard-requests.es.js";
6
+ import { kpisKind } from "./dashboards/kinds/kpis.es.js";
7
+ import { scoresKind } from "./dashboards/kinds/scores.es.js";
8
+ import { dashboardDefaults } from "./dashboards/lib/definition.es.js";
9
+ import { hasDrilldownAction, useDrilldown, useViewMenu } from "./dashboards/hooks/use-widget-views.es.js";
10
+ import { tableKind } from "./dashboards/kinds/table.es.js";
11
+ import { DrilldownAction } from "./dashboards/components/widget-controls.es.js";
12
+ import { timeseriesKind } from "./dashboards/kinds/timeseries.es.js";
13
+ import { BUILT_IN_WIDGET_KINDS } from "./dashboards/kinds.es.js";
14
+ import { prepareWidget } from "./dashboards/lib/prepare-widget.es.js";
15
+ import { WidgetError } from "./dashboards/components/widget-error.es.js";
16
+ import { DashboardRenderer } from "./dashboards/components/dashboard-renderer.es.js";
17
+ import { METRICS_DASHBOARD } from "./dashboards/metrics-dashboard.es.js";
18
+ export { BUILT_IN_WIDGET_KINDS, DashboardGrid, DashboardGridCell, DashboardGridRow, DashboardRenderer, DrilldownAction, METRICS_DASHBOARD, ViewGate, WidgetError, buildRequest, dashboardDefaults, defineWidgetKind, hasDrilldownAction, kpisKind, prepareWidget, scoresKind, tableKind, timeseriesKind, useDashboardRequests, useDrilldown, useViewMenu };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_DataList = require("../../../DataList-Cmk08jUV.cjs");
2
+ const require_DataList = require("../../../DataList-Czwmwyvp.cjs");
3
3
  const require_use_data_list_keyboard = require("../../../use-data-list-keyboard-BCLBdaWR.cjs");
4
4
  const require_LogsDataList = require("../../../LogsDataList-DMmxAt_t.cjs");
5
5
  let react = require("react");
@@ -1,4 +1,4 @@
1
- import { r as DataListSkeleton } from "../../../DataList-Ve3omCXT.js";
1
+ import { r as DataListSkeleton } from "../../../DataList-2tIlQsLc.js";
2
2
  import { t as useDataListKeyboard } from "../../../use-data-list-keyboard-fJXq2T3y.js";
3
3
  import { t as LogsDataList } from "../../../LogsDataList-Cslabh8K.js";
4
4
  import { useEffect, useRef } from "react";
@@ -0,0 +1,14 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_observability_saved_views = require("../../../observability-saved-views-CwCii7hh.cjs");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ // src/domains/logs/components/logs-saved-views.tsx
5
+ /** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */
6
+ function LogsSavedViews(props) {
7
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_observability_saved_views.ObservabilitySavedViews, {
8
+ page: "logs",
9
+ ...props
10
+ });
11
+ }
12
+ exports.LogsSavedViews = LogsSavedViews;
13
+
14
+ //# sourceMappingURL=logs-saved-views.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs-saved-views.cjs.js","names":["ObservabilitySavedViews"],"sources":["../../../../src/domains/logs/components/logs-saved-views.tsx"],"sourcesContent":["import { ObservabilitySavedViews } from '@/domains/observability/saved-views';\nimport type { ObservabilitySavedViewsProps } from '@/domains/observability/saved-views';\n\nexport type LogsSavedViewsProps = Pick<ObservabilitySavedViewsProps, 'searchParams' | 'setSearchParams' | 'className'>;\n\n/** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */\nexport function LogsSavedViews(props: LogsSavedViewsProps) {\n return <ObservabilitySavedViews page=\"logs\" {...props} />;\n}\n"],"mappings":";;;;;AAMA,SAAgB,eAAe,OAA4B;CACzD,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,kCAAAA,yBAAD;EAAyB,MAAK;EAAO,GAAI;CAAQ,CAAA;AAC1D"}
@@ -0,0 +1 @@
1
+ export * from '../../../src/domains/logs/components/logs-saved-views';
@@ -0,0 +1,13 @@
1
+ import { t as ObservabilitySavedViews } from "../../../observability-saved-views-Bo5kLN20.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+ // src/domains/logs/components/logs-saved-views.tsx
4
+ /** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */
5
+ function LogsSavedViews(props) {
6
+ return /* @__PURE__ */ jsx(ObservabilitySavedViews, {
7
+ page: "logs",
8
+ ...props
9
+ });
10
+ }
11
+ export { LogsSavedViews };
12
+
13
+ //# sourceMappingURL=logs-saved-views.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs-saved-views.es.js","names":[],"sources":["../../../../src/domains/logs/components/logs-saved-views.tsx"],"sourcesContent":["import { ObservabilitySavedViews } from '@/domains/observability/saved-views';\nimport type { ObservabilitySavedViewsProps } from '@/domains/observability/saved-views';\n\nexport type LogsSavedViewsProps = Pick<ObservabilitySavedViewsProps, 'searchParams' | 'setSearchParams' | 'className'>;\n\n/** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */\nexport function LogsSavedViews(props: LogsSavedViewsProps) {\n return <ObservabilitySavedViews page=\"logs\" {...props} />;\n}\n"],"mappings":";;;;AAMA,SAAgB,eAAe,OAA4B;CACzD,OAAO,oBAAC,yBAAD;EAAyB,MAAK;EAAO,GAAI;CAAQ,CAAA;AAC1D"}
@@ -4,8 +4,10 @@ const require_domains_logs_components_logs_error_content = require("./components
4
4
  const require_domains_logs_components_logs_list_view = require("./components/logs-list-view.cjs.js");
5
5
  const require_domains_logs_components_logs_toolbar = require("./components/logs-toolbar.cjs.js");
6
6
  const require_domains_logs_components_no_logs_info = require("./components/no-logs-info.cjs.js");
7
+ const require_domains_logs_components_logs_saved_views = require("./components/logs-saved-views.cjs.js");
7
8
  exports.LogDataPanel = require_domains_logs_components_log_data_panel.LogDataPanel;
8
9
  exports.LogsErrorContent = require_domains_logs_components_logs_error_content.LogsErrorContent;
9
10
  exports.LogsListView = require_domains_logs_components_logs_list_view.LogsListView;
11
+ exports.LogsSavedViews = require_domains_logs_components_logs_saved_views.LogsSavedViews;
10
12
  exports.LogsToolbar = require_domains_logs_components_logs_toolbar.LogsToolbar;
11
13
  exports.NoLogsInfo = require_domains_logs_components_no_logs_info.NoLogsInfo;
@@ -3,4 +3,5 @@ import { LogsErrorContent } from "./components/logs-error-content.es.js";
3
3
  import { LogsListView } from "./components/logs-list-view.es.js";
4
4
  import { LogsToolbar } from "./components/logs-toolbar.es.js";
5
5
  import { NoLogsInfo } from "./components/no-logs-info.es.js";
6
- export { LogDataPanel, LogsErrorContent, LogsListView, LogsToolbar, NoLogsInfo };
6
+ import { LogsSavedViews } from "./components/logs-saved-views.es.js";
7
+ export { LogDataPanel, LogsErrorContent, LogsListView, LogsSavedViews, LogsToolbar, NoLogsInfo };
@@ -28,7 +28,7 @@ function useLogsUrlState(searchParams, setSearchParams, options) {
28
28
  const { onRemoveAll } = options ?? {};
29
29
  const datePreset = (0, react.useMemo)(() => {
30
30
  const value = searchParams.get(require_domains_logs_log_filters.LOGS_DATE_PRESET_PARAM);
31
- return value && require_domains_logs_log_filters.LOGS_DATE_PRESET_VALUES.has(value) ? value : "last-24h";
31
+ return value && require_domains_logs_log_filters.LOGS_DATE_PRESET_VALUES.has(value) ? value : require_domains_logs_log_filters.DEFAULT_LOGS_DATE_PRESET;
32
32
  }, [searchParams]);
33
33
  const dateFromParamRaw = searchParams.get(require_domains_logs_log_filters.LOGS_DATE_FROM_PARAM);
34
34
  const dateToParamRaw = searchParams.get(require_domains_logs_log_filters.LOGS_DATE_TO_PARAM);
@@ -1 +1 @@
1
- {"version":3,"file":"use-logs-url-state.cjs.js","names":["useMemo","LOGS_DATE_PRESET_PARAM","LOGS_DATE_PRESET_VALUES","LOGS_DATE_FROM_PARAM","LOGS_DATE_TO_PARAM","useRef","LOGS_ROOT_ENTITY_TYPE_OPTIONS","LOGS_ROOT_ENTITY_TYPE_PARAM","getLogsPropertyFilterTokens","useCallback","LOGS_PROPERTY_FILTER_FIELD_IDS","LOGS_PROPERTY_FILTER_PARAM_BY_FIELD"],"sources":["../../../../src/domains/logs/hooks/use-logs-url-state.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport {\n LOGS_DATE_FROM_PARAM,\n LOGS_DATE_PRESET_PARAM,\n LOGS_DATE_PRESET_VALUES,\n LOGS_DATE_TO_PARAM,\n LOGS_PROPERTY_FILTER_FIELD_IDS,\n LOGS_PROPERTY_FILTER_PARAM_BY_FIELD,\n LOGS_ROOT_ENTITY_TYPE_OPTIONS,\n LOGS_ROOT_ENTITY_TYPE_PARAM,\n applyLogsPropertyFilterTokens,\n getLogsPropertyFilterTokens,\n} from '../log-filters';\nimport type { LogsDatePreset, LogsEntityOptions } from '../log-filters';\nimport type { PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\nimport type { SetURLSearchParamsLike } from '@/lib/sort/use-url-sort';\n\nconst LOG_PARAM = 'logId';\nconst TRACE_PARAM = 'traceId';\nconst SPAN_PARAM = 'spanId';\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<LogsDatePreset, 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\n/** Mutates `params` in place to drop the featured log/trace/span selection.\n * Used whenever a filter changes — selection no longer makes sense in the new result set. */\nfunction clearSelectionParams(params: URLSearchParams) {\n params.delete(LOG_PARAM);\n params.delete(TRACE_PARAM);\n params.delete(SPAN_PARAM);\n}\n\nexport interface LogsFeaturedIds {\n logId?: string | null;\n traceId?: string | null;\n spanId?: string | null;\n}\n\nexport interface UseLogsUrlStateOptions {\n /** Called after `handleRemoveAll` clears all filter URL params. */\n onRemoveAll?: () => void;\n}\n\nexport interface UseLogsUrlStateResult {\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParamsLike;\n\n datePreset: LogsDatePreset;\n selectedDateFrom: Date | undefined;\n selectedDateTo: Date | undefined;\n datePresetRef: React.MutableRefObject<LogsDatePreset>;\n\n featuredLogId: string | null;\n featuredTraceId: string | null;\n featuredSpanId: string | null;\n\n selectedEntityOption: LogsEntityOptions | undefined;\n filterTokens: PropertyFilterToken[];\n\n /** Partial update of the featured log/trace/span selection. Omitted keys are left as-is. */\n handleFeaturedChange: (ids: LogsFeaturedIds) => void;\n handleFilterTokensChange: (nextTokens: PropertyFilterToken[]) => void;\n handleDateChange: (value: Date | undefined, type: 'from' | 'to') => void;\n handleDatePresetChange: (preset: LogsDatePreset) => void;\n handleRemoveAll: () => void;\n\n /** Lower-level helper used by `handleClear`: writes a token set and clears the log/trace/span selection. */\n applyFilterTokens: (tokens: PropertyFilterToken[]) => void;\n}\n\n/**\n * Owns all URL-derived state and URL-modifying handlers for the logs page. Routing-agnostic —\n * pass `searchParams` and `setSearchParams` from whichever router the consumer uses.\n */\nexport function useLogsUrlState(\n searchParams: URLSearchParams,\n setSearchParams: SetURLSearchParamsLike,\n options?: UseLogsUrlStateOptions,\n): UseLogsUrlStateResult {\n const { onRemoveAll } = options ?? {};\n\n const datePreset = useMemo<LogsDatePreset>(() => {\n const value = searchParams.get(LOGS_DATE_PRESET_PARAM);\n return value && LOGS_DATE_PRESET_VALUES.has(value as LogsDatePreset) ? (value as LogsDatePreset) : 'last-24h';\n }, [searchParams]);\n\n const dateFromParamRaw = searchParams.get(LOGS_DATE_FROM_PARAM);\n const dateToParamRaw = searchParams.get(LOGS_DATE_TO_PARAM);\n\n const selectedDateFrom = useMemo(() => {\n if (datePreset === 'custom') {\n if (!dateFromParamRaw) return undefined;\n const parsed = new Date(dateFromParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }\n if (datePreset === 'all') return undefined;\n const ms = PRESET_MS[datePreset];\n return ms ? new Date(Date.now() - ms) : undefined;\n }, [datePreset, dateFromParamRaw]);\n\n const selectedDateTo = useMemo(() => {\n if (datePreset !== 'custom' || !dateToParamRaw) return undefined;\n const parsed = new Date(dateToParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }, [datePreset, dateToParamRaw]);\n\n const datePresetRef = useRef(datePreset);\n datePresetRef.current = datePreset;\n\n const featuredLogId = searchParams.get(LOG_PARAM);\n const featuredTraceId = searchParams.get(TRACE_PARAM);\n const featuredSpanId = searchParams.get(SPAN_PARAM);\n\n const selectedEntityOption = useMemo(\n () =>\n LOGS_ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === searchParams.get(LOGS_ROOT_ENTITY_TYPE_PARAM)),\n [searchParams],\n );\n\n const filterTokens = useMemo(() => getLogsPropertyFilterTokens(searchParams), [searchParams]);\n\n const handleFeaturedChange = useCallback(\n (ids: LogsFeaturedIds) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n for (const [field, value] of Object.entries(ids)) {\n const param = field === 'logId' ? LOG_PARAM : field === 'traceId' ? TRACE_PARAM : SPAN_PARAM;\n if (value) {\n next.set(param, value);\n } else {\n next.delete(param);\n }\n }\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const applyFilterTokens = useCallback(\n (tokens: PropertyFilterToken[]) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n applyLogsPropertyFilterTokens(next, tokens);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleFilterTokensChange = applyFilterTokens;\n\n const handleDateChange = useCallback(\n (value: Date | undefined, type: 'from' | 'to') => {\n if (datePresetRef.current !== 'custom') return;\n const param = type === 'from' ? LOGS_DATE_FROM_PARAM : LOGS_DATE_TO_PARAM;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (value) {\n next.set(param, value.toISOString());\n } else {\n next.delete(param);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleDatePresetChange = useCallback(\n (preset: LogsDatePreset) => {\n datePresetRef.current = preset;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (preset === 'last-24h') {\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n } else if (preset === 'custom') {\n next.set(LOGS_DATE_PRESET_PARAM, 'custom');\n } else {\n next.set(LOGS_DATE_PRESET_PARAM, preset);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleRemoveAll = useCallback(() => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n next.delete(LOGS_ROOT_ENTITY_TYPE_PARAM);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n next.delete(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId]);\n }\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n onRemoveAll?.();\n }, [setSearchParams, onRemoveAll]);\n\n return useMemo(\n () => ({\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n }),\n [\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n ],\n );\n}\n"],"mappings":";;;;AAiBA,IAAM,YAAY;AAClB,IAAM,cAAc;AACpB,IAAM,aAAa;AAEnB,IAAM,SAAS;AACf,IAAM,YAAqD;CACzD,YAAY;CACZ,WAAW,IAAI;CACf,WAAW,IAAI;CACf,YAAY,KAAK;CACjB,YAAY,KAAK;AACnB;;;AAIA,SAAS,qBAAqB,QAAyB;CACrD,OAAO,OAAO,SAAS;CACvB,OAAO,OAAO,WAAW;CACzB,OAAO,OAAO,UAAU;AAC1B;;;;;AA4CA,SAAgB,gBACd,cACA,iBACA,SACuB;CACvB,MAAM,EAAE,gBAAgB,WAAW,CAAC;CAEpC,MAAM,cAAA,GAAaA,MAAAA,QAAAA,OAA8B;EAC/C,MAAM,QAAQ,aAAa,IAAIC,iCAAAA,sBAAsB;EACrD,OAAO,SAASC,iCAAAA,wBAAwB,IAAI,KAAuB,IAAK,QAA2B;CACrG,GAAG,CAAC,YAAY,CAAC;CAEjB,MAAM,mBAAmB,aAAa,IAAIC,iCAAAA,oBAAoB;CAC9D,MAAM,iBAAiB,aAAa,IAAIC,iCAAAA,kBAAkB;CAE1D,MAAM,oBAAA,GAAmBJ,MAAAA,QAAAA,OAAc;EACrC,IAAI,eAAe,UAAU;GAC3B,IAAI,CAAC,kBAAkB,OAAO,KAAA;GAC9B,MAAM,SAAS,IAAI,KAAK,gBAAgB;GACxC,OAAO,OAAO,MAAM,OAAO,QAAQ,CAAC,IAAI,KAAA,IAAY;EACtD;EACA,IAAI,eAAe,OAAO,OAAO,KAAA;EACjC,MAAM,KAAK,UAAU;EACrB,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,KAAA;CAC1C,GAAG,CAAC,YAAY,gBAAgB,CAAC;CAEjC,MAAM,kBAAA,GAAiBA,MAAAA,QAAAA,OAAc;EACnC,IAAI,eAAe,YAAY,CAAC,gBAAgB,OAAO,KAAA;EACvD,MAAM,SAAS,IAAI,KAAK,cAAc;EACtC,OAAO,OAAO,MAAM,OAAO,QAAQ,CAAC,IAAI,KAAA,IAAY;CACtD,GAAG,CAAC,YAAY,cAAc,CAAC;CAE/B,MAAM,iBAAA,GAAgBK,MAAAA,OAAAA,CAAO,UAAU;CACvC,cAAc,UAAU;CAExB,MAAM,gBAAgB,aAAa,IAAI,SAAS;CAChD,MAAM,kBAAkB,aAAa,IAAI,WAAW;CACpD,MAAM,iBAAiB,aAAa,IAAI,UAAU;CAElD,MAAM,wBAAA,GAAuBL,MAAAA,QAAAA,OAEzBM,iCAAAA,8BAA8B,MAAK,WAAU,OAAO,eAAe,aAAa,IAAIC,iCAAAA,2BAA2B,CAAC,GAClH,CAAC,YAAY,CACf;CAEA,MAAM,gBAAA,GAAeP,MAAAA,QAAAA,OAAcQ,iCAAAA,4BAA4B,YAAY,GAAG,CAAC,YAAY,CAAC;CAE5F,MAAM,wBAAA,GAAuBC,MAAAA,YAAAA,EAC1B,QAAyB;EACxB,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,KAAK,MAAM,CAAC,OAAO,UAAU,OAAO,QAAQ,GAAG,GAAG;IAChD,MAAM,QAAQ,UAAU,UAAU,YAAY,UAAU,YAAY,cAAc;IAClF,IAAI,OACF,KAAK,IAAI,OAAO,KAAK;SAErB,KAAK,OAAO,KAAK;GAErB;GACA,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF,GACA,CAAC,eAAe,CAClB;CAEA,MAAM,qBAAA,GAAoBA,MAAAA,YAAAA,EACvB,WAAkC;EACjC,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,iCAAA,8BAA8B,MAAM,MAAM;GAC1C,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF,GACA,CAAC,eAAe,CAClB;CAEA,MAAM,2BAA2B;CAEjC,MAAM,oBAAA,GAAmBA,MAAAA,YAAAA,EACtB,OAAyB,SAAwB;EAChD,IAAI,cAAc,YAAY,UAAU;EACxC,MAAM,QAAQ,SAAS,SAASN,iCAAAA,uBAAuBC,iCAAAA;EACvD,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,IAAI,OACF,KAAK,IAAI,OAAO,MAAM,YAAY,CAAC;QAEnC,KAAK,OAAO,KAAK;GAEnB,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF,GACA,CAAC,eAAe,CAClB;CAEA,MAAM,0BAAA,GAAyBK,MAAAA,YAAAA,EAC5B,WAA2B;EAC1B,cAAc,UAAU;EACxB,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,IAAI,WAAW,YAAY;IACzB,KAAK,OAAOR,iCAAAA,sBAAsB;IAClC,KAAK,OAAOE,iCAAAA,oBAAoB;IAChC,KAAK,OAAOC,iCAAAA,kBAAkB;GAChC,OAAO,IAAI,WAAW,UACpB,KAAK,IAAIH,iCAAAA,wBAAwB,QAAQ;QACpC;IACL,KAAK,IAAIA,iCAAAA,wBAAwB,MAAM;IACvC,KAAK,OAAOE,iCAAAA,oBAAoB;IAChC,KAAK,OAAOC,iCAAAA,kBAAkB;GAChC;GACA,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF,GACA,CAAC,eAAe,CAClB;CAEA,MAAM,mBAAA,GAAkBK,MAAAA,YAAAA,OAAkB;EACxC,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,KAAK,OAAOF,iCAAAA,2BAA2B;GACvC,KAAK,MAAM,WAAWG,iCAAAA,gCACpB,KAAK,OAAOC,iCAAAA,oCAAoC,QAAQ;GAE1D,KAAK,OAAOV,iCAAAA,sBAAsB;GAClC,KAAK,OAAOE,iCAAAA,oBAAoB;GAChC,KAAK,OAAOC,iCAAAA,kBAAkB;GAC9B,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;EACA,cAAc;CAChB,GAAG,CAAC,iBAAiB,WAAW,CAAC;CAEjC,QAAA,GAAOJ,MAAAA,QAAAA,QACE;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;AACF"}
1
+ {"version":3,"file":"use-logs-url-state.cjs.js","names":["useMemo","LOGS_DATE_PRESET_PARAM","LOGS_DATE_PRESET_VALUES","DEFAULT_LOGS_DATE_PRESET","LOGS_DATE_FROM_PARAM","LOGS_DATE_TO_PARAM","useRef","LOGS_ROOT_ENTITY_TYPE_OPTIONS","LOGS_ROOT_ENTITY_TYPE_PARAM","getLogsPropertyFilterTokens","useCallback","LOGS_PROPERTY_FILTER_FIELD_IDS","LOGS_PROPERTY_FILTER_PARAM_BY_FIELD"],"sources":["../../../../src/domains/logs/hooks/use-logs-url-state.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport {\n DEFAULT_LOGS_DATE_PRESET,\n LOGS_DATE_FROM_PARAM,\n LOGS_DATE_PRESET_PARAM,\n LOGS_DATE_PRESET_VALUES,\n LOGS_DATE_TO_PARAM,\n LOGS_PROPERTY_FILTER_FIELD_IDS,\n LOGS_PROPERTY_FILTER_PARAM_BY_FIELD,\n LOGS_ROOT_ENTITY_TYPE_OPTIONS,\n LOGS_ROOT_ENTITY_TYPE_PARAM,\n applyLogsPropertyFilterTokens,\n getLogsPropertyFilterTokens,\n} from '../log-filters';\nimport type { LogsDatePreset, LogsEntityOptions } from '../log-filters';\nimport type { PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\nimport type { SetURLSearchParamsLike } from '@/lib/sort/use-url-sort';\n\nconst LOG_PARAM = 'logId';\nconst TRACE_PARAM = 'traceId';\nconst SPAN_PARAM = 'spanId';\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<LogsDatePreset, 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\n/** Mutates `params` in place to drop the featured log/trace/span selection.\n * Used whenever a filter changes — selection no longer makes sense in the new result set. */\nfunction clearSelectionParams(params: URLSearchParams) {\n params.delete(LOG_PARAM);\n params.delete(TRACE_PARAM);\n params.delete(SPAN_PARAM);\n}\n\nexport interface LogsFeaturedIds {\n logId?: string | null;\n traceId?: string | null;\n spanId?: string | null;\n}\n\nexport interface UseLogsUrlStateOptions {\n /** Called after `handleRemoveAll` clears all filter URL params. */\n onRemoveAll?: () => void;\n}\n\nexport interface UseLogsUrlStateResult {\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParamsLike;\n\n datePreset: LogsDatePreset;\n selectedDateFrom: Date | undefined;\n selectedDateTo: Date | undefined;\n datePresetRef: React.MutableRefObject<LogsDatePreset>;\n\n featuredLogId: string | null;\n featuredTraceId: string | null;\n featuredSpanId: string | null;\n\n selectedEntityOption: LogsEntityOptions | undefined;\n filterTokens: PropertyFilterToken[];\n\n /** Partial update of the featured log/trace/span selection. Omitted keys are left as-is. */\n handleFeaturedChange: (ids: LogsFeaturedIds) => void;\n handleFilterTokensChange: (nextTokens: PropertyFilterToken[]) => void;\n handleDateChange: (value: Date | undefined, type: 'from' | 'to') => void;\n handleDatePresetChange: (preset: LogsDatePreset) => void;\n handleRemoveAll: () => void;\n\n /** Lower-level helper used by `handleClear`: writes a token set and clears the log/trace/span selection. */\n applyFilterTokens: (tokens: PropertyFilterToken[]) => void;\n}\n\n/**\n * Owns all URL-derived state and URL-modifying handlers for the logs page. Routing-agnostic —\n * pass `searchParams` and `setSearchParams` from whichever router the consumer uses.\n */\nexport function useLogsUrlState(\n searchParams: URLSearchParams,\n setSearchParams: SetURLSearchParamsLike,\n options?: UseLogsUrlStateOptions,\n): UseLogsUrlStateResult {\n const { onRemoveAll } = options ?? {};\n\n const datePreset = useMemo<LogsDatePreset>(() => {\n const value = searchParams.get(LOGS_DATE_PRESET_PARAM);\n return value && LOGS_DATE_PRESET_VALUES.has(value as LogsDatePreset)\n ? (value as LogsDatePreset)\n : DEFAULT_LOGS_DATE_PRESET;\n }, [searchParams]);\n\n const dateFromParamRaw = searchParams.get(LOGS_DATE_FROM_PARAM);\n const dateToParamRaw = searchParams.get(LOGS_DATE_TO_PARAM);\n\n const selectedDateFrom = useMemo(() => {\n if (datePreset === 'custom') {\n if (!dateFromParamRaw) return undefined;\n const parsed = new Date(dateFromParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }\n if (datePreset === 'all') return undefined;\n const ms = PRESET_MS[datePreset];\n return ms ? new Date(Date.now() - ms) : undefined;\n }, [datePreset, dateFromParamRaw]);\n\n const selectedDateTo = useMemo(() => {\n if (datePreset !== 'custom' || !dateToParamRaw) return undefined;\n const parsed = new Date(dateToParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }, [datePreset, dateToParamRaw]);\n\n const datePresetRef = useRef(datePreset);\n datePresetRef.current = datePreset;\n\n const featuredLogId = searchParams.get(LOG_PARAM);\n const featuredTraceId = searchParams.get(TRACE_PARAM);\n const featuredSpanId = searchParams.get(SPAN_PARAM);\n\n const selectedEntityOption = useMemo(\n () =>\n LOGS_ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === searchParams.get(LOGS_ROOT_ENTITY_TYPE_PARAM)),\n [searchParams],\n );\n\n const filterTokens = useMemo(() => getLogsPropertyFilterTokens(searchParams), [searchParams]);\n\n const handleFeaturedChange = useCallback(\n (ids: LogsFeaturedIds) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n for (const [field, value] of Object.entries(ids)) {\n const param = field === 'logId' ? LOG_PARAM : field === 'traceId' ? TRACE_PARAM : SPAN_PARAM;\n if (value) {\n next.set(param, value);\n } else {\n next.delete(param);\n }\n }\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const applyFilterTokens = useCallback(\n (tokens: PropertyFilterToken[]) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n applyLogsPropertyFilterTokens(next, tokens);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleFilterTokensChange = applyFilterTokens;\n\n const handleDateChange = useCallback(\n (value: Date | undefined, type: 'from' | 'to') => {\n if (datePresetRef.current !== 'custom') return;\n const param = type === 'from' ? LOGS_DATE_FROM_PARAM : LOGS_DATE_TO_PARAM;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (value) {\n next.set(param, value.toISOString());\n } else {\n next.delete(param);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleDatePresetChange = useCallback(\n (preset: LogsDatePreset) => {\n datePresetRef.current = preset;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (preset === DEFAULT_LOGS_DATE_PRESET) {\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n } else if (preset === 'custom') {\n next.set(LOGS_DATE_PRESET_PARAM, 'custom');\n } else {\n next.set(LOGS_DATE_PRESET_PARAM, preset);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleRemoveAll = useCallback(() => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n next.delete(LOGS_ROOT_ENTITY_TYPE_PARAM);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n next.delete(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId]);\n }\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n onRemoveAll?.();\n }, [setSearchParams, onRemoveAll]);\n\n return useMemo(\n () => ({\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n }),\n [\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n ],\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_PRESET_VALUES, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_FIELD_IDS, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPE_OPTIONS, LOGS_ROOT_ENTITY_TYPE_PARAM, applyLogsPropertyFilterTokens, getLogsPropertyFilterTokens } from "../log-filters.es.js";
1
+ import { DEFAULT_LOGS_DATE_PRESET, LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_PRESET_VALUES, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_FIELD_IDS, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPE_OPTIONS, LOGS_ROOT_ENTITY_TYPE_PARAM, applyLogsPropertyFilterTokens, getLogsPropertyFilterTokens } from "../log-filters.es.js";
2
2
  import { useCallback, useMemo, useRef } from "react";
3
3
  // src/domains/logs/hooks/use-logs-url-state.tsx
4
4
  var LOG_PARAM = "logId";
@@ -27,7 +27,7 @@ function useLogsUrlState(searchParams, setSearchParams, options) {
27
27
  const { onRemoveAll } = options ?? {};
28
28
  const datePreset = useMemo(() => {
29
29
  const value = searchParams.get(LOGS_DATE_PRESET_PARAM);
30
- return value && LOGS_DATE_PRESET_VALUES.has(value) ? value : "last-24h";
30
+ return value && LOGS_DATE_PRESET_VALUES.has(value) ? value : DEFAULT_LOGS_DATE_PRESET;
31
31
  }, [searchParams]);
32
32
  const dateFromParamRaw = searchParams.get(LOGS_DATE_FROM_PARAM);
33
33
  const dateToParamRaw = searchParams.get(LOGS_DATE_TO_PARAM);
@@ -1 +1 @@
1
- {"version":3,"file":"use-logs-url-state.es.js","names":[],"sources":["../../../../src/domains/logs/hooks/use-logs-url-state.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport {\n LOGS_DATE_FROM_PARAM,\n LOGS_DATE_PRESET_PARAM,\n LOGS_DATE_PRESET_VALUES,\n LOGS_DATE_TO_PARAM,\n LOGS_PROPERTY_FILTER_FIELD_IDS,\n LOGS_PROPERTY_FILTER_PARAM_BY_FIELD,\n LOGS_ROOT_ENTITY_TYPE_OPTIONS,\n LOGS_ROOT_ENTITY_TYPE_PARAM,\n applyLogsPropertyFilterTokens,\n getLogsPropertyFilterTokens,\n} from '../log-filters';\nimport type { LogsDatePreset, LogsEntityOptions } from '../log-filters';\nimport type { PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\nimport type { SetURLSearchParamsLike } from '@/lib/sort/use-url-sort';\n\nconst LOG_PARAM = 'logId';\nconst TRACE_PARAM = 'traceId';\nconst SPAN_PARAM = 'spanId';\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<LogsDatePreset, 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\n/** Mutates `params` in place to drop the featured log/trace/span selection.\n * Used whenever a filter changes — selection no longer makes sense in the new result set. */\nfunction clearSelectionParams(params: URLSearchParams) {\n params.delete(LOG_PARAM);\n params.delete(TRACE_PARAM);\n params.delete(SPAN_PARAM);\n}\n\nexport interface LogsFeaturedIds {\n logId?: string | null;\n traceId?: string | null;\n spanId?: string | null;\n}\n\nexport interface UseLogsUrlStateOptions {\n /** Called after `handleRemoveAll` clears all filter URL params. */\n onRemoveAll?: () => void;\n}\n\nexport interface UseLogsUrlStateResult {\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParamsLike;\n\n datePreset: LogsDatePreset;\n selectedDateFrom: Date | undefined;\n selectedDateTo: Date | undefined;\n datePresetRef: React.MutableRefObject<LogsDatePreset>;\n\n featuredLogId: string | null;\n featuredTraceId: string | null;\n featuredSpanId: string | null;\n\n selectedEntityOption: LogsEntityOptions | undefined;\n filterTokens: PropertyFilterToken[];\n\n /** Partial update of the featured log/trace/span selection. Omitted keys are left as-is. */\n handleFeaturedChange: (ids: LogsFeaturedIds) => void;\n handleFilterTokensChange: (nextTokens: PropertyFilterToken[]) => void;\n handleDateChange: (value: Date | undefined, type: 'from' | 'to') => void;\n handleDatePresetChange: (preset: LogsDatePreset) => void;\n handleRemoveAll: () => void;\n\n /** Lower-level helper used by `handleClear`: writes a token set and clears the log/trace/span selection. */\n applyFilterTokens: (tokens: PropertyFilterToken[]) => void;\n}\n\n/**\n * Owns all URL-derived state and URL-modifying handlers for the logs page. Routing-agnostic —\n * pass `searchParams` and `setSearchParams` from whichever router the consumer uses.\n */\nexport function useLogsUrlState(\n searchParams: URLSearchParams,\n setSearchParams: SetURLSearchParamsLike,\n options?: UseLogsUrlStateOptions,\n): UseLogsUrlStateResult {\n const { onRemoveAll } = options ?? {};\n\n const datePreset = useMemo<LogsDatePreset>(() => {\n const value = searchParams.get(LOGS_DATE_PRESET_PARAM);\n return value && LOGS_DATE_PRESET_VALUES.has(value as LogsDatePreset) ? (value as LogsDatePreset) : 'last-24h';\n }, [searchParams]);\n\n const dateFromParamRaw = searchParams.get(LOGS_DATE_FROM_PARAM);\n const dateToParamRaw = searchParams.get(LOGS_DATE_TO_PARAM);\n\n const selectedDateFrom = useMemo(() => {\n if (datePreset === 'custom') {\n if (!dateFromParamRaw) return undefined;\n const parsed = new Date(dateFromParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }\n if (datePreset === 'all') return undefined;\n const ms = PRESET_MS[datePreset];\n return ms ? new Date(Date.now() - ms) : undefined;\n }, [datePreset, dateFromParamRaw]);\n\n const selectedDateTo = useMemo(() => {\n if (datePreset !== 'custom' || !dateToParamRaw) return undefined;\n const parsed = new Date(dateToParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }, [datePreset, dateToParamRaw]);\n\n const datePresetRef = useRef(datePreset);\n datePresetRef.current = datePreset;\n\n const featuredLogId = searchParams.get(LOG_PARAM);\n const featuredTraceId = searchParams.get(TRACE_PARAM);\n const featuredSpanId = searchParams.get(SPAN_PARAM);\n\n const selectedEntityOption = useMemo(\n () =>\n LOGS_ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === searchParams.get(LOGS_ROOT_ENTITY_TYPE_PARAM)),\n [searchParams],\n );\n\n const filterTokens = useMemo(() => getLogsPropertyFilterTokens(searchParams), [searchParams]);\n\n const handleFeaturedChange = useCallback(\n (ids: LogsFeaturedIds) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n for (const [field, value] of Object.entries(ids)) {\n const param = field === 'logId' ? LOG_PARAM : field === 'traceId' ? TRACE_PARAM : SPAN_PARAM;\n if (value) {\n next.set(param, value);\n } else {\n next.delete(param);\n }\n }\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const applyFilterTokens = useCallback(\n (tokens: PropertyFilterToken[]) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n applyLogsPropertyFilterTokens(next, tokens);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleFilterTokensChange = applyFilterTokens;\n\n const handleDateChange = useCallback(\n (value: Date | undefined, type: 'from' | 'to') => {\n if (datePresetRef.current !== 'custom') return;\n const param = type === 'from' ? LOGS_DATE_FROM_PARAM : LOGS_DATE_TO_PARAM;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (value) {\n next.set(param, value.toISOString());\n } else {\n next.delete(param);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleDatePresetChange = useCallback(\n (preset: LogsDatePreset) => {\n datePresetRef.current = preset;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (preset === 'last-24h') {\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n } else if (preset === 'custom') {\n next.set(LOGS_DATE_PRESET_PARAM, 'custom');\n } else {\n next.set(LOGS_DATE_PRESET_PARAM, preset);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleRemoveAll = useCallback(() => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n next.delete(LOGS_ROOT_ENTITY_TYPE_PARAM);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n next.delete(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId]);\n }\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n onRemoveAll?.();\n }, [setSearchParams, onRemoveAll]);\n\n return useMemo(\n () => ({\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n }),\n [\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n ],\n );\n}\n"],"mappings":"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KAAK,OAAO,kBAAkB;GAChC;GACA,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF,GACA,CAAC,eAAe,CAClB;CAEA,MAAM,kBAAkB,kBAAkB;EACxC,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,KAAK,OAAO,2BAA2B;GACvC,KAAK,MAAM,WAAW,gCACpB,KAAK,OAAO,oCAAoC,QAAQ;GAE1D,KAAK,OAAO,sBAAsB;GAClC,KAAK,OAAO,oBAAoB;GAChC,KAAK,OAAO,kBAAkB;GAC9B,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;EACA,cAAc;CAChB,GAAG,CAAC,iBAAiB,WAAW,CAAC;CAEjC,OAAO,eACE;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;AACF"}
1
+ {"version":3,"file":"use-logs-url-state.es.js","names":[],"sources":["../../../../src/domains/logs/hooks/use-logs-url-state.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport {\n DEFAULT_LOGS_DATE_PRESET,\n LOGS_DATE_FROM_PARAM,\n LOGS_DATE_PRESET_PARAM,\n LOGS_DATE_PRESET_VALUES,\n LOGS_DATE_TO_PARAM,\n LOGS_PROPERTY_FILTER_FIELD_IDS,\n LOGS_PROPERTY_FILTER_PARAM_BY_FIELD,\n LOGS_ROOT_ENTITY_TYPE_OPTIONS,\n LOGS_ROOT_ENTITY_TYPE_PARAM,\n applyLogsPropertyFilterTokens,\n getLogsPropertyFilterTokens,\n} from '../log-filters';\nimport type { LogsDatePreset, LogsEntityOptions } from '../log-filters';\nimport type { PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\nimport type { SetURLSearchParamsLike } from '@/lib/sort/use-url-sort';\n\nconst LOG_PARAM = 'logId';\nconst TRACE_PARAM = 'traceId';\nconst SPAN_PARAM = 'spanId';\n\nconst DAY_MS = 24 * 60 * 60 * 1000;\nconst PRESET_MS: Partial<Record<LogsDatePreset, 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\n/** Mutates `params` in place to drop the featured log/trace/span selection.\n * Used whenever a filter changes — selection no longer makes sense in the new result set. */\nfunction clearSelectionParams(params: URLSearchParams) {\n params.delete(LOG_PARAM);\n params.delete(TRACE_PARAM);\n params.delete(SPAN_PARAM);\n}\n\nexport interface LogsFeaturedIds {\n logId?: string | null;\n traceId?: string | null;\n spanId?: string | null;\n}\n\nexport interface UseLogsUrlStateOptions {\n /** Called after `handleRemoveAll` clears all filter URL params. */\n onRemoveAll?: () => void;\n}\n\nexport interface UseLogsUrlStateResult {\n searchParams: URLSearchParams;\n setSearchParams: SetURLSearchParamsLike;\n\n datePreset: LogsDatePreset;\n selectedDateFrom: Date | undefined;\n selectedDateTo: Date | undefined;\n datePresetRef: React.MutableRefObject<LogsDatePreset>;\n\n featuredLogId: string | null;\n featuredTraceId: string | null;\n featuredSpanId: string | null;\n\n selectedEntityOption: LogsEntityOptions | undefined;\n filterTokens: PropertyFilterToken[];\n\n /** Partial update of the featured log/trace/span selection. Omitted keys are left as-is. */\n handleFeaturedChange: (ids: LogsFeaturedIds) => void;\n handleFilterTokensChange: (nextTokens: PropertyFilterToken[]) => void;\n handleDateChange: (value: Date | undefined, type: 'from' | 'to') => void;\n handleDatePresetChange: (preset: LogsDatePreset) => void;\n handleRemoveAll: () => void;\n\n /** Lower-level helper used by `handleClear`: writes a token set and clears the log/trace/span selection. */\n applyFilterTokens: (tokens: PropertyFilterToken[]) => void;\n}\n\n/**\n * Owns all URL-derived state and URL-modifying handlers for the logs page. Routing-agnostic —\n * pass `searchParams` and `setSearchParams` from whichever router the consumer uses.\n */\nexport function useLogsUrlState(\n searchParams: URLSearchParams,\n setSearchParams: SetURLSearchParamsLike,\n options?: UseLogsUrlStateOptions,\n): UseLogsUrlStateResult {\n const { onRemoveAll } = options ?? {};\n\n const datePreset = useMemo<LogsDatePreset>(() => {\n const value = searchParams.get(LOGS_DATE_PRESET_PARAM);\n return value && LOGS_DATE_PRESET_VALUES.has(value as LogsDatePreset)\n ? (value as LogsDatePreset)\n : DEFAULT_LOGS_DATE_PRESET;\n }, [searchParams]);\n\n const dateFromParamRaw = searchParams.get(LOGS_DATE_FROM_PARAM);\n const dateToParamRaw = searchParams.get(LOGS_DATE_TO_PARAM);\n\n const selectedDateFrom = useMemo(() => {\n if (datePreset === 'custom') {\n if (!dateFromParamRaw) return undefined;\n const parsed = new Date(dateFromParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }\n if (datePreset === 'all') return undefined;\n const ms = PRESET_MS[datePreset];\n return ms ? new Date(Date.now() - ms) : undefined;\n }, [datePreset, dateFromParamRaw]);\n\n const selectedDateTo = useMemo(() => {\n if (datePreset !== 'custom' || !dateToParamRaw) return undefined;\n const parsed = new Date(dateToParamRaw);\n return Number.isNaN(parsed.getTime()) ? undefined : parsed;\n }, [datePreset, dateToParamRaw]);\n\n const datePresetRef = useRef(datePreset);\n datePresetRef.current = datePreset;\n\n const featuredLogId = searchParams.get(LOG_PARAM);\n const featuredTraceId = searchParams.get(TRACE_PARAM);\n const featuredSpanId = searchParams.get(SPAN_PARAM);\n\n const selectedEntityOption = useMemo(\n () =>\n LOGS_ROOT_ENTITY_TYPE_OPTIONS.find(option => option.entityType === searchParams.get(LOGS_ROOT_ENTITY_TYPE_PARAM)),\n [searchParams],\n );\n\n const filterTokens = useMemo(() => getLogsPropertyFilterTokens(searchParams), [searchParams]);\n\n const handleFeaturedChange = useCallback(\n (ids: LogsFeaturedIds) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n for (const [field, value] of Object.entries(ids)) {\n const param = field === 'logId' ? LOG_PARAM : field === 'traceId' ? TRACE_PARAM : SPAN_PARAM;\n if (value) {\n next.set(param, value);\n } else {\n next.delete(param);\n }\n }\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const applyFilterTokens = useCallback(\n (tokens: PropertyFilterToken[]) => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n applyLogsPropertyFilterTokens(next, tokens);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleFilterTokensChange = applyFilterTokens;\n\n const handleDateChange = useCallback(\n (value: Date | undefined, type: 'from' | 'to') => {\n if (datePresetRef.current !== 'custom') return;\n const param = type === 'from' ? LOGS_DATE_FROM_PARAM : LOGS_DATE_TO_PARAM;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (value) {\n next.set(param, value.toISOString());\n } else {\n next.delete(param);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleDatePresetChange = useCallback(\n (preset: LogsDatePreset) => {\n datePresetRef.current = preset;\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n if (preset === DEFAULT_LOGS_DATE_PRESET) {\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n } else if (preset === 'custom') {\n next.set(LOGS_DATE_PRESET_PARAM, 'custom');\n } else {\n next.set(LOGS_DATE_PRESET_PARAM, preset);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n }\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n },\n [setSearchParams],\n );\n\n const handleRemoveAll = useCallback(() => {\n setSearchParams(\n prev => {\n const next = new URLSearchParams(prev);\n next.delete(LOGS_ROOT_ENTITY_TYPE_PARAM);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n next.delete(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId]);\n }\n next.delete(LOGS_DATE_PRESET_PARAM);\n next.delete(LOGS_DATE_FROM_PARAM);\n next.delete(LOGS_DATE_TO_PARAM);\n clearSelectionParams(next);\n return next;\n },\n { replace: true },\n );\n onRemoveAll?.();\n }, [setSearchParams, onRemoveAll]);\n\n return useMemo(\n () => ({\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n }),\n [\n searchParams,\n setSearchParams,\n datePreset,\n selectedDateFrom,\n selectedDateTo,\n datePresetRef,\n featuredLogId,\n featuredTraceId,\n featuredSpanId,\n selectedEntityOption,\n filterTokens,\n handleFeaturedChange,\n handleFilterTokensChange,\n handleDateChange,\n handleDatePresetChange,\n handleRemoveAll,\n applyFilterTokens,\n ],\n );\n}\n"],"mappings":"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KAAK,OAAO,kBAAkB;GAChC;GACA,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF,GACA,CAAC,eAAe,CAClB;CAEA,MAAM,kBAAkB,kBAAkB;EACxC,iBACE,SAAQ;GACN,MAAM,OAAO,IAAI,gBAAgB,IAAI;GACrC,KAAK,OAAO,2BAA2B;GACvC,KAAK,MAAM,WAAW,gCACpB,KAAK,OAAO,oCAAoC,QAAQ;GAE1D,KAAK,OAAO,sBAAsB;GAClC,KAAK,OAAO,oBAAoB;GAChC,KAAK,OAAO,kBAAkB;GAC9B,qBAAqB,IAAI;GACzB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;EACA,cAAc;CAChB,GAAG,CAAC,iBAAiB,WAAW,CAAC;CAEjC,OAAO,eACE;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;AACF"}
@@ -62,6 +62,14 @@ var LOGS_ROOT_ENTITY_TYPE_PARAM = "rootEntityType";
62
62
  var LOGS_DATE_PRESET_PARAM = "datePreset";
63
63
  var LOGS_DATE_FROM_PARAM = "dateFrom";
64
64
  var LOGS_DATE_TO_PARAM = "dateTo";
65
+ /** The range the logs page shows when the URL names none. */
66
+ var DEFAULT_LOGS_DATE_PRESET = "last-24h";
67
+ /** Fields the logs list can be sorted by. */
68
+ var LOGS_SORT_FIELDS = ["timestamp"];
69
+ var DEFAULT_LOGS_SORT = {
70
+ key: "timestamp",
71
+ direction: "desc"
72
+ };
65
73
  var LOGS_DATE_PRESET_VALUES = /* @__PURE__ */ new Set([
66
74
  "all",
67
75
  "last-24h",
@@ -411,7 +419,9 @@ function neutralizeLogsFilterTokens(filterFields, filterTokens) {
411
419
  return token;
412
420
  });
413
421
  }
422
+ exports.DEFAULT_LOGS_DATE_PRESET = DEFAULT_LOGS_DATE_PRESET;
414
423
  exports.DEFAULT_LOGS_FILTERS_STORAGE_KEY = DEFAULT_LOGS_FILTERS_STORAGE_KEY;
424
+ exports.DEFAULT_LOGS_SORT = DEFAULT_LOGS_SORT;
415
425
  exports.LOGS_DATE_FROM_PARAM = LOGS_DATE_FROM_PARAM;
416
426
  exports.LOGS_DATE_PRESET_PARAM = LOGS_DATE_PRESET_PARAM;
417
427
  exports.LOGS_DATE_PRESET_VALUES = LOGS_DATE_PRESET_VALUES;
@@ -421,6 +431,7 @@ exports.LOGS_PROPERTY_FILTER_PARAM_BY_FIELD = LOGS_PROPERTY_FILTER_PARAM_BY_FIEL
421
431
  exports.LOGS_ROOT_ENTITY_TYPES = LOGS_ROOT_ENTITY_TYPES;
422
432
  exports.LOGS_ROOT_ENTITY_TYPE_OPTIONS = LOGS_ROOT_ENTITY_TYPE_OPTIONS;
423
433
  exports.LOGS_ROOT_ENTITY_TYPE_PARAM = LOGS_ROOT_ENTITY_TYPE_PARAM;
434
+ exports.LOGS_SORT_FIELDS = LOGS_SORT_FIELDS;
424
435
  exports.LOG_LEVEL_OPTIONS = LOG_LEVEL_OPTIONS;
425
436
  exports.LOG_LEVEL_VALUES = LOG_LEVEL_VALUES;
426
437
  exports.applyLogsPropertyFilterTokens = applyLogsPropertyFilterTokens;
@@ -1 +1 @@
1
- {"version":3,"file":"log-filters.cjs.js","names":[],"sources":["../../../src/domains/logs/log-filters.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport type { EntityType } from '@mastra/core/observability';\nimport type { LogLevel } from './types';\nimport type { PropertyFilterField, PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\n\ntype ListLogsArgs = NonNullable<Parameters<MastraClient['listLogsVNext']>[0]>;\n\nexport type LogsDatePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\ntype EntityTypeValue = `${EntityType}`;\n\nexport type LogsEntityOptions = { label: string; entityType: EntityTypeValue };\n\nexport const LOGS_ROOT_ENTITY_TYPES = {\n AGENT: 'agent',\n WORKFLOW: 'workflow_run',\n SCORER: 'scorer',\n INGEST: 'rag_ingestion',\n CLASSIFIER: 'classifier',\n} as const satisfies Record<string, EntityTypeValue>;\n\nexport const LOGS_ROOT_ENTITY_TYPE_OPTIONS = [\n { label: 'Agent', entityType: LOGS_ROOT_ENTITY_TYPES.AGENT },\n { label: 'Workflow', entityType: LOGS_ROOT_ENTITY_TYPES.WORKFLOW },\n { label: 'Scorer', entityType: LOGS_ROOT_ENTITY_TYPES.SCORER },\n { label: 'Ingest', entityType: LOGS_ROOT_ENTITY_TYPES.INGEST },\n { label: 'Classifier', entityType: LOGS_ROOT_ENTITY_TYPES.CLASSIFIER },\n] as const satisfies readonly LogsEntityOptions[];\n\nexport const LOG_LEVEL_VALUES: readonly LogLevel[] = ['debug', 'info', 'warn', 'error', 'fatal'] as const;\n\nexport const LOG_LEVEL_OPTIONS = [\n { label: 'Debug', value: 'debug' },\n { label: 'Info', value: 'info' },\n { label: 'Warn', value: 'warn' },\n { label: 'Error', value: 'error' },\n { label: 'Fatal', value: 'fatal' },\n] as const satisfies readonly { label: string; value: LogLevel }[];\n\nexport const LOGS_ROOT_ENTITY_TYPE_PARAM = 'rootEntityType';\nexport const LOGS_DATE_PRESET_PARAM = 'datePreset';\nexport const LOGS_DATE_FROM_PARAM = 'dateFrom';\nexport const LOGS_DATE_TO_PARAM = 'dateTo';\n\nexport const LOGS_DATE_PRESET_VALUES = new Set<LogsDatePreset>([\n 'all',\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n]);\n\n/**\n * Generic filter URL params (filterX keys). Fields that carry multiple values\n * (tags, level) use repeated params; everything else is a single string.\n */\nexport const LOGS_PROPERTY_FILTER_PARAM_BY_FIELD = {\n level: 'filterLevel',\n tags: 'filterTags',\n entityName: 'filterEntityName',\n traceId: 'filterTraceId',\n spanId: 'filterSpanId',\n runId: 'filterRunId',\n threadId: 'filterThreadId',\n sessionId: 'filterSessionId',\n requestId: 'filterRequestId',\n resourceId: 'filterResourceId',\n userId: 'filterUserId',\n organizationId: 'filterOrganizationId',\n serviceName: 'filterServiceName',\n environment: 'filterEnvironment',\n experimentId: 'filterExperimentId',\n} as const;\n\nexport const LOGS_PROPERTY_FILTER_FIELD_IDS = Object.keys(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD) as Array<\n keyof typeof LOGS_PROPERTY_FILTER_PARAM_BY_FIELD\n>;\n\n/** Fields stored as repeated URL params (value is string[]). */\nconst LOGS_ARRAY_FIELD_IDS = new Set<string>(['tags']);\n\nexport const DEFAULT_LOGS_FILTERS_STORAGE_KEY = 'mastra:logs:saved-filters';\n\nexport function saveLogsFiltersToStorage(\n params: URLSearchParams,\n storageKey: string = DEFAULT_LOGS_FILTERS_STORAGE_KEY,\n): void {\n const serialized = getPreservedLogsFilterParams(params);\n const preset = params.get(LOGS_DATE_PRESET_PARAM);\n if (preset) serialized.set(LOGS_DATE_PRESET_PARAM, preset);\n const from = params.get(LOGS_DATE_FROM_PARAM);\n if (from) serialized.set(LOGS_DATE_FROM_PARAM, from);\n const to = params.get(LOGS_DATE_TO_PARAM);\n if (to) serialized.set(LOGS_DATE_TO_PARAM, to);\n\n try {\n localStorage.setItem(storageKey, serialized.toString());\n } catch {\n // localStorage may be unavailable (private mode / quota) — silently skip.\n }\n}\n\nexport function clearSavedLogsFilters(storageKey: string = DEFAULT_LOGS_FILTERS_STORAGE_KEY): void {\n try {\n localStorage.removeItem(storageKey);\n } catch {\n // ignore\n }\n}\n\nexport function loadLogsFiltersFromStorage(\n storageKey: string = DEFAULT_LOGS_FILTERS_STORAGE_KEY,\n): URLSearchParams | null {\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return null;\n const parsed = new URLSearchParams(raw);\n return parsed.toString() ? parsed : null;\n } catch {\n return null;\n }\n}\n\nexport function hasAnyLogsFilterParams(params: URLSearchParams): boolean {\n if (params.has(LOGS_DATE_PRESET_PARAM)) return true;\n if (params.has(LOGS_DATE_FROM_PARAM)) return true;\n if (params.has(LOGS_DATE_TO_PARAM)) return true;\n if (params.has(LOGS_ROOT_ENTITY_TYPE_PARAM)) return true;\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n if (params.has(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId])) return true;\n }\n return false;\n}\n\nexport function createLogsPropertyFilterFields({\n availableTags,\n availableRootEntityNames,\n availableServiceNames,\n availableEnvironments,\n loading,\n}: {\n availableTags: string[];\n availableRootEntityNames: string[];\n availableServiceNames: string[];\n availableEnvironments: string[];\n loading?: {\n tags?: boolean;\n entityNames?: boolean;\n serviceNames?: boolean;\n environments?: boolean;\n };\n}): PropertyFilterField[] {\n const fields: PropertyFilterField[] = [\n {\n id: 'rootEntityType',\n label: 'Primitive type',\n kind: 'pick-multi',\n searchable: false,\n options: LOGS_ROOT_ENTITY_TYPE_OPTIONS.map(o => ({ label: o.label, value: o.entityType })),\n placeholder: 'Choose entity type',\n emptyText: 'No entity types.',\n },\n {\n id: 'entityName',\n label: 'Primitive name',\n kind: 'pick-multi',\n options: availableRootEntityNames.map(name => ({ label: name, value: name })),\n placeholder: 'Choose entity names',\n emptyText: 'No entity names found.',\n isLoading: loading?.entityNames,\n },\n {\n id: 'level',\n label: 'Level',\n kind: 'pick-multi',\n searchable: false,\n options: LOG_LEVEL_OPTIONS.map(o => ({ label: o.label, value: o.value })),\n placeholder: 'Choose level',\n emptyText: 'No levels.',\n },\n {\n id: 'tags',\n label: 'Tags',\n kind: 'pick-multi',\n multi: true,\n options: availableTags.map(tag => ({ label: tag, value: tag })),\n placeholder: 'Choose tags',\n emptyText: 'No tags found.',\n isLoading: loading?.tags,\n },\n {\n id: 'serviceName',\n label: 'Service Name',\n kind: 'pick-multi',\n options: availableServiceNames.map(name => ({ label: name, value: name })),\n placeholder: 'Choose service names',\n emptyText: 'No service names found.',\n isLoading: loading?.serviceNames,\n },\n {\n id: 'environment',\n label: 'Environment',\n kind: 'pick-multi',\n options: availableEnvironments.map(env => ({ label: env, value: env })),\n placeholder: 'Choose environments',\n emptyText: 'No environments found.',\n isLoading: loading?.environments,\n },\n { id: 'traceId', label: 'Trace ID', kind: 'text' },\n { id: 'spanId', label: 'Span ID', kind: 'text' },\n { id: 'runId', label: 'Run ID', kind: 'text' },\n { id: 'threadId', label: 'Thread ID', kind: 'text' },\n { id: 'sessionId', label: 'Session ID', kind: 'text' },\n { id: 'requestId', label: 'Request ID', kind: 'text' },\n { id: 'resourceId', label: 'Resource ID', kind: 'text' },\n { id: 'userId', label: 'User ID', kind: 'text' },\n { id: 'organizationId', label: 'Organization ID', kind: 'text' },\n { id: 'experimentId', label: 'Experiment ID', kind: 'text' },\n ];\n const byLabel = (a: PropertyFilterField, b: PropertyFilterField) => a.label.localeCompare(b.label);\n const pickMulti = fields.filter(f => f.kind === 'pick-multi').sort(byLabel);\n const text = fields.filter(f => f.kind === 'text').sort(byLabel);\n return [...pickMulti, ...text];\n}\n\n/**\n * Read filter tokens from URL search params preserving the order in which\n * each filter was first added. Fields in LOGS_ARRAY_FIELD_IDS are read as\n * string[]; an empty sentinel (`filterX=`) keeps the pill alive post-Reset.\n */\nexport function getLogsPropertyFilterTokens(searchParams: URLSearchParams): PropertyFilterToken[] {\n const tokens: PropertyFilterToken[] = [];\n\n const paramToFieldId = new Map<string, string>([[LOGS_ROOT_ENTITY_TYPE_PARAM, 'rootEntityType']]);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n paramToFieldId.set(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId], fieldId);\n }\n\n const seen = new Set<string>();\n for (const [paramName] of searchParams.entries()) {\n const fieldId = paramToFieldId.get(paramName);\n if (!fieldId || seen.has(fieldId)) continue;\n seen.add(fieldId);\n\n if (LOGS_ARRAY_FIELD_IDS.has(fieldId)) {\n const raw = searchParams.getAll(paramName);\n if (raw.length === 0) continue;\n tokens.push({ fieldId, value: raw.filter(Boolean) });\n continue;\n }\n\n const value = searchParams.get(paramName);\n if (value !== null) tokens.push({ fieldId, value });\n }\n\n return tokens;\n}\n\nexport function getPreservedLogsFilterParams(searchParams: URLSearchParams) {\n const next = new URLSearchParams();\n\n const rootEntityType = searchParams.get(LOGS_ROOT_ENTITY_TYPE_PARAM);\n if (rootEntityType) next.set(LOGS_ROOT_ENTITY_TYPE_PARAM, rootEntityType);\n\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n const param = LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId];\n if (LOGS_ARRAY_FIELD_IDS.has(fieldId)) {\n for (const value of searchParams.getAll(param)) {\n next.append(param, value);\n }\n continue;\n }\n\n const value = searchParams.get(param);\n if (value) next.set(param, value);\n }\n\n return next;\n}\n\nexport function applyLogsPropertyFilterTokens(params: URLSearchParams, tokens: PropertyFilterToken[]) {\n params.delete(LOGS_ROOT_ENTITY_TYPE_PARAM);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n params.delete(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId]);\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'rootEntityType' && typeof token.value === 'string') {\n params.set(LOGS_ROOT_ENTITY_TYPE_PARAM, token.value);\n continue;\n }\n\n const param =\n LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[token.fieldId as keyof typeof LOGS_PROPERTY_FILTER_PARAM_BY_FIELD];\n if (!param) continue;\n\n if (LOGS_ARRAY_FIELD_IDS.has(token.fieldId) && Array.isArray(token.value)) {\n if (token.value.length === 0) {\n // Empty sentinel — keeps the pill visible after Reset.\n params.append(param, '');\n } else {\n for (const value of token.value) {\n params.append(param, value);\n }\n }\n continue;\n }\n\n if (typeof token.value === 'string') {\n // Persist empty / 'Any' values too so neutralized-but-still-visible pills\n // survive URL round-trips. buildLogsListFilters skips these on the API\n // query side so neutrals never reach the backend.\n params.set(param, token.value.trim());\n }\n }\n}\n\nexport function buildLogsListFilters({\n rootEntityType,\n dateFrom,\n dateTo,\n tokens,\n}: {\n rootEntityType?: string;\n dateFrom?: Date;\n dateTo?: Date;\n tokens: PropertyFilterToken[];\n}): ListLogsArgs['filters'] {\n const filters: NonNullable<ListLogsArgs['filters']> = {};\n\n if (rootEntityType) {\n filters.rootEntityType = rootEntityType as NonNullable<ListLogsArgs['filters']>['rootEntityType'];\n }\n\n if (dateFrom || dateTo) {\n filters.timestamp = {\n ...(dateFrom ? { start: dateFrom } : {}),\n ...(dateTo ? { end: dateTo } : {}),\n };\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'tags') {\n if (Array.isArray(token.value) && token.value.length > 0) {\n filters.tags = token.value;\n } else if (typeof token.value === 'string' && token.value.trim()) {\n filters.tags = [token.value.trim()];\n }\n continue;\n }\n\n if (token.fieldId === 'level') {\n // Single-select only — the server's `level` union (single LogLevel or\n // array) can't round-trip as a JSON-string array through the query-param\n // schema wrapper, so we send a single enum value. \"Any\" = no filter.\n if (typeof token.value === 'string' && token.value.trim() && token.value !== 'Any') {\n filters.level = token.value as LogLevel;\n }\n continue;\n }\n\n if (typeof token.value !== 'string') continue;\n // Skip empty-string tokens (unfilled pending filters) and 'Any'\n // (pick-multi single-select neutral state) so neutrals never reach the\n // backend.\n if (!token.value.trim()) continue;\n if (token.value === 'Any') continue;\n\n switch (token.fieldId) {\n case 'entityName':\n filters.rootEntityName = token.value;\n break;\n case 'traceId':\n filters.traceId = token.value;\n break;\n case 'spanId':\n filters.spanId = token.value;\n break;\n case 'runId':\n filters.runId = token.value;\n break;\n case 'threadId':\n filters.threadId = token.value;\n break;\n case 'sessionId':\n filters.sessionId = token.value;\n break;\n case 'requestId':\n filters.requestId = token.value;\n break;\n case 'resourceId':\n filters.resourceId = token.value;\n break;\n case 'userId':\n filters.userId = token.value;\n break;\n case 'organizationId':\n filters.organizationId = token.value;\n break;\n case 'serviceName':\n filters.serviceName = token.value;\n break;\n case 'environment':\n filters.environment = token.value;\n break;\n case 'experimentId':\n filters.experimentId = token.value;\n break;\n default:\n break;\n }\n }\n\n return filters;\n}\n\n/**\n * \"Clear\" semantics for the logs toolbar: keep all filter pills but neutralize each value.\n * '' for text fields, 'Any' for single-select pick-multi, [] for multi-select pick-multi.\n * Date range is intentionally NOT touched here — that's a separate concern.\n */\nexport function neutralizeLogsFilterTokens(\n filterFields: PropertyFilterField[],\n filterTokens: PropertyFilterToken[],\n): PropertyFilterToken[] {\n return filterTokens.map(token => {\n const field = filterFields.find(f => f.id === token.fieldId);\n if (!field) return token;\n if (field.kind === 'text') return { fieldId: token.fieldId, value: '' };\n if (field.kind === 'pick-multi') {\n return field.multi ? { fieldId: token.fieldId, value: [] } : { fieldId: token.fieldId, value: 'Any' };\n }\n return token;\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"log-filters.cjs.js","names":[],"sources":["../../../src/domains/logs/log-filters.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport type { EntityType } from '@mastra/core/observability';\nimport type { LogLevel } from './types';\nimport type { PropertyFilterField, PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\n\ntype ListLogsArgs = NonNullable<Parameters<MastraClient['listLogsVNext']>[0]>;\n\nexport type LogsDatePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\ntype EntityTypeValue = `${EntityType}`;\n\nexport type LogsEntityOptions = { label: string; entityType: EntityTypeValue };\n\nexport const LOGS_ROOT_ENTITY_TYPES = {\n AGENT: 'agent',\n WORKFLOW: 'workflow_run',\n SCORER: 'scorer',\n INGEST: 'rag_ingestion',\n CLASSIFIER: 'classifier',\n} as const satisfies Record<string, EntityTypeValue>;\n\nexport const LOGS_ROOT_ENTITY_TYPE_OPTIONS = [\n { label: 'Agent', entityType: LOGS_ROOT_ENTITY_TYPES.AGENT },\n { label: 'Workflow', entityType: LOGS_ROOT_ENTITY_TYPES.WORKFLOW },\n { label: 'Scorer', entityType: LOGS_ROOT_ENTITY_TYPES.SCORER },\n { label: 'Ingest', entityType: LOGS_ROOT_ENTITY_TYPES.INGEST },\n { label: 'Classifier', entityType: LOGS_ROOT_ENTITY_TYPES.CLASSIFIER },\n] as const satisfies readonly LogsEntityOptions[];\n\nexport const LOG_LEVEL_VALUES: readonly LogLevel[] = ['debug', 'info', 'warn', 'error', 'fatal'] as const;\n\nexport const LOG_LEVEL_OPTIONS = [\n { label: 'Debug', value: 'debug' },\n { label: 'Info', value: 'info' },\n { label: 'Warn', value: 'warn' },\n { label: 'Error', value: 'error' },\n { label: 'Fatal', value: 'fatal' },\n] as const satisfies readonly { label: string; value: LogLevel }[];\n\nexport const LOGS_ROOT_ENTITY_TYPE_PARAM = 'rootEntityType';\nexport const LOGS_DATE_PRESET_PARAM = 'datePreset';\nexport const LOGS_DATE_FROM_PARAM = 'dateFrom';\nexport const LOGS_DATE_TO_PARAM = 'dateTo';\n\n/** The range the logs page shows when the URL names none. */\nexport const DEFAULT_LOGS_DATE_PRESET: LogsDatePreset = 'last-24h';\n\n/** Fields the logs list can be sorted by. */\nexport const LOGS_SORT_FIELDS = ['timestamp'] as const;\nexport const DEFAULT_LOGS_SORT = { key: 'timestamp', direction: 'desc' } as const;\n\nexport const LOGS_DATE_PRESET_VALUES = new Set<LogsDatePreset>([\n 'all',\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n]);\n\n/**\n * Generic filter URL params (filterX keys). Fields that carry multiple values\n * (tags, level) use repeated params; everything else is a single string.\n */\nexport const LOGS_PROPERTY_FILTER_PARAM_BY_FIELD = {\n level: 'filterLevel',\n tags: 'filterTags',\n entityName: 'filterEntityName',\n traceId: 'filterTraceId',\n spanId: 'filterSpanId',\n runId: 'filterRunId',\n threadId: 'filterThreadId',\n sessionId: 'filterSessionId',\n requestId: 'filterRequestId',\n resourceId: 'filterResourceId',\n userId: 'filterUserId',\n organizationId: 'filterOrganizationId',\n serviceName: 'filterServiceName',\n environment: 'filterEnvironment',\n experimentId: 'filterExperimentId',\n} as const;\n\nexport const LOGS_PROPERTY_FILTER_FIELD_IDS = Object.keys(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD) as Array<\n keyof typeof LOGS_PROPERTY_FILTER_PARAM_BY_FIELD\n>;\n\n/** Fields stored as repeated URL params (value is string[]). */\nconst LOGS_ARRAY_FIELD_IDS = new Set<string>(['tags']);\n\nexport const DEFAULT_LOGS_FILTERS_STORAGE_KEY = 'mastra:logs:saved-filters';\n\nexport function saveLogsFiltersToStorage(\n params: URLSearchParams,\n storageKey: string = DEFAULT_LOGS_FILTERS_STORAGE_KEY,\n): void {\n const serialized = getPreservedLogsFilterParams(params);\n const preset = params.get(LOGS_DATE_PRESET_PARAM);\n if (preset) serialized.set(LOGS_DATE_PRESET_PARAM, preset);\n const from = params.get(LOGS_DATE_FROM_PARAM);\n if (from) serialized.set(LOGS_DATE_FROM_PARAM, from);\n const to = params.get(LOGS_DATE_TO_PARAM);\n if (to) serialized.set(LOGS_DATE_TO_PARAM, to);\n\n try {\n localStorage.setItem(storageKey, serialized.toString());\n } catch {\n // localStorage may be unavailable (private mode / quota) — silently skip.\n }\n}\n\nexport function clearSavedLogsFilters(storageKey: string = DEFAULT_LOGS_FILTERS_STORAGE_KEY): void {\n try {\n localStorage.removeItem(storageKey);\n } catch {\n // ignore\n }\n}\n\nexport function loadLogsFiltersFromStorage(\n storageKey: string = DEFAULT_LOGS_FILTERS_STORAGE_KEY,\n): URLSearchParams | null {\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return null;\n const parsed = new URLSearchParams(raw);\n return parsed.toString() ? parsed : null;\n } catch {\n return null;\n }\n}\n\nexport function hasAnyLogsFilterParams(params: URLSearchParams): boolean {\n if (params.has(LOGS_DATE_PRESET_PARAM)) return true;\n if (params.has(LOGS_DATE_FROM_PARAM)) return true;\n if (params.has(LOGS_DATE_TO_PARAM)) return true;\n if (params.has(LOGS_ROOT_ENTITY_TYPE_PARAM)) return true;\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n if (params.has(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId])) return true;\n }\n return false;\n}\n\nexport function createLogsPropertyFilterFields({\n availableTags,\n availableRootEntityNames,\n availableServiceNames,\n availableEnvironments,\n loading,\n}: {\n availableTags: string[];\n availableRootEntityNames: string[];\n availableServiceNames: string[];\n availableEnvironments: string[];\n loading?: {\n tags?: boolean;\n entityNames?: boolean;\n serviceNames?: boolean;\n environments?: boolean;\n };\n}): PropertyFilterField[] {\n const fields: PropertyFilterField[] = [\n {\n id: 'rootEntityType',\n label: 'Primitive type',\n kind: 'pick-multi',\n searchable: false,\n options: LOGS_ROOT_ENTITY_TYPE_OPTIONS.map(o => ({ label: o.label, value: o.entityType })),\n placeholder: 'Choose entity type',\n emptyText: 'No entity types.',\n },\n {\n id: 'entityName',\n label: 'Primitive name',\n kind: 'pick-multi',\n options: availableRootEntityNames.map(name => ({ label: name, value: name })),\n placeholder: 'Choose entity names',\n emptyText: 'No entity names found.',\n isLoading: loading?.entityNames,\n },\n {\n id: 'level',\n label: 'Level',\n kind: 'pick-multi',\n searchable: false,\n options: LOG_LEVEL_OPTIONS.map(o => ({ label: o.label, value: o.value })),\n placeholder: 'Choose level',\n emptyText: 'No levels.',\n },\n {\n id: 'tags',\n label: 'Tags',\n kind: 'pick-multi',\n multi: true,\n options: availableTags.map(tag => ({ label: tag, value: tag })),\n placeholder: 'Choose tags',\n emptyText: 'No tags found.',\n isLoading: loading?.tags,\n },\n {\n id: 'serviceName',\n label: 'Service Name',\n kind: 'pick-multi',\n options: availableServiceNames.map(name => ({ label: name, value: name })),\n placeholder: 'Choose service names',\n emptyText: 'No service names found.',\n isLoading: loading?.serviceNames,\n },\n {\n id: 'environment',\n label: 'Environment',\n kind: 'pick-multi',\n options: availableEnvironments.map(env => ({ label: env, value: env })),\n placeholder: 'Choose environments',\n emptyText: 'No environments found.',\n isLoading: loading?.environments,\n },\n { id: 'traceId', label: 'Trace ID', kind: 'text' },\n { id: 'spanId', label: 'Span ID', kind: 'text' },\n { id: 'runId', label: 'Run ID', kind: 'text' },\n { id: 'threadId', label: 'Thread ID', kind: 'text' },\n { id: 'sessionId', label: 'Session ID', kind: 'text' },\n { id: 'requestId', label: 'Request ID', kind: 'text' },\n { id: 'resourceId', label: 'Resource ID', kind: 'text' },\n { id: 'userId', label: 'User ID', kind: 'text' },\n { id: 'organizationId', label: 'Organization ID', kind: 'text' },\n { id: 'experimentId', label: 'Experiment ID', kind: 'text' },\n ];\n const byLabel = (a: PropertyFilterField, b: PropertyFilterField) => a.label.localeCompare(b.label);\n const pickMulti = fields.filter(f => f.kind === 'pick-multi').sort(byLabel);\n const text = fields.filter(f => f.kind === 'text').sort(byLabel);\n return [...pickMulti, ...text];\n}\n\n/**\n * Read filter tokens from URL search params preserving the order in which\n * each filter was first added. Fields in LOGS_ARRAY_FIELD_IDS are read as\n * string[]; an empty sentinel (`filterX=`) keeps the pill alive post-Reset.\n */\nexport function getLogsPropertyFilterTokens(searchParams: URLSearchParams): PropertyFilterToken[] {\n const tokens: PropertyFilterToken[] = [];\n\n const paramToFieldId = new Map<string, string>([[LOGS_ROOT_ENTITY_TYPE_PARAM, 'rootEntityType']]);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n paramToFieldId.set(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId], fieldId);\n }\n\n const seen = new Set<string>();\n for (const [paramName] of searchParams.entries()) {\n const fieldId = paramToFieldId.get(paramName);\n if (!fieldId || seen.has(fieldId)) continue;\n seen.add(fieldId);\n\n if (LOGS_ARRAY_FIELD_IDS.has(fieldId)) {\n const raw = searchParams.getAll(paramName);\n if (raw.length === 0) continue;\n tokens.push({ fieldId, value: raw.filter(Boolean) });\n continue;\n }\n\n const value = searchParams.get(paramName);\n if (value !== null) tokens.push({ fieldId, value });\n }\n\n return tokens;\n}\n\nexport function getPreservedLogsFilterParams(searchParams: URLSearchParams) {\n const next = new URLSearchParams();\n\n const rootEntityType = searchParams.get(LOGS_ROOT_ENTITY_TYPE_PARAM);\n if (rootEntityType) next.set(LOGS_ROOT_ENTITY_TYPE_PARAM, rootEntityType);\n\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n const param = LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId];\n if (LOGS_ARRAY_FIELD_IDS.has(fieldId)) {\n for (const value of searchParams.getAll(param)) {\n next.append(param, value);\n }\n continue;\n }\n\n const value = searchParams.get(param);\n if (value) next.set(param, value);\n }\n\n return next;\n}\n\nexport function applyLogsPropertyFilterTokens(params: URLSearchParams, tokens: PropertyFilterToken[]) {\n params.delete(LOGS_ROOT_ENTITY_TYPE_PARAM);\n for (const fieldId of LOGS_PROPERTY_FILTER_FIELD_IDS) {\n params.delete(LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId]);\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'rootEntityType' && typeof token.value === 'string') {\n params.set(LOGS_ROOT_ENTITY_TYPE_PARAM, token.value);\n continue;\n }\n\n const param =\n LOGS_PROPERTY_FILTER_PARAM_BY_FIELD[token.fieldId as keyof typeof LOGS_PROPERTY_FILTER_PARAM_BY_FIELD];\n if (!param) continue;\n\n if (LOGS_ARRAY_FIELD_IDS.has(token.fieldId) && Array.isArray(token.value)) {\n if (token.value.length === 0) {\n // Empty sentinel — keeps the pill visible after Reset.\n params.append(param, '');\n } else {\n for (const value of token.value) {\n params.append(param, value);\n }\n }\n continue;\n }\n\n if (typeof token.value === 'string') {\n // Persist empty / 'Any' values too so neutralized-but-still-visible pills\n // survive URL round-trips. buildLogsListFilters skips these on the API\n // query side so neutrals never reach the backend.\n params.set(param, token.value.trim());\n }\n }\n}\n\nexport function buildLogsListFilters({\n rootEntityType,\n dateFrom,\n dateTo,\n tokens,\n}: {\n rootEntityType?: string;\n dateFrom?: Date;\n dateTo?: Date;\n tokens: PropertyFilterToken[];\n}): ListLogsArgs['filters'] {\n const filters: NonNullable<ListLogsArgs['filters']> = {};\n\n if (rootEntityType) {\n filters.rootEntityType = rootEntityType as NonNullable<ListLogsArgs['filters']>['rootEntityType'];\n }\n\n if (dateFrom || dateTo) {\n filters.timestamp = {\n ...(dateFrom ? { start: dateFrom } : {}),\n ...(dateTo ? { end: dateTo } : {}),\n };\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'tags') {\n if (Array.isArray(token.value) && token.value.length > 0) {\n filters.tags = token.value;\n } else if (typeof token.value === 'string' && token.value.trim()) {\n filters.tags = [token.value.trim()];\n }\n continue;\n }\n\n if (token.fieldId === 'level') {\n // Single-select only — the server's `level` union (single LogLevel or\n // array) can't round-trip as a JSON-string array through the query-param\n // schema wrapper, so we send a single enum value. \"Any\" = no filter.\n if (typeof token.value === 'string' && token.value.trim() && token.value !== 'Any') {\n filters.level = token.value as LogLevel;\n }\n continue;\n }\n\n if (typeof token.value !== 'string') continue;\n // Skip empty-string tokens (unfilled pending filters) and 'Any'\n // (pick-multi single-select neutral state) so neutrals never reach the\n // backend.\n if (!token.value.trim()) continue;\n if (token.value === 'Any') continue;\n\n switch (token.fieldId) {\n case 'entityName':\n filters.rootEntityName = token.value;\n break;\n case 'traceId':\n filters.traceId = token.value;\n break;\n case 'spanId':\n filters.spanId = token.value;\n break;\n case 'runId':\n filters.runId = token.value;\n break;\n case 'threadId':\n filters.threadId = token.value;\n break;\n case 'sessionId':\n filters.sessionId = token.value;\n break;\n case 'requestId':\n filters.requestId = token.value;\n break;\n case 'resourceId':\n filters.resourceId = token.value;\n break;\n case 'userId':\n filters.userId = token.value;\n break;\n case 'organizationId':\n filters.organizationId = token.value;\n break;\n case 'serviceName':\n filters.serviceName = token.value;\n break;\n case 'environment':\n filters.environment = token.value;\n break;\n case 'experimentId':\n filters.experimentId = token.value;\n break;\n default:\n break;\n }\n }\n\n return filters;\n}\n\n/**\n * \"Clear\" semantics for the logs toolbar: keep all filter pills but neutralize each value.\n * '' for text fields, 'Any' for single-select pick-multi, [] for multi-select pick-multi.\n * Date range is intentionally NOT touched here — that's a separate concern.\n */\nexport function neutralizeLogsFilterTokens(\n filterFields: PropertyFilterField[],\n filterTokens: PropertyFilterToken[],\n): PropertyFilterToken[] {\n return filterTokens.map(token => {\n const field = filterFields.find(f => f.id === token.fieldId);\n if (!field) return token;\n if (field.kind === 'text') return { fieldId: token.fieldId, value: '' };\n if (field.kind === 'pick-multi') {\n return field.multi ? { fieldId: token.fieldId, value: [] } : { fieldId: token.fieldId, value: 'Any' };\n }\n return token;\n });\n}\n"],"mappings":"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"}
@@ -61,6 +61,14 @@ var LOGS_ROOT_ENTITY_TYPE_PARAM = "rootEntityType";
61
61
  var LOGS_DATE_PRESET_PARAM = "datePreset";
62
62
  var LOGS_DATE_FROM_PARAM = "dateFrom";
63
63
  var LOGS_DATE_TO_PARAM = "dateTo";
64
+ /** The range the logs page shows when the URL names none. */
65
+ var DEFAULT_LOGS_DATE_PRESET = "last-24h";
66
+ /** Fields the logs list can be sorted by. */
67
+ var LOGS_SORT_FIELDS = ["timestamp"];
68
+ var DEFAULT_LOGS_SORT = {
69
+ key: "timestamp",
70
+ direction: "desc"
71
+ };
64
72
  var LOGS_DATE_PRESET_VALUES = /* @__PURE__ */ new Set([
65
73
  "all",
66
74
  "last-24h",
@@ -410,6 +418,6 @@ function neutralizeLogsFilterTokens(filterFields, filterTokens) {
410
418
  return token;
411
419
  });
412
420
  }
413
- export { DEFAULT_LOGS_FILTERS_STORAGE_KEY, LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_PRESET_VALUES, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_FIELD_IDS, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPES, LOGS_ROOT_ENTITY_TYPE_OPTIONS, LOGS_ROOT_ENTITY_TYPE_PARAM, LOG_LEVEL_OPTIONS, LOG_LEVEL_VALUES, applyLogsPropertyFilterTokens, buildLogsListFilters, clearSavedLogsFilters, createLogsPropertyFilterFields, getLogsPropertyFilterTokens, getPreservedLogsFilterParams, hasAnyLogsFilterParams, loadLogsFiltersFromStorage, neutralizeLogsFilterTokens, saveLogsFiltersToStorage };
421
+ export { DEFAULT_LOGS_DATE_PRESET, DEFAULT_LOGS_FILTERS_STORAGE_KEY, DEFAULT_LOGS_SORT, LOGS_DATE_FROM_PARAM, LOGS_DATE_PRESET_PARAM, LOGS_DATE_PRESET_VALUES, LOGS_DATE_TO_PARAM, LOGS_PROPERTY_FILTER_FIELD_IDS, LOGS_PROPERTY_FILTER_PARAM_BY_FIELD, LOGS_ROOT_ENTITY_TYPES, LOGS_ROOT_ENTITY_TYPE_OPTIONS, LOGS_ROOT_ENTITY_TYPE_PARAM, LOGS_SORT_FIELDS, LOG_LEVEL_OPTIONS, LOG_LEVEL_VALUES, applyLogsPropertyFilterTokens, buildLogsListFilters, clearSavedLogsFilters, createLogsPropertyFilterFields, getLogsPropertyFilterTokens, getPreservedLogsFilterParams, hasAnyLogsFilterParams, loadLogsFiltersFromStorage, neutralizeLogsFilterTokens, saveLogsFiltersToStorage };
414
422
 
415
423
  //# sourceMappingURL=log-filters.es.js.map