@mastra/playground-ui 61.0.0-alpha.2 → 61.0.0-alpha.4
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/README.md +21 -2
- package/dist/{EmptyState-DGzBN0Ix.js → EmptyState-BI6cIolY.js} +6 -5
- package/dist/EmptyState-BI6cIolY.js.map +1 -0
- package/dist/{EmptyState-DvSib3QC.cjs → EmptyState-O089K_US.cjs} +6 -5
- package/dist/EmptyState-O089K_US.cjs.map +1 -0
- package/dist/EmptyState.css +25 -0
- package/dist/{Header-BXl3AZgO.js → Header-BHqUw0qH.js} +3 -2
- package/dist/Header-BHqUw0qH.js.map +1 -0
- package/dist/{Header-W3PBmXia.cjs → Header-DwcRfQuP.cjs} +3 -2
- package/dist/Header-DwcRfQuP.cjs.map +1 -0
- package/dist/{ask-user-CqCUiZRR.js → ask-user-BF4oruLl.js} +2 -2
- package/dist/{ask-user-CqCUiZRR.js.map → ask-user-BF4oruLl.js.map} +1 -1
- package/dist/{ask-user-DBb0lUh2.cjs → ask-user-BkfO8oNm.cjs} +2 -2
- package/dist/{ask-user-DBb0lUh2.cjs.map → ask-user-BkfO8oNm.cjs.map} +1 -1
- package/dist/attachment-card-BcK3XoCH.cjs +70 -0
- package/dist/attachment-card-BcK3XoCH.cjs.map +1 -0
- package/dist/attachment-card-CbsWWaV5.js +68 -0
- package/dist/attachment-card-CbsWWaV5.js.map +1 -0
- package/dist/{checkbox-Bkobte27.cjs → checkbox-BafbfFcE.cjs} +3 -3
- package/dist/{checkbox-Bkobte27.cjs.map → checkbox-BafbfFcE.cjs.map} +1 -1
- package/dist/{checkbox-DcNIsz5L.js → checkbox-DyZhbQo9.js} +3 -3
- package/dist/{checkbox-DcNIsz5L.js.map → checkbox-DyZhbQo9.js.map} +1 -1
- package/dist/{code-block-CXZNO_qi.js → code-block-BMmilLti.js} +5 -5
- package/dist/code-block-BMmilLti.js.map +1 -0
- package/dist/{code-block-z2hVcNq7.cjs → code-block-Ipm4Kqvc.cjs} +5 -5
- package/dist/code-block-Ipm4Kqvc.cjs.map +1 -0
- package/dist/components/AttachmentCard.cjs.js +10 -0
- package/dist/components/AttachmentCard.cjs.js.map +1 -0
- package/dist/components/AttachmentCard.d.ts +2 -0
- package/dist/components/AttachmentCard.es.js +2 -0
- package/dist/components/AttachmentCard.es.js.map +1 -0
- package/dist/components/ChatShell.cjs.js +1 -1
- package/dist/components/ChatShell.es.js +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/Composer.cjs.js +3 -3
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +3 -3
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/ContextMenu.cjs.js +2 -222
- package/dist/components/ContextMenu.cjs.js.map +1 -1
- package/dist/components/ContextMenu.es.js +1 -206
- package/dist/components/ContextMenu.es.js.map +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataList.cjs.js +5 -5
- package/dist/components/DataList.es.js +5 -5
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1575 -1
- package/dist/components/EmptyState.cjs.js.map +1 -1
- package/dist/components/EmptyState.es.js +1578 -1
- package/dist/components/EmptyState.es.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/FileDropBackdrop.cjs.js +1 -1
- package/dist/components/FileDropBackdrop.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +1 -1
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +1 -1
- package/dist/components/JSONSchemaForm.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +125 -11
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +120 -1
- package/dist/components/MainSidebar.es.js.map +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 +2 -2
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.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/PageLayout.cjs.js +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +1 -1
- package/dist/components/RelativeTimestamp.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +496 -0
- package/dist/components/SavedViews.cjs.js.map +1 -0
- package/dist/components/SavedViews.d.ts +2 -0
- package/dist/components/SavedViews.es.js +490 -0
- package/dist/components/SavedViews.es.js.map +1 -0
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/Workflow.cjs.js +2 -2
- package/dist/components/Workflow.es.js +2 -2
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +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-call.cjs.js +1 -1
- package/dist/components/ai/tool-call.es.js +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js +1 -1
- package/dist/components/fluid-hover-highlight.cjs.js.map +1 -1
- package/dist/components/fluid-hover-highlight.es.js +1 -1
- package/dist/components/fluid-hover-highlight.es.js.map +1 -1
- package/dist/{composer-eMyX1lBH.js → composer-B_yUWdcW.js} +2 -2
- package/dist/composer-B_yUWdcW.js.map +1 -0
- package/dist/{composer-DyoM0j2m.cjs → composer-Bf2poiID.cjs} +2 -2
- package/dist/composer-Bf2poiID.cjs.map +1 -0
- package/dist/context-menu-YjTzgOUh.js +207 -0
- package/dist/context-menu-YjTzgOUh.js.map +1 -0
- package/dist/context-menu-rZEMPP12.cjs +228 -0
- package/dist/context-menu-rZEMPP12.cjs.map +1 -0
- package/dist/{data-code-section-yMYmVciV.js → data-code-section-BD4VWvPd.js} +2 -2
- package/dist/{data-code-section-yMYmVciV.js.map → data-code-section-BD4VWvPd.js.map} +1 -1
- package/dist/{data-code-section-BK0bftM-.cjs → data-code-section-t4FroAMJ.cjs} +2 -2
- package/dist/{data-code-section-BK0bftM-.cjs.map → data-code-section-t4FroAMJ.cjs.map} +1 -1
- package/dist/{data-list-DdsyfT8B.js → data-list-DYW9FuYo.js} +3 -3
- package/dist/{data-list-DdsyfT8B.js.map → data-list-DYW9FuYo.js.map} +1 -1
- package/dist/{data-list-DoKc-wSe.cjs → data-list-acjJVSpL.cjs} +3 -3
- package/dist/{data-list-DoKc-wSe.cjs.map → data-list-acjJVSpL.cjs.map} +1 -1
- package/dist/{data-list-skeleton-DuqQkzwC.cjs → data-list-skeleton-BxcJ34hQ.cjs} +2 -2
- package/dist/{data-list-skeleton-DuqQkzwC.cjs.map → data-list-skeleton-BxcJ34hQ.cjs.map} +1 -1
- package/dist/{data-list-skeleton-CeyLefM5.js → data-list-skeleton-CXvrEdMG.js} +2 -2
- package/dist/{data-list-skeleton-CeyLefM5.js.map → data-list-skeleton-CXvrEdMG.js.map} +1 -1
- package/dist/{data-list-spacer-CD4hD-As.cjs → data-list-spacer-CXzddj-5.cjs} +2 -2
- package/dist/{data-list-spacer-CD4hD-As.cjs.map → data-list-spacer-CXzddj-5.cjs.map} +1 -1
- package/dist/{data-list-spacer-7QVTcgIS.js → data-list-spacer-CZa36ohy.js} +2 -2
- package/dist/{data-list-spacer-7QVTcgIS.js.map → data-list-spacer-CZa36ohy.js.map} +1 -1
- package/dist/{data-list-top-CxUWL8gh.js → data-list-top-D7UxgRNq.js} +2 -2
- package/dist/{data-list-top-CxUWL8gh.js.map → data-list-top-D7UxgRNq.js.map} +1 -1
- package/dist/{data-list-top-CvD3KI8R.cjs → data-list-top-DJzwLjZj.cjs} +2 -2
- package/dist/{data-list-top-CvD3KI8R.cjs.map → data-list-top-DJzwLjZj.cjs.map} +1 -1
- package/dist/{data-panel-GT4fMXR0.js → data-panel-C638OC-m.js} +2 -2
- package/dist/{data-panel-GT4fMXR0.js.map → data-panel-C638OC-m.js.map} +1 -1
- package/dist/{data-panel-mzQKwVkT.cjs → data-panel-HSJNrZhx.cjs} +2 -2
- package/dist/{data-panel-mzQKwVkT.cjs.map → data-panel-HSJNrZhx.cjs.map} +1 -1
- package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
- package/dist/domains/auth/components/permission-denied.es.js +1 -1
- package/dist/domains/auth/components/session-expired.cjs.js +3 -3
- package/dist/domains/auth/components/session-expired.cjs.js.map +1 -1
- package/dist/domains/auth/components/session-expired.es.js +2 -2
- package/dist/domains/auth/components/session-expired.es.js.map +1 -1
- package/dist/domains/auth/services/sso-login.cjs.js +7 -22
- package/dist/domains/auth/services/sso-login.cjs.js.map +1 -1
- package/dist/domains/auth/services/sso-login.es.js +1 -23
- package/dist/domains/auth/services/sso-login.es.js.map +1 -1
- package/dist/domains/capabilities.cjs.js +13 -6
- package/dist/domains/capabilities.cjs.js.map +1 -1
- package/dist/domains/capabilities.es.js +1 -3
- package/dist/domains/capabilities.es.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +28 -8
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +29 -9
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
- package/dist/domains/chat/attachments/message-attachment-info.cjs.js +44 -0
- package/dist/domains/chat/attachments/message-attachment-info.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachment-info.d.ts +2 -0
- package/dist/domains/chat/attachments/message-attachment-info.es.js +38 -0
- package/dist/domains/chat/attachments/message-attachment-info.es.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachment.cjs.js +62 -0
- package/dist/domains/chat/attachments/message-attachment.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachment.d.ts +2 -0
- package/dist/domains/chat/attachments/message-attachment.es.js +58 -0
- package/dist/domains/chat/attachments/message-attachment.es.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachments.cjs.js +18 -0
- package/dist/domains/chat/attachments/message-attachments.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-attachments.d.ts +2 -0
- package/dist/domains/chat/attachments/message-attachments.es.js +14 -0
- package/dist/domains/chat/attachments/message-attachments.es.js.map +1 -0
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js +42 -0
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/message-image-attachment.d.ts +2 -0
- package/dist/domains/chat/attachments/message-image-attachment.es.js +38 -0
- package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -0
- package/dist/domains/chat/attachments/split-message-attachments.cjs.js +19 -0
- package/dist/domains/chat/attachments/split-message-attachments.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/split-message-attachments.d.ts +2 -0
- package/dist/domains/chat/attachments/split-message-attachments.es.js +14 -0
- package/dist/domains/chat/attachments/split-message-attachments.es.js.map +1 -0
- 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/dataset-save-action.cjs.js +8 -9
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +1 -2
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +11 -6
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +10 -5
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.cjs.js +3 -4
- package/dist/domains/chat/messages/renderers/in-message-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/in-message-attachment.es.js +1 -6
- package/dist/domains/chat/messages/renderers/in-message-attachment.es.js.map +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/user-file-part-renderer.cjs.js +4 -4
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +4 -4
- package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js +4 -3
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js +4 -3
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +1 -1
- package/dist/domains/chat/messages/skill-message.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +2 -2
- 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/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +6 -6
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +2 -2
- package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +6 -7
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +6 -7
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +3 -3
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-call-effects.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-call-effects.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +2 -2
- package/dist/domains/chat/tools/tool-card.es.js +2 -2
- package/dist/domains/chat/tools/tool-result-media.cjs.js +2 -2
- package/dist/domains/chat/tools/tool-result-media.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-result-media.es.js +2 -2
- package/dist/domains/chat/tools/tool-result-media.es.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -8
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +1 -2
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/datasets.cjs.js +25 -6
- package/dist/domains/datasets.cjs.js.map +1 -1
- package/dist/domains/datasets.es.js +1 -2
- package/dist/domains/datasets.es.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- package/dist/domains/logs/components/logs-error-content.cjs.js +6 -6
- package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +2 -2
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
- package/dist/domains/logs/components/logs-list-view.es.js +2 -2
- package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
- package/dist/domains/logs/components/no-logs-info.es.js +1 -1
- package/dist/domains/logs/hooks.cjs.js +5 -2
- package/dist/domains/logs/hooks.cjs.js.map +1 -1
- package/dist/domains/logs/hooks.es.js +1 -1
- package/dist/domains/logs/types.d.ts +1 -0
- package/dist/domains/logs.cjs.js +5 -2
- package/dist/domains/logs.cjs.js.map +1 -1
- package/dist/domains/logs.es.js +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js +1 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +10 -10
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +10 -10
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +2 -2
- package/dist/domains/memory/components/observation-detail-view.es.js +2 -2
- package/dist/domains/memory.cjs.js +25 -9
- package/dist/domains/memory.cjs.js.map +1 -1
- package/dist/domains/memory.es.js +1 -3
- package/dist/domains/memory.es.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +17 -3
- package/dist/domains/metrics/components/kpi-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +17 -3
- package/dist/domains/metrics/components/kpi-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.utils.cjs.js.map +1 -1
- package/dist/domains/metrics/components/latency-card-view.utils.es.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/memory-card-view.es.js +2 -2
- package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/scores-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/scores-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +1 -1
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +1 -1
- package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js +2 -35
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js +2 -35
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics.cjs.js +12 -0
- package/dist/domains/metrics/hooks/use-metrics.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks/use-metrics.es.js +12 -0
- package/dist/domains/metrics/hooks/use-metrics.es.js.map +1 -1
- package/dist/domains/metrics/hooks.cjs.js +61 -29
- package/dist/domains/metrics/hooks.cjs.js.map +1 -1
- package/dist/domains/metrics/hooks.es.js +1 -14
- package/dist/domains/metrics/hooks.es.js.map +1 -1
- package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -1
- package/dist/domains/metrics/metrics-filters.es.js.map +1 -1
- package/dist/domains/metrics.cjs.js +61 -29
- package/dist/domains/metrics.cjs.js.map +1 -1
- package/dist/domains/metrics.es.js +1 -14
- package/dist/domains/metrics.es.js.map +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +14 -9
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +10 -5
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +9 -6
- package/dist/domains/observability/components/trace-as-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.es.js +9 -6
- package/dist/domains/observability/components/trace-as-item-dialog.es.js.map +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -3
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js.map +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -3
- package/dist/domains/scores/components/score-as-item-dialog.es.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +2 -2
- package/dist/domains/scores/components/span-scoring.cjs.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.es.js +1 -1
- package/dist/domains/scores/components/span-scoring.es.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +13 -8
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +10 -5
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/scores/hooks.cjs.js +29 -10
- package/dist/domains/scores/hooks.cjs.js.map +1 -1
- package/dist/domains/scores/hooks.es.js +1 -3
- package/dist/domains/scores/hooks.es.js.map +1 -1
- package/dist/domains/scores.cjs.js +29 -10
- package/dist/domains/scores.cjs.js.map +1 -1
- package/dist/domains/scores.es.js +1 -3
- package/dist/domains/scores.es.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/span-feedback-tab.cjs.js +11 -8
- package/dist/domains/traces/components/span-feedback-tab.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-feedback-tab.es.js +8 -5
- package/dist/domains/traces/components/span-feedback-tab.es.js.map +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-attachment.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js.map +1 -1
- 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 +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
- 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-attributes.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +7 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +7 -4
- package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +6 -3
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +5 -2
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
- package/dist/domains/traces/components/trace-data-panel.cjs.js +4 -4
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +3 -3
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-feedback-tab.cjs.js +6 -8
- package/dist/domains/traces/components/trace-feedback-tab.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-feedback-tab.es.js +3 -5
- package/dist/domains/traces/components/trace-feedback-tab.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +10 -4
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +10 -4
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +6 -2
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +6 -2
- package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.es.js +1 -1
- package/dist/domains/traces/components/traces-error-content.cjs.js +6 -6
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +3 -3
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
- package/dist/domains/traces/components/traces-list-view.es.js +3 -3
- 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/hooks/use-download-trace-json.cjs.js +3 -6
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +3 -6
- package/dist/domains/traces/hooks/use-download-trace-json.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-column-preferences.cjs.js +2 -5
- package/dist/domains/traces/hooks/use-trace-column-preferences.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-column-preferences.es.js +2 -5
- package/dist/domains/traces/hooks/use-trace-column-preferences.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +6 -4
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.es.js +5 -3
- package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
- package/dist/domains/traces/hooks.cjs.js +49 -24
- package/dist/domains/traces/hooks.cjs.js.map +1 -1
- package/dist/domains/traces/hooks.es.js +1 -12
- package/dist/domains/traces/hooks.es.js.map +1 -1
- package/dist/domains/traces/trace-filters.cjs.js +9 -11
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +3 -7
- package/dist/domains/traces/trace-filters.es.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.cjs.js.map +1 -1
- package/dist/domains/traces/trace-list-columns.es.js.map +1 -1
- package/dist/domains/traces/types.cjs.js.map +1 -1
- package/dist/domains/traces/types.es.js.map +1 -1
- package/dist/domains/traces.cjs.js +53 -25
- package/dist/domains/traces.cjs.js.map +1 -1
- package/dist/domains/traces.es.js +2 -13
- package/dist/domains/traces.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -4
- package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -2
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -2
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +11 -3
- package/dist/domains/workflows/components/workflow-information.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.es.js +11 -3
- package/dist/domains/workflows/components/workflow-information.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
- package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +9 -9
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
- package/dist/domains/workflows/context/use-persisted-workflow-run.cjs.js +9 -2
- package/dist/domains/workflows/context/use-persisted-workflow-run.cjs.js.map +1 -1
- package/dist/domains/workflows/context/use-persisted-workflow-run.es.js +10 -3
- package/dist/domains/workflows/context/use-persisted-workflow-run.es.js.map +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js +2 -2
- package/dist/domains/workflows/context/use-stream-for-run.cjs.js.map +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
- package/dist/domains/workflows/context/use-stream-for-run.es.js.map +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js +13 -7
- package/dist/domains/workflows/context/workflow-run-provider.cjs.js.map +1 -1
- package/dist/domains/workflows/context/workflow-run-provider.es.js +10 -4
- package/dist/domains/workflows/context/workflow-run-provider.es.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +11 -4
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +11 -4
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +1 -1
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
- package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js +0 -1
- package/dist/domains/workflows/workflow/workflow-graph.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js +0 -1
- package/dist/domains/workflows/workflow/workflow-graph.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -2
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js.map +1 -1
- package/dist/domains/workflows.cjs.js +53 -17
- package/dist/domains/workflows.cjs.js.map +1 -1
- package/dist/domains/workflows.es.js +1 -4
- package/dist/domains/workflows.es.js.map +1 -1
- package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
- package/dist/domains/workspace/components/mount-icon.cjs.js.map +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js +1 -1
- package/dist/domains/workspace/components/mount-icon.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +12 -9
- package/dist/domains/workspace/components/workspace-active-file.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.es.js +7 -4
- package/dist/domains/workspace/components/workspace-active-file.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +16 -13
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +14 -11
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-error.cjs.js +4 -4
- package/dist/domains/workspace/components/workspace-error.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
- package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
- package/dist/domains/workspace/components/workspace-parts.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-parts.es.js +4 -4
- package/dist/domains/workspace/components/workspace-parts.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.cjs.js +7 -4
- package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +7 -4
- package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +9 -5
- package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +9 -5
- package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
- package/dist/domains/workspace.cjs.js +13 -6
- package/dist/domains/workspace.cjs.js.map +1 -1
- package/dist/domains/workspace.es.js +1 -3
- package/dist/domains/workspace.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +6 -6
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -4
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +7 -4
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +7 -4
- package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
- package/dist/errors-BiY55qIh.cjs +22 -0
- package/dist/errors-BiY55qIh.cjs.map +1 -0
- package/dist/errors-CDTokuME.js +20 -0
- package/dist/errors-CDTokuME.js.map +1 -0
- package/dist/{filter-bar-chip-CRejLco-.js → filter-bar-chip-0OLqovME.js} +19 -7
- package/dist/filter-bar-chip-0OLqovME.js.map +1 -0
- package/dist/{filter-bar-chip-Cr7kUN9G.cjs → filter-bar-chip-CbX_iAzm.cjs} +19 -6
- package/dist/filter-bar-chip-CbX_iAzm.cjs.map +1 -0
- package/dist/hooks/use-drop-zone.cjs.js +33 -0
- package/dist/hooks/use-drop-zone.cjs.js.map +1 -0
- package/dist/hooks/use-drop-zone.d.ts +2 -0
- package/dist/hooks/use-drop-zone.es.js +29 -0
- package/dist/hooks/use-drop-zone.es.js.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +2 -2
- package/dist/layout/tabbed-container.es.js +2 -2
- package/dist/lib/form/components/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/{list-search-DcACBmNB.js → list-search-B9t_AAN5.js} +2 -2
- package/dist/{list-search-DcACBmNB.js.map → list-search-B9t_AAN5.js.map} +1 -1
- package/dist/{list-search-CCHN2OMB.cjs → list-search-BiATHpQj.cjs} +2 -2
- package/dist/{list-search-CCHN2OMB.cjs.map → list-search-BiATHpQj.cjs.map} +1 -1
- package/dist/{logs-data-list-PlH4_hgq.js → logs-data-list-CWJxi9Qf.js} +3 -3
- package/dist/{logs-data-list-PlH4_hgq.js.map → logs-data-list-CWJxi9Qf.js.map} +1 -1
- package/dist/{logs-data-list-BITdSK12.cjs → logs-data-list-D0cymqxR.cjs} +3 -3
- package/dist/{logs-data-list-BITdSK12.cjs.map → logs-data-list-D0cymqxR.cjs.map} +1 -1
- package/dist/{main-sidebar-B0ivY7lW.js → main-sidebar-link-active-BW025pfN.js} +20 -128
- package/dist/main-sidebar-link-active-BW025pfN.js.map +1 -0
- package/dist/{main-sidebar-BWKVSRoQ.cjs → main-sidebar-link-active-MpwV6dGL.cjs} +18 -127
- package/dist/main-sidebar-link-active-MpwV6dGL.cjs.map +1 -0
- package/dist/{markdown-renderer-4iyMU2Cm.cjs → markdown-renderer-BCeiKCA4.cjs} +2 -2
- package/dist/{markdown-renderer-4iyMU2Cm.cjs.map → markdown-renderer-BCeiKCA4.cjs.map} +1 -1
- package/dist/{markdown-renderer-B3Pf1uW9.js → markdown-renderer-CKSEkKch.js} +2 -2
- package/dist/{markdown-renderer-B3Pf1uW9.js.map → markdown-renderer-CKSEkKch.js.map} +1 -1
- package/dist/{message-DGDmsmOT.cjs → message-BSjrZWVU.cjs} +7 -5
- package/dist/message-BSjrZWVU.cjs.map +1 -0
- package/dist/{message-DoxVrgBX.js → message-DGYBEr0X.js} +7 -5
- package/dist/message-DGYBEr0X.js.map +1 -0
- package/dist/{message-scroller-D-_KN9Fv.cjs → message-scroller-DcZBA9Sl.cjs} +7 -4
- package/dist/{message-scroller-D-_KN9Fv.cjs.map → message-scroller-DcZBA9Sl.cjs.map} +1 -1
- package/dist/{message-scroller-WWaQ-XU_.js → message-scroller-d8meQ5AR.js} +7 -4
- package/dist/{message-scroller-WWaQ-XU_.js.map → message-scroller-d8meQ5AR.js.map} +1 -1
- package/dist/{metrics-card-xX9SHUpB.cjs → metrics-card-B9m1jHwk.cjs} +2 -2
- package/dist/{metrics-card-xX9SHUpB.cjs.map → metrics-card-B9m1jHwk.cjs.map} +1 -1
- package/dist/{metrics-card-DFEWxFkJ.js → metrics-card-BcKVznFk.js} +2 -2
- package/dist/{metrics-card-DFEWxFkJ.js.map → metrics-card-BcKVznFk.js.map} +1 -1
- package/dist/{metrics-kpi-card-DxcLqbDU.js → metrics-kpi-card-CDeJ3I1-.js} +27 -21
- package/dist/metrics-kpi-card-CDeJ3I1-.js.map +1 -0
- package/dist/{metrics-kpi-card-9L0j_oGY.cjs → metrics-kpi-card-CLlu5you.cjs} +27 -21
- package/dist/metrics-kpi-card-CLlu5you.cjs.map +1 -0
- package/dist/new/layout/app-shell.cjs.js +1 -1
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +1 -1
- package/dist/new/layout/app-shell.es.js.map +1 -1
- package/dist/new/sidebar.cjs.js +34 -34
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +2 -2
- package/dist/{plan-D49plJdQ.cjs → plan-4Udllcyn.cjs} +2 -2
- package/dist/{plan-D49plJdQ.cjs.map → plan-4Udllcyn.cjs.map} +1 -1
- package/dist/{plan-DvkySMRk.js → plan-CZxw-Q5D.js} +2 -2
- package/dist/{plan-DvkySMRk.js.map → plan-CZxw-Q5D.js.map} +1 -1
- package/dist/primitives/message-surface.cjs.js +8 -0
- package/dist/primitives/message-surface.cjs.js.map +1 -0
- package/dist/primitives/message-surface.d.ts +2 -0
- package/dist/primitives/message-surface.es.js +4 -0
- package/dist/primitives/message-surface.es.js.map +1 -0
- package/dist/primitives/raised-surface.cjs.js.map +1 -1
- package/dist/primitives/raised-surface.es.js.map +1 -1
- package/dist/{reasoning-activity-COiiln9U.cjs → reasoning-activity-Bux9ZUhr.cjs} +2 -2
- package/dist/{reasoning-activity-COiiln9U.cjs.map → reasoning-activity-Bux9ZUhr.cjs.map} +1 -1
- package/dist/{reasoning-activity-r7B4_j4d.js → reasoning-activity-Du19QVGl.js} +2 -2
- package/dist/{reasoning-activity-r7B4_j4d.js.map → reasoning-activity-Du19QVGl.js.map} +1 -1
- package/dist/{relative-timestamp-Nnwtw7Rp.cjs → relative-timestamp-DLOmWi7o.cjs} +6 -3
- package/dist/relative-timestamp-DLOmWi7o.cjs.map +1 -0
- package/dist/{relative-timestamp-Rn8mAobA.js → relative-timestamp-XodF8W6h.js} +6 -3
- package/dist/relative-timestamp-XodF8W6h.js.map +1 -0
- package/dist/{search-input-63Y1_wgA.js → search-input-BV-rRDdJ.js} +3 -3
- package/dist/search-input-BV-rRDdJ.js.map +1 -0
- package/dist/{search-input-CBhT3N4z.cjs → search-input-DeeH0VrX.cjs} +3 -3
- package/dist/search-input-DeeH0VrX.cjs.map +1 -0
- package/dist/{span-payload-primitives-DqeZJkw3.cjs → span-payload-primitives-0b_ow5Rt.cjs} +2 -2
- package/dist/{span-payload-primitives-DqeZJkw3.cjs.map → span-payload-primitives-0b_ow5Rt.cjs.map} +1 -1
- package/dist/{span-payload-primitives-DceLKTQK.js → span-payload-primitives-XWZOfAi-.js} +2 -2
- package/dist/{span-payload-primitives-DceLKTQK.js.map → span-payload-primitives-XWZOfAi-.js.map} +1 -1
- package/dist/src/domains/auth/services/sso-login.d.ts +2 -7
- package/dist/src/domains/capabilities/index.d.ts +1 -1
- package/dist/src/domains/chat/attachments/attachment-preview-dialog.d.ts +8 -3
- package/dist/src/domains/chat/attachments/message-attachment-info.d.ts +9 -0
- package/dist/src/domains/chat/attachments/message-attachment.d.ts +8 -0
- package/dist/src/domains/chat/attachments/message-attachments.d.ts +4 -0
- package/dist/src/domains/chat/attachments/message-image-attachment.d.ts +5 -0
- package/dist/src/domains/chat/attachments/split-message-attachments.d.ts +11 -0
- package/dist/src/domains/chat/messages/renderers/in-message-attachment.d.ts +2 -8
- package/dist/src/domains/chat/stories/attachment-focus.stories.d.ts +26 -0
- package/dist/src/domains/chat/stories/sent-attachments.stories.d.ts +30 -0
- package/dist/src/domains/datasets/index.d.ts +2 -1
- package/dist/src/domains/logs/hooks/index.d.ts +1 -1
- package/dist/src/domains/logs/types.d.ts +1 -35
- package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +1 -1
- package/dist/src/domains/memory/components/flame-graph-data.d.ts +1 -1
- package/dist/src/domains/memory/index.d.ts +1 -1
- package/dist/src/domains/metrics/components/latency-card-view.d.ts +1 -2
- package/dist/src/domains/metrics/components/latency-card-view.utils.d.ts +1 -1
- package/dist/src/domains/metrics/components/memory-card-view.d.ts +1 -2
- package/dist/src/domains/metrics/components/model-usage-cost-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/scores-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/token-usage-by-agent-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/token-usage-timeline-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/components/traces-volume-card-view.d.ts +1 -1
- package/dist/src/domains/metrics/hooks/index.d.ts +14 -14
- package/dist/src/domains/metrics/hooks/use-metrics-filters.d.ts +3 -46
- package/dist/src/domains/metrics/hooks/use-metrics.d.ts +1 -0
- package/dist/src/domains/metrics/metrics-filters.d.ts +2 -18
- package/dist/src/domains/scores/hooks/index.d.ts +1 -3
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +2 -2
- package/dist/src/domains/traces/hooks/index.d.ts +12 -12
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -1
- package/dist/src/domains/traces/trace-filters.d.ts +3 -8
- package/dist/src/domains/traces/trace-list-columns.d.ts +2 -6
- package/dist/src/domains/traces/types.d.ts +2 -6
- package/dist/src/domains/workflows/context/use-persisted-workflow-run.d.ts +3 -3
- package/dist/src/domains/workflows/context/use-stream-for-run.d.ts +1 -1
- package/dist/src/domains/workflows/index.d.ts +1 -1
- package/dist/src/domains/workflows/utils.d.ts +2 -2
- package/dist/src/domains/workspace/index.d.ts +3 -3
- package/dist/src/ds/components/AttachmentCard/attachment-card.d.ts +12 -0
- package/dist/src/ds/components/AttachmentCard/attachment-preview.d.ts +5 -0
- package/dist/src/ds/components/AttachmentCard/index.d.ts +2 -0
- package/dist/src/ds/components/EmptyState/EmptyState.d.ts +2 -2
- package/dist/src/ds/components/EmptyState/empty-state-illustration.d.ts +4 -0
- package/dist/src/ds/components/EmptyState/empty-state.stories.d.ts +4 -0
- package/dist/src/ds/components/EmptyState/illustrations/api-keys-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/databases-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/deploys-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/disconnected-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/environments-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/locked-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/logs-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/not-a-member-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/rate-limited-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/requests-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/server-error-art.d.ts +3 -0
- package/dist/src/ds/components/EmptyState/illustrations/threads-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/illustrations/traces-art.d.ts +1 -0
- package/dist/src/ds/components/EmptyState/index.d.ts +2 -0
- package/dist/src/ds/components/Header/header.stories.d.ts +1 -0
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-link.d.ts +2 -0
- package/dist/src/ds/components/Message/message.d.ts +3 -1
- package/dist/src/ds/components/MessageScroller/message-scroller.stories.d.ts +1 -0
- package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +1 -0
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-change.d.ts +2 -1
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card-header.d.ts +5 -0
- package/dist/src/ds/components/MetricsKpiCard/metrics-kpi-card.d.ts +2 -0
- package/dist/src/ds/components/RelativeTimestamp/relative-timestamp.stories.d.ts +1 -0
- package/dist/src/ds/components/SavedViews/index.d.ts +7 -0
- package/dist/src/ds/components/SavedViews/saved-view-editor.d.ts +8 -0
- package/dist/src/ds/components/SavedViews/saved-view-name-input.d.ts +4 -0
- package/dist/src/ds/components/SavedViews/saved-view-schema.d.ts +20 -0
- package/dist/src/ds/components/SavedViews/saved-view-summary.d.ts +10 -0
- package/dist/src/ds/components/SavedViews/saved-view-tabs.d.ts +14 -0
- package/dist/src/ds/components/SavedViews/saved-views-storage.d.ts +5 -0
- package/dist/src/ds/components/SavedViews/saved-views.stories.d.ts +5 -0
- package/dist/src/ds/components/SavedViews/use-saved-views.d.ts +35 -0
- package/dist/src/ds/components/ai/activity/activity.stories.d.ts +1 -1
- package/dist/src/ds/primitives/message-surface.d.ts +2 -0
- package/dist/src/ds/tokens/colors.d.ts +1 -0
- package/dist/src/hooks/stories/browser/use-drop-zone.stories.d.ts +17 -0
- package/dist/src/hooks/use-drop-zone.d.ts +15 -0
- package/dist/src/utils/errors.d.ts +1 -1
- package/dist/src/utils/query-utils.d.ts +1 -1
- package/dist/style.css +302 -63
- package/dist/{switch-BlE5ReVZ.cjs → switch-Dwvg61n9.cjs} +2 -2
- package/dist/{switch-BlE5ReVZ.cjs.map → switch-Dwvg61n9.cjs.map} +1 -1
- package/dist/{switch-MZ1oHrmp.js → switch-plHXs9HV.js} +2 -2
- package/dist/{switch-MZ1oHrmp.js.map → switch-plHXs9HV.js.map} +1 -1
- package/dist/tokens.cjs.js +1 -0
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +1 -0
- package/dist/tokens.es.js.map +1 -1
- package/dist/{tool-call-arguments-DQv3oaEC.js → tool-call-arguments-CufA6H_n.js} +2 -2
- package/dist/{tool-call-arguments-DQv3oaEC.js.map → tool-call-arguments-CufA6H_n.js.map} +1 -1
- package/dist/{tool-call-arguments-DdO3E60i.cjs → tool-call-arguments-DEXKbR8d.cjs} +2 -2
- package/dist/{tool-call-arguments-DdO3E60i.cjs.map → tool-call-arguments-DEXKbR8d.cjs.map} +1 -1
- package/dist/{tool-card-D9nDQgpg.cjs → tool-card-CQAEtUhC.cjs} +5 -5
- package/dist/tool-card-CQAEtUhC.cjs.map +1 -0
- package/dist/{tool-card-tK9zedNb.js → tool-card-DKNWgEoo.js} +3 -3
- package/dist/tool-card-DKNWgEoo.js.map +1 -0
- package/dist/{traces-data-list-D-wz-Je3.cjs → traces-data-list-CA7ZJ42U.cjs} +4 -4
- package/dist/{traces-data-list-D-wz-Je3.cjs.map → traces-data-list-CA7ZJ42U.cjs.map} +1 -1
- package/dist/{traces-data-list-DmCgejAx.js → traces-data-list-CMhd7o-G.js} +4 -4
- package/dist/{traces-data-list-DmCgejAx.js.map → traces-data-list-CMhd7o-G.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-BF_NZEkj.js → use-workflow-graph-runtime-BDQG0x6S.js} +2 -2
- package/dist/{use-workflow-graph-runtime-BF_NZEkj.js.map → use-workflow-graph-runtime-BDQG0x6S.js.map} +1 -1
- package/dist/{use-workflow-graph-runtime-r_OOpvSo.cjs → use-workflow-graph-runtime-C94sK_3_.cjs} +2 -2
- package/dist/{use-workflow-graph-runtime-r_OOpvSo.cjs.map → use-workflow-graph-runtime-C94sK_3_.cjs.map} +1 -1
- package/dist/utils/errors.cjs.js +36 -27
- package/dist/utils/errors.cjs.js.map +1 -1
- package/dist/utils/errors.es.js +2 -21
- package/dist/utils/errors.es.js.map +1 -1
- package/dist/utils/query-utils.cjs.js +35 -103
- package/dist/utils/query-utils.cjs.js.map +1 -1
- package/dist/utils/query-utils.es.js +1 -97
- package/dist/utils/query-utils.es.js.map +1 -1
- package/dist/{workflow-condition-card-Dlo2PaKV.cjs → workflow-condition-card-BTgxBimk.cjs} +2 -2
- package/dist/workflow-condition-card-BTgxBimk.cjs.map +1 -0
- package/dist/{workflow-condition-card-BCSYogql.js → workflow-condition-card-BrKjwx6R.js} +2 -2
- package/dist/workflow-condition-card-BrKjwx6R.js.map +1 -0
- package/dist/{workflow-debug-controls-CQc8ljAI.js → workflow-debug-controls-BVaX_0Dq.js} +2 -2
- package/dist/workflow-debug-controls-BVaX_0Dq.js.map +1 -0
- package/dist/{workflow-debug-controls-WXT05idC.cjs → workflow-debug-controls-DUNR0Ws0.cjs} +2 -2
- package/dist/workflow-debug-controls-DUNR0Ws0.cjs.map +1 -0
- package/package.json +10 -10
- package/theme/surfaces.css +11 -12
- package/dist/EmptyState-DGzBN0Ix.js.map +0 -1
- package/dist/EmptyState-DvSib3QC.cjs.map +0 -1
- package/dist/Header-BXl3AZgO.js.map +0 -1
- package/dist/Header-W3PBmXia.cjs.map +0 -1
- package/dist/code-block-CXZNO_qi.js.map +0 -1
- package/dist/code-block-z2hVcNq7.cjs.map +0 -1
- package/dist/composer-DyoM0j2m.cjs.map +0 -1
- package/dist/composer-eMyX1lBH.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-messages.cjs.js +0 -49
- package/dist/domains/agents/hooks/use-agent-messages.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-messages.d.ts +0 -2
- package/dist/domains/agents/hooks/use-agent-messages.es.js +0 -45
- package/dist/domains/agents/hooks/use-agent-messages.es.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-plan.cjs.js +0 -21
- package/dist/domains/agents/hooks/use-agent-plan.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-agent-plan.d.ts +0 -2
- package/dist/domains/agents/hooks/use-agent-plan.es.js +0 -17
- package/dist/domains/agents/hooks/use-agent-plan.es.js.map +0 -1
- package/dist/domains/agents/hooks/use-background-tasks.cjs.js +0 -137
- package/dist/domains/agents/hooks/use-background-tasks.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-background-tasks.d.ts +0 -2
- package/dist/domains/agents/hooks/use-background-tasks.es.js +0 -132
- package/dist/domains/agents/hooks/use-background-tasks.es.js.map +0 -1
- package/dist/domains/agents/hooks/use-browser-session-probe.cjs.js +0 -46
- package/dist/domains/agents/hooks/use-browser-session-probe.cjs.js.map +0 -1
- package/dist/domains/agents/hooks/use-browser-session-probe.d.ts +0 -2
- package/dist/domains/agents/hooks/use-browser-session-probe.es.js +0 -41
- package/dist/domains/agents/hooks/use-browser-session-probe.es.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js +0 -16
- package/dist/domains/capabilities/hooks/use-feedback-available.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-feedback-available.d.ts +0 -2
- package/dist/domains/capabilities/hooks/use-feedback-available.es.js +0 -12
- package/dist/domains/capabilities/hooks/use-feedback-available.es.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js +0 -20
- package/dist/domains/capabilities/hooks/use-observability-capabilities.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-observability-capabilities.d.ts +0 -2
- package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js +0 -16
- package/dist/domains/capabilities/hooks/use-observability-capabilities.es.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js +0 -16
- package/dist/domains/capabilities/hooks/use-trace-query-available.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks/use-trace-query-available.d.ts +0 -2
- package/dist/domains/capabilities/hooks/use-trace-query-available.es.js +0 -12
- package/dist/domains/capabilities/hooks/use-trace-query-available.es.js.map +0 -1
- package/dist/domains/capabilities/hooks.cjs.js +0 -14
- package/dist/domains/capabilities/hooks.cjs.js.map +0 -1
- package/dist/domains/capabilities/hooks.d.ts +0 -2
- package/dist/domains/capabilities/hooks.es.js +0 -4
- package/dist/domains/capabilities/hooks.es.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-items.cjs.js +0 -63
- package/dist/domains/datasets/hooks/use-dataset-items.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-items.d.ts +0 -2
- package/dist/domains/datasets/hooks/use-dataset-items.es.js +0 -58
- package/dist/domains/datasets/hooks/use-dataset-items.es.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-mutations.cjs.js +0 -157
- package/dist/domains/datasets/hooks/use-dataset-mutations.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks/use-dataset-mutations.d.ts +0 -2
- package/dist/domains/datasets/hooks/use-dataset-mutations.es.js +0 -153
- package/dist/domains/datasets/hooks/use-dataset-mutations.es.js.map +0 -1
- package/dist/domains/datasets/hooks/use-datasets.cjs.js +0 -55
- package/dist/domains/datasets/hooks/use-datasets.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks/use-datasets.d.ts +0 -2
- package/dist/domains/datasets/hooks/use-datasets.es.js +0 -49
- package/dist/domains/datasets/hooks/use-datasets.es.js.map +0 -1
- package/dist/domains/datasets/hooks.cjs.js +0 -14
- package/dist/domains/datasets/hooks.cjs.js.map +0 -1
- package/dist/domains/datasets/hooks.d.ts +0 -2
- package/dist/domains/datasets/hooks.es.js +0 -3
- package/dist/domains/datasets/hooks.es.js.map +0 -1
- package/dist/domains/feedback/hooks/use-feedback.cjs.js +0 -21
- package/dist/domains/feedback/hooks/use-feedback.cjs.js.map +0 -1
- package/dist/domains/feedback/hooks/use-feedback.d.ts +0 -2
- package/dist/domains/feedback/hooks/use-feedback.es.js +0 -17
- package/dist/domains/feedback/hooks/use-feedback.es.js.map +0 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js +0 -16
- package/dist/domains/feedback/utils/feedback-refetch-interval.cjs.js.map +0 -1
- package/dist/domains/feedback/utils/feedback-refetch-interval.d.ts +0 -2
- package/dist/domains/feedback/utils/feedback-refetch-interval.es.js +0 -12
- package/dist/domains/feedback/utils/feedback-refetch-interval.es.js.map +0 -1
- package/dist/domains/logs/hooks/use-logs.cjs.js +0 -69
- package/dist/domains/logs/hooks/use-logs.cjs.js.map +0 -1
- package/dist/domains/logs/hooks/use-logs.d.ts +0 -2
- package/dist/domains/logs/hooks/use-logs.es.js +0 -64
- package/dist/domains/logs/hooks/use-logs.es.js.map +0 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tools.cjs.js +0 -47
- package/dist/domains/mcps/hooks/use-mcp-app-tools.cjs.js.map +0 -1
- package/dist/domains/mcps/hooks/use-mcp-app-tools.d.ts +0 -2
- package/dist/domains/mcps/hooks/use-mcp-app-tools.es.js +0 -43
- package/dist/domains/mcps/hooks/use-mcp-app-tools.es.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-status.cjs.js +0 -21
- package/dist/domains/memory/hooks/use-memory-status.cjs.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-status.d.ts +0 -2
- package/dist/domains/memory/hooks/use-memory-status.es.js +0 -16
- package/dist/domains/memory/hooks/use-memory-status.es.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js +0 -21
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js.map +0 -1
- package/dist/domains/memory/hooks/use-memory-thread-messages.d.ts +0 -2
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js +0 -16
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js.map +0 -1
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js +0 -28
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js.map +0 -1
- package/dist/domains/memory/hooks/use-observational-memory.d.ts +0 -2
- package/dist/domains/memory/hooks/use-observational-memory.es.js +0 -23
- package/dist/domains/memory/hooks/use-observational-memory.es.js.map +0 -1
- package/dist/domains/memory/hooks.cjs.js +0 -17
- package/dist/domains/memory/hooks.cjs.js.map +0 -1
- package/dist/domains/memory/hooks.d.ts +0 -2
- package/dist/domains/memory/hooks.es.js +0 -4
- package/dist/domains/memory/hooks.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js +0 -25
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js +0 -21
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js +0 -25
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js +0 -21
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js +0 -24
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js +0 -20
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js +0 -50
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-latency-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js +0 -46
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js +0 -32
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js +0 -28
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +0 -85
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +0 -81
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js +0 -96
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-scores-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js +0 -92
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js +0 -59
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js +0 -55
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js +0 -80
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js +0 -76
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js +0 -80
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js +0 -76
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js +0 -80
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js +0 -76
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js +0 -44
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js +0 -40
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js.map +0 -1
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js +0 -48
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js.map +0 -1
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.d.ts +0 -2
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js +0 -44
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js.map +0 -1
- package/dist/domains/metrics/metrics-interval.cjs.js +0 -20
- package/dist/domains/metrics/metrics-interval.cjs.js.map +0 -1
- package/dist/domains/metrics/metrics-interval.d.ts +0 -2
- package/dist/domains/metrics/metrics-interval.es.js +0 -15
- package/dist/domains/metrics/metrics-interval.es.js.map +0 -1
- package/dist/domains/scores/hooks/use-scorers.cjs.js +0 -96
- package/dist/domains/scores/hooks/use-scorers.cjs.js.map +0 -1
- package/dist/domains/scores/hooks/use-scorers.d.ts +0 -2
- package/dist/domains/scores/hooks/use-scorers.es.js +0 -89
- package/dist/domains/scores/hooks/use-scorers.es.js.map +0 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js +0 -30
- package/dist/domains/scores/hooks/use-trace-span-scores.cjs.js.map +0 -1
- package/dist/domains/scores/hooks/use-trace-span-scores.d.ts +0 -2
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js +0 -25
- package/dist/domains/scores/hooks/use-trace-span-scores.es.js.map +0 -1
- package/dist/domains/scores/hooks/use-trigger-scorer.cjs.js +0 -22
- package/dist/domains/scores/hooks/use-trigger-scorer.cjs.js.map +0 -1
- package/dist/domains/scores/hooks/use-trigger-scorer.d.ts +0 -2
- package/dist/domains/scores/hooks/use-trigger-scorer.es.js +0 -18
- package/dist/domains/scores/hooks/use-trigger-scorer.es.js.map +0 -1
- package/dist/domains/traces/hooks/discovery-cache.cjs.js +0 -8
- package/dist/domains/traces/hooks/discovery-cache.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/discovery-cache.d.ts +0 -2
- package/dist/domains/traces/hooks/discovery-cache.es.js +0 -4
- package/dist/domains/traces/hooks/discovery-cache.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-branch.cjs.js +0 -29
- package/dist/domains/traces/hooks/use-branch.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-branch.d.ts +0 -2
- package/dist/domains/traces/hooks/use-branch.es.js +0 -25
- package/dist/domains/traces/hooks/use-branch.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-create-feedback.cjs.js +0 -28
- package/dist/domains/traces/hooks/use-create-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-create-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-create-feedback.es.js +0 -24
- package/dist/domains/traces/hooks/use-create-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-delete-feedback.cjs.js +0 -20
- package/dist/domains/traces/hooks/use-delete-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-delete-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-delete-feedback.es.js +0 -16
- package/dist/domains/traces/hooks/use-delete-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-entity-names.cjs.js +0 -50
- package/dist/domains/traces/hooks/use-entity-names.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-entity-names.d.ts +0 -2
- package/dist/domains/traces/hooks/use-entity-names.es.js +0 -46
- package/dist/domains/traces/hooks/use-entity-names.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-environments.cjs.js +0 -27
- package/dist/domains/traces/hooks/use-environments.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-environments.d.ts +0 -2
- package/dist/domains/traces/hooks/use-environments.es.js +0 -23
- package/dist/domains/traces/hooks/use-environments.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-service-names.cjs.js +0 -27
- package/dist/domains/traces/hooks/use-service-names.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-service-names.d.ts +0 -2
- package/dist/domains/traces/hooks/use-service-names.es.js +0 -23
- package/dist/domains/traces/hooks/use-service-names.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-detail.cjs.js +0 -31
- package/dist/domains/traces/hooks/use-span-detail.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-detail.d.ts +0 -2
- package/dist/domains/traces/hooks/use-span-detail.es.js +0 -27
- package/dist/domains/traces/hooks/use-span-detail.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-feedback.cjs.js +0 -28
- package/dist/domains/traces/hooks/use-span-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-span-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-span-feedback.es.js +0 -24
- package/dist/domains/traces/hooks/use-span-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-tags.cjs.js +0 -27
- package/dist/domains/traces/hooks/use-tags.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-tags.d.ts +0 -2
- package/dist/domains/traces/hooks/use-tags.es.js +0 -23
- package/dist/domains/traces/hooks/use-tags.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-thread-has-other-traces.cjs.js +0 -25
- package/dist/domains/traces/hooks/use-thread-has-other-traces.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-thread-has-other-traces.d.ts +0 -2
- package/dist/domains/traces/hooks/use-thread-has-other-traces.es.js +0 -21
- package/dist/domains/traces/hooks/use-thread-has-other-traces.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-feedback.cjs.js +0 -33
- package/dist/domains/traces/hooks/use-trace-feedback.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-feedback.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-feedback.es.js +0 -29
- package/dist/domains/traces/hooks/use-trace-feedback.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -33
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-light-spans.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -29
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.cjs.js +0 -68
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.es.js +0 -62
- package/dist/domains/traces/hooks/use-trace-metadata-filter-fields.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js +0 -40
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js +0 -36
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-query.cjs.js +0 -152
- package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-query.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-query.es.js +0 -142
- package/dist/domains/traces/hooks/use-trace-query.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js +0 -50
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-spans.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-spans.es.js +0 -44
- package/dist/domains/traces/hooks/use-trace-spans.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-usage.cjs.js +0 -99
- package/dist/domains/traces/hooks/use-trace-usage.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-trace-usage.d.ts +0 -2
- package/dist/domains/traces/hooks/use-trace-usage.es.js +0 -95
- package/dist/domains/traces/hooks/use-trace-usage.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-traces.cjs.js +0 -354
- package/dist/domains/traces/hooks/use-traces.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-traces.d.ts +0 -2
- package/dist/domains/traces/hooks/use-traces.es.js +0 -343
- package/dist/domains/traces/hooks/use-traces.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow-runs.cjs.js +0 -81
- package/dist/domains/workflows/hooks/use-workflow-runs.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow-runs.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflow-runs.es.js +0 -71
- package/dist/domains/workflows/hooks/use-workflow-runs.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow.cjs.js +0 -21
- package/dist/domains/workflows/hooks/use-workflow.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflow.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflow.es.js +0 -17
- package/dist/domains/workflows/hooks/use-workflow.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows-run-counts.cjs.js +0 -33
- package/dist/domains/workflows/hooks/use-workflows-run-counts.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows-run-counts.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflows-run-counts.es.js +0 -26
- package/dist/domains/workflows/hooks/use-workflows-run-counts.es.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows.cjs.js +0 -22
- package/dist/domains/workflows/hooks/use-workflows.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks/use-workflows.d.ts +0 -2
- package/dist/domains/workflows/hooks/use-workflows.es.js +0 -18
- package/dist/domains/workflows/hooks/use-workflows.es.js.map +0 -1
- package/dist/domains/workflows/hooks.cjs.js +0 -25
- package/dist/domains/workflows/hooks.cjs.js.map +0 -1
- package/dist/domains/workflows/hooks.d.ts +0 -2
- package/dist/domains/workflows/hooks.es.js +0 -5
- package/dist/domains/workflows/hooks.es.js.map +0 -1
- package/dist/domains/workspace/file-type.cjs.js +0 -25
- package/dist/domains/workspace/file-type.cjs.js.map +0 -1
- package/dist/domains/workspace/file-type.d.ts +0 -2
- package/dist/domains/workspace/file-type.es.js +0 -17
- package/dist/domains/workspace/file-type.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-skills-sh.cjs.js +0 -72
- package/dist/domains/workspace/hooks/use-skills-sh.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-skills-sh.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-skills-sh.es.js +0 -65
- package/dist/domains/workspace/hooks/use-skills-sh.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js +0 -21
- package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-directory.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-workspace-directory.es.js +0 -16
- package/dist/domains/workspace/hooks/use-workspace-directory.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js +0 -22
- package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-file-content.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-workspace-file-content.es.js +0 -18
- package/dist/domains/workspace/hooks/use-workspace-file-content.es.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-search.cjs.js +0 -53
- package/dist/domains/workspace/hooks/use-workspace-search.cjs.js.map +0 -1
- package/dist/domains/workspace/hooks/use-workspace-search.d.ts +0 -2
- package/dist/domains/workspace/hooks/use-workspace-search.es.js +0 -49
- package/dist/domains/workspace/hooks/use-workspace-search.es.js.map +0 -1
- package/dist/filter-bar-chip-CRejLco-.js.map +0 -1
- package/dist/filter-bar-chip-Cr7kUN9G.cjs.map +0 -1
- package/dist/main-sidebar-B0ivY7lW.js.map +0 -1
- package/dist/main-sidebar-BWKVSRoQ.cjs.map +0 -1
- package/dist/map-CGEv7zQW.cjs +0 -12
- package/dist/map-CGEv7zQW.cjs.map +0 -1
- package/dist/map-DBJibfZS.js +0 -10
- package/dist/map-DBJibfZS.js.map +0 -1
- package/dist/message-DGDmsmOT.cjs.map +0 -1
- package/dist/message-DoxVrgBX.js.map +0 -1
- package/dist/metrics-kpi-card-9L0j_oGY.cjs.map +0 -1
- package/dist/metrics-kpi-card-DxcLqbDU.js.map +0 -1
- package/dist/relative-timestamp-Nnwtw7Rp.cjs.map +0 -1
- package/dist/relative-timestamp-Rn8mAobA.js.map +0 -1
- package/dist/search-input-63Y1_wgA.js.map +0 -1
- package/dist/search-input-CBhT3N4z.cjs.map +0 -1
- package/dist/src/domains/agents/hooks/use-agent-messages.d.ts +0 -19
- package/dist/src/domains/agents/hooks/use-agent-plan.d.ts +0 -11
- package/dist/src/domains/agents/hooks/use-background-tasks.d.ts +0 -67
- package/dist/src/domains/agents/hooks/use-browser-session-probe.d.ts +0 -32
- package/dist/src/domains/capabilities/hooks/index.d.ts +0 -3
- package/dist/src/domains/capabilities/hooks/use-feedback-available.d.ts +0 -8
- package/dist/src/domains/capabilities/hooks/use-observability-capabilities.d.ts +0 -23
- package/dist/src/domains/capabilities/hooks/use-trace-query-available.d.ts +0 -8
- package/dist/src/domains/datasets/hooks/index.d.ts +0 -2
- package/dist/src/domains/datasets/hooks/use-dataset-items.d.ts +0 -1355
- package/dist/src/domains/datasets/hooks/use-dataset-mutations.d.ts +0 -337
- package/dist/src/domains/datasets/hooks/use-datasets.d.ts +0 -889
- package/dist/src/domains/feedback/hooks/use-feedback.d.ts +0 -48
- package/dist/src/domains/feedback/utils/feedback-refetch-interval.d.ts +0 -6
- package/dist/src/domains/logs/hooks/use-logs.d.ts +0 -25
- package/dist/src/domains/mcps/hooks/use-mcp-app-tools.d.ts +0 -16
- package/dist/src/domains/memory/hooks/index.d.ts +0 -3
- package/dist/src/domains/memory/hooks/use-memory-status.d.ts +0 -15
- package/dist/src/domains/memory/hooks/use-memory-thread-messages.d.ts +0 -5
- package/dist/src/domains/memory/hooks/use-observational-memory.d.ts +0 -93
- package/dist/src/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +0 -13
- package/dist/src/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +0 -13
- package/dist/src/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +0 -10
- package/dist/src/domains/metrics/hooks/use-latency-metrics.d.ts +0 -16
- package/dist/src/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +0 -7
- package/dist/src/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +0 -10
- package/dist/src/domains/metrics/hooks/use-scores-metrics.d.ts +0 -22
- package/dist/src/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +0 -9
- package/dist/src/domains/metrics/hooks/use-token-usage-timeseries.d.ts +0 -16
- package/dist/src/domains/metrics/hooks/use-top-active-threads-metrics.d.ts +0 -15
- package/dist/src/domains/metrics/hooks/use-top-resources-by-threads-metrics.d.ts +0 -14
- package/dist/src/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +0 -6
- package/dist/src/domains/metrics/hooks/use-trace-volume-metrics.d.ts +0 -10
- package/dist/src/domains/metrics/metrics-interval.d.ts +0 -7
- package/dist/src/domains/scores/hooks/use-scorers.d.ts +0 -256
- package/dist/src/domains/scores/hooks/use-trace-span-scores.d.ts +0 -73
- package/dist/src/domains/scores/hooks/use-trigger-scorer.d.ts +0 -11
- package/dist/src/domains/traces/hooks/discovery-cache.d.ts +0 -11
- package/dist/src/domains/traces/hooks/use-branch.d.ts +0 -11
- package/dist/src/domains/traces/hooks/use-create-feedback.d.ts +0 -14
- package/dist/src/domains/traces/hooks/use-delete-feedback.d.ts +0 -14
- package/dist/src/domains/traces/hooks/use-entity-names.d.ts +0 -8
- package/dist/src/domains/traces/hooks/use-environments.d.ts +0 -1
- package/dist/src/domains/traces/hooks/use-service-names.d.ts +0 -1
- package/dist/src/domains/traces/hooks/use-span-detail.d.ts +0 -5
- package/dist/src/domains/traces/hooks/use-span-feedback.d.ts +0 -74
- package/dist/src/domains/traces/hooks/use-tags.d.ts +0 -1
- package/dist/src/domains/traces/hooks/use-thread-has-other-traces.d.ts +0 -6
- package/dist/src/domains/traces/hooks/use-trace-feedback.d.ts +0 -70
- package/dist/src/domains/traces/hooks/use-trace-light-spans.d.ts +0 -6
- package/dist/src/domains/traces/hooks/use-trace-metadata-filter-fields.d.ts +0 -28
- package/dist/src/domains/traces/hooks/use-trace-or-branch-spans.d.ts +0 -28
- package/dist/src/domains/traces/hooks/use-trace-query.d.ts +0 -51
- package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +0 -253
- package/dist/src/domains/traces/hooks/use-trace-usage.d.ts +0 -6
- package/dist/src/domains/traces/hooks/use-traces.d.ts +0 -106
- package/dist/src/domains/workflows/hooks/index.d.ts +0 -4
- package/dist/src/domains/workflows/hooks/use-workflow-runs.d.ts +0 -546
- package/dist/src/domains/workflows/hooks/use-workflow.d.ts +0 -1
- package/dist/src/domains/workflows/hooks/use-workflows-run-counts.d.ts +0 -22
- package/dist/src/domains/workflows/hooks/use-workflows.d.ts +0 -6
- package/dist/src/domains/workspace/file-type.d.ts +0 -6
- package/dist/src/domains/workspace/hooks/use-skills-sh.d.ts +0 -51
- package/dist/src/domains/workspace/hooks/use-workspace-directory.d.ts +0 -17
- package/dist/src/domains/workspace/hooks/use-workspace-file-content.d.ts +0 -8
- package/dist/src/domains/workspace/hooks/use-workspace-search.d.ts +0 -11
- package/dist/src/lib/query-utils.d.ts +0 -47
- package/dist/tool-card-D9nDQgpg.cjs.map +0 -1
- package/dist/tool-card-tK9zedNb.js.map +0 -1
- package/dist/workflow-condition-card-BCSYogql.js.map +0 -1
- package/dist/workflow-condition-card-Dlo2PaKV.cjs.map +0 -1
- package/dist/workflow-debug-controls-CQc8ljAI.js.map +0 -1
- package/dist/workflow-debug-controls-WXT05idC.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-filters.es.js","sources":["../../../src/domains/traces/trace-filters.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { ListTracesArgs } from '@mastra/core/storage';\nimport {\n ActivityIcon,\n BoxIcon,\n BracesIcon,\n BuildingIcon,\n ClockIcon,\n CloudIcon,\n CpuIcon,\n FingerprintIcon,\n FlaskConicalIcon,\n GaugeIcon,\n GitBranchIcon,\n GlobeIcon,\n HashIcon,\n LayersIcon,\n MessageCircleIcon,\n MessageSquareIcon,\n PercentIcon,\n PlayIcon,\n RadioIcon,\n ServerIcon,\n ShapesIcon,\n StarIcon,\n TagIcon,\n TagsIcon,\n ThumbsUpIcon,\n TimerIcon,\n TriangleAlertIcon,\n UserIcon,\n WaypointsIcon,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport type { TraceMetadataFilterField } from './hooks/use-trace-metadata-filter-fields';\nimport {\n isTraceFilterGroup,\n isTraceFilterOperatorId,\n TRACE_QUERY_NUMERIC_FIELD_IDS,\n TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS,\n} from './trace-query-filters';\nimport type {\n TraceFilterGroup,\n TraceFilterNode,\n TraceFilterOperatorId,\n TraceFilterToken,\n TraceQueryRelatedScope,\n} from './trace-query-filters';\nimport type { TraceDatePreset } from './types';\nimport { isFilterBarGroup } from '@/ds/components/FilterBar/types';\nimport type {\n FilterBarExpression,\n FilterBarField,\n FilterBarGroup,\n FilterBarItem,\n FilterBarOperator,\n FilterBarSuggestionsResolver,\n} from '@/ds/components/FilterBar/types';\nimport type { PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\n\nexport type {\n TraceFilterGroup,\n TraceFilterLogic,\n TraceFilterNode,\n TraceFilterOperatorId,\n TraceFilterToken,\n TraceQueryRelatedScope,\n} from './trace-query-filters';\nexport { isTraceFilterGroup } from './trace-query-filters';\nimport { hueAccentColor, hueForName } from '@/lib/colors';\n\ntype EntityTypeValue = `${EntityType}`;\n\nexport type EntityOptions = { label: string; entityType: EntityTypeValue };\n\nexport const ROOT_ENTITY_TYPES = {\n AGENT: 'agent',\n WORKFLOW: 'workflow_run',\n SCORER: 'scorer',\n INGEST: 'rag_ingestion',\n} as const satisfies Record<string, EntityTypeValue>;\n\nexport const ROOT_ENTITY_TYPE_OPTIONS = [\n { label: 'Agent', entityType: ROOT_ENTITY_TYPES.AGENT },\n { label: 'Workflow', entityType: ROOT_ENTITY_TYPES.WORKFLOW },\n { label: 'Scorer', entityType: ROOT_ENTITY_TYPES.SCORER },\n { label: 'Ingest', entityType: ROOT_ENTITY_TYPES.INGEST },\n] as const satisfies readonly EntityOptions[];\n\nexport type TraceStatusFilter = 'running' | 'success' | 'error';\n\nexport const TRACE_STATUS_OPTIONS = [\n { label: 'Running', value: 'running' },\n { label: 'Success', value: 'success' },\n { label: 'Error', value: 'error' },\n] as const satisfies readonly { label: string; value: TraceStatusFilter }[];\n\n/** Field ids for \"synthetic\" filter entries — they live in dedicated URL params\n * rather than the generic `filter*` set, but appear as rows in the Filter\n * popover so users can manage all filters from one place. */\nexport const TRACE_SYNTHETIC_FILTER_FIELD_IDS = ['rootEntityType', 'status'] as const;\n\n/** Discovered `metadata.<key>` fields are dynamic, so they use a prefix-based URL\n * scheme (`filterMetadata.<key>`) instead of the fixed `filter*` param map. */\nexport const TRACE_METADATA_FILTER_FIELD_PREFIX = 'metadata.';\nexport const TRACE_METADATA_FILTER_PARAM_PREFIX = 'filterMetadata.';\n\nexport const isTraceMetadataFieldId = (fieldId: string) =>\n fieldId.startsWith(TRACE_METADATA_FILTER_FIELD_PREFIX) && fieldId.length > TRACE_METADATA_FILTER_FIELD_PREFIX.length;\n\nconst isTraceMetadataParam = (param: string) =>\n param.startsWith(TRACE_METADATA_FILTER_PARAM_PREFIX) && param.length > TRACE_METADATA_FILTER_PARAM_PREFIX.length;\n\nexport const metadataFieldIdToParam = (fieldId: string) =>\n TRACE_METADATA_FILTER_PARAM_PREFIX + fieldId.slice(TRACE_METADATA_FILTER_FIELD_PREFIX.length);\n\nexport const metadataParamToFieldId = (param: string) =>\n TRACE_METADATA_FILTER_FIELD_PREFIX + param.slice(TRACE_METADATA_FILTER_PARAM_PREFIX.length);\n\nexport const TRACE_ROOT_ENTITY_TYPE_PARAM = 'rootEntityType';\nexport const TRACE_STATUS_PARAM = 'status';\nexport const TRACE_LIST_MODE_PARAM = 'listMode';\n/** Branch-mode only: identifies the anchor span that defines the displayed subtree.\n * Stable across intra-panel span navigation (which only changes `spanId`). */\nexport const TRACE_ANCHOR_SPAN_ID_PARAM = 'anchorSpanId';\nexport const TRACE_LIST_MODE_VALUES = new Set(['traces', 'branches'] as const);\nexport type TraceListMode = 'traces' | 'branches';\n\nexport const TRACE_LIST_MODE_OPTIONS = [\n { label: 'Traces (default)', value: 'traces' },\n { label: 'Branches', value: 'branches' },\n] as const satisfies readonly { label: string; value: TraceListMode }[];\nexport const TRACE_DATE_PRESET_PARAM = 'datePreset';\nexport const TRACE_DATE_FROM_PARAM = 'dateFrom';\nexport const TRACE_DATE_TO_PARAM = 'dateTo';\n\nexport const TRACE_DATE_PRESET_VALUES = new Set<TraceDatePreset>([\n 'all',\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n]);\n\nexport const TRACE_PROPERTY_FILTER_PARAM_BY_FIELD = {\n tags: 'filterTags',\n entityId: 'filterEntityId',\n entityName: 'filterEntityName',\n traceId: 'filterTraceId',\n runId: 'filterRunId',\n threadId: 'filterThreadId',\n sessionId: 'filterSessionId',\n requestId: 'filterRequestId',\n resourceId: 'filterResourceId',\n userId: 'filterUserId',\n organizationId: 'filterOrganizationId',\n serviceName: 'filterServiceName',\n environment: 'filterEnvironment',\n experimentId: 'filterExperimentId',\n 'spans.name': 'filterSpanName',\n 'spans.spanType': 'filterSpanType',\n 'spans.model': 'filterSpanModel',\n 'spans.provider': 'filterSpanProvider',\n 'spans.durationMs': 'filterSpanDurationMs',\n 'spans.error': 'filterSpanError',\n 'scores.scorerId': 'filterScorerId',\n 'scores.score': 'filterScore',\n 'feedback.feedbackType': 'filterFeedbackType',\n 'feedback.value': 'filterFeedbackValue',\n 'feedback.comment': 'filterFeedbackComment',\n} as const;\n\nexport const TRACE_PROPERTY_FILTER_FIELD_IDS = Object.keys(TRACE_PROPERTY_FILTER_PARAM_BY_FIELD) as Array<\n keyof typeof TRACE_PROPERTY_FILTER_PARAM_BY_FIELD\n>;\n\n/** The operator of a filter lives in a sibling `<valueParam>.op` param; omitted\n * means the default (`is`). Metadata keys cannot contain dots, so the suffix is\n * unambiguous. */\nexport const TRACE_FILTER_OPERATOR_PARAM_SUFFIX = '.op';\nexport const traceFilterOperatorParam = (valueParam: string) => valueParam + TRACE_FILTER_OPERATOR_PARAM_SUFFIX;\nconst isTraceFilterOperatorParam = (param: string) => param.endsWith(TRACE_FILTER_OPERATOR_PARAM_SUFFIX);\n\nconst isPresenceOperator = (operatorId: TraceFilterOperatorId | undefined) =>\n operatorId === 'exists' || operatorId === 'notExists';\nconst isManyOperator = (operatorId: TraceFilterOperatorId | undefined) => operatorId === 'in' || operatorId === 'notIn';\n\n/** Default operator for a token without one: arrays mean set membership. */\nexport const traceFilterTokenOperator = (token: TraceFilterToken): TraceFilterOperatorId =>\n token.operatorId ?? (Array.isArray(token.value) ? 'in' : 'is');\n\nconst readTraceFilterOperator = (searchParams: URLSearchParams, valueParam: string) => {\n const raw = searchParams.get(traceFilterOperatorParam(valueParam));\n return raw !== null && isTraceFilterOperatorId(raw) ? raw : undefined;\n};\n\nexport const TRACE_STATUS_VALUES = new Set<TraceStatusFilter>(['running', 'success', 'error']);\n\nexport const DEFAULT_TRACE_FILTERS_STORAGE_KEY = 'mastra:traces:saved-filters';\n\n/** Serialize the filter-related URL params (relative date preset + rootEntityType +\n * status + generic filterX set) to localStorage so the user can restore them on next\n * visit. A `custom` absolute range is never saved: it would be stale by the next visit.\n * An empty set clears the key. Throws no errors — storage being unavailable is fine. */\nexport function saveTraceFiltersToStorage(\n params: URLSearchParams,\n storageKey: string = DEFAULT_TRACE_FILTERS_STORAGE_KEY,\n): void {\n const serialized = getPreservedTraceFilterParams(params);\n const preset = params.get(TRACE_DATE_PRESET_PARAM);\n if (preset && preset !== 'custom') serialized.set(TRACE_DATE_PRESET_PARAM, preset);\n // An empty group is editor state (popover still open), not a filter worth restoring.\n const groups = getTraceFilterGroups(serialized).filter(group => group.nodes.length > 0);\n serialized.delete(TRACE_FILTER_GROUP_PARAM);\n for (const group of groups) serialized.append(TRACE_FILTER_GROUP_PARAM, serializeTraceFilterGroup(group));\n\n if (!serialized.toString()) {\n clearSavedTraceFilters(storageKey);\n return;\n }\n\n try {\n localStorage.setItem(storageKey, serialized.toString());\n } catch {\n // localStorage may be unavailable (private mode / quota) — silently skip.\n }\n}\n\n/** Forget any previously saved filter set. Called from the \"Remove filters\"\n * action so the next plain sidebar nav lands on an empty page. */\nexport function clearSavedTraceFilters(storageKey: string = DEFAULT_TRACE_FILTERS_STORAGE_KEY): void {\n try {\n localStorage.removeItem(storageKey);\n } catch {\n // ignore — storage may be unavailable\n }\n}\n\n/** Read a previously saved filter set and return it as URLSearchParams, or\n * null if nothing is saved or storage is unavailable. */\nexport function loadTraceFiltersFromStorage(\n storageKey: string = DEFAULT_TRACE_FILTERS_STORAGE_KEY,\n): URLSearchParams | null {\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return null;\n const parsed = new URLSearchParams(raw);\n return parsed.toString() ? parsed : null;\n } catch {\n return null;\n }\n}\n\n/** True when `params` carries any filter-related key — used to decide whether\n * to hydrate from localStorage on page mount (we only hydrate when the URL is\n * filter-clean, i.e. the user landed here via a plain sidebar nav). */\nexport function hasAnyTraceFilterParams(params: URLSearchParams): boolean {\n if (params.has(TRACE_DATE_PRESET_PARAM)) return true;\n if (params.has(TRACE_DATE_FROM_PARAM)) return true;\n if (params.has(TRACE_DATE_TO_PARAM)) return true;\n if (params.has(TRACE_ROOT_ENTITY_TYPE_PARAM)) return true;\n if (params.has(TRACE_STATUS_PARAM)) return true;\n if (params.has(TRACE_LIST_MODE_PARAM)) return true;\n if (params.has(TRACE_FILTER_GROUP_PARAM)) return true;\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n if (params.has(TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId])) return true;\n }\n for (const param of params.keys()) {\n if (isTraceMetadataParam(param)) return true;\n }\n return false;\n}\n\n/** Every operator the trace query API supports, keyed by the UI id that goes in the URL. */\nexport const TRACE_FILTER_BAR_OPERATORS: (FilterBarOperator & { id: TraceFilterOperatorId })[] = [\n { id: 'is', label: 'is' },\n { id: 'isNot', label: 'is not' },\n { id: 'in', label: 'is any of', arity: 'many' },\n { id: 'notIn', label: 'is none of', arity: 'many' },\n { id: 'exists', label: 'exists', arity: 'none' },\n { id: 'notExists', label: 'does not exist', arity: 'none' },\n { id: 'gt', label: 'greater than' },\n { id: 'gte', label: 'at least' },\n { id: 'lt', label: 'less than' },\n { id: 'lte', label: 'at most' },\n];\n\nconst TRACE_STRING_OPERATORS: TraceFilterOperatorId[] = ['is', 'isNot', 'in', 'notIn', 'exists', 'notExists'];\n/** Fields every trace carries (`traceId`, `entityName`): presence operators would never be false. */\nconst TRACE_REQUIRED_STRING_OPERATORS: TraceFilterOperatorId[] = ['is', 'isNot', 'in', 'notIn'];\nconst TRACE_NUMBER_OPERATORS: TraceFilterOperatorId[] = [\n 'is',\n 'isNot',\n 'gt',\n 'gte',\n 'lt',\n 'lte',\n 'exists',\n 'notExists',\n];\nconst TRACE_PRESENCE_OPERATORS: TraceFilterOperatorId[] = ['exists', 'notExists'];\n/** Synthetic fields live in a single dedicated URL param, so they cannot carry an operator. */\nconst TRACE_SYNTHETIC_OPERATORS: TraceFilterOperatorId[] = ['is', 'in'];\n// The legacy list endpoint only matches by equality.\nconst TRACE_LEGACY_OPERATORS: TraceFilterOperatorId[] = ['is'];\n\nconst TRACE_FILTER_BAR_LABELS: Record<string, string> = {\n rootEntityType: 'Primitive type',\n entityName: 'Primitive name',\n entityId: 'Primitive ID',\n status: 'Status',\n tags: 'Tags',\n serviceName: 'Service Name',\n environment: 'Environment',\n traceId: 'Trace ID',\n runId: 'Run ID',\n threadId: 'Thread ID',\n sessionId: 'Session ID',\n requestId: 'Request ID',\n resourceId: 'Resource ID',\n userId: 'User ID',\n organizationId: 'Organization ID',\n experimentId: 'Experiment ID',\n 'spans.name': 'Span name',\n 'spans.spanType': 'Span type',\n 'spans.model': 'Model',\n 'spans.provider': 'Provider',\n 'spans.durationMs': 'Span duration (ms)',\n 'spans.error': 'Span error',\n 'scores.scorerId': 'Scorer',\n 'scores.score': 'Score',\n 'feedback.feedbackType': 'Feedback type',\n 'feedback.value': 'Feedback value',\n 'feedback.comment': 'Feedback comment',\n};\n\nconst TRACE_FILTER_BAR_FIELD_META: Record<string, { icon: LucideIcon; color: string }> = {\n timeRange: { icon: ClockIcon, color: hueAccentColor('amber') },\n rootEntityType: { icon: BoxIcon, color: hueAccentColor('purple') },\n entityName: { icon: TagIcon, color: hueAccentColor('cyan') },\n entityId: { icon: FingerprintIcon, color: hueAccentColor('pink') },\n status: { icon: ActivityIcon, color: hueAccentColor('orange') },\n tags: { icon: TagsIcon, color: hueAccentColor('pink') },\n serviceName: { icon: ServerIcon, color: hueAccentColor('cyan') },\n environment: { icon: GlobeIcon, color: hueAccentColor('green') },\n traceId: { icon: WaypointsIcon, color: hueAccentColor('blue') },\n runId: { icon: PlayIcon, color: hueAccentColor('purple') },\n threadId: { icon: MessageSquareIcon, color: hueAccentColor('blue') },\n sessionId: { icon: LayersIcon, color: hueAccentColor('orange') },\n requestId: { icon: RadioIcon, color: hueAccentColor('amber') },\n resourceId: { icon: HashIcon, color: hueAccentColor('green') },\n userId: { icon: UserIcon, color: hueAccentColor('orange') },\n organizationId: { icon: BuildingIcon, color: hueAccentColor('cyan') },\n experimentId: { icon: FlaskConicalIcon, color: hueAccentColor('pink') },\n 'spans.name': { icon: GitBranchIcon, color: hueAccentColor('blue') },\n 'spans.spanType': { icon: ShapesIcon, color: hueAccentColor('purple') },\n 'spans.model': { icon: CpuIcon, color: hueAccentColor('green') },\n 'spans.provider': { icon: CloudIcon, color: hueAccentColor('cyan') },\n 'spans.durationMs': { icon: TimerIcon, color: hueAccentColor('orange') },\n 'spans.error': { icon: TriangleAlertIcon, color: 'var(--destructive-foreground)' },\n 'scores.scorerId': { icon: GaugeIcon, color: hueAccentColor('green') },\n 'scores.score': { icon: PercentIcon, color: hueAccentColor('amber') },\n 'feedback.feedbackType': { icon: ThumbsUpIcon, color: hueAccentColor('purple') },\n 'feedback.value': { icon: StarIcon, color: hueAccentColor('amber') },\n 'feedback.comment': { icon: MessageCircleIcon, color: hueAccentColor('blue') },\n};\n\nexport const traceFilterFieldIcon = (fieldId: string) => TRACE_FILTER_BAR_FIELD_META[fieldId]?.icon;\n\n/** Stable per-field accent; known keys use a curated hue, others fall back to a hashed one. */\nexport const traceFilterFieldColor = (fieldId: string) => {\n return TRACE_FILTER_BAR_FIELD_META[fieldId]?.color ?? hueAccentColor(hueForName(fieldId));\n};\n\nconst traceFieldBase = (id: string) => ({\n id,\n label: TRACE_FILTER_BAR_LABELS[id] ?? id,\n icon: traceFilterFieldIcon(id),\n color: traceFilterFieldColor(id),\n});\n\nconst TRACE_FILTER_BAR_TEXT_FIELD_IDS = [\n 'entityId',\n 'traceId',\n 'runId',\n 'threadId',\n 'sessionId',\n 'requestId',\n 'resourceId',\n 'userId',\n 'organizationId',\n 'experimentId',\n] as const;\n\nconst TRACE_FILTER_BAR_RELATED_FIELD_IDS = [\n 'spans.name',\n 'spans.spanType',\n 'spans.model',\n 'spans.provider',\n 'spans.durationMs',\n 'spans.error',\n 'scores.scorerId',\n 'scores.score',\n 'feedback.feedbackType',\n 'feedback.value',\n 'feedback.comment',\n] as const;\ntype TraceFilterRelatedFieldId = (typeof TRACE_FILTER_BAR_RELATED_FIELD_IDS)[number];\n\nconst TRACE_FILTER_BAR_PRESENCE_FIELD_IDS = new Set<string>(['spans.error', 'feedback.comment']);\n\nconst byLabel = (a: FilterBarField, b: FilterBarField) => a.label.localeCompare(b.label);\n\n/** FilterBar field definitions for the trace pages. Fields the query API cannot\n * filter on (see `TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS`) are omitted, as is the\n * `running` status, so no chip advertises a filter that has no effect. Hidden\n * fields are never offered in the input's field step but still label existing\n * (e.g. scoped, read-only) chips. */\nexport function createTraceFilterBarFields({\n availableRootEntityNames,\n availableEnvironments,\n hiddenFieldIds = [],\n metadataFields = [],\n valueSuggestions,\n withQueryTrace = true,\n}: {\n availableRootEntityNames: string[];\n availableEnvironments: string[];\n hiddenFieldIds?: readonly string[];\n /** Discovered `metadata.<key>` paths with a lazy value-suggestions resolver each. */\n metadataFields?: readonly TraceMetadataFilterField[];\n /** Builds a lazy value resolver for a related-scope field (`spans.model`, …). Absent → free text. */\n valueSuggestions?: (scope: TraceQueryRelatedScope, path: string) => FilterBarSuggestionsResolver;\n /**\n * When false, only fields the legacy list endpoint (`buildTraceListFilters`) can express are offered, each with\n * the `is` operator only: no related-scope (`spans.*`, `scores.*`, `feedback.*`) or metadata fields.\n */\n withQueryTrace?: boolean;\n}): FilterBarField[] {\n const pick = (\n id: string,\n suggestions: { value: string; label?: string }[],\n operators: TraceFilterOperatorId[] = TRACE_STRING_OPERATORS,\n ): FilterBarField => ({\n ...traceFieldBase(id),\n operators,\n strict: true,\n suggestions,\n });\n const text = (id: string): FilterBarField => ({\n ...traceFieldBase(id),\n operators: id === 'traceId' ? TRACE_REQUIRED_STRING_OPERATORS : TRACE_STRING_OPERATORS,\n });\n const relatedPick = (id: TraceFilterRelatedFieldId): FilterBarField => {\n const [scope, path] = id.split('.') as [TraceQueryRelatedScope, string];\n const resolver = valueSuggestions?.(scope, path);\n return {\n ...traceFieldBase(id),\n operators: TRACE_STRING_OPERATORS,\n ...(resolver ? { strict: true, suggestions: resolver } : {}),\n };\n };\n const number = (id: string): FilterBarField => ({\n ...traceFieldBase(id),\n type: 'number',\n operators: TRACE_NUMBER_OPERATORS,\n });\n const presence = (id: string): FilterBarField => ({ ...traceFieldBase(id), operators: TRACE_PRESENCE_OPERATORS });\n\n const pickFields: FilterBarField[] = [\n pick(\n 'rootEntityType',\n ROOT_ENTITY_TYPE_OPTIONS.map(o => ({ value: o.entityType, label: o.label })),\n TRACE_SYNTHETIC_OPERATORS,\n ),\n pick(\n 'entityName',\n availableRootEntityNames.map(name => ({ value: name })),\n TRACE_REQUIRED_STRING_OPERATORS,\n ),\n pick(\n 'status',\n TRACE_STATUS_OPTIONS.filter(o => o.value !== 'running').map(o => ({ value: o.value, label: o.label })),\n TRACE_SYNTHETIC_OPERATORS,\n ),\n pick(\n 'environment',\n availableEnvironments.map(env => ({ value: env })),\n ),\n ];\n const textFields = TRACE_FILTER_BAR_TEXT_FIELD_IDS.map(text);\n const relatedFields = (['spans', 'scores', 'feedback'] as const).flatMap(scope =>\n TRACE_FILTER_BAR_RELATED_FIELD_IDS.filter(id => id.startsWith(`${scope}.`))\n .map(id => {\n if (TRACE_QUERY_NUMERIC_FIELD_IDS.has(id)) return number(id);\n if (TRACE_FILTER_BAR_PRESENCE_FIELD_IDS.has(id)) return presence(id);\n return relatedPick(id);\n })\n .sort(byLabel),\n );\n const metadataBarFields: FilterBarField[] = metadataFields\n .filter(({ path }) => isTraceMetadataFieldId(path))\n .map(({ path, suggestions }) => ({\n id: path,\n label: path.slice(TRACE_METADATA_FILTER_FIELD_PREFIX.length),\n icon: BracesIcon,\n color: hueAccentColor(hueForName(path)),\n operators: TRACE_STRING_OPERATORS,\n suggestions,\n }));\n\n const hidden = new Set(hiddenFieldIds);\n if (!withQueryTrace) {\n return [...pickFields.sort(byLabel), ...textFields.sort(byLabel)].map(field => ({\n ...field,\n operators: TRACE_LEGACY_OPERATORS,\n ...(hidden.has(field.id) ? { hidden: true } : {}),\n }));\n }\n return [\n ...pickFields.sort(byLabel),\n ...textFields.sort(byLabel),\n ...relatedFields,\n ...metadataBarFields.sort(byLabel),\n ]\n .filter(field => !TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS.has(field.id))\n .map(field => (hidden.has(field.id) ? { ...field, hidden: true } : field));\n}\n\n/** One FilterBar item per token, keyed by field id so chip order == URL order.\n * Empty values ('' / []) are kept: that's a pending chip whose field was just\n * changed and whose value hasn't been picked yet (the query builder skips it).\n * Only the legacy 'Any' sentinel is mapped back to an empty value. */\nexport function traceTokensToFilterBarItems(tokens: TraceFilterToken[]): FilterBarItem[] {\n return tokens.map(token => ({\n id: token.fieldId,\n fieldId: token.fieldId,\n operatorId: traceFilterTokenOperator(token),\n value: token.value === 'Any' ? '' : token.value,\n }));\n}\n\nexport function filterBarItemsToTraceTokens(items: FilterBarItem[]): TraceFilterToken[] {\n return items.map(filterBarItemToTraceToken);\n}\n\nfunction filterBarItemToTraceToken(item: FilterBarItem): TraceFilterToken {\n const token: TraceFilterToken = {\n fieldId: item.fieldId,\n value: Array.isArray(item.value) ? item.value.map(String) : String(item.value),\n };\n // Only carry a non-default operator so tokens stay minimal (and URLs stay short).\n if (isTraceFilterOperatorId(item.operatorId) && item.operatorId !== traceFilterTokenOperator(token)) {\n token.operatorId = item.operatorId;\n }\n return token;\n}\n\n/** Expression-mode value for the FilterBar: root tokens as items, then one\n * group node per advanced filter. Ids inside groups are carried as-is. */\nexport function traceFiltersToFilterBarExpression(\n tokens: TraceFilterToken[],\n groups: TraceFilterGroup[],\n): FilterBarExpression {\n return { logic: 'and', nodes: [...traceTokensToFilterBarItems(tokens), ...groups.map(traceGroupToFilterBarGroup)] };\n}\n\nfunction traceGroupToFilterBarGroup(group: TraceFilterGroup): FilterBarGroup {\n return {\n id: group.id,\n kind: 'group',\n logic: group.logic,\n nodes: group.nodes.map(node =>\n isTraceFilterGroup(node)\n ? traceGroupToFilterBarGroup(node)\n : {\n id: node.id ?? node.fieldId,\n fieldId: node.fieldId,\n operatorId: traceFilterTokenOperator(node),\n value: node.value === 'Any' ? '' : node.value,\n },\n ),\n };\n}\n\nexport function filterBarExpressionToTraceFilters(expression: FilterBarExpression): {\n tokens: TraceFilterToken[];\n groups: TraceFilterGroup[];\n} {\n const items = expression.nodes.filter((node): node is FilterBarItem => !isFilterBarGroup(node));\n const groups = expression.nodes.filter(isFilterBarGroup).map(filterBarGroupToTraceGroup);\n return { tokens: filterBarItemsToTraceTokens(items), groups };\n}\n\nfunction filterBarGroupToTraceGroup(group: FilterBarGroup): TraceFilterGroup {\n const nodes = group.nodes.map(\n (node): TraceFilterNode =>\n isFilterBarGroup(node) ? filterBarGroupToTraceGroup(node) : { id: node.id, ...filterBarItemToTraceToken(node) },\n );\n // Empty groups are kept: \"Advanced filter…\" emits one and opens its editor, and the\n // FilterBar prunes it itself when the popover closes without any condition.\n return { id: group.id, logic: group.logic, nodes };\n}\n\n/**\n * Read filter tokens from URL search params preserving the order in which each\n * filter was first added (URLSearchParams iterates in insertion order). This\n * is used by the Filter popover + PropertyFilterApplied pills so the UI reflects the\n * order the user created the filters in.\n */\nexport function getTracePropertyFilterTokens(searchParams: URLSearchParams): TraceFilterToken[] {\n const tokens: TraceFilterToken[] = [];\n\n // Map URL param name → fieldId for both generic filterX params and the\n // dedicated synthetic params (rootEntityType, status).\n const paramToFieldId = new Map<string, string>([\n [TRACE_ROOT_ENTITY_TYPE_PARAM, 'rootEntityType'],\n [TRACE_STATUS_PARAM, 'status'],\n ]);\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n paramToFieldId.set(TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId], fieldId);\n }\n\n const seen = new Set<string>();\n for (const [paramName] of searchParams.entries()) {\n if (isTraceFilterOperatorParam(paramName)) continue;\n const fieldId = isTraceMetadataParam(paramName) ? metadataParamToFieldId(paramName) : paramToFieldId.get(paramName);\n if (!fieldId || seen.has(fieldId)) continue;\n seen.add(fieldId);\n\n const operatorId = readTraceFilterOperator(searchParams, paramName);\n const raw = searchParams.getAll(paramName);\n\n if (fieldId === 'tags' || isManyOperator(operatorId)) {\n // An empty `filterTags=` sentinel keeps the pill alive after a Reset\n // (neutral state = no selections) so users can re-pick without losing\n // the pill's position. Non-empty entries are the actual selected values.\n tokens.push({ fieldId, value: raw.filter(Boolean), ...(operatorId ? { operatorId } : {}) });\n continue;\n }\n\n // Text and synthetic single-value fields: include empty strings so\n // pending-but-not-yet-filled filters survive URL round-trips.\n const value = raw[0];\n if (value !== undefined) tokens.push({ fieldId, value, ...(operatorId ? { operatorId } : {}) });\n }\n\n return tokens;\n}\n\nexport function getPreservedTraceFilterParams(searchParams: URLSearchParams) {\n const next = new URLSearchParams();\n\n const rootEntityType = searchParams.get(TRACE_ROOT_ENTITY_TYPE_PARAM);\n if (rootEntityType) next.set(TRACE_ROOT_ENTITY_TYPE_PARAM, rootEntityType);\n\n const status = searchParams.get(TRACE_STATUS_PARAM);\n if (status) next.set(TRACE_STATUS_PARAM, status);\n\n const listMode = searchParams.get(TRACE_LIST_MODE_PARAM);\n if (listMode) next.set(TRACE_LIST_MODE_PARAM, listMode);\n\n const preserve = (param: string) => {\n const operatorId = readTraceFilterOperator(searchParams, param);\n const values = searchParams.getAll(param).filter(value => value || isPresenceOperator(operatorId));\n if (!values.length) return;\n for (const value of values) next.append(param, value);\n if (operatorId) next.set(traceFilterOperatorParam(param), operatorId);\n };\n\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n const param = TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId];\n if (fieldId === 'tags') {\n for (const value of searchParams.getAll(param)) {\n next.append(param, value);\n }\n continue;\n }\n preserve(param);\n }\n\n const seenMetadata = new Set<string>();\n for (const param of searchParams.keys()) {\n if (!isTraceMetadataParam(param) || isTraceFilterOperatorParam(param) || seenMetadata.has(param)) continue;\n seenMetadata.add(param);\n preserve(param);\n }\n\n for (const group of getTraceFilterGroups(searchParams)) {\n next.append(TRACE_FILTER_GROUP_PARAM, serializeTraceFilterGroup(group));\n }\n\n return next;\n}\n\n/**\n * Clear all filter params from `params` and re-add them in the given `tokens`\n * order so the URL (and therefore the PropertyFilterApplied pills) reflects the\n * creation order of filters. Handles the generic `filterX` params plus the\n * dedicated synthetic params (rootEntityType, status).\n */\nexport function applyTracePropertyFilterTokens(\n params: URLSearchParams,\n tokens: TraceFilterToken[],\n groups: TraceFilterGroup[] = [],\n) {\n params.delete(TRACE_ROOT_ENTITY_TYPE_PARAM);\n params.delete(TRACE_STATUS_PARAM);\n params.delete(TRACE_FILTER_GROUP_PARAM);\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n const param = TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId];\n params.delete(param);\n params.delete(traceFilterOperatorParam(param));\n }\n for (const param of Array.from(params.keys())) {\n if (isTraceMetadataParam(param)) params.delete(param);\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'rootEntityType' && typeof token.value === 'string') {\n params.set(TRACE_ROOT_ENTITY_TYPE_PARAM, token.value);\n continue;\n }\n if (token.fieldId === 'status' && typeof token.value === 'string') {\n params.set(TRACE_STATUS_PARAM, token.value);\n continue;\n }\n\n const param = isTraceMetadataFieldId(token.fieldId)\n ? metadataFieldIdToParam(token.fieldId)\n : TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[token.fieldId as keyof typeof TRACE_PROPERTY_FILTER_PARAM_BY_FIELD];\n if (!param) continue;\n\n if (Array.isArray(token.value)) {\n if (token.value.length === 0) {\n // Empty sentinel — keeps the pill visible after Reset.\n params.append(param, '');\n } else {\n for (const value of token.value) {\n params.append(param, value);\n }\n }\n } else {\n // Persist empty / 'Any' values too so neutralized-but-still-visible pills\n // survive URL round-trips. The query builder skips these so neutrals\n // never reach the backend.\n params.set(param, token.value.trim());\n }\n\n // Only `is` is implicit on read. `in` must be written explicitly (except\n // for tags, which are always multi-valued) or a reload would collapse the\n // selection to its first value.\n const operatorId = traceFilterTokenOperator(token);\n const implicit = token.fieldId === 'tags' ? 'in' : 'is';\n if (operatorId !== implicit) params.set(traceFilterOperatorParam(param), operatorId);\n }\n\n for (const group of groups) {\n params.append(TRACE_FILTER_GROUP_PARAM, serializeTraceFilterGroup(group));\n }\n}\n\n/** Root-level advanced filter groups live in a repeatable `filterGroup` param,\n * one compact JSON subtree each. Node ids are part of the payload so the\n * FilterBar keeps chip identity across URL round-trips. */\nexport const TRACE_FILTER_GROUP_PARAM = 'filterGroup';\n\nexport const serializeTraceFilterGroup = (group: TraceFilterGroup): string => JSON.stringify(group);\n\nexport function getTraceFilterGroups(searchParams: URLSearchParams): TraceFilterGroup[] {\n return searchParams\n .getAll(TRACE_FILTER_GROUP_PARAM)\n .map(parseTraceFilterGroupParam)\n .filter((group): group is TraceFilterGroup => group !== undefined);\n}\n\nexport function parseTraceFilterGroupParam(raw: string): TraceFilterGroup | undefined {\n try {\n return parseTraceFilterGroup(JSON.parse(raw));\n } catch {\n return undefined;\n }\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => typeof value === 'object' && value !== null;\n\nconst isStringArray = (value: unknown): value is string[] =>\n Array.isArray(value) && value.every(entry => typeof entry === 'string');\n\nfunction parseTraceFilterGroup(input: unknown): TraceFilterGroup | undefined {\n if (!isRecord(input) || typeof input.id !== 'string') return undefined;\n if (input.logic !== 'and' && input.logic !== 'or') return undefined;\n if (!Array.isArray(input.nodes)) return undefined;\n const nodes = input.nodes.map(parseTraceFilterNode).filter((node): node is TraceFilterNode => node !== undefined);\n return { id: input.id, logic: input.logic, nodes };\n}\n\nfunction parseTraceFilterNode(input: unknown): TraceFilterNode | undefined {\n if (!isRecord(input)) return undefined;\n if ('nodes' in input) return parseTraceFilterGroup(input);\n if (typeof input.id !== 'string' || typeof input.fieldId !== 'string') return undefined;\n if (typeof input.value !== 'string' && !isStringArray(input.value)) return undefined;\n const token: TraceFilterToken = { id: input.id, fieldId: input.fieldId, value: input.value };\n if (typeof input.operatorId === 'string' && isTraceFilterOperatorId(input.operatorId)) {\n token.operatorId = input.operatorId;\n }\n return token;\n}\n\nexport function buildTraceListFilters({\n rootEntityType,\n status,\n dateFrom,\n dateTo,\n tokens,\n}: {\n rootEntityType?: string;\n status?: TraceStatusFilter;\n dateFrom?: Date;\n dateTo?: Date;\n tokens: PropertyFilterToken[];\n}): ListTracesArgs['filters'] {\n const filters: NonNullable<ListTracesArgs['filters']> = {};\n\n if (rootEntityType) {\n filters.entityType = rootEntityType as NonNullable<ListTracesArgs['filters']>['entityType'];\n }\n\n if (status) {\n filters.status = status as NonNullable<ListTracesArgs['filters']>['status'];\n }\n\n if (dateFrom) {\n filters.startedAt = { start: dateFrom };\n }\n\n if (dateTo) {\n filters.endedAt = { end: dateTo };\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'tags') {\n if (Array.isArray(token.value) && token.value.length > 0) {\n filters.tags = token.value;\n } else if (typeof token.value === 'string' && token.value.trim()) {\n // pick-multi tags: single-string token → wrap for the server's array schema.\n filters.tags = [token.value.trim()];\n }\n continue;\n }\n\n if (typeof token.value !== 'string') continue;\n // Skip empty-string tokens (unfilled pending filters) and 'Any'\n // (pick-multi single-select neutral state) so neutrals never reach the\n // backend.\n if (!token.value.trim()) continue;\n if (token.value === 'Any') continue;\n\n switch (token.fieldId) {\n case 'entityId':\n filters.entityId = token.value;\n break;\n case 'entityName':\n filters.entityName = token.value;\n break;\n case 'traceId':\n filters.traceId = token.value;\n break;\n case 'runId':\n filters.runId = token.value;\n break;\n case 'threadId':\n filters.threadId = token.value;\n break;\n case 'sessionId':\n filters.sessionId = token.value;\n break;\n case 'requestId':\n filters.requestId = token.value;\n break;\n case 'resourceId':\n filters.resourceId = token.value;\n break;\n case 'userId':\n filters.userId = token.value;\n break;\n case 'organizationId':\n filters.organizationId = token.value;\n break;\n case 'serviceName':\n filters.serviceName = token.value;\n break;\n case 'environment':\n filters.environment = token.value;\n break;\n case 'experimentId':\n filters.experimentId = token.value;\n break;\n default:\n break;\n }\n }\n\n return filters;\n}\n"],"names":[],"mappings":";;;;;AA2EO,MAAM,iBAAA,GAAoB;AAAA,EAC/B,KAAA,EAAO,OAAA;AAAA,EACP,QAAA,EAAU,cAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ;AACV;AAEO,MAAM,wBAAA,GAA2B;AAAA,EACtC,EAAE,KAAA,EAAO,OAAA,EAAS,UAAA,EAAY,kBAAkB,KAAA,EAAM;AAAA,EACtD,EAAE,KAAA,EAAO,UAAA,EAAY,UAAA,EAAY,kBAAkB,QAAA,EAAS;AAAA,EAC5D,EAAE,KAAA,EAAO,QAAA,EAAU,UAAA,EAAY,kBAAkB,MAAA,EAAO;AAAA,EACxD,EAAE,KAAA,EAAO,QAAA,EAAU,UAAA,EAAY,kBAAkB,MAAA;AACnD;AAIO,MAAM,oBAAA,GAAuB;AAAA,EAClC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAU;AAAA,EACrC,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA;AAC3B;AAKO,MAAM,gCAAA,GAAmC,CAAC,gBAAA,EAAkB,QAAQ;AAIpE,MAAM,kCAAA,GAAqC;AAC3C,MAAM,kCAAA,GAAqC;AAE3C,MAAM,sBAAA,GAAyB,CAAC,OAAA,KACrC,OAAA,CAAQ,WAAW,kCAAkC,CAAA,IAAK,OAAA,CAAQ,MAAA,GAAS,kCAAA,CAAmC;AAEhH,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAC5B,KAAA,CAAM,WAAW,kCAAkC,CAAA,IAAK,KAAA,CAAM,MAAA,GAAS,kCAAA,CAAmC,MAAA;AAErG,MAAM,yBAAyB,CAAC,OAAA,KACrC,qCAAqC,OAAA,CAAQ,KAAA,CAAM,mCAAmC,MAAM;AAEvF,MAAM,yBAAyB,CAAC,KAAA,KACrC,qCAAqC,KAAA,CAAM,KAAA,CAAM,mCAAmC,MAAM;AAErF,MAAM,4BAAA,GAA+B;AACrC,MAAM,kBAAA,GAAqB;AAC3B,MAAM,qBAAA,GAAwB;AAG9B,MAAM,0BAAA,GAA6B;AACnC,MAAM,yCAAyB,IAAI,GAAA,CAAI,CAAC,QAAA,EAAU,UAAU,CAAU;AAGtE,MAAM,uBAAA,GAA0B;AAAA,EACrC,EAAE,KAAA,EAAO,kBAAA,EAAoB,KAAA,EAAO,QAAA,EAAS;AAAA,EAC7C,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA;AAC9B;AACO,MAAM,uBAAA,GAA0B;AAChC,MAAM,qBAAA,GAAwB;AAC9B,MAAM,mBAAA,GAAsB;AAE5B,MAAM,wBAAA,uBAA+B,GAAA,CAAqB;AAAA,EAC/D,KAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAC;AAEM,MAAM,oCAAA,GAAuC;AAAA,EAClD,IAAA,EAAM,YAAA;AAAA,EACN,QAAA,EAAU,gBAAA;AAAA,EACV,UAAA,EAAY,kBAAA;AAAA,EACZ,OAAA,EAAS,eAAA;AAAA,EACT,KAAA,EAAO,aAAA;AAAA,EACP,QAAA,EAAU,gBAAA;AAAA,EACV,SAAA,EAAW,iBAAA;AAAA,EACX,SAAA,EAAW,iBAAA;AAAA,EACX,UAAA,EAAY,kBAAA;AAAA,EACZ,MAAA,EAAQ,cAAA;AAAA,EACR,cAAA,EAAgB,sBAAA;AAAA,EAChB,WAAA,EAAa,mBAAA;AAAA,EACb,WAAA,EAAa,mBAAA;AAAA,EACb,YAAA,EAAc,oBAAA;AAAA,EACd,YAAA,EAAc,gBAAA;AAAA,EACd,gBAAA,EAAkB,gBAAA;AAAA,EAClB,aAAA,EAAe,iBAAA;AAAA,EACf,gBAAA,EAAkB,oBAAA;AAAA,EAClB,kBAAA,EAAoB,sBAAA;AAAA,EACpB,aAAA,EAAe,iBAAA;AAAA,EACf,iBAAA,EAAmB,gBAAA;AAAA,EACnB,cAAA,EAAgB,aAAA;AAAA,EAChB,uBAAA,EAAyB,oBAAA;AAAA,EACzB,gBAAA,EAAkB,qBAAA;AAAA,EAClB,kBAAA,EAAoB;AACtB;AAEO,MAAM,+BAAA,GAAkC,MAAA,CAAO,IAAA,CAAK,oCAAoC;AAOxF,MAAM,kCAAA,GAAqC;AAC3C,MAAM,wBAAA,GAA2B,CAAC,UAAA,KAAuB,UAAA,GAAa;AAC7E,MAAM,0BAAA,GAA6B,CAAC,KAAA,KAAkB,KAAA,CAAM,SAAS,kCAAkC,CAAA;AAEvG,MAAM,kBAAA,GAAqB,CAAC,UAAA,KAC1B,UAAA,KAAe,YAAY,UAAA,KAAe,WAAA;AAC5C,MAAM,cAAA,GAAiB,CAAC,UAAA,KAAkD,UAAA,KAAe,QAAQ,UAAA,KAAe,OAAA;AAGzG,MAAM,wBAAA,GAA2B,CAAC,KAAA,KACvC,KAAA,CAAM,UAAA,KAAe,MAAM,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,GAAI,IAAA,GAAO,IAAA;AAE3D,MAAM,uBAAA,GAA0B,CAAC,YAAA,EAA+B,UAAA,KAAuB;AACrF,EAAA,MAAM,GAAA,GAAM,YAAA,CAAa,GAAA,CAAI,wBAAA,CAAyB,UAAU,CAAC,CAAA;AACjE,EAAA,OAAO,GAAA,KAAQ,IAAA,IAAQ,uBAAA,CAAwB,GAAG,IAAI,GAAA,GAAM,MAAA;AAC9D,CAAA;AAEO,MAAM,sCAAsB,IAAI,GAAA,CAAuB,CAAC,SAAA,EAAW,SAAA,EAAW,OAAO,CAAC;AAEtF,MAAM,iCAAA,GAAoC;AAM1C,SAAS,yBAAA,CACd,MAAA,EACA,UAAA,GAAqB,iCAAA,EACf;AACN,EAAA,MAAM,UAAA,GAAa,8BAA8B,MAAM,CAAA;AACvD,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,GAAA,CAAI,uBAAuB,CAAA;AACjD,EAAA,IAAI,UAAU,MAAA,KAAW,QAAA,EAAU,UAAA,CAAW,GAAA,CAAI,yBAAyB,MAAM,CAAA;AAEjF,EAAA,MAAM,MAAA,GAAS,qBAAqB,UAAU,CAAA,CAAE,OAAO,CAAA,KAAA,KAAS,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA;AACtF,EAAA,UAAA,CAAW,OAAO,wBAAwB,CAAA;AAC1C,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ,UAAA,CAAW,OAAO,wBAAA,EAA0B,yBAAA,CAA0B,KAAK,CAAC,CAAA;AAExG,EAAA,IAAI,CAAC,UAAA,CAAW,QAAA,EAAS,EAAG;AAC1B,IAAA,sBAAA,CAAuB,UAAU,CAAA;AACjC,IAAA;AAAA,EACF;AAEA,EAAA,IAAI;AACF,IAAA,YAAA,CAAa,OAAA,CAAQ,UAAA,EAAY,UAAA,CAAW,QAAA,EAAU,CAAA;AAAA,EACxD,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAIO,SAAS,sBAAA,CAAuB,aAAqB,iCAAA,EAAyC;AACnG,EAAA,IAAI;AACF,IAAA,YAAA,CAAa,WAAW,UAAU,CAAA;AAAA,EACpC,CAAA,CAAA,MAAQ;AAAA,EAER;AACF;AAIO,SAAS,2BAAA,CACd,aAAqB,iCAAA,EACG;AACxB,EAAA,IAAI;AACF,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,OAAA,CAAQ,UAAU,CAAA;AAC3C,IAAA,IAAI,CAAC,KAAK,OAAO,IAAA;AACjB,IAAA,MAAM,MAAA,GAAS,IAAI,eAAA,CAAgB,GAAG,CAAA;AACtC,IAAA,OAAO,MAAA,CAAO,QAAA,EAAS,GAAI,MAAA,GAAS,IAAA;AAAA,EACtC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAKO,SAAS,wBAAwB,MAAA,EAAkC;AACxE,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,uBAAuB,CAAA,EAAG,OAAO,IAAA;AAChD,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,qBAAqB,CAAA,EAAG,OAAO,IAAA;AAC9C,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,mBAAmB,CAAA,EAAG,OAAO,IAAA;AAC5C,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,4BAA4B,CAAA,EAAG,OAAO,IAAA;AACrD,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,kBAAkB,CAAA,EAAG,OAAO,IAAA;AAC3C,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,qBAAqB,CAAA,EAAG,OAAO,IAAA;AAC9C,EAAA,IAAI,MAAA,CAAO,GAAA,CAAI,wBAAwB,CAAA,EAAG,OAAO,IAAA;AACjD,EAAA,KAAA,MAAW,WAAW,+BAAA,EAAiC;AACrD,IAAA,IAAI,OAAO,GAAA,CAAI,oCAAA,CAAqC,OAAO,CAAC,GAAG,OAAO,IAAA;AAAA,EACxE;AACA,EAAA,KAAA,MAAW,KAAA,IAAS,MAAA,CAAO,IAAA,EAAK,EAAG;AACjC,IAAA,IAAI,oBAAA,CAAqB,KAAK,CAAA,EAAG,OAAO,IAAA;AAAA,EAC1C;AACA,EAAA,OAAO,KAAA;AACT;AAGO,MAAM,0BAAA,GAAoF;AAAA,EAC/F,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,IAAA,EAAK;AAAA,EACxB,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,QAAA,EAAS;AAAA,EAC/B,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,WAAA,EAAa,OAAO,MAAA,EAAO;AAAA,EAC9C,EAAE,EAAA,EAAI,OAAA,EAAS,KAAA,EAAO,YAAA,EAAc,OAAO,MAAA,EAAO;AAAA,EAClD,EAAE,EAAA,EAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,OAAO,MAAA,EAAO;AAAA,EAC/C,EAAE,EAAA,EAAI,WAAA,EAAa,KAAA,EAAO,gBAAA,EAAkB,OAAO,MAAA,EAAO;AAAA,EAC1D,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,cAAA,EAAe;AAAA,EAClC,EAAE,EAAA,EAAI,KAAA,EAAO,KAAA,EAAO,UAAA,EAAW;AAAA,EAC/B,EAAE,EAAA,EAAI,IAAA,EAAM,KAAA,EAAO,WAAA,EAAY;AAAA,EAC/B,EAAE,EAAA,EAAI,KAAA,EAAO,KAAA,EAAO,SAAA;AACtB;AAEA,MAAM,yBAAkD,CAAC,IAAA,EAAM,SAAS,IAAA,EAAM,OAAA,EAAS,UAAU,WAAW,CAAA;AAE5G,MAAM,+BAAA,GAA2D,CAAC,IAAA,EAAM,OAAA,EAAS,MAAM,OAAO,CAAA;AAC9F,MAAM,sBAAA,GAAkD;AAAA,EACtD,IAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AACA,MAAM,wBAAA,GAAoD,CAAC,QAAA,EAAU,WAAW,CAAA;AAEhF,MAAM,yBAAA,GAAqD,CAAC,IAAA,EAAM,IAAI,CAAA;AAEtE,MAAM,sBAAA,GAAkD,CAAC,IAAI,CAAA;AAE7D,MAAM,uBAAA,GAAkD;AAAA,EACtD,cAAA,EAAgB,gBAAA;AAAA,EAChB,UAAA,EAAY,gBAAA;AAAA,EACZ,QAAA,EAAU,cAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,WAAA,EAAa,cAAA;AAAA,EACb,WAAA,EAAa,aAAA;AAAA,EACb,OAAA,EAAS,UAAA;AAAA,EACT,KAAA,EAAO,QAAA;AAAA,EACP,QAAA,EAAU,WAAA;AAAA,EACV,SAAA,EAAW,YAAA;AAAA,EACX,SAAA,EAAW,YAAA;AAAA,EACX,UAAA,EAAY,aAAA;AAAA,EACZ,MAAA,EAAQ,SAAA;AAAA,EACR,cAAA,EAAgB,iBAAA;AAAA,EAChB,YAAA,EAAc,eAAA;AAAA,EACd,YAAA,EAAc,WAAA;AAAA,EACd,gBAAA,EAAkB,WAAA;AAAA,EAClB,aAAA,EAAe,OAAA;AAAA,EACf,gBAAA,EAAkB,UAAA;AAAA,EAClB,kBAAA,EAAoB,oBAAA;AAAA,EACpB,aAAA,EAAe,YAAA;AAAA,EACf,iBAAA,EAAmB,QAAA;AAAA,EACnB,cAAA,EAAgB,OAAA;AAAA,EAChB,uBAAA,EAAyB,eAAA;AAAA,EACzB,gBAAA,EAAkB,gBAAA;AAAA,EAClB,kBAAA,EAAoB;AACtB,CAAA;AAEA,MAAM,2BAAA,GAAmF;AAAA,EACvF,WAAW,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EAC7D,gBAAgB,EAAE,IAAA,EAAM,SAAS,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EACjE,YAAY,EAAE,IAAA,EAAM,SAAS,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EAC3D,UAAU,EAAE,IAAA,EAAM,iBAAiB,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACjE,QAAQ,EAAE,IAAA,EAAM,cAAc,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EAC9D,MAAM,EAAE,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACtD,aAAa,EAAE,IAAA,EAAM,YAAY,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EAC/D,aAAa,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EAC/D,SAAS,EAAE,IAAA,EAAM,eAAe,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EAC9D,OAAO,EAAE,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EACzD,UAAU,EAAE,IAAA,EAAM,mBAAmB,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACnE,WAAW,EAAE,IAAA,EAAM,YAAY,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EAC/D,WAAW,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EAC7D,YAAY,EAAE,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EAC7D,QAAQ,EAAE,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EAC1D,gBAAgB,EAAE,IAAA,EAAM,cAAc,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACpE,cAAc,EAAE,IAAA,EAAM,kBAAkB,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACtE,cAAc,EAAE,IAAA,EAAM,eAAe,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACnE,kBAAkB,EAAE,IAAA,EAAM,YAAY,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EACtE,eAAe,EAAE,IAAA,EAAM,SAAS,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EAC/D,kBAAkB,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA,EAAE;AAAA,EACnE,oBAAoB,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EACvE,aAAA,EAAe,EAAE,IAAA,EAAM,iBAAA,EAAmB,OAAO,+BAAA,EAAgC;AAAA,EACjF,mBAAmB,EAAE,IAAA,EAAM,WAAW,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EACrE,gBAAgB,EAAE,IAAA,EAAM,aAAa,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EACpE,yBAAyB,EAAE,IAAA,EAAM,cAAc,KAAA,EAAO,cAAA,CAAe,QAAQ,CAAA,EAAE;AAAA,EAC/E,kBAAkB,EAAE,IAAA,EAAM,UAAU,KAAA,EAAO,cAAA,CAAe,OAAO,CAAA,EAAE;AAAA,EACnE,oBAAoB,EAAE,IAAA,EAAM,mBAAmB,KAAA,EAAO,cAAA,CAAe,MAAM,CAAA;AAC7E,CAAA;AAEO,MAAM,oBAAA,GAAuB,CAAC,OAAA,KAAoB,2BAAA,CAA4B,OAAO,CAAA,EAAG;AAGxF,MAAM,qBAAA,GAAwB,CAAC,OAAA,KAAoB;AACxD,EAAA,OAAO,4BAA4B,OAAO,CAAA,EAAG,SAAS,cAAA,CAAe,UAAA,CAAW,OAAO,CAAC,CAAA;AAC1F;AAEA,MAAM,cAAA,GAAiB,CAAC,EAAA,MAAgB;AAAA,EACtC,EAAA;AAAA,EACA,KAAA,EAAO,uBAAA,CAAwB,EAAE,CAAA,IAAK,EAAA;AAAA,EACtC,IAAA,EAAM,qBAAqB,EAAE,CAAA;AAAA,EAC7B,KAAA,EAAO,sBAAsB,EAAE;AACjC,CAAA,CAAA;AAEA,MAAM,+BAAA,GAAkC;AAAA,EACtC,UAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAEA,MAAM,kCAAA,GAAqC;AAAA,EACzC,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,aAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,uBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAGA,MAAM,sDAAsC,IAAI,GAAA,CAAY,CAAC,aAAA,EAAe,kBAAkB,CAAC,CAAA;AAE/F,MAAM,OAAA,GAAU,CAAC,CAAA,EAAmB,CAAA,KAAsB,EAAE,KAAA,CAAM,aAAA,CAAc,EAAE,KAAK,CAAA;AAOhF,SAAS,0BAAA,CAA2B;AAAA,EACzC,wBAAA;AAAA,EACA,qBAAA;AAAA,EACA,iBAAiB,EAAC;AAAA,EAClB,iBAAiB,EAAC;AAAA,EAClB,gBAAA;AAAA,EACA,cAAA,GAAiB;AACnB,CAAA,EAaqB;AACnB,EAAA,MAAM,IAAA,GAAO,CACX,EAAA,EACA,WAAA,EACA,YAAqC,sBAAA,MACjB;AAAA,IACpB,GAAG,eAAe,EAAE,CAAA;AAAA,IACpB,SAAA;AAAA,IACA,MAAA,EAAQ,IAAA;AAAA,IACR;AAAA,GACF,CAAA;AACA,EAAA,MAAM,IAAA,GAAO,CAAC,EAAA,MAAgC;AAAA,IAC5C,GAAG,eAAe,EAAE,CAAA;AAAA,IACpB,SAAA,EAAW,EAAA,KAAO,SAAA,GAAY,+BAAA,GAAkC;AAAA,GAClE,CAAA;AACA,EAAA,MAAM,WAAA,GAAc,CAAC,EAAA,KAAkD;AACrE,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,EAAA,CAAG,MAAM,GAAG,CAAA;AAClC,IAAA,MAAM,QAAA,GAAW,gBAAA,GAAmB,KAAA,EAAO,IAAI,CAAA;AAC/C,IAAA,OAAO;AAAA,MACL,GAAG,eAAe,EAAE,CAAA;AAAA,MACpB,SAAA,EAAW,sBAAA;AAAA,MACX,GAAI,WAAW,EAAE,MAAA,EAAQ,MAAM,WAAA,EAAa,QAAA,KAAa;AAAC,KAC5D;AAAA,EACF,CAAA;AACA,EAAA,MAAM,MAAA,GAAS,CAAC,EAAA,MAAgC;AAAA,IAC9C,GAAG,eAAe,EAAE,CAAA;AAAA,IACpB,IAAA,EAAM,QAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb,CAAA;AACA,EAAA,MAAM,QAAA,GAAW,CAAC,EAAA,MAAgC,EAAE,GAAG,cAAA,CAAe,EAAE,CAAA,EAAG,SAAA,EAAW,wBAAA,EAAyB,CAAA;AAE/G,EAAA,MAAM,UAAA,GAA+B;AAAA,IACnC,IAAA;AAAA,MACE,gBAAA;AAAA,MACA,wBAAA,CAAyB,GAAA,CAAI,CAAA,CAAA,MAAM,EAAE,KAAA,EAAO,EAAE,UAAA,EAAY,KAAA,EAAO,CAAA,CAAE,KAAA,EAAM,CAAE,CAAA;AAAA,MAC3E;AAAA,KACF;AAAA,IACA,IAAA;AAAA,MACE,YAAA;AAAA,MACA,yBAAyB,GAAA,CAAI,CAAA,IAAA,MAAS,EAAE,KAAA,EAAO,MAAK,CAAE,CAAA;AAAA,MACtD;AAAA,KACF;AAAA,IACA,IAAA;AAAA,MACE,QAAA;AAAA,MACA,qBAAqB,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,KAAA,KAAU,SAAS,CAAA,CAAE,GAAA,CAAI,CAAA,CAAA,MAAM,EAAE,OAAO,CAAA,CAAE,KAAA,EAAO,KAAA,EAAO,CAAA,CAAE,OAAM,CAAE,CAAA;AAAA,MACrG;AAAA,KACF;AAAA,IACA,IAAA;AAAA,MACE,aAAA;AAAA,MACA,sBAAsB,GAAA,CAAI,CAAA,GAAA,MAAQ,EAAE,KAAA,EAAO,KAAI,CAAE;AAAA;AACnD,GACF;AACA,EAAA,MAAM,UAAA,GAAa,+BAAA,CAAgC,GAAA,CAAI,IAAI,CAAA;AAC3D,EAAA,MAAM,aAAA,GAAiB,CAAC,OAAA,EAAS,QAAA,EAAU,UAAU,CAAA,CAAY,OAAA;AAAA,IAAQ,CAAA,KAAA,KACvE,kCAAA,CAAmC,MAAA,CAAO,CAAA,EAAA,KAAM,EAAA,CAAG,UAAA,CAAW,CAAA,EAAG,KAAK,CAAA,CAAA,CAAG,CAAC,CAAA,CACvE,GAAA,CAAI,CAAA,EAAA,KAAM;AACT,MAAA,IAAI,8BAA8B,GAAA,CAAI,EAAE,CAAA,EAAG,OAAO,OAAO,EAAE,CAAA;AAC3D,MAAA,IAAI,oCAAoC,GAAA,CAAI,EAAE,CAAA,EAAG,OAAO,SAAS,EAAE,CAAA;AACnE,MAAA,OAAO,YAAY,EAAE,CAAA;AAAA,IACvB,CAAC,CAAA,CACA,IAAA,CAAK,OAAO;AAAA,GACjB;AACA,EAAA,MAAM,oBAAsC,cAAA,CACzC,MAAA,CAAO,CAAC,EAAE,MAAK,KAAM,sBAAA,CAAuB,IAAI,CAAC,EACjD,GAAA,CAAI,CAAC,EAAE,IAAA,EAAM,aAAY,MAAO;AAAA,IAC/B,EAAA,EAAI,IAAA;AAAA,IACJ,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,kCAAA,CAAmC,MAAM,CAAA;AAAA,IAC3D,IAAA,EAAM,UAAA;AAAA,IACN,KAAA,EAAO,cAAA,CAAe,UAAA,CAAW,IAAI,CAAC,CAAA;AAAA,IACtC,SAAA,EAAW,sBAAA;AAAA,IACX;AAAA,GACF,CAAE,CAAA;AAEJ,EAAA,MAAM,MAAA,GAAS,IAAI,GAAA,CAAI,cAAc,CAAA;AACrC,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,OAAO,CAAC,GAAG,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA,EAAG,GAAG,UAAA,CAAW,IAAA,CAAK,OAAO,CAAC,CAAA,CAAE,IAAI,CAAA,KAAA,MAAU;AAAA,MAC9E,GAAG,KAAA;AAAA,MACH,SAAA,EAAW,sBAAA;AAAA,MACX,GAAI,MAAA,CAAO,GAAA,CAAI,KAAA,CAAM,EAAE,IAAI,EAAE,MAAA,EAAQ,IAAA,EAAK,GAAI;AAAC,KACjD,CAAE,CAAA;AAAA,EACJ;AACA,EAAA,OAAO;AAAA,IACL,GAAG,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AAAA,IAC1B,GAAG,UAAA,CAAW,IAAA,CAAK,OAAO,CAAA;AAAA,IAC1B,GAAG,aAAA;AAAA,IACH,GAAG,iBAAA,CAAkB,IAAA,CAAK,OAAO;AAAA,GACnC,CACG,OAAO,CAAA,KAAA,KAAS,CAAC,sCAAsC,GAAA,CAAI,KAAA,CAAM,EAAE,CAAC,CAAA,CACpE,GAAA,CAAI,WAAU,MAAA,CAAO,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA,GAAI,EAAE,GAAG,KAAA,EAAO,MAAA,EAAQ,IAAA,EAAK,GAAI,KAAM,CAAA;AAC7E;AAMO,SAAS,4BAA4B,MAAA,EAA6C;AACvF,EAAA,OAAO,MAAA,CAAO,IAAI,CAAA,KAAA,MAAU;AAAA,IAC1B,IAAI,KAAA,CAAM,OAAA;AAAA,IACV,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,UAAA,EAAY,yBAAyB,KAAK,CAAA;AAAA,IAC1C,KAAA,EAAO,KAAA,CAAM,KAAA,KAAU,KAAA,GAAQ,KAAK,KAAA,CAAM;AAAA,GAC5C,CAAE,CAAA;AACJ;AAEO,SAAS,4BAA4B,KAAA,EAA4C;AACtF,EAAA,OAAO,KAAA,CAAM,IAAI,yBAAyB,CAAA;AAC5C;AAEA,SAAS,0BAA0B,IAAA,EAAuC;AACxE,EAAA,MAAM,KAAA,GAA0B;AAAA,IAC9B,SAAS,IAAA,CAAK,OAAA;AAAA,IACd,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA,GAAI,MAAA,CAAO,KAAK,KAAK;AAAA,GAC/E;AAEA,EAAA,IAAI,uBAAA,CAAwB,KAAK,UAAU,CAAA,IAAK,KAAK,UAAA,KAAe,wBAAA,CAAyB,KAAK,CAAA,EAAG;AACnG,IAAA,KAAA,CAAM,aAAa,IAAA,CAAK,UAAA;AAAA,EAC1B;AACA,EAAA,OAAO,KAAA;AACT;AAIO,SAAS,iCAAA,CACd,QACA,MAAA,EACqB;AACrB,EAAA,OAAO,EAAE,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,CAAC,GAAG,2BAAA,CAA4B,MAAM,CAAA,EAAG,GAAG,MAAA,CAAO,GAAA,CAAI,0BAA0B,CAAC,CAAA,EAAE;AACpH;AAEA,SAAS,2BAA2B,KAAA,EAAyC;AAC3E,EAAA,OAAO;AAAA,IACL,IAAI,KAAA,CAAM,EAAA;AAAA,IACV,IAAA,EAAM,OAAA;AAAA,IACN,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,KAAA,EAAO,MAAM,KAAA,CAAM,GAAA;AAAA,MAAI,UACrB,kBAAA,CAAmB,IAAI,CAAA,GACnB,0BAAA,CAA2B,IAAI,CAAA,GAC/B;AAAA,QACE,EAAA,EAAI,IAAA,CAAK,EAAA,IAAM,IAAA,CAAK,OAAA;AAAA,QACpB,SAAS,IAAA,CAAK,OAAA;AAAA,QACd,UAAA,EAAY,yBAAyB,IAAI,CAAA;AAAA,QACzC,KAAA,EAAO,IAAA,CAAK,KAAA,KAAU,KAAA,GAAQ,KAAK,IAAA,CAAK;AAAA;AAC1C;AACN,GACF;AACF;AAEO,SAAS,kCAAkC,UAAA,EAGhD;AACA,EAAA,MAAM,KAAA,GAAQ,WAAW,KAAA,CAAM,MAAA,CAAO,CAAC,IAAA,KAAgC,CAAC,gBAAA,CAAiB,IAAI,CAAC,CAAA;AAC9F,EAAA,MAAM,SAAS,UAAA,CAAW,KAAA,CAAM,OAAO,gBAAgB,CAAA,CAAE,IAAI,0BAA0B,CAAA;AACvF,EAAA,OAAO,EAAE,MAAA,EAAQ,2BAAA,CAA4B,KAAK,GAAG,MAAA,EAAO;AAC9D;AAEA,SAAS,2BAA2B,KAAA,EAAyC;AAC3E,EAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,CAAM,GAAA;AAAA,IACxB,CAAC,IAAA,KACC,gBAAA,CAAiB,IAAI,IAAI,0BAAA,CAA2B,IAAI,CAAA,GAAI,EAAE,IAAI,IAAA,CAAK,EAAA,EAAI,GAAG,yBAAA,CAA0B,IAAI,CAAA;AAAE,GAClH;AAGA,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,CAAM,IAAI,KAAA,EAAO,KAAA,CAAM,OAAO,KAAA,EAAM;AACnD;AAQO,SAAS,6BAA6B,YAAA,EAAmD;AAC9F,EAAA,MAAM,SAA6B,EAAC;AAIpC,EAAA,MAAM,cAAA,uBAAqB,GAAA,CAAoB;AAAA,IAC7C,CAAC,8BAA8B,gBAAgB,CAAA;AAAA,IAC/C,CAAC,oBAAoB,QAAQ;AAAA,GAC9B,CAAA;AACD,EAAA,KAAA,MAAW,WAAW,+BAAA,EAAiC;AACrD,IAAA,cAAA,CAAe,GAAA,CAAI,oCAAA,CAAqC,OAAO,CAAA,EAAG,OAAO,CAAA;AAAA,EAC3E;AAEA,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,KAAA,MAAW,CAAC,SAAS,CAAA,IAAK,YAAA,CAAa,SAAQ,EAAG;AAChD,IAAA,IAAI,0BAAA,CAA2B,SAAS,CAAA,EAAG;AAC3C,IAAA,MAAM,OAAA,GAAU,qBAAqB,SAAS,CAAA,GAAI,uBAAuB,SAAS,CAAA,GAAI,cAAA,CAAe,GAAA,CAAI,SAAS,CAAA;AAClH,IAAA,IAAI,CAAC,OAAA,IAAW,IAAA,CAAK,GAAA,CAAI,OAAO,CAAA,EAAG;AACnC,IAAA,IAAA,CAAK,IAAI,OAAO,CAAA;AAEhB,IAAA,MAAM,UAAA,GAAa,uBAAA,CAAwB,YAAA,EAAc,SAAS,CAAA;AAClE,IAAA,MAAM,GAAA,GAAM,YAAA,CAAa,MAAA,CAAO,SAAS,CAAA;AAEzC,IAAA,IAAI,OAAA,KAAY,MAAA,IAAU,cAAA,CAAe,UAAU,CAAA,EAAG;AAIpD,MAAA,MAAA,CAAO,IAAA,CAAK,EAAE,OAAA,EAAS,KAAA,EAAO,IAAI,MAAA,CAAO,OAAO,CAAA,EAAG,GAAI,aAAa,EAAE,UAAA,EAAW,GAAI,IAAK,CAAA;AAC1F,MAAA;AAAA,IACF;AAIA,IAAA,MAAM,KAAA,GAAQ,IAAI,CAAC,CAAA;AACnB,IAAA,IAAI,KAAA,KAAU,MAAA,EAAW,MAAA,CAAO,IAAA,CAAK,EAAE,OAAA,EAAS,KAAA,EAAO,GAAI,UAAA,GAAa,EAAE,UAAA,EAAW,GAAI,IAAK,CAAA;AAAA,EAChG;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,8BAA8B,YAAA,EAA+B;AAC3E,EAAA,MAAM,IAAA,GAAO,IAAI,eAAA,EAAgB;AAEjC,EAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,GAAA,CAAI,4BAA4B,CAAA;AACpE,EAAA,IAAI,cAAA,EAAgB,IAAA,CAAK,GAAA,CAAI,4BAAA,EAA8B,cAAc,CAAA;AAEzE,EAAA,MAAM,MAAA,GAAS,YAAA,CAAa,GAAA,CAAI,kBAAkB,CAAA;AAClD,EAAA,IAAI,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,kBAAA,EAAoB,MAAM,CAAA;AAE/C,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,GAAA,CAAI,qBAAqB,CAAA;AACvD,EAAA,IAAI,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,qBAAA,EAAuB,QAAQ,CAAA;AAEtD,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAkB;AAClC,IAAA,MAAM,UAAA,GAAa,uBAAA,CAAwB,YAAA,EAAc,KAAK,CAAA;AAC9D,IAAA,MAAM,MAAA,GAAS,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,CAAE,OAAO,CAAA,KAAA,KAAS,KAAA,IAAS,kBAAA,CAAmB,UAAU,CAAC,CAAA;AACjG,IAAA,IAAI,CAAC,OAAO,MAAA,EAAQ;AACpB,IAAA,KAAA,MAAW,KAAA,IAAS,MAAA,EAAQ,IAAA,CAAK,MAAA,CAAO,OAAO,KAAK,CAAA;AACpD,IAAA,IAAI,YAAY,IAAA,CAAK,GAAA,CAAI,wBAAA,CAAyB,KAAK,GAAG,UAAU,CAAA;AAAA,EACtE,CAAA;AAEA,EAAA,KAAA,MAAW,WAAW,+BAAA,EAAiC;AACrD,IAAA,MAAM,KAAA,GAAQ,qCAAqC,OAAO,CAAA;AAC1D,IAAA,IAAI,YAAY,MAAA,EAAQ;AACtB,MAAA,KAAA,MAAW,KAAA,IAAS,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,EAAG;AAC9C,QAAA,IAAA,CAAK,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA,MAC1B;AACA,MAAA;AAAA,IACF;AACA,IAAA,QAAA,CAAS,KAAK,CAAA;AAAA,EAChB;AAEA,EAAA,MAAM,YAAA,uBAAmB,GAAA,EAAY;AACrC,EAAA,KAAA,MAAW,KAAA,IAAS,YAAA,CAAa,IAAA,EAAK,EAAG;AACvC,IAAA,IAAI,CAAC,oBAAA,CAAqB,KAAK,CAAA,IAAK,0BAAA,CAA2B,KAAK,CAAA,IAAK,YAAA,CAAa,GAAA,CAAI,KAAK,CAAA,EAAG;AAClG,IAAA,YAAA,CAAa,IAAI,KAAK,CAAA;AACtB,IAAA,QAAA,CAAS,KAAK,CAAA;AAAA,EAChB;AAEA,EAAA,KAAA,MAAW,KAAA,IAAS,oBAAA,CAAqB,YAAY,CAAA,EAAG;AACtD,IAAA,IAAA,CAAK,MAAA,CAAO,wBAAA,EAA0B,yBAAA,CAA0B,KAAK,CAAC,CAAA;AAAA,EACxE;AAEA,EAAA,OAAO,IAAA;AACT;AAQO,SAAS,8BAAA,CACd,MAAA,EACA,MAAA,EACA,MAAA,GAA6B,EAAC,EAC9B;AACA,EAAA,MAAA,CAAO,OAAO,4BAA4B,CAAA;AAC1C,EAAA,MAAA,CAAO,OAAO,kBAAkB,CAAA;AAChC,EAAA,MAAA,CAAO,OAAO,wBAAwB,CAAA;AACtC,EAAA,KAAA,MAAW,WAAW,+BAAA,EAAiC;AACrD,IAAA,MAAM,KAAA,GAAQ,qCAAqC,OAAO,CAAA;AAC1D,IAAA,MAAA,CAAO,OAAO,KAAK,CAAA;AACnB,IAAA,MAAA,CAAO,MAAA,CAAO,wBAAA,CAAyB,KAAK,CAAC,CAAA;AAAA,EAC/C;AACA,EAAA,KAAA,MAAW,SAAS,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,IAAA,EAAM,CAAA,EAAG;AAC7C,IAAA,IAAI,oBAAA,CAAqB,KAAK,CAAA,EAAG,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA,EACtD;AAEA,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,MAAM,OAAA,KAAY,gBAAA,IAAoB,OAAO,KAAA,CAAM,UAAU,QAAA,EAAU;AACzE,MAAA,MAAA,CAAO,GAAA,CAAI,4BAAA,EAA8B,KAAA,CAAM,KAAK,CAAA;AACpD,MAAA;AAAA,IACF;AACA,IAAA,IAAI,MAAM,OAAA,KAAY,QAAA,IAAY,OAAO,KAAA,CAAM,UAAU,QAAA,EAAU;AACjE,MAAA,MAAA,CAAO,GAAA,CAAI,kBAAA,EAAoB,KAAA,CAAM,KAAK,CAAA;AAC1C,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,KAAA,GAAQ,sBAAA,CAAuB,KAAA,CAAM,OAAO,CAAA,GAC9C,sBAAA,CAAuB,KAAA,CAAM,OAAO,CAAA,GACpC,oCAAA,CAAqC,KAAA,CAAM,OAA4D,CAAA;AAC3G,IAAA,IAAI,CAAC,KAAA,EAAO;AAEZ,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,KAAK,CAAA,EAAG;AAC9B,MAAA,IAAI,KAAA,CAAM,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAE5B,QAAA,MAAA,CAAO,MAAA,CAAO,OAAO,EAAE,CAAA;AAAA,MACzB,CAAA,MAAO;AACL,QAAA,KAAA,MAAW,KAAA,IAAS,MAAM,KAAA,EAAO;AAC/B,UAAA,MAAA,CAAO,MAAA,CAAO,OAAO,KAAK,CAAA;AAAA,QAC5B;AAAA,MACF;AAAA,IACF,CAAA,MAAO;AAIL,MAAA,MAAA,CAAO,GAAA,CAAI,KAAA,EAAO,KAAA,CAAM,KAAA,CAAM,MAAM,CAAA;AAAA,IACtC;AAKA,IAAA,MAAM,UAAA,GAAa,yBAAyB,KAAK,CAAA;AACjD,IAAA,MAAM,QAAA,GAAW,KAAA,CAAM,OAAA,KAAY,MAAA,GAAS,IAAA,GAAO,IAAA;AACnD,IAAA,IAAI,eAAe,QAAA,EAAU,MAAA,CAAO,IAAI,wBAAA,CAAyB,KAAK,GAAG,UAAU,CAAA;AAAA,EACrF;AAEA,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAA,CAAO,MAAA,CAAO,wBAAA,EAA0B,yBAAA,CAA0B,KAAK,CAAC,CAAA;AAAA,EAC1E;AACF;AAKO,MAAM,wBAAA,GAA2B;AAEjC,MAAM,yBAAA,GAA4B,CAAC,KAAA,KAAoC,IAAA,CAAK,UAAU,KAAK;AAE3F,SAAS,qBAAqB,YAAA,EAAmD;AACtF,EAAA,OAAO,YAAA,CACJ,MAAA,CAAO,wBAAwB,CAAA,CAC/B,GAAA,CAAI,0BAA0B,CAAA,CAC9B,MAAA,CAAO,CAAC,KAAA,KAAqC,KAAA,KAAU,MAAS,CAAA;AACrE;AAEO,SAAS,2BAA2B,GAAA,EAA2C;AACpF,EAAA,IAAI;AACF,IAAA,OAAO,qBAAA,CAAsB,IAAA,CAAK,KAAA,CAAM,GAAG,CAAC,CAAA;AAAA,EAC9C,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEA,MAAM,WAAW,CAAC,KAAA,KAAqD,OAAO,KAAA,KAAU,YAAY,KAAA,KAAU,IAAA;AAE9G,MAAM,aAAA,GAAgB,CAAC,KAAA,KACrB,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,KAAA,CAAM,CAAA,KAAA,KAAS,OAAO,KAAA,KAAU,QAAQ,CAAA;AAExE,SAAS,sBAAsB,KAAA,EAA8C;AAC3E,EAAA,IAAI,CAAC,SAAS,KAAK,CAAA,IAAK,OAAO,KAAA,CAAM,EAAA,KAAO,UAAU,OAAO,MAAA;AAC7D,EAAA,IAAI,MAAM,KAAA,KAAU,KAAA,IAAS,KAAA,CAAM,KAAA,KAAU,MAAM,OAAO,MAAA;AAC1D,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,KAAK,GAAG,OAAO,MAAA;AACxC,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,KAAA,CAAM,GAAA,CAAI,oBAAoB,EAAE,MAAA,CAAO,CAAC,IAAA,KAAkC,IAAA,KAAS,MAAS,CAAA;AAChH,EAAA,OAAO,EAAE,EAAA,EAAI,KAAA,CAAM,IAAI,KAAA,EAAO,KAAA,CAAM,OAAO,KAAA,EAAM;AACnD;AAEA,SAAS,qBAAqB,KAAA,EAA6C;AACzE,EAAA,IAAI,CAAC,QAAA,CAAS,KAAK,CAAA,EAAG,OAAO,MAAA;AAC7B,EAAA,IAAI,OAAA,IAAW,KAAA,EAAO,OAAO,qBAAA,CAAsB,KAAK,CAAA;AACxD,EAAA,IAAI,OAAO,MAAM,EAAA,KAAO,QAAA,IAAY,OAAO,KAAA,CAAM,OAAA,KAAY,UAAU,OAAO,MAAA;AAC9E,EAAA,IAAI,OAAO,MAAM,KAAA,KAAU,QAAA,IAAY,CAAC,aAAA,CAAc,KAAA,CAAM,KAAK,CAAA,EAAG,OAAO,MAAA;AAC3E,EAAA,MAAM,KAAA,GAA0B,EAAE,EAAA,EAAI,KAAA,CAAM,EAAA,EAAI,SAAS,KAAA,CAAM,OAAA,EAAS,KAAA,EAAO,KAAA,CAAM,KAAA,EAAM;AAC3F,EAAA,IAAI,OAAO,KAAA,CAAM,UAAA,KAAe,YAAY,uBAAA,CAAwB,KAAA,CAAM,UAAU,CAAA,EAAG;AACrF,IAAA,KAAA,CAAM,aAAa,KAAA,CAAM,UAAA;AAAA,EAC3B;AACA,EAAA,OAAO,KAAA;AACT;AAEO,SAAS,qBAAA,CAAsB;AAAA,EACpC,cAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAM8B;AAC5B,EAAA,MAAM,UAAkD,EAAC;AAEzD,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,OAAA,CAAQ,UAAA,GAAa,cAAA;AAAA,EACvB;AAEA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAA,CAAQ,MAAA,GAAS,MAAA;AAAA,EACnB;AAEA,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAA,CAAQ,SAAA,GAAY,EAAE,KAAA,EAAO,QAAA,EAAS;AAAA,EACxC;AAEA,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAA,CAAQ,OAAA,GAAU,EAAE,GAAA,EAAK,MAAA,EAAO;AAAA,EAClC;AAEA,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,IAAI,KAAA,CAAM,YAAY,MAAA,EAAQ;AAC5B,MAAA,IAAI,KAAA,CAAM,QAAQ,KAAA,CAAM,KAAK,KAAK,KAAA,CAAM,KAAA,CAAM,SAAS,CAAA,EAAG;AACxD,QAAA,OAAA,CAAQ,OAAO,KAAA,CAAM,KAAA;AAAA,MACvB,CAAA,MAAA,IAAW,OAAO,KAAA,CAAM,KAAA,KAAU,YAAY,KAAA,CAAM,KAAA,CAAM,MAAK,EAAG;AAEhE,QAAA,OAAA,CAAQ,IAAA,GAAO,CAAC,KAAA,CAAM,KAAA,CAAM,MAAM,CAAA;AAAA,MACpC;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,EAAU;AAIrC,IAAA,IAAI,CAAC,KAAA,CAAM,KAAA,CAAM,IAAA,EAAK,EAAG;AACzB,IAAA,IAAI,KAAA,CAAM,UAAU,KAAA,EAAO;AAE3B,IAAA,QAAQ,MAAM,OAAA;AAAS,MACrB,KAAK,UAAA;AACH,QAAA,OAAA,CAAQ,WAAW,KAAA,CAAM,KAAA;AACzB,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,OAAA,CAAQ,aAAa,KAAA,CAAM,KAAA;AAC3B,QAAA;AAAA,MACF,KAAK,SAAA;AACH,QAAA,OAAA,CAAQ,UAAU,KAAA,CAAM,KAAA;AACxB,QAAA;AAAA,MACF,KAAK,OAAA;AACH,QAAA,OAAA,CAAQ,QAAQ,KAAA,CAAM,KAAA;AACtB,QAAA;AAAA,MACF,KAAK,UAAA;AACH,QAAA,OAAA,CAAQ,WAAW,KAAA,CAAM,KAAA;AACzB,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,CAAQ,YAAY,KAAA,CAAM,KAAA;AAC1B,QAAA;AAAA,MACF,KAAK,WAAA;AACH,QAAA,OAAA,CAAQ,YAAY,KAAA,CAAM,KAAA;AAC1B,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,OAAA,CAAQ,aAAa,KAAA,CAAM,KAAA;AAC3B,QAAA;AAAA,MACF,KAAK,QAAA;AACH,QAAA,OAAA,CAAQ,SAAS,KAAA,CAAM,KAAA;AACvB,QAAA;AAAA,MACF,KAAK,gBAAA;AACH,QAAA,OAAA,CAAQ,iBAAiB,KAAA,CAAM,KAAA;AAC/B,QAAA;AAAA,MACF,KAAK,aAAA;AACH,QAAA,OAAA,CAAQ,cAAc,KAAA,CAAM,KAAA;AAC5B,QAAA;AAAA,MACF,KAAK,aAAA;AACH,QAAA,OAAA,CAAQ,cAAc,KAAA,CAAM,KAAA;AAC5B,QAAA;AAAA,MACF,KAAK,cAAA;AACH,QAAA,OAAA,CAAQ,eAAe,KAAA,CAAM,KAAA;AAC7B,QAAA;AAEA;AACJ,EACF;AAEA,EAAA,OAAO,OAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"trace-filters.es.js","sources":["../../../src/domains/traces/trace-filters.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { ListTracesArgs } from '@mastra/core/storage';\nimport { ROOT_ENTITY_TYPES } from '@mastra/react/hooks/traces';\nimport type { TraceListMode, TraceMetadataFilterField } from '@mastra/react/hooks/traces';\nimport {\n ActivityIcon,\n BoxIcon,\n BracesIcon,\n BuildingIcon,\n ClockIcon,\n CloudIcon,\n CpuIcon,\n FingerprintIcon,\n FlaskConicalIcon,\n GaugeIcon,\n GitBranchIcon,\n GlobeIcon,\n HashIcon,\n LayersIcon,\n MessageCircleIcon,\n MessageSquareIcon,\n PercentIcon,\n PlayIcon,\n RadioIcon,\n ServerIcon,\n ShapesIcon,\n StarIcon,\n TagIcon,\n TagsIcon,\n ThumbsUpIcon,\n TimerIcon,\n TriangleAlertIcon,\n UserIcon,\n WaypointsIcon,\n} from 'lucide-react';\nimport type { LucideIcon } from 'lucide-react';\nimport {\n isTraceFilterGroup,\n isTraceFilterOperatorId,\n TRACE_QUERY_NUMERIC_FIELD_IDS,\n TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS,\n} from './trace-query-filters';\nimport type {\n TraceFilterGroup,\n TraceFilterNode,\n TraceFilterOperatorId,\n TraceFilterToken,\n TraceQueryRelatedScope,\n} from './trace-query-filters';\nimport type { TraceDatePreset } from './types';\nimport { isFilterBarGroup } from '@/ds/components/FilterBar/types';\nimport type {\n FilterBarExpression,\n FilterBarField,\n FilterBarGroup,\n FilterBarItem,\n FilterBarOperator,\n FilterBarSuggestionsResolver,\n} from '@/ds/components/FilterBar/types';\nimport type { PropertyFilterToken } from '@/ds/components/PropertyFilter/types';\n\nexport type {\n TraceFilterGroup,\n TraceFilterLogic,\n TraceFilterNode,\n TraceFilterOperatorId,\n TraceFilterToken,\n TraceQueryRelatedScope,\n} from './trace-query-filters';\nexport { isTraceFilterGroup } from './trace-query-filters';\nimport { hueAccentColor, hueForName } from '@/lib/colors';\n\ntype EntityTypeValue = `${EntityType}`;\n\nexport type EntityOptions = { label: string; entityType: EntityTypeValue };\n\nexport { ROOT_ENTITY_TYPES };\n\nexport const ROOT_ENTITY_TYPE_OPTIONS = [\n { label: 'Agent', entityType: ROOT_ENTITY_TYPES.AGENT },\n { label: 'Workflow', entityType: ROOT_ENTITY_TYPES.WORKFLOW },\n { label: 'Scorer', entityType: ROOT_ENTITY_TYPES.SCORER },\n { label: 'Ingest', entityType: ROOT_ENTITY_TYPES.INGEST },\n] as const satisfies readonly EntityOptions[];\n\nexport type TraceStatusFilter = 'running' | 'success' | 'error';\n\nexport const TRACE_STATUS_OPTIONS = [\n { label: 'Running', value: 'running' },\n { label: 'Success', value: 'success' },\n { label: 'Error', value: 'error' },\n] as const satisfies readonly { label: string; value: TraceStatusFilter }[];\n\n/** Field ids for \"synthetic\" filter entries — they live in dedicated URL params\n * rather than the generic `filter*` set, but appear as rows in the Filter\n * popover so users can manage all filters from one place. */\nexport const TRACE_SYNTHETIC_FILTER_FIELD_IDS = ['rootEntityType', 'status'] as const;\n\n/** Discovered `metadata.<key>` fields are dynamic, so they use a prefix-based URL\n * scheme (`filterMetadata.<key>`) instead of the fixed `filter*` param map. */\nexport const TRACE_METADATA_FILTER_FIELD_PREFIX = 'metadata.';\nexport const TRACE_METADATA_FILTER_PARAM_PREFIX = 'filterMetadata.';\n\nexport const isTraceMetadataFieldId = (fieldId: string) =>\n fieldId.startsWith(TRACE_METADATA_FILTER_FIELD_PREFIX) && fieldId.length > TRACE_METADATA_FILTER_FIELD_PREFIX.length;\n\nconst isTraceMetadataParam = (param: string) =>\n param.startsWith(TRACE_METADATA_FILTER_PARAM_PREFIX) && param.length > TRACE_METADATA_FILTER_PARAM_PREFIX.length;\n\nexport const metadataFieldIdToParam = (fieldId: string) =>\n TRACE_METADATA_FILTER_PARAM_PREFIX + fieldId.slice(TRACE_METADATA_FILTER_FIELD_PREFIX.length);\n\nexport const metadataParamToFieldId = (param: string) =>\n TRACE_METADATA_FILTER_FIELD_PREFIX + param.slice(TRACE_METADATA_FILTER_PARAM_PREFIX.length);\n\nexport const TRACE_ROOT_ENTITY_TYPE_PARAM = 'rootEntityType';\nexport const TRACE_STATUS_PARAM = 'status';\nexport const TRACE_LIST_MODE_PARAM = 'listMode';\n/** Branch-mode only: identifies the anchor span that defines the displayed subtree.\n * Stable across intra-panel span navigation (which only changes `spanId`). */\nexport const TRACE_ANCHOR_SPAN_ID_PARAM = 'anchorSpanId';\nexport const TRACE_LIST_MODE_VALUES = new Set(['traces', 'branches'] as const);\nexport type { TraceListMode };\n\nexport const TRACE_LIST_MODE_OPTIONS = [\n { label: 'Traces (default)', value: 'traces' },\n { label: 'Branches', value: 'branches' },\n] as const satisfies readonly { label: string; value: TraceListMode }[];\nexport const TRACE_DATE_PRESET_PARAM = 'datePreset';\nexport const TRACE_DATE_FROM_PARAM = 'dateFrom';\nexport const TRACE_DATE_TO_PARAM = 'dateTo';\n\nexport const TRACE_DATE_PRESET_VALUES = new Set<TraceDatePreset>([\n 'all',\n 'last-24h',\n 'last-3d',\n 'last-7d',\n 'last-14d',\n 'last-30d',\n 'custom',\n]);\n\nexport const TRACE_PROPERTY_FILTER_PARAM_BY_FIELD = {\n tags: 'filterTags',\n entityId: 'filterEntityId',\n entityName: 'filterEntityName',\n traceId: 'filterTraceId',\n runId: 'filterRunId',\n threadId: 'filterThreadId',\n sessionId: 'filterSessionId',\n requestId: 'filterRequestId',\n resourceId: 'filterResourceId',\n userId: 'filterUserId',\n organizationId: 'filterOrganizationId',\n serviceName: 'filterServiceName',\n environment: 'filterEnvironment',\n experimentId: 'filterExperimentId',\n 'spans.name': 'filterSpanName',\n 'spans.spanType': 'filterSpanType',\n 'spans.model': 'filterSpanModel',\n 'spans.provider': 'filterSpanProvider',\n 'spans.durationMs': 'filterSpanDurationMs',\n 'spans.error': 'filterSpanError',\n 'scores.scorerId': 'filterScorerId',\n 'scores.score': 'filterScore',\n 'feedback.feedbackType': 'filterFeedbackType',\n 'feedback.value': 'filterFeedbackValue',\n 'feedback.comment': 'filterFeedbackComment',\n} as const;\n\nexport const TRACE_PROPERTY_FILTER_FIELD_IDS = Object.keys(TRACE_PROPERTY_FILTER_PARAM_BY_FIELD) as Array<\n keyof typeof TRACE_PROPERTY_FILTER_PARAM_BY_FIELD\n>;\n\n/** The operator of a filter lives in a sibling `<valueParam>.op` param; omitted\n * means the default (`is`). Metadata keys cannot contain dots, so the suffix is\n * unambiguous. */\nexport const TRACE_FILTER_OPERATOR_PARAM_SUFFIX = '.op';\nexport const traceFilterOperatorParam = (valueParam: string) => valueParam + TRACE_FILTER_OPERATOR_PARAM_SUFFIX;\nconst isTraceFilterOperatorParam = (param: string) => param.endsWith(TRACE_FILTER_OPERATOR_PARAM_SUFFIX);\n\nconst isPresenceOperator = (operatorId: TraceFilterOperatorId | undefined) =>\n operatorId === 'exists' || operatorId === 'notExists';\nconst isManyOperator = (operatorId: TraceFilterOperatorId | undefined) => operatorId === 'in' || operatorId === 'notIn';\n\n/** Default operator for a token without one: arrays mean set membership. */\nexport const traceFilterTokenOperator = (token: TraceFilterToken): TraceFilterOperatorId =>\n token.operatorId ?? (Array.isArray(token.value) ? 'in' : 'is');\n\nconst readTraceFilterOperator = (searchParams: URLSearchParams, valueParam: string) => {\n const raw = searchParams.get(traceFilterOperatorParam(valueParam));\n return raw !== null && isTraceFilterOperatorId(raw) ? raw : undefined;\n};\n\nexport const TRACE_STATUS_VALUES = new Set<TraceStatusFilter>(['running', 'success', 'error']);\n\nexport const DEFAULT_TRACE_FILTERS_STORAGE_KEY = 'mastra:traces:saved-filters';\n\n/** Serialize the filter-related URL params (relative date preset + rootEntityType +\n * status + generic filterX set) to localStorage so the user can restore them on next\n * visit. A `custom` absolute range is never saved: it would be stale by the next visit.\n * An empty set clears the key. Throws no errors — storage being unavailable is fine. */\nexport function saveTraceFiltersToStorage(\n params: URLSearchParams,\n storageKey: string = DEFAULT_TRACE_FILTERS_STORAGE_KEY,\n): void {\n const serialized = getPreservedTraceFilterParams(params);\n const preset = params.get(TRACE_DATE_PRESET_PARAM);\n if (preset && preset !== 'custom') serialized.set(TRACE_DATE_PRESET_PARAM, preset);\n // An empty group is editor state (popover still open), not a filter worth restoring.\n const groups = getTraceFilterGroups(serialized).filter(group => group.nodes.length > 0);\n serialized.delete(TRACE_FILTER_GROUP_PARAM);\n for (const group of groups) serialized.append(TRACE_FILTER_GROUP_PARAM, serializeTraceFilterGroup(group));\n\n if (!serialized.toString()) {\n clearSavedTraceFilters(storageKey);\n return;\n }\n\n try {\n localStorage.setItem(storageKey, serialized.toString());\n } catch {\n // localStorage may be unavailable (private mode / quota) — silently skip.\n }\n}\n\n/** Forget any previously saved filter set. Called from the \"Remove filters\"\n * action so the next plain sidebar nav lands on an empty page. */\nexport function clearSavedTraceFilters(storageKey: string = DEFAULT_TRACE_FILTERS_STORAGE_KEY): void {\n try {\n localStorage.removeItem(storageKey);\n } catch {\n // ignore — storage may be unavailable\n }\n}\n\n/** Read a previously saved filter set and return it as URLSearchParams, or\n * null if nothing is saved or storage is unavailable. */\nexport function loadTraceFiltersFromStorage(\n storageKey: string = DEFAULT_TRACE_FILTERS_STORAGE_KEY,\n): URLSearchParams | null {\n try {\n const raw = localStorage.getItem(storageKey);\n if (!raw) return null;\n const parsed = new URLSearchParams(raw);\n return parsed.toString() ? parsed : null;\n } catch {\n return null;\n }\n}\n\n/** True when `params` carries any filter-related key — used to decide whether\n * to hydrate from localStorage on page mount (we only hydrate when the URL is\n * filter-clean, i.e. the user landed here via a plain sidebar nav). */\nexport function hasAnyTraceFilterParams(params: URLSearchParams): boolean {\n if (params.has(TRACE_DATE_PRESET_PARAM)) return true;\n if (params.has(TRACE_DATE_FROM_PARAM)) return true;\n if (params.has(TRACE_DATE_TO_PARAM)) return true;\n if (params.has(TRACE_ROOT_ENTITY_TYPE_PARAM)) return true;\n if (params.has(TRACE_STATUS_PARAM)) return true;\n if (params.has(TRACE_LIST_MODE_PARAM)) return true;\n if (params.has(TRACE_FILTER_GROUP_PARAM)) return true;\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n if (params.has(TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId])) return true;\n }\n for (const param of params.keys()) {\n if (isTraceMetadataParam(param)) return true;\n }\n return false;\n}\n\n/** Every operator the trace query API supports, keyed by the UI id that goes in the URL. */\nexport const TRACE_FILTER_BAR_OPERATORS: (FilterBarOperator & { id: TraceFilterOperatorId })[] = [\n { id: 'is', label: 'is' },\n { id: 'isNot', label: 'is not' },\n { id: 'in', label: 'is any of', arity: 'many' },\n { id: 'notIn', label: 'is none of', arity: 'many' },\n { id: 'exists', label: 'exists', arity: 'none' },\n { id: 'notExists', label: 'does not exist', arity: 'none' },\n { id: 'gt', label: 'greater than' },\n { id: 'gte', label: 'at least' },\n { id: 'lt', label: 'less than' },\n { id: 'lte', label: 'at most' },\n];\n\nconst TRACE_STRING_OPERATORS: TraceFilterOperatorId[] = ['is', 'isNot', 'in', 'notIn', 'exists', 'notExists'];\n/** Fields every trace carries (`traceId`, `entityName`): presence operators would never be false. */\nconst TRACE_REQUIRED_STRING_OPERATORS: TraceFilterOperatorId[] = ['is', 'isNot', 'in', 'notIn'];\nconst TRACE_NUMBER_OPERATORS: TraceFilterOperatorId[] = [\n 'is',\n 'isNot',\n 'gt',\n 'gte',\n 'lt',\n 'lte',\n 'exists',\n 'notExists',\n];\nconst TRACE_PRESENCE_OPERATORS: TraceFilterOperatorId[] = ['exists', 'notExists'];\n/** Synthetic fields live in a single dedicated URL param, so they cannot carry an operator. */\nconst TRACE_SYNTHETIC_OPERATORS: TraceFilterOperatorId[] = ['is', 'in'];\n// The legacy list endpoint only matches by equality.\nconst TRACE_LEGACY_OPERATORS: TraceFilterOperatorId[] = ['is'];\n\nconst TRACE_FILTER_BAR_LABELS: Record<string, string> = {\n rootEntityType: 'Primitive type',\n entityName: 'Primitive name',\n entityId: 'Primitive ID',\n status: 'Status',\n tags: 'Tags',\n serviceName: 'Service Name',\n environment: 'Environment',\n traceId: 'Trace ID',\n runId: 'Run ID',\n threadId: 'Thread ID',\n sessionId: 'Session ID',\n requestId: 'Request ID',\n resourceId: 'Resource ID',\n userId: 'User ID',\n organizationId: 'Organization ID',\n experimentId: 'Experiment ID',\n 'spans.name': 'Span name',\n 'spans.spanType': 'Span type',\n 'spans.model': 'Model',\n 'spans.provider': 'Provider',\n 'spans.durationMs': 'Span duration (ms)',\n 'spans.error': 'Span error',\n 'scores.scorerId': 'Scorer',\n 'scores.score': 'Score',\n 'feedback.feedbackType': 'Feedback type',\n 'feedback.value': 'Feedback value',\n 'feedback.comment': 'Feedback comment',\n};\n\nconst TRACE_FILTER_BAR_FIELD_META: Record<string, { icon: LucideIcon; color: string }> = {\n timeRange: { icon: ClockIcon, color: hueAccentColor('amber') },\n rootEntityType: { icon: BoxIcon, color: hueAccentColor('purple') },\n entityName: { icon: TagIcon, color: hueAccentColor('cyan') },\n entityId: { icon: FingerprintIcon, color: hueAccentColor('pink') },\n status: { icon: ActivityIcon, color: hueAccentColor('orange') },\n tags: { icon: TagsIcon, color: hueAccentColor('pink') },\n serviceName: { icon: ServerIcon, color: hueAccentColor('cyan') },\n environment: { icon: GlobeIcon, color: hueAccentColor('green') },\n traceId: { icon: WaypointsIcon, color: hueAccentColor('blue') },\n runId: { icon: PlayIcon, color: hueAccentColor('purple') },\n threadId: { icon: MessageSquareIcon, color: hueAccentColor('blue') },\n sessionId: { icon: LayersIcon, color: hueAccentColor('orange') },\n requestId: { icon: RadioIcon, color: hueAccentColor('amber') },\n resourceId: { icon: HashIcon, color: hueAccentColor('green') },\n userId: { icon: UserIcon, color: hueAccentColor('orange') },\n organizationId: { icon: BuildingIcon, color: hueAccentColor('cyan') },\n experimentId: { icon: FlaskConicalIcon, color: hueAccentColor('pink') },\n 'spans.name': { icon: GitBranchIcon, color: hueAccentColor('blue') },\n 'spans.spanType': { icon: ShapesIcon, color: hueAccentColor('purple') },\n 'spans.model': { icon: CpuIcon, color: hueAccentColor('green') },\n 'spans.provider': { icon: CloudIcon, color: hueAccentColor('cyan') },\n 'spans.durationMs': { icon: TimerIcon, color: hueAccentColor('orange') },\n 'spans.error': { icon: TriangleAlertIcon, color: 'var(--destructive-foreground)' },\n 'scores.scorerId': { icon: GaugeIcon, color: hueAccentColor('green') },\n 'scores.score': { icon: PercentIcon, color: hueAccentColor('amber') },\n 'feedback.feedbackType': { icon: ThumbsUpIcon, color: hueAccentColor('purple') },\n 'feedback.value': { icon: StarIcon, color: hueAccentColor('amber') },\n 'feedback.comment': { icon: MessageCircleIcon, color: hueAccentColor('blue') },\n};\n\nexport const traceFilterFieldIcon = (fieldId: string) => TRACE_FILTER_BAR_FIELD_META[fieldId]?.icon;\n\n/** Stable per-field accent; known keys use a curated hue, others fall back to a hashed one. */\nexport const traceFilterFieldColor = (fieldId: string) => {\n return TRACE_FILTER_BAR_FIELD_META[fieldId]?.color ?? hueAccentColor(hueForName(fieldId));\n};\n\nconst traceFieldBase = (id: string) => ({\n id,\n label: TRACE_FILTER_BAR_LABELS[id] ?? id,\n icon: traceFilterFieldIcon(id),\n color: traceFilterFieldColor(id),\n});\n\nconst TRACE_FILTER_BAR_TEXT_FIELD_IDS = [\n 'entityId',\n 'traceId',\n 'runId',\n 'threadId',\n 'sessionId',\n 'requestId',\n 'resourceId',\n 'userId',\n 'organizationId',\n 'experimentId',\n] as const;\n\nconst TRACE_FILTER_BAR_RELATED_FIELD_IDS = [\n 'spans.name',\n 'spans.spanType',\n 'spans.model',\n 'spans.provider',\n 'spans.durationMs',\n 'spans.error',\n 'scores.scorerId',\n 'scores.score',\n 'feedback.feedbackType',\n 'feedback.value',\n 'feedback.comment',\n] as const;\ntype TraceFilterRelatedFieldId = (typeof TRACE_FILTER_BAR_RELATED_FIELD_IDS)[number];\n\nconst TRACE_FILTER_BAR_PRESENCE_FIELD_IDS = new Set<string>(['spans.error', 'feedback.comment']);\n\nconst byLabel = (a: FilterBarField, b: FilterBarField) => a.label.localeCompare(b.label);\n\n/** FilterBar field definitions for the trace pages. Fields the query API cannot\n * filter on (see `TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS`) are omitted, as is the\n * `running` status, so no chip advertises a filter that has no effect. Hidden\n * fields are never offered in the input's field step but still label existing\n * (e.g. scoped, read-only) chips. */\nexport function createTraceFilterBarFields({\n availableRootEntityNames,\n availableEnvironments,\n hiddenFieldIds = [],\n metadataFields = [],\n valueSuggestions,\n withQueryTrace = true,\n}: {\n availableRootEntityNames: string[];\n availableEnvironments: string[];\n hiddenFieldIds?: readonly string[];\n /** Discovered `metadata.<key>` paths with a lazy value-suggestions resolver each. */\n metadataFields?: readonly TraceMetadataFilterField[];\n /** Builds a lazy value resolver for a related-scope field (`spans.model`, …). Absent → free text. */\n valueSuggestions?: (scope: TraceQueryRelatedScope, path: string) => FilterBarSuggestionsResolver;\n /**\n * When false, only fields the legacy list endpoint (`buildTraceListFilters`) can express are offered, each with\n * the `is` operator only: no related-scope (`spans.*`, `scores.*`, `feedback.*`) or metadata fields.\n */\n withQueryTrace?: boolean;\n}): FilterBarField[] {\n const pick = (\n id: string,\n suggestions: { value: string; label?: string }[],\n operators: TraceFilterOperatorId[] = TRACE_STRING_OPERATORS,\n ): FilterBarField => ({\n ...traceFieldBase(id),\n operators,\n strict: true,\n suggestions,\n });\n const text = (id: string): FilterBarField => ({\n ...traceFieldBase(id),\n operators: id === 'traceId' ? TRACE_REQUIRED_STRING_OPERATORS : TRACE_STRING_OPERATORS,\n });\n const relatedPick = (id: TraceFilterRelatedFieldId): FilterBarField => {\n const [scope, path] = id.split('.') as [TraceQueryRelatedScope, string];\n const resolver = valueSuggestions?.(scope, path);\n return {\n ...traceFieldBase(id),\n operators: TRACE_STRING_OPERATORS,\n ...(resolver ? { strict: true, suggestions: resolver } : {}),\n };\n };\n const number = (id: string): FilterBarField => ({\n ...traceFieldBase(id),\n type: 'number',\n operators: TRACE_NUMBER_OPERATORS,\n });\n const presence = (id: string): FilterBarField => ({ ...traceFieldBase(id), operators: TRACE_PRESENCE_OPERATORS });\n\n const pickFields: FilterBarField[] = [\n pick(\n 'rootEntityType',\n ROOT_ENTITY_TYPE_OPTIONS.map(o => ({ value: o.entityType, label: o.label })),\n TRACE_SYNTHETIC_OPERATORS,\n ),\n pick(\n 'entityName',\n availableRootEntityNames.map(name => ({ value: name })),\n TRACE_REQUIRED_STRING_OPERATORS,\n ),\n pick(\n 'status',\n TRACE_STATUS_OPTIONS.filter(o => o.value !== 'running').map(o => ({ value: o.value, label: o.label })),\n TRACE_SYNTHETIC_OPERATORS,\n ),\n pick(\n 'environment',\n availableEnvironments.map(env => ({ value: env })),\n ),\n ];\n const textFields = TRACE_FILTER_BAR_TEXT_FIELD_IDS.map(text);\n const relatedFields = (['spans', 'scores', 'feedback'] as const).flatMap(scope =>\n TRACE_FILTER_BAR_RELATED_FIELD_IDS.filter(id => id.startsWith(`${scope}.`))\n .map(id => {\n if (TRACE_QUERY_NUMERIC_FIELD_IDS.has(id)) return number(id);\n if (TRACE_FILTER_BAR_PRESENCE_FIELD_IDS.has(id)) return presence(id);\n return relatedPick(id);\n })\n .sort(byLabel),\n );\n const metadataBarFields: FilterBarField[] = metadataFields\n .filter(({ path }) => isTraceMetadataFieldId(path))\n .map(({ path, suggestions }) => ({\n id: path,\n label: path.slice(TRACE_METADATA_FILTER_FIELD_PREFIX.length),\n icon: BracesIcon,\n color: hueAccentColor(hueForName(path)),\n operators: TRACE_STRING_OPERATORS,\n suggestions,\n }));\n\n const hidden = new Set(hiddenFieldIds);\n if (!withQueryTrace) {\n return [...pickFields.sort(byLabel), ...textFields.sort(byLabel)].map(field => ({\n ...field,\n operators: TRACE_LEGACY_OPERATORS,\n ...(hidden.has(field.id) ? { hidden: true } : {}),\n }));\n }\n return [\n ...pickFields.sort(byLabel),\n ...textFields.sort(byLabel),\n ...relatedFields,\n ...metadataBarFields.sort(byLabel),\n ]\n .filter(field => !TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS.has(field.id))\n .map(field => (hidden.has(field.id) ? { ...field, hidden: true } : field));\n}\n\n/** One FilterBar item per token, keyed by field id so chip order == URL order.\n * Empty values ('' / []) are kept: that's a pending chip whose field was just\n * changed and whose value hasn't been picked yet (the query builder skips it).\n * Only the legacy 'Any' sentinel is mapped back to an empty value. */\nexport function traceTokensToFilterBarItems(tokens: TraceFilterToken[]): FilterBarItem[] {\n return tokens.map(token => ({\n id: token.fieldId,\n fieldId: token.fieldId,\n operatorId: traceFilterTokenOperator(token),\n value: token.value === 'Any' ? '' : token.value,\n }));\n}\n\nexport function filterBarItemsToTraceTokens(items: FilterBarItem[]): TraceFilterToken[] {\n return items.map(filterBarItemToTraceToken);\n}\n\nfunction filterBarItemToTraceToken(item: FilterBarItem): TraceFilterToken {\n const token: TraceFilterToken = {\n fieldId: item.fieldId,\n value: Array.isArray(item.value) ? item.value.map(String) : String(item.value),\n };\n // Only carry a non-default operator so tokens stay minimal (and URLs stay short).\n if (isTraceFilterOperatorId(item.operatorId) && item.operatorId !== traceFilterTokenOperator(token)) {\n token.operatorId = item.operatorId;\n }\n return token;\n}\n\n/** Expression-mode value for the FilterBar: root tokens as items, then one\n * group node per advanced filter. Ids inside groups are carried as-is. */\nexport function traceFiltersToFilterBarExpression(\n tokens: TraceFilterToken[],\n groups: TraceFilterGroup[],\n): FilterBarExpression {\n return { logic: 'and', nodes: [...traceTokensToFilterBarItems(tokens), ...groups.map(traceGroupToFilterBarGroup)] };\n}\n\nfunction traceGroupToFilterBarGroup(group: TraceFilterGroup): FilterBarGroup {\n return {\n id: group.id,\n kind: 'group',\n logic: group.logic,\n nodes: group.nodes.map(node =>\n isTraceFilterGroup(node)\n ? traceGroupToFilterBarGroup(node)\n : {\n id: node.id ?? node.fieldId,\n fieldId: node.fieldId,\n operatorId: traceFilterTokenOperator(node),\n value: node.value === 'Any' ? '' : node.value,\n },\n ),\n };\n}\n\nexport function filterBarExpressionToTraceFilters(expression: FilterBarExpression): {\n tokens: TraceFilterToken[];\n groups: TraceFilterGroup[];\n} {\n const items = expression.nodes.filter((node): node is FilterBarItem => !isFilterBarGroup(node));\n const groups = expression.nodes.filter(isFilterBarGroup).map(filterBarGroupToTraceGroup);\n return { tokens: filterBarItemsToTraceTokens(items), groups };\n}\n\nfunction filterBarGroupToTraceGroup(group: FilterBarGroup): TraceFilterGroup {\n const nodes = group.nodes.map(\n (node): TraceFilterNode =>\n isFilterBarGroup(node) ? filterBarGroupToTraceGroup(node) : { id: node.id, ...filterBarItemToTraceToken(node) },\n );\n // Empty groups are kept: \"Advanced filter…\" emits one and opens its editor, and the\n // FilterBar prunes it itself when the popover closes without any condition.\n return { id: group.id, logic: group.logic, nodes };\n}\n\n/**\n * Read filter tokens from URL search params preserving the order in which each\n * filter was first added (URLSearchParams iterates in insertion order). This\n * is used by the Filter popover + PropertyFilterApplied pills so the UI reflects the\n * order the user created the filters in.\n */\nexport function getTracePropertyFilterTokens(searchParams: URLSearchParams): TraceFilterToken[] {\n const tokens: TraceFilterToken[] = [];\n\n // Map URL param name → fieldId for both generic filterX params and the\n // dedicated synthetic params (rootEntityType, status).\n const paramToFieldId = new Map<string, string>([\n [TRACE_ROOT_ENTITY_TYPE_PARAM, 'rootEntityType'],\n [TRACE_STATUS_PARAM, 'status'],\n ]);\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n paramToFieldId.set(TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId], fieldId);\n }\n\n const seen = new Set<string>();\n for (const [paramName] of searchParams.entries()) {\n if (isTraceFilterOperatorParam(paramName)) continue;\n const fieldId = isTraceMetadataParam(paramName) ? metadataParamToFieldId(paramName) : paramToFieldId.get(paramName);\n if (!fieldId || seen.has(fieldId)) continue;\n seen.add(fieldId);\n\n const operatorId = readTraceFilterOperator(searchParams, paramName);\n const raw = searchParams.getAll(paramName);\n\n if (fieldId === 'tags' || isManyOperator(operatorId)) {\n // An empty `filterTags=` sentinel keeps the pill alive after a Reset\n // (neutral state = no selections) so users can re-pick without losing\n // the pill's position. Non-empty entries are the actual selected values.\n tokens.push({ fieldId, value: raw.filter(Boolean), ...(operatorId ? { operatorId } : {}) });\n continue;\n }\n\n // Text and synthetic single-value fields: include empty strings so\n // pending-but-not-yet-filled filters survive URL round-trips.\n const value = raw[0];\n if (value !== undefined) tokens.push({ fieldId, value, ...(operatorId ? { operatorId } : {}) });\n }\n\n return tokens;\n}\n\nexport function getPreservedTraceFilterParams(searchParams: URLSearchParams) {\n const next = new URLSearchParams();\n\n const rootEntityType = searchParams.get(TRACE_ROOT_ENTITY_TYPE_PARAM);\n if (rootEntityType) next.set(TRACE_ROOT_ENTITY_TYPE_PARAM, rootEntityType);\n\n const status = searchParams.get(TRACE_STATUS_PARAM);\n if (status) next.set(TRACE_STATUS_PARAM, status);\n\n const listMode = searchParams.get(TRACE_LIST_MODE_PARAM);\n if (listMode) next.set(TRACE_LIST_MODE_PARAM, listMode);\n\n const preserve = (param: string) => {\n const operatorId = readTraceFilterOperator(searchParams, param);\n const values = searchParams.getAll(param).filter(value => value || isPresenceOperator(operatorId));\n if (!values.length) return;\n for (const value of values) next.append(param, value);\n if (operatorId) next.set(traceFilterOperatorParam(param), operatorId);\n };\n\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n const param = TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId];\n if (fieldId === 'tags') {\n for (const value of searchParams.getAll(param)) {\n next.append(param, value);\n }\n continue;\n }\n preserve(param);\n }\n\n const seenMetadata = new Set<string>();\n for (const param of searchParams.keys()) {\n if (!isTraceMetadataParam(param) || isTraceFilterOperatorParam(param) || seenMetadata.has(param)) continue;\n seenMetadata.add(param);\n preserve(param);\n }\n\n for (const group of getTraceFilterGroups(searchParams)) {\n next.append(TRACE_FILTER_GROUP_PARAM, serializeTraceFilterGroup(group));\n }\n\n return next;\n}\n\n/**\n * Clear all filter params from `params` and re-add them in the given `tokens`\n * order so the URL (and therefore the PropertyFilterApplied pills) reflects the\n * creation order of filters. Handles the generic `filterX` params plus the\n * dedicated synthetic params (rootEntityType, status).\n */\nexport function applyTracePropertyFilterTokens(\n params: URLSearchParams,\n tokens: TraceFilterToken[],\n groups: TraceFilterGroup[] = [],\n) {\n params.delete(TRACE_ROOT_ENTITY_TYPE_PARAM);\n params.delete(TRACE_STATUS_PARAM);\n params.delete(TRACE_FILTER_GROUP_PARAM);\n for (const fieldId of TRACE_PROPERTY_FILTER_FIELD_IDS) {\n const param = TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[fieldId];\n params.delete(param);\n params.delete(traceFilterOperatorParam(param));\n }\n for (const param of Array.from(params.keys())) {\n if (isTraceMetadataParam(param)) params.delete(param);\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'rootEntityType' && typeof token.value === 'string') {\n params.set(TRACE_ROOT_ENTITY_TYPE_PARAM, token.value);\n continue;\n }\n if (token.fieldId === 'status' && typeof token.value === 'string') {\n params.set(TRACE_STATUS_PARAM, token.value);\n continue;\n }\n\n const param = isTraceMetadataFieldId(token.fieldId)\n ? metadataFieldIdToParam(token.fieldId)\n : TRACE_PROPERTY_FILTER_PARAM_BY_FIELD[token.fieldId as keyof typeof TRACE_PROPERTY_FILTER_PARAM_BY_FIELD];\n if (!param) continue;\n\n if (Array.isArray(token.value)) {\n if (token.value.length === 0) {\n // Empty sentinel — keeps the pill visible after Reset.\n params.append(param, '');\n } else {\n for (const value of token.value) {\n params.append(param, value);\n }\n }\n } else {\n // Persist empty / 'Any' values too so neutralized-but-still-visible pills\n // survive URL round-trips. The query builder skips these so neutrals\n // never reach the backend.\n params.set(param, token.value.trim());\n }\n\n // Only `is` is implicit on read. `in` must be written explicitly (except\n // for tags, which are always multi-valued) or a reload would collapse the\n // selection to its first value.\n const operatorId = traceFilterTokenOperator(token);\n const implicit = token.fieldId === 'tags' ? 'in' : 'is';\n if (operatorId !== implicit) params.set(traceFilterOperatorParam(param), operatorId);\n }\n\n for (const group of groups) {\n params.append(TRACE_FILTER_GROUP_PARAM, serializeTraceFilterGroup(group));\n }\n}\n\n/** Root-level advanced filter groups live in a repeatable `filterGroup` param,\n * one compact JSON subtree each. Node ids are part of the payload so the\n * FilterBar keeps chip identity across URL round-trips. */\nexport const TRACE_FILTER_GROUP_PARAM = 'filterGroup';\n\nexport const serializeTraceFilterGroup = (group: TraceFilterGroup): string => JSON.stringify(group);\n\nexport function getTraceFilterGroups(searchParams: URLSearchParams): TraceFilterGroup[] {\n return searchParams\n .getAll(TRACE_FILTER_GROUP_PARAM)\n .map(parseTraceFilterGroupParam)\n .filter((group): group is TraceFilterGroup => group !== undefined);\n}\n\nexport function parseTraceFilterGroupParam(raw: string): TraceFilterGroup | undefined {\n try {\n return parseTraceFilterGroup(JSON.parse(raw));\n } catch {\n return undefined;\n }\n}\n\nconst isRecord = (value: unknown): value is Record<string, unknown> => typeof value === 'object' && value !== null;\n\nconst isStringArray = (value: unknown): value is string[] =>\n Array.isArray(value) && value.every(entry => typeof entry === 'string');\n\nfunction parseTraceFilterGroup(input: unknown): TraceFilterGroup | undefined {\n if (!isRecord(input) || typeof input.id !== 'string') return undefined;\n if (input.logic !== 'and' && input.logic !== 'or') return undefined;\n if (!Array.isArray(input.nodes)) return undefined;\n const nodes = input.nodes.map(parseTraceFilterNode).filter((node): node is TraceFilterNode => node !== undefined);\n return { id: input.id, logic: input.logic, nodes };\n}\n\nfunction parseTraceFilterNode(input: unknown): TraceFilterNode | undefined {\n if (!isRecord(input)) return undefined;\n if ('nodes' in input) return parseTraceFilterGroup(input);\n if (typeof input.id !== 'string' || typeof input.fieldId !== 'string') return undefined;\n if (typeof input.value !== 'string' && !isStringArray(input.value)) return undefined;\n const token: TraceFilterToken = { id: input.id, fieldId: input.fieldId, value: input.value };\n if (typeof input.operatorId === 'string' && isTraceFilterOperatorId(input.operatorId)) {\n token.operatorId = input.operatorId;\n }\n return token;\n}\n\nexport function buildTraceListFilters({\n rootEntityType,\n status,\n dateFrom,\n dateTo,\n tokens,\n}: {\n rootEntityType?: string;\n status?: TraceStatusFilter;\n dateFrom?: Date;\n dateTo?: Date;\n tokens: PropertyFilterToken[];\n}): ListTracesArgs['filters'] {\n const filters: NonNullable<ListTracesArgs['filters']> = {};\n\n if (rootEntityType) {\n filters.entityType = rootEntityType as NonNullable<ListTracesArgs['filters']>['entityType'];\n }\n\n if (status) {\n filters.status = status as NonNullable<ListTracesArgs['filters']>['status'];\n }\n\n if (dateFrom) {\n filters.startedAt = { start: dateFrom };\n }\n\n if (dateTo) {\n filters.endedAt = { end: dateTo };\n }\n\n for (const token of tokens) {\n if (token.fieldId === 'tags') {\n if (Array.isArray(token.value) && token.value.length > 0) {\n filters.tags = token.value;\n } else if (typeof token.value === 'string' && token.value.trim()) {\n // pick-multi tags: single-string token → wrap for the server's array schema.\n filters.tags = [token.value.trim()];\n }\n continue;\n }\n\n if (typeof token.value !== 'string') continue;\n // Skip empty-string tokens (unfilled pending filters) and 'Any'\n // (pick-multi single-select neutral state) so neutrals never reach the\n // backend.\n if (!token.value.trim()) continue;\n if (token.value === 'Any') continue;\n\n switch (token.fieldId) {\n case 'entityId':\n filters.entityId = token.value;\n break;\n case 'entityName':\n filters.entityName = token.value;\n break;\n case 'traceId':\n filters.traceId = token.value;\n break;\n case 'runId':\n filters.runId = token.value;\n break;\n case 'threadId':\n filters.threadId = token.value;\n break;\n case 'sessionId':\n filters.sessionId = token.value;\n break;\n case 'requestId':\n filters.requestId = token.value;\n break;\n case 'resourceId':\n filters.resourceId = token.value;\n break;\n case 'userId':\n filters.userId = token.value;\n break;\n case 'organizationId':\n filters.organizationId = token.value;\n break;\n case 'serviceName':\n filters.serviceName = token.value;\n break;\n case 'environment':\n filters.environment = token.value;\n break;\n case 'experimentId':\n filters.experimentId = token.value;\n break;\n default:\n break;\n }\n }\n\n return filters;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-list-columns.cjs.js","sources":["../../../src/domains/traces/trace-list-columns.ts"],"sourcesContent":["export const TRACE_OPTIONAL_COLUMNS = [\n 'type',\n 'input',\n 'duration',\n 'endTime',\n 'environment',\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const;\n\nexport type TraceOptionalColumn = (typeof TRACE_OPTIONAL_COLUMNS)[number];\n\nexport const TRACE_USAGE_COLUMNS = [\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const satisfies readonly TraceOptionalColumn[];\n\n/** Trace properties that are not regular columns but can be pinned as a custom column. */\nexport const TRACE_CUSTOM_COLUMN_FIELDS = ['traceId', 'threadId', 'resourceId', 'entityId'] as const;\n\nexport type TraceCustomColumn = (typeof TRACE_CUSTOM_COLUMN_FIELDS)[number];\n\nexport const TRACE_CUSTOM_COLUMN_LABELS: Record<TraceCustomColumn, string> = {\n traceId: 'Trace ID',\n threadId: 'Thread ID',\n resourceId: 'Resource ID',\n entityId: 'Primitive ID',\n};\n\nexport type TraceColumnPreferences = {\n readonly visibleColumns: readonly TraceOptionalColumn[];\n readonly customColumns: readonly TraceCustomColumn[];\n readonly metadataKeys: readonly string[];\n};\n\nexport type TraceUsageSummary = {\n inputTokens?: number;\n outputTokens?: number;\n estimatedCost?: number;\n costUnit?: string;\n};\n\nexport const DEFAULT_TRACE_COLUMN_PREFERENCES: TraceColumnPreferences = {\n visibleColumns: ['type', 'input', 'duration', 'estimatedCost'],\n customColumns: [],\n metadataKeys: [],\n};\n\n// v2: 'entity' became 'type' and moved before Name; duration + cost joined the defaults.\n// v3: added `customColumns`; a v2 payload is migrated rather than reset.\nconst TRACE_COLUMN_PREFERENCES_VERSION = 3;\nconst TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS = new Set<unknown>([2, TRACE_COLUMN_PREFERENCES_VERSION]);\nconst TRACE_COLUMN_SET = new Set<string>(TRACE_OPTIONAL_COLUMNS);\nconst TRACE_USAGE_COLUMN_SET = new Set<TraceOptionalColumn>(TRACE_USAGE_COLUMNS);\nconst TRACE_CUSTOM_COLUMN_SET = new Set<string>(TRACE_CUSTOM_COLUMN_FIELDS);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isTraceOptionalColumn(value: unknown): value is TraceOptionalColumn {\n return typeof value === 'string' && TRACE_COLUMN_SET.has(value);\n}\n\nexport function isTraceCustomColumn(value: unknown): value is TraceCustomColumn {\n return typeof value === 'string' && TRACE_CUSTOM_COLUMN_SET.has(value);\n}\n\nfunction uniqueMetadataKeys(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n\n const keys = value\n .filter(key => typeof key === 'string')\n .map(key => key.trim())\n .filter(Boolean);\n\n return [...new Set(keys)];\n}\n\nexport function parseTraceColumnPreferences(serialized: string | undefined): TraceColumnPreferences {\n if (!serialized) return DEFAULT_TRACE_COLUMN_PREFERENCES;\n\n try {\n const parsed: unknown = JSON.parse(serialized);\n if (!isRecord(parsed) || !TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS.has(parsed.version)) {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n\n const visibleColumns = Array.isArray(parsed.visibleColumns)\n ? [...new Set(parsed.visibleColumns.filter(isTraceOptionalColumn))]\n : [...DEFAULT_TRACE_COLUMN_PREFERENCES.visibleColumns];\n const customColumns = Array.isArray(parsed.customColumns)\n ? [...new Set(parsed.customColumns.filter(isTraceCustomColumn))]\n : [];\n\n return {\n visibleColumns,\n customColumns,\n metadataKeys: uniqueMetadataKeys(parsed.metadataKeys),\n };\n } catch {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n}\n\nexport function serializeTraceColumnPreferences(preferences: TraceColumnPreferences): string {\n return JSON.stringify({\n version: TRACE_COLUMN_PREFERENCES_VERSION,\n visibleColumns: preferences.visibleColumns,\n customColumns: preferences.customColumns,\n metadataKeys: preferences.metadataKeys,\n });\n}\n\nexport function buildTraceListColumns(preferences: TraceColumnPreferences): string {\n const visible = new Set(preferences.visibleColumns);\n // Name is bounded when Input is visible so Input (1fr) absorbs the free space;\n // without Input, Name is the flexible track that fills the grid.\n const columns = ['11rem'];\n\n if (visible.has('type')) columns.push('7rem');\n columns.push(visible.has('input') ? '14rem' : 'minmax(8rem,1fr)');\n if (visible.has('input')) columns.push('minmax(8rem,1fr)');\n\n columns.push('6rem');\n\n if (visible.has('duration')) columns.push('7rem');\n if (visible.has('endTime')) columns.push('11rem');\n if (visible.has('environment')) columns.push('8rem');\n if (visible.has('inputTokens')) columns.push('8rem');\n if (visible.has('outputTokens')) columns.push('8rem');\n if (visible.has('totalTokens')) columns.push('8rem');\n if (visible.has('estimatedCost')) columns.push('8rem');\n\n for (const _field of preferences.customColumns) {\n columns.push('minmax(8rem,14rem)');\n }\n\n for (const _key of preferences.metadataKeys) {\n columns.push('minmax(8rem,14rem)');\n }\n\n return columns.join(' ');\n}\n\nconst RUN_PREFIX_PATTERN = /^(?:agent|workflow|scorer) run: '(.+?)'(.*)$/;\n\n/** Core names root spans `agent run: 'id'` (+ optional ` (resumed)`); the Primitive type column already carries\n * the kind, so the list shows just the id and any suffix. Core names are untouched for exporters. */\nexport function displayTraceName<T extends string | null | undefined>(name: T): T {\n if (!name) return name;\n return name.replace(RUN_PREFIX_PATTERN, '$1$2') as T;\n}\n\nexport function formatTraceMetadataValue(\n metadata: Record<string, unknown> | null | undefined,\n key: string,\n): string | undefined {\n if (!metadata || !Object.prototype.hasOwnProperty.call(metadata, key)) return undefined;\n const value = metadata[key];\n if (value == null) return undefined;\n\n if (typeof value === 'string') return value;\n if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') return String(value);\n\n try {\n return JSON.stringify(value) ?? undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function hasTraceColumn(preferences: TraceColumnPreferences, column: TraceOptionalColumn): boolean {\n return preferences.visibleColumns.includes(column);\n}\n\nexport function hasTraceUsageColumn(preferences: TraceColumnPreferences): boolean {\n return preferences.visibleColumns.some(isTraceUsageColumn);\n}\n\nexport function isTraceUsageColumn(column: TraceOptionalColumn): boolean {\n return TRACE_USAGE_COLUMN_SET.has(column);\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-list-columns.cjs.js","sources":["../../../src/domains/traces/trace-list-columns.ts"],"sourcesContent":["export const TRACE_OPTIONAL_COLUMNS = [\n 'type',\n 'input',\n 'duration',\n 'endTime',\n 'environment',\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const;\n\nexport type TraceOptionalColumn = (typeof TRACE_OPTIONAL_COLUMNS)[number];\n\nexport const TRACE_USAGE_COLUMNS = [\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const satisfies readonly TraceOptionalColumn[];\n\n/** Trace properties that are not regular columns but can be pinned as a custom column. */\nexport const TRACE_CUSTOM_COLUMN_FIELDS = ['traceId', 'threadId', 'resourceId', 'entityId'] as const;\n\nexport type TraceCustomColumn = (typeof TRACE_CUSTOM_COLUMN_FIELDS)[number];\n\nexport const TRACE_CUSTOM_COLUMN_LABELS: Record<TraceCustomColumn, string> = {\n traceId: 'Trace ID',\n threadId: 'Thread ID',\n resourceId: 'Resource ID',\n entityId: 'Primitive ID',\n};\n\nexport type TraceColumnPreferences = {\n readonly visibleColumns: readonly TraceOptionalColumn[];\n readonly customColumns: readonly TraceCustomColumn[];\n readonly metadataKeys: readonly string[];\n};\n\nimport type { TraceUsageSummary } from '@mastra/react/hooks/traces';\nexport type { TraceUsageSummary };\n\nexport const DEFAULT_TRACE_COLUMN_PREFERENCES: TraceColumnPreferences = {\n visibleColumns: ['type', 'input', 'duration', 'estimatedCost'],\n customColumns: [],\n metadataKeys: [],\n};\n\n// v2: 'entity' became 'type' and moved before Name; duration + cost joined the defaults.\n// v3: added `customColumns`; a v2 payload is migrated rather than reset.\nconst TRACE_COLUMN_PREFERENCES_VERSION = 3;\nconst TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS = new Set<unknown>([2, TRACE_COLUMN_PREFERENCES_VERSION]);\nconst TRACE_COLUMN_SET = new Set<string>(TRACE_OPTIONAL_COLUMNS);\nconst TRACE_USAGE_COLUMN_SET = new Set<TraceOptionalColumn>(TRACE_USAGE_COLUMNS);\nconst TRACE_CUSTOM_COLUMN_SET = new Set<string>(TRACE_CUSTOM_COLUMN_FIELDS);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isTraceOptionalColumn(value: unknown): value is TraceOptionalColumn {\n return typeof value === 'string' && TRACE_COLUMN_SET.has(value);\n}\n\nexport function isTraceCustomColumn(value: unknown): value is TraceCustomColumn {\n return typeof value === 'string' && TRACE_CUSTOM_COLUMN_SET.has(value);\n}\n\nfunction uniqueMetadataKeys(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n\n const keys = value\n .filter(key => typeof key === 'string')\n .map(key => key.trim())\n .filter(Boolean);\n\n return [...new Set(keys)];\n}\n\nexport function parseTraceColumnPreferences(serialized: string | undefined): TraceColumnPreferences {\n if (!serialized) return DEFAULT_TRACE_COLUMN_PREFERENCES;\n\n try {\n const parsed: unknown = JSON.parse(serialized);\n if (!isRecord(parsed) || !TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS.has(parsed.version)) {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n\n const visibleColumns = Array.isArray(parsed.visibleColumns)\n ? [...new Set(parsed.visibleColumns.filter(isTraceOptionalColumn))]\n : [...DEFAULT_TRACE_COLUMN_PREFERENCES.visibleColumns];\n const customColumns = Array.isArray(parsed.customColumns)\n ? [...new Set(parsed.customColumns.filter(isTraceCustomColumn))]\n : [];\n\n return {\n visibleColumns,\n customColumns,\n metadataKeys: uniqueMetadataKeys(parsed.metadataKeys),\n };\n } catch {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n}\n\nexport function serializeTraceColumnPreferences(preferences: TraceColumnPreferences): string {\n return JSON.stringify({\n version: TRACE_COLUMN_PREFERENCES_VERSION,\n visibleColumns: preferences.visibleColumns,\n customColumns: preferences.customColumns,\n metadataKeys: preferences.metadataKeys,\n });\n}\n\nexport function buildTraceListColumns(preferences: TraceColumnPreferences): string {\n const visible = new Set(preferences.visibleColumns);\n // Name is bounded when Input is visible so Input (1fr) absorbs the free space;\n // without Input, Name is the flexible track that fills the grid.\n const columns = ['11rem'];\n\n if (visible.has('type')) columns.push('7rem');\n columns.push(visible.has('input') ? '14rem' : 'minmax(8rem,1fr)');\n if (visible.has('input')) columns.push('minmax(8rem,1fr)');\n\n columns.push('6rem');\n\n if (visible.has('duration')) columns.push('7rem');\n if (visible.has('endTime')) columns.push('11rem');\n if (visible.has('environment')) columns.push('8rem');\n if (visible.has('inputTokens')) columns.push('8rem');\n if (visible.has('outputTokens')) columns.push('8rem');\n if (visible.has('totalTokens')) columns.push('8rem');\n if (visible.has('estimatedCost')) columns.push('8rem');\n\n for (const _field of preferences.customColumns) {\n columns.push('minmax(8rem,14rem)');\n }\n\n for (const _key of preferences.metadataKeys) {\n columns.push('minmax(8rem,14rem)');\n }\n\n return columns.join(' ');\n}\n\nconst RUN_PREFIX_PATTERN = /^(?:agent|workflow|scorer) run: '(.+?)'(.*)$/;\n\n/** Core names root spans `agent run: 'id'` (+ optional ` (resumed)`); the Primitive type column already carries\n * the kind, so the list shows just the id and any suffix. Core names are untouched for exporters. */\nexport function displayTraceName<T extends string | null | undefined>(name: T): T {\n if (!name) return name;\n return name.replace(RUN_PREFIX_PATTERN, '$1$2') as T;\n}\n\nexport function formatTraceMetadataValue(\n metadata: Record<string, unknown> | null | undefined,\n key: string,\n): string | undefined {\n if (!metadata || !Object.prototype.hasOwnProperty.call(metadata, key)) return undefined;\n const value = metadata[key];\n if (value == null) return undefined;\n\n if (typeof value === 'string') return value;\n if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') return String(value);\n\n try {\n return JSON.stringify(value) ?? undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function hasTraceColumn(preferences: TraceColumnPreferences, column: TraceOptionalColumn): boolean {\n return preferences.visibleColumns.includes(column);\n}\n\nexport function hasTraceUsageColumn(preferences: TraceColumnPreferences): boolean {\n return preferences.visibleColumns.some(isTraceUsageColumn);\n}\n\nexport function isTraceUsageColumn(column: TraceOptionalColumn): boolean {\n return TRACE_USAGE_COLUMN_SET.has(column);\n}\n"],"names":[],"mappings":";;;;AAAO,MAAM,sBAAA,GAAyB;AAAA,EACpC,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF;AAIO,MAAM,mBAAA,GAAsB;AAAA,EACjC,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF;AAGO,MAAM,0BAAA,GAA6B,CAAC,SAAA,EAAW,UAAA,EAAY,cAAc,UAAU;AAInF,MAAM,0BAAA,GAAgE;AAAA,EAC3E,OAAA,EAAS,UAAA;AAAA,EACT,QAAA,EAAU,WAAA;AAAA,EACV,UAAA,EAAY,aAAA;AAAA,EACZ,QAAA,EAAU;AACZ;AAWO,MAAM,gCAAA,GAA2D;AAAA,EACtE,cAAA,EAAgB,CAAC,MAAA,EAAQ,OAAA,EAAS,YAAY,eAAe,CAAA;AAAA,EAC7D,eAAe,EAAC;AAAA,EAChB,cAAc;AAChB;AAIA,MAAM,gCAAA,GAAmC,CAAA;AACzC,MAAM,+DAA+C,IAAI,GAAA,CAAa,CAAC,CAAA,EAAG,gCAAgC,CAAC,CAAA;AAC3G,MAAM,gBAAA,GAAmB,IAAI,GAAA,CAAY,sBAAsB,CAAA;AAC/D,MAAM,sBAAA,GAAyB,IAAI,GAAA,CAAyB,mBAAmB,CAAA;AAC/E,MAAM,uBAAA,GAA0B,IAAI,GAAA,CAAY,0BAA0B,CAAA;AAE1E,SAAS,SAAS,KAAA,EAAkD;AAClE,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,sBAAsB,KAAA,EAA8C;AAC3E,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,gBAAA,CAAiB,IAAI,KAAK,CAAA;AAChE;AAEO,SAAS,oBAAoB,KAAA,EAA4C;AAC9E,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,uBAAA,CAAwB,IAAI,KAAK,CAAA;AACvE;AAEA,SAAS,mBAAmB,KAAA,EAA0B;AACpD,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,SAAU,EAAC;AAEnC,EAAA,MAAM,IAAA,GAAO,KAAA,CACV,MAAA,CAAO,CAAA,GAAA,KAAO,OAAO,GAAA,KAAQ,QAAQ,CAAA,CACrC,GAAA,CAAI,SAAO,GAAA,CAAI,IAAA,EAAM,CAAA,CACrB,OAAO,OAAO,CAAA;AAEjB,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,IAAI,CAAC,CAAA;AAC1B;AAEO,SAAS,4BAA4B,UAAA,EAAwD;AAClG,EAAA,IAAI,CAAC,YAAY,OAAO,gCAAA;AAExB,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAkB,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAC7C,IAAA,IAAI,CAAC,SAAS,MAAM,CAAA,IAAK,CAAC,4CAAA,CAA6C,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA,EAAG;AAC1F,MAAA,OAAO,gCAAA;AAAA,IACT;AAEA,IAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,MAAA,CAAO,cAAc,CAAA,GACtD,CAAC,GAAG,IAAI,GAAA,CAAI,OAAO,cAAA,CAAe,MAAA,CAAO,qBAAqB,CAAC,CAAC,IAChE,CAAC,GAAG,iCAAiC,cAAc,CAAA;AACvD,IAAA,MAAM,gBAAgB,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,aAAa,IACpD,CAAC,GAAG,IAAI,GAAA,CAAI,OAAO,aAAA,CAAc,MAAA,CAAO,mBAAmB,CAAC,CAAC,IAC7D,EAAC;AAEL,IAAA,OAAO;AAAA,MACL,cAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA,EAAc,kBAAA,CAAmB,MAAA,CAAO,YAAY;AAAA,KACtD;AAAA,EACF,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,gCAAA;AAAA,EACT;AACF;AAEO,SAAS,gCAAgC,WAAA,EAA6C;AAC3F,EAAA,OAAO,KAAK,SAAA,CAAU;AAAA,IACpB,OAAA,EAAS,gCAAA;AAAA,IACT,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,eAAe,WAAA,CAAY,aAAA;AAAA,IAC3B,cAAc,WAAA,CAAY;AAAA,GAC3B,CAAA;AACH;AAEO,SAAS,sBAAsB,WAAA,EAA6C;AACjF,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,WAAA,CAAY,cAAc,CAAA;AAGlD,EAAA,MAAM,OAAA,GAAU,CAAC,OAAO,CAAA;AAExB,EAAA,IAAI,QAAQ,GAAA,CAAI,MAAM,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAC5C,EAAA,OAAA,CAAQ,KAAK,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,GAAI,UAAU,kBAAkB,CAAA;AAChE,EAAA,IAAI,QAAQ,GAAA,CAAI,OAAO,CAAA,EAAG,OAAA,CAAQ,KAAK,kBAAkB,CAAA;AAEzD,EAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AAEnB,EAAA,IAAI,QAAQ,GAAA,CAAI,UAAU,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAChD,EAAA,IAAI,QAAQ,GAAA,CAAI,SAAS,CAAA,EAAG,OAAA,CAAQ,KAAK,OAAO,CAAA;AAChD,EAAA,IAAI,QAAQ,GAAA,CAAI,aAAa,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,GAAA,CAAI,aAAa,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,GAAA,CAAI,cAAc,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACpD,EAAA,IAAI,QAAQ,GAAA,CAAI,aAAa,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,GAAA,CAAI,eAAe,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAErD,EAAA,KAAA,MAAW,MAAA,IAAU,YAAY,aAAA,EAAe;AAC9C,IAAA,OAAA,CAAQ,KAAK,oBAAoB,CAAA;AAAA,EACnC;AAEA,EAAA,KAAA,MAAW,IAAA,IAAQ,YAAY,YAAA,EAAc;AAC3C,IAAA,OAAA,CAAQ,KAAK,oBAAoB,CAAA;AAAA,EACnC;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;AAEA,MAAM,kBAAA,GAAqB,8CAAA;AAIpB,SAAS,iBAAsD,IAAA,EAAY;AAChF,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,kBAAA,EAAoB,MAAM,CAAA;AAChD;AAEO,SAAS,wBAAA,CACd,UACA,GAAA,EACoB;AACpB,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,MAAA,CAAO,SAAA,CAAU,eAAe,IAAA,CAAK,QAAA,EAAU,GAAG,CAAA,EAAG,OAAO,MAAA;AAC9E,EAAA,MAAM,KAAA,GAAQ,SAAS,GAAG,CAAA;AAC1B,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAE1B,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,KAAA,KAAU,SAAA,IAAa,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,MAAA,CAAO,KAAK,CAAA;AAE7G,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,IAAK,KAAA,CAAA;AAAA,EAClC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEO,SAAS,cAAA,CAAe,aAAqC,MAAA,EAAsC;AACxG,EAAA,OAAO,WAAA,CAAY,cAAA,CAAe,QAAA,CAAS,MAAM,CAAA;AACnD;AAEO,SAAS,oBAAoB,WAAA,EAA8C;AAChF,EAAA,OAAO,WAAA,CAAY,cAAA,CAAe,IAAA,CAAK,kBAAkB,CAAA;AAC3D;AAEO,SAAS,mBAAmB,MAAA,EAAsC;AACvE,EAAA,OAAO,sBAAA,CAAuB,IAAI,MAAM,CAAA;AAC1C;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-list-columns.es.js","sources":["../../../src/domains/traces/trace-list-columns.ts"],"sourcesContent":["export const TRACE_OPTIONAL_COLUMNS = [\n 'type',\n 'input',\n 'duration',\n 'endTime',\n 'environment',\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const;\n\nexport type TraceOptionalColumn = (typeof TRACE_OPTIONAL_COLUMNS)[number];\n\nexport const TRACE_USAGE_COLUMNS = [\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const satisfies readonly TraceOptionalColumn[];\n\n/** Trace properties that are not regular columns but can be pinned as a custom column. */\nexport const TRACE_CUSTOM_COLUMN_FIELDS = ['traceId', 'threadId', 'resourceId', 'entityId'] as const;\n\nexport type TraceCustomColumn = (typeof TRACE_CUSTOM_COLUMN_FIELDS)[number];\n\nexport const TRACE_CUSTOM_COLUMN_LABELS: Record<TraceCustomColumn, string> = {\n traceId: 'Trace ID',\n threadId: 'Thread ID',\n resourceId: 'Resource ID',\n entityId: 'Primitive ID',\n};\n\nexport type TraceColumnPreferences = {\n readonly visibleColumns: readonly TraceOptionalColumn[];\n readonly customColumns: readonly TraceCustomColumn[];\n readonly metadataKeys: readonly string[];\n};\n\nexport type TraceUsageSummary = {\n inputTokens?: number;\n outputTokens?: number;\n estimatedCost?: number;\n costUnit?: string;\n};\n\nexport const DEFAULT_TRACE_COLUMN_PREFERENCES: TraceColumnPreferences = {\n visibleColumns: ['type', 'input', 'duration', 'estimatedCost'],\n customColumns: [],\n metadataKeys: [],\n};\n\n// v2: 'entity' became 'type' and moved before Name; duration + cost joined the defaults.\n// v3: added `customColumns`; a v2 payload is migrated rather than reset.\nconst TRACE_COLUMN_PREFERENCES_VERSION = 3;\nconst TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS = new Set<unknown>([2, TRACE_COLUMN_PREFERENCES_VERSION]);\nconst TRACE_COLUMN_SET = new Set<string>(TRACE_OPTIONAL_COLUMNS);\nconst TRACE_USAGE_COLUMN_SET = new Set<TraceOptionalColumn>(TRACE_USAGE_COLUMNS);\nconst TRACE_CUSTOM_COLUMN_SET = new Set<string>(TRACE_CUSTOM_COLUMN_FIELDS);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isTraceOptionalColumn(value: unknown): value is TraceOptionalColumn {\n return typeof value === 'string' && TRACE_COLUMN_SET.has(value);\n}\n\nexport function isTraceCustomColumn(value: unknown): value is TraceCustomColumn {\n return typeof value === 'string' && TRACE_CUSTOM_COLUMN_SET.has(value);\n}\n\nfunction uniqueMetadataKeys(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n\n const keys = value\n .filter(key => typeof key === 'string')\n .map(key => key.trim())\n .filter(Boolean);\n\n return [...new Set(keys)];\n}\n\nexport function parseTraceColumnPreferences(serialized: string | undefined): TraceColumnPreferences {\n if (!serialized) return DEFAULT_TRACE_COLUMN_PREFERENCES;\n\n try {\n const parsed: unknown = JSON.parse(serialized);\n if (!isRecord(parsed) || !TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS.has(parsed.version)) {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n\n const visibleColumns = Array.isArray(parsed.visibleColumns)\n ? [...new Set(parsed.visibleColumns.filter(isTraceOptionalColumn))]\n : [...DEFAULT_TRACE_COLUMN_PREFERENCES.visibleColumns];\n const customColumns = Array.isArray(parsed.customColumns)\n ? [...new Set(parsed.customColumns.filter(isTraceCustomColumn))]\n : [];\n\n return {\n visibleColumns,\n customColumns,\n metadataKeys: uniqueMetadataKeys(parsed.metadataKeys),\n };\n } catch {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n}\n\nexport function serializeTraceColumnPreferences(preferences: TraceColumnPreferences): string {\n return JSON.stringify({\n version: TRACE_COLUMN_PREFERENCES_VERSION,\n visibleColumns: preferences.visibleColumns,\n customColumns: preferences.customColumns,\n metadataKeys: preferences.metadataKeys,\n });\n}\n\nexport function buildTraceListColumns(preferences: TraceColumnPreferences): string {\n const visible = new Set(preferences.visibleColumns);\n // Name is bounded when Input is visible so Input (1fr) absorbs the free space;\n // without Input, Name is the flexible track that fills the grid.\n const columns = ['11rem'];\n\n if (visible.has('type')) columns.push('7rem');\n columns.push(visible.has('input') ? '14rem' : 'minmax(8rem,1fr)');\n if (visible.has('input')) columns.push('minmax(8rem,1fr)');\n\n columns.push('6rem');\n\n if (visible.has('duration')) columns.push('7rem');\n if (visible.has('endTime')) columns.push('11rem');\n if (visible.has('environment')) columns.push('8rem');\n if (visible.has('inputTokens')) columns.push('8rem');\n if (visible.has('outputTokens')) columns.push('8rem');\n if (visible.has('totalTokens')) columns.push('8rem');\n if (visible.has('estimatedCost')) columns.push('8rem');\n\n for (const _field of preferences.customColumns) {\n columns.push('minmax(8rem,14rem)');\n }\n\n for (const _key of preferences.metadataKeys) {\n columns.push('minmax(8rem,14rem)');\n }\n\n return columns.join(' ');\n}\n\nconst RUN_PREFIX_PATTERN = /^(?:agent|workflow|scorer) run: '(.+?)'(.*)$/;\n\n/** Core names root spans `agent run: 'id'` (+ optional ` (resumed)`); the Primitive type column already carries\n * the kind, so the list shows just the id and any suffix. Core names are untouched for exporters. */\nexport function displayTraceName<T extends string | null | undefined>(name: T): T {\n if (!name) return name;\n return name.replace(RUN_PREFIX_PATTERN, '$1$2') as T;\n}\n\nexport function formatTraceMetadataValue(\n metadata: Record<string, unknown> | null | undefined,\n key: string,\n): string | undefined {\n if (!metadata || !Object.prototype.hasOwnProperty.call(metadata, key)) return undefined;\n const value = metadata[key];\n if (value == null) return undefined;\n\n if (typeof value === 'string') return value;\n if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') return String(value);\n\n try {\n return JSON.stringify(value) ?? undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function hasTraceColumn(preferences: TraceColumnPreferences, column: TraceOptionalColumn): boolean {\n return preferences.visibleColumns.includes(column);\n}\n\nexport function hasTraceUsageColumn(preferences: TraceColumnPreferences): boolean {\n return preferences.visibleColumns.some(isTraceUsageColumn);\n}\n\nexport function isTraceUsageColumn(column: TraceOptionalColumn): boolean {\n return TRACE_USAGE_COLUMN_SET.has(column);\n}\n"],"names":[],"mappings":"AAAO,MAAM,sBAAA,GAAyB;AAAA,EACpC,MAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF;AAIO,MAAM,mBAAA,GAAsB;AAAA,EACjC,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF;AAGO,MAAM,0BAAA,GAA6B,CAAC,SAAA,EAAW,UAAA,EAAY,cAAc,UAAU;AAInF,MAAM,0BAAA,GAAgE;AAAA,EAC3E,OAAA,EAAS,UAAA;AAAA,EACT,QAAA,EAAU,WAAA;AAAA,EACV,UAAA,EAAY,aAAA;AAAA,EACZ,QAAA,EAAU;AACZ;AAeO,MAAM,gCAAA,GAA2D;AAAA,EACtE,cAAA,EAAgB,CAAC,MAAA,EAAQ,OAAA,EAAS,YAAY,eAAe,CAAA;AAAA,EAC7D,eAAe,EAAC;AAAA,EAChB,cAAc;AAChB;AAIA,MAAM,gCAAA,GAAmC,CAAA;AACzC,MAAM,+DAA+C,IAAI,GAAA,CAAa,CAAC,CAAA,EAAG,gCAAgC,CAAC,CAAA;AAC3G,MAAM,gBAAA,GAAmB,IAAI,GAAA,CAAY,sBAAsB,CAAA;AAC/D,MAAM,sBAAA,GAAyB,IAAI,GAAA,CAAyB,mBAAmB,CAAA;AAC/E,MAAM,uBAAA,GAA0B,IAAI,GAAA,CAAY,0BAA0B,CAAA;AAE1E,SAAS,SAAS,KAAA,EAAkD;AAClE,EAAA,OAAO,OAAO,UAAU,QAAA,IAAY,KAAA,KAAU,QAAQ,CAAC,KAAA,CAAM,QAAQ,KAAK,CAAA;AAC5E;AAEA,SAAS,sBAAsB,KAAA,EAA8C;AAC3E,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,gBAAA,CAAiB,IAAI,KAAK,CAAA;AAChE;AAEO,SAAS,oBAAoB,KAAA,EAA4C;AAC9E,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,uBAAA,CAAwB,IAAI,KAAK,CAAA;AACvE;AAEA,SAAS,mBAAmB,KAAA,EAA0B;AACpD,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,SAAU,EAAC;AAEnC,EAAA,MAAM,IAAA,GAAO,KAAA,CACV,MAAA,CAAO,CAAA,GAAA,KAAO,OAAO,GAAA,KAAQ,QAAQ,CAAA,CACrC,GAAA,CAAI,SAAO,GAAA,CAAI,IAAA,EAAM,CAAA,CACrB,OAAO,OAAO,CAAA;AAEjB,EAAA,OAAO,CAAC,GAAG,IAAI,GAAA,CAAI,IAAI,CAAC,CAAA;AAC1B;AAEO,SAAS,4BAA4B,UAAA,EAAwD;AAClG,EAAA,IAAI,CAAC,YAAY,OAAO,gCAAA;AAExB,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAkB,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA;AAC7C,IAAA,IAAI,CAAC,SAAS,MAAM,CAAA,IAAK,CAAC,4CAAA,CAA6C,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA,EAAG;AAC1F,MAAA,OAAO,gCAAA;AAAA,IACT;AAEA,IAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,MAAA,CAAO,cAAc,CAAA,GACtD,CAAC,GAAG,IAAI,GAAA,CAAI,OAAO,cAAA,CAAe,MAAA,CAAO,qBAAqB,CAAC,CAAC,IAChE,CAAC,GAAG,iCAAiC,cAAc,CAAA;AACvD,IAAA,MAAM,gBAAgB,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,aAAa,IACpD,CAAC,GAAG,IAAI,GAAA,CAAI,OAAO,aAAA,CAAc,MAAA,CAAO,mBAAmB,CAAC,CAAC,IAC7D,EAAC;AAEL,IAAA,OAAO;AAAA,MACL,cAAA;AAAA,MACA,aAAA;AAAA,MACA,YAAA,EAAc,kBAAA,CAAmB,MAAA,CAAO,YAAY;AAAA,KACtD;AAAA,EACF,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,gCAAA;AAAA,EACT;AACF;AAEO,SAAS,gCAAgC,WAAA,EAA6C;AAC3F,EAAA,OAAO,KAAK,SAAA,CAAU;AAAA,IACpB,OAAA,EAAS,gCAAA;AAAA,IACT,gBAAgB,WAAA,CAAY,cAAA;AAAA,IAC5B,eAAe,WAAA,CAAY,aAAA;AAAA,IAC3B,cAAc,WAAA,CAAY;AAAA,GAC3B,CAAA;AACH;AAEO,SAAS,sBAAsB,WAAA,EAA6C;AACjF,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,WAAA,CAAY,cAAc,CAAA;AAGlD,EAAA,MAAM,OAAA,GAAU,CAAC,OAAO,CAAA;AAExB,EAAA,IAAI,QAAQ,GAAA,CAAI,MAAM,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAC5C,EAAA,OAAA,CAAQ,KAAK,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,GAAI,UAAU,kBAAkB,CAAA;AAChE,EAAA,IAAI,QAAQ,GAAA,CAAI,OAAO,CAAA,EAAG,OAAA,CAAQ,KAAK,kBAAkB,CAAA;AAEzD,EAAA,OAAA,CAAQ,KAAK,MAAM,CAAA;AAEnB,EAAA,IAAI,QAAQ,GAAA,CAAI,UAAU,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAChD,EAAA,IAAI,QAAQ,GAAA,CAAI,SAAS,CAAA,EAAG,OAAA,CAAQ,KAAK,OAAO,CAAA;AAChD,EAAA,IAAI,QAAQ,GAAA,CAAI,aAAa,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,GAAA,CAAI,aAAa,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,GAAA,CAAI,cAAc,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACpD,EAAA,IAAI,QAAQ,GAAA,CAAI,aAAa,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AACnD,EAAA,IAAI,QAAQ,GAAA,CAAI,eAAe,CAAA,EAAG,OAAA,CAAQ,KAAK,MAAM,CAAA;AAErD,EAAA,KAAA,MAAW,MAAA,IAAU,YAAY,aAAA,EAAe;AAC9C,IAAA,OAAA,CAAQ,KAAK,oBAAoB,CAAA;AAAA,EACnC;AAEA,EAAA,KAAA,MAAW,IAAA,IAAQ,YAAY,YAAA,EAAc;AAC3C,IAAA,OAAA,CAAQ,KAAK,oBAAoB,CAAA;AAAA,EACnC;AAEA,EAAA,OAAO,OAAA,CAAQ,KAAK,GAAG,CAAA;AACzB;AAEA,MAAM,kBAAA,GAAqB,8CAAA;AAIpB,SAAS,iBAAsD,IAAA,EAAY;AAChF,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,EAAA,OAAO,IAAA,CAAK,OAAA,CAAQ,kBAAA,EAAoB,MAAM,CAAA;AAChD;AAEO,SAAS,wBAAA,CACd,UACA,GAAA,EACoB;AACpB,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,MAAA,CAAO,SAAA,CAAU,eAAe,IAAA,CAAK,QAAA,EAAU,GAAG,CAAA,EAAG,OAAO,MAAA;AAC9E,EAAA,MAAM,KAAA,GAAQ,SAAS,GAAG,CAAA;AAC1B,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAE1B,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,KAAA,KAAU,SAAA,IAAa,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,MAAA,CAAO,KAAK,CAAA;AAE7G,EAAA,IAAI;AACF,IAAA,OAAO,IAAA,CAAK,SAAA,CAAU,KAAK,CAAA,IAAK,KAAA,CAAA;AAAA,EAClC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEO,SAAS,cAAA,CAAe,aAAqC,MAAA,EAAsC;AACxG,EAAA,OAAO,WAAA,CAAY,cAAA,CAAe,QAAA,CAAS,MAAM,CAAA;AACnD;AAEO,SAAS,oBAAoB,WAAA,EAA8C;AAChF,EAAA,OAAO,WAAA,CAAY,cAAA,CAAe,IAAA,CAAK,kBAAkB,CAAA;AAC3D;AAEO,SAAS,mBAAmB,MAAA,EAAsC;AACvE,EAAA,OAAO,sBAAA,CAAuB,IAAI,MAAM,CAAA;AAC1C;;;;"}
|
|
1
|
+
{"version":3,"file":"trace-list-columns.es.js","sources":["../../../src/domains/traces/trace-list-columns.ts"],"sourcesContent":["export const TRACE_OPTIONAL_COLUMNS = [\n 'type',\n 'input',\n 'duration',\n 'endTime',\n 'environment',\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const;\n\nexport type TraceOptionalColumn = (typeof TRACE_OPTIONAL_COLUMNS)[number];\n\nexport const TRACE_USAGE_COLUMNS = [\n 'inputTokens',\n 'outputTokens',\n 'totalTokens',\n 'estimatedCost',\n] as const satisfies readonly TraceOptionalColumn[];\n\n/** Trace properties that are not regular columns but can be pinned as a custom column. */\nexport const TRACE_CUSTOM_COLUMN_FIELDS = ['traceId', 'threadId', 'resourceId', 'entityId'] as const;\n\nexport type TraceCustomColumn = (typeof TRACE_CUSTOM_COLUMN_FIELDS)[number];\n\nexport const TRACE_CUSTOM_COLUMN_LABELS: Record<TraceCustomColumn, string> = {\n traceId: 'Trace ID',\n threadId: 'Thread ID',\n resourceId: 'Resource ID',\n entityId: 'Primitive ID',\n};\n\nexport type TraceColumnPreferences = {\n readonly visibleColumns: readonly TraceOptionalColumn[];\n readonly customColumns: readonly TraceCustomColumn[];\n readonly metadataKeys: readonly string[];\n};\n\nimport type { TraceUsageSummary } from '@mastra/react/hooks/traces';\nexport type { TraceUsageSummary };\n\nexport const DEFAULT_TRACE_COLUMN_PREFERENCES: TraceColumnPreferences = {\n visibleColumns: ['type', 'input', 'duration', 'estimatedCost'],\n customColumns: [],\n metadataKeys: [],\n};\n\n// v2: 'entity' became 'type' and moved before Name; duration + cost joined the defaults.\n// v3: added `customColumns`; a v2 payload is migrated rather than reset.\nconst TRACE_COLUMN_PREFERENCES_VERSION = 3;\nconst TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS = new Set<unknown>([2, TRACE_COLUMN_PREFERENCES_VERSION]);\nconst TRACE_COLUMN_SET = new Set<string>(TRACE_OPTIONAL_COLUMNS);\nconst TRACE_USAGE_COLUMN_SET = new Set<TraceOptionalColumn>(TRACE_USAGE_COLUMNS);\nconst TRACE_CUSTOM_COLUMN_SET = new Set<string>(TRACE_CUSTOM_COLUMN_FIELDS);\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction isTraceOptionalColumn(value: unknown): value is TraceOptionalColumn {\n return typeof value === 'string' && TRACE_COLUMN_SET.has(value);\n}\n\nexport function isTraceCustomColumn(value: unknown): value is TraceCustomColumn {\n return typeof value === 'string' && TRACE_CUSTOM_COLUMN_SET.has(value);\n}\n\nfunction uniqueMetadataKeys(value: unknown): string[] {\n if (!Array.isArray(value)) return [];\n\n const keys = value\n .filter(key => typeof key === 'string')\n .map(key => key.trim())\n .filter(Boolean);\n\n return [...new Set(keys)];\n}\n\nexport function parseTraceColumnPreferences(serialized: string | undefined): TraceColumnPreferences {\n if (!serialized) return DEFAULT_TRACE_COLUMN_PREFERENCES;\n\n try {\n const parsed: unknown = JSON.parse(serialized);\n if (!isRecord(parsed) || !TRACE_COLUMN_PREFERENCES_MIGRATABLE_VERSIONS.has(parsed.version)) {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n\n const visibleColumns = Array.isArray(parsed.visibleColumns)\n ? [...new Set(parsed.visibleColumns.filter(isTraceOptionalColumn))]\n : [...DEFAULT_TRACE_COLUMN_PREFERENCES.visibleColumns];\n const customColumns = Array.isArray(parsed.customColumns)\n ? [...new Set(parsed.customColumns.filter(isTraceCustomColumn))]\n : [];\n\n return {\n visibleColumns,\n customColumns,\n metadataKeys: uniqueMetadataKeys(parsed.metadataKeys),\n };\n } catch {\n return DEFAULT_TRACE_COLUMN_PREFERENCES;\n }\n}\n\nexport function serializeTraceColumnPreferences(preferences: TraceColumnPreferences): string {\n return JSON.stringify({\n version: TRACE_COLUMN_PREFERENCES_VERSION,\n visibleColumns: preferences.visibleColumns,\n customColumns: preferences.customColumns,\n metadataKeys: preferences.metadataKeys,\n });\n}\n\nexport function buildTraceListColumns(preferences: TraceColumnPreferences): string {\n const visible = new Set(preferences.visibleColumns);\n // Name is bounded when Input is visible so Input (1fr) absorbs the free space;\n // without Input, Name is the flexible track that fills the grid.\n const columns = ['11rem'];\n\n if (visible.has('type')) columns.push('7rem');\n columns.push(visible.has('input') ? '14rem' : 'minmax(8rem,1fr)');\n if (visible.has('input')) columns.push('minmax(8rem,1fr)');\n\n columns.push('6rem');\n\n if (visible.has('duration')) columns.push('7rem');\n if (visible.has('endTime')) columns.push('11rem');\n if (visible.has('environment')) columns.push('8rem');\n if (visible.has('inputTokens')) columns.push('8rem');\n if (visible.has('outputTokens')) columns.push('8rem');\n if (visible.has('totalTokens')) columns.push('8rem');\n if (visible.has('estimatedCost')) columns.push('8rem');\n\n for (const _field of preferences.customColumns) {\n columns.push('minmax(8rem,14rem)');\n }\n\n for (const _key of preferences.metadataKeys) {\n columns.push('minmax(8rem,14rem)');\n }\n\n return columns.join(' ');\n}\n\nconst RUN_PREFIX_PATTERN = /^(?:agent|workflow|scorer) run: '(.+?)'(.*)$/;\n\n/** Core names root spans `agent run: 'id'` (+ optional ` (resumed)`); the Primitive type column already carries\n * the kind, so the list shows just the id and any suffix. Core names are untouched for exporters. */\nexport function displayTraceName<T extends string | null | undefined>(name: T): T {\n if (!name) return name;\n return name.replace(RUN_PREFIX_PATTERN, '$1$2') as T;\n}\n\nexport function formatTraceMetadataValue(\n metadata: Record<string, unknown> | null | undefined,\n key: string,\n): string | undefined {\n if (!metadata || !Object.prototype.hasOwnProperty.call(metadata, key)) return undefined;\n const value = metadata[key];\n if (value == null) return undefined;\n\n if (typeof value === 'string') return value;\n if (typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint') return String(value);\n\n try {\n return JSON.stringify(value) ?? undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function hasTraceColumn(preferences: TraceColumnPreferences, column: TraceOptionalColumn): boolean {\n return preferences.visibleColumns.includes(column);\n}\n\nexport function hasTraceUsageColumn(preferences: TraceColumnPreferences): boolean {\n return preferences.visibleColumns.some(isTraceUsageColumn);\n}\n\nexport function isTraceUsageColumn(column: TraceOptionalColumn): boolean {\n return TRACE_USAGE_COLUMN_SET.has(column);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.cjs.js","sources":["../../../src/domains/traces/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"types.cjs.js","sources":["../../../src/domains/traces/types.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { LightSpanRecord } from '@mastra/react/hooks/traces';\nimport type { ReactNode } from 'react';\n\nexport type { LightSpanRecord, SpanRecord } from '@mastra/react/hooks/traces';\n\n/**\n * A light span carrying a precomputed haystack of everything it holds.\n *\n * `LightSpanRecord` exposes searchable content across a fixed set of columns\n * plus open-ended payloads whose shape is unknown, so a search cannot read it\n * field by field. `searchText` is that content flattened once — see\n * `flattenToSearchText` — so filtering is a substring test per span instead of\n * a re-walk of every payload on every keystroke.\n *\n * It holds field names as well as values, so a span is findable by the shape of\n * its payload and not only by its content.\n */\nexport type SearchableSpan = LightSpanRecord & {\n searchText: string;\n};\n\nexport type UISpan = {\n id: string;\n name: string;\n type: string;\n latency: number;\n startTime: string;\n endTime?: string;\n spans?: UISpan[];\n parentSpanId?: string | null;\n /**\n * Set when the span survived the active search because of its payload, not its name — the\n * timeline paints such a row differently since the term is nowhere on it.\n */\n matchedInPayloadOnly?: boolean;\n};\n\nexport type UISpanStyle = {\n icon?: ReactNode;\n color?: string;\n label?: string;\n typePrefix: string;\n};\n\n// -- Trace filtering types ----------------------------------------------------\n\nexport type EntityOptions =\n | { value: string; label: string; type: EntityType.AGENT }\n | { value: string; label: string; type: EntityType.WORKFLOW_RUN }\n | { value: string; label: string; type: 'all' };\n\nexport type TraceDatePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\n/** Tab identifier for SpanDataPanelView. */\nexport type SpanTab = 'details' | 'feedback';\n\n/** Canonical list of context field IDs used for trace filtering and value extraction */\nexport const CONTEXT_FIELD_IDS = [\n 'environment',\n 'serviceName',\n 'source',\n 'scope',\n 'userId',\n 'organizationId',\n 'resourceId',\n 'runId',\n 'sessionId',\n 'threadId',\n 'requestId',\n 'experimentId',\n 'spanType',\n 'entityName',\n 'parentEntityType',\n 'parentEntityId',\n 'parentEntityName',\n 'rootEntityType',\n 'rootEntityId',\n 'rootEntityName',\n] as const;\n"],"names":[],"mappings":";;;;AA0DO,MAAM,iBAAA,GAAoB;AAAA,EAC/B,aAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.es.js","sources":["../../../src/domains/traces/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"types.es.js","sources":["../../../src/domains/traces/types.ts"],"sourcesContent":["import type { EntityType } from '@mastra/core/observability';\nimport type { LightSpanRecord } from '@mastra/react/hooks/traces';\nimport type { ReactNode } from 'react';\n\nexport type { LightSpanRecord, SpanRecord } from '@mastra/react/hooks/traces';\n\n/**\n * A light span carrying a precomputed haystack of everything it holds.\n *\n * `LightSpanRecord` exposes searchable content across a fixed set of columns\n * plus open-ended payloads whose shape is unknown, so a search cannot read it\n * field by field. `searchText` is that content flattened once — see\n * `flattenToSearchText` — so filtering is a substring test per span instead of\n * a re-walk of every payload on every keystroke.\n *\n * It holds field names as well as values, so a span is findable by the shape of\n * its payload and not only by its content.\n */\nexport type SearchableSpan = LightSpanRecord & {\n searchText: string;\n};\n\nexport type UISpan = {\n id: string;\n name: string;\n type: string;\n latency: number;\n startTime: string;\n endTime?: string;\n spans?: UISpan[];\n parentSpanId?: string | null;\n /**\n * Set when the span survived the active search because of its payload, not its name — the\n * timeline paints such a row differently since the term is nowhere on it.\n */\n matchedInPayloadOnly?: boolean;\n};\n\nexport type UISpanStyle = {\n icon?: ReactNode;\n color?: string;\n label?: string;\n typePrefix: string;\n};\n\n// -- Trace filtering types ----------------------------------------------------\n\nexport type EntityOptions =\n | { value: string; label: string; type: EntityType.AGENT }\n | { value: string; label: string; type: EntityType.WORKFLOW_RUN }\n | { value: string; label: string; type: 'all' };\n\nexport type TraceDatePreset = 'all' | 'last-24h' | 'last-3d' | 'last-7d' | 'last-14d' | 'last-30d' | 'custom';\n\n/** Tab identifier for SpanDataPanelView. */\nexport type SpanTab = 'details' | 'feedback';\n\n/** Canonical list of context field IDs used for trace filtering and value extraction */\nexport const CONTEXT_FIELD_IDS = [\n 'environment',\n 'serviceName',\n 'source',\n 'scope',\n 'userId',\n 'organizationId',\n 'resourceId',\n 'runId',\n 'sessionId',\n 'threadId',\n 'requestId',\n 'experimentId',\n 'spanType',\n 'entityName',\n 'parentEntityType',\n 'parentEntityId',\n 'parentEntityName',\n 'rootEntityType',\n 'rootEntityId',\n 'rootEntityName',\n] as const;\n"],"names":[],"mappings":"AA0DO,MAAM,iBAAA,GAAoB;AAAA,EAC/B,aAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF;;;;"}
|
|
@@ -36,21 +36,10 @@ const domains_traces_components_spanPayload_spanPayloadJson = require('./traces/
|
|
|
36
36
|
const domains_traces_components_spanPayload_spanPayloadProcessor = require('./traces/components/span-payload/span-payload-processor.cjs.js');
|
|
37
37
|
const domains_traces_components_spanPayload_spanProcessorAttributes = require('./traces/components/span-payload/span-processor-attributes.cjs.js');
|
|
38
38
|
const domains_traces_hooks_getAllSpanIds = require('./traces/hooks/get-all-span-ids.cjs.js');
|
|
39
|
-
const
|
|
39
|
+
const traces = require('@mastra/react/hooks/traces');
|
|
40
40
|
const domains_traces_hooks_useDownloadTraceJson = require('./traces/hooks/use-download-trace-json.cjs.js');
|
|
41
|
-
const domains_traces_hooks_useSpanDetail = require('./traces/hooks/use-span-detail.cjs.js');
|
|
42
|
-
const domains_traces_hooks_useTraceLightSpans = require('./traces/hooks/use-trace-light-spans.cjs.js');
|
|
43
|
-
const domains_traces_hooks_useTraceOrBranchSpans = require('./traces/hooks/use-trace-or-branch-spans.cjs.js');
|
|
44
41
|
const domains_traces_hooks_useTraceSearch = require('./traces/hooks/use-trace-search.cjs.js');
|
|
45
|
-
const domains_traces_hooks_useTraceSpans = require('./traces/hooks/use-trace-spans.cjs.js');
|
|
46
|
-
const domains_traces_hooks_useTraces = require('./traces/hooks/use-traces.cjs.js');
|
|
47
|
-
const domains_traces_hooks_useTraceQuery = require('./traces/hooks/use-trace-query.cjs.js');
|
|
48
42
|
const domains_traces_hooks_useTracesListSource = require('./traces/hooks/use-traces-list-source.cjs.js');
|
|
49
|
-
const domains_traces_hooks_useTags = require('./traces/hooks/use-tags.cjs.js');
|
|
50
|
-
const domains_traces_hooks_useTraceMetadataFilterFields = require('./traces/hooks/use-trace-metadata-filter-fields.cjs.js');
|
|
51
|
-
const domains_traces_hooks_useEntityNames = require('./traces/hooks/use-entity-names.cjs.js');
|
|
52
|
-
const domains_traces_hooks_useEnvironments = require('./traces/hooks/use-environments.cjs.js');
|
|
53
|
-
const domains_traces_hooks_useServiceNames = require('./traces/hooks/use-service-names.cjs.js');
|
|
54
43
|
const domains_traces_hooks_useTraceSpanNavigation = require('./traces/hooks/use-trace-span-navigation.cjs.js');
|
|
55
44
|
const domains_traces_hooks_useTraceListNavigation = require('./traces/hooks/use-trace-list-navigation.cjs.js');
|
|
56
45
|
const domains_traces_hooks_useTraceUrlState = require('./traces/hooks/use-trace-url-state.cjs.js');
|
|
@@ -107,21 +96,61 @@ exports.SpanPayloadProcessor = domains_traces_components_spanPayload_spanPayload
|
|
|
107
96
|
exports.SpanProcessorAttributes = domains_traces_components_spanPayload_spanProcessorAttributes.SpanProcessorAttributes;
|
|
108
97
|
exports.getAllSpanIds = domains_traces_hooks_getAllSpanIds.getAllSpanIds;
|
|
109
98
|
exports.getSpanDescendantIds = domains_traces_hooks_getAllSpanIds.getSpanDescendantIds;
|
|
110
|
-
exports
|
|
99
|
+
Object.defineProperty(exports, "ROOT_ENTITY_TYPES", {
|
|
100
|
+
enumerable: true,
|
|
101
|
+
get: () => traces.ROOT_ENTITY_TYPES
|
|
102
|
+
});
|
|
103
|
+
Object.defineProperty(exports, "useBranch", {
|
|
104
|
+
enumerable: true,
|
|
105
|
+
get: () => traces.useBranch
|
|
106
|
+
});
|
|
107
|
+
Object.defineProperty(exports, "useEntityNames", {
|
|
108
|
+
enumerable: true,
|
|
109
|
+
get: () => traces.useEntityNames
|
|
110
|
+
});
|
|
111
|
+
Object.defineProperty(exports, "useEnvironments", {
|
|
112
|
+
enumerable: true,
|
|
113
|
+
get: () => traces.useEnvironments
|
|
114
|
+
});
|
|
115
|
+
Object.defineProperty(exports, "useServiceNames", {
|
|
116
|
+
enumerable: true,
|
|
117
|
+
get: () => traces.useServiceNames
|
|
118
|
+
});
|
|
119
|
+
Object.defineProperty(exports, "useSpanDetail", {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
get: () => traces.useSpanDetail
|
|
122
|
+
});
|
|
123
|
+
Object.defineProperty(exports, "useTags", {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
get: () => traces.useTags
|
|
126
|
+
});
|
|
127
|
+
Object.defineProperty(exports, "useTraceLightSpans", {
|
|
128
|
+
enumerable: true,
|
|
129
|
+
get: () => traces.useTraceLightSpans
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(exports, "useTraceMetadataFilterFields", {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
get: () => traces.useTraceMetadataFilterFields
|
|
134
|
+
});
|
|
135
|
+
Object.defineProperty(exports, "useTraceOrBranchSpans", {
|
|
136
|
+
enumerable: true,
|
|
137
|
+
get: () => traces.useTraceOrBranchSpans
|
|
138
|
+
});
|
|
139
|
+
Object.defineProperty(exports, "useTraceQuery", {
|
|
140
|
+
enumerable: true,
|
|
141
|
+
get: () => traces.useTraceQuery
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(exports, "useTraceSpans", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: () => traces.useTraceSpans
|
|
146
|
+
});
|
|
147
|
+
Object.defineProperty(exports, "useTraces", {
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: () => traces.useTraces
|
|
150
|
+
});
|
|
111
151
|
exports.useDownloadTraceJson = domains_traces_hooks_useDownloadTraceJson.useDownloadTraceJson;
|
|
112
|
-
exports.useSpanDetail = domains_traces_hooks_useSpanDetail.useSpanDetail;
|
|
113
|
-
exports.useTraceLightSpans = domains_traces_hooks_useTraceLightSpans.useTraceLightSpans;
|
|
114
|
-
exports.useTraceOrBranchSpans = domains_traces_hooks_useTraceOrBranchSpans.useTraceOrBranchSpans;
|
|
115
152
|
exports.useTraceSearch = domains_traces_hooks_useTraceSearch.useTraceSearch;
|
|
116
|
-
exports.useTraceSpans = domains_traces_hooks_useTraceSpans.useTraceSpans;
|
|
117
|
-
exports.useTraces = domains_traces_hooks_useTraces.useTraces;
|
|
118
|
-
exports.useTraceQuery = domains_traces_hooks_useTraceQuery.useTraceQuery;
|
|
119
153
|
exports.useTracesListSource = domains_traces_hooks_useTracesListSource.useTracesListSource;
|
|
120
|
-
exports.useTags = domains_traces_hooks_useTags.useTags;
|
|
121
|
-
exports.useTraceMetadataFilterFields = domains_traces_hooks_useTraceMetadataFilterFields.useTraceMetadataFilterFields;
|
|
122
|
-
exports.useEntityNames = domains_traces_hooks_useEntityNames.useEntityNames;
|
|
123
|
-
exports.useEnvironments = domains_traces_hooks_useEnvironments.useEnvironments;
|
|
124
|
-
exports.useServiceNames = domains_traces_hooks_useServiceNames.useServiceNames;
|
|
125
154
|
exports.useTraceSpanNavigation = domains_traces_hooks_useTraceSpanNavigation.useTraceSpanNavigation;
|
|
126
155
|
exports.useTraceListNavigation = domains_traces_hooks_useTraceListNavigation.useTraceListNavigation;
|
|
127
156
|
exports.useTraceUrlState = domains_traces_hooks_useTraceUrlState.useTraceUrlState;
|
|
@@ -137,7 +166,6 @@ exports.getSpanDurationMs = domains_traces_utils_spanUtils.getSpanDurationMs;
|
|
|
137
166
|
exports.getTokenLimitMessage = domains_traces_utils_spanUtils.getTokenLimitMessage;
|
|
138
167
|
exports.isTokenLimitExceeded = domains_traces_utils_spanUtils.isTokenLimitExceeded;
|
|
139
168
|
exports.DEFAULT_TRACE_FILTERS_STORAGE_KEY = domains_traces_traceFilters.DEFAULT_TRACE_FILTERS_STORAGE_KEY;
|
|
140
|
-
exports.ROOT_ENTITY_TYPES = domains_traces_traceFilters.ROOT_ENTITY_TYPES;
|
|
141
169
|
exports.ROOT_ENTITY_TYPE_OPTIONS = domains_traces_traceFilters.ROOT_ENTITY_TYPE_OPTIONS;
|
|
142
170
|
exports.TRACE_ANCHOR_SPAN_ID_PARAM = domains_traces_traceFilters.TRACE_ANCHOR_SPAN_ID_PARAM;
|
|
143
171
|
exports.TRACE_DATE_FROM_PARAM = domains_traces_traceFilters.TRACE_DATE_FROM_PARAM;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"traces.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -32,21 +32,10 @@ export { SpanPayloadJson } from './traces/components/span-payload/span-payload-j
|
|
|
32
32
|
export { SpanPayloadProcessor } from './traces/components/span-payload/span-payload-processor.es.js';
|
|
33
33
|
export { SpanProcessorAttributes } from './traces/components/span-payload/span-processor-attributes.es.js';
|
|
34
34
|
export { getAllSpanIds, getSpanDescendantIds } from './traces/hooks/get-all-span-ids.es.js';
|
|
35
|
-
export { useBranch } from '
|
|
35
|
+
export { ROOT_ENTITY_TYPES, useBranch, useEntityNames, useEnvironments, useServiceNames, useSpanDetail, useTags, useTraceLightSpans, useTraceMetadataFilterFields, useTraceOrBranchSpans, useTraceQuery, useTraceSpans, useTraces } from '@mastra/react/hooks/traces';
|
|
36
36
|
export { useDownloadTraceJson } from './traces/hooks/use-download-trace-json.es.js';
|
|
37
|
-
export { useSpanDetail } from './traces/hooks/use-span-detail.es.js';
|
|
38
|
-
export { useTraceLightSpans } from './traces/hooks/use-trace-light-spans.es.js';
|
|
39
|
-
export { useTraceOrBranchSpans } from './traces/hooks/use-trace-or-branch-spans.es.js';
|
|
40
37
|
export { useTraceSearch } from './traces/hooks/use-trace-search.es.js';
|
|
41
|
-
export { useTraceSpans } from './traces/hooks/use-trace-spans.es.js';
|
|
42
|
-
export { useTraces } from './traces/hooks/use-traces.es.js';
|
|
43
|
-
export { useTraceQuery } from './traces/hooks/use-trace-query.es.js';
|
|
44
38
|
export { useTracesListSource } from './traces/hooks/use-traces-list-source.es.js';
|
|
45
|
-
export { useTags } from './traces/hooks/use-tags.es.js';
|
|
46
|
-
export { useTraceMetadataFilterFields } from './traces/hooks/use-trace-metadata-filter-fields.es.js';
|
|
47
|
-
export { useEntityNames } from './traces/hooks/use-entity-names.es.js';
|
|
48
|
-
export { useEnvironments } from './traces/hooks/use-environments.es.js';
|
|
49
|
-
export { useServiceNames } from './traces/hooks/use-service-names.es.js';
|
|
50
39
|
export { useTraceSpanNavigation } from './traces/hooks/use-trace-span-navigation.es.js';
|
|
51
40
|
export { useTraceListNavigation } from './traces/hooks/use-trace-list-navigation.es.js';
|
|
52
41
|
export { useTraceUrlState } from './traces/hooks/use-trace-url-state.es.js';
|
|
@@ -58,7 +47,7 @@ export { flattenToSearchText } from './traces/utils/flatten-to-search-text.es.js
|
|
|
58
47
|
export { toSearchableSpans } from './traces/utils/to-searchable-spans.es.js';
|
|
59
48
|
export { getSpanTimingLayout } from './traces/utils/span-timing.es.js';
|
|
60
49
|
export { getInputPreview, getSpanDurationMs, getTokenLimitMessage, isTokenLimitExceeded } from './traces/utils/span-utils.es.js';
|
|
61
|
-
export { DEFAULT_TRACE_FILTERS_STORAGE_KEY,
|
|
50
|
+
export { DEFAULT_TRACE_FILTERS_STORAGE_KEY, ROOT_ENTITY_TYPE_OPTIONS, TRACE_ANCHOR_SPAN_ID_PARAM, TRACE_DATE_FROM_PARAM, TRACE_DATE_PRESET_PARAM, TRACE_DATE_PRESET_VALUES, TRACE_DATE_TO_PARAM, TRACE_FILTER_BAR_OPERATORS, TRACE_FILTER_GROUP_PARAM, TRACE_FILTER_OPERATOR_PARAM_SUFFIX, TRACE_LIST_MODE_OPTIONS, TRACE_LIST_MODE_PARAM, TRACE_LIST_MODE_VALUES, TRACE_METADATA_FILTER_FIELD_PREFIX, TRACE_METADATA_FILTER_PARAM_PREFIX, TRACE_PROPERTY_FILTER_FIELD_IDS, TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, TRACE_ROOT_ENTITY_TYPE_PARAM, TRACE_STATUS_OPTIONS, TRACE_STATUS_PARAM, TRACE_STATUS_VALUES, TRACE_SYNTHETIC_FILTER_FIELD_IDS, applyTracePropertyFilterTokens, buildTraceListFilters, clearSavedTraceFilters, createTraceFilterBarFields, filterBarExpressionToTraceFilters, filterBarItemsToTraceTokens, getPreservedTraceFilterParams, getTraceFilterGroups, getTracePropertyFilterTokens, hasAnyTraceFilterParams, isTraceMetadataFieldId, loadTraceFiltersFromStorage, metadataFieldIdToParam, metadataParamToFieldId, parseTraceFilterGroupParam, saveTraceFiltersToStorage, serializeTraceFilterGroup, traceFilterFieldColor, traceFilterFieldIcon, traceFilterOperatorParam, traceFilterTokenOperator, traceFiltersToFilterBarExpression, traceTokensToFilterBarItems } from './traces/trace-filters.es.js';
|
|
62
51
|
export { TRACE_FILTER_OPERATOR_IDS, TRACE_QUERY_DISCOVERY_MAX_RANGE_MS, TRACE_QUERY_NUMERIC_FIELD_IDS, TRACE_QUERY_OPTIONAL_TRACE_FIELD_IDS, TRACE_QUERY_UNSUPPORTED_FILTER_FIELDS, buildTraceQueryRequest, clampTraceDiscoveryTimeRange, isTraceFilterGroup, isTraceFilterOperatorId } from './traces/trace-query-filters.es.js';
|
|
63
52
|
export { CONTEXT_FIELD_IDS } from './traces/types.es.js';
|
|
64
53
|
export { THREAD_TRACE_MESSAGES_TAB } from './traces/components/thread-trace/thread-trace-row.es.js';
|