@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.
- package/dist/AgentIndicator-Bs2S8AWJ.js +847 -0
- package/dist/AgentIndicator-Bs2S8AWJ.js.map +1 -0
- package/dist/AgentIndicator-to30W73z.cjs +864 -0
- package/dist/AgentIndicator-to30W73z.cjs.map +1 -0
- package/dist/AgentIndicator.css +28 -0
- package/dist/{Arrival-NpBOyV52.js → Arrival-CJFEOXr5.js} +33 -3
- package/dist/Arrival-CJFEOXr5.js.map +1 -0
- package/dist/{Arrival-Dm6Vgn78.cjs → Arrival-Cs1oWjo4.cjs} +43 -1
- package/dist/Arrival-Cs1oWjo4.cjs.map +1 -0
- package/dist/{Comment-CUQvfikb.cjs → Comment-KYUQzeSu.cjs} +2 -2
- package/dist/{Comment-CUQvfikb.cjs.map → Comment-KYUQzeSu.cjs.map} +1 -1
- package/dist/{Comment-CPA3IyPS.js → Comment-VFJq2wRp.js} +2 -2
- package/dist/{Comment-CPA3IyPS.js.map → Comment-VFJq2wRp.js.map} +1 -1
- package/dist/{DataList-Ve3omCXT.js → DataList-2tIlQsLc.js} +95 -3
- package/dist/DataList-2tIlQsLc.js.map +1 -0
- package/dist/{DataList-Cmk08jUV.cjs → DataList-Czwmwyvp.cjs} +93 -1
- package/dist/DataList-Czwmwyvp.cjs.map +1 -0
- package/dist/{DateTimeRangePicker-ByMbLdom.js → DateTimeRangePicker-C_Lie_2P.js} +23 -2
- package/dist/DateTimeRangePicker-C_Lie_2P.js.map +1 -0
- package/dist/{DateTimeRangePicker-DGbH5WOn.cjs → DateTimeRangePicker-HmPOHwAQ.cjs} +23 -2
- package/dist/DateTimeRangePicker-HmPOHwAQ.cjs.map +1 -0
- package/dist/{FilterBar-Dk3QEuT6.js → FilterBar--4oguuVe.js} +4 -4
- package/dist/FilterBar--4oguuVe.js.map +1 -0
- package/dist/{FilterBar-gEvoWDXA.cjs → FilterBar-BUd4f7oi.cjs} +7 -7
- package/dist/FilterBar-BUd4f7oi.cjs.map +1 -0
- package/dist/GrainFill.css +2 -0
- package/dist/{MarkdownRenderer-BgqKfmRm.cjs → MarkdownRenderer-CS6u5drO.cjs} +2 -2
- package/dist/{MarkdownRenderer-BgqKfmRm.cjs.map → MarkdownRenderer-CS6u5drO.cjs.map} +1 -1
- package/dist/{MarkdownRenderer-DKCDXaLy.js → MarkdownRenderer-DME2xKTk.js} +2 -2
- package/dist/{MarkdownRenderer-DKCDXaLy.js.map → MarkdownRenderer-DME2xKTk.js.map} +1 -1
- package/dist/{Message-BF9cpYaw.cjs → Message-DsCNQpou.cjs} +2 -2
- package/dist/{Message-BF9cpYaw.cjs.map → Message-DsCNQpou.cjs.map} +1 -1
- package/dist/{Message-Bkf6Ro9H.js → Message-nVI6tMS3.js} +2 -2
- package/dist/{Message-Bkf6Ro9H.js.map → Message-nVI6tMS3.js.map} +1 -1
- package/dist/{MetricsCard-Dly_H3oX.cjs → MetricsCard-CEB-f2sv.cjs} +91 -109
- package/dist/MetricsCard-CEB-f2sv.cjs.map +1 -0
- package/dist/{MetricsCard-C9GWgT58.js → MetricsCard-M8awJ2B_.js} +91 -109
- package/dist/MetricsCard-M8awJ2B_.js.map +1 -0
- package/dist/{MetricsKpiCard-Uw0nyMgW.cjs → MetricsKpiCard-By_-sagx.cjs} +3 -2
- package/dist/{MetricsKpiCard-Uw0nyMgW.cjs.map → MetricsKpiCard-By_-sagx.cjs.map} +1 -1
- package/dist/{MetricsKpiCard-Idxjl-dn.js → MetricsKpiCard-OHbAElTl.js} +3 -2
- package/dist/{MetricsKpiCard-Idxjl-dn.js.map → MetricsKpiCard-OHbAElTl.js.map} +1 -1
- package/dist/{MetricsLineChart-DKzuRU2q.js → MetricsLineChart-BhHoduO0.js} +21 -39
- package/dist/MetricsLineChart-BhHoduO0.js.map +1 -0
- package/dist/{MetricsLineChart-2m4LVL1N.cjs → MetricsLineChart-CjBm4IXu.cjs} +21 -39
- package/dist/MetricsLineChart-CjBm4IXu.cjs.map +1 -0
- package/dist/{MetricsStackedBarChart-DJB4aByt.js → MetricsStackedBarChart-BRuA6MTE.js} +2 -3
- package/dist/MetricsStackedBarChart-BRuA6MTE.js.map +1 -0
- package/dist/{MetricsStackedBarChart-NATtwA_W.cjs → MetricsStackedBarChart-BdMlKv6G.cjs} +2 -3
- package/dist/MetricsStackedBarChart-BdMlKv6G.cjs.map +1 -0
- package/dist/Notice.css +2 -0
- package/dist/Shimmer.css +7 -0
- package/dist/{activity-ihrl0JtH.js → activity-CM34JyW-.js} +98 -33
- package/dist/activity-CM34JyW-.js.map +1 -0
- package/dist/{activity-QyLJcBKc.cjs → activity-DAK8tj7r.cjs} +108 -31
- package/dist/activity-DAK8tj7r.cjs.map +1 -0
- package/dist/chart-plot.css +15 -0
- package/dist/combobox-8kNAJFlj.cjs +309 -0
- package/dist/combobox-8kNAJFlj.cjs.map +1 -0
- package/dist/{combobox-C-E7_q4j.cjs → combobox-parts-BZVXwbG7.cjs} +7 -300
- package/dist/combobox-parts-BZVXwbG7.cjs.map +1 -0
- package/dist/{combobox-CDS2pBqz.js → combobox-parts-W7KRQUsV.js} +10 -297
- package/dist/combobox-parts-W7KRQUsV.js.map +1 -0
- package/dist/combobox-wFudhN8F.js +302 -0
- package/dist/combobox-wFudhN8F.js.map +1 -0
- package/dist/components/AgentIndicator.cjs.js +5 -0
- package/dist/components/AgentIndicator.d.ts +1 -0
- package/dist/components/AgentIndicator.es.js +1 -0
- package/dist/components/Arrival.cjs.js +3 -1
- package/dist/components/Arrival.es.js +1 -1
- package/dist/components/Combobox.cjs.js +24 -23
- package/dist/components/Combobox.es.js +2 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/DataList.cjs.js +2 -2
- package/dist/components/DataList.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/DiffStat.cjs.js +1 -1
- package/dist/components/DiffStat.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/LogsDataList.cjs.js +1 -1
- package/dist/components/LogsDataList.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +1 -1
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +1 -1
- package/dist/components/MetricsLineChart.es.js +1 -1
- package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
- package/dist/components/MetricsStackedBarChart.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +27 -69
- package/dist/components/SavedViews.cjs.js.map +1 -1
- package/dist/components/SavedViews.es.js +26 -68
- package/dist/components/SavedViews.es.js.map +1 -1
- package/dist/components/ai/activity.cjs.js +3 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/message-reveal.cjs.js +2 -1
- package/dist/components/ai/message-reveal.cjs.js.map +1 -1
- package/dist/components/ai/message-reveal.es.js +2 -1
- package/dist/components/ai/message-reveal.es.js.map +1 -1
- package/dist/components/ai/plan.cjs.js +1 -1
- package/dist/components/ai/plan.es.js +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js +6 -4
- package/dist/domains/chat/activity/activity-stretch-line.cjs.js.map +1 -1
- package/dist/domains/chat/activity/activity-stretch-line.es.js +6 -4
- package/dist/domains/chat/activity/activity-stretch-line.es.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-fold.cjs.js +81 -28
- package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-fold.es.js +82 -29
- package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
- package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
- package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
- package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
- package/dist/domains/chat/activity/components/use-fading-edge.cjs.js +26 -0
- package/dist/domains/chat/activity/components/use-fading-edge.cjs.js.map +1 -0
- package/dist/domains/chat/activity/components/use-fading-edge.d.ts +1 -0
- package/dist/domains/chat/activity/components/use-fading-edge.es.js +25 -0
- package/dist/domains/chat/activity/components/use-fading-edge.es.js.map +1 -0
- package/dist/domains/chat/activity/components/use-rolling-words.cjs.js +123 -0
- package/dist/domains/chat/activity/components/use-rolling-words.cjs.js.map +1 -0
- package/dist/domains/chat/activity/components/use-rolling-words.d.ts +1 -0
- package/dist/domains/chat/activity/components/use-rolling-words.es.js +122 -0
- package/dist/domains/chat/activity/components/use-rolling-words.es.js.map +1 -0
- package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
- package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
- package/dist/domains/chat/activity/model/activity-words.cjs.js +16 -6
- package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
- package/dist/domains/chat/activity/model/activity-words.es.js +15 -7
- package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
- package/dist/domains/chat/activity.cjs.js +3 -0
- package/dist/domains/chat/activity.es.js +2 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +4 -4
- package/dist/domains/chat/messages/message-row.es.js +4 -4
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js +18 -0
- package/dist/domains/chat/messages/renderers/tool-part.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/tool-part.es.js +18 -0
- package/dist/domains/chat/messages/renderers/tool-part.es.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +10 -7
- package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +10 -7
- package/dist/domains/chat/messages/skill-message.es.js.map +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +111 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +109 -0
- package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +8 -6
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +9 -7
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -3
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -3
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +10 -4
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +10 -4
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +51 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.d.ts +1 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +49 -0
- package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-groups.es.js +1 -1
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js +44 -0
- package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-grid.d.ts +1 -0
- package/dist/domains/dashboards/components/dashboard-grid.es.js +41 -0
- package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +72 -0
- package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/dashboard-renderer.d.ts +1 -0
- package/dist/domains/dashboards/components/dashboard-renderer.es.js +71 -0
- package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -0
- package/dist/domains/dashboards/components/view-gate.cjs.js +55 -0
- package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/view-gate.d.ts +1 -0
- package/dist/domains/dashboards/components/view-gate.es.js +54 -0
- package/dist/domains/dashboards/components/view-gate.es.js.map +1 -0
- package/dist/domains/dashboards/components/widget-chrome.cjs.js +16 -0
- package/dist/domains/dashboards/components/widget-chrome.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/widget-chrome.d.ts +1 -0
- package/dist/domains/dashboards/components/widget-chrome.es.js +15 -0
- package/dist/domains/dashboards/components/widget-chrome.es.js.map +1 -0
- package/dist/domains/dashboards/components/widget-controls.cjs.js +21 -0
- package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/widget-controls.d.ts +1 -0
- package/dist/domains/dashboards/components/widget-controls.es.js +20 -0
- package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -0
- package/dist/domains/dashboards/components/widget-error.cjs.js +18 -0
- package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -0
- package/dist/domains/dashboards/components/widget-error.d.ts +1 -0
- package/dist/domains/dashboards/components/widget-error.es.js +17 -0
- package/dist/domains/dashboards/components/widget-error.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +47 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +46 -0
- package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-scorers.cjs.js +41 -0
- package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-scorers.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-scorers.es.js +40 -0
- package/dist/domains/dashboards/hooks/use-scorers.es.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +35 -0
- package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -0
- package/dist/domains/dashboards/hooks/use-widget-views.d.ts +1 -0
- package/dist/domains/dashboards/hooks/use-widget-views.es.js +32 -0
- package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +63 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +62 -0
- package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/options.cjs.js +72 -0
- package/dist/domains/dashboards/kinds/kpis/options.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis/options.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis/options.es.js +69 -0
- package/dist/domains/dashboards/kinds/kpis/options.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis.cjs.js +17 -0
- package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/kpis.d.ts +1 -0
- package/dist/domains/dashboards/kinds/kpis.es.js +14 -0
- package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/options.cjs.js +30 -0
- package/dist/domains/dashboards/kinds/scores/options.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/options.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores/options.es.js +28 -0
- package/dist/domains/dashboards/kinds/scores/options.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +91 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +90 -0
- package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores.cjs.js +16 -0
- package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/scores.d.ts +1 -0
- package/dist/domains/dashboards/kinds/scores.es.js +14 -0
- package/dist/domains/dashboards/kinds/scores.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +67 -0
- package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-cells.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-cells.es.js +63 -0
- package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +72 -0
- package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-columns.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-columns.es.js +71 -0
- package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-frame.cjs.js +16 -0
- package/dist/domains/dashboards/kinds/table/table-frame.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-frame.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-frame.es.js +15 -0
- package/dist/domains/dashboards/kinds/table/table-frame.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +55 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js +54 -0
- package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js +80 -0
- package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-view.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-view.es.js +79 -0
- package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +30 -0
- package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table/table-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table/table-widget.es.js +29 -0
- package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/table.cjs.js +17 -0
- package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/table.d.ts +1 -0
- package/dist/domains/dashboards/kinds/table.es.js +14 -0
- package/dist/domains/dashboards/kinds/table.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +115 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.d.ts +1 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +114 -0
- package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries.cjs.js +15 -0
- package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds/timeseries.d.ts +1 -0
- package/dist/domains/dashboards/kinds/timeseries.es.js +14 -0
- package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -0
- package/dist/domains/dashboards/kinds.cjs.js +20 -0
- package/dist/domains/dashboards/kinds.cjs.js.map +1 -0
- package/dist/domains/dashboards/kinds.d.ts +1 -0
- package/dist/domains/dashboards/kinds.es.js +15 -0
- package/dist/domains/dashboards/kinds.es.js.map +1 -0
- package/dist/domains/dashboards/lib/answers.cjs.js +42 -0
- package/dist/domains/dashboards/lib/answers.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/answers.d.ts +1 -0
- package/dist/domains/dashboards/lib/answers.es.js +37 -0
- package/dist/domains/dashboards/lib/answers.es.js.map +1 -0
- package/dist/domains/dashboards/lib/chrome.cjs.js +41 -0
- package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/chrome.d.ts +1 -0
- package/dist/domains/dashboards/lib/chrome.es.js +37 -0
- package/dist/domains/dashboards/lib/chrome.es.js.map +1 -0
- package/dist/domains/dashboards/lib/definition.cjs.js +59 -0
- package/dist/domains/dashboards/lib/definition.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/definition.d.ts +1 -0
- package/dist/domains/dashboards/lib/definition.es.js +55 -0
- package/dist/domains/dashboards/lib/definition.es.js.map +1 -0
- package/dist/domains/dashboards/lib/filters.cjs.js +44 -0
- package/dist/domains/dashboards/lib/filters.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/filters.d.ts +1 -0
- package/dist/domains/dashboards/lib/filters.es.js +43 -0
- package/dist/domains/dashboards/lib/filters.es.js.map +1 -0
- package/dist/domains/dashboards/lib/format.cjs.js +32 -0
- package/dist/domains/dashboards/lib/format.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/format.d.ts +1 -0
- package/dist/domains/dashboards/lib/format.es.js +30 -0
- package/dist/domains/dashboards/lib/format.es.js.map +1 -0
- package/dist/domains/dashboards/lib/prepare-widget.cjs.js +77 -0
- package/dist/domains/dashboards/lib/prepare-widget.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/prepare-widget.d.ts +1 -0
- package/dist/domains/dashboards/lib/prepare-widget.es.js +75 -0
- package/dist/domains/dashboards/lib/prepare-widget.es.js.map +1 -0
- package/dist/domains/dashboards/lib/requests.cjs.js +279 -0
- package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/requests.d.ts +1 -0
- package/dist/domains/dashboards/lib/requests.es.js +273 -0
- package/dist/domains/dashboards/lib/requests.es.js.map +1 -0
- package/dist/domains/dashboards/lib/scores.cjs.js +58 -0
- package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/scores.d.ts +1 -0
- package/dist/domains/dashboards/lib/scores.es.js +53 -0
- package/dist/domains/dashboards/lib/scores.es.js.map +1 -0
- package/dist/domains/dashboards/lib/table.cjs.js +408 -0
- package/dist/domains/dashboards/lib/table.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/table.d.ts +1 -0
- package/dist/domains/dashboards/lib/table.es.js +388 -0
- package/dist/domains/dashboards/lib/table.es.js.map +1 -0
- package/dist/domains/dashboards/lib/timeseries.cjs.js +192 -0
- package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/timeseries.d.ts +1 -0
- package/dist/domains/dashboards/lib/timeseries.es.js +188 -0
- package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -0
- package/dist/domains/dashboards/lib/values.cjs.js +155 -0
- package/dist/domains/dashboards/lib/values.cjs.js.map +1 -0
- package/dist/domains/dashboards/lib/values.d.ts +1 -0
- package/dist/domains/dashboards/lib/values.es.js +142 -0
- package/dist/domains/dashboards/lib/values.es.js.map +1 -0
- package/dist/domains/dashboards/metrics-dashboard.cjs.js +737 -0
- package/dist/domains/dashboards/metrics-dashboard.cjs.js.map +1 -0
- package/dist/domains/dashboards/metrics-dashboard.d.ts +1 -0
- package/dist/domains/dashboards/metrics-dashboard.es.js +736 -0
- package/dist/domains/dashboards/metrics-dashboard.es.js.map +1 -0
- package/dist/domains/dashboards/widget-kind.cjs.js +7 -0
- package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -0
- package/dist/domains/dashboards/widget-kind.d.ts +1 -0
- package/dist/domains/dashboards/widget-kind.es.js +6 -0
- package/dist/domains/dashboards/widget-kind.es.js.map +1 -0
- package/dist/domains/dashboards.cjs.js +39 -0
- package/dist/domains/dashboards.d.ts +1 -0
- package/dist/domains/dashboards.es.js +18 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +1 -1
- package/dist/domains/logs/components/logs-saved-views.cjs.js +14 -0
- package/dist/domains/logs/components/logs-saved-views.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-saved-views.d.ts +1 -0
- package/dist/domains/logs/components/logs-saved-views.es.js +13 -0
- package/dist/domains/logs/components/logs-saved-views.es.js.map +1 -0
- package/dist/domains/logs/components.cjs.js +2 -0
- package/dist/domains/logs/components.es.js +2 -1
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js +1 -1
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js.map +1 -1
- package/dist/domains/logs/hooks/use-logs-url-state.es.js +2 -2
- package/dist/domains/logs/hooks/use-logs-url-state.es.js.map +1 -1
- package/dist/domains/logs/log-filters.cjs.js +11 -0
- package/dist/domains/logs/log-filters.cjs.js.map +1 -1
- package/dist/domains/logs/log-filters.es.js +9 -1
- package/dist/domains/logs/log-filters.es.js.map +1 -1
- package/dist/domains/logs.cjs.js +6 -1
- package/dist/domains/logs.es.js +3 -2
- package/dist/domains/metrics/components/agent-runs-card.cjs.js +38 -15
- package/dist/domains/metrics/components/agent-runs-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/agent-runs-card.es.js +38 -15
- package/dist/domains/metrics/components/agent-runs-card.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.cjs.js +4 -11
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.es.js +4 -11
- package/dist/domains/metrics/components/breakdown/breakdown-change-cell.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.cjs.js +2 -4
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.es.js +2 -4
- package/dist/domains/metrics/components/breakdown/breakdown-cost-cell.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-frame.cjs.js +16 -27
- package/dist/domains/metrics/components/breakdown/breakdown-frame.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-frame.es.js +16 -27
- package/dist/domains/metrics/components/breakdown/breakdown-frame.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-name.cjs.js +22 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.cjs.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.d.ts +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.es.js +21 -0
- package/dist/domains/metrics/components/breakdown/breakdown-name.es.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.cjs.js +13 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.cjs.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.d.ts +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.es.js +12 -0
- package/dist/domains/metrics/components/breakdown/breakdown-not-priced.es.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-projects-first.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-projects-first.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +26 -13
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +25 -14
- package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +10 -13
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +11 -14
- package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js.map +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +5 -5
- package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +5 -5
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +1 -1
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.cjs.js +25 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.cjs.js.map +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.d.ts +1 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.es.js +24 -0
- package/dist/domains/metrics/components/breakdown/breakdown-trend-text.es.js.map +1 -0
- package/dist/domains/metrics/components/breakdown-card.cjs.js +3 -3
- package/dist/domains/metrics/components/breakdown-card.es.js +3 -3
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +43 -3
- package/dist/domains/metrics/components/card-action-buttons.cjs.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.es.js +42 -5
- package/dist/domains/metrics/components/card-action-buttons.es.js.map +1 -1
- package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-area.es.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
- package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
- package/dist/domains/metrics/components/chart-card.cjs.js +39 -38
- package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/chart-card.es.js +39 -38
- package/dist/domains/metrics/components/chart-card.es.js.map +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +15 -16
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +16 -16
- package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids-card.cjs.js +0 -1
- package/dist/domains/metrics/components/distinct-ids-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/distinct-ids-card.es.js +1 -2
- package/dist/domains/metrics/components/distinct-ids-card.es.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.cjs.js +11 -14
- package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/failure-rate-card.es.js +11 -14
- package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card.cjs.js +8 -5
- package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card.es.js +8 -5
- package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.cjs.js +33 -30
- package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card.es.js +34 -31
- package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.cjs.js +5 -2
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.cjs.js.map +1 -1
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.es.js +5 -2
- package/dist/domains/metrics/components/metrics-grid/metrics-grid.es.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.cjs.js +7 -17
- package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card.es.js +7 -17
- package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.cjs.js +29 -26
- package/dist/domains/metrics/components/token-usage-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-card.es.js +30 -27
- package/dist/domains/metrics/components/token-usage-card.es.js.map +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +3 -2
- package/dist/domains/metrics/components/trace-aggregate-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/trace-aggregate-card.es.js +3 -2
- package/dist/domains/metrics/components/trace-aggregate-card.es.js.map +1 -1
- package/dist/domains/metrics/components/trace-volume-card.cjs.js +31 -35
- package/dist/domains/metrics/components/trace-volume-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/trace-volume-card.es.js +31 -35
- package/dist/domains/metrics/components/trace-volume-card.es.js.map +1 -1
- package/dist/domains/metrics/components/usage-card.cjs.js +29 -28
- package/dist/domains/metrics/components/usage-card.cjs.js.map +1 -1
- package/dist/domains/metrics/components/usage-card.es.js +30 -29
- package/dist/domains/metrics/components/usage-card.es.js.map +1 -1
- package/dist/domains/metrics/components.cjs.js +6 -5
- package/dist/domains/metrics/components.es.js +4 -5
- package/dist/domains/metrics/drilldown.cjs.js +1 -1
- package/dist/domains/metrics/drilldown.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +1 -1
- package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +1 -1
- package/dist/domains/metrics/hooks.cjs.js +1 -1
- package/dist/domains/metrics/hooks.es.js +1 -1
- package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
- package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
- package/dist/domains/metrics/lib.cjs.js +2 -2
- package/dist/domains/metrics/lib.es.js +2 -2
- package/dist/domains/metrics/metrics-filters.cjs.js +1 -1
- package/dist/domains/metrics/metrics-filters.es.js +1 -1
- package/dist/domains/metrics.cjs.js +14 -13
- package/dist/domains/metrics.es.js +12 -13
- package/dist/domains/observability/components/observability-header-slot.cjs.js +13 -0
- package/dist/domains/observability/components/observability-header-slot.cjs.js.map +1 -0
- package/dist/domains/observability/components/observability-header-slot.d.ts +1 -0
- package/dist/domains/observability/components/observability-header-slot.es.js +11 -0
- package/dist/domains/observability/components/observability-header-slot.es.js.map +1 -0
- package/dist/domains/observability/components/observability-histogram.cjs.js +6 -2
- package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
- package/dist/domains/observability/components/observability-histogram.es.js +6 -2
- package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
- package/dist/domains/observability/components/observability-page-layout.cjs.js +19 -5
- package/dist/domains/observability/components/observability-page-layout.cjs.js.map +1 -1
- package/dist/domains/observability/components/observability-page-layout.es.js +20 -6
- package/dist/domains/observability/components/observability-page-layout.es.js.map +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +75 -18
- package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js.map +1 -1
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js +76 -19
- package/dist/domains/observability/hooks/use-observability-list-filters.es.js.map +1 -1
- package/dist/domains/observability/lib/zoom-memory.cjs.js +24 -0
- package/dist/domains/observability/lib/zoom-memory.cjs.js.map +1 -0
- package/dist/domains/observability/lib/zoom-memory.d.ts +1 -0
- package/dist/domains/observability/lib/zoom-memory.es.js +22 -0
- package/dist/domains/observability/lib/zoom-memory.es.js.map +1 -0
- package/dist/domains/observability/observability-list-url-state.cjs.js +122 -0
- package/dist/domains/observability/observability-list-url-state.cjs.js.map +1 -0
- package/dist/domains/observability/observability-list-url-state.d.ts +1 -0
- package/dist/domains/observability/observability-list-url-state.es.js +111 -0
- package/dist/domains/observability/observability-list-url-state.es.js.map +1 -0
- package/dist/domains/observability/saved-view-state.cjs.js +292 -0
- package/dist/domains/observability/saved-view-state.cjs.js.map +1 -0
- package/dist/domains/observability/saved-view-state.d.ts +1 -0
- package/dist/domains/observability/saved-view-state.es.js +286 -0
- package/dist/domains/observability/saved-view-state.es.js.map +1 -0
- package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +3 -0
- package/dist/domains/observability/saved-views/observability-saved-views.d.ts +1 -0
- package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -0
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js +18 -0
- package/dist/domains/observability/saved-views/saved-views-provider.cjs.js.map +1 -0
- package/dist/domains/observability/saved-views/saved-views-provider.d.ts +1 -0
- package/dist/domains/observability/saved-views/saved-views-provider.es.js +17 -0
- package/dist/domains/observability/saved-views/saved-views-provider.es.js.map +1 -0
- package/dist/domains/observability/saved-views/saved-views-source.cjs.js +23 -0
- package/dist/domains/observability/saved-views/saved-views-source.cjs.js.map +1 -0
- package/dist/domains/observability/saved-views/saved-views-source.d.ts +1 -0
- package/dist/domains/observability/saved-views/saved-views-source.es.js +19 -0
- package/dist/domains/observability/saved-views/saved-views-source.es.js.map +1 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +235 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js.map +1 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.d.ts +1 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +232 -0
- package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js.map +1 -0
- package/dist/domains/observability/saved-views.cjs.js +7 -0
- package/dist/domains/observability/saved-views.d.ts +1 -0
- package/dist/domains/observability/saved-views.es.js +4 -0
- package/dist/domains/observability.cjs.js +6 -0
- package/dist/domains/observability.es.js +4 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-list.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +1 -1
- package/dist/domains/skills/skill-simple-form.cjs.js +1 -1
- package/dist/domains/skills/skill-simple-form.es.js +1 -1
- package/dist/domains/spans/components/spans-explorer-body.cjs.js +64 -18
- package/dist/domains/spans/components/spans-explorer-body.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-explorer-body.es.js +64 -18
- package/dist/domains/spans/components/spans-explorer-body.es.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.cjs.js +6 -5
- package/dist/domains/spans/components/spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/components/spans-filter-bar.es.js +6 -5
- package/dist/domains/spans/components/spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +15 -3
- package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js.map +1 -1
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +15 -3
- package/dist/domains/spans/hooks/use-spans-filter-bar.es.js.map +1 -1
- package/dist/domains/spans/span-filters.cjs.js +53 -14
- package/dist/domains/spans/span-filters.cjs.js.map +1 -1
- package/dist/domains/spans/span-filters.es.js +52 -15
- package/dist/domains/spans/span-filters.es.js.map +1 -1
- package/dist/domains/spans/span-list-row.cjs.js +6 -1
- package/dist/domains/spans/span-list-row.cjs.js.map +1 -1
- package/dist/domains/spans/span-list-row.es.js +6 -1
- package/dist/domains/spans/span-list-row.es.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.cjs.js +45 -12
- package/dist/domains/threads/components/threads-explorer-body.cjs.js.map +1 -1
- package/dist/domains/threads/components/threads-explorer-body.es.js +46 -12
- package/dist/domains/threads/components/threads-explorer-body.es.js.map +1 -1
- package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
- package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +14 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js.map +1 -1
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +14 -3
- package/dist/domains/threads/hooks/use-threads-filter-bar.es.js.map +1 -1
- package/dist/domains/threads/thread-filters.cjs.js +26 -13
- package/dist/domains/threads/thread-filters.cjs.js.map +1 -1
- package/dist/domains/threads/thread-filters.es.js +26 -13
- package/dist/domains/threads/thread-filters.es.js.map +1 -1
- package/dist/domains/threads/thread-list-row.cjs.js +2 -0
- package/dist/domains/threads/thread-list-row.cjs.js.map +1 -1
- package/dist/domains/threads/thread-list-row.es.js +2 -0
- package/dist/domains/threads/thread-list-row.es.js.map +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +24 -19
- package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js +25 -20
- package/dist/domains/traces/components/columns-menu/columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +1 -1
- package/dist/domains/traces/components/feedback-thread.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +12 -2
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +12 -2
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-outcome.utils.cjs.js +1 -1
- package/dist/domains/traces/components/span-outcome.utils.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
- package/dist/domains/traces/components/span-prompt-changes.cjs.js +1 -1
- package/dist/domains/traces/components/span-prompt-changes.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +2 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +9 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +9 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +2 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +2 -1
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +120 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.d.ts +1 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.es.js +119 -0
- package/dist/domains/traces/components/trace-span-timeline-markers.es.js.map +1 -0
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +8 -5
- package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js +8 -5
- package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +5 -5
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +5 -5
- package/dist/domains/traces/components/trace-time-range-chip.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js +15 -11
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js +15 -12
- package/dist/domains/traces/components/traces-explorer/traces-explorer-actions.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js +4 -3
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js +4 -3
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +5 -4
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +5 -4
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +13 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +13 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +5 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +5 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +7 -11
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +7 -11
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +3 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +3 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +51 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +51 -5
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +20 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.d.ts +1 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +19 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js.map +1 -0
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +10 -4
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +10 -4
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer.cjs.js +4 -1
- package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer.es.js +5 -3
- package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js +5 -1
- package/dist/domains/traces/components/traces-list-view-adapter.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view-adapter.es.js +5 -1
- package/dist/domains/traces/components/traces-list-view-adapter.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +53 -18
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +53 -18
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +5 -1
- package/dist/domains/traces/trace-filters.es.js +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js +48 -9
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js +48 -9
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/traces/trace-query-filters.cjs.js +1 -1
- package/dist/domains/traces/trace-query-filters.es.js +1 -1
- package/dist/domains/traces/utils/timeline-markers.cjs.js +34 -0
- package/dist/domains/traces/utils/timeline-markers.cjs.js.map +1 -0
- package/dist/domains/traces/utils/timeline-markers.d.ts +1 -0
- package/dist/domains/traces/utils/timeline-markers.es.js +33 -0
- package/dist/domains/traces/utils/timeline-markers.es.js.map +1 -0
- package/dist/domains/traces.cjs.js +5 -1
- package/dist/domains/traces.es.js +2 -2
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +1 -1
- package/dist/{filter-bar-chip-B3pgpngW.js → filter-bar-chip-7O02P9Vk.js} +27 -9
- package/dist/filter-bar-chip-7O02P9Vk.js.map +1 -0
- package/dist/{filter-bar-chip-CyTAmjt6.cjs → filter-bar-chip-BUyMf8XQ.cjs} +40 -22
- package/dist/filter-bar-chip-BUyMf8XQ.cjs.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +1 -1
- package/dist/layout/tabbed-container.es.js +1 -1
- package/dist/lib/form/json-schema-to-zod-runtime.cjs.js +4 -4
- package/dist/lib/form/json-schema-to-zod-runtime.cjs.js.map +1 -1
- package/dist/lib/form/json-schema-to-zod-runtime.es.js +4 -4
- package/dist/lib/form/json-schema-to-zod-runtime.es.js.map +1 -1
- package/dist/lib/form/zod-provider.cjs.js +5 -1
- package/dist/lib/form/zod-provider.cjs.js.map +1 -1
- package/dist/lib/form/zod-provider.es.js +5 -1
- package/dist/lib/form/zod-provider.es.js.map +1 -1
- package/dist/observability-saved-views-Bo5kLN20.js +297 -0
- package/dist/observability-saved-views-Bo5kLN20.js.map +1 -0
- package/dist/observability-saved-views-CwCii7hh.cjs +302 -0
- package/dist/observability-saved-views-CwCii7hh.cjs.map +1 -0
- package/dist/primitives/chart-axes.cjs.js +44 -0
- package/dist/primitives/chart-axes.cjs.js.map +1 -1
- package/dist/primitives/chart-axes.es.js +43 -1
- package/dist/primitives/chart-axes.es.js.map +1 -1
- package/dist/primitives/chart-frame.cjs.js +5 -3
- package/dist/primitives/chart-frame.cjs.js.map +1 -1
- package/dist/primitives/chart-frame.es.js +6 -4
- package/dist/primitives/chart-frame.es.js.map +1 -1
- package/dist/primitives/chart-time-tick.cjs.js +15 -11
- package/dist/primitives/chart-time-tick.cjs.js.map +1 -1
- package/dist/primitives/chart-time-tick.es.js +16 -12
- package/dist/primitives/chart-time-tick.es.js.map +1 -1
- package/dist/saved-view-schema-DRJYELfK.cjs +71 -0
- package/dist/saved-view-schema-DRJYELfK.cjs.map +1 -0
- package/dist/saved-view-schema-eJXlRRel.js +54 -0
- package/dist/saved-view-schema-eJXlRRel.js.map +1 -0
- package/dist/{span-payload-primitives-D3OO0u6u.cjs → span-payload-primitives-B10Xxmx7.cjs} +4 -4
- package/dist/{span-payload-primitives-D3OO0u6u.cjs.map → span-payload-primitives-B10Xxmx7.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DTV7eUY-.js → span-payload-primitives-Dyhbqaa7.js} +4 -4
- package/dist/{span-payload-primitives-DTV7eUY-.js.map → span-payload-primitives-Dyhbqaa7.js.map} +1 -1
- package/dist/src/domains/chat/activity/activity-stretch-line.d.ts +4 -2
- package/dist/src/domains/chat/activity/components/activity-fold.d.ts +5 -4
- package/dist/src/domains/chat/activity/components/use-fading-edge.d.ts +6 -0
- package/dist/src/domains/chat/activity/components/use-rolling-words.d.ts +7 -0
- package/dist/src/domains/chat/activity/index.d.ts +2 -1
- package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -0
- package/dist/src/domains/chat/activity/model/activity-words.d.ts +3 -0
- package/dist/src/domains/chat/messages/renderers/tool-part.d.ts +4 -0
- package/dist/src/domains/chat/messages/skill-message.d.ts +3 -1
- package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +14 -0
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +5 -1
- package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +27 -0
- package/dist/src/domains/chat/tools/tool-card.d.ts +5 -1
- package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +18 -0
- package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +19 -0
- package/dist/src/domains/dashboards/components/view-gate.d.ts +30 -0
- package/dist/src/domains/dashboards/components/widget-chrome.d.ts +7 -0
- package/dist/src/domains/dashboards/components/widget-controls.d.ts +8 -0
- package/dist/src/domains/dashboards/components/widget-error.d.ts +6 -0
- package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +10 -0
- package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +66 -0
- package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +18 -0
- package/dist/src/domains/dashboards/index.d.ts +19 -0
- package/dist/src/domains/dashboards/kinds/index.d.ts +7 -0
- package/dist/src/domains/dashboards/kinds/kpis/index.d.ts +13 -0
- package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +3 -0
- package/dist/src/domains/dashboards/kinds/kpis/options.d.ts +35 -0
- package/dist/src/domains/dashboards/kinds/scores/index.d.ts +8 -0
- package/dist/src/domains/dashboards/kinds/scores/options.d.ts +13 -0
- package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +3 -0
- package/dist/src/domains/dashboards/kinds/table/index.d.ts +23 -0
- package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +26 -0
- package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +7 -0
- package/dist/src/domains/dashboards/kinds/table/table-frame.d.ts +13 -0
- package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +10 -0
- package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +5 -0
- package/dist/src/domains/dashboards/kinds/table/table-widget.d.ts +7 -0
- package/dist/src/domains/dashboards/kinds/timeseries/index.d.ts +30 -0
- package/dist/src/domains/dashboards/kinds/timeseries/timeseries-widget.d.ts +5 -0
- package/dist/src/domains/dashboards/lib/answers.d.ts +43 -0
- package/dist/src/domains/dashboards/lib/chrome.d.ts +14 -0
- package/dist/src/domains/dashboards/lib/definition.d.ts +27 -0
- package/dist/src/domains/dashboards/lib/filters.d.ts +6 -0
- package/dist/src/domains/dashboards/lib/format.d.ts +7 -0
- package/dist/src/domains/dashboards/lib/prepare-widget.d.ts +26 -0
- package/dist/src/domains/dashboards/lib/requests.d.ts +95 -0
- package/dist/src/domains/dashboards/lib/scores.d.ts +35 -0
- package/dist/src/domains/dashboards/lib/table.d.ts +188 -0
- package/dist/src/domains/dashboards/lib/timeseries.d.ts +119 -0
- package/dist/src/domains/dashboards/lib/values.d.ts +86 -0
- package/dist/src/domains/dashboards/metrics-dashboard.d.ts +7 -0
- package/dist/src/domains/dashboards/widget-kind.d.ts +31 -0
- package/dist/src/domains/logs/components/index.d.ts +1 -0
- package/dist/src/domains/logs/components/logs-saved-views.d.ts +4 -0
- package/dist/src/domains/logs/log-filters.d.ts +8 -0
- package/dist/src/domains/metrics/components/agent-runs-card.d.ts +10 -3
- package/dist/src/domains/metrics/components/breakdown/breakdown-name.d.ts +13 -0
- package/dist/src/domains/metrics/components/breakdown/breakdown-not-priced.d.ts +2 -0
- package/dist/src/domains/metrics/components/breakdown/breakdown-row-mark.d.ts +17 -4
- package/dist/src/domains/metrics/components/breakdown/breakdown-trend-text.d.ts +9 -0
- package/dist/src/domains/metrics/components/card-action-buttons.d.ts +9 -0
- package/dist/src/domains/metrics/components/chart-card.d.ts +33 -21
- package/dist/src/domains/metrics/components/distinct-ids/distinct-ids-chart.d.ts +0 -1
- package/dist/src/domains/metrics/components/failure-rate-card.d.ts +5 -2
- package/dist/src/domains/metrics/components/index.d.ts +1 -2
- package/dist/src/domains/metrics/components/metrics-grid/metrics-grid.d.ts +4 -1
- package/dist/src/domains/metrics/components/trace-aggregate-card.d.ts +1 -1
- package/dist/src/domains/observability/components/observability-header-slot.d.ts +6 -0
- package/dist/src/domains/observability/components/observability-histogram.d.ts +1 -1
- package/dist/src/domains/observability/hooks/use-observability-list-filters.d.ts +21 -5
- package/dist/src/domains/observability/index.d.ts +2 -0
- package/dist/src/domains/observability/lib/zoom-memory.d.ts +19 -0
- package/dist/src/domains/observability/observability-list-url-state.d.ts +39 -0
- package/dist/src/domains/observability/saved-view-state.d.ts +46 -0
- package/dist/src/domains/observability/saved-views/index.d.ts +7 -0
- package/dist/src/domains/observability/saved-views/observability-saved-views.d.ts +22 -0
- package/dist/src/domains/observability/saved-views/saved-views-provider.d.ts +15 -0
- package/dist/src/domains/observability/saved-views/saved-views-source.d.ts +41 -0
- package/dist/src/domains/observability/saved-views/use-hosted-saved-views.d.ts +34 -0
- package/dist/src/domains/spans/components/spans-explorer-body.d.ts +4 -1
- package/dist/src/domains/spans/components/spans-filter-bar.d.ts +3 -1
- package/dist/src/domains/spans/hooks/use-spans-filter-bar.d.ts +1 -1
- package/dist/src/domains/spans/hooks/use-spans-list-source.d.ts +3 -0
- package/dist/src/domains/spans/span-filters.d.ts +16 -5
- package/dist/src/domains/threads/components/threads-explorer-body.d.ts +4 -1
- package/dist/src/domains/threads/thread-filters.d.ts +6 -5
- package/dist/src/domains/traces/components/columns-menu/columns-menu.d.ts +3 -3
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +7 -1
- package/dist/src/domains/traces/components/trace-span-panel.d.ts +2 -1
- package/dist/src/domains/traces/components/trace-span-timeline-markers.d.ts +5 -0
- package/dist/src/domains/traces/components/trace-span-timeline.d.ts +6 -1
- package/dist/src/domains/traces/components/trace-time-range-chip.d.ts +3 -1
- package/dist/src/domains/traces/components/traces-explorer/index.d.ts +4 -1
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-actions.d.ts +5 -5
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +11 -1
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-saved-views.d.ts +7 -0
- package/dist/src/domains/traces/components/traces-list-view.d.ts +20 -7
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +5 -0
- package/dist/src/domains/traces/trace-filters.d.ts +27 -3
- package/dist/src/domains/traces/trace-list-columns.d.ts +16 -6
- package/dist/src/domains/traces/utils/timeline-markers.d.ts +25 -0
- package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +2 -0
- package/dist/src/domains/workflows/workflow/input/processor-input.d.ts +5 -535
- package/dist/src/domains/workflows/workflow/use-workflow-trigger.d.ts +1 -1
- package/dist/src/ds/components/AgentIndicator/agent-glyph.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/agent-indicator.d.ts +8 -0
- package/dist/src/ds/components/AgentIndicator/animate.d.ts +5 -0
- package/dist/src/ds/components/AgentIndicator/index.d.ts +4 -0
- package/dist/src/ds/components/AgentIndicator/paint.d.ts +21 -0
- package/dist/src/ds/components/AgentIndicator/poses.d.ts +7 -0
- package/dist/src/ds/components/AgentIndicator/shapes.d.ts +41 -0
- package/dist/src/ds/components/Arrival/arrival.d.ts +11 -0
- package/dist/src/ds/components/Arrival/index.d.ts +1 -1
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list-cells.d.ts +12 -0
- package/dist/src/ds/components/DataList/TracesDataList/traces-data-list.d.ts +3 -1
- package/dist/src/ds/components/FilterBar/types.d.ts +2 -0
- package/dist/src/ds/components/MetricsCard/index.d.ts +1 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-actions.d.ts +2 -1
- package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +13 -0
- package/dist/src/ds/components/MetricsCard/metrics-card-title-menu.d.ts +2 -0
- package/dist/src/ds/components/MetricsCard/metrics-card-title.d.ts +1 -3
- package/dist/src/ds/components/MetricsCard/metrics-card-toolbar.d.ts +3 -3
- package/dist/src/ds/components/MetricsCard/metrics-card-total.d.ts +11 -3
- package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -9
- package/dist/src/ds/components/MetricsCard/metrics-story-data.d.ts +0 -26
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-root.d.ts +5 -2
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart-legend.d.ts +3 -4
- package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +2 -6
- package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +3 -1
- package/dist/src/ds/components/SavedViews/saved-view-picker.d.ts +21 -0
- package/dist/src/ds/components/SavedViews/use-saved-views.d.ts +6 -2
- package/dist/src/ds/components/ai/activity/activity.d.ts +12 -7
- package/dist/src/ds/components/ai/activity/index.d.ts +1 -0
- package/dist/src/ds/components/ai/activity/presets/signal-activity.d.ts +4 -1
- package/dist/src/ds/components/ai/activity/use-relative-paths.d.ts +3 -0
- package/dist/src/ds/components/ai/message-reveal/message-reveal.d.ts +2 -1
- package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +4 -0
- package/dist/src/ds/primitives/chart-axes.d.ts +24 -0
- package/dist/src/ds/primitives/chart-frame.d.ts +2 -1
- package/dist/src/ds/primitives/chart-time-tick.d.ts +7 -4
- package/dist/src/lib/string.d.ts +1 -0
- package/dist/{string-OAgeMRQ5.js → string-CNKDIc_4.js} +6 -2
- package/dist/string-CNKDIc_4.js.map +1 -0
- package/dist/{string-CymY0aJ9.cjs → string-DdJJdCv2.cjs} +11 -1
- package/dist/string-DdJJdCv2.cjs.map +1 -0
- package/dist/style.css +67 -4
- package/dist/{tabbed-container-x2mfK07d.js → tabbed-container-BKUqfEKy.js} +2 -2
- package/dist/{tabbed-container-x2mfK07d.js.map → tabbed-container-BKUqfEKy.js.map} +1 -1
- package/dist/{tabbed-container-CBTb0LgE.cjs → tabbed-container-CFEImJOK.cjs} +2 -2
- package/dist/{tabbed-container-CBTb0LgE.cjs.map → tabbed-container-CFEImJOK.cjs.map} +1 -1
- package/dist/{tool-approval-6E73C0r6.cjs → tool-approval-BfjoSNOC.cjs} +4 -4
- package/dist/{tool-approval-6E73C0r6.cjs.map → tool-approval-BfjoSNOC.cjs.map} +1 -1
- package/dist/{tool-approval-BXlro6fV.js → tool-approval-FeuyUUcL.js} +4 -4
- package/dist/{tool-approval-BXlro6fV.js.map → tool-approval-FeuyUUcL.js.map} +1 -1
- package/dist/{tool-call-CItJ8KLA.js → tool-call-BxYXs9w0.js} +9 -7
- package/dist/{tool-call-CItJ8KLA.js.map → tool-call-BxYXs9w0.js.map} +1 -1
- package/dist/{tool-call-Dq9xF3WD.cjs → tool-call-CvilN9ti.cjs} +9 -7
- package/dist/{tool-call-Dq9xF3WD.cjs.map → tool-call-CvilN9ti.cjs.map} +1 -1
- package/dist/{tool-card-o5u4YCR0.cjs → tool-card-B7O8AsRl.cjs} +9 -5
- package/dist/tool-card-B7O8AsRl.cjs.map +1 -0
- package/dist/{tool-card-Bd8weXze.js → tool-card-ELW898uw.js} +9 -5
- package/dist/tool-card-ELW898uw.js.map +1 -0
- package/dist/{tool-presentation-D2uUj1AB.cjs → tool-presentation-BLErsb7c.cjs} +38 -40
- package/dist/tool-presentation-BLErsb7c.cjs.map +1 -0
- package/dist/{tool-presentation-DKfIKLQy.js → tool-presentation-BSZYIWx2.js} +38 -40
- package/dist/tool-presentation-BSZYIWx2.js.map +1 -0
- package/dist/{trace-filters-C27yWcan.js → trace-filters-BJaebsxJ.js} +78 -11
- package/dist/trace-filters-BJaebsxJ.js.map +1 -0
- package/dist/{trace-filters-BpeBUjCb.cjs → trace-filters-BNEZ31HX.cjs} +100 -9
- package/dist/trace-filters-BNEZ31HX.cjs.map +1 -0
- package/dist/types-CP7wbYua.cjs.map +1 -1
- package/dist/types-DiiL5mTO.js.map +1 -1
- package/dist/utils/string.cjs.js +2 -1
- package/dist/utils/string.es.js +1 -1
- package/package.json +14 -14
- package/dist/Arrival-Dm6Vgn78.cjs.map +0 -1
- package/dist/Arrival-NpBOyV52.js.map +0 -1
- package/dist/DataList-Cmk08jUV.cjs.map +0 -1
- package/dist/DataList-Ve3omCXT.js.map +0 -1
- package/dist/DateTimeRangePicker-ByMbLdom.js.map +0 -1
- package/dist/DateTimeRangePicker-DGbH5WOn.cjs.map +0 -1
- package/dist/FilterBar-Dk3QEuT6.js.map +0 -1
- package/dist/FilterBar-gEvoWDXA.cjs.map +0 -1
- package/dist/MetricsCard-C9GWgT58.js.map +0 -1
- package/dist/MetricsCard-Dly_H3oX.cjs.map +0 -1
- package/dist/MetricsLineChart-2m4LVL1N.cjs.map +0 -1
- package/dist/MetricsLineChart-DKzuRU2q.js.map +0 -1
- package/dist/MetricsStackedBarChart-DJB4aByt.js.map +0 -1
- package/dist/MetricsStackedBarChart-NATtwA_W.cjs.map +0 -1
- package/dist/activity-QyLJcBKc.cjs.map +0 -1
- package/dist/activity-ihrl0JtH.js.map +0 -1
- package/dist/combobox-C-E7_q4j.cjs.map +0 -1
- package/dist/combobox-CDS2pBqz.js.map +0 -1
- package/dist/domains/metrics/components/metrics-kpis.cjs.js +0 -106
- package/dist/domains/metrics/components/metrics-kpis.cjs.js.map +0 -1
- package/dist/domains/metrics/components/metrics-kpis.d.ts +0 -1
- package/dist/domains/metrics/components/metrics-kpis.es.js +0 -105
- package/dist/domains/metrics/components/metrics-kpis.es.js.map +0 -1
- package/dist/filter-bar-chip-B3pgpngW.js.map +0 -1
- package/dist/filter-bar-chip-CyTAmjt6.cjs.map +0 -1
- package/dist/src/domains/metrics/components/metrics-kpis.d.ts +0 -2
- package/dist/src/ds/components/MetricsCard/metrics-card-description.d.ts +0 -4
- package/dist/src/ds/components/MetricsCard/metrics-card-summary.d.ts +0 -8
- package/dist/src/ds/components/MetricsCard/metrics-card-tabs.d.ts +0 -16
- package/dist/src/ds/components/MetricsCard/metrics-card-title-and-description.d.ts +0 -16
- package/dist/string-CymY0aJ9.cjs.map +0 -1
- package/dist/string-OAgeMRQ5.js.map +0 -1
- package/dist/tool-card-Bd8weXze.js.map +0 -1
- package/dist/tool-card-o5u4YCR0.cjs.map +0 -1
- package/dist/tool-presentation-D2uUj1AB.cjs.map +0 -1
- package/dist/tool-presentation-DKfIKLQy.js.map +0 -1
- package/dist/trace-filters-BpeBUjCb.cjs.map +0 -1
- package/dist/trace-filters-C27yWcan.js.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_domains_metrics_lib_metrics_buckets = require("../../metrics/lib/metrics-buckets.cjs.js");
|
|
3
|
+
const require_domains_dashboards_lib_answers = require("./answers.cjs.js");
|
|
4
|
+
// src/domains/dashboards/lib/scores.ts
|
|
5
|
+
/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */
|
|
6
|
+
var needsScorer = (query) => query?.source === "scores" && query.scorerId === void 0;
|
|
7
|
+
/** The scorer the view's queries name themselves, when none of them leaves it out. */
|
|
8
|
+
function ownScorers(queries) {
|
|
9
|
+
const own = queries.find((q) => q.source === "scores" && q.scorerId);
|
|
10
|
+
const scorerId = own?.source === "scores" ? own.scorerId : void 0;
|
|
11
|
+
return scorerId ? [{
|
|
12
|
+
scorerId,
|
|
13
|
+
name: scorerId
|
|
14
|
+
}] : [];
|
|
15
|
+
}
|
|
16
|
+
/** Every scorer among the recent scores, sorted by id, named as the scores name them. */
|
|
17
|
+
function discoveredScorers(scores) {
|
|
18
|
+
const names = new Map(scores.map((s) => [s.scorerId, s.scorerName ?? s.scorerId]));
|
|
19
|
+
return [...names.keys()].toSorted().map((scorerId) => ({
|
|
20
|
+
scorerId,
|
|
21
|
+
name: names.get(scorerId) ?? scorerId
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
/** The query for one scorer: its own scorer if it names one, else `scorerId`. */
|
|
25
|
+
var withScorer = (query, scorerId) => query?.source === "scores" && query.scorerId === void 0 ? {
|
|
26
|
+
...query,
|
|
27
|
+
scorerId
|
|
28
|
+
} : query;
|
|
29
|
+
/**
|
|
30
|
+
* Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's
|
|
31
|
+
* mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold
|
|
32
|
+
* one answer per scorer, in `scorers`' order.
|
|
33
|
+
*/
|
|
34
|
+
function shapeScores(scorers, means, points, window, stepHours) {
|
|
35
|
+
const buckets = require_domains_metrics_lib_metrics_buckets.bucketGrid(window.start, window.end, stepHours);
|
|
36
|
+
const indexOf = require_domains_metrics_lib_metrics_buckets.gridIndex(buckets, stepHours);
|
|
37
|
+
scorers.forEach(({ scorerId }, i) => {
|
|
38
|
+
for (const s of require_domains_dashboards_lib_answers.seriesOf(points[i]) ?? []) for (const p of s.points) {
|
|
39
|
+
const at = indexOf(p);
|
|
40
|
+
const bucket = at === void 0 ? void 0 : buckets[at];
|
|
41
|
+
if (bucket) bucket[scorerId] = p.value;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
return {
|
|
45
|
+
buckets,
|
|
46
|
+
lines: scorers.map((scorer, i) => ({
|
|
47
|
+
...scorer,
|
|
48
|
+
mean: require_domains_dashboards_lib_answers.valueOf(means[i])?.value ?? 0
|
|
49
|
+
}))
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
exports.discoveredScorers = discoveredScorers;
|
|
53
|
+
exports.needsScorer = needsScorer;
|
|
54
|
+
exports.ownScorers = ownScorers;
|
|
55
|
+
exports.shapeScores = shapeScores;
|
|
56
|
+
exports.withScorer = withScorer;
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=scores.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scores.cjs.js","names":["bucketGrid","gridIndex","seriesOf","valueOf"],"sources":["../../../../src/domains/dashboards/lib/scores.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, gridIndex } from '../../metrics/lib/metrics-buckets';\nimport { seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer } from './requests';\n\nexport type Scorer = { scorerId: string; name: string };\n\nexport type ScoresBucket = BucketLabels & Record<string, number | string | undefined>;\n\n/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */\nexport const needsScorer = (query: DashboardQuery | undefined) =>\n query?.source === 'scores' && query.scorerId === undefined;\n\n/** The scorer the view's queries name themselves, when none of them leaves it out. */\nexport function ownScorers(queries: DashboardQuery[]): Scorer[] {\n const own = queries.find(q => q.source === 'scores' && q.scorerId);\n const scorerId = own?.source === 'scores' ? own.scorerId : undefined;\n return scorerId ? [{ scorerId, name: scorerId }] : [];\n}\n\n/** Every scorer among the recent scores, sorted by id, named as the scores name them. */\nexport function discoveredScorers(scores: { scorerId: string; scorerName?: string }[]): Scorer[] {\n const names = new Map(scores.map(s => [s.scorerId, s.scorerName ?? s.scorerId]));\n return [...names.keys()].toSorted().map(scorerId => ({ scorerId, name: names.get(scorerId) ?? scorerId }));\n}\n\n/** The query for one scorer: its own scorer if it names one, else `scorerId`. */\nexport const withScorer = (query: DashboardQuery | undefined, scorerId: string): DashboardQuery | undefined =>\n query?.source === 'scores' && query.scorerId === undefined ? { ...query, scorerId } : query;\n\n/**\n * Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's\n * mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold\n * one answer per scorer, in `scorers`' order.\n */\nexport function shapeScores(\n scorers: Scorer[],\n means: (DashboardAnswer | undefined)[],\n points: (DashboardAnswer | undefined)[],\n window: { start: Date; end: Date },\n stepHours: number,\n) {\n const buckets: ScoresBucket[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(buckets, stepHours);\n scorers.forEach(({ scorerId }, i) => {\n for (const s of seriesOf(points[i]) ?? []) {\n for (const p of s.points) {\n const at = indexOf(p);\n const bucket = at === undefined ? undefined : buckets[at];\n if (bucket) bucket[scorerId] = p.value;\n }\n }\n });\n const lines = scorers.map((scorer, i) => ({ ...scorer, mean: valueOf(means[i])?.value ?? 0 }));\n return { buckets, lines };\n}\n"],"mappings":";;;;;AAWA,IAAa,eAAe,UAC1B,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA;;AAGnD,SAAgB,WAAW,SAAqC;CAC9D,MAAM,MAAM,QAAQ,MAAK,MAAK,EAAE,WAAW,YAAY,EAAE,QAAQ;CACjE,MAAM,WAAW,KAAK,WAAW,WAAW,IAAI,WAAW,KAAA;CAC3D,OAAO,WAAW,CAAC;EAAE;EAAU,MAAM;CAAS,CAAC,IAAI,CAAC;AACtD;;AAGA,SAAgB,kBAAkB,QAA+D;CAC/F,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;CAC/E,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,cAAa;EAAE;EAAU,MAAM,MAAM,IAAI,QAAQ,KAAK;CAAS,EAAE;AAC3G;;AAGA,IAAa,cAAc,OAAmC,aAC5D,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA,IAAY;CAAE,GAAG;CAAO;AAAS,IAAI;;;;;;AAOxF,SAAgB,YACd,SACA,OACA,QACA,QACA,WACA;CACA,MAAM,UAA0BA,4CAAAA,WAAW,OAAO,OAAO,OAAO,KAAK,SAAS;CAC9E,MAAM,UAAUC,4CAAAA,UAAU,SAAS,SAAS;CAC5C,QAAQ,SAAS,EAAE,YAAY,MAAM;EACnC,KAAK,MAAM,KAAKC,uCAAAA,SAAS,OAAO,EAAE,KAAK,CAAC,GACtC,KAAK,MAAM,KAAK,EAAE,QAAQ;GACxB,MAAM,KAAK,QAAQ,CAAC;GACpB,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,QAAQ;GACtD,IAAI,QAAQ,OAAO,YAAY,EAAE;EACnC;CAEJ,CAAC;CAED,OAAO;EAAE;EAAS,OADJ,QAAQ,KAAK,QAAQ,OAAO;GAAE,GAAG;GAAQ,MAAMC,uCAAAA,QAAQ,MAAM,EAAE,CAAC,EAAE,SAAS;EAAE,EACzE;CAAM;AAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../../src/domains/dashboards/lib/scores';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { bucketGrid, gridIndex } from "../../metrics/lib/metrics-buckets.es.js";
|
|
2
|
+
import { seriesOf, valueOf } from "./answers.es.js";
|
|
3
|
+
// src/domains/dashboards/lib/scores.ts
|
|
4
|
+
/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */
|
|
5
|
+
var needsScorer = (query) => query?.source === "scores" && query.scorerId === void 0;
|
|
6
|
+
/** The scorer the view's queries name themselves, when none of them leaves it out. */
|
|
7
|
+
function ownScorers(queries) {
|
|
8
|
+
const own = queries.find((q) => q.source === "scores" && q.scorerId);
|
|
9
|
+
const scorerId = own?.source === "scores" ? own.scorerId : void 0;
|
|
10
|
+
return scorerId ? [{
|
|
11
|
+
scorerId,
|
|
12
|
+
name: scorerId
|
|
13
|
+
}] : [];
|
|
14
|
+
}
|
|
15
|
+
/** Every scorer among the recent scores, sorted by id, named as the scores name them. */
|
|
16
|
+
function discoveredScorers(scores) {
|
|
17
|
+
const names = new Map(scores.map((s) => [s.scorerId, s.scorerName ?? s.scorerId]));
|
|
18
|
+
return [...names.keys()].toSorted().map((scorerId) => ({
|
|
19
|
+
scorerId,
|
|
20
|
+
name: names.get(scorerId) ?? scorerId
|
|
21
|
+
}));
|
|
22
|
+
}
|
|
23
|
+
/** The query for one scorer: its own scorer if it names one, else `scorerId`. */
|
|
24
|
+
var withScorer = (query, scorerId) => query?.source === "scores" && query.scorerId === void 0 ? {
|
|
25
|
+
...query,
|
|
26
|
+
scorerId
|
|
27
|
+
} : query;
|
|
28
|
+
/**
|
|
29
|
+
* Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's
|
|
30
|
+
* mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold
|
|
31
|
+
* one answer per scorer, in `scorers`' order.
|
|
32
|
+
*/
|
|
33
|
+
function shapeScores(scorers, means, points, window, stepHours) {
|
|
34
|
+
const buckets = bucketGrid(window.start, window.end, stepHours);
|
|
35
|
+
const indexOf = gridIndex(buckets, stepHours);
|
|
36
|
+
scorers.forEach(({ scorerId }, i) => {
|
|
37
|
+
for (const s of seriesOf(points[i]) ?? []) for (const p of s.points) {
|
|
38
|
+
const at = indexOf(p);
|
|
39
|
+
const bucket = at === void 0 ? void 0 : buckets[at];
|
|
40
|
+
if (bucket) bucket[scorerId] = p.value;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
buckets,
|
|
45
|
+
lines: scorers.map((scorer, i) => ({
|
|
46
|
+
...scorer,
|
|
47
|
+
mean: valueOf(means[i])?.value ?? 0
|
|
48
|
+
}))
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export { discoveredScorers, needsScorer, ownScorers, shapeScores, withScorer };
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=scores.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scores.es.js","names":[],"sources":["../../../../src/domains/dashboards/lib/scores.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, gridIndex } from '../../metrics/lib/metrics-buckets';\nimport { seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer } from './requests';\n\nexport type Scorer = { scorerId: string; name: string };\n\nexport type ScoresBucket = BucketLabels & Record<string, number | string | undefined>;\n\n/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */\nexport const needsScorer = (query: DashboardQuery | undefined) =>\n query?.source === 'scores' && query.scorerId === undefined;\n\n/** The scorer the view's queries name themselves, when none of them leaves it out. */\nexport function ownScorers(queries: DashboardQuery[]): Scorer[] {\n const own = queries.find(q => q.source === 'scores' && q.scorerId);\n const scorerId = own?.source === 'scores' ? own.scorerId : undefined;\n return scorerId ? [{ scorerId, name: scorerId }] : [];\n}\n\n/** Every scorer among the recent scores, sorted by id, named as the scores name them. */\nexport function discoveredScorers(scores: { scorerId: string; scorerName?: string }[]): Scorer[] {\n const names = new Map(scores.map(s => [s.scorerId, s.scorerName ?? s.scorerId]));\n return [...names.keys()].toSorted().map(scorerId => ({ scorerId, name: names.get(scorerId) ?? scorerId }));\n}\n\n/** The query for one scorer: its own scorer if it names one, else `scorerId`. */\nexport const withScorer = (query: DashboardQuery | undefined, scorerId: string): DashboardQuery | undefined =>\n query?.source === 'scores' && query.scorerId === undefined ? { ...query, scorerId } : query;\n\n/**\n * Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's\n * mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold\n * one answer per scorer, in `scorers`' order.\n */\nexport function shapeScores(\n scorers: Scorer[],\n means: (DashboardAnswer | undefined)[],\n points: (DashboardAnswer | undefined)[],\n window: { start: Date; end: Date },\n stepHours: number,\n) {\n const buckets: ScoresBucket[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(buckets, stepHours);\n scorers.forEach(({ scorerId }, i) => {\n for (const s of seriesOf(points[i]) ?? []) {\n for (const p of s.points) {\n const at = indexOf(p);\n const bucket = at === undefined ? undefined : buckets[at];\n if (bucket) bucket[scorerId] = p.value;\n }\n }\n });\n const lines = scorers.map((scorer, i) => ({ ...scorer, mean: valueOf(means[i])?.value ?? 0 }));\n return { buckets, lines };\n}\n"],"mappings":";;;;AAWA,IAAa,eAAe,UAC1B,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA;;AAGnD,SAAgB,WAAW,SAAqC;CAC9D,MAAM,MAAM,QAAQ,MAAK,MAAK,EAAE,WAAW,YAAY,EAAE,QAAQ;CACjE,MAAM,WAAW,KAAK,WAAW,WAAW,IAAI,WAAW,KAAA;CAC3D,OAAO,WAAW,CAAC;EAAE;EAAU,MAAM;CAAS,CAAC,IAAI,CAAC;AACtD;;AAGA,SAAgB,kBAAkB,QAA+D;CAC/F,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;CAC/E,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,cAAa;EAAE;EAAU,MAAM,MAAM,IAAI,QAAQ,KAAK;CAAS,EAAE;AAC3G;;AAGA,IAAa,cAAc,OAAmC,aAC5D,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA,IAAY;CAAE,GAAG;CAAO;AAAS,IAAI;;;;;;AAOxF,SAAgB,YACd,SACA,OACA,QACA,QACA,WACA;CACA,MAAM,UAA0B,WAAW,OAAO,OAAO,OAAO,KAAK,SAAS;CAC9E,MAAM,UAAU,UAAU,SAAS,SAAS;CAC5C,QAAQ,SAAS,EAAE,YAAY,MAAM;EACnC,KAAK,MAAM,KAAK,SAAS,OAAO,EAAE,KAAK,CAAC,GACtC,KAAK,MAAM,KAAK,EAAE,QAAQ;GACxB,MAAM,KAAK,QAAQ,CAAC;GACpB,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,QAAQ;GACtD,IAAI,QAAQ,OAAO,YAAY,EAAE;EACnC;CAEJ,CAAC;CAED,OAAO;EAAE;EAAS,OADJ,QAAQ,KAAK,QAAQ,OAAO;GAAE,GAAG;GAAQ,MAAM,QAAQ,MAAM,EAAE,CAAC,EAAE,SAAS;EAAE,EACzE;CAAM;AAC1B"}
|
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_domains_metrics_lib_chart_format = require("../../metrics/lib/chart-format.cjs.js");
|
|
3
|
+
const require_domains_dashboards_lib_answers = require("./answers.cjs.js");
|
|
4
|
+
const require_domains_dashboards_lib_values = require("./values.cjs.js");
|
|
5
|
+
let zod_v4 = require("zod/v4");
|
|
6
|
+
// src/domains/dashboards/lib/table.ts
|
|
7
|
+
/**
|
|
8
|
+
* The `table` kind: one row per group, joined across the view's queries on `groupBy`. Each column
|
|
9
|
+
* shows the row's name, a dimension, a value read from the row's answers, or a value's change
|
|
10
|
+
* against the previous window.
|
|
11
|
+
*/
|
|
12
|
+
var TRACK = String.raw`(?:auto|max-content|\d+(?:\.\d+)?(?:rem|fr))`;
|
|
13
|
+
/** A CSS grid track: `auto`, `max-content`, `12rem`, `3fr`, or `minmax()` of two of those. */
|
|
14
|
+
var widthSchema = zod_v4.z.string().regex(new RegExp(String.raw`^(?:${TRACK}|minmax\(\s*${TRACK}\s*,\s*${TRACK}\s*\))$`), "Expected auto, max-content, Nrem, Nfr or minmax(a, b) of those");
|
|
15
|
+
var shared = {
|
|
16
|
+
/** The header's tooltip. */
|
|
17
|
+
description: zod_v4.z.string().optional(),
|
|
18
|
+
width: widthSchema.optional(),
|
|
19
|
+
sortable: zod_v4.z.boolean().optional()
|
|
20
|
+
};
|
|
21
|
+
var nameColumnSchema = zod_v4.z.strictObject({
|
|
22
|
+
type: zod_v4.z.literal("name"),
|
|
23
|
+
/** `project` shows the host's name for a project id. */
|
|
24
|
+
as: zod_v4.z.literal("project").optional(),
|
|
25
|
+
/** What a row without a name reads as. Defaults to "Unnamed". */
|
|
26
|
+
unnamed: zod_v4.z.string().optional(),
|
|
27
|
+
/** Before the name: an entity's icon, or the provider logo with the name read as `provider › model`. */
|
|
28
|
+
mark: zod_v4.z.union([zod_v4.z.strictObject({ icon: zod_v4.z.enum([
|
|
29
|
+
"agent",
|
|
30
|
+
"workflow",
|
|
31
|
+
"tool"
|
|
32
|
+
]) }), zod_v4.z.strictObject({ providerDimension: zod_v4.z.string().min(1) })]).optional(),
|
|
33
|
+
...shared
|
|
34
|
+
});
|
|
35
|
+
var dimensionColumnSchema = zod_v4.z.strictObject({
|
|
36
|
+
type: zod_v4.z.literal("dimension"),
|
|
37
|
+
dimension: zod_v4.z.string().min(1),
|
|
38
|
+
as: zod_v4.z.literal("project").optional(),
|
|
39
|
+
/** A lookup: that query's `dimension`, matched on the row's `joinOn` dimension. */
|
|
40
|
+
query: require_domains_dashboards_lib_values.queryRefSchema.optional(),
|
|
41
|
+
joinOn: zod_v4.z.string().min(1).optional(),
|
|
42
|
+
...shared
|
|
43
|
+
});
|
|
44
|
+
var TABLE_VALUE_FORMATS = [
|
|
45
|
+
"count",
|
|
46
|
+
"usd",
|
|
47
|
+
"duration",
|
|
48
|
+
"percent"
|
|
49
|
+
];
|
|
50
|
+
var valueColumnSchema = zod_v4.z.strictObject({
|
|
51
|
+
type: zod_v4.z.literal("value"),
|
|
52
|
+
/** Refs read this row's entry in the query: a `measure` of an aggregate, or a group's `field`. */
|
|
53
|
+
value: require_domains_dashboards_lib_values.valueExprSchema,
|
|
54
|
+
format: zod_v4.z.enum(TABLE_VALUE_FORMATS),
|
|
55
|
+
/** The figure the table ranks by, in full tone; the others are muted. */
|
|
56
|
+
emphasis: zod_v4.z.boolean().optional(),
|
|
57
|
+
/** Shown when the row has no value, e.g. 0 for a count. */
|
|
58
|
+
missing: zod_v4.z.number().optional(),
|
|
59
|
+
/** A total: a dropped row shows 0, and a value with none before is "New". */
|
|
60
|
+
additive: zod_v4.z.boolean().optional(),
|
|
61
|
+
/** Which way % Change is good news. */
|
|
62
|
+
better: zod_v4.z.enum(["higher", "lower"]).optional(),
|
|
63
|
+
/** `usd` only: "Not priced" when the row has no value but this column's is above 0. */
|
|
64
|
+
unpricedWhen: zod_v4.z.string().min(1).optional(),
|
|
65
|
+
...shared
|
|
66
|
+
});
|
|
67
|
+
var changeColumnSchema = zod_v4.z.strictObject({
|
|
68
|
+
type: zod_v4.z.literal("change"),
|
|
69
|
+
description: zod_v4.z.string().optional()
|
|
70
|
+
});
|
|
71
|
+
var tableColumnOptionsSchema = zod_v4.z.discriminatedUnion("type", [
|
|
72
|
+
nameColumnSchema,
|
|
73
|
+
dimensionColumnSchema,
|
|
74
|
+
valueColumnSchema,
|
|
75
|
+
changeColumnSchema
|
|
76
|
+
]);
|
|
77
|
+
function columnOf(id, label, options) {
|
|
78
|
+
switch (options.type) {
|
|
79
|
+
case "name": return {
|
|
80
|
+
id,
|
|
81
|
+
label,
|
|
82
|
+
options
|
|
83
|
+
};
|
|
84
|
+
case "dimension": return {
|
|
85
|
+
id,
|
|
86
|
+
label,
|
|
87
|
+
options
|
|
88
|
+
};
|
|
89
|
+
case "value": return {
|
|
90
|
+
id,
|
|
91
|
+
label,
|
|
92
|
+
options
|
|
93
|
+
};
|
|
94
|
+
case "change": return {
|
|
95
|
+
id,
|
|
96
|
+
label,
|
|
97
|
+
options
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
var DRILLDOWN_FIELDS = [
|
|
102
|
+
"projectId",
|
|
103
|
+
"entityName",
|
|
104
|
+
"threadId",
|
|
105
|
+
"resourceId",
|
|
106
|
+
"environment",
|
|
107
|
+
"sessionId",
|
|
108
|
+
"userId",
|
|
109
|
+
"model",
|
|
110
|
+
"provider"
|
|
111
|
+
];
|
|
112
|
+
var tableOptionsSchema = zod_v4.z.strictObject({
|
|
113
|
+
/** The dimensions a row is keyed on; the last one names the row. */
|
|
114
|
+
groupBy: zod_v4.z.array(zod_v4.z.string().min(1)).min(1),
|
|
115
|
+
/** The starting sort, and where a third click on a header returns. */
|
|
116
|
+
defaultSort: zod_v4.z.strictObject({
|
|
117
|
+
column: zod_v4.z.string().min(1),
|
|
118
|
+
direction: zod_v4.z.enum(["asc", "desc"])
|
|
119
|
+
}),
|
|
120
|
+
/** Rows per page. Without it every row shows. */
|
|
121
|
+
pageSize: zod_v4.z.number().int().min(1).optional(),
|
|
122
|
+
emptyMessage: zod_v4.z.string(),
|
|
123
|
+
ariaLabel: zod_v4.z.string().optional(),
|
|
124
|
+
/** Leaves out rows without a name. */
|
|
125
|
+
hideUnnamed: zod_v4.z.boolean().optional(),
|
|
126
|
+
/** Lists groups active in the previous window but absent now, at zero. Defaults to on. */
|
|
127
|
+
dropped: zod_v4.z.boolean().optional(),
|
|
128
|
+
/** Opens on this view only once it has this many rows; otherwise on the next. */
|
|
129
|
+
openWhen: zod_v4.z.strictObject({ minRows: zod_v4.z.number().int().min(1) }).optional(),
|
|
130
|
+
/** What a row click adds to the view's `click` drilldown. */
|
|
131
|
+
rowDrilldown: zod_v4.z.strictObject({
|
|
132
|
+
/** Row dimension → drilldown field. Empty values are left out. */
|
|
133
|
+
fields: zod_v4.z.record(zod_v4.z.string(), zod_v4.z.enum(DRILLDOWN_FIELDS)),
|
|
134
|
+
/** Set: `entityName` goes in as a filter on spans of these types. */
|
|
135
|
+
spanTypes: zod_v4.z.array(zod_v4.z.string().min(1)).min(1).optional(),
|
|
136
|
+
/** The row's name goes in even when empty. */
|
|
137
|
+
keepEmpty: zod_v4.z.boolean().optional()
|
|
138
|
+
}).optional()
|
|
139
|
+
});
|
|
140
|
+
/** The view's columns with their options parsed; `issues` reports what doesn't parse. */
|
|
141
|
+
function parseColumns(columns) {
|
|
142
|
+
const parsed = [];
|
|
143
|
+
const issues = [];
|
|
144
|
+
for (const [i, column] of (columns ?? []).entries()) {
|
|
145
|
+
const options = tableColumnOptionsSchema.safeParse(column.options ?? {});
|
|
146
|
+
if (!options.success) {
|
|
147
|
+
const issue = options.error.issues[0];
|
|
148
|
+
const path = issue?.path.length ? `.${issue.path.join(".")}` : "";
|
|
149
|
+
issues.push(`columns.${i}.options${path}: ${issue?.message ?? "invalid"}`);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
parsed.push(columnOf(column.id, column.label ?? "", options.data));
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
columns: parsed,
|
|
156
|
+
issues
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
var isValueColumn = (column) => column.options.type === "value";
|
|
160
|
+
/** What the schema can't say: columns that name each other and queries the view has. */
|
|
161
|
+
function tableIssues(columns, options, queries) {
|
|
162
|
+
const parsed = parseColumns(columns);
|
|
163
|
+
const issues = [...parsed.issues];
|
|
164
|
+
const byId = new Map(parsed.columns.map((c) => [c.id, c]));
|
|
165
|
+
if (!parsed.columns.filter(isValueColumn).length) issues.push("columns: a table needs a value column");
|
|
166
|
+
if (columns && !columns.some((c) => c.id === options.defaultSort.column)) issues.push(`options.defaultSort: no column '${options.defaultSort.column}'`);
|
|
167
|
+
const read = [];
|
|
168
|
+
for (const column of parsed.columns) {
|
|
169
|
+
const o = column.options;
|
|
170
|
+
if (o.type === "value") {
|
|
171
|
+
read.push(...require_domains_dashboards_lib_values.exprRefs(o.value).map((r) => r.query));
|
|
172
|
+
if (o.unpricedWhen !== void 0 && !(byId.get(o.unpricedWhen)?.options.type === "value")) issues.push(`columns: '${column.id}' is unpriced by '${o.unpricedWhen}', which isn't a value column`);
|
|
173
|
+
}
|
|
174
|
+
if (o.type === "dimension") {
|
|
175
|
+
if (o.query === void 0 !== (o.joinOn === void 0)) issues.push(`columns: '${column.id}' needs both 'query' and 'joinOn', or neither`);
|
|
176
|
+
if (o.query !== void 0) read.push(o.query);
|
|
177
|
+
const own = o.joinOn ?? o.dimension;
|
|
178
|
+
if (!options.groupBy.includes(own)) issues.push(`columns: '${column.id}' reads '${own}', which rows aren't keyed on`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
issues.push(...require_domains_dashboards_lib_values.unknownQueryIssues(read, queries, "columns"));
|
|
182
|
+
return issues;
|
|
183
|
+
}
|
|
184
|
+
var text = (value) => value == null ? "" : String(value);
|
|
185
|
+
var finite = (value) => typeof value === "number" && Number.isFinite(value) ? value : void 0;
|
|
186
|
+
/** A row's key: its `groupBy` values, kept apart however they're spelled. */
|
|
187
|
+
var rowKey = (values) => JSON.stringify(values);
|
|
188
|
+
var keyValues = (key) => {
|
|
189
|
+
const parsed = JSON.parse(key);
|
|
190
|
+
return Array.isArray(parsed) ? parsed.map(text) : [];
|
|
191
|
+
};
|
|
192
|
+
function entries(answer, groupBy) {
|
|
193
|
+
const groups = require_domains_dashboards_lib_answers.groupsOf(answer);
|
|
194
|
+
if (groups) return groups.map((g) => ({
|
|
195
|
+
key: rowKey(groupBy.map((d) => text(g.dimensions[d]))),
|
|
196
|
+
dimensions: g.dimensions,
|
|
197
|
+
read: (ref) => ref.field === "estimatedCost" ? g.estimatedCost ?? void 0 : g.value,
|
|
198
|
+
costUnit: g.costUnit ?? void 0
|
|
199
|
+
}));
|
|
200
|
+
return (require_domains_dashboards_lib_answers.rowsOf(answer)?.rows ?? []).map((r) => ({
|
|
201
|
+
key: rowKey(groupBy.map((d) => text(r.dimensions?.[d]))),
|
|
202
|
+
dimensions: r.dimensions ?? {},
|
|
203
|
+
read: (ref) => ref.measure ? finite(require_domains_dashboards_lib_answers.measureOf(r.measures, ref.measure)) : void 0
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
/** The queries rows come from, in the view's order: those a value column reads. */
|
|
207
|
+
function rowQueries(columns, queries) {
|
|
208
|
+
const read = new Set(columns.filter(isValueColumn).flatMap((c) => require_domains_dashboards_lib_values.exprRefs(c.options.value).map((r) => r.query)));
|
|
209
|
+
return queries.flatMap((q) => q.id !== void 0 && read.has(q.id) ? [q.id] : []);
|
|
210
|
+
}
|
|
211
|
+
function newRow(key, groupBy) {
|
|
212
|
+
const values = keyValues(key);
|
|
213
|
+
return {
|
|
214
|
+
key,
|
|
215
|
+
dimensions: Object.fromEntries(groupBy.map((d, i) => [d, values[i] ?? ""])),
|
|
216
|
+
name: values[values.length - 1] ?? "",
|
|
217
|
+
values: {},
|
|
218
|
+
units: {},
|
|
219
|
+
lookups: {}
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
/** Each row-query's entries by row key. */
|
|
223
|
+
function indexEntries(ids, answers, groupBy) {
|
|
224
|
+
return new Map(ids.map((id) => [id, new Map(entries(answers.get(id), groupBy).map((e) => [e.key, e]))]));
|
|
225
|
+
}
|
|
226
|
+
var readAt = (indexed, key) => (ref) => indexed.get(ref.query)?.get(key)?.read(ref);
|
|
227
|
+
/**
|
|
228
|
+
* The rows: one per group in any query a value column reads, created in the view's query order, then
|
|
229
|
+
* each column's value read from the row's entries. A lookup column fills in by its `joinOn` dimension.
|
|
230
|
+
*/
|
|
231
|
+
function buildTableRows(options, columns, queries, answers) {
|
|
232
|
+
const { groupBy } = options;
|
|
233
|
+
const ids = rowQueries(columns, queries);
|
|
234
|
+
const indexed = indexEntries(ids, answers, groupBy);
|
|
235
|
+
const rows = /* @__PURE__ */ new Map();
|
|
236
|
+
for (const id of ids) for (const key of indexed.get(id)?.keys() ?? []) if (!rows.has(key)) rows.set(key, newRow(key, groupBy));
|
|
237
|
+
const lookups = columns.flatMap((c) => {
|
|
238
|
+
const o = c.options;
|
|
239
|
+
if (o.type !== "dimension" || o.query === void 0 || o.joinOn === void 0) return [];
|
|
240
|
+
const named = /* @__PURE__ */ new Map();
|
|
241
|
+
for (const entry of entries(answers.get(o.query), groupBy)) {
|
|
242
|
+
const value = text(entry.dimensions[o.dimension]);
|
|
243
|
+
if (value) named.set(text(entry.dimensions[o.joinOn]), value);
|
|
244
|
+
}
|
|
245
|
+
return [{
|
|
246
|
+
id: c.id,
|
|
247
|
+
joinOn: o.joinOn,
|
|
248
|
+
named
|
|
249
|
+
}];
|
|
250
|
+
});
|
|
251
|
+
for (const row of rows.values()) {
|
|
252
|
+
const read = readAt(indexed, row.key);
|
|
253
|
+
for (const column of columns.filter(isValueColumn)) {
|
|
254
|
+
const value = require_domains_dashboards_lib_values.evaluate(column.options.value, read);
|
|
255
|
+
row.values[column.id] = value ?? column.options.missing;
|
|
256
|
+
if (column.options.format === "usd" && value !== void 0) {
|
|
257
|
+
const [ref] = require_domains_dashboards_lib_values.exprRefs(column.options.value);
|
|
258
|
+
row.units[column.id] = ref ? indexed.get(ref.query)?.get(row.key)?.costUnit : void 0;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
for (const lookup of lookups) row.lookups[lookup.id] = lookup.named.get(row.dimensions[lookup.joinOn] ?? "");
|
|
262
|
+
}
|
|
263
|
+
return [...rows.values()];
|
|
264
|
+
}
|
|
265
|
+
/** The previous window's values per row key, read the same way. */
|
|
266
|
+
function previousTableValues(options, columns, queries, answers) {
|
|
267
|
+
const ids = rowQueries(columns, queries);
|
|
268
|
+
const indexed = indexEntries(ids, answers, options.groupBy);
|
|
269
|
+
const previous = /* @__PURE__ */ new Map();
|
|
270
|
+
for (const id of ids) for (const key of indexed.get(id)?.keys() ?? []) {
|
|
271
|
+
if (previous.has(key)) continue;
|
|
272
|
+
const read = readAt(indexed, key);
|
|
273
|
+
previous.set(key, Object.fromEntries(columns.filter(isValueColumn).map((c) => [c.id, require_domains_dashboards_lib_values.evaluate(c.options.value, read)])));
|
|
274
|
+
}
|
|
275
|
+
return previous;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* The rows to list: unnamed ones left out when asked, and, when the list is whole, a row at zero for
|
|
279
|
+
* each group a total was above 0 for in the previous window but that has no row now.
|
|
280
|
+
*/
|
|
281
|
+
function listedRows(options, columns, built, previous, truncated) {
|
|
282
|
+
const named = (rows) => options.hideUnnamed ? rows.filter((r) => r.name !== "") : rows;
|
|
283
|
+
if (options.dropped === false || !previous || truncated) return named(built);
|
|
284
|
+
const values = columns.filter(isValueColumn);
|
|
285
|
+
const totals = values.filter((c) => c.options.additive);
|
|
286
|
+
const listed = new Set(built.map((r) => r.key));
|
|
287
|
+
const dropped = [];
|
|
288
|
+
for (const [key, before] of previous) {
|
|
289
|
+
if (listed.has(key) || !totals.some((c) => (before[c.id] ?? 0) > 0)) continue;
|
|
290
|
+
const row = newRow(key, options.groupBy);
|
|
291
|
+
for (const c of values) row.values[c.id] = c.options.additive && before[c.id] !== void 0 ? 0 : c.options.missing;
|
|
292
|
+
dropped.push(row);
|
|
293
|
+
}
|
|
294
|
+
return named([...built, ...dropped]);
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* What the table lists once its row queries answer. `current` and `previous` hold one answer per
|
|
298
|
+
* query, in the view's order; leave `previous` out until the previous window has settled.
|
|
299
|
+
*/
|
|
300
|
+
function tableContent(options, columns, queries, current, previous) {
|
|
301
|
+
const rowIds = new Set(rowQueries(columns, queries));
|
|
302
|
+
const capped = queries.find((q, i) => q.id !== void 0 && rowIds.has(q.id) && require_domains_dashboards_lib_answers.rowsOf(current[i])?.truncated === true);
|
|
303
|
+
const truncated = capped !== void 0;
|
|
304
|
+
const built = buildTableRows(options, columns, queries, require_domains_dashboards_lib_values.answersById(queries, current));
|
|
305
|
+
const before = previous && previousTableValues(options, columns, queries, require_domains_dashboards_lib_values.answersById(queries, previous));
|
|
306
|
+
return {
|
|
307
|
+
rows: listedRows(options, columns, built, before, truncated),
|
|
308
|
+
before,
|
|
309
|
+
truncated,
|
|
310
|
+
limit: capped && "limit" in capped ? capped.limit : void 0
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Groups whose value in `column` is above zero, once the requests of every query it reads answer.
|
|
315
|
+
* `answers` holds one answer per query, in order.
|
|
316
|
+
*/
|
|
317
|
+
function countRows(options, column, queries, answers) {
|
|
318
|
+
if (answers.length < queries.length || answers.some((a) => a === void 0)) return "loading";
|
|
319
|
+
return buildTableRows(options, [column], queries, require_domains_dashboards_lib_values.answersById(queries, answers)).filter((r) => (r.values[column.id] ?? 0) > 0).length;
|
|
320
|
+
}
|
|
321
|
+
/** How a row's value in `column` moved against the previous window. */
|
|
322
|
+
function valueChange(column, now, before) {
|
|
323
|
+
if (now === void 0) return { isNew: false };
|
|
324
|
+
if (before === void 0) return { isNew: column.options.additive === true && now > 0 };
|
|
325
|
+
const delta = now - before;
|
|
326
|
+
return {
|
|
327
|
+
delta,
|
|
328
|
+
change: column.options.format === "percent" ? delta : before > 0 ? delta / before : void 0,
|
|
329
|
+
isNew: false
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
function changeTrend(change, column) {
|
|
333
|
+
const { better } = column.options;
|
|
334
|
+
if (!better || change.delta === void 0 || change.delta === 0) return void 0;
|
|
335
|
+
return change.delta > 0 === (better === "higher") ? "good" : "bad";
|
|
336
|
+
}
|
|
337
|
+
var DASH = "—";
|
|
338
|
+
function formatChange(change, column) {
|
|
339
|
+
const points = column.options.format === "percent";
|
|
340
|
+
if (change.isNew) return "New";
|
|
341
|
+
if (change.change === void 0) return "—";
|
|
342
|
+
if (change.change === 0) return points ? "0 pt" : "0%";
|
|
343
|
+
const sign = change.change > 0 ? "+" : "−";
|
|
344
|
+
const size = Math.abs(change.change);
|
|
345
|
+
if (!points) return `${sign}${require_domains_metrics_lib_chart_format.formatPercent(size)}`;
|
|
346
|
+
return size < 5e-4 ? `${sign}<0.1 pt` : `${sign}${(size * 100).toFixed(1)} pt`;
|
|
347
|
+
}
|
|
348
|
+
/** A value in its column's format; dollars unless the answer names another currency. */
|
|
349
|
+
function formatValue(column, value, unit) {
|
|
350
|
+
switch (column.options.format) {
|
|
351
|
+
case "usd": return unit && unit.toUpperCase() !== "USD" ? `${require_domains_metrics_lib_chart_format.formatCount(value)} ${unit}` : require_domains_metrics_lib_chart_format.formatUsd(value);
|
|
352
|
+
case "duration": return require_domains_metrics_lib_chart_format.formatDuration(value);
|
|
353
|
+
case "percent": return require_domains_metrics_lib_chart_format.formatPercent(value);
|
|
354
|
+
default: return require_domains_metrics_lib_chart_format.formatCount(value);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
/** What a row click adds: its dimensions as drilldown fields; an entity name as a span filter when asked. */
|
|
358
|
+
function rowDrilldown(options, row) {
|
|
359
|
+
const drill = options.rowDrilldown;
|
|
360
|
+
if (!drill) return {};
|
|
361
|
+
const nameDimension = options.groupBy[options.groupBy.length - 1];
|
|
362
|
+
const scope = {};
|
|
363
|
+
for (const [dimension, field] of Object.entries(drill.fields)) {
|
|
364
|
+
const value = row.dimensions[dimension] ?? "";
|
|
365
|
+
if (!value && !(drill.keepEmpty && dimension === nameDimension)) continue;
|
|
366
|
+
if (field === "entityName" && drill.spanTypes) scope.span = {
|
|
367
|
+
spanTypes: drill.spanTypes,
|
|
368
|
+
entityName: value
|
|
369
|
+
};
|
|
370
|
+
else scope[field] = value;
|
|
371
|
+
}
|
|
372
|
+
return scope;
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* The view a table opens on. Without an `openWhen` view, the first. The `openWhen` view opens while
|
|
376
|
+
* its rows load, so the tabs don't jump, and once it has `minRows` of them; it's passed over when it
|
|
377
|
+
* can't count them or has too few.
|
|
378
|
+
*/
|
|
379
|
+
function openingView(views, rows) {
|
|
380
|
+
const opener = views.findIndex((v) => v.options.openWhen);
|
|
381
|
+
if (opener < 0) return 0;
|
|
382
|
+
const next = (opener + 1) % views.length;
|
|
383
|
+
if (rows === "uncountable") return next;
|
|
384
|
+
if (rows === "loading") return opener;
|
|
385
|
+
return rows >= (views[opener]?.options.openWhen?.minRows ?? 0) ? opener : next;
|
|
386
|
+
}
|
|
387
|
+
exports.DASH = DASH;
|
|
388
|
+
exports.DRILLDOWN_FIELDS = DRILLDOWN_FIELDS;
|
|
389
|
+
exports.TABLE_VALUE_FORMATS = TABLE_VALUE_FORMATS;
|
|
390
|
+
exports.buildTableRows = buildTableRows;
|
|
391
|
+
exports.changeTrend = changeTrend;
|
|
392
|
+
exports.countRows = countRows;
|
|
393
|
+
exports.formatChange = formatChange;
|
|
394
|
+
exports.formatValue = formatValue;
|
|
395
|
+
exports.isValueColumn = isValueColumn;
|
|
396
|
+
exports.listedRows = listedRows;
|
|
397
|
+
exports.openingView = openingView;
|
|
398
|
+
exports.parseColumns = parseColumns;
|
|
399
|
+
exports.previousTableValues = previousTableValues;
|
|
400
|
+
exports.rowDrilldown = rowDrilldown;
|
|
401
|
+
exports.rowQueries = rowQueries;
|
|
402
|
+
exports.tableColumnOptionsSchema = tableColumnOptionsSchema;
|
|
403
|
+
exports.tableContent = tableContent;
|
|
404
|
+
exports.tableIssues = tableIssues;
|
|
405
|
+
exports.tableOptionsSchema = tableOptionsSchema;
|
|
406
|
+
exports.valueChange = valueChange;
|
|
407
|
+
|
|
408
|
+
//# sourceMappingURL=table.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.cjs.js","names":["z","queryRefSchema","valueExprSchema","exprRefs","unknownQueryIssues","groupsOf","rowsOf","measureOf","evaluate","answersById","formatPercent","formatCount","formatUsd","formatDuration"],"sources":["../../../../src/domains/dashboards/lib/table.ts"],"sourcesContent":["import type { DashboardColumn, DashboardQuery } from '@mastra/client-js';\nimport { z } from 'zod/v4';\nimport type { DrilldownScope } from '../../metrics/drilldown';\nimport { formatCount, formatDuration, formatPercent, formatUsd } from '../../metrics/lib/chart-format';\nimport { groupsOf, measureOf, rowsOf } from './answers';\nimport type { DashboardAnswer } from './requests';\nimport { answersById, evaluate, exprRefs, queryRefSchema, unknownQueryIssues, valueExprSchema } from './values';\nimport type { ValueRef } from './values';\n\n/**\n * The `table` kind: one row per group, joined across the view's queries on `groupBy`. Each column\n * shows the row's name, a dimension, a value read from the row's answers, or a value's change\n * against the previous window.\n */\n\nconst TRACK = String.raw`(?:auto|max-content|\\d+(?:\\.\\d+)?(?:rem|fr))`;\n/** A CSS grid track: `auto`, `max-content`, `12rem`, `3fr`, or `minmax()` of two of those. */\nconst widthSchema = z\n .string()\n .regex(\n new RegExp(String.raw`^(?:${TRACK}|minmax\\(\\s*${TRACK}\\s*,\\s*${TRACK}\\s*\\))$`),\n 'Expected auto, max-content, Nrem, Nfr or minmax(a, b) of those',\n );\n\nconst shared = {\n /** The header's tooltip. */\n description: z.string().optional(),\n width: widthSchema.optional(),\n sortable: z.boolean().optional(),\n};\n\nconst nameColumnSchema = z.strictObject({\n type: z.literal('name'),\n /** `project` shows the host's name for a project id. */\n as: z.literal('project').optional(),\n /** What a row without a name reads as. Defaults to \"Unnamed\". */\n unnamed: z.string().optional(),\n /** Before the name: an entity's icon, or the provider logo with the name read as `provider › model`. */\n mark: z\n .union([\n z.strictObject({ icon: z.enum(['agent', 'workflow', 'tool']) }),\n z.strictObject({ providerDimension: z.string().min(1) }),\n ])\n .optional(),\n ...shared,\n});\n\nconst dimensionColumnSchema = z.strictObject({\n type: z.literal('dimension'),\n dimension: z.string().min(1),\n as: z.literal('project').optional(),\n /** A lookup: that query's `dimension`, matched on the row's `joinOn` dimension. */\n query: queryRefSchema.optional(),\n joinOn: z.string().min(1).optional(),\n ...shared,\n});\n\nexport const TABLE_VALUE_FORMATS = ['count', 'usd', 'duration', 'percent'] as const;\n\nconst valueColumnSchema = z.strictObject({\n type: z.literal('value'),\n /** Refs read this row's entry in the query: a `measure` of an aggregate, or a group's `field`. */\n value: valueExprSchema,\n format: z.enum(TABLE_VALUE_FORMATS),\n /** The figure the table ranks by, in full tone; the others are muted. */\n emphasis: z.boolean().optional(),\n /** Shown when the row has no value, e.g. 0 for a count. */\n missing: z.number().optional(),\n /** A total: a dropped row shows 0, and a value with none before is \"New\". */\n additive: z.boolean().optional(),\n /** Which way % Change is good news. */\n better: z.enum(['higher', 'lower']).optional(),\n /** `usd` only: \"Not priced\" when the row has no value but this column's is above 0. */\n unpricedWhen: z.string().min(1).optional(),\n ...shared,\n});\n\nconst changeColumnSchema = z.strictObject({\n type: z.literal('change'),\n description: z.string().optional(),\n});\n\nexport const tableColumnOptionsSchema = z.discriminatedUnion('type', [\n nameColumnSchema,\n dimensionColumnSchema,\n valueColumnSchema,\n changeColumnSchema,\n]);\n\nexport type TableColumnOptions = z.infer<typeof tableColumnOptionsSchema>;\ntype ColumnOf<O extends TableColumnOptions> = { id: string; label: string; options: O };\n/** A column, told apart by `options.type`. */\nexport type TableColumn = {\n [T in TableColumnOptions['type']]: ColumnOf<Extract<TableColumnOptions, { type: T }>>;\n}[TableColumnOptions['type']];\nexport type ValueColumn = Extract<TableColumn, { options: { type: 'value' } }>;\n\nfunction columnOf(id: string, label: string, options: TableColumnOptions): TableColumn {\n switch (options.type) {\n case 'name':\n return { id, label, options };\n case 'dimension':\n return { id, label, options };\n case 'value':\n return { id, label, options };\n case 'change':\n return { id, label, options };\n }\n}\n\nexport const DRILLDOWN_FIELDS = [\n 'projectId',\n 'entityName',\n 'threadId',\n 'resourceId',\n 'environment',\n 'sessionId',\n 'userId',\n 'model',\n 'provider',\n] as const;\n\nexport const tableOptionsSchema = z.strictObject({\n /** The dimensions a row is keyed on; the last one names the row. */\n groupBy: z.array(z.string().min(1)).min(1),\n /** The starting sort, and where a third click on a header returns. */\n defaultSort: z.strictObject({ column: z.string().min(1), direction: z.enum(['asc', 'desc']) }),\n /** Rows per page. Without it every row shows. */\n pageSize: z.number().int().min(1).optional(),\n emptyMessage: z.string(),\n ariaLabel: z.string().optional(),\n /** Leaves out rows without a name. */\n hideUnnamed: z.boolean().optional(),\n /** Lists groups active in the previous window but absent now, at zero. Defaults to on. */\n dropped: z.boolean().optional(),\n /** Opens on this view only once it has this many rows; otherwise on the next. */\n openWhen: z.strictObject({ minRows: z.number().int().min(1) }).optional(),\n /** What a row click adds to the view's `click` drilldown. */\n rowDrilldown: z\n .strictObject({\n /** Row dimension → drilldown field. Empty values are left out. */\n fields: z.record(z.string(), z.enum(DRILLDOWN_FIELDS)),\n /** Set: `entityName` goes in as a filter on spans of these types. */\n spanTypes: z.array(z.string().min(1)).min(1).optional(),\n /** The row's name goes in even when empty. */\n keepEmpty: z.boolean().optional(),\n })\n .optional(),\n});\n\nexport type TableOptions = z.infer<typeof tableOptionsSchema>;\n\n/** The view's columns with their options parsed; `issues` reports what doesn't parse. */\nexport function parseColumns(columns: readonly DashboardColumn[] | undefined): {\n columns: TableColumn[];\n issues: string[];\n} {\n const parsed: TableColumn[] = [];\n const issues: string[] = [];\n for (const [i, column] of (columns ?? []).entries()) {\n const options = tableColumnOptionsSchema.safeParse(column.options ?? {});\n if (!options.success) {\n const issue = options.error.issues[0];\n const path = issue?.path.length ? `.${issue.path.join('.')}` : '';\n issues.push(`columns.${i}.options${path}: ${issue?.message ?? 'invalid'}`);\n continue;\n }\n parsed.push(columnOf(column.id, column.label ?? '', options.data));\n }\n return { columns: parsed, issues };\n}\n\nexport const isValueColumn = (column: TableColumn): column is ValueColumn => column.options.type === 'value';\n\n/** What the schema can't say: columns that name each other and queries the view has. */\nexport function tableIssues(\n columns: readonly DashboardColumn[] | undefined,\n options: TableOptions,\n queries: readonly DashboardQuery[],\n): string[] {\n const parsed = parseColumns(columns);\n const issues = [...parsed.issues];\n const byId = new Map(parsed.columns.map(c => [c.id, c]));\n const values = parsed.columns.filter(isValueColumn);\n if (!values.length) issues.push('columns: a table needs a value column');\n if (columns && !columns.some(c => c.id === options.defaultSort.column))\n issues.push(`options.defaultSort: no column '${options.defaultSort.column}'`);\n const read: string[] = [];\n for (const column of parsed.columns) {\n const o = column.options;\n if (o.type === 'value') {\n read.push(...exprRefs(o.value).map(r => r.query));\n if (o.unpricedWhen !== undefined && !(byId.get(o.unpricedWhen)?.options.type === 'value'))\n issues.push(`columns: '${column.id}' is unpriced by '${o.unpricedWhen}', which isn't a value column`);\n }\n if (o.type === 'dimension') {\n if ((o.query === undefined) !== (o.joinOn === undefined))\n issues.push(`columns: '${column.id}' needs both 'query' and 'joinOn', or neither`);\n if (o.query !== undefined) read.push(o.query);\n const own = o.joinOn ?? o.dimension;\n if (!options.groupBy.includes(own))\n issues.push(`columns: '${column.id}' reads '${own}', which rows aren't keyed on`);\n }\n }\n issues.push(...unknownQueryIssues(read, queries, 'columns'));\n return issues;\n}\n\ntype Entry = {\n key: string;\n dimensions: Record<string, unknown>;\n read: (ref: ValueRef) => number | undefined;\n costUnit?: string;\n};\n\nconst text = (value: unknown) => (value == null ? '' : String(value));\nconst finite = (value: unknown) => (typeof value === 'number' && Number.isFinite(value) ? value : undefined);\n/** A row's key: its `groupBy` values, kept apart however they're spelled. */\nconst rowKey = (values: string[]) => JSON.stringify(values);\nconst keyValues = (key: string): string[] => {\n const parsed: unknown = JSON.parse(key);\n return Array.isArray(parsed) ? parsed.map(text) : [];\n};\n\nfunction entries(answer: DashboardAnswer | undefined, groupBy: readonly string[]): Entry[] {\n const groups = groupsOf(answer);\n if (groups) {\n return groups.map(g => ({\n key: rowKey(groupBy.map(d => text(g.dimensions[d]))),\n dimensions: g.dimensions,\n read: ref => (ref.field === 'estimatedCost' ? (g.estimatedCost ?? undefined) : g.value),\n costUnit: g.costUnit ?? undefined,\n }));\n }\n return (rowsOf(answer)?.rows ?? []).map(r => ({\n key: rowKey(groupBy.map(d => text(r.dimensions?.[d]))),\n dimensions: r.dimensions ?? {},\n read: ref => (ref.measure ? finite(measureOf(r.measures, ref.measure)) : undefined),\n }));\n}\n\nexport type TableRow = {\n key: string;\n /** The row's `groupBy` values. */\n dimensions: Record<string, string>;\n /** The last `groupBy` value; `''` when the group has none. */\n name: string;\n /** Per value column. */\n values: Record<string, number | undefined>;\n /** Per `usd` column, when the answer names a currency. */\n units: Record<string, string | undefined>;\n /** Per lookup column. */\n lookups: Record<string, string | undefined>;\n};\n\ntype Answers = ReadonlyMap<string, DashboardAnswer | undefined>;\n\n/** The queries rows come from, in the view's order: those a value column reads. */\nexport function rowQueries(columns: TableColumn[], queries: readonly DashboardQuery[]) {\n const read = new Set(columns.filter(isValueColumn).flatMap(c => exprRefs(c.options.value).map(r => r.query)));\n return queries.flatMap(q => (q.id !== undefined && read.has(q.id) ? [q.id] : []));\n}\n\nfunction newRow(key: string, groupBy: readonly string[]): TableRow {\n const values = keyValues(key);\n return {\n key,\n dimensions: Object.fromEntries(groupBy.map((d, i) => [d, values[i] ?? ''])),\n name: values[values.length - 1] ?? '',\n values: {},\n units: {},\n lookups: {},\n };\n}\n\n/** Each row-query's entries by row key. */\nfunction indexEntries(ids: string[], answers: Answers, groupBy: readonly string[]) {\n return new Map(ids.map(id => [id, new Map(entries(answers.get(id), groupBy).map(e => [e.key, e]))]));\n}\n\nconst readAt = (indexed: Map<string, Map<string, Entry>>, key: string) => (ref: ValueRef) =>\n indexed.get(ref.query)?.get(key)?.read(ref);\n\n/**\n * The rows: one per group in any query a value column reads, created in the view's query order, then\n * each column's value read from the row's entries. A lookup column fills in by its `joinOn` dimension.\n */\nexport function buildTableRows(\n options: TableOptions,\n columns: TableColumn[],\n queries: readonly DashboardQuery[],\n answers: Answers,\n): TableRow[] {\n const { groupBy } = options;\n const ids = rowQueries(columns, queries);\n const indexed = indexEntries(ids, answers, groupBy);\n const rows = new Map<string, TableRow>();\n for (const id of ids) {\n for (const key of indexed.get(id)?.keys() ?? []) if (!rows.has(key)) rows.set(key, newRow(key, groupBy));\n }\n\n const lookups = columns.flatMap(c => {\n const o = c.options;\n if (o.type !== 'dimension' || o.query === undefined || o.joinOn === undefined) return [];\n const named = new Map<string, string>();\n for (const entry of entries(answers.get(o.query), groupBy)) {\n const value = text(entry.dimensions[o.dimension]);\n if (value) named.set(text(entry.dimensions[o.joinOn]), value);\n }\n return [{ id: c.id, joinOn: o.joinOn, named }];\n });\n\n for (const row of rows.values()) {\n const read = readAt(indexed, row.key);\n for (const column of columns.filter(isValueColumn)) {\n const value = evaluate(column.options.value, read);\n row.values[column.id] = value ?? column.options.missing;\n if (column.options.format === 'usd' && value !== undefined) {\n const [ref] = exprRefs(column.options.value);\n row.units[column.id] = ref ? indexed.get(ref.query)?.get(row.key)?.costUnit : undefined;\n }\n }\n for (const lookup of lookups) row.lookups[lookup.id] = lookup.named.get(row.dimensions[lookup.joinOn] ?? '');\n }\n return [...rows.values()];\n}\n\nexport type PreviousValues = Map<string, Record<string, number | undefined>>;\n\n/** The previous window's values per row key, read the same way. */\nexport function previousTableValues(\n options: TableOptions,\n columns: TableColumn[],\n queries: readonly DashboardQuery[],\n answers: Answers,\n): PreviousValues {\n const ids = rowQueries(columns, queries);\n const indexed = indexEntries(ids, answers, options.groupBy);\n const previous: PreviousValues = new Map();\n for (const id of ids) {\n for (const key of indexed.get(id)?.keys() ?? []) {\n if (previous.has(key)) continue;\n const read = readAt(indexed, key);\n previous.set(\n key,\n Object.fromEntries(columns.filter(isValueColumn).map(c => [c.id, evaluate(c.options.value, read)])),\n );\n }\n }\n return previous;\n}\n\n/**\n * The rows to list: unnamed ones left out when asked, and, when the list is whole, a row at zero for\n * each group a total was above 0 for in the previous window but that has no row now.\n */\nexport function listedRows(\n options: TableOptions,\n columns: TableColumn[],\n built: TableRow[],\n previous: PreviousValues | undefined,\n truncated: boolean,\n): TableRow[] {\n const named = (rows: TableRow[]) => (options.hideUnnamed ? rows.filter(r => r.name !== '') : rows);\n if (options.dropped === false || !previous || truncated) return named(built);\n const values = columns.filter(isValueColumn);\n const totals = values.filter(c => c.options.additive);\n const listed = new Set(built.map(r => r.key));\n const dropped: TableRow[] = [];\n for (const [key, before] of previous) {\n if (listed.has(key) || !totals.some(c => (before[c.id] ?? 0) > 0)) continue;\n const row = newRow(key, options.groupBy);\n for (const c of values) {\n row.values[c.id] = c.options.additive && before[c.id] !== undefined ? 0 : c.options.missing;\n }\n dropped.push(row);\n }\n return named([...built, ...dropped]);\n}\n\nexport type TableContent = {\n rows: TableRow[];\n /** The previous window's values by row key, once they're passed in. */\n before: PreviousValues | undefined;\n truncated: boolean;\n /** The cap the first truncated aggregate hit, when it names one. */\n limit: number | undefined;\n};\n\n/**\n * What the table lists once its row queries answer. `current` and `previous` hold one answer per\n * query, in the view's order; leave `previous` out until the previous window has settled.\n */\nexport function tableContent(\n options: TableOptions,\n columns: TableColumn[],\n queries: readonly DashboardQuery[],\n current: readonly (DashboardAnswer | undefined)[],\n previous: readonly (DashboardAnswer | undefined)[] | undefined,\n): TableContent {\n const rowIds = new Set(rowQueries(columns, queries));\n // Only aggregates cap their groups; the first that did names its cap.\n const capped = queries.find(\n (q, i) => q.id !== undefined && rowIds.has(q.id) && rowsOf(current[i])?.truncated === true,\n );\n const truncated = capped !== undefined;\n const built = buildTableRows(options, columns, queries, answersById(queries, current));\n const before = previous && previousTableValues(options, columns, queries, answersById(queries, previous));\n return {\n rows: listedRows(options, columns, built, before, truncated),\n before,\n truncated,\n limit: capped && 'limit' in capped ? capped.limit : undefined,\n };\n}\n\n/**\n * Groups whose value in `column` is above zero, once the requests of every query it reads answer.\n * `answers` holds one answer per query, in order.\n */\nexport function countRows(\n options: TableOptions,\n column: ValueColumn,\n queries: readonly DashboardQuery[],\n answers: readonly (DashboardAnswer | undefined)[],\n): OpenerRows {\n if (answers.length < queries.length || answers.some(a => a === undefined)) return 'loading';\n const rows = buildTableRows(options, [column], queries, answersById(queries, answers));\n return rows.filter(r => (r.values[column.id] ?? 0) > 0).length;\n}\n\nexport type Change = {\n /** Now minus before; unset when there's nothing to compare. */\n delta?: number;\n /** Relative change (0.5 = +50%); for a percent, the difference itself (0.02 = +2 points). */\n change?: number;\n isNew: boolean;\n};\n\n/** How a row's value in `column` moved against the previous window. */\nexport function valueChange(column: ValueColumn, now: number | undefined, before: number | undefined): Change {\n if (now === undefined) return { isNew: false };\n if (before === undefined) return { isNew: column.options.additive === true && now > 0 };\n const delta = now - before;\n const change = column.options.format === 'percent' ? delta : before > 0 ? delta / before : undefined;\n return { delta, change, isNew: false };\n}\n\nexport function changeTrend(change: Change, column: ValueColumn): 'good' | 'bad' | undefined {\n const { better } = column.options;\n if (!better || change.delta === undefined || change.delta === 0) return undefined;\n return change.delta > 0 === (better === 'higher') ? 'good' : 'bad';\n}\n\nexport const DASH = '—';\n\nexport function formatChange(change: Change, column: ValueColumn) {\n const points = column.options.format === 'percent';\n if (change.isNew) return 'New';\n if (change.change === undefined) return DASH;\n if (change.change === 0) return points ? '0 pt' : '0%';\n const sign = change.change > 0 ? '+' : '−';\n const size = Math.abs(change.change);\n if (!points) return `${sign}${formatPercent(size)}`;\n // Under 0.05 points rounds to \"+0.0 pt\", which reads as no change.\n return size < 0.0005 ? `${sign}<0.1 pt` : `${sign}${(size * 100).toFixed(1)} pt`;\n}\n\n/** A value in its column's format; dollars unless the answer names another currency. */\nexport function formatValue(column: ValueColumn, value: number, unit: string | undefined) {\n switch (column.options.format) {\n case 'usd':\n return unit && unit.toUpperCase() !== 'USD' ? `${formatCount(value)} ${unit}` : formatUsd(value);\n case 'duration':\n return formatDuration(value);\n case 'percent':\n return formatPercent(value);\n default:\n return formatCount(value);\n }\n}\n\n/** What a row click adds: its dimensions as drilldown fields; an entity name as a span filter when asked. */\nexport function rowDrilldown(options: TableOptions, row: TableRow): DrilldownScope {\n const drill = options.rowDrilldown;\n if (!drill) return {};\n const nameDimension = options.groupBy[options.groupBy.length - 1];\n const scope: Record<string, unknown> = {};\n for (const [dimension, field] of Object.entries(drill.fields)) {\n const value = row.dimensions[dimension] ?? '';\n if (!value && !(drill.keepEmpty && dimension === nameDimension)) continue;\n if (field === 'entityName' && drill.spanTypes) scope.span = { spanTypes: drill.spanTypes, entityName: value };\n else scope[field] = value;\n }\n return scope;\n}\n\n/** The opener view's row count: still loading, not countable (a page filter blocks it, or its sort column reads no query), or counted. */\nexport type OpenerRows = number | 'loading' | 'uncountable';\n\n/**\n * The view a table opens on. Without an `openWhen` view, the first. The `openWhen` view opens while\n * its rows load, so the tabs don't jump, and once it has `minRows` of them; it's passed over when it\n * can't count them or has too few.\n */\nexport function openingView(views: readonly { options: TableOptions }[], rows: OpenerRows): number {\n const opener = views.findIndex(v => v.options.openWhen);\n if (opener < 0) return 0;\n // Passed over, it opens on the view after it, or the first when it's last.\n const next = (opener + 1) % views.length;\n if (rows === 'uncountable') return next;\n if (rows === 'loading') return opener;\n const minRows = views[opener]?.options.openWhen?.minRows ?? 0;\n return rows >= minRows ? opener : next;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../../../src/domains/dashboards/lib/table';
|