@mastra/playground-ui 61.0.0-alpha.6 → 61.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -0
- package/dist/{Avatar-DchBEEMO.cjs → Avatar-D_L-oAme.cjs} +2 -2
- package/dist/{Avatar-DchBEEMO.cjs.map → Avatar-D_L-oAme.cjs.map} +1 -1
- package/dist/{Avatar-Bg_EZRgZ.js → Avatar-DpRimnsu.js} +2 -2
- package/dist/{Avatar-Bg_EZRgZ.js.map → Avatar-DpRimnsu.js.map} +1 -1
- package/dist/{EmptyState-O089K_US.cjs → EmptyState-B6kP-dEp.cjs} +2 -2
- package/dist/{EmptyState-O089K_US.cjs.map → EmptyState-B6kP-dEp.cjs.map} +1 -1
- package/dist/{EmptyState-BI6cIolY.js → EmptyState-BQww74OL.js} +2 -2
- package/dist/{EmptyState-BI6cIolY.js.map → EmptyState-BQww74OL.js.map} +1 -1
- package/dist/{Header-BHqUw0qH.js → Header-BzSnNlwq.js} +2 -2
- package/dist/{Header-BHqUw0qH.js.map → Header-BzSnNlwq.js.map} +1 -1
- package/dist/{Header-DwcRfQuP.cjs → Header-Cy_BQ2Ht.cjs} +2 -2
- package/dist/{Header-DwcRfQuP.cjs.map → Header-Cy_BQ2Ht.cjs.map} +1 -1
- package/dist/{Notice-D4zc_oTj.cjs → Notice-CjQQjfK7.cjs} +2 -2
- package/dist/{Notice-D4zc_oTj.cjs.map → Notice-CjQQjfK7.cjs.map} +1 -1
- package/dist/{Notice-D4gMAkVI.js → Notice-CmFkTliT.js} +2 -2
- package/dist/{Notice-D4gMAkVI.js.map → Notice-CmFkTliT.js.map} +1 -1
- package/dist/Txt-CuuPO9Ho.js +20 -0
- package/dist/Txt-CuuPO9Ho.js.map +1 -0
- package/dist/Txt-DFPibRb3.cjs +22 -0
- package/dist/Txt-DFPibRb3.cjs.map +1 -0
- package/dist/{activity-ClKZR5_o.cjs → activity-C3F5Z6U2.cjs} +2 -2
- package/dist/{activity-ClKZR5_o.cjs.map → activity-C3F5Z6U2.cjs.map} +1 -1
- package/dist/{activity-D0SefV4r.js → activity-CREOMVXI.js} +2 -2
- package/dist/{activity-D0SefV4r.js.map → activity-CREOMVXI.js.map} +1 -1
- package/dist/{ask-user-DBb0lUh2.cjs → ask-user-BR6s4GTF.cjs} +2 -2
- package/dist/{ask-user-DBb0lUh2.cjs.map → ask-user-BR6s4GTF.cjs.map} +1 -1
- package/dist/{ask-user-CqCUiZRR.js → ask-user-DAm06wBo.js} +2 -2
- package/dist/{ask-user-CqCUiZRR.js.map → ask-user-DAm06wBo.js.map} +1 -1
- package/dist/{attachment-card-BcK3XoCH.cjs → attachment-card-B95kgvBs.cjs} +2 -2
- package/dist/{attachment-card-BcK3XoCH.cjs.map → attachment-card-B95kgvBs.cjs.map} +1 -1
- package/dist/{attachment-card-CbsWWaV5.js → attachment-card-Q-77luib.js} +2 -2
- package/dist/{attachment-card-CbsWWaV5.js.map → attachment-card-Q-77luib.js.map} +1 -1
- package/dist/{code-C8akLzcu.js → code-DAXWNzvf.js} +2 -2
- package/dist/code-DAXWNzvf.js.map +1 -0
- package/dist/{code-D_sH618U.cjs → code-Dcah35Gp.cjs} +2 -2
- package/dist/code-Dcah35Gp.cjs.map +1 -0
- package/dist/{code-block-BMmilLti.js → code-block-Cug9dlAp.js} +4 -4
- package/dist/{code-block-BMmilLti.js.map → code-block-Cug9dlAp.js.map} +1 -1
- package/dist/{code-block-Ipm4Kqvc.cjs → code-block-CxN4T0Xw.cjs} +4 -4
- package/dist/{code-block-Ipm4Kqvc.cjs.map → code-block-CxN4T0Xw.cjs.map} +1 -1
- package/dist/{code-editor-Btr1qm_5.cjs → code-editor-GtjlBrBg.cjs} +9 -8
- package/dist/code-editor-GtjlBrBg.cjs.map +1 -0
- package/dist/{code-editor-DzhYz1fH.js → code-editor-zKwlle-5.js} +9 -8
- package/dist/code-editor-zKwlle-5.js.map +1 -0
- package/dist/{combobox-NPw0vrSa.js → combobox-Dwf4U1CZ.js} +2 -2
- package/dist/{combobox-NPw0vrSa.js.map → combobox-Dwf4U1CZ.js.map} +1 -1
- package/dist/{combobox-BaVFPQ6X.cjs → combobox-anmnqGB0.cjs} +2 -2
- package/dist/{combobox-BaVFPQ6X.cjs.map → combobox-anmnqGB0.cjs.map} +1 -1
- package/dist/{command-D9tAe7E8.cjs → command-CkiAUyOY.cjs} +4 -3
- package/dist/{command-D9tAe7E8.cjs.map → command-CkiAUyOY.cjs.map} +1 -1
- package/dist/{command-DEG5XcoY.js → command-NDEyxdvS.js} +4 -3
- package/dist/{command-DEG5XcoY.js.map → command-NDEyxdvS.js.map} +1 -1
- package/dist/{comment-B1Cf9w4Z.js → comment-CLSjQ6TN.js} +10 -10
- package/dist/comment-CLSjQ6TN.js.map +1 -0
- package/dist/{comment-DnbibTOe.cjs → comment-DNHjp35d.cjs} +10 -10
- package/dist/comment-DNHjp35d.cjs.map +1 -0
- package/dist/components/AttachmentCard.cjs.js +1 -1
- package/dist/components/AttachmentCard.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/Code.cjs.js +1 -1
- package/dist/components/Code.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +2 -2
- package/dist/components/CommandPalette.es.js +2 -2
- package/dist/components/Comment.cjs.js +2 -2
- package/dist/components/Comment.es.js +3 -3
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +2 -2
- package/dist/components/DataDetailsPanel.es.js +2 -2
- package/dist/components/DataList.cjs.js +6 -5
- package/dist/components/DataList.cjs.js.map +1 -1
- 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/DateRangeTimeline.cjs.js +1 -1
- package/dist/components/DateRangeTimeline.es.js +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/Entity.cjs.js +3 -2
- package/dist/components/Entity.cjs.js.map +1 -1
- package/dist/components/Entity.es.js +3 -2
- package/dist/components/Entity.es.js.map +1 -1
- package/dist/components/EntityHeader.cjs.js +1 -1
- package/dist/components/EntityHeader.es.js +1 -1
- package/dist/components/Entry.cjs.js +1 -1
- package/dist/components/Entry.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +3 -3
- package/dist/components/EnvironmentVariablesEditor.es.js +3 -3
- 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 +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +1 -1
- package/dist/components/FormFieldBlocks.es.js +1 -1
- package/dist/components/Header.cjs.js +1 -1
- package/dist/components/Header.es.js +1 -1
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/KeyValueList.cjs.js +1 -1
- package/dist/components/KeyValueList.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -4
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +2 -4
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/MainHeader.cjs.js +1 -1
- package/dist/components/MainHeader.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +1 -1
- package/dist/components/Message.es.js +2 -2
- package/dist/components/MetricsCard.cjs.js +1 -1
- package/dist/components/MetricsCard.es.js +1 -1
- package/dist/components/MetricsKpiCard.cjs.js +1 -1
- package/dist/components/MetricsKpiCard.es.js +1 -1
- package/dist/components/MetricsLineChart.cjs.js +2 -2
- package/dist/components/MetricsLineChart.es.js +2 -2
- package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
- package/dist/components/MetricsStackedBarChart.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/PageHeader.cjs.js +1 -1
- package/dist/components/PageHeader.es.js +1 -1
- package/dist/components/PageLayout.cjs.js +1 -1
- package/dist/components/PageLayout.es.js +1 -1
- package/dist/components/PropertyFilter.cjs.js +2 -2
- package/dist/components/PropertyFilter.es.js +2 -2
- package/dist/components/RuleBuilder.cjs.js +6 -6
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +6 -6
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SavedViews.cjs.js +1 -1
- package/dist/components/SavedViews.es.js +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +1 -1
- package/dist/components/ScatterPlotChart.es.js +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SectionCard.cjs.js +1 -1
- package/dist/components/SectionCard.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Sidebar.cjs.js +1641 -0
- package/dist/components/Sidebar.cjs.js.map +1 -0
- package/dist/components/Sidebar.d.ts +2 -0
- package/dist/components/Sidebar.es.js +1615 -0
- package/dist/components/Sidebar.es.js.map +1 -0
- package/dist/components/StatusIndicators.cjs.js +1 -1
- package/dist/components/StatusIndicators.es.js +1 -1
- package/dist/components/Steps.cjs.js +1 -1
- package/dist/components/Steps.es.js +1 -1
- package/dist/components/Table.cjs.js +1 -1
- package/dist/components/Table.es.js +1 -1
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/Text.cjs.js +1 -1
- package/dist/components/Text.es.js +1 -1
- package/dist/components/ThinkingLevel.cjs.js +1 -1
- package/dist/components/ThinkingLevel.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/ThreadRail.cjs.js +1 -1
- package/dist/components/ThreadRail.es.js +1 -1
- package/dist/components/TokenBudget.cjs.js +4 -4
- package/dist/components/TokenBudget.cjs.js.map +1 -1
- package/dist/components/TokenBudget.es.js +4 -4
- package/dist/components/TokenBudget.es.js.map +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Txt.cjs.js +1 -1
- package/dist/components/Txt.es.js +1 -1
- package/dist/components/Workflow.cjs.js +5 -5
- package/dist/components/Workflow.es.js +5 -5
- package/dist/components/ai/activity.cjs.js +4 -4
- package/dist/components/ai/activity.es.js +4 -4
- 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/task-list.cjs.js +1 -1
- package/dist/components/ai/task-list.es.js +1 -1
- package/dist/components/ai/tool-approval.cjs.js +2 -1
- package/dist/components/ai/tool-approval.cjs.js.map +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +2 -2
- package/dist/components/ai/tool-call.es.js +2 -2
- package/dist/components/ai/transcript-divider.cjs.js +1 -1
- package/dist/components/ai/transcript-divider.es.js +1 -1
- package/dist/{data-code-section-B5kljGaH.cjs → data-code-section-BNQkWe4H.cjs} +2 -2
- package/dist/{data-code-section-B5kljGaH.cjs.map → data-code-section-BNQkWe4H.cjs.map} +1 -1
- package/dist/{data-code-section-CW9TU70O.js → data-code-section-CU2XLh4d.js} +2 -2
- package/dist/{data-code-section-CW9TU70O.js.map → data-code-section-CU2XLh4d.js.map} +1 -1
- package/dist/{data-list-BHtjZ528.js → data-list-B6DT-u-0.js} +21 -6
- package/dist/data-list-B6DT-u-0.js.map +1 -0
- package/dist/{data-list-TouUI4pb.cjs → data-list-DQgIgmjy.cjs} +20 -5
- package/dist/data-list-DQgIgmjy.cjs.map +1 -0
- package/dist/{data-list-skeleton-BqihjHu8.cjs → data-list-skeleton-DdWv6VN-.cjs} +10 -6
- package/dist/data-list-skeleton-DdWv6VN-.cjs.map +1 -0
- package/dist/{data-list-skeleton-H8Zpph6_.js → data-list-skeleton-DuK0aDVr.js} +10 -7
- package/dist/data-list-skeleton-DuK0aDVr.js.map +1 -0
- package/dist/{data-list-spacer-D7UBH1uv.js → data-list-spacer-C0tMRgfC.js} +2 -2
- package/dist/{data-list-spacer-D7UBH1uv.js.map → data-list-spacer-C0tMRgfC.js.map} +1 -1
- package/dist/{data-list-spacer-CtooAPJP.cjs → data-list-spacer-_GgQY2d4.cjs} +2 -2
- package/dist/{data-list-spacer-CtooAPJP.cjs.map → data-list-spacer-_GgQY2d4.cjs.map} +1 -1
- package/dist/{data-panel-B5flRCQM.js → data-panel-Bzed2B75.js} +3 -3
- package/dist/{data-panel-B5flRCQM.js.map → data-panel-Bzed2B75.js.map} +1 -1
- package/dist/{data-panel-Ckjs7Kwo.cjs → data-panel-b48tWgzs.cjs} +3 -3
- package/dist/{data-panel-Ckjs7Kwo.cjs.map → data-panel-b48tWgzs.cjs.map} +1 -1
- package/dist/{date-time-range-picker-DzPLKJol.js → date-time-range-picker-BqlAiuYW.js} +2 -2
- package/dist/{date-time-range-picker-DzPLKJol.js.map → date-time-range-picker-BqlAiuYW.js.map} +1 -1
- package/dist/{date-time-range-picker-BbX8F_LY.cjs → date-time-range-picker-CvzC4nOt.cjs} +2 -2
- package/dist/{date-time-range-picker-BbX8F_LY.cjs.map → date-time-range-picker-CvzC4nOt.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 +1 -1
- package/dist/domains/auth/components/session-expired.es.js +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +11 -11
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +11 -11
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment-context.cjs.js +10 -0
- package/dist/domains/chat/attachments/composer-attachment-context.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment-context.d.ts +2 -0
- package/dist/domains/chat/attachments/composer-attachment-context.es.js +6 -0
- package/dist/domains/chat/attachments/composer-attachment-context.es.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js +35 -0
- package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment-entry.d.ts +2 -0
- package/dist/domains/chat/attachments/composer-attachment-entry.es.js +31 -0
- package/dist/domains/chat/attachments/composer-attachment-entry.es.js.map +1 -0
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +4 -3
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +4 -3
- package/dist/domains/chat/attachments/composer-attachment-list.es.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +16 -19
- package/dist/domains/chat/attachments/composer-attachment.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +17 -20
- package/dist/domains/chat/attachments/composer-attachment.es.js.map +1 -1
- package/dist/domains/chat/attachments/message-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/message-attachment.es.js +1 -1
- package/dist/domains/chat/attachments/message-image-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/message-image-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +4 -2
- package/dist/domains/chat/components/badge-wrapper.cjs.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +4 -2
- package/dist/domains/chat/components/badge-wrapper.es.js.map +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
- package/dist/domains/chat/components/network-choice-metadata-dialog.es.js.map +1 -1
- package/dist/domains/chat/components/section-label.cjs.js +1 -1
- package/dist/domains/chat/components/section-label.es.js +1 -1
- package/dist/domains/chat/context/tool-call-context.cjs.js +4 -0
- package/dist/domains/chat/context/tool-call-context.cjs.js.map +1 -1
- package/dist/domains/chat/context/tool-call-context.es.js +4 -1
- package/dist/domains/chat/context/tool-call-context.es.js.map +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -4
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +5 -4
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +5 -5
- package/dist/domains/chat/messages/message-row.es.js +5 -5
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
- package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
- 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/status-renderers.cjs.js +1 -1
- package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +1 -1
- package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
- package/dist/domains/chat/messages/skill-message.es.js +3 -3
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +16 -8
- package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +16 -8
- package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js +3 -4
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +3 -4
- package/dist/domains/chat/tools/badges/agent-badge.es.js.map +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/awaits-tool-approval.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/awaits-tool-approval.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
- 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 +3 -3
- 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 +26 -33
- package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js +21 -28
- package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +16 -26
- package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js +16 -26
- package/dist/domains/chat/tools/badges/file-tree-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +16 -10
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +16 -10
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +28 -16
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +28 -16
- package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +16 -26
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +16 -26
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +69 -0
- package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/{tool-approval-buttons.d.ts → tool-approval-badge.d.ts} +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +65 -0
- package/dist/domains/chat/tools/badges/tool-approval-badge.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +21 -21
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +21 -21
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +13 -17
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +13 -17
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
- package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat.cjs.js +1 -0
- package/dist/domains/chat.cjs.js.map +1 -1
- package/dist/domains/chat.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +5 -4
- 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 +5 -4
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.cjs.js +2 -2
- package/dist/domains/logs/components/log-data-panel.es.js +2 -2
- package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
- package/dist/domains/logs/components/logs-error-content.es.js +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/mcps/components/mcp-app-tool-result.cjs.js +2 -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 +2 -1
- package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.cjs.js +7 -7
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +7 -7
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
- package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +7 -6
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +7 -6
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.cjs.js +4 -3
- package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +4 -3
- package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
- package/dist/domains/metrics/components/bar-list.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
- package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
- package/dist/domains/metrics/components/latency-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/memory-card-view.es.js +4 -4
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
- package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +7 -6
- 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 +7 -6
- 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 +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.es.js +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
- package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +17 -6
- package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +17 -6
- package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
- package/dist/domains/scores/components/span-scoring.es.js +3 -3
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +5 -6
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +5 -6
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
- package/dist/domains/traces/components/feedback-thread.es.js +3 -3
- 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 +7 -5
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +7 -5
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.cjs.js +3 -1
- package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +3 -1
- package/dist/domains/traces/components/span-details-view.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
- 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 +5 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +5 -4
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +4 -3
- package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-json.es.js +4 -3
- package/dist/domains/traces/components/span-payload/span-payload-json.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 +3 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -2
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +5 -5
- package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +5 -5
- package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js.map +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/span-timeline-row.cjs.js +11 -8
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +11 -8
- package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +2 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +2 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
- package/dist/domains/traces/components/span-token-usage.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-messages.cjs.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +2 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +1 -10
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +1 -10
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +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-view-by-trace.cjs.js +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +11 -7
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +11 -7
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +4 -4
- package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-timing-col.es.js +4 -4
- package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -2
- package/dist/domains/traces/components/trace-columns-menu.es.js +2 -2
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +11 -5
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +11 -5
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +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 +2 -0
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +2 -0
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.cjs.js +6 -2
- package/dist/domains/traces/components/trace-span-timeline.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-timeline.es.js +6 -2
- package/dist/domains/traces/components/trace-span-timeline.es.js.map +1 -1
- package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -1
- package/dist/domains/traces/components/trace-span-tree.es.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +2 -2
- package/dist/domains/traces/components/trace-summary-description.es.js +2 -2
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +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 +1 -1
- package/dist/domains/traces/components/traces-error-content.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +6 -15
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +8 -17
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -3
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -3
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +2 -9
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +2 -9
- package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +4 -4
- package/dist/domains/workflows/components/workflow-step-detail.es.js +4 -4
- 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 +5 -5
- 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 +5 -5
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-details.cjs.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-details.es.js +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +13 -3
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +13 -3
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +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 +2 -2
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-data-edge.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-boundary.cjs.js +10 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +10 -3
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js.map +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-input-data.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-run-header.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-status.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +7 -6
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +7 -6
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-active-file.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-active-file.es.js +2 -2
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +18 -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 +18 -13
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-error.es.js +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 +1 -1
- package/dist/domains/workspace/components/workspace-parts.es.js +1 -1
- package/dist/domains/workspace/components/workspace-search.cjs.js +6 -5
- package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
- package/dist/domains/workspace/components/workspace-search.es.js +6 -5
- package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
- package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
- package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +8 -7
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-compact-grid.es.js +8 -7
- package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +1 -3
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +21 -23
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +21 -23
- package/dist/ee/signals/components/signals-empty-state.es.js.map +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 +2 -3
- 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 +2 -3
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +2 -2
- package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
- package/dist/ee/signals/examples-pager.es.js +2 -2
- package/dist/ee/signals/examples-pager.es.js.map +1 -1
- package/dist/ee/signals/flow-card.cjs.js +7 -16
- package/dist/ee/signals/flow-card.cjs.js.map +1 -1
- package/dist/ee/signals/flow-card.es.js +7 -16
- package/dist/ee/signals/flow-card.es.js.map +1 -1
- package/dist/ee/signals/lifeline-point.cjs.js +1 -1
- package/dist/ee/signals/lifeline-point.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-point.es.js +1 -1
- package/dist/ee/signals/lifeline-point.es.js.map +1 -1
- package/dist/ee/signals/lifeline-row.cjs.js +2 -2
- package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-row.es.js +2 -2
- package/dist/ee/signals/lifeline-row.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +8 -29
- package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +8 -29
- package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +4 -4
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +4 -4
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +2 -2
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +2 -2
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +5 -5
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +5 -5
- package/dist/ee/signals/settings/trace-signal-settings.es.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.cjs.js +5 -7
- package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.es.js +5 -7
- package/dist/ee/signals/signal-delta-column.es.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.cjs.js +3 -3
- package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.es.js +3 -3
- package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +1 -1
- package/dist/ee/signals/signals-error-state.es.js +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +2 -3
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +2 -3
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +3 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js +3 -1
- package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -1
- package/dist/ee/signals/theme-compare.cjs.js +1 -3
- package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare.es.js +1 -3
- package/dist/ee/signals/theme-compare.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +9 -43
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +9 -43
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +4 -4
- package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +4 -4
- package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js +2 -2
- package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.es.js +2 -2
- package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +4 -3
- package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +4 -3
- package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +15 -37
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +15 -37
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +3 -4
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +3 -4
- package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
- package/dist/ee/signals/view-mode-tab.es.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +1 -1
- package/dist/{entity-header-By57lpH8.cjs → entity-header-DB1p5sEk.cjs} +2 -2
- package/dist/{entity-header-By57lpH8.cjs.map → entity-header-DB1p5sEk.cjs.map} +1 -1
- package/dist/{entity-header-DMjzE4Za.js → entity-header-GQT7ZnzW.js} +2 -2
- package/dist/{entity-header-DMjzE4Za.js.map → entity-header-GQT7ZnzW.js.map} +1 -1
- package/dist/{field-error-id-CSvLKtJE.js → field-error-id-B6AEO4lS.js} +2 -2
- package/dist/{field-error-id-CSvLKtJE.js.map → field-error-id-B6AEO4lS.js.map} +1 -1
- package/dist/{field-error-id-4xiCVBJ_.cjs → field-error-id-CFlRpKIz.cjs} +2 -2
- package/dist/{field-error-id-4xiCVBJ_.cjs.map → field-error-id-CFlRpKIz.cjs.map} +1 -1
- package/dist/hooks/use-fluid-hover.cjs.js +44 -30
- package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
- package/dist/hooks/use-fluid-hover.es.js +44 -31
- package/dist/hooks/use-fluid-hover.es.js.map +1 -1
- package/dist/hooks/use-is-mobile.cjs.js.map +1 -1
- package/dist/hooks/use-is-mobile.es.js.map +1 -1
- package/dist/{horizontal-bars-BdQnhZ5Y.cjs → horizontal-bars-BhYULTsx.cjs} +2 -2
- package/dist/{horizontal-bars-BdQnhZ5Y.cjs.map → horizontal-bars-BhYULTsx.cjs.map} +1 -1
- package/dist/{horizontal-bars-DHX7208F.js → horizontal-bars-ibfbdoX9.js} +2 -2
- package/dist/{horizontal-bars-DHX7208F.js.map → horizontal-bars-ibfbdoX9.js.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +5 -5
- package/dist/layout/tabbed-container.es.js +5 -5
- package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
- package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/array-wrapper.es.js +1 -1
- package/dist/lib/form/components/error-message.cjs.js +1 -1
- package/dist/lib/form/components/error-message.es.js +1 -1
- package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/object-wrapper.es.js +1 -1
- package/dist/lib/form/components/union-field.cjs.js +1 -1
- package/dist/lib/form/components/union-field.es.js +1 -1
- package/dist/{logs-data-list-MakOZmBm.cjs → logs-data-list-CMbvhzUW.cjs} +3 -3
- package/dist/{logs-data-list-MakOZmBm.cjs.map → logs-data-list-CMbvhzUW.cjs.map} +1 -1
- package/dist/{logs-data-list-CdLNnsJm.js → logs-data-list-YNXUjGIB.js} +3 -3
- package/dist/{logs-data-list-CdLNnsJm.js.map → logs-data-list-YNXUjGIB.js.map} +1 -1
- package/dist/{markdown-renderer-BCeiKCA4.cjs → markdown-renderer-4P5RZjlT.cjs} +2 -2
- package/dist/{markdown-renderer-BCeiKCA4.cjs.map → markdown-renderer-4P5RZjlT.cjs.map} +1 -1
- package/dist/{markdown-renderer-CKSEkKch.js → markdown-renderer-DR6SJPyB.js} +2 -2
- package/dist/{markdown-renderer-CKSEkKch.js.map → markdown-renderer-DR6SJPyB.js.map} +1 -1
- package/dist/{message-DGYBEr0X.js → message-16E_OfJr.js} +2 -2
- package/dist/{message-DGYBEr0X.js.map → message-16E_OfJr.js.map} +1 -1
- package/dist/{message-BSjrZWVU.cjs → message-La-BSpBC.cjs} +2 -2
- package/dist/{message-BSjrZWVU.cjs.map → message-La-BSpBC.cjs.map} +1 -1
- package/dist/{metrics-card-B9m1jHwk.cjs → metrics-card-CF0TvQ6M.cjs} +3 -3
- package/dist/{metrics-card-B9m1jHwk.cjs.map → metrics-card-CF0TvQ6M.cjs.map} +1 -1
- package/dist/{metrics-card-BcKVznFk.js → metrics-card-COZt0cRK.js} +3 -3
- package/dist/{metrics-card-BcKVznFk.js.map → metrics-card-COZt0cRK.js.map} +1 -1
- package/dist/{metrics-kpi-card-CLlu5you.cjs → metrics-kpi-card-DU96jUI0.cjs} +2 -2
- package/dist/{metrics-kpi-card-CLlu5you.cjs.map → metrics-kpi-card-DU96jUI0.cjs.map} +1 -1
- package/dist/{metrics-kpi-card-CDeJ3I1-.js → metrics-kpi-card-PJWplcOg.js} +2 -2
- package/dist/{metrics-kpi-card-CDeJ3I1-.js.map → metrics-kpi-card-PJWplcOg.js.map} +1 -1
- package/dist/{metrics-line-chart-R-T_jyeP.cjs → metrics-line-chart-BofHRush.cjs} +2 -2
- package/dist/{metrics-line-chart-R-T_jyeP.cjs.map → metrics-line-chart-BofHRush.cjs.map} +1 -1
- package/dist/{metrics-line-chart-C9_EMuHK.js → metrics-line-chart-C7i--w_F.js} +2 -2
- package/dist/{metrics-line-chart-C9_EMuHK.js.map → metrics-line-chart-C7i--w_F.js.map} +1 -1
- package/dist/{metrics-line-chart-tooltip-BoG8nbkO.cjs → metrics-line-chart-tooltip-BXRdTzZX.cjs} +2 -2
- package/dist/{metrics-line-chart-tooltip-BoG8nbkO.cjs.map → metrics-line-chart-tooltip-BXRdTzZX.cjs.map} +1 -1
- package/dist/{metrics-line-chart-tooltip-C3WAk3DN.js → metrics-line-chart-tooltip-qXjxMRkc.js} +2 -2
- package/dist/{metrics-line-chart-tooltip-C3WAk3DN.js.map → metrics-line-chart-tooltip-qXjxMRkc.js.map} +1 -1
- package/dist/new/layout/page-header.cjs.js +1 -1
- package/dist/new/layout/page-header.es.js +1 -1
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/{notification-activity-BDoleJAA.js → notification-activity-DEzmrUfo.js} +3 -3
- package/dist/{notification-activity-BDoleJAA.js.map → notification-activity-DEzmrUfo.js.map} +1 -1
- package/dist/{notification-activity-C_vZiswj.cjs → notification-activity-DermuFT1.cjs} +3 -3
- package/dist/{notification-activity-C_vZiswj.cjs.map → notification-activity-DermuFT1.cjs.map} +1 -1
- package/dist/{page-header-Dc2KSbnw.cjs → page-header-CLcX--H8.cjs} +14 -14
- package/dist/page-header-CLcX--H8.cjs.map +1 -0
- package/dist/{page-header-D5a7qrVc.js → page-header-pWZXI3lO.js} +14 -14
- package/dist/page-header-pWZXI3lO.js.map +1 -0
- package/dist/{plan-4Udllcyn.cjs → plan-BQh1M96H.cjs} +3 -3
- package/dist/plan-BQh1M96H.cjs.map +1 -0
- package/dist/{plan-CZxw-Q5D.js → plan-cSkdE2Fd.js} +3 -3
- package/dist/plan-cSkdE2Fd.js.map +1 -0
- package/dist/{Txt-DNnvlrBo.cjs → primitives/text.cjs.js} +15 -10
- package/dist/primitives/text.cjs.js.map +1 -0
- package/dist/primitives/text.d.ts +2 -0
- package/dist/{Txt-C3cYJgKU.js → primitives/text.es.js} +13 -10
- package/dist/primitives/text.es.js.map +1 -0
- package/dist/{reasoning-activity-Du19QVGl.js → reasoning-activity-CS-aUa1E.js} +3 -3
- package/dist/{reasoning-activity-Du19QVGl.js.map → reasoning-activity-CS-aUa1E.js.map} +1 -1
- package/dist/{reasoning-activity-Bux9ZUhr.cjs → reasoning-activity-Cfelxr49.cjs} +3 -3
- package/dist/{reasoning-activity-Bux9ZUhr.cjs.map → reasoning-activity-Cfelxr49.cjs.map} +1 -1
- package/dist/{section-C5r-Mtxk.cjs → section-BvTlcV3N.cjs} +2 -2
- package/dist/{section-C5r-Mtxk.cjs.map → section-BvTlcV3N.cjs.map} +1 -1
- package/dist/{section-DYrbH35K.js → section-BvkW-glM.js} +2 -2
- package/dist/{section-DYrbH35K.js.map → section-BvkW-glM.js.map} +1 -1
- package/dist/{side-dialog-yvAvCday.js → side-dialog-BMrmb8Fz.js} +2 -2
- package/dist/{side-dialog-yvAvCday.js.map → side-dialog-BMrmb8Fz.js.map} +1 -1
- package/dist/{side-dialog-CFTgnDXu.cjs → side-dialog-BsMzNpHT.cjs} +2 -2
- package/dist/{side-dialog-CFTgnDXu.cjs.map → side-dialog-BsMzNpHT.cjs.map} +1 -1
- package/dist/{signal-activity-BI-DRdjw.cjs → signal-activity-D4vzi2cB.cjs} +3 -3
- package/dist/{signal-activity-BI-DRdjw.cjs.map → signal-activity-D4vzi2cB.cjs.map} +1 -1
- package/dist/{signal-activity-_ChAbNsW.js → signal-activity-DaC48fkM.js} +3 -3
- package/dist/{signal-activity-_ChAbNsW.js.map → signal-activity-DaC48fkM.js.map} +1 -1
- package/dist/{span-payload-primitives-XWZOfAi-.js → span-payload-primitives-Cniig-k4.js} +7 -6
- package/dist/span-payload-primitives-Cniig-k4.js.map +1 -0
- package/dist/{span-payload-primitives-0b_ow5Rt.cjs → span-payload-primitives-DIyQNNw0.cjs} +7 -6
- package/dist/span-payload-primitives-DIyQNNw0.cjs.map +1 -0
- package/dist/src/domains/chat/attachments/composer-attachment-context.d.ts +1 -0
- package/dist/src/domains/chat/attachments/composer-attachment-entry.d.ts +7 -0
- package/dist/src/domains/chat/attachments/composer-attachment.d.ts +1 -0
- package/dist/src/domains/chat/components/badge-wrapper.d.ts +5 -2
- package/dist/src/domains/chat/context/tool-call-context.d.ts +1 -0
- package/dist/src/domains/chat/stories/composer-attachments.stories.d.ts +3 -0
- package/dist/src/domains/chat/tools/badges/agent-badge-wrapper.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/agent-badge.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/awaits-tool-approval.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/code-mode-badge.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/file-tree-badge.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/sandbox-execution-badge.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/tool-approval-badge.d.ts +19 -0
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/workflow-badge.d.ts +2 -2
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +3 -1
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +1 -0
- package/dist/src/domains/traces/components/trace-span-panel.d.ts +3 -1
- package/dist/src/ds/components/CodeEditor/code-editor.d.ts +6 -1
- package/dist/src/ds/components/CodeEditor/code-editor.stories.d.ts +1 -0
- package/dist/src/ds/components/Composer/composer.stories.d.ts +0 -1
- package/dist/src/ds/components/DataList/data-list-group.d.ts +4 -0
- package/dist/src/ds/components/DataList/data-list-skeleton.d.ts +9 -0
- package/dist/src/ds/components/DataList/data-list.d.ts +1 -0
- package/dist/src/ds/components/DataList/data-list.stories.d.ts +1 -0
- package/dist/src/ds/components/Sidebar/footer/sidebar-footer-meta.d.ts +7 -0
- package/dist/src/ds/components/Sidebar/footer/sidebar-footer.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/footer/sidebar-meter.d.ts +24 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-brand.d.ts +6 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-command-header.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-header.d.ts +6 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-search-trigger.d.ts +7 -0
- package/dist/src/ds/components/Sidebar/index.d.ts +20 -0
- package/dist/src/ds/components/{MainSidebar/main-sidebar-link-active.d.ts → Sidebar/nav/sidebar-link-active.d.ts} +2 -2
- package/dist/src/ds/components/Sidebar/nav/sidebar-nav-header.d.ts +13 -0
- package/dist/src/ds/components/{MainSidebar/main-sidebar-nav-item-classes.d.ts → Sidebar/nav/sidebar-nav-item-classes.d.ts} +2 -2
- package/dist/src/ds/components/{MainSidebar/main-sidebar-nav-label.d.ts → Sidebar/nav/sidebar-nav-label.d.ts} +4 -4
- package/dist/src/ds/components/{MainSidebar/main-sidebar-nav-link.d.ts → Sidebar/nav/sidebar-nav-link.d.ts} +9 -9
- package/dist/src/ds/components/Sidebar/nav/sidebar-nav-list.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/nav/sidebar-nav-section.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/nav/sidebar-nav-separator.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/nav/sidebar-nav.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/nav-stack/sidebar-nav-stack-context.d.ts +8 -0
- package/dist/src/ds/components/Sidebar/nav-stack/sidebar-nav-stack-page-classes.d.ts +1 -0
- package/dist/src/ds/components/Sidebar/nav-stack/sidebar-nav-stack-root-view.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/nav-stack/sidebar-nav-stack-root.d.ts +7 -0
- package/dist/src/ds/components/Sidebar/nav-stack/sidebar-nav-stack-view.d.ts +9 -0
- package/dist/src/ds/components/Sidebar/nav-stack/sidebar-nav-stack.d.ts +10 -0
- package/dist/src/ds/components/{MainSidebar/main-sidebar-context.d.ts → Sidebar/root/sidebar-context.d.ts} +7 -7
- package/dist/src/ds/components/Sidebar/root/sidebar-mobile-trigger.d.ts +5 -0
- package/dist/src/ds/components/Sidebar/root/sidebar-panel.d.ts +6 -0
- package/dist/src/ds/components/{MainSidebar/main-sidebar-provider.d.ts → Sidebar/root/sidebar-provider.d.ts} +5 -5
- package/dist/src/ds/components/Sidebar/root/sidebar-root.d.ts +6 -0
- package/dist/src/ds/components/Sidebar/root/sidebar-trigger.d.ts +3 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-customize-dialog.d.ts +12 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-more-links.d.ts +11 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-optional-link.d.ts +11 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-section-link.d.ts +9 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-sections-content.d.ts +4 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-sections.d.ts +18 -0
- package/dist/src/ds/components/Sidebar/sections/sidebar-visibility.d.ts +19 -0
- package/dist/src/ds/components/{MainSidebar/main-sidebar.stories.d.ts → Sidebar/sidebar-layout.stories.d.ts} +4 -4
- package/dist/src/ds/components/Sidebar/sidebar.d.ts +43 -0
- package/dist/src/ds/{new/sidebar/sidebar-new.stories.d.ts → components/Sidebar/sidebar.stories.d.ts} +3 -3
- package/dist/src/ds/components/Tabs/tabs-list.d.ts +1 -0
- package/dist/src/ds/components/Tabs/tabs.stories.d.ts +6 -0
- package/dist/src/ds/components/Txt/Txt.d.ts +12 -20
- package/dist/src/ds/components/Txt/txt.stories.d.ts +2 -0
- package/dist/src/ds/components/ai/plan/plan.d.ts +2 -2
- package/dist/src/ds/components/ai/tool-approval/index.d.ts +2 -2
- package/dist/src/ds/components/ai/tool-approval/tool-approval.d.ts +11 -4
- package/dist/src/ds/components/ai/tool-approval/tool-approval.stories.d.ts +17 -3
- package/dist/src/ds/components/ai/tool-call/tool-call-arguments.d.ts +2 -1
- package/dist/src/ds/components/ai/tool-call/tool-call-edit.d.ts +2 -1
- package/dist/src/ds/primitives/control-sizes.stories.d.ts +10 -0
- package/dist/src/ds/primitives/text.d.ts +19 -0
- package/dist/src/ds/tokens/fonts.d.ts +1 -1
- package/dist/src/ee/signals/components/signals-empty-state.stories.d.ts +12 -0
- package/dist/src/hooks/use-fluid-hover.d.ts +5 -1
- package/dist/style.css +100 -91
- package/dist/{tabs-list-Tqj36HIL.cjs → tabs-list-BeWntzEw.cjs} +17 -3
- package/dist/tabs-list-BeWntzEw.cjs.map +1 -0
- package/dist/{tabs-list-tLx5fgP0.js → tabs-list-DoSX2xLL.js} +17 -3
- package/dist/tabs-list-DoSX2xLL.js.map +1 -0
- package/dist/tabs-root.css +2 -2
- package/dist/{tabs-tab-ClLIOGiC.js → tabs-tab-BI3hb-HP.js} +3 -4
- package/dist/tabs-tab-BI3hb-HP.js.map +1 -0
- package/dist/{tabs-tab-C-C2vX-D.cjs → tabs-tab-DhLs9bO0.cjs} +3 -4
- package/dist/tabs-tab-DhLs9bO0.cjs.map +1 -0
- package/dist/{text-and-icon-Bo6NLLBl.js → text-and-icon-CsBZ4Gn8.js} +2 -2
- package/dist/{text-and-icon-Bo6NLLBl.js.map → text-and-icon-CsBZ4Gn8.js.map} +1 -1
- package/dist/{text-and-icon-CvakH4YL.cjs → text-and-icon-DB9klVPu.cjs} +2 -2
- package/dist/{text-and-icon-CvakH4YL.cjs.map → text-and-icon-DB9klVPu.cjs.map} +1 -1
- package/dist/{thread-list-DKBwiGfX.cjs → thread-list-BbOI-tHs.cjs} +2 -2
- package/dist/{thread-list-DKBwiGfX.cjs.map → thread-list-BbOI-tHs.cjs.map} +1 -1
- package/dist/{thread-list-D2zSEQWK.js → thread-list-BhqOe2iu.js} +2 -2
- package/dist/{thread-list-D2zSEQWK.js.map → thread-list-BhqOe2iu.js.map} +1 -1
- package/dist/tokens.cjs.js +3 -0
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +3 -0
- package/dist/tokens.es.js.map +1 -1
- package/dist/tool-approval-B0DJ3coA.js +71 -0
- package/dist/tool-approval-B0DJ3coA.js.map +1 -0
- package/dist/tool-approval-jNN6UeC7.cjs +75 -0
- package/dist/tool-approval-jNN6UeC7.cjs.map +1 -0
- package/dist/{tool-call-arguments-DEXKbR8d.cjs → tool-call-arguments-Bud9On3h.cjs} +15 -11
- package/dist/tool-call-arguments-Bud9On3h.cjs.map +1 -0
- package/dist/{tool-call-arguments-CufA6H_n.js → tool-call-arguments-DzdVtN4f.js} +15 -11
- package/dist/tool-call-arguments-DzdVtN4f.js.map +1 -0
- package/dist/{tool-call-group-DKCarGYB.js → tool-call-group-Bg9Rg05T.js} +3 -3
- package/dist/{tool-call-group-DKCarGYB.js.map → tool-call-group-Bg9Rg05T.js.map} +1 -1
- package/dist/{tool-call-group-GBF6eQAK.cjs → tool-call-group-xOLcTzb_.cjs} +3 -3
- package/dist/{tool-call-group-GBF6eQAK.cjs.map → tool-call-group-xOLcTzb_.cjs.map} +1 -1
- package/dist/{tool-card-DKNWgEoo.js → tool-card-B5wPeDh_.js} +13 -17
- package/dist/tool-card-B5wPeDh_.js.map +1 -0
- package/dist/{tool-card-CQAEtUhC.cjs → tool-card-CwENsPdZ.cjs} +13 -17
- package/dist/tool-card-CwENsPdZ.cjs.map +1 -0
- package/dist/{traces-data-list-BeWQiNT2.js → traces-data-list-B0xInvZg.js} +4 -4
- package/dist/{traces-data-list-BeWQiNT2.js.map → traces-data-list-B0xInvZg.js.map} +1 -1
- package/dist/{traces-data-list-DDG1BY5u.cjs → traces-data-list-CVLHJtd4.cjs} +4 -4
- package/dist/{traces-data-list-DDG1BY5u.cjs.map → traces-data-list-CVLHJtd4.cjs.map} +1 -1
- package/dist/{transcript-divider-CPIo8NUj.js → transcript-divider-DQbebYHb.js} +2 -2
- package/dist/{transcript-divider-CPIo8NUj.js.map → transcript-divider-DQbebYHb.js.map} +1 -1
- package/dist/{transcript-divider-273Bsdjs.cjs → transcript-divider-fc_PrxES.cjs} +2 -2
- package/dist/{transcript-divider-273Bsdjs.cjs.map → transcript-divider-fc_PrxES.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-r_OOpvSo.cjs → use-workflow-graph-runtime-B4njhsih.cjs} +3 -3
- package/dist/{use-workflow-graph-runtime-r_OOpvSo.cjs.map → use-workflow-graph-runtime-B4njhsih.cjs.map} +1 -1
- package/dist/{use-workflow-graph-runtime-BF_NZEkj.js → use-workflow-graph-runtime-CfRQ3vzM.js} +3 -3
- package/dist/{use-workflow-graph-runtime-BF_NZEkj.js.map → use-workflow-graph-runtime-CfRQ3vzM.js.map} +1 -1
- package/dist/{workflow-code-dialog-content-DyoN3850.cjs → workflow-code-dialog-content-BE9f1Fcf.cjs} +2 -2
- package/dist/{workflow-code-dialog-content-DyoN3850.cjs.map → workflow-code-dialog-content-BE9f1Fcf.cjs.map} +1 -1
- package/dist/{workflow-code-dialog-content-3AcgitHa.js → workflow-code-dialog-content-BZAkw31A.js} +2 -2
- package/dist/{workflow-code-dialog-content-3AcgitHa.js.map → workflow-code-dialog-content-BZAkw31A.js.map} +1 -1
- package/dist/{workflow-condition-card-BCSYogql.js → workflow-condition-card-3YSKAtKw.js} +3 -3
- package/dist/{workflow-condition-card-BCSYogql.js.map → workflow-condition-card-3YSKAtKw.js.map} +1 -1
- package/dist/{workflow-condition-card-Dlo2PaKV.cjs → workflow-condition-card-80XcAvDl.cjs} +3 -3
- package/dist/{workflow-condition-card-Dlo2PaKV.cjs.map → workflow-condition-card-80XcAvDl.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-CjbBulHe.cjs → workflow-data-edge-view-BoCjUe4t.cjs} +2 -2
- package/dist/{workflow-data-edge-view-CjbBulHe.cjs.map → workflow-data-edge-view-BoCjUe4t.cjs.map} +1 -1
- package/dist/{workflow-data-edge-view-B9uz58wL.js → workflow-data-edge-view-ux68M8gD.js} +2 -2
- package/dist/{workflow-data-edge-view-B9uz58wL.js.map → workflow-data-edge-view-ux68M8gD.js.map} +1 -1
- package/dist/{workflow-debug-controls-BVaX_0Dq.js → workflow-debug-controls-BgyAN-Ke.js} +2 -2
- package/dist/{workflow-debug-controls-BVaX_0Dq.js.map → workflow-debug-controls-BgyAN-Ke.js.map} +1 -1
- package/dist/{workflow-debug-controls-DUNR0Ws0.cjs → workflow-debug-controls-DsAvdRuS.cjs} +2 -2
- package/dist/{workflow-debug-controls-DUNR0Ws0.cjs.map → workflow-debug-controls-DsAvdRuS.cjs.map} +1 -1
- package/dist/{workflow-edge-data-button-DQAzBPfm.cjs → workflow-edge-data-button-BKTN3LQd.cjs} +3 -3
- package/dist/{workflow-edge-data-button-DQAzBPfm.cjs.map → workflow-edge-data-button-BKTN3LQd.cjs.map} +1 -1
- package/dist/{workflow-edge-data-button-BTynlndD.js → workflow-edge-data-button-YegDtxyD.js} +3 -3
- package/dist/{workflow-edge-data-button-BTynlndD.js.map → workflow-edge-data-button-YegDtxyD.js.map} +1 -1
- package/package.json +11 -17
- package/theme/typography.css +16 -0
- package/dist/Txt-C3cYJgKU.js.map +0 -1
- package/dist/Txt-DNnvlrBo.cjs.map +0 -1
- package/dist/code-C8akLzcu.js.map +0 -1
- package/dist/code-D_sH618U.cjs.map +0 -1
- package/dist/code-editor-Btr1qm_5.cjs.map +0 -1
- package/dist/code-editor-DzhYz1fH.js.map +0 -1
- package/dist/comment-B1Cf9w4Z.js.map +0 -1
- package/dist/comment-DnbibTOe.cjs.map +0 -1
- package/dist/components/MainSidebar.cjs.js +0 -133
- package/dist/components/MainSidebar.cjs.js.map +0 -1
- package/dist/components/MainSidebar.d.ts +0 -2
- package/dist/components/MainSidebar.es.js +0 -121
- package/dist/components/MainSidebar.es.js.map +0 -1
- package/dist/data-list-BHtjZ528.js.map +0 -1
- package/dist/data-list-TouUI4pb.cjs.map +0 -1
- package/dist/data-list-skeleton-BqihjHu8.cjs.map +0 -1
- package/dist/data-list-skeleton-H8Zpph6_.js.map +0 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +0 -66
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js.map +0 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +0 -62
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js.map +0 -1
- package/dist/main-sidebar-link-active-C9P_WBus.cjs +0 -798
- package/dist/main-sidebar-link-active-C9P_WBus.cjs.map +0 -1
- package/dist/main-sidebar-link-active-JtKNF9hx.js +0 -781
- package/dist/main-sidebar-link-active-JtKNF9hx.js.map +0 -1
- package/dist/new/sidebar.cjs.js +0 -725
- package/dist/new/sidebar.cjs.js.map +0 -1
- package/dist/new/sidebar.d.ts +0 -2
- package/dist/new/sidebar.es.js +0 -705
- package/dist/new/sidebar.es.js.map +0 -1
- package/dist/page-header-D5a7qrVc.js.map +0 -1
- package/dist/page-header-Dc2KSbnw.cjs.map +0 -1
- package/dist/plan-4Udllcyn.cjs.map +0 -1
- package/dist/plan-CZxw-Q5D.js.map +0 -1
- package/dist/span-payload-primitives-0b_ow5Rt.cjs.map +0 -1
- package/dist/span-payload-primitives-XWZOfAi-.js.map +0 -1
- package/dist/src/domains/chat/stories/approvals.stories.d.ts +0 -52
- package/dist/src/domains/chat/tools/badges/tool-approval-buttons.d.ts +0 -14
- package/dist/src/ds/components/MainSidebar/index.d.ts +0 -1
- package/dist/src/ds/components/MainSidebar/main-sidebar-bottom.d.ts +0 -3
- package/dist/src/ds/components/MainSidebar/main-sidebar-mobile-trigger.d.ts +0 -5
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-header.d.ts +0 -11
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-list.d.ts +0 -3
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-section.d.ts +0 -12
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav-separator.d.ts +0 -3
- package/dist/src/ds/components/MainSidebar/main-sidebar-nav.d.ts +0 -3
- package/dist/src/ds/components/MainSidebar/main-sidebar-root.d.ts +0 -6
- package/dist/src/ds/components/MainSidebar/main-sidebar-sections.d.ts +0 -13
- package/dist/src/ds/components/MainSidebar/main-sidebar-trigger.d.ts +0 -3
- package/dist/src/ds/components/MainSidebar/main-sidebar.d.ts +0 -35
- package/dist/src/ds/components/ai/tool-approval/tool-approval-actions.stories.d.ts +0 -44
- package/dist/src/ds/new/sidebar/index.d.ts +0 -15
- package/dist/src/ds/new/sidebar/sidebar-new-brand.d.ts +0 -6
- package/dist/src/ds/new/sidebar/sidebar-new-command-header.d.ts +0 -3
- package/dist/src/ds/new/sidebar/sidebar-new-footer-meta.d.ts +0 -7
- package/dist/src/ds/new/sidebar/sidebar-new-footer.d.ts +0 -3
- package/dist/src/ds/new/sidebar/sidebar-new-header.d.ts +0 -6
- package/dist/src/ds/new/sidebar/sidebar-new-meter.d.ts +0 -24
- package/dist/src/ds/new/sidebar/sidebar-new-more-links.d.ts +0 -10
- package/dist/src/ds/new/sidebar/sidebar-new-nav-header.d.ts +0 -11
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-context.d.ts +0 -8
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-page-classes.d.ts +0 -1
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-root-view.d.ts +0 -3
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-root.d.ts +0 -7
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack-view.d.ts +0 -9
- package/dist/src/ds/new/sidebar/sidebar-new-nav-stack.d.ts +0 -10
- package/dist/src/ds/new/sidebar/sidebar-new-nav.d.ts +0 -3
- package/dist/src/ds/new/sidebar/sidebar-new-root.d.ts +0 -6
- package/dist/src/ds/new/sidebar/sidebar-new-search-trigger.d.ts +0 -7
- package/dist/src/ds/new/sidebar/sidebar-new-section-link.d.ts +0 -9
- package/dist/src/ds/new/sidebar/sidebar-new-sections.d.ts +0 -12
- package/dist/src/ds/new/sidebar/sidebar-new-trigger.d.ts +0 -3
- package/dist/src/ds/new/sidebar/sidebar-new.d.ts +0 -43
- package/dist/tabs-list-Tqj36HIL.cjs.map +0 -1
- package/dist/tabs-list-tLx5fgP0.js.map +0 -1
- package/dist/tabs-tab-C-C2vX-D.cjs.map +0 -1
- package/dist/tabs-tab-ClLIOGiC.js.map +0 -1
- package/dist/tool-approval-BNJ6MpnV.js +0 -77
- package/dist/tool-approval-BNJ6MpnV.js.map +0 -1
- package/dist/tool-approval-DOPxugSv.cjs +0 -80
- package/dist/tool-approval-DOPxugSv.cjs.map +0 -1
- package/dist/tool-call-arguments-CufA6H_n.js.map +0 -1
- package/dist/tool-call-arguments-DEXKbR8d.cjs.map +0 -1
- package/dist/tool-card-CQAEtUhC.cjs.map +0 -1
- package/dist/tool-card-DKNWgEoo.js.map +0 -1
- /package/dist/{sidebar.css → Sidebar.css} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-span-panel.es.js","sources":["../../../../src/domains/traces/components/trace-span-panel.tsx"],"sourcesContent":["import { useSpanDetail, useThreadHasOtherTraces } from '@mastra/react/hooks/traces';\nimport { MessagesSquareIcon } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { SpanDataPanelView } from '@/domains/traces/components/span-data-panel-view';\nimport { TraceDataPanel } from '@/domains/traces/components/trace-data-panel';\nimport type { TraceDataPanelView } from '@/domains/traces/components/trace-data-panel-view';\nimport { TraceMessagesPanel } from '@/domains/traces/components/trace-messages-panel';\nimport { getTraceThreadId } from '@/domains/traces/components/trace-thread-context';\nimport { TraceThreadPanel } from '@/domains/traces/components/trace-thread-panel';\nimport { useTraceSpanNavigation } from '@/domains/traces/hooks/use-trace-span-navigation';\nimport { Button } from '@/ds/components/Button';\nimport { useLinkComponent } from '@/lib/framework';\nimport type { LinkComponentPaths } from '@/lib/framework';\n\ntype TraceDataPanelViewProps = ComponentProps<typeof TraceDataPanelView>;\n\nfunction getEntityHref(\n paths: LinkComponentPaths,\n entityType: string | null | undefined,\n entityId: string | null | undefined,\n) {\n if (!entityId || !entityType) return undefined;\n const normalizedEntityType = entityType.toLowerCase();\n if (normalizedEntityType.includes('workflow')) return paths.workflowLink(entityId) || undefined;\n if (normalizedEntityType.includes('agent')) return paths.agentLink(entityId) || undefined;\n return undefined;\n}\ntype SpanDataPanelViewProps = ComponentProps<typeof SpanDataPanelView>;\n\nexport interface TraceSpanPanelProps {\n /** Keep the panel mounted and pass `undefined` to close it, so the drawer animates out. */\n traceId?: string;\n /** Spans returned by `useTraceOrBranchSpans` — the page owns the fetch, the panel renders it. */\n spans: TraceDataPanelViewProps['spans'];\n isLoadingSpans: boolean;\n /** Controlled span selection (URL state on the traces page, local state in the chat aside). */\n selectedSpanId: string | null;\n onSpanSelect: (spanId: string | undefined) => void;\n onClose: () => void;\n\n // Trace-panel pass-through.\n anchorSpanId?: string;\n initialSpanId?: string | null;\n onPrevious?: () => void;\n onNext?: () => void;\n onSaveAsDatasetItem?: TraceDataPanelViewProps['onSaveAsDatasetItem'];\n onAddTraceMocksToItem?: TraceDataPanelViewProps['onAddTraceMocksToItem'];\n feedbackTabBadge?: ReactNode;\n feedbackTabSlot?: TraceDataPanelViewProps['feedbackTabSlot'];\n /** Enables the \"Messages\" column (reconstructed turn) when the displayed root is a complete agent trace with a thread id. */\n showPartialThread?: boolean;\n /** Span ids featured in the timeline (non-featured spans are faded). */\n featuredSpanIds?: string[];\n /** Called with the span ids behind a reconstructed message when the user asks to highlight them. */\n onHighlightSpans?: (spanIds: string[]) => void;\n /** When true, opens the trace's thread (every turn) in a stacked drawer above the trace panel. */\n isFullThreadOpen?: boolean;\n /** Enables the in-place \"Open full thread\" swap; without it the action falls back to a link. */\n onFullThreadOpenChange?: (open: boolean) => void;\n /** Full-thread view: lists through the trace-query API; `false` falls back to `listTracesLight`. */\n withQueryTrace: boolean;\n /** Full-thread view: shows the per-trace Feedback tab. */\n withFeedback: boolean;\n /** Full-thread view: opens a score of one of the thread's traces (the app owns routing). */\n onOpenScore: (traceId: string, scoreId: string) => void;\n scoresTabBadge?: ReactNode;\n scoresTabSlot?: TraceDataPanelViewProps['scoresTabSlot'];\n usage?: TraceDataPanelViewProps['usage'];\n traceHref?: string;\n /** Drawer width; defaults to `wide`. */\n size?: TraceDataPanelViewProps['size'];\n /** Sibling-drawer elevation (see `DataPanel`). */\n depth?: TraceDataPanelViewProps['depth'];\n /** Rendered inside the drawer above the trace header (e.g. feedback context). */\n headerSlot?: ReactNode;\n /** Accessible drawer name; defaults to the trace id. */\n title?: string;\n showUnavailableFeaturesMsg?: TraceDataPanelViewProps['showUnavailableFeaturesMsg'];\n spanView?: TraceDataPanelViewProps['spanView'];\n onSpanViewChange?: TraceDataPanelViewProps['onSpanViewChange'];\n\n // Span-panel pass-through.\n spanActiveTab?: string;\n onSpanTabChange?: (tab: string) => void;\n spanFeedbackTabBadge?: ReactNode;\n spanFeedbackTabSlot?: SpanDataPanelViewProps['feedbackTabSlot'];\n}\n\n/**\n * Shared trace → span drilldown drawer: `TraceDataPanel` with a nested `SpanDataPanelView`.\n * Encapsulates the span-detail fetch and prev/next span navigation that the traces page\n * and the agent chat traces aside used to duplicate.\n */\nexport function TraceSpanPanel({\n traceId,\n spans,\n isLoadingSpans,\n selectedSpanId,\n onSpanSelect,\n onClose,\n anchorSpanId,\n initialSpanId,\n onPrevious,\n onNext,\n onSaveAsDatasetItem,\n onAddTraceMocksToItem,\n feedbackTabBadge,\n feedbackTabSlot,\n showPartialThread,\n featuredSpanIds,\n onHighlightSpans,\n isFullThreadOpen,\n onFullThreadOpenChange,\n withQueryTrace,\n withFeedback,\n onOpenScore,\n scoresTabBadge,\n scoresTabSlot,\n usage,\n traceHref,\n size,\n depth,\n headerSlot,\n title,\n showUnavailableFeaturesMsg,\n spanView,\n onSpanViewChange,\n spanActiveTab,\n onSpanTabChange,\n spanFeedbackTabBadge,\n spanFeedbackTabSlot,\n}: TraceSpanPanelProps) {\n const { data: spanDetailData, isLoading: isLoadingSpanDetail } = useSpanDetail({\n traceId: traceId,\n spanId: selectedSpanId ?? '',\n queryOptions: { enabled: !!traceId && !!selectedSpanId },\n });\n const { handlePreviousSpan, handleNextSpan } = useTraceSpanNavigation(spans, selectedSpanId, onSpanSelect);\n const { Link, paths } = useLinkComponent();\n\n // The trace summary links the entity to its page; the app's link provider owns the routes.\n const rootSpan = anchorSpanId\n ? spans?.find(s => s.spanId === anchorSpanId)\n : spans?.find(s => s.parentSpanId == null);\n const entityHref = getEntityHref(paths, rootSpan?.entityType, rootSpan?.entityId);\n const threadId = getTraceThreadId(rootSpan, anchorSpanId);\n const hasMessagesPanel = !!(traceId && showPartialThread && threadId);\n // A single-trace thread would show exactly what the Messages column already shows.\n const hasOtherTraces = useThreadHasOtherTraces({\n threadId: hasMessagesPanel ? threadId : undefined,\n queryOptions: { enabled: !!(hasMessagesPanel ? threadId : undefined) },\n });\n const showFullThreadAction = hasMessagesPanel && hasOtherTraces && !!onFullThreadOpenChange;\n\n return (\n <>\n <TraceDataPanel\n traceId={traceId}\n spans={spans}\n anchorSpanId={anchorSpanId}\n entityHref={entityHref}\n usage={usage}\n isLoading={isLoadingSpans}\n onClose={onClose}\n onSpanSelect={onSpanSelect}\n onSaveAsDatasetItem={onSaveAsDatasetItem}\n onAddTraceMocksToItem={onAddTraceMocksToItem}\n initialSpanId={initialSpanId ?? selectedSpanId}\n onPrevious={onPrevious}\n onNext={onNext}\n placement=\"traces-list\"\n LinkComponent={Link}\n traceHref={traceHref}\n size={size}\n depth={depth}\n headerSlot={headerSlot}\n title={title}\n showUnavailableFeaturesMsg={showUnavailableFeaturesMsg}\n spanView={spanView}\n onSpanViewChange={onSpanViewChange}\n feedbackTabBadge={feedbackTabBadge}\n feedbackTabSlot={feedbackTabSlot}\n featuredSpanIds={featuredSpanIds}\n messagesPanelSlot={\n hasMessagesPanel ? <TraceMessagesPanel traceId={traceId} onHighlightSpans={onHighlightSpans} /> : undefined\n }\n sideHeaderActions={\n showFullThreadAction\n ? ({ compact }) => (\n <Button\n tooltip={compact ? 'Open full thread' : undefined}\n icon={<MessagesSquareIcon />}\n variant=\"ghost\"\n size=\"sm\"\n // At a side column of 500px or less, collapse to a round icon button; the label stays for screen readers.\n className=\"@max-[501px]:w-control-sm @max-[501px]:rounded-full @max-[501px]:px-0 @max-[501px]:[&>[data-slot=button-icon]]:ml-0\"\n onClick={() => onFullThreadOpenChange(true)}\n >\n <span className=\"@max-[501px]:sr-only\">Open full thread</span>\n </Button>\n )\n : undefined\n }\n scoresTabBadge={scoresTabBadge}\n scoresTabSlot={scoresTabSlot}\n spanPanelSlot={\n traceId && selectedSpanId ? (\n <SpanDataPanelView\n traceId={traceId}\n spanId={selectedSpanId}\n span={spanDetailData?.span}\n isAnchor={anchorSpanId ? selectedSpanId === anchorSpanId : undefined}\n isLoading={isLoadingSpanDetail}\n onPrevious={handlePreviousSpan}\n onNext={handleNextSpan}\n onClose={() => onSpanSelect(undefined)}\n activeTab={spanActiveTab}\n onTabChange={onSpanTabChange}\n feedbackTabBadge={spanFeedbackTabBadge}\n feedbackTabSlot={spanFeedbackTabSlot}\n />\n ) : null\n }\n />\n {/* Rendered after the trace panel: DataPanel stacking follows DOM order. */}\n <TraceThreadPanel\n open={!!(traceId && isFullThreadOpen && threadId)}\n depth={depth && depth > 1 ? 3 : 2}\n threadId={threadId ?? ''}\n onOpenScore={onOpenScore}\n withQueryTrace={withQueryTrace}\n withFeedback={withFeedback}\n onClose={() => onFullThreadOpenChange?.(false)}\n />\n </>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trace-span-panel.es.js","sources":["../../../../src/domains/traces/components/trace-span-panel.tsx"],"sourcesContent":["import { useSpanDetail, useThreadHasOtherTraces } from '@mastra/react/hooks/traces';\nimport { MessagesSquareIcon } from 'lucide-react';\nimport type { ComponentProps, ReactNode } from 'react';\nimport { SpanDataPanelView } from '@/domains/traces/components/span-data-panel-view';\nimport { TraceDataPanel } from '@/domains/traces/components/trace-data-panel';\nimport type { TraceDataPanelView } from '@/domains/traces/components/trace-data-panel-view';\nimport { TraceMessagesPanel } from '@/domains/traces/components/trace-messages-panel';\nimport { getTraceThreadId } from '@/domains/traces/components/trace-thread-context';\nimport { TraceThreadPanel } from '@/domains/traces/components/trace-thread-panel';\nimport { useTraceSpanNavigation } from '@/domains/traces/hooks/use-trace-span-navigation';\nimport { Button } from '@/ds/components/Button';\nimport { useLinkComponent } from '@/lib/framework';\nimport type { LinkComponentPaths } from '@/lib/framework';\n\ntype TraceDataPanelViewProps = ComponentProps<typeof TraceDataPanelView>;\n\nfunction getEntityHref(\n paths: LinkComponentPaths,\n entityType: string | null | undefined,\n entityId: string | null | undefined,\n) {\n if (!entityId || !entityType) return undefined;\n const normalizedEntityType = entityType.toLowerCase();\n if (normalizedEntityType.includes('workflow')) return paths.workflowLink(entityId) || undefined;\n if (normalizedEntityType.includes('agent')) return paths.agentLink(entityId) || undefined;\n return undefined;\n}\ntype SpanDataPanelViewProps = ComponentProps<typeof SpanDataPanelView>;\n\nexport interface TraceSpanPanelProps {\n /** Keep the panel mounted and pass `undefined` to close it, so the drawer animates out. */\n traceId?: string;\n /** Spans returned by `useTraceOrBranchSpans` — the page owns the fetch, the panel renders it. */\n spans: TraceDataPanelViewProps['spans'];\n isLoadingSpans: boolean;\n /** Controlled span selection (URL state on the traces page, local state in the chat aside). */\n selectedSpanId: string | null;\n onSpanSelect: (spanId: string | undefined) => void;\n onClose: () => void;\n\n // Trace-panel pass-through.\n anchorSpanId?: string;\n initialSpanId?: string | null;\n onPrevious?: () => void;\n onNext?: () => void;\n onSaveAsDatasetItem?: TraceDataPanelViewProps['onSaveAsDatasetItem'];\n onAddTraceMocksToItem?: TraceDataPanelViewProps['onAddTraceMocksToItem'];\n feedbackTabBadge?: ReactNode;\n feedbackTabSlot?: TraceDataPanelViewProps['feedbackTabSlot'];\n /** Enables the \"Messages\" column (reconstructed turn) when the displayed root is a complete agent trace with a thread id. */\n showPartialThread?: boolean;\n /** Span ids featured in the timeline (non-featured spans are faded). */\n featuredSpanIds?: string[];\n /** Called with the span ids behind a reconstructed message when the user asks to highlight them. */\n onHighlightSpans?: (spanIds: string[]) => void;\n /** When true, opens the trace's thread (every turn) in a stacked drawer above the trace panel. */\n isFullThreadOpen?: boolean;\n /** Enables the in-place \"Open full thread\" swap; without it the action falls back to a link. */\n onFullThreadOpenChange?: (open: boolean) => void;\n /** Full-thread view: lists through the trace-query API; `false` falls back to `listTracesLight`. */\n withQueryTrace: boolean;\n /** Full-thread view: shows the per-trace Feedback tab. */\n withFeedback: boolean;\n /** Full-thread view: opens a score of one of the thread's traces (the app owns routing). */\n onOpenScore: (traceId: string, scoreId: string) => void;\n scoresTabBadge?: ReactNode;\n scoresTabSlot?: TraceDataPanelViewProps['scoresTabSlot'];\n usage?: TraceDataPanelViewProps['usage'];\n traceHref?: string;\n /** Drawer width; defaults to `wide`. */\n size?: TraceDataPanelViewProps['size'];\n /** Sibling-drawer elevation (see `DataPanel`). */\n depth?: TraceDataPanelViewProps['depth'];\n /** Rendered inside the drawer above the trace header (e.g. feedback context). */\n headerSlot?: ReactNode;\n /** Integration actions displayed alongside the trace controls. */\n headerActionsSlot?: ReactNode;\n /** Accessible drawer name; defaults to the trace id. */\n title?: string;\n showUnavailableFeaturesMsg?: TraceDataPanelViewProps['showUnavailableFeaturesMsg'];\n spanView?: TraceDataPanelViewProps['spanView'];\n onSpanViewChange?: TraceDataPanelViewProps['onSpanViewChange'];\n\n // Span-panel pass-through.\n spanActiveTab?: string;\n onSpanTabChange?: (tab: string) => void;\n spanFeedbackTabBadge?: ReactNode;\n spanFeedbackTabSlot?: SpanDataPanelViewProps['feedbackTabSlot'];\n}\n\n/**\n * Shared trace → span drilldown drawer: `TraceDataPanel` with a nested `SpanDataPanelView`.\n * Encapsulates the span-detail fetch and prev/next span navigation that the traces page\n * and the agent chat traces aside used to duplicate.\n */\nexport function TraceSpanPanel({\n traceId,\n spans,\n isLoadingSpans,\n selectedSpanId,\n onSpanSelect,\n onClose,\n anchorSpanId,\n initialSpanId,\n onPrevious,\n onNext,\n onSaveAsDatasetItem,\n onAddTraceMocksToItem,\n feedbackTabBadge,\n feedbackTabSlot,\n showPartialThread,\n featuredSpanIds,\n onHighlightSpans,\n isFullThreadOpen,\n onFullThreadOpenChange,\n withQueryTrace,\n withFeedback,\n onOpenScore,\n scoresTabBadge,\n scoresTabSlot,\n usage,\n traceHref,\n size,\n depth,\n headerSlot,\n headerActionsSlot,\n title,\n showUnavailableFeaturesMsg,\n spanView,\n onSpanViewChange,\n spanActiveTab,\n onSpanTabChange,\n spanFeedbackTabBadge,\n spanFeedbackTabSlot,\n}: TraceSpanPanelProps) {\n const { data: spanDetailData, isLoading: isLoadingSpanDetail } = useSpanDetail({\n traceId: traceId,\n spanId: selectedSpanId ?? '',\n queryOptions: { enabled: !!traceId && !!selectedSpanId },\n });\n const { handlePreviousSpan, handleNextSpan } = useTraceSpanNavigation(spans, selectedSpanId, onSpanSelect);\n const { Link, paths } = useLinkComponent();\n\n // The trace summary links the entity to its page; the app's link provider owns the routes.\n const rootSpan = anchorSpanId\n ? spans?.find(s => s.spanId === anchorSpanId)\n : spans?.find(s => s.parentSpanId == null);\n const entityHref = getEntityHref(paths, rootSpan?.entityType, rootSpan?.entityId);\n const threadId = getTraceThreadId(rootSpan, anchorSpanId);\n const hasMessagesPanel = !!(traceId && showPartialThread && threadId);\n // A single-trace thread would show exactly what the Messages column already shows.\n const hasOtherTraces = useThreadHasOtherTraces({\n threadId: hasMessagesPanel ? threadId : undefined,\n queryOptions: { enabled: !!(hasMessagesPanel ? threadId : undefined) },\n });\n const showFullThreadAction = hasMessagesPanel && hasOtherTraces && !!onFullThreadOpenChange;\n\n return (\n <>\n <TraceDataPanel\n traceId={traceId}\n spans={spans}\n anchorSpanId={anchorSpanId}\n entityHref={entityHref}\n usage={usage}\n isLoading={isLoadingSpans}\n onClose={onClose}\n onSpanSelect={onSpanSelect}\n onSaveAsDatasetItem={onSaveAsDatasetItem}\n onAddTraceMocksToItem={onAddTraceMocksToItem}\n initialSpanId={initialSpanId ?? selectedSpanId}\n onPrevious={onPrevious}\n onNext={onNext}\n placement=\"traces-list\"\n LinkComponent={Link}\n traceHref={traceHref}\n size={size}\n depth={depth}\n headerSlot={headerSlot}\n headerActionsSlot={headerActionsSlot}\n title={title}\n showUnavailableFeaturesMsg={showUnavailableFeaturesMsg}\n spanView={spanView}\n onSpanViewChange={onSpanViewChange}\n feedbackTabBadge={feedbackTabBadge}\n feedbackTabSlot={feedbackTabSlot}\n featuredSpanIds={featuredSpanIds}\n messagesPanelSlot={\n hasMessagesPanel ? <TraceMessagesPanel traceId={traceId} onHighlightSpans={onHighlightSpans} /> : undefined\n }\n sideHeaderActions={\n showFullThreadAction\n ? ({ compact }) => (\n <Button\n tooltip={compact ? 'Open full thread' : undefined}\n icon={<MessagesSquareIcon />}\n variant=\"ghost\"\n size=\"sm\"\n // At a side column of 500px or less, collapse to a round icon button; the label stays for screen readers.\n className=\"@max-[501px]:w-control-sm @max-[501px]:rounded-full @max-[501px]:px-0 @max-[501px]:[&>[data-slot=button-icon]]:ml-0\"\n onClick={() => onFullThreadOpenChange(true)}\n >\n <span className=\"@max-[501px]:sr-only\">Open full thread</span>\n </Button>\n )\n : undefined\n }\n scoresTabBadge={scoresTabBadge}\n scoresTabSlot={scoresTabSlot}\n spanPanelSlot={\n traceId && selectedSpanId ? (\n <SpanDataPanelView\n traceId={traceId}\n spanId={selectedSpanId}\n span={spanDetailData?.span}\n isAnchor={anchorSpanId ? selectedSpanId === anchorSpanId : undefined}\n isLoading={isLoadingSpanDetail}\n onPrevious={handlePreviousSpan}\n onNext={handleNextSpan}\n onClose={() => onSpanSelect(undefined)}\n activeTab={spanActiveTab}\n onTabChange={onSpanTabChange}\n feedbackTabBadge={spanFeedbackTabBadge}\n feedbackTabSlot={spanFeedbackTabSlot}\n />\n ) : null\n }\n />\n {/* Rendered after the trace panel: DataPanel stacking follows DOM order. */}\n <TraceThreadPanel\n open={!!(traceId && isFullThreadOpen && threadId)}\n depth={depth && depth > 1 ? 3 : 2}\n threadId={threadId ?? ''}\n onOpenScore={onOpenScore}\n withQueryTrace={withQueryTrace}\n withFeedback={withFeedback}\n onClose={() => onFullThreadOpenChange?.(false)}\n />\n </>\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ const domains_traces_components_spanRows = require('./span-rows.cjs.js');
|
|
|
7
7
|
const domains_traces_components_spanTimelineRow = require('./span-timeline-row.cjs.js');
|
|
8
8
|
const domains_traces_components_spanTypeLegend = require('./span-type-legend.cjs.js');
|
|
9
9
|
const domains_traces_components_traceSpanTree = require('./trace-span-tree.cjs.js');
|
|
10
|
+
const Txt = require('../../../Txt-DFPibRb3.cjs');
|
|
10
11
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
11
12
|
const utils_duration = require('../../../utils/duration.cjs.js');
|
|
12
13
|
|
|
@@ -31,9 +32,12 @@ function TraceSpanTimeline({
|
|
|
31
32
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[minmax(10rem,2fr)_minmax(12rem,3fr)] content-start gap-y-px overflow-hidden py-1", children: [
|
|
32
33
|
/* @__PURE__ */ jsxRuntime.jsx("div", {}),
|
|
33
34
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { "aria-label": "Trace time axis", className: "grid grid-cols-[minmax(0,1fr)_auto] gap-2 px-2 pb-1", children: [
|
|
34
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-between
|
|
35
|
-
|
|
35
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-between tabular-nums", children: TICKS.map((tick, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
36
|
+
Txt.Txt,
|
|
36
37
|
{
|
|
38
|
+
tone: "muted",
|
|
39
|
+
as: "span",
|
|
40
|
+
variant: "meta",
|
|
37
41
|
className: utils_cn.cn("whitespace-nowrap", index > 0 && index < TICKS.length - 1 && "hidden sm:inline"),
|
|
38
42
|
children: utils_duration.formatDurationPrecise(overallLatency * tick)
|
|
39
43
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-span-timeline.cjs.js","sources":["../../../../src/domains/traces/components/trace-span-timeline.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport { SpanRows } from './span-rows';\nimport { SpanTimelineRow } from './span-timeline-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeLoading } from './trace-span-tree';\nimport { cn } from '@/lib/utils';\nimport { formatDurationPrecise } from '@/utils/duration';\n\nexport type TraceSpanTimelineProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n};\n\nconst TICKS = [0, 0.25, 0.5, 0.75, 1];\n\n/**\n * Gantt-style view of a trace: the same hierarchy and expansion state as `TraceSpanTree`,\n * but each row is a compact name cell plus a bar on a shared time axis. Rendered with its\n * own row component (`SpanTimelineRow`), independent from the tree's rows.\n */\nexport function TraceSpanTimeline({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n}: TraceSpanTimelineProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n const overallLatency = hierarchicalSpans[0]?.latency || 0;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div className=\"grid grid-cols-[minmax(10rem,2fr)_minmax(12rem,3fr)] content-start gap-y-px overflow-hidden py-1\">\n {/* Header row: empty name cell, then the axis aligned with the bars (same horizontal padding, minus the duration label). */}\n <div />\n <div aria-label=\"Trace time axis\" className=\"grid grid-cols-[minmax(0,1fr)_auto] gap-2 px-2 pb-1\">\n <div className=\"flex justify-between
|
|
1
|
+
{"version":3,"file":"trace-span-timeline.cjs.js","sources":["../../../../src/domains/traces/components/trace-span-timeline.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport { SpanRows } from './span-rows';\nimport { SpanTimelineRow } from './span-timeline-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeLoading } from './trace-span-tree';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\nimport { formatDurationPrecise } from '@/utils/duration';\n\nexport type TraceSpanTimelineProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n};\n\nconst TICKS = [0, 0.25, 0.5, 0.75, 1];\n\n/**\n * Gantt-style view of a trace: the same hierarchy and expansion state as `TraceSpanTree`,\n * but each row is a compact name cell plus a bar on a shared time axis. Rendered with its\n * own row component (`SpanTimelineRow`), independent from the tree's rows.\n */\nexport function TraceSpanTimeline({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n}: TraceSpanTimelineProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n const overallLatency = hierarchicalSpans[0]?.latency || 0;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div className=\"grid grid-cols-[minmax(10rem,2fr)_minmax(12rem,3fr)] content-start gap-y-px overflow-hidden py-1\">\n {/* Header row: empty name cell, then the axis aligned with the bars (same horizontal padding, minus the duration label). */}\n <div />\n <div aria-label=\"Trace time axis\" className=\"grid grid-cols-[minmax(0,1fr)_auto] gap-2 px-2 pb-1\">\n <div className=\"flex justify-between tabular-nums\">\n {TICKS.map((tick, index) => (\n <Txt\n tone=\"muted\"\n as=\"span\"\n variant=\"meta\"\n key={tick}\n className={cn('whitespace-nowrap', index > 0 && index < TICKS.length - 1 && 'hidden sm:inline')}\n >\n {formatDurationPrecise(overallLatency * tick)}\n </Txt>\n ))}\n </div>\n <div className=\"w-12\" />\n </div>\n <SpanRows\n spans={hierarchicalSpans}\n onSpanClick={onSpanClick}\n selectedSpanId={selectedSpanId}\n revealSpanId={revealSpanId}\n fadedTypes={fadedTypes}\n featuredSpanIds={featuredSpanIds}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n renderRow={ctx => <SpanTimelineRow ctx={ctx} />}\n />\n </div>\n </>\n );\n}\n"],"names":["jsx","TraceSpanTreeLoading","jsxs","Fragment","SpanTypeLegend","Txt","cn","formatDurationPrecise","SpanRows","SpanTimelineRow"],"mappings":";;;;;;;;;;;;;AAyBA,MAAM,QAAQ,CAAC,CAAA,EAAG,IAAA,EAAM,GAAA,EAAK,MAAM,CAAC,CAAA;AAO7B,SAAS,iBAAA,CAAkB;AAAA,EAChC,oBAAoB,EAAC;AAAA,EACrB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,IAAI,SAAA,EAAW,uBAAOA,cAAA,CAACC,4DAAA,EAAA,EAAqB,CAAA;AAE5C,EAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,CAAC,CAAA,EAAG,OAAA,IAAW,CAAA;AAExD,EAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACDH,cAAA,CAACI,uDAAA,EAAA,EAAe,KAAA,EAAO,iBAAA,EAAmB,CAAA;AAAA,oBAC1CF,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kGAAA,EAEb,QAAA,EAAA;AAAA,sBAAAF,cAAA,CAAC,KAAA,EAAA,EAAI,CAAA;AAAA,sBACLE,eAAA,CAAC,KAAA,EAAA,EAAI,YAAA,EAAW,iBAAA,EAAkB,WAAU,qDAAA,EAC1C,QAAA,EAAA;AAAA,wBAAAF,cAAA,CAAC,SAAI,SAAA,EAAU,mCAAA,EACZ,gBAAM,GAAA,CAAI,CAAC,MAAM,KAAA,qBAChBA,cAAA;AAAA,UAACK,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,EAAA,EAAG,MAAA;AAAA,YACH,OAAA,EAAQ,MAAA;AAAA,YAER,SAAA,EAAWC,YAAG,mBAAA,EAAqB,KAAA,GAAQ,KAAK,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK,kBAAkB,CAAA;AAAA,YAE7F,QAAA,EAAAC,oCAAA,CAAsB,iBAAiB,IAAI;AAAA,WAAA;AAAA,UAHvC;AAAA,SAKR,CAAA,EACH,CAAA;AAAA,wBACAP,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAO;AAAA,OAAA,EACxB,CAAA;AAAA,sBACAA,cAAA;AAAA,QAACQ,2CAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,iBAAA;AAAA,UACP,WAAA;AAAA,UACA,cAAA;AAAA,UACA,YAAA;AAAA,UACA,UAAA;AAAA,UACA,eAAA;AAAA,UACA,eAAA;AAAA,UACA,kBAAA;AAAA,UACA,SAAA,EAAW,CAAA,GAAA,qBAAOR,cAAA,CAACS,yDAAA,EAAA,EAAgB,GAAA,EAAU;AAAA;AAAA;AAC/C,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -3,6 +3,7 @@ import { SpanRows } from './span-rows.es.js';
|
|
|
3
3
|
import { SpanTimelineRow } from './span-timeline-row.es.js';
|
|
4
4
|
import { SpanTypeLegend } from './span-type-legend.es.js';
|
|
5
5
|
import { TraceSpanTreeLoading } from './trace-span-tree.es.js';
|
|
6
|
+
import { T as Txt } from '../../../Txt-CuuPO9Ho.js';
|
|
6
7
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
7
8
|
import { formatDurationPrecise } from '../../../utils/duration.es.js';
|
|
8
9
|
|
|
@@ -27,9 +28,12 @@ function TraceSpanTimeline({
|
|
|
27
28
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[minmax(10rem,2fr)_minmax(12rem,3fr)] content-start gap-y-px overflow-hidden py-1", children: [
|
|
28
29
|
/* @__PURE__ */ jsx("div", {}),
|
|
29
30
|
/* @__PURE__ */ jsxs("div", { "aria-label": "Trace time axis", className: "grid grid-cols-[minmax(0,1fr)_auto] gap-2 px-2 pb-1", children: [
|
|
30
|
-
/* @__PURE__ */ jsx("div", { className: "flex justify-between
|
|
31
|
-
|
|
31
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-between tabular-nums", children: TICKS.map((tick, index) => /* @__PURE__ */ jsx(
|
|
32
|
+
Txt,
|
|
32
33
|
{
|
|
34
|
+
tone: "muted",
|
|
35
|
+
as: "span",
|
|
36
|
+
variant: "meta",
|
|
33
37
|
className: cn("whitespace-nowrap", index > 0 && index < TICKS.length - 1 && "hidden sm:inline"),
|
|
34
38
|
children: formatDurationPrecise(overallLatency * tick)
|
|
35
39
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trace-span-timeline.es.js","sources":["../../../../src/domains/traces/components/trace-span-timeline.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport { SpanRows } from './span-rows';\nimport { SpanTimelineRow } from './span-timeline-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeLoading } from './trace-span-tree';\nimport { cn } from '@/lib/utils';\nimport { formatDurationPrecise } from '@/utils/duration';\n\nexport type TraceSpanTimelineProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n};\n\nconst TICKS = [0, 0.25, 0.5, 0.75, 1];\n\n/**\n * Gantt-style view of a trace: the same hierarchy and expansion state as `TraceSpanTree`,\n * but each row is a compact name cell plus a bar on a shared time axis. Rendered with its\n * own row component (`SpanTimelineRow`), independent from the tree's rows.\n */\nexport function TraceSpanTimeline({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n}: TraceSpanTimelineProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n const overallLatency = hierarchicalSpans[0]?.latency || 0;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div className=\"grid grid-cols-[minmax(10rem,2fr)_minmax(12rem,3fr)] content-start gap-y-px overflow-hidden py-1\">\n {/* Header row: empty name cell, then the axis aligned with the bars (same horizontal padding, minus the duration label). */}\n <div />\n <div aria-label=\"Trace time axis\" className=\"grid grid-cols-[minmax(0,1fr)_auto] gap-2 px-2 pb-1\">\n <div className=\"flex justify-between
|
|
1
|
+
{"version":3,"file":"trace-span-timeline.es.js","sources":["../../../../src/domains/traces/components/trace-span-timeline.tsx"],"sourcesContent":["import type { Dispatch, ReactNode, SetStateAction } from 'react';\nimport type { UISpan } from '../types';\nimport { SpanRows } from './span-rows';\nimport { SpanTimelineRow } from './span-timeline-row';\nimport { SpanTypeLegend } from './span-type-legend';\nimport { TraceSpanTreeLoading } from './trace-span-tree';\nimport { Txt } from '@/ds/components/Txt';\nimport { cn } from '@/lib/utils';\nimport { formatDurationPrecise } from '@/utils/duration';\n\nexport type TraceSpanTimelineProps = {\n hierarchicalSpans: UISpan[];\n onSpanClick: (id: string) => void;\n selectedSpanId?: string;\n isLoading?: boolean;\n fadedTypes?: string[];\n expandedSpanIds?: string[];\n setExpandedSpanIds?: Dispatch<SetStateAction<string[]>>;\n featuredSpanIds?: string[];\n /** Row scrolled into view once it is mounted (ancestors auto-expand when the span is featured). */\n revealSpanId?: string;\n /** Rendered full-width above the span type legend row. */\n leadingSlot?: ReactNode;\n};\n\nconst TICKS = [0, 0.25, 0.5, 0.75, 1];\n\n/**\n * Gantt-style view of a trace: the same hierarchy and expansion state as `TraceSpanTree`,\n * but each row is a compact name cell plus a bar on a shared time axis. Rendered with its\n * own row component (`SpanTimelineRow`), independent from the tree's rows.\n */\nexport function TraceSpanTimeline({\n hierarchicalSpans = [],\n onSpanClick,\n selectedSpanId,\n isLoading,\n fadedTypes,\n expandedSpanIds,\n setExpandedSpanIds,\n featuredSpanIds,\n revealSpanId,\n leadingSlot,\n}: TraceSpanTimelineProps) {\n if (isLoading) return <TraceSpanTreeLoading />;\n\n const overallLatency = hierarchicalSpans[0]?.latency || 0;\n\n return (\n <>\n {leadingSlot}\n <SpanTypeLegend spans={hierarchicalSpans} />\n <div className=\"grid grid-cols-[minmax(10rem,2fr)_minmax(12rem,3fr)] content-start gap-y-px overflow-hidden py-1\">\n {/* Header row: empty name cell, then the axis aligned with the bars (same horizontal padding, minus the duration label). */}\n <div />\n <div aria-label=\"Trace time axis\" className=\"grid grid-cols-[minmax(0,1fr)_auto] gap-2 px-2 pb-1\">\n <div className=\"flex justify-between tabular-nums\">\n {TICKS.map((tick, index) => (\n <Txt\n tone=\"muted\"\n as=\"span\"\n variant=\"meta\"\n key={tick}\n className={cn('whitespace-nowrap', index > 0 && index < TICKS.length - 1 && 'hidden sm:inline')}\n >\n {formatDurationPrecise(overallLatency * tick)}\n </Txt>\n ))}\n </div>\n <div className=\"w-12\" />\n </div>\n <SpanRows\n spans={hierarchicalSpans}\n onSpanClick={onSpanClick}\n selectedSpanId={selectedSpanId}\n revealSpanId={revealSpanId}\n fadedTypes={fadedTypes}\n featuredSpanIds={featuredSpanIds}\n expandedSpanIds={expandedSpanIds}\n setExpandedSpanIds={setExpandedSpanIds}\n renderRow={ctx => <SpanTimelineRow ctx={ctx} />}\n />\n </div>\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;AAyBA,MAAM,QAAQ,CAAC,CAAA,EAAG,IAAA,EAAM,GAAA,EAAK,MAAM,CAAC,CAAA;AAO7B,SAAS,iBAAA,CAAkB;AAAA,EAChC,oBAAoB,EAAC;AAAA,EACrB,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,eAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,IAAI,SAAA,EAAW,uBAAO,GAAA,CAAC,oBAAA,EAAA,EAAqB,CAAA;AAE5C,EAAA,MAAM,cAAA,GAAiB,iBAAA,CAAkB,CAAC,CAAA,EAAG,OAAA,IAAW,CAAA;AAExD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,WAAA;AAAA,oBACD,GAAA,CAAC,cAAA,EAAA,EAAe,KAAA,EAAO,iBAAA,EAAmB,CAAA;AAAA,oBAC1C,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kGAAA,EAEb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,CAAA;AAAA,sBACL,IAAA,CAAC,KAAA,EAAA,EAAI,YAAA,EAAW,iBAAA,EAAkB,WAAU,qDAAA,EAC1C,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,mCAAA,EACZ,gBAAM,GAAA,CAAI,CAAC,MAAM,KAAA,qBAChB,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,EAAA,EAAG,MAAA;AAAA,YACH,OAAA,EAAQ,MAAA;AAAA,YAER,SAAA,EAAW,GAAG,mBAAA,EAAqB,KAAA,GAAQ,KAAK,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,IAAK,kBAAkB,CAAA;AAAA,YAE7F,QAAA,EAAA,qBAAA,CAAsB,iBAAiB,IAAI;AAAA,WAAA;AAAA,UAHvC;AAAA,SAKR,CAAA,EACH,CAAA;AAAA,wBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EAAO;AAAA,OAAA,EACxB,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,iBAAA;AAAA,UACP,WAAA;AAAA,UACA,cAAA;AAAA,UACA,YAAA;AAAA,UACA,UAAA;AAAA,UACA,eAAA;AAAA,UACA,eAAA;AAAA,UACA,kBAAA;AAAA,UACA,SAAA,EAAW,CAAA,GAAA,qBAAO,GAAA,CAAC,eAAA,EAAA,EAAgB,GAAA,EAAU;AAAA;AAAA;AAC/C,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -7,7 +7,7 @@ const domains_traces_components_spanRows = require('./span-rows.cjs.js');
|
|
|
7
7
|
const domains_traces_components_spanTreeRow = require('./span-tree-row.cjs.js');
|
|
8
8
|
const domains_traces_components_spanTypeLegend = require('./span-type-legend.cjs.js');
|
|
9
9
|
const domains_traces_components_traceSpanTreeSkeleton = require('./trace-span-tree-skeleton.cjs.js');
|
|
10
|
-
const Txt = require('../../../Txt-
|
|
10
|
+
const Txt = require('../../../Txt-DFPibRb3.cjs');
|
|
11
11
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
12
12
|
const utils_duration = require('../../../utils/duration.cjs.js');
|
|
13
13
|
|
|
@@ -3,7 +3,7 @@ import { SpanRows } from './span-rows.es.js';
|
|
|
3
3
|
import { SpanTreeRow } from './span-tree-row.es.js';
|
|
4
4
|
import { SpanTypeLegend } from './span-type-legend.es.js';
|
|
5
5
|
import { TraceSpanTreeSkeleton } from './trace-span-tree-skeleton.es.js';
|
|
6
|
-
import { T as Txt } from '../../../Txt-
|
|
6
|
+
import { T as Txt } from '../../../Txt-CuuPO9Ho.js';
|
|
7
7
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
8
8
|
import { formatDurationPrecise } from '../../../utils/duration.es.js';
|
|
9
9
|
|
|
@@ -6,8 +6,8 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const lucideReact = require('lucide-react');
|
|
7
7
|
const domains_traces_utils_spanUtils = require('../utils/span-utils.cjs.js');
|
|
8
8
|
const domains_traces_components_traceStatusValue = require('./trace-status-value.cjs.js');
|
|
9
|
-
const dataPanel = require('../../../data-panel-
|
|
10
|
-
const Txt = require('../../../Txt-
|
|
9
|
+
const dataPanel = require('../../../data-panel-b48tWgzs.cjs');
|
|
10
|
+
const Txt = require('../../../Txt-DFPibRb3.cjs');
|
|
11
11
|
const icons_AgentIcon = require('../../../icons/AgentIcon.cjs.js');
|
|
12
12
|
const icons_WorkflowIcon = require('../../../icons/WorkflowIcon.cjs.js');
|
|
13
13
|
const utils_cost = require('../../../utils/cost.cjs.js');
|
|
@@ -2,8 +2,8 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
2
2
|
import { CalendarClockIcon, TimerIcon, ArrowDownToLineIcon, ArrowUpFromLineIcon, CircleDollarSignIcon } from 'lucide-react';
|
|
3
3
|
import { getSpanDurationMs } from '../utils/span-utils.es.js';
|
|
4
4
|
import { TraceStatusValue } from './trace-status-value.es.js';
|
|
5
|
-
import { D as DataPanel } from '../../../data-panel-
|
|
6
|
-
import { T as Txt } from '../../../Txt-
|
|
5
|
+
import { D as DataPanel } from '../../../data-panel-Bzed2B75.js';
|
|
6
|
+
import { T as Txt } from '../../../Txt-CuuPO9Ho.js';
|
|
7
7
|
import { AgentIcon } from '../../../icons/AgentIcon.es.js';
|
|
8
8
|
import { WorkflowIcon } from '../../../icons/WorkflowIcon.es.js';
|
|
9
9
|
import { formatCompactNumber, formatCost } from '../../../utils/cost.es.js';
|
|
@@ -11,7 +11,7 @@ const domains_chat_context_toolCallContext = require('../../chat/context/tool-ca
|
|
|
11
11
|
const domains_chat_messages_messageRow = require('../../chat/messages/message-row.cjs.js');
|
|
12
12
|
const domains_traces_components_tracesErrorContent = require('./traces-error-content.cjs.js');
|
|
13
13
|
const Button = require('../../../Button-CXhSUBxN.cjs');
|
|
14
|
-
const Txt = require('../../../Txt-
|
|
14
|
+
const Txt = require('../../../Txt-DFPibRb3.cjs');
|
|
15
15
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
16
16
|
|
|
17
17
|
const noop = () => {
|
|
@@ -7,7 +7,7 @@ import { ToolCallProvider } from '../../chat/context/tool-call-context.es.js';
|
|
|
7
7
|
import { MessageRow } from '../../chat/messages/message-row.es.js';
|
|
8
8
|
import { TracesErrorContent } from './traces-error-content.es.js';
|
|
9
9
|
import { B as Button } from '../../../Button-D43ghVKt.js';
|
|
10
|
-
import { T as Txt } from '../../../Txt-
|
|
10
|
+
import { T as Txt } from '../../../Txt-CuuPO9Ho.js';
|
|
11
11
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
12
12
|
|
|
13
13
|
const noop = () => {
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const React = require('react');
|
|
7
7
|
const domains_traces_components_threadViewByTrace = require('./thread-view-by-trace.cjs.js');
|
|
8
|
-
const dataPanel = require('../../../data-panel-
|
|
8
|
+
const dataPanel = require('../../../data-panel-b48tWgzs.cjs');
|
|
9
9
|
|
|
10
10
|
function TraceThreadPanel({
|
|
11
11
|
open,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { ThreadViewByTrace } from './thread-view-by-trace.es.js';
|
|
4
|
-
import { D as DataPanel } from '../../../data-panel-
|
|
4
|
+
import { D as DataPanel } from '../../../data-panel-Bzed2B75.js';
|
|
5
5
|
|
|
6
6
|
function TraceThreadPanel({
|
|
7
7
|
open,
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const domains_traces_traceFilters = require('../trace-filters.cjs.js');
|
|
7
|
-
const dateTimeRangePicker = require('../../../date-time-range-picker-
|
|
7
|
+
const dateTimeRangePicker = require('../../../date-time-range-picker-CvzC4nOt.cjs');
|
|
8
8
|
const filterBarChip = require('../../../filter-bar-chip-CbX_iAzm.cjs');
|
|
9
9
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
10
10
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { traceFilterFieldColor, traceFilterFieldIcon } from '../trace-filters.es.js';
|
|
3
|
-
import { D as DateTimeRangePicker } from '../../../date-time-range-picker-
|
|
3
|
+
import { D as DateTimeRangePicker } from '../../../date-time-range-picker-BqlAiuYW.js';
|
|
4
4
|
import { u as useFilterBarContext, F as FilterBarChip, a as FilterBarFieldLabel, f as fieldSegmentAccentStyle, s as segmentClass, e as editableSegmentClass } from '../../../filter-bar-chip-0OLqovME.js';
|
|
5
5
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
6
6
|
|
|
@@ -6,7 +6,7 @@ const jsxRuntime = require('react/jsx-runtime');
|
|
|
6
6
|
const query = require('@mastra/react/hooks/query');
|
|
7
7
|
const domains_auth_components_permissionDenied = require('../../auth/components/permission-denied.cjs.js');
|
|
8
8
|
const domains_auth_components_sessionExpired = require('../../auth/components/session-expired.cjs.js');
|
|
9
|
-
const EmptyState = require('../../../EmptyState-
|
|
9
|
+
const EmptyState = require('../../../EmptyState-B6kP-dEp.cjs');
|
|
10
10
|
const errors = require('../../../errors-BiY55qIh.cjs');
|
|
11
11
|
|
|
12
12
|
function TracesErrorContent({ error, resource, errorTitle }) {
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { is401UnauthorizedError, is403ForbiddenError } from '@mastra/react/hooks/query';
|
|
3
3
|
import { PermissionDenied } from '../../auth/components/permission-denied.es.js';
|
|
4
4
|
import { SessionExpired } from '../../auth/components/session-expired.es.js';
|
|
5
|
-
import { E as EmptyState } from '../../../EmptyState-
|
|
5
|
+
import { E as EmptyState } from '../../../EmptyState-BQww74OL.js';
|
|
6
6
|
import { p as parseError } from '../../../errors-CDTokuME.js';
|
|
7
7
|
|
|
8
8
|
function TracesErrorContent({ error, resource, errorTitle }) {
|
|
@@ -8,12 +8,13 @@ const lucideReact = require('lucide-react');
|
|
|
8
8
|
const React = require('react');
|
|
9
9
|
const domains_traces_traceListColumns = require('../trace-list-columns.cjs.js');
|
|
10
10
|
const domains_traces_utils_spanUtils = require('../utils/span-utils.cjs.js');
|
|
11
|
-
const dataList = require('../../../data-list-
|
|
12
|
-
const dataListSkeleton = require('../../../data-list-skeleton-
|
|
13
|
-
const tracesDataList = require('../../../traces-data-list-
|
|
11
|
+
const dataList = require('../../../data-list-DQgIgmjy.cjs');
|
|
12
|
+
const dataListSkeleton = require('../../../data-list-skeleton-DdWv6VN-.cjs');
|
|
13
|
+
const tracesDataList = require('../../../traces-data-list-CVLHJtd4.cjs');
|
|
14
14
|
const useDataListKeyboard = require('../../../use-data-list-keyboard-DF3tLe10.cjs');
|
|
15
|
+
const dataListTop = require('../../../data-list-top-BFssu4VI.cjs');
|
|
15
16
|
const dropdownMenu = require('../../../dropdown-menu-j2y37TL5.cjs');
|
|
16
|
-
const Txt = require('../../../Txt-
|
|
17
|
+
const Txt = require('../../../Txt-DFPibRb3.cjs');
|
|
17
18
|
const primitives_transitions = require('../../../primitives/transitions.cjs.js');
|
|
18
19
|
const utils_cost = require('../../../utils/cost.cjs.js');
|
|
19
20
|
const utils_cn = require('../../../cn-DG0X1KEP.cjs');
|
|
@@ -70,16 +71,6 @@ function TracesListView({
|
|
|
70
71
|
onNavigate: (index) => virtualizer.scrollToIndex(index),
|
|
71
72
|
global: true
|
|
72
73
|
});
|
|
73
|
-
const wasLoadingRef = React.useRef(isLoading);
|
|
74
|
-
React.useEffect(() => {
|
|
75
|
-
if (wasLoadingRef.current && !isLoading) {
|
|
76
|
-
scrollRef.current?.dispatchEvent(new Event("scroll"));
|
|
77
|
-
}
|
|
78
|
-
wasLoadingRef.current = isLoading;
|
|
79
|
-
}, [isLoading]);
|
|
80
|
-
if (isLoading) {
|
|
81
|
-
return /* @__PURE__ */ jsxRuntime.jsx(dataListSkeleton.DataListSkeleton, { columns, fit: "container" });
|
|
82
|
-
}
|
|
83
74
|
const virtualItems = virtualizer.getVirtualItems();
|
|
84
75
|
const totalSize = virtualizer.getTotalSize();
|
|
85
76
|
const paddingTop = virtualItems[0]?.start ?? 0;
|
|
@@ -129,7 +120,7 @@ function TracesListView({
|
|
|
129
120
|
}),
|
|
130
121
|
columnPreferences.metadataKeys.map((key) => /* @__PURE__ */ jsxRuntime.jsx(tracesDataList.TracesDataList.TopCellWithTooltip, { tooltip: key, children: key }, key))
|
|
131
122
|
] }),
|
|
132
|
-
traces.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
123
|
+
isLoading ? /* @__PURE__ */ jsxRuntime.jsx(dataListSkeleton.DataListSkeletonRows, { columnCount: dataListTop.splitColumns(columns).length }) : traces.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
133
124
|
tracesDataList.TracesDataList.NoMatch,
|
|
134
125
|
{
|
|
135
126
|
message: filtersApplied ? "No traces found for applied filters" : "No traces found yet"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useEffect, useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeleton, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n // Reset scroll to top whenever a fresh query resolves (filter / date range change).\n // `isLoading` only flips on initial fetches — `fetchNextPage` keeps it `false`, so this\n // effect doesn't fire during pagination.\n //\n // Why the manual scroll event: when the skeleton-vs-list branch swaps in the new scroll\n // container, it mounts at `scrollTop = 0`. The virtualizer rebinds its listener but\n // doesn't re-read `scrollTop`, so it keeps the stale `scrollOffset` from the previous\n // element. `scrollToOffset(0)` no-ops because the new element is already at 0 (no scroll\n // event fires). Dispatching a synthetic `scroll` forces the virtualizer's handler to\n // read the fresh `scrollTop` and recompute `virtualItems` with `paddingTop = 0`.\n const wasLoadingRef = useRef(isLoading);\n useEffect(() => {\n if (wasLoadingRef.current && !isLoading) {\n scrollRef.current?.dispatchEvent(new Event('scroll'));\n }\n wasLoadingRef.current = isLoading;\n }, [isLoading]);\n\n if (isLoading) {\n return <DataListSkeleton columns={columns} fit=\"container\" />;\n }\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","useVirtualizer","useDataListKeyboard","useEffect","jsx","DataListSkeleton","TracesDataList","jsxs","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","Fragment","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traces-list-view.cjs.js","sources":["../../../../src/domains/traces/components/traces-list-view.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { ListFilterIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport {\n DEFAULT_TRACE_COLUMN_PREFERENCES,\n TRACE_CUSTOM_COLUMN_LABELS,\n buildTraceListColumns,\n formatTraceMetadataValue,\n hasTraceColumn,\n} from '../trace-list-columns';\nimport type { TraceColumnPreferences, TraceCustomColumn, TraceUsageSummary } from '../trace-list-columns';\nimport { getInputPreview, getSpanDurationMs } from '../utils/span-utils';\nimport { DataList, DataListSkeletonRows, TracesDataList, useDataListKeyboard } from '@/ds/components/DataList';\nimport type { DataListSort } from '@/ds/components/DataList';\nimport { splitColumns } from '@/ds/components/DataList/shared';\nimport { DropdownMenu } from '@/ds/components/DropdownMenu';\nimport { Txt } from '@/ds/components/Txt/Txt';\nimport { focusRing } from '@/ds/primitives/transitions';\nimport { formatCompactNumber, formatCost } from '@/lib/cost';\nimport { cn } from '@/lib/utils';\nimport { formatDuration } from '@/utils/duration';\n\nexport type TracesListViewTrace = {\n traceId: string;\n /** Required for branch rows; absent on plain trace rows (which are root-rooted). */\n spanId?: string | null;\n /** `null`/missing → root span. Drives the Kind column's icon (top-level trace vs nested branch). */\n parentSpanId?: string | null;\n name: string;\n entityType?: string | null;\n entityId?: string | null;\n entityName?: string | null;\n threadId?: string | null;\n resourceId?: string | null;\n environment?: string | null;\n status?: string | null;\n /** Server-rendered preview of `input`. Present on lightweight rows, which omit `input` itself. */\n inputPreview?: string | null;\n input?: unknown;\n metadata?: Record<string, unknown> | null;\n startedAt?: Date | string | null;\n endedAt?: Date | string | null;\n createdAt: Date | string;\n};\n\nconst ROW_HEIGHT = 36;\nconst OVERSCAN = 8;\n/** Distinct values offered in a custom column's \"filter by value\" header menu. */\nconst MAX_FILTER_VALUES = 20;\n\nfunction customColumnValue(trace: TracesListViewTrace, field: TraceCustomColumn): string | null | undefined {\n return trace[field];\n}\n\nfunction distinctCustomColumnValues(traces: TracesListViewTrace[], field: TraceCustomColumn): string[] {\n const values = new Set<string>();\n for (const trace of traces) {\n const value = trace[field];\n if (typeof value === 'string' && value) values.add(value);\n if (values.size >= MAX_FILTER_VALUES) break;\n }\n return [...values];\n}\n\nfunction sumTokens(usage: TraceUsageSummary | undefined): number | undefined {\n if (usage?.inputTokens === undefined && usage?.outputTokens === undefined) return undefined;\n return (usage?.inputTokens ?? 0) + (usage?.outputTokens ?? 0);\n}\n\nexport type TracesListViewProps = {\n traces: TracesListViewTrace[];\n isLoading?: boolean;\n isFetchingNextPage?: boolean;\n hasNextPage?: boolean;\n setEndOfListElement?: (element: HTMLDivElement | null) => void;\n filtersApplied?: boolean;\n /** Currently featured/selected trace — its row gets the highlighted background. */\n featuredTraceId?: string | null;\n /**\n * Required in branches mode to disambiguate rows sharing a `traceId`. When set,\n * a row is featured only when both `traceId` and `spanId` match.\n */\n featuredSpanId?: string | null;\n /** Branches mode mixes root traces with subtraces — enables the Trace/Subtrace tooltip on the\n * level icon in the Name column, which is meaningless when every row is a root. */\n isBranchesMode?: boolean;\n /** Keys (`traceId:spanId`) of rows that just arrived via delta polling. Rows whose key is in\n * this set get a temporary tint to distinguish them from rows present since the last page-mode\n * fetch. Auto-expires upstream (in useTraces) after a short window. */\n recentlyAddedKeys?: Set<string>;\n /** Optional and metadata columns selected for this project. */\n columnPreferences?: TraceColumnPreferences;\n /** Token and estimated-cost totals, aggregated across model spans by trace ID. */\n usageByTraceId?: ReadonlyMap<string, TraceUsageSummary>;\n /** Called when a row is clicked. The current selection logic (toggle on same id) is the consumer's call. */\n onTraceClick: (trace: TracesListViewTrace) => void;\n /** Current sort of the Created column. When `onSortChange` is provided the header becomes sortable. */\n createdSort?: DataListSort;\n onSortChange?: (direction: DataListSort, key: 'startedAt') => void;\n /** When provided, custom column headers offer an `is <value>` filter for every value currently listed. */\n onFilterByField?: (field: TraceCustomColumn, value: string) => void;\n};\n\n/**\n * Virtualized presentational list. Renders only the visible window via TanStack Virtual, and\n * uses DataList primitives for layout (CSS Grid with subgrid rows).\n */\nexport function TracesListView({\n traces,\n isLoading,\n isFetchingNextPage,\n hasNextPage,\n setEndOfListElement,\n filtersApplied,\n featuredTraceId,\n featuredSpanId,\n isBranchesMode,\n recentlyAddedKeys,\n columnPreferences = DEFAULT_TRACE_COLUMN_PREFERENCES,\n usageByTraceId,\n onTraceClick,\n createdSort,\n onSortChange,\n onFilterByField,\n}: TracesListViewProps) {\n const scrollRef = useRef<HTMLDivElement | null>(null);\n const columns = buildTraceListColumns(columnPreferences);\n\n const virtualizer = useVirtualizer({\n count: traces.length,\n getScrollElement: () => scrollRef.current,\n estimateSize: () => ROW_HEIGHT,\n overscan: OVERSCAN,\n });\n\n const { getRowProps } = useDataListKeyboard({\n count: traces.length,\n containerRef: scrollRef,\n onNavigate: index => virtualizer.scrollToIndex(index),\n global: true,\n });\n\n const virtualItems = virtualizer.getVirtualItems();\n const totalSize = virtualizer.getTotalSize();\n const paddingTop = virtualItems[0]?.start ?? 0;\n const paddingBottom =\n virtualItems.length > 0 ? Math.max(0, totalSize - (virtualItems[virtualItems.length - 1]?.end ?? 0)) : 0;\n\n return (\n <TracesDataList columns={columns} fit=\"container\" scrollRef={scrollRef} className=\"min-w-0\">\n <TracesDataList.Top>\n {onSortChange ? (\n <TracesDataList.SortableTopCell sortKey=\"startedAt\" sort={createdSort} onSortChange={onSortChange}>\n Start\n </TracesDataList.SortableTopCell>\n ) : (\n <TracesDataList.TopCell>Start</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TopCell>Primitive type</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Primitive name</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'input') && <TracesDataList.TopCell>Input</TracesDataList.TopCell>}\n <TracesDataList.TopCell>Status</TracesDataList.TopCell>\n {hasTraceColumn(columnPreferences, 'duration') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Duration</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && <TracesDataList.TopCell>End</TracesDataList.TopCell>}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <TracesDataList.TopCell>Environment</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Input tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Output tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Total tokens</TracesDataList.TopCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <TracesDataList.TopCell className=\"justify-end text-right\">Est. cost</TracesDataList.TopCell>\n )}\n {columnPreferences.customColumns.map(field => {\n const label = TRACE_CUSTOM_COLUMN_LABELS[field];\n const filterValues = onFilterByField ? distinctCustomColumnValues(traces, field) : [];\n if (!onFilterByField || filterValues.length === 0) {\n return <TracesDataList.TopCell key={field}>{label}</TracesDataList.TopCell>;\n }\n return (\n <TracesDataList.TopCell key={field} className=\"overflow-visible\">\n <DropdownMenu>\n <DropdownMenu.Trigger\n render={\n <button\n type=\"button\"\n className={cn('flex min-w-0 items-center gap-1 rounded-sm hover:text-foreground', focusRing)}\n >\n <span className=\"min-w-0 truncate\">{label}</span>\n <ListFilterIcon aria-hidden className=\"size-[1.2em] shrink-0\" />\n </button>\n }\n />\n <DropdownMenu.Content align=\"start\">\n <DropdownMenu.Label>Filter by value</DropdownMenu.Label>\n {filterValues.map(value => (\n <DropdownMenu.Item key={value} onSelect={() => onFilterByField(field, value)}>\n <Txt as=\"span\" variant=\"body-sm\" font=\"mono\" className=\"min-w-0 truncate\">\n {value}\n </Txt>\n </DropdownMenu.Item>\n ))}\n </DropdownMenu.Content>\n </DropdownMenu>\n </TracesDataList.TopCell>\n );\n })}\n {columnPreferences.metadataKeys.map(key => (\n <TracesDataList.TopCellWithTooltip key={key} tooltip={key}>\n {key}\n </TracesDataList.TopCellWithTooltip>\n ))}\n </TracesDataList.Top>\n\n {isLoading ? (\n <DataListSkeletonRows columnCount={splitColumns(columns).length} />\n ) : traces.length === 0 ? (\n <TracesDataList.NoMatch\n message={filtersApplied ? 'No traces found for applied filters' : 'No traces found yet'}\n />\n ) : (\n <>\n <TracesDataList.Spacer height={paddingTop} />\n {virtualItems.map(vi => {\n const trace = traces[vi.index];\n if (!trace) return null;\n\n const isFeatured =\n trace.traceId === featuredTraceId && (featuredSpanId == null || trace.spanId === featuredSpanId);\n const rowKey = `${trace.traceId}:${trace.spanId ?? ''}`;\n const isRecentlyAdded = recentlyAddedKeys?.has(rowKey) ?? false;\n const displayDate = trace.startedAt ?? trace.createdAt;\n const usage = usageByTraceId?.get(trace.traceId);\n\n return (\n <TracesDataList.RowButton\n key={rowKey}\n ref={virtualizer.measureElement}\n data-index={vi.index}\n {...getRowProps(vi.index)}\n onClick={() => onTraceClick(trace)}\n featured={isFeatured}\n className={cn(isRecentlyAdded && 'animate-row-highlight')}\n >\n <TracesDataList.CreatedCell timestamp={displayDate} preset=\"day-time-seconds\" />\n {hasTraceColumn(columnPreferences, 'type') && <TracesDataList.TypeCell entityType={trace.entityType} />}\n <TracesDataList.NameCell\n name={trace.entityName || trace.name}\n parentSpanId={trace.parentSpanId}\n showLevelTooltip={isBranchesMode}\n />\n {hasTraceColumn(columnPreferences, 'input') && (\n <TracesDataList.InputCell input={trace.inputPreview ?? getInputPreview(trace.input)} />\n )}\n <TracesDataList.StatusCell status={trace.status} />\n {hasTraceColumn(columnPreferences, 'duration') && (\n <DataList.NumberCell font=\"mono\">\n {formatDuration(getSpanDurationMs(trace.startedAt, trace.endedAt))}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'endTime') && (\n <TracesDataList.CreatedCell timestamp={trace.endedAt ?? ''} preset=\"day-time-seconds\" />\n )}\n {hasTraceColumn(columnPreferences, 'environment') && (\n <DataList.TextCell>{trace.environment || '—'}</DataList.TextCell>\n )}\n {hasTraceColumn(columnPreferences, 'inputTokens') && (\n <DataList.NumberCell>\n {usage?.inputTokens === undefined ? undefined : formatCompactNumber(usage.inputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'outputTokens') && (\n <DataList.NumberCell>\n {usage?.outputTokens === undefined ? undefined : formatCompactNumber(usage.outputTokens)}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'totalTokens') && (\n <DataList.NumberCell>\n {(() => {\n const total = sumTokens(usage);\n return total === undefined ? undefined : formatCompactNumber(total);\n })()}\n </DataList.NumberCell>\n )}\n {hasTraceColumn(columnPreferences, 'estimatedCost') && (\n <DataList.NumberCell>\n {usage?.estimatedCost === undefined ? undefined : formatCost(usage.estimatedCost, usage.costUnit)}\n </DataList.NumberCell>\n )}\n {columnPreferences.customColumns.map(field => (\n <DataList.TextCell font=\"mono\" key={field}>\n {customColumnValue(trace, field) ?? undefined}\n </DataList.TextCell>\n ))}\n {columnPreferences.metadataKeys.map(key => {\n const value = formatTraceMetadataValue(trace.metadata, key);\n return (\n <DataList.TextCell font=\"mono\" key={key}>\n {value}\n </DataList.TextCell>\n );\n })}\n </TracesDataList.RowButton>\n );\n })}\n <TracesDataList.Spacer height={paddingBottom} />\n <TracesDataList.NextPageLoading\n isLoading={isFetchingNextPage}\n hasMore={hasNextPage}\n setEndOfListElement={setEndOfListElement}\n />\n </>\n )}\n </TracesDataList>\n );\n}\n"],"names":["DEFAULT_TRACE_COLUMN_PREFERENCES","useRef","buildTraceListColumns","useVirtualizer","useDataListKeyboard","TracesDataList","jsxs","jsx","hasTraceColumn","TRACE_CUSTOM_COLUMN_LABELS","DropdownMenu","cn","focusRing","ListFilterIcon","Txt","DataListSkeletonRows","splitColumns","Fragment","getInputPreview","DataList","getSpanDurationMs","formatCompactNumber","formatCost","formatTraceMetadataValue"],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
3
3
|
import { ListFilterIcon } from 'lucide-react';
|
|
4
|
-
import { useRef
|
|
4
|
+
import { useRef } from 'react';
|
|
5
5
|
import { buildTraceListColumns, hasTraceColumn, DEFAULT_TRACE_COLUMN_PREFERENCES, TRACE_CUSTOM_COLUMN_LABELS, formatTraceMetadataValue } from '../trace-list-columns.es.js';
|
|
6
6
|
import { getInputPreview, getSpanDurationMs } from '../utils/span-utils.es.js';
|
|
7
|
-
import { D as DataList } from '../../../data-list-
|
|
8
|
-
import {
|
|
9
|
-
import { T as TracesDataList } from '../../../traces-data-list-
|
|
7
|
+
import { D as DataList } from '../../../data-list-B6DT-u-0.js';
|
|
8
|
+
import { a as DataListSkeletonRows } from '../../../data-list-skeleton-DuK0aDVr.js';
|
|
9
|
+
import { T as TracesDataList } from '../../../traces-data-list-B0xInvZg.js';
|
|
10
10
|
import { u as useDataListKeyboard } from '../../../use-data-list-keyboard-DFQr4t38.js';
|
|
11
|
+
import { s as splitColumns } from '../../../data-list-top-D10jfsQH.js';
|
|
11
12
|
import { D as DropdownMenu } from '../../../dropdown-menu-DpEn6HwK.js';
|
|
12
|
-
import { T as Txt } from '../../../Txt-
|
|
13
|
+
import { T as Txt } from '../../../Txt-CuuPO9Ho.js';
|
|
13
14
|
import { focusRing } from '../../../primitives/transitions.es.js';
|
|
14
15
|
import { formatCompactNumber, formatCost } from '../../../utils/cost.es.js';
|
|
15
16
|
import { c as cn } from '../../../cn-65Adrsfj.js';
|
|
@@ -66,16 +67,6 @@ function TracesListView({
|
|
|
66
67
|
onNavigate: (index) => virtualizer.scrollToIndex(index),
|
|
67
68
|
global: true
|
|
68
69
|
});
|
|
69
|
-
const wasLoadingRef = useRef(isLoading);
|
|
70
|
-
useEffect(() => {
|
|
71
|
-
if (wasLoadingRef.current && !isLoading) {
|
|
72
|
-
scrollRef.current?.dispatchEvent(new Event("scroll"));
|
|
73
|
-
}
|
|
74
|
-
wasLoadingRef.current = isLoading;
|
|
75
|
-
}, [isLoading]);
|
|
76
|
-
if (isLoading) {
|
|
77
|
-
return /* @__PURE__ */ jsx(DataListSkeleton, { columns, fit: "container" });
|
|
78
|
-
}
|
|
79
70
|
const virtualItems = virtualizer.getVirtualItems();
|
|
80
71
|
const totalSize = virtualizer.getTotalSize();
|
|
81
72
|
const paddingTop = virtualItems[0]?.start ?? 0;
|
|
@@ -125,7 +116,7 @@ function TracesListView({
|
|
|
125
116
|
}),
|
|
126
117
|
columnPreferences.metadataKeys.map((key) => /* @__PURE__ */ jsx(TracesDataList.TopCellWithTooltip, { tooltip: key, children: key }, key))
|
|
127
118
|
] }),
|
|
128
|
-
traces.length === 0 ? /* @__PURE__ */ jsx(
|
|
119
|
+
isLoading ? /* @__PURE__ */ jsx(DataListSkeletonRows, { columnCount: splitColumns(columns).length }) : traces.length === 0 ? /* @__PURE__ */ jsx(
|
|
129
120
|
TracesDataList.NoMatch,
|
|
130
121
|
{
|
|
131
122
|
message: filtersApplied ? "No traces found for applied filters" : "No traces found yet"
|