@mastra/playground-ui 60.0.0-alpha.8 → 60.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 +83 -1
- package/dist/Badge-H8K5WrXg.cjs +162 -0
- package/dist/Badge-H8K5WrXg.cjs.map +1 -0
- package/dist/Badge-Q_pCeeGW.js +160 -0
- package/dist/Badge-Q_pCeeGW.js.map +1 -0
- package/dist/Button-BnmR2HRc.cjs +208 -0
- package/dist/Button-BnmR2HRc.cjs.map +1 -0
- package/dist/Button-C6eUqcPI.js +204 -0
- package/dist/Button-C6eUqcPI.js.map +1 -0
- package/dist/Card-BQsKHkyB.cjs +101 -0
- package/dist/Card-BQsKHkyB.cjs.map +1 -0
- package/dist/Card-DVy0QS4m.js +74 -0
- package/dist/Card-DVy0QS4m.js.map +1 -0
- package/dist/CodeDiff.css +14 -0
- package/dist/CommandPalette.css +16 -12
- package/dist/EmptyState-CJ5KC4Db.cjs +49 -0
- package/dist/EmptyState-CJ5KC4Db.cjs.map +1 -0
- package/dist/EmptyState-CynkaZd1.js +47 -0
- package/dist/EmptyState-CynkaZd1.js.map +1 -0
- package/dist/ErrorBoundary-Bb2R5IMR.js +162 -0
- package/dist/ErrorBoundary-Bb2R5IMR.js.map +1 -0
- package/dist/ErrorBoundary-CKrwONAU.cjs +183 -0
- package/dist/ErrorBoundary-CKrwONAU.cjs.map +1 -0
- package/dist/Notice-CEBwitdf.cjs +92 -0
- package/dist/Notice-CEBwitdf.cjs.map +1 -0
- package/dist/Notice-Ce3r5x-7.js +90 -0
- package/dist/Notice-Ce3r5x-7.js.map +1 -0
- package/dist/ProductBadge.css +3 -0
- package/dist/ProductIcon-BtyRYlaH.js +40 -0
- package/dist/ProductIcon-BtyRYlaH.js.map +1 -0
- package/dist/ProductIcon-hkExeSRM.cjs +42 -0
- package/dist/ProductIcon-hkExeSRM.cjs.map +1 -0
- package/dist/PullRequestIcon.css +2 -2
- package/dist/TokenBudget.css +2 -6
- package/dist/activity-8egTNbaI.cjs +241 -0
- package/dist/activity-8egTNbaI.cjs.map +1 -0
- package/dist/activity-Duth8KP_.js +226 -0
- package/dist/activity-Duth8KP_.js.map +1 -0
- package/dist/activity.css +3 -3
- package/dist/alert-dialog-BcOSIOSW.cjs +55 -0
- package/dist/alert-dialog-BcOSIOSW.cjs.map +1 -0
- package/dist/alert-dialog-D1UYVW__.js +53 -0
- package/dist/alert-dialog-D1UYVW__.js.map +1 -0
- package/dist/ansi-Cq_bKF5J.js +11 -0
- package/dist/ansi-Cq_bKF5J.js.map +1 -0
- package/dist/ansi-fAtbeDQN.cjs +14 -0
- package/dist/ansi-fAtbeDQN.cjs.map +1 -0
- package/dist/ask-user-Crg1O-o6.js +206 -0
- package/dist/ask-user-Crg1O-o6.js.map +1 -0
- package/dist/ask-user-DJXmLJzy.cjs +216 -0
- package/dist/ask-user-DJXmLJzy.cjs.map +1 -0
- package/dist/buttons-group.css +4 -14
- package/dist/code-block-C7A4Hv96.cjs +88 -0
- package/dist/code-block-C7A4Hv96.cjs.map +1 -0
- package/dist/code-block-C_pvalBv.js +86 -0
- package/dist/code-block-C_pvalBv.js.map +1 -0
- package/dist/code-editor-BXchPl_F.cjs +495 -0
- package/dist/code-editor-BXchPl_F.cjs.map +1 -0
- package/dist/code-editor-Cltwid7c.js +487 -0
- package/dist/code-editor-Cltwid7c.js.map +1 -0
- package/dist/collapsible-BNUn4644.js +57 -0
- package/dist/collapsible-BNUn4644.js.map +1 -0
- package/dist/collapsible-jfzzU7Gp.cjs +61 -0
- package/dist/collapsible-jfzzU7Gp.cjs.map +1 -0
- package/dist/combobox-B_C0cNid.js +191 -0
- package/dist/combobox-B_C0cNid.js.map +1 -0
- package/dist/combobox-rKV-Lksj.cjs +212 -0
- package/dist/combobox-rKV-Lksj.cjs.map +1 -0
- package/dist/combobox-styles-C4Kq1NFV.cjs +97 -0
- package/dist/combobox-styles-C4Kq1NFV.cjs.map +1 -0
- package/dist/combobox-styles-CLxC7VLA.js +93 -0
- package/dist/combobox-styles-CLxC7VLA.js.map +1 -0
- package/dist/command-C6JnofUJ.js +185 -0
- package/dist/command-C6JnofUJ.js.map +1 -0
- package/dist/command-CpXMoss8.cjs +214 -0
- package/dist/command-CpXMoss8.cjs.map +1 -0
- package/dist/comment-DKWkzdMj.js +202 -0
- package/dist/comment-DKWkzdMj.js.map +1 -0
- package/dist/comment-DWY6D0pZ.cjs +214 -0
- package/dist/comment-DWY6D0pZ.cjs.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Button.cjs.js +3 -12
- package/dist/components/Button.cjs.js.map +1 -1
- package/dist/components/Button.es.js +3 -12
- package/dist/components/Button.es.js.map +1 -1
- package/dist/components/Card.cjs.js +1 -1
- package/dist/components/Card.es.js +1 -1
- package/dist/components/ChatShell.cjs.js +1 -1
- package/dist/components/ChatShell.es.js +1 -1
- package/dist/components/ClampedText.cjs.js +1 -1
- package/dist/components/ClampedText.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeDiff.cjs.js +49 -3
- package/dist/components/CodeDiff.cjs.js.map +1 -1
- package/dist/components/CodeDiff.es.js +51 -1
- package/dist/components/CodeDiff.es.js.map +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Combobox.cjs.js +2 -2
- package/dist/components/Combobox.es.js +2 -2
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +39 -15
- package/dist/components/CommandPalette.cjs.js.map +1 -1
- package/dist/components/CommandPalette.es.js +39 -15
- package/dist/components/CommandPalette.es.js.map +1 -1
- package/dist/components/Comment.cjs.js +6 -5
- package/dist/components/Comment.cjs.js.map +1 -1
- package/dist/components/Comment.es.js +7 -6
- package/dist/components/Comment.es.js.map +1 -1
- package/dist/components/Composer.cjs.js +4 -4
- package/dist/components/Composer.cjs.js.map +1 -1
- package/dist/components/Composer.es.js +4 -4
- package/dist/components/Composer.es.js.map +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +5 -10
- package/dist/components/DataDetailsPanel.cjs.js.map +1 -1
- package/dist/components/DataDetailsPanel.es.js +5 -10
- package/dist/components/DataDetailsPanel.es.js.map +1 -1
- package/dist/components/DataKeysAndValues.cjs.js +1 -1
- package/dist/components/DataKeysAndValues.es.js +1 -1
- package/dist/components/DataList.cjs.js +31 -8
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +31 -8
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateRangeTimeline.cjs.js +5 -3
- package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
- package/dist/components/DateRangeTimeline.es.js +5 -3
- package/dist/components/DateRangeTimeline.es.js.map +1 -1
- package/dist/components/DateTimePicker.cjs.js +3 -3
- package/dist/components/DateTimePicker.es.js +3 -3
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +2 -2
- package/dist/components/Dialog.es.js +2 -2
- package/dist/components/DisabledFeatureButton.cjs.js +1 -1
- package/dist/components/DisabledFeatureButton.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/EmptyState.cjs.js +1 -1
- package/dist/components/EmptyState.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +11 -10
- package/dist/components/EnvironmentVariablesEditor.cjs.js.map +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +11 -10
- package/dist/components/EnvironmentVariablesEditor.es.js.map +1 -1
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FileDropBackdrop.cjs.js +1 -1
- package/dist/components/FileDropBackdrop.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +8 -8
- package/dist/components/FilterBar.cjs.js.map +1 -1
- package/dist/components/FilterBar.es.js +9 -9
- package/dist/components/FilterBar.es.js.map +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +5 -5
- package/dist/components/FormFieldBlocks.es.js +5 -5
- package/dist/components/HorizontalBars.cjs.js +1 -1
- package/dist/components/HorizontalBars.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +3 -3
- package/dist/components/JSONSchemaForm.es.js +3 -3
- package/dist/components/KeyValueList.cjs.js +2 -1
- package/dist/components/KeyValueList.cjs.js.map +1 -1
- package/dist/components/KeyValueList.es.js +2 -1
- package/dist/components/KeyValueList.es.js.map +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +2 -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 +22 -20
- package/dist/components/MainHeader.cjs.js.map +1 -1
- package/dist/components/MainHeader.es.js +22 -20
- package/dist/components/MainHeader.es.js.map +1 -1
- package/dist/components/MainSidebar.cjs.js +125 -11
- package/dist/components/MainSidebar.cjs.js.map +1 -1
- package/dist/components/MainSidebar.es.js +120 -1
- package/dist/components/MainSidebar.es.js.map +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Message.cjs.js +2 -2
- package/dist/components/Message.es.js +3 -3
- package/dist/components/MessageScroller.cjs.js +1 -1
- package/dist/components/MessageScroller.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 +2 -2
- package/dist/components/PageLayout.cjs.js.map +1 -1
- package/dist/components/PageLayout.es.js +2 -2
- package/dist/components/PageLayout.es.js.map +1 -1
- package/dist/components/PrevNextNav.cjs.js +1 -1
- package/dist/components/PrevNextNav.es.js +1 -1
- package/dist/components/ProductAvatar.cjs.js +28 -0
- package/dist/components/ProductAvatar.cjs.js.map +1 -0
- package/dist/components/ProductAvatar.d.ts +2 -0
- package/dist/components/ProductAvatar.es.js +24 -0
- package/dist/components/ProductAvatar.es.js.map +1 -0
- package/dist/components/ProductBadge.cjs.js +25 -0
- package/dist/components/ProductBadge.cjs.js.map +1 -0
- package/dist/components/ProductBadge.d.ts +2 -0
- package/dist/components/ProductBadge.es.js +21 -0
- package/dist/components/ProductBadge.es.js.map +1 -0
- package/dist/components/PropertyFilter.cjs.js +5 -4
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +6 -5
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/PullRequestIcon.cjs.js +2 -2
- package/dist/components/PullRequestIcon.cjs.js.map +1 -1
- package/dist/components/PullRequestIcon.es.js +2 -2
- package/dist/components/PullRequestIcon.es.js.map +1 -1
- package/dist/components/RelativeTimestamp.cjs.js +1 -1
- package/dist/components/RelativeTimestamp.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +5 -4
- package/dist/components/RuleBuilder.cjs.js.map +1 -1
- package/dist/components/RuleBuilder.es.js +5 -4
- package/dist/components/RuleBuilder.es.js.map +1 -1
- package/dist/components/SankeyChart.cjs.js +3 -6
- package/dist/components/SankeyChart.cjs.js.map +1 -1
- package/dist/components/SankeyChart.es.js +1 -2
- package/dist/components/SankeyChart.es.js.map +1 -1
- package/dist/components/ScatterPlotChart.cjs.js +4 -3
- package/dist/components/ScatterPlotChart.cjs.js.map +1 -1
- package/dist/components/ScatterPlotChart.es.js +4 -3
- package/dist/components/ScatterPlotChart.es.js.map +1 -1
- package/dist/components/ScrollArea.cjs.js +2 -1
- package/dist/components/ScrollArea.cjs.js.map +1 -1
- package/dist/components/ScrollArea.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 +14 -25
- package/dist/components/SectionCard.cjs.js.map +1 -1
- package/dist/components/SectionCard.es.js +14 -25
- package/dist/components/SectionCard.es.js.map +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +1 -1
- package/dist/components/SideDialog.es.js +1 -1
- package/dist/components/Slider.cjs.js +1 -1
- package/dist/components/Slider.es.js +1 -1
- package/dist/components/StatusIndicators.cjs.js +12 -23
- package/dist/components/StatusIndicators.cjs.js.map +1 -1
- package/dist/components/StatusIndicators.es.js +12 -23
- package/dist/components/StatusIndicators.es.js.map +1 -1
- package/dist/components/Steps.cjs.js +17 -33
- package/dist/components/Steps.cjs.js.map +1 -1
- package/dist/components/Steps.es.js +17 -33
- package/dist/components/Steps.es.js.map +1 -1
- package/dist/components/Switch.cjs.js +1 -1
- package/dist/components/Switch.es.js +1 -1
- package/dist/components/Table.cjs.js +3 -2
- package/dist/components/Table.cjs.js.map +1 -1
- package/dist/components/Table.es.js +3 -2
- package/dist/components/Table.es.js.map +1 -1
- package/dist/components/Tabs.cjs.js +3 -3
- package/dist/components/Tabs.es.js +3 -3
- package/dist/components/Text.cjs.js +1 -1
- package/dist/components/Text.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 +440 -6
- package/dist/components/ThreadRail.cjs.js.map +1 -1
- package/dist/components/ThreadRail.es.js +418 -3
- package/dist/components/ThreadRail.es.js.map +1 -1
- package/dist/components/TokenBudget.cjs.js +4 -3
- package/dist/components/TokenBudget.cjs.js.map +1 -1
- package/dist/components/TokenBudget.es.js +4 -3
- package/dist/components/TokenBudget.es.js.map +1 -1
- package/dist/components/Tree.cjs.js +2 -2
- package/dist/components/Tree.cjs.js.map +1 -1
- package/dist/components/Tree.es.js +2 -2
- package/dist/components/Tree.es.js.map +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/components/Workflow.cjs.js +6 -6
- package/dist/components/Workflow.es.js +6 -6
- package/dist/components/ai/activity.cjs.js +31 -0
- package/dist/components/ai/activity.cjs.js.map +1 -0
- package/dist/components/ai/activity.d.ts +2 -0
- package/dist/components/ai/activity.es.js +6 -0
- package/dist/components/ai/activity.es.js.map +1 -0
- 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 +17 -19
- package/dist/components/ai/task-list.cjs.js.map +1 -1
- package/dist/components/ai/task-list.es.js +17 -19
- package/dist/components/ai/task-list.es.js.map +1 -1
- package/dist/components/ai/tool-approval.cjs.js +1 -1
- package/dist/components/ai/tool-approval.es.js +1 -1
- package/dist/components/ai/tool-call.cjs.js +15 -23
- package/dist/components/ai/tool-call.cjs.js.map +1 -1
- package/dist/components/ai/tool-call.es.js +6 -4
- package/dist/components/ai/tool-call.es.js.map +1 -1
- package/dist/components/ai/transcript-divider.cjs.js +18 -0
- package/dist/components/ai/transcript-divider.cjs.js.map +1 -0
- package/dist/components/ai/transcript-divider.d.ts +2 -0
- package/dist/components/ai/transcript-divider.es.js +14 -0
- package/dist/components/ai/transcript-divider.es.js.map +1 -0
- package/dist/composer-DyoM0j2m.cjs +156 -0
- package/dist/composer-DyoM0j2m.cjs.map +1 -0
- package/dist/composer-eMyX1lBH.js +148 -0
- package/dist/composer-eMyX1lBH.js.map +1 -0
- package/dist/composer.css +8 -8
- package/dist/copy-button-C6nXDjBz.cjs +38 -0
- package/dist/copy-button-C6nXDjBz.cjs.map +1 -0
- package/dist/copy-button-DbmsTUum.js +36 -0
- package/dist/copy-button-DbmsTUum.js.map +1 -0
- package/dist/data-code-section-Bd2Xnckz.js +188 -0
- package/dist/data-code-section-Bd2Xnckz.js.map +1 -0
- package/dist/data-code-section-D5b6_jcB.cjs +190 -0
- package/dist/data-code-section-D5b6_jcB.cjs.map +1 -0
- package/dist/data-keys-and-values-DiRlIt-N.js +107 -0
- package/dist/data-keys-and-values-DiRlIt-N.js.map +1 -0
- package/dist/data-keys-and-values-DnpdW8zx.cjs +109 -0
- package/dist/data-keys-and-values-DnpdW8zx.cjs.map +1 -0
- package/dist/data-list-D8bACyyK.cjs +126 -0
- package/dist/data-list-D8bACyyK.cjs.map +1 -0
- package/dist/data-list-DL_oFE4j.js +122 -0
- package/dist/data-list-DL_oFE4j.js.map +1 -0
- package/dist/data-list-skeleton-BXPfL0s7.cjs +38 -0
- package/dist/data-list-skeleton-BXPfL0s7.cjs.map +1 -0
- package/dist/data-list-skeleton-Bk9LI0J0.js +36 -0
- package/dist/data-list-skeleton-Bk9LI0J0.js.map +1 -0
- package/dist/data-list-spacer-CE6-4ZQq.js +202 -0
- package/dist/data-list-spacer-CE6-4ZQq.js.map +1 -0
- package/dist/data-list-spacer-_bFe0e2u.cjs +211 -0
- package/dist/data-list-spacer-_bFe0e2u.cjs.map +1 -0
- package/dist/data-list-top-C-pLBax7.cjs +381 -0
- package/dist/data-list-top-C-pLBax7.cjs.map +1 -0
- package/dist/data-list-top-DheFgb0M.js +356 -0
- package/dist/data-list-top-DheFgb0M.js.map +1 -0
- package/dist/data-panel-42fdcagQ.js +251 -0
- package/dist/data-panel-42fdcagQ.js.map +1 -0
- package/dist/data-panel-CjvoI_lx.cjs +271 -0
- package/dist/data-panel-CjvoI_lx.cjs.map +1 -0
- package/dist/date-time-range-picker-BORAuIJM.cjs +181 -0
- package/dist/date-time-range-picker-BORAuIJM.cjs.map +1 -0
- package/dist/date-time-range-picker-C-pSI1u1.js +179 -0
- package/dist/date-time-range-picker-C-pSI1u1.js.map +1 -0
- package/dist/dialog-DYpOpj9s.cjs +215 -0
- package/dist/dialog-DYpOpj9s.cjs.map +1 -0
- package/dist/dialog-action-B3AHq7mU.cjs +189 -0
- package/dist/dialog-action-B3AHq7mU.cjs.map +1 -0
- package/dist/dialog-action-BGmDoI5T.js +187 -0
- package/dist/dialog-action-BGmDoI5T.js.map +1 -0
- package/dist/dialog-cKzR2TXI.js +178 -0
- package/dist/dialog-cKzR2TXI.js.map +1 -0
- package/dist/dialog.css +29 -53
- 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 +2 -2
- package/dist/domains/auth/components/session-expired.es.js +2 -2
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +14 -29
- package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js.map +1 -1
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +14 -29
- package/dist/domains/chat/attachments/attachment-preview-dialog.es.js.map +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
- package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
- package/dist/domains/chat/components/badge-wrapper.cjs.js +9 -15
- package/dist/domains/chat/components/badge-wrapper.cjs.js.map +1 -1
- package/dist/domains/chat/components/badge-wrapper.es.js +9 -15
- 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/context/dataset-save-context-value.cjs.js +14 -0
- package/dist/domains/chat/context/dataset-save-context-value.cjs.js.map +1 -0
- package/dist/domains/chat/context/dataset-save-context-value.d.ts +2 -0
- package/dist/domains/chat/context/dataset-save-context-value.es.js +9 -0
- package/dist/domains/chat/context/dataset-save-context-value.es.js.map +1 -0
- package/dist/domains/chat/context/dataset-save-context.cjs.js +2 -7
- package/dist/domains/chat/context/dataset-save-context.cjs.js.map +1 -1
- package/dist/domains/chat/context/dataset-save-context.es.js +2 -6
- package/dist/domains/chat/context/dataset-save-context.es.js.map +1 -1
- package/dist/domains/chat/messages/assistant-message-actions.cjs.js +3 -3
- package/dist/domains/chat/messages/assistant-message-actions.es.js +3 -3
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +14 -23
- package/dist/domains/chat/messages/dataset-save-action.cjs.js.map +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +12 -21
- package/dist/domains/chat/messages/dataset-save-action.es.js.map +1 -1
- package/dist/domains/chat/messages/message-row.cjs.js +25 -8
- package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
- package/dist/domains/chat/messages/message-row.es.js +25 -8
- package/dist/domains/chat/messages/message-row.es.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +2 -3
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +2 -3
- package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-content.cjs.js +8 -5
- package/dist/domains/chat/messages/reasoning-content.cjs.js.map +1 -1
- package/dist/domains/chat/messages/reasoning-content.es.js +8 -5
- package/dist/domains/chat/messages/reasoning-content.es.js.map +1 -1
- package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
- package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +2 -2
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +2 -2
- package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js.map +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/renderers/user-text-part-renderer.cjs.js +6 -0
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js +6 -0
- package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.cjs.js +5 -8
- package/dist/domains/chat/messages/signal-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/signal-badge.es.js +5 -8
- package/dist/domains/chat/messages/signal-badge.es.js.map +1 -1
- package/dist/domains/chat/messages/skill-activation.cjs.js +29 -0
- package/dist/domains/chat/messages/skill-activation.cjs.js.map +1 -0
- package/dist/domains/chat/messages/skill-activation.d.ts +2 -0
- package/dist/domains/chat/messages/skill-activation.es.js +25 -0
- package/dist/domains/chat/messages/skill-activation.es.js.map +1 -0
- package/dist/domains/chat/messages/skill-message.cjs.js +33 -0
- package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -0
- package/dist/domains/chat/messages/skill-message.d.ts +2 -0
- package/dist/domains/chat/messages/skill-message.es.js +29 -0
- package/dist/domains/chat/messages/skill-message.es.js.map +1 -0
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js +10 -22
- package/dist/domains/chat/messages/system-reminder-badge.cjs.js.map +1 -1
- package/dist/domains/chat/messages/system-reminder-badge.es.js +12 -24
- package/dist/domains/chat/messages/system-reminder-badge.es.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.cjs.js +4 -4
- package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/tripwire-notice.es.js +4 -4
- 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 +5 -4
- package/dist/domains/chat/tools/badges/agent-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/agent-badge.es.js +5 -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 +10 -0
- package/dist/domains/chat/tools/badges/awaits-tool-approval.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/awaits-tool-approval.d.ts +2 -0
- package/dist/domains/chat/tools/badges/awaits-tool-approval.es.js +6 -0
- package/dist/domains/chat/tools/badges/awaits-tool-approval.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +4 -4
- 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 +4 -4
- 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 +5 -5
- 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 +5 -5
- 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 +66 -120
- 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 +68 -122
- 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 +128 -493
- package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +131 -496
- package/dist/domains/chat/tools/badges/observation-marker-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +70 -0
- package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-marker-details.d.ts +2 -0
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js +64 -0
- package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-marker-format.cjs.js +29 -0
- package/dist/domains/chat/tools/badges/observation-marker-format.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-marker-format.d.ts +2 -0
- package/dist/domains/chat/tools/badges/observation-marker-format.es.js +22 -0
- package/dist/domains/chat/tools/badges/observation-marker-format.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +6 -20
- package/dist/domains/chat/tools/badges/observation-renderer.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/observation-renderer.es.js +6 -20
- package/dist/domains/chat/tools/badges/observation-renderer.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +89 -163
- 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 +91 -165
- package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +16 -17
- package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +16 -17
- package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js +15 -11
- package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/tool-badge.es.js +14 -10
- package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +13 -11
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +12 -10
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js +28 -0
- package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/workspace-data-parts.d.ts +2 -0
- package/dist/domains/chat/tools/badges/workspace-data-parts.es.js +22 -0
- package/dist/domains/chat/tools/badges/workspace-data-parts.es.js.map +1 -0
- package/dist/domains/chat/tools/badges/workspace-link.cjs.js +25 -0
- package/dist/domains/chat/tools/badges/workspace-link.cjs.js.map +1 -0
- package/dist/domains/chat/tools/badges/workspace-link.d.ts +2 -0
- package/dist/domains/chat/tools/badges/workspace-link.es.js +21 -0
- package/dist/domains/chat/tools/badges/workspace-link.es.js.map +1 -0
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js +123 -35
- package/dist/domains/chat/tools/submit-plan-tool.cjs.js.map +1 -1
- package/dist/domains/chat/tools/submit-plan-tool.es.js +124 -36
- package/dist/domains/chat/tools/submit-plan-tool.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js +1 -1
- package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
- package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
- package/dist/domains/chat/tools/tool-card.es.js +1 -1
- package/dist/domains/chat.cjs.js +2 -1
- package/dist/domains/chat.cjs.js.map +1 -1
- package/dist/domains/chat.es.js +2 -1
- package/dist/domains/chat.es.js.map +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +5 -5
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +5 -5
- package/dist/domains/logs/components/log-data-panel.cjs.js +7 -6
- package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +7 -6
- package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
- 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/logs-toolbar.cjs.js +1 -1
- package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
- package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
- package/dist/domains/logs/components/no-logs-info.es.js +2 -2
- package/dist/domains/memory/components/flame-graph.cjs.js +13 -21
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
- package/dist/domains/memory/components/flame-graph.es.js +13 -21
- 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 +27 -53
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +27 -53
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
- package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
- package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
- package/dist/domains/memory/lib/observation-priority.cjs.js +40 -0
- package/dist/domains/memory/lib/observation-priority.cjs.js.map +1 -0
- package/dist/domains/memory/lib/observation-priority.d.ts +2 -0
- package/dist/domains/memory/lib/observation-priority.es.js +35 -0
- package/dist/domains/memory/lib/observation-priority.es.js.map +1 -0
- package/dist/domains/metrics/components/bar-list.cjs.js +26 -9
- package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -1
- package/dist/domains/metrics/components/bar-list.es.js +26 -9
- package/dist/domains/metrics/components/bar-list.es.js.map +1 -1
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
- package/dist/domains/metrics/components/card-action-buttons.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 +6 -6
- package/dist/domains/metrics/components/latency-card-view.es.js +6 -6
- package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
- 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 +6 -6
- package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +6 -6
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +6 -6
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
- 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/request-context/components/request-context-label.cjs.js +1 -5
- package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
- package/dist/domains/request-context/components/request-context-label.es.js +2 -6
- package/dist/domains/request-context/components/request-context-label.es.js.map +1 -1
- package/dist/domains/review/components/review-status-badge.cjs.js +3 -3
- package/dist/domains/review/components/review-status-badge.cjs.js.map +1 -1
- package/dist/domains/review/components/review-status-badge.es.js +3 -3
- package/dist/domains/review/components/review-status-badge.es.js.map +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 +5 -5
- package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +5 -5
- package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
- package/dist/domains/scores/components/span-scoring.cjs.js +5 -5
- package/dist/domains/scores/components/span-scoring.es.js +5 -5
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +9 -9
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +9 -9
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
- package/dist/domains/traces/components/feedback-thread.es.js +4 -4
- package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +69 -4
- package/dist/domains/traces/components/format-trace-thread-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/format-trace-thread-messages.es.js +69 -4
- package/dist/domains/traces/components/format-trace-thread-messages.es.js.map +1 -1
- package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
- package/dist/domains/traces/components/no-traces-info.es.js +1 -1
- package/dist/domains/traces/components/shared.cjs.js +11 -11
- package/dist/domains/traces/components/shared.cjs.js.map +1 -1
- package/dist/domains/traces/components/shared.es.js +11 -11
- package/dist/domains/traces/components/shared.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +7 -7
- package/dist/domains/traces/components/span-data-panel-view.es.js +7 -7
- package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-details-view.es.js +1 -1
- package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +6 -6
- 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 +6 -6
- package/dist/domains/traces/components/span-payload/span-output-renderers.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +4 -4
- package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +4 -4
- package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
- package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
- package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +3 -3
- package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +3 -3
- 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 +3 -2
- package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-timeline-row.es.js +3 -2
- package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
- package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
- package/dist/domains/traces/components/span-token-usage.cjs.js +9 -8
- package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-token-usage.es.js +9 -8
- package/dist/domains/traces/components/span-token-usage.es.js.map +1 -1
- package/dist/domains/traces/components/span-type-legend.cjs.js +2 -2
- package/dist/domains/traces/components/span-type-legend.cjs.js.map +1 -1
- package/dist/domains/traces/components/span-type-legend.es.js +2 -2
- package/dist/domains/traces/components/span-type-legend.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +10 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +10 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +6 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +6 -6
- package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-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.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
- package/dist/domains/traces/components/thread-trace.cjs.js +0 -2
- package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-trace.es.js +0 -2
- package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js +5 -16
- package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-by-trace.es.js +5 -16
- package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
- package/dist/domains/traces/components/thread-view-skeleton.cjs.js +2 -2
- package/dist/domains/traces/components/thread-view-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/thread-view-skeleton.es.js +2 -2
- package/dist/domains/traces/components/thread-view-skeleton.es.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.cjs.js +5 -3
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
- package/dist/domains/traces/components/timeline-name-col.es.js +5 -3
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +9 -7
- package/dist/domains/traces/components/trace-columns-menu.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +10 -8
- package/dist/domains/traces/components/trace-columns-menu.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +6 -6
- package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
- package/dist/domains/traces/components/trace-data-panel.cjs.js +3 -4
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +3 -4
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +5 -5
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +5 -5
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-status-value.cjs.js +2 -2
- package/dist/domains/traces/components/trace-status-value.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-status-value.es.js +2 -2
- package/dist/domains/traces/components/trace-status-value.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js +2 -2
- package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-item-view.es.js +2 -2
- package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
- 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-mode-toggle.cjs.js +1 -1
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +5 -4
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +5 -4
- 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/trace-filters.cjs.js +30 -31
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
- package/dist/domains/traces/trace-filters.es.js +31 -32
- package/dist/domains/traces/trace-filters.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 +4 -2
- package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-entity-header.es.js +4 -2
- package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.cjs.js +4 -5
- package/dist/domains/workflows/components/workflow-information.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-information.es.js +4 -5
- package/dist/domains/workflows/components/workflow-information.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-layout.cjs.js +1 -1
- package/dist/domains/workflows/components/workflow-layout.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-layout.es.js +1 -1
- package/dist/domains/workflows/components/workflow-layout.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +9 -7
- package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js.map +1 -1
- package/dist/domains/workflows/components/workflow-run-status-icon.es.js +9 -7
- package/dist/domains/workflows/components/workflow-run-status-icon.es.js.map +1 -1
- package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
- package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +30 -19
- 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 +30 -19
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js +9 -8
- package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
- package/dist/domains/workflows/runs/workflow-run-list.es.js +9 -8
- package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
- package/dist/domains/workflows/utils/nested-workflows.cjs.js +1 -1
- package/dist/domains/workflows/utils/nested-workflows.cjs.js.map +1 -1
- package/dist/domains/workflows/utils/nested-workflows.es.js +1 -1
- package/dist/domains/workflows/utils/nested-workflows.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 +5 -5
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +5 -5
- package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +3 -3
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +3 -3
- 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/utils.cjs.js +1 -1
- package/dist/domains/workflows/workflow/utils.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/utils.es.js +1 -1
- package/dist/domains/workflows/workflow/utils.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
- 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-mode-switch.cjs.js +3 -2
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +3 -2
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js.map +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 +8 -7
- package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +8 -7
- 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 +2 -3
- package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -3
- package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +8 -11
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +8 -11
- package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +4 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +4 -3
- package/dist/domains/workflows/workflow/workflow-nested-graph.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +5 -5
- package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -5
- 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 +25 -12
- package/dist/domains/workflows/workflow/workflow-run-header.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-run-header.es.js +25 -12
- package/dist/domains/workflows/workflow/workflow-run-header.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-status.cjs.js +10 -7
- package/dist/domains/workflows/workflow/workflow-status.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-status.es.js +10 -7
- package/dist/domains/workflows/workflow/workflow-status.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +36 -55
- package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +36 -55
- package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +5 -5
- package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +5 -5
- package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +4 -4
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +4 -4
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +25 -21
- package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +25 -21
- package/dist/domains/workflows/workflow/workflow-timeline-row.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +4 -3
- package/dist/domains/workflows/workflow/workflow-timeline.cjs.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-timeline.es.js +4 -3
- package/dist/domains/workflows/workflow/workflow-timeline.es.js.map +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
- package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
- package/dist/domains/workflows/workflow-status-tone.cjs.js +35 -0
- package/dist/domains/workflows/workflow-status-tone.cjs.js.map +1 -0
- package/dist/domains/workflows/workflow-status-tone.d.ts +2 -0
- package/dist/domains/workflows/workflow-status-tone.es.js +29 -0
- package/dist/domains/workflows/workflow-status-tone.es.js.map +1 -0
- package/dist/drawer-DXf50w71.js +327 -0
- package/dist/drawer-DXf50w71.js.map +1 -0
- package/dist/drawer-d81cZiSV.cjs +365 -0
- package/dist/drawer-d81cZiSV.cjs.map +1 -0
- package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +6 -5
- 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 +6 -5
- package/dist/ee/signals/components/entity-index-compact-grid.es.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js +3 -5
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +3 -5
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.cjs.js +46 -48
- package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
- package/dist/ee/signals/components/signals-empty-state.es.js +47 -49
- 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 +5 -6
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +5 -6
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/examples-pager.cjs.js +3 -2
- package/dist/ee/signals/examples-pager.cjs.js.map +1 -1
- package/dist/ee/signals/examples-pager.es.js +3 -2
- package/dist/ee/signals/examples-pager.es.js.map +1 -1
- package/dist/ee/signals/flow-card.cjs.js +10 -5
- package/dist/ee/signals/flow-card.cjs.js.map +1 -1
- package/dist/ee/signals/flow-card.es.js +11 -6
- package/dist/ee/signals/flow-card.es.js.map +1 -1
- package/dist/ee/signals/lifeline-point.cjs.js +7 -2
- package/dist/ee/signals/lifeline-point.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-point.es.js +7 -2
- package/dist/ee/signals/lifeline-point.es.js.map +1 -1
- package/dist/ee/signals/lifeline-row.cjs.js +10 -13
- package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
- package/dist/ee/signals/lifeline-row.es.js +10 -13
- package/dist/ee/signals/lifeline-row.es.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.cjs.js +21 -12
- package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/noise-detail-panel.es.js +21 -12
- package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/sankey-signals.cjs.js +5 -4
- package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
- package/dist/ee/signals/sankey-signals.es.js +5 -4
- package/dist/ee/signals/sankey-signals.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +10 -21
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +10 -21
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js +12 -11
- package/dist/ee/signals/settings/trace-signal-settings.cjs.js.map +1 -1
- package/dist/ee/signals/settings/trace-signal-settings.es.js +12 -11
- package/dist/ee/signals/settings/trace-signal-settings.es.js.map +1 -1
- package/dist/ee/signals/signal-colors.cjs.js +36 -32
- package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
- package/dist/ee/signals/signal-colors.es.js +34 -31
- package/dist/ee/signals/signal-colors.es.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.cjs.js +11 -8
- package/dist/ee/signals/signal-delta-column.cjs.js.map +1 -1
- package/dist/ee/signals/signal-delta-column.es.js +12 -9
- package/dist/ee/signals/signal-delta-column.es.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.cjs.js +4 -5
- package/dist/ee/signals/signal-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/signal-lifelines.es.js +5 -6
- package/dist/ee/signals/signal-lifelines.es.js.map +1 -1
- package/dist/ee/signals/signals-error-state.cjs.js +5 -4
- package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
- package/dist/ee/signals/signals-error-state.es.js +5 -4
- package/dist/ee/signals/signals-error-state.es.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.cjs.js +12 -7
- package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
- package/dist/ee/signals/snapshot-timeline.es.js +12 -7
- package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.cjs.js +1 -2
- package/dist/ee/signals/sortable-signal-headers.cjs.js.map +1 -1
- package/dist/ee/signals/sortable-signal-headers.es.js +2 -3
- package/dist/ee/signals/sortable-signal-headers.es.js.map +1 -1
- package/dist/ee/signals/theme-compare-sparkline.cjs.js +1 -1
- package/dist/ee/signals/theme-compare-sparkline.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare-sparkline.es.js +1 -1
- package/dist/ee/signals/theme-compare-sparkline.es.js.map +1 -1
- package/dist/ee/signals/theme-compare.cjs.js +24 -5
- package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
- package/dist/ee/signals/theme-compare.es.js +24 -5
- package/dist/ee/signals/theme-compare.es.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.cjs.js +39 -30
- package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
- package/dist/ee/signals/theme-detail-panel.es.js +40 -31
- package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.cjs.js +9 -7
- package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
- package/dist/ee/signals/theme-filter-banner.es.js +10 -8
- package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.cjs.js +2 -1
- package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
- package/dist/ee/signals/theme-lifelines.es.js +2 -1
- package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.cjs.js +5 -5
- package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
- package/dist/ee/signals/theme-trend-chart.es.js +5 -5
- package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.cjs.js +29 -16
- package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
- package/dist/ee/signals/trace-insight-view.es.js +29 -16
- package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +7 -4
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +8 -5
- package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
- package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
- package/dist/ee/signals/view-mode-tab.es.js +1 -1
- package/dist/ee/signals.cjs.js +3 -2
- package/dist/ee/signals.cjs.js.map +1 -1
- package/dist/ee/signals.es.js +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
- package/dist/ee/topics/utils.cjs.js +3 -10
- package/dist/ee/topics/utils.cjs.js.map +1 -1
- package/dist/ee/topics/utils.es.js +3 -10
- package/dist/ee/topics/utils.es.js.map +1 -1
- package/dist/field-block-BIDi9Bvc.cjs +88 -0
- package/dist/field-block-BIDi9Bvc.cjs.map +1 -0
- package/dist/field-block-DpejZ6U6.js +86 -0
- package/dist/field-block-DpejZ6U6.js.map +1 -0
- package/dist/field-block-error-msg-B6-wnlAz.cjs +26 -0
- package/dist/field-block-error-msg-B6-wnlAz.cjs.map +1 -0
- package/dist/field-block-error-msg-edlaudVx.js +24 -0
- package/dist/field-block-error-msg-edlaudVx.js.map +1 -0
- package/dist/filter-bar-chip-BNPOrSrD.js +1211 -0
- package/dist/filter-bar-chip-BNPOrSrD.js.map +1 -0
- package/dist/filter-bar-chip-D4CSm9KP.cjs +1233 -0
- package/dist/filter-bar-chip-D4CSm9KP.cjs.map +1 -0
- package/dist/filter-bar-chip.css +1 -6
- package/dist/horizontal-bars-BSRESJsp.js +158 -0
- package/dist/horizontal-bars-BSRESJsp.js.map +1 -0
- package/dist/horizontal-bars-DRD7JkHL.cjs +160 -0
- package/dist/horizontal-bars-DRD7JkHL.cjs.map +1 -0
- package/dist/input-group-B8bnoDrA.js +196 -0
- package/dist/input-group-B8bnoDrA.js.map +1 -0
- package/dist/input-group-I8YVM_Ps.cjs +222 -0
- package/dist/input-group-I8YVM_Ps.cjs.map +1 -0
- package/dist/layout/tabbed-container.cjs.js +8 -7
- package/dist/layout/tabbed-container.cjs.js.map +1 -1
- package/dist/layout/tabbed-container.es.js +8 -7
- package/dist/layout/tabbed-container.es.js.map +1 -1
- package/dist/lib/form/components/array-element-wrapper.cjs.js +5 -4
- package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/array-element-wrapper.es.js +5 -4
- package/dist/lib/form/components/array-element-wrapper.es.js.map +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/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/lib/form/components/date-field.cjs.js +3 -3
- package/dist/lib/form/components/date-field.cjs.js.map +1 -1
- package/dist/lib/form/components/date-field.es.js +3 -3
- package/dist/lib/form/components/date-field.es.js.map +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/field-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/field-wrapper.es.js +1 -1
- package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
- package/dist/lib/form/components/form-submit-row.es.js +1 -1
- package/dist/lib/form/components/number-field.cjs.js +1 -1
- package/dist/lib/form/components/number-field.cjs.js.map +1 -1
- package/dist/lib/form/components/number-field.es.js +1 -1
- package/dist/lib/form/components/number-field.es.js.map +1 -1
- package/dist/lib/form/components/object-wrapper.cjs.js +3 -2
- package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -1
- package/dist/lib/form/components/object-wrapper.es.js +3 -2
- package/dist/lib/form/components/object-wrapper.es.js.map +1 -1
- package/dist/lib/form/components/record-field.cjs.js +1 -1
- package/dist/lib/form/components/record-field.es.js +1 -1
- package/dist/lib/form/components/select-field.cjs.js +2 -2
- package/dist/lib/form/components/select-field.cjs.js.map +1 -1
- package/dist/lib/form/components/select-field.es.js +2 -2
- package/dist/lib/form/components/select-field.es.js.map +1 -1
- package/dist/lib/form/components/submit-button.cjs.js +1 -1
- package/dist/lib/form/components/submit-button.es.js +1 -1
- package/dist/lib/framework.cjs.js.map +1 -1
- package/dist/lib/framework.es.js.map +1 -1
- package/dist/list-search-9l8IEdxZ.js +69 -0
- package/dist/list-search-9l8IEdxZ.js.map +1 -0
- package/dist/list-search-DXb7HFX8.cjs +71 -0
- package/dist/list-search-DXb7HFX8.cjs.map +1 -0
- package/dist/logs-data-list-C77r2FOj.js +82 -0
- package/dist/logs-data-list-C77r2FOj.js.map +1 -0
- package/dist/logs-data-list-CEFyG1Xb.cjs +84 -0
- package/dist/logs-data-list-CEFyG1Xb.cjs.map +1 -0
- package/dist/main-sidebar-link-active-1_ktyA8Q.js +777 -0
- package/dist/main-sidebar-link-active-1_ktyA8Q.js.map +1 -0
- package/dist/main-sidebar-link-active-BNko0jHZ.cjs +794 -0
- package/dist/main-sidebar-link-active-BNko0jHZ.cjs.map +1 -0
- package/dist/markdown-renderer-Bl0V7FCo.js +407 -0
- package/dist/markdown-renderer-Bl0V7FCo.js.map +1 -0
- package/dist/markdown-renderer-CSwjfPaf.cjs +409 -0
- package/dist/markdown-renderer-CSwjfPaf.cjs.map +1 -0
- package/dist/markdown-renderer.css +3 -3
- package/dist/merge-refs-BLbKe138.cjs +20 -0
- package/dist/merge-refs-BLbKe138.cjs.map +1 -0
- package/dist/merge-refs-DA1xt2OQ.js +18 -0
- package/dist/merge-refs-DA1xt2OQ.js.map +1 -0
- package/dist/message-C1c5oZE7.cjs +67 -0
- package/dist/message-C1c5oZE7.cjs.map +1 -0
- package/dist/message-C7hocqft.js +63 -0
- package/dist/message-C7hocqft.js.map +1 -0
- package/dist/message-copy-button-ClJBX9qx.cjs +11 -0
- package/dist/message-copy-button-ClJBX9qx.cjs.map +1 -0
- package/dist/message-copy-button-DP3U-xA-.js +9 -0
- package/dist/message-copy-button-DP3U-xA-.js.map +1 -0
- package/dist/message-preview-4Fmotm9o.cjs +14 -0
- package/dist/message-preview-4Fmotm9o.cjs.map +1 -0
- package/dist/message-preview-BnmthmiK.js +11 -0
- package/dist/message-preview-BnmthmiK.js.map +1 -0
- package/dist/message-scroller-CiFr8MwT.js +825 -0
- package/dist/message-scroller-CiFr8MwT.js.map +1 -0
- package/dist/message-scroller-E05PLPmT.cjs +851 -0
- package/dist/message-scroller-E05PLPmT.cjs.map +1 -0
- package/dist/message-scroller-context-BF1Qo4vC.js +23 -0
- package/dist/message-scroller-context-BF1Qo4vC.js.map +1 -0
- package/dist/message-scroller-hooks-BEeE1WE6.js +46 -0
- package/dist/message-scroller-hooks-BEeE1WE6.js.map +1 -0
- package/dist/metrics-card-CloSmyRQ.js +94 -0
- package/dist/metrics-card-CloSmyRQ.js.map +1 -0
- package/dist/metrics-card-HmQJHDNa.cjs +96 -0
- package/dist/metrics-card-HmQJHDNa.cjs.map +1 -0
- package/dist/metrics-kpi-card-CW24YjZp.cjs +107 -0
- package/dist/metrics-kpi-card-CW24YjZp.cjs.map +1 -0
- package/dist/metrics-kpi-card-DLDT28IB.js +105 -0
- package/dist/metrics-kpi-card-DLDT28IB.js.map +1 -0
- package/dist/metrics-line-chart-C3UMBQ38.js +102 -0
- package/dist/metrics-line-chart-C3UMBQ38.js.map +1 -0
- package/dist/metrics-line-chart-CjJxBbM-.cjs +104 -0
- package/dist/metrics-line-chart-CjJxBbM-.cjs.map +1 -0
- package/dist/metrics-line-chart-tooltip-DiXCgpik.cjs +54 -0
- package/dist/metrics-line-chart-tooltip-DiXCgpik.cjs.map +1 -0
- package/dist/metrics-line-chart-tooltip-mZXPH1yH.js +51 -0
- package/dist/metrics-line-chart-tooltip-mZXPH1yH.js.map +1 -0
- package/dist/new/layout/app-shell.cjs.js +3 -2
- package/dist/new/layout/app-shell.cjs.js.map +1 -1
- package/dist/new/layout/app-shell.es.js +3 -2
- package/dist/new/layout/app-shell.es.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/new/sidebar.cjs.js +129 -74
- package/dist/new/sidebar.cjs.js.map +1 -1
- package/dist/new/sidebar.es.js +103 -48
- package/dist/new/sidebar.es.js.map +1 -1
- package/dist/notification-activity-B1_2BPe_.js +72 -0
- package/dist/notification-activity-B1_2BPe_.js.map +1 -0
- package/dist/notification-activity-BAn2fhYd.cjs +74 -0
- package/dist/notification-activity-BAn2fhYd.cjs.map +1 -0
- package/dist/page-header-C1WiOrTE.cjs +142 -0
- package/dist/page-header-C1WiOrTE.cjs.map +1 -0
- package/dist/page-header-DIS8V2TK.js +140 -0
- package/dist/page-header-DIS8V2TK.js.map +1 -0
- package/dist/page-header.css +19 -0
- package/dist/plan-DJfH1c_u.js +189 -0
- package/dist/plan-DJfH1c_u.js.map +1 -0
- package/dist/plan-ZKAT5frg.cjs +206 -0
- package/dist/plan-ZKAT5frg.cjs.map +1 -0
- package/dist/primitives/form-element.cjs.js +6 -5
- package/dist/primitives/form-element.cjs.js.map +1 -1
- package/dist/primitives/form-element.es.js +6 -6
- package/dist/primitives/form-element.es.js.map +1 -1
- package/dist/primitives/menu-item.cjs.js +3 -3
- package/dist/primitives/menu-item.cjs.js.map +1 -1
- package/dist/primitives/menu-item.es.js +3 -3
- package/dist/primitives/menu-item.es.js.map +1 -1
- package/dist/primitives/raised-surface.cjs.js +3 -3
- package/dist/primitives/raised-surface.cjs.js.map +1 -1
- package/dist/primitives/raised-surface.es.js +3 -3
- package/dist/primitives/raised-surface.es.js.map +1 -1
- package/dist/primitives/selection-control.cjs.js +2 -2
- package/dist/primitives/selection-control.cjs.js.map +1 -1
- package/dist/primitives/selection-control.es.js +3 -3
- package/dist/primitives/selection-control.es.js.map +1 -1
- package/dist/primitives/transitions.cjs.js +6 -8
- package/dist/primitives/transitions.cjs.js.map +1 -1
- package/dist/primitives/transitions.es.js +5 -9
- package/dist/primitives/transitions.es.js.map +1 -1
- package/dist/primitives/trigger-button.cjs.js +1 -1
- package/dist/primitives/trigger-button.es.js +1 -1
- package/dist/product-identity-CAQoXS5p.cjs +31 -0
- package/dist/product-identity-CAQoXS5p.cjs.map +1 -0
- package/dist/product-identity-DwNTealD.js +27 -0
- package/dist/product-identity-DwNTealD.js.map +1 -0
- package/dist/property-filter-applied-D0F0BYMY.cjs +341 -0
- package/dist/property-filter-applied-D0F0BYMY.cjs.map +1 -0
- package/dist/property-filter-applied-k0TOa9hf.js +337 -0
- package/dist/property-filter-applied-k0TOa9hf.js.map +1 -0
- package/dist/reasoning-activity-CO0Ab1Za.cjs +34 -0
- package/dist/reasoning-activity-CO0Ab1Za.cjs.map +1 -0
- package/dist/reasoning-activity-D3oCzL58.js +32 -0
- package/dist/reasoning-activity-D3oCzL58.js.map +1 -0
- package/dist/reasoning-visibility-B9rA0AIj.js +6 -0
- package/dist/reasoning-visibility-B9rA0AIj.js.map +1 -0
- package/dist/reasoning-visibility-DXho4jGC.cjs +8 -0
- package/dist/reasoning-visibility-DXho4jGC.cjs.map +1 -0
- package/dist/relative-timestamp-D-IvjsVb.cjs +120 -0
- package/dist/relative-timestamp-D-IvjsVb.cjs.map +1 -0
- package/dist/relative-timestamp-wERh5vUE.js +118 -0
- package/dist/relative-timestamp-wERh5vUE.js.map +1 -0
- package/dist/resize/panel-drawer.cjs.js +1 -1
- package/dist/resize/panel-drawer.es.js +1 -1
- package/dist/resize/panel-icon-button.cjs.js +1 -1
- package/dist/resize/panel-icon-button.cjs.js.map +1 -1
- package/dist/resize/panel-icon-button.es.js +1 -1
- package/dist/resize/panel-icon-button.es.js.map +1 -1
- package/dist/resize/separator.cjs.js +3 -3
- package/dist/resize/separator.cjs.js.map +1 -1
- package/dist/resize/separator.es.js +3 -3
- package/dist/resize/separator.es.js.map +1 -1
- package/dist/sankey-chart-D-xMiO2u.js +938 -0
- package/dist/sankey-chart-D-xMiO2u.js.map +1 -0
- package/dist/sankey-chart-S7iF7d0E.cjs +950 -0
- package/dist/sankey-chart-S7iF7d0E.cjs.map +1 -0
- package/dist/scroll-area-CEuf7Omb.cjs +264 -0
- package/dist/scroll-area-CEuf7Omb.cjs.map +1 -0
- package/dist/scroll-area-Ds-fJn5M.js +241 -0
- package/dist/scroll-area-Ds-fJn5M.js.map +1 -0
- package/dist/search-field-block-B1eqMV8x.cjs +127 -0
- package/dist/search-field-block-B1eqMV8x.cjs.map +1 -0
- package/dist/search-field-block-Cj9lJsYi.js +125 -0
- package/dist/search-field-block-Cj9lJsYi.js.map +1 -0
- package/dist/section-B5g_0tUo.js +113 -0
- package/dist/section-B5g_0tUo.js.map +1 -0
- package/dist/section-Bbp-NIR9.cjs +117 -0
- package/dist/section-Bbp-NIR9.cjs.map +1 -0
- package/dist/select-C0ZGSJYa.cjs +164 -0
- package/dist/select-C0ZGSJYa.cjs.map +1 -0
- package/dist/select-ch8imm15.js +138 -0
- package/dist/select-ch8imm15.js.map +1 -0
- package/dist/select-field-block-Dy_N3tWv.cjs +61 -0
- package/dist/select-field-block-Dy_N3tWv.cjs.map +1 -0
- package/dist/select-field-block-_ZUzUs7l.js +59 -0
- package/dist/select-field-block-_ZUzUs7l.js.map +1 -0
- package/dist/settings-row-2hq9Ww8Z.js +124 -0
- package/dist/settings-row-2hq9Ww8Z.js.map +1 -0
- package/dist/settings-row-BMRADph-.cjs +129 -0
- package/dist/settings-row-BMRADph-.cjs.map +1 -0
- package/dist/shimmer.css +1 -1
- package/dist/side-dialog-7P9aEC4v.cjs +294 -0
- package/dist/side-dialog-7P9aEC4v.cjs.map +1 -0
- package/dist/side-dialog-D2O3Y7GB.js +274 -0
- package/dist/side-dialog-D2O3Y7GB.js.map +1 -0
- package/dist/sidebar.css +7 -0
- package/dist/signal-activity-1REUU8T_.js +44 -0
- package/dist/signal-activity-1REUU8T_.js.map +1 -0
- package/dist/signal-activity-4OJb4kp6.cjs +46 -0
- package/dist/signal-activity-4OJb4kp6.cjs.map +1 -0
- package/dist/slider-D9dd_fVN.js +95 -0
- package/dist/slider-D9dd_fVN.js.map +1 -0
- package/dist/slider-T_BIZUV0.cjs +97 -0
- package/dist/slider-T_BIZUV0.cjs.map +1 -0
- package/dist/span-payload-primitives-CEflnpwW.js +70 -0
- package/dist/span-payload-primitives-CEflnpwW.js.map +1 -0
- package/dist/span-payload-primitives-CbXrqcs-.cjs +77 -0
- package/dist/span-payload-primitives-CbXrqcs-.cjs.map +1 -0
- package/dist/src/domains/capabilities/hooks/use-observability-capabilities.d.ts +1 -0
- package/dist/src/domains/chat/components/badge-wrapper.d.ts +3 -3
- package/dist/src/domains/chat/context/dataset-save-context-value.d.ts +12 -0
- package/dist/src/domains/chat/context/dataset-save-context.d.ts +3 -12
- package/dist/src/domains/chat/index.d.ts +2 -0
- package/dist/src/domains/chat/messages/reasoning-content.d.ts +2 -2
- package/dist/src/domains/chat/messages/skill-activation.d.ts +8 -0
- package/dist/src/domains/chat/messages/skill-message.d.ts +4 -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 -4
- package/dist/src/domains/chat/tools/badges/awaits-tool-approval.d.ts +4 -0
- package/dist/src/domains/chat/tools/badges/file-tree-badge.d.ts +4 -2
- package/dist/src/domains/chat/tools/badges/observation-marker-badge.d.ts +4 -13
- package/dist/src/domains/chat/tools/badges/observation-marker-details.d.ts +22 -0
- package/dist/src/domains/chat/tools/badges/observation-marker-format.d.ts +4 -0
- package/dist/src/domains/chat/tools/badges/sandbox-execution-badge.d.ts +4 -2
- package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +2 -2
- package/dist/src/domains/chat/tools/badges/workspace-data-parts.d.ts +20 -0
- package/dist/src/domains/chat/tools/badges/workspace-link.d.ts +7 -0
- package/dist/src/domains/chat/tools/submit-plan-tool.d.ts +2 -1
- package/dist/src/domains/chat/tools/tool-card-kind.d.ts +2 -2
- package/dist/src/domains/memory/lib/observation-priority.d.ts +33 -0
- package/dist/src/domains/traces/components/thread-trace/index.d.ts +0 -4
- package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +1 -1
- package/dist/src/domains/workflows/components/workflow-layout.d.ts +1 -1
- package/dist/src/domains/workflows/utils/nested-workflows.d.ts +3 -3
- package/dist/src/domains/workflows/workflow-status-tone.d.ts +16 -0
- package/dist/src/ds/components/AlertDialog/alert-dialog.d.ts +15 -42
- package/dist/src/ds/components/Badge/Badge.d.ts +71 -21
- package/dist/src/ds/components/Badge/badge.stories.d.ts +10 -4
- package/dist/src/ds/components/CodeDiff/code-diff.d.ts +13 -3
- package/dist/src/ds/components/CodeDiff/code-diff.stories.d.ts +3 -0
- package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
- package/dist/src/ds/components/Command/command.d.ts +3 -2
- package/dist/src/ds/components/DataList/data-list-root.d.ts +1 -1
- package/dist/src/ds/components/DataList/shared.d.ts +3 -3
- package/dist/src/ds/components/Dialog/dialog-action.d.ts +13 -2
- package/dist/src/ds/components/Dialog/dialog-confirmation.stories.d.ts +63 -0
- package/dist/src/ds/components/Dialog/dialog-context.d.ts +0 -2
- package/dist/src/ds/components/Dialog/dialog-shell.d.ts +3 -0
- package/dist/src/ds/components/Dialog/dialog.d.ts +20 -26
- package/dist/src/ds/components/Dialog/dialog.stories.d.ts +49 -7
- package/dist/src/ds/components/Dialog/index.d.ts +1 -1
- package/dist/src/ds/components/Entity/entity.stories.d.ts +0 -1
- package/dist/src/ds/components/ProductAvatar/ProductAvatar.d.ts +6 -0
- package/dist/src/ds/components/ProductAvatar/ProductIcon.d.ts +4 -0
- package/dist/src/ds/components/ProductAvatar/index.d.ts +3 -0
- package/dist/src/ds/components/ProductAvatar/product-avatar.stories.d.ts +19 -0
- package/dist/src/ds/components/ProductAvatar/product-identity.d.ts +11 -0
- package/dist/src/ds/components/ProductAvatar/products.stories.d.ts +7 -0
- package/dist/src/ds/components/ProductBadge/ProductBadge.d.ts +6 -0
- package/dist/src/ds/components/ProductBadge/index.d.ts +2 -0
- package/dist/src/ds/components/ProductBadge/product-badge.stories.d.ts +18 -0
- package/dist/src/ds/components/SankeyChart/index.d.ts +1 -1
- package/dist/src/ds/components/SankeyChart/sankey-chart.d.ts +3 -1
- package/dist/src/ds/components/SankeyChart/sankey-chart.stories.d.ts +1 -0
- package/dist/src/ds/components/SankeyChart/sankey-context.d.ts +3 -3
- package/dist/src/ds/components/SankeyChart/sankeyColor.d.ts +2 -6
- package/dist/src/ds/components/ScrollArea/scroll-area.d.ts +24 -44
- package/dist/src/ds/components/ScrollArea/scroll-area.stories.d.ts +1 -0
- package/dist/src/ds/components/Tabs/tabs-list.d.ts +1 -1
- package/dist/src/ds/components/ThreadList/thread-list.d.ts +3 -1
- package/dist/src/ds/components/ThreadList/thread-list.stories.d.ts +1 -0
- package/dist/src/ds/components/TokenBudget/tones.d.ts +3 -3
- package/dist/src/ds/components/Workflow/cards/workflow-card-badge-utils.d.ts +14 -14
- package/dist/src/ds/components/ai/activity/activity.d.ts +53 -0
- package/dist/src/ds/components/ai/activity/activity.stories.d.ts +337 -0
- package/dist/src/ds/components/ai/activity/index.d.ts +5 -0
- package/dist/src/ds/components/ai/activity/presets/message-preview.d.ts +2 -0
- package/dist/src/ds/components/ai/activity/presets/notification-activity.d.ts +16 -0
- package/dist/src/ds/components/ai/activity/presets/presets.stories.d.ts +40 -0
- package/dist/src/ds/components/ai/activity/presets/reasoning-activity.d.ts +5 -0
- package/dist/src/ds/components/ai/activity/presets/reasoning-activity.stories.d.ts +22 -0
- package/dist/src/ds/components/ai/activity/presets/reasoning-visibility.d.ts +6 -0
- package/dist/src/ds/components/ai/activity/presets/signal-activity.d.ts +9 -0
- package/dist/src/ds/components/ai/plan/plan.d.ts +2 -2
- package/dist/src/ds/components/ai/tool-call/index.d.ts +1 -1
- package/dist/src/ds/components/ai/tool-call/tool-call-arguments.d.ts +3 -6
- package/dist/src/ds/components/ai/tool-call/tool-call-group.d.ts +2 -2
- package/dist/src/ds/components/ai/tool-call/tool-call-mono.d.ts +10 -0
- package/dist/src/ds/components/ai/tool-call/tool-call-presentation.stories.d.ts +4 -4
- package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +9 -1
- package/dist/src/ds/components/ai/transcript-divider/index.d.ts +2 -0
- package/dist/src/ds/components/ai/transcript-divider/stories/transcript-divider.stories.d.ts +25 -0
- package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +5 -0
- package/dist/src/ds/new/layout/page-header/page-header-eyebrow.d.ts +3 -0
- package/dist/src/ds/new/layout/page-header/page-header-root.d.ts +2 -7
- package/dist/src/ds/new/layout/page-header/page-header.d.ts +3 -0
- package/dist/src/ds/new/layout/page-header/page-header.stories.d.ts +4 -2
- package/dist/src/ds/new/sidebar/sidebar-new-header.d.ts +6 -3
- package/dist/src/ds/new/sidebar/sidebar-new-root.d.ts +2 -1
- package/dist/src/ds/new/sidebar/sidebar-new.stories.d.ts +1 -0
- package/dist/src/ds/primitives/form-element.d.ts +3 -2
- package/dist/src/ds/primitives/transitions.d.ts +3 -6
- package/dist/src/ds/tokens/color-foundations.stories.d.ts +20 -4
- package/dist/src/ds/tokens/colors.d.ts +279 -49
- package/dist/src/ds/tokens/foundations-layout.d.ts +0 -1
- package/dist/src/ds/tokens/shadows.d.ts +0 -1
- package/dist/src/ee/signals/lifeline-row.d.ts +1 -2
- package/dist/src/ee/signals/signal-colors.d.ts +3 -7
- package/dist/src/ee/signals/theme-trend-chart.d.ts +2 -2
- package/dist/src/lib/colors.d.ts +11 -5
- package/dist/src/lib/framework.d.ts +4 -1
- package/dist/src/lib/merge-refs.d.ts +2 -0
- package/dist/style.css +1376 -2092
- package/dist/switch-88fWFfVz.js +104 -0
- package/dist/switch-88fWFfVz.js.map +1 -0
- package/dist/switch-Swt75_Sb.cjs +125 -0
- package/dist/switch-Swt75_Sb.cjs.map +1 -0
- package/dist/tabbed-container.css +1 -1
- package/dist/tabs-content-DQNRMjup.cjs +37 -0
- package/dist/tabs-content-DQNRMjup.cjs.map +1 -0
- package/dist/tabs-content-h2qqD8t-.js +35 -0
- package/dist/tabs-content-h2qqD8t-.js.map +1 -0
- package/dist/tabs-root-4vL8SHCO.js +315 -0
- package/dist/tabs-root-4vL8SHCO.js.map +1 -0
- package/dist/tabs-root-BqC8X_h6.cjs +318 -0
- package/dist/tabs-root-BqC8X_h6.cjs.map +1 -0
- package/dist/tabs-root.css +1 -1
- package/dist/tabs-tab-7e2as-AV.js +103 -0
- package/dist/tabs-tab-7e2as-AV.js.map +1 -0
- package/dist/tabs-tab-lm4xyjtD.cjs +107 -0
- package/dist/tabs-tab-lm4xyjtD.cjs.map +1 -0
- package/dist/text-and-icon-4eVhfmbb.cjs +25 -0
- package/dist/text-and-icon-4eVhfmbb.cjs.map +1 -0
- package/dist/text-and-icon-CuBm-Wjm.js +23 -0
- package/dist/text-and-icon-CuBm-Wjm.js.map +1 -0
- package/dist/text-field-block-DJsOk8dJ.js +56 -0
- package/dist/text-field-block-DJsOk8dJ.js.map +1 -0
- package/dist/text-field-block-DYOWjPgO.cjs +58 -0
- package/dist/text-field-block-DYOWjPgO.cjs.map +1 -0
- package/dist/textarea-field-block-C5fPL2Hn.cjs +54 -0
- package/dist/textarea-field-block-C5fPL2Hn.cjs.map +1 -0
- package/dist/textarea-field-block-DqTd31gF.js +52 -0
- package/dist/textarea-field-block-DqTd31gF.js.map +1 -0
- package/dist/thread-list-DGI6M6if.js +74 -0
- package/dist/thread-list-DGI6M6if.js.map +1 -0
- package/dist/thread-list-DwASH1Vl.cjs +81 -0
- package/dist/thread-list-DwASH1Vl.cjs.map +1 -0
- package/dist/time-picker-C0DCPWpR.cjs +78 -0
- package/dist/time-picker-C0DCPWpR.cjs.map +1 -0
- package/dist/time-picker-CfZbLgMm.js +76 -0
- package/dist/time-picker-CfZbLgMm.js.map +1 -0
- package/dist/toast.css +23 -28
- package/dist/tokens.cjs.js +291 -62
- package/dist/tokens.cjs.js.map +1 -1
- package/dist/tokens.es.js +291 -62
- package/dist/tokens.es.js.map +1 -1
- package/dist/tones-BRAQR5Yb.cjs +19 -0
- package/dist/tones-BRAQR5Yb.cjs.map +1 -0
- package/dist/tones-DVtXIMPY.js +16 -0
- package/dist/tones-DVtXIMPY.js.map +1 -0
- package/dist/tool-approval-BAER9nxR.cjs +80 -0
- package/dist/tool-approval-BAER9nxR.cjs.map +1 -0
- package/dist/tool-approval-xZvYiuBP.js +77 -0
- package/dist/tool-approval-xZvYiuBP.js.map +1 -0
- package/dist/tool-call-arguments-D7PMJ6vj.js +74 -0
- package/dist/tool-call-arguments-D7PMJ6vj.js.map +1 -0
- package/dist/tool-call-arguments-ynBfg2dY.cjs +77 -0
- package/dist/tool-call-arguments-ynBfg2dY.cjs.map +1 -0
- package/dist/tool-call-group-9Dtupqev.cjs +64 -0
- package/dist/tool-call-group-9Dtupqev.cjs.map +1 -0
- package/dist/tool-call-group-DJX7eUYY.js +62 -0
- package/dist/tool-call-group-DJX7eUYY.js.map +1 -0
- package/dist/tool-call-mono-DFSfVZ6E.cjs +36 -0
- package/dist/tool-call-mono-DFSfVZ6E.cjs.map +1 -0
- package/dist/tool-call-mono-gKG9Ek1m.js +33 -0
- package/dist/tool-call-mono-gKG9Ek1m.js.map +1 -0
- package/dist/tool-call-output-DEoCE_Xn.js +18 -0
- package/dist/tool-call-output-DEoCE_Xn.js.map +1 -0
- package/dist/tool-call-output-Dl4sVfCy.cjs +20 -0
- package/dist/tool-call-output-Dl4sVfCy.cjs.map +1 -0
- package/dist/tool-card-BA1YcDoS.js +417 -0
- package/dist/tool-card-BA1YcDoS.js.map +1 -0
- package/dist/tool-card-DRqhTx-u.cjs +422 -0
- package/dist/tool-card-DRqhTx-u.cjs.map +1 -0
- package/dist/tool-presentation-BXAo24Ir.js +100 -0
- package/dist/tool-presentation-BXAo24Ir.js.map +1 -0
- package/dist/tool-presentation-WLS6d1ws.cjs +107 -0
- package/dist/tool-presentation-WLS6d1ws.cjs.map +1 -0
- package/dist/traces-data-list-CU93pUfj.cjs +98 -0
- package/dist/traces-data-list-CU93pUfj.cjs.map +1 -0
- package/dist/traces-data-list-DaedGcID.js +96 -0
- package/dist/traces-data-list-DaedGcID.js.map +1 -0
- package/dist/use-text-highlight.css +6 -6
- package/dist/use-workflow-graph-runtime-D0ODPlNB.cjs +302 -0
- package/dist/use-workflow-graph-runtime-D0ODPlNB.cjs.map +1 -0
- package/dist/use-workflow-graph-runtime-XL5zreeR.js +297 -0
- package/dist/use-workflow-graph-runtime-XL5zreeR.js.map +1 -0
- package/dist/utils/colors.cjs.js +30 -14
- package/dist/utils/colors.cjs.js.map +1 -1
- package/dist/utils/colors.es.js +25 -12
- package/dist/utils/colors.es.js.map +1 -1
- package/dist/workflow-code-dialog-content-Iz2Omi1P.js +52 -0
- package/dist/workflow-code-dialog-content-Iz2Omi1P.js.map +1 -0
- package/dist/workflow-code-dialog-content-vLneZlMd.cjs +54 -0
- package/dist/workflow-code-dialog-content-vLneZlMd.cjs.map +1 -0
- package/dist/workflow-condition-card-B0Va5Amx.js +894 -0
- package/dist/workflow-condition-card-B0Va5Amx.js.map +1 -0
- package/dist/workflow-condition-card-CfjhZb0m.cjs +909 -0
- package/dist/workflow-condition-card-CfjhZb0m.cjs.map +1 -0
- package/dist/workflow-data-edge-view-DXeWURnc.cjs +77 -0
- package/dist/workflow-data-edge-view-DXeWURnc.cjs.map +1 -0
- package/dist/workflow-data-edge-view-o7akvbpB.js +75 -0
- package/dist/workflow-data-edge-view-o7akvbpB.js.map +1 -0
- package/dist/workflow-debug-controls-Bcb4vcek.cjs +60 -0
- package/dist/workflow-debug-controls-Bcb4vcek.cjs.map +1 -0
- package/dist/workflow-debug-controls-DULCFa4s.js +58 -0
- package/dist/workflow-debug-controls-DULCFa4s.js.map +1 -0
- package/dist/workflow-edge-data-button-BuZzeN2n.js +52 -0
- package/dist/workflow-edge-data-button-BuZzeN2n.js.map +1 -0
- package/dist/workflow-edge-data-button-CX-eSbSB.cjs +54 -0
- package/dist/workflow-edge-data-button-CX-eSbSB.cjs.map +1 -0
- package/dist/workflow-step-action-Cf_XmOwj.js +49 -0
- package/dist/workflow-step-action-Cf_XmOwj.js.map +1 -0
- package/dist/workflow-step-action-JMkWtObA.cjs +52 -0
- package/dist/workflow-step-action-JMkWtObA.cjs.map +1 -0
- package/package.json +11 -10
- package/theme/colors.css +367 -88
- package/theme/data-viz.css +77 -49
- package/theme/status.css +240 -84
- package/theme/surfaces.css +12 -13
- package/theme.css +3 -31
- package/dist/Badge-Bzn8Z-_I.js +0 -123
- package/dist/Badge-Bzn8Z-_I.js.map +0 -1
- package/dist/Badge-DFNxcz-r.cjs +0 -125
- package/dist/Badge-DFNxcz-r.cjs.map +0 -1
- package/dist/Button-BY9qlu8K.js +0 -200
- package/dist/Button-BY9qlu8K.js.map +0 -1
- package/dist/Button-CIwF6NHM.cjs +0 -204
- package/dist/Button-CIwF6NHM.cjs.map +0 -1
- package/dist/Card-BbwF20OW.cjs +0 -101
- package/dist/Card-BbwF20OW.cjs.map +0 -1
- package/dist/Card-DmT57Pve.js +0 -74
- package/dist/Card-DmT57Pve.js.map +0 -1
- package/dist/EmptyState-BOAT0jz8.cjs +0 -48
- package/dist/EmptyState-BOAT0jz8.cjs.map +0 -1
- package/dist/EmptyState-CkuPLncF.js +0 -46
- package/dist/EmptyState-CkuPLncF.js.map +0 -1
- package/dist/ErrorBoundary-B1D06D4e.cjs +0 -183
- package/dist/ErrorBoundary-B1D06D4e.cjs.map +0 -1
- package/dist/ErrorBoundary-D0kDb8Hn.js +0 -162
- package/dist/ErrorBoundary-D0kDb8Hn.js.map +0 -1
- package/dist/Notice-BiV6N8--.cjs +0 -91
- package/dist/Notice-BiV6N8--.cjs.map +0 -1
- package/dist/Notice-BmoN4qOw.js +0 -89
- package/dist/Notice-BmoN4qOw.js.map +0 -1
- package/dist/alert-dialog-izDBJ9YK.js +0 -107
- package/dist/alert-dialog-izDBJ9YK.js.map +0 -1
- package/dist/alert-dialog-mki13KEg.cjs +0 -128
- package/dist/alert-dialog-mki13KEg.cjs.map +0 -1
- package/dist/ask-user-CHG9S-yu.js +0 -206
- package/dist/ask-user-CHG9S-yu.js.map +0 -1
- package/dist/ask-user-CcFc15CY.cjs +0 -216
- package/dist/ask-user-CcFc15CY.cjs.map +0 -1
- package/dist/chat-notification-DtN7obXx.js +0 -107
- package/dist/chat-notification-DtN7obXx.js.map +0 -1
- package/dist/chat-notification-_JPCcwQQ.cjs +0 -111
- package/dist/chat-notification-_JPCcwQQ.cjs.map +0 -1
- package/dist/chat-signal-BE07bB83.cjs +0 -42
- package/dist/chat-signal-BE07bB83.cjs.map +0 -1
- package/dist/chat-signal-CQBY0aLn.js +0 -40
- package/dist/chat-signal-CQBY0aLn.js.map +0 -1
- package/dist/code-block-C6-5zM_o.cjs +0 -88
- package/dist/code-block-C6-5zM_o.cjs.map +0 -1
- package/dist/code-block-D-skg1p_.js +0 -86
- package/dist/code-block-D-skg1p_.js.map +0 -1
- package/dist/code-diff-BgmXIX2v.js +0 -145
- package/dist/code-diff-BgmXIX2v.js.map +0 -1
- package/dist/code-diff-yR3Gan2m.cjs +0 -147
- package/dist/code-diff-yR3Gan2m.cjs.map +0 -1
- package/dist/code-editor-By2dTBXC.cjs +0 -495
- package/dist/code-editor-By2dTBXC.cjs.map +0 -1
- package/dist/code-editor-F12uuTDl.js +0 -487
- package/dist/code-editor-F12uuTDl.js.map +0 -1
- package/dist/collapsible-BFSJouuI.cjs +0 -61
- package/dist/collapsible-BFSJouuI.cjs.map +0 -1
- package/dist/collapsible-DhhP5p1j.js +0 -57
- package/dist/collapsible-DhhP5p1j.js.map +0 -1
- package/dist/combobox-Bel2EaKX.js +0 -191
- package/dist/combobox-Bel2EaKX.js.map +0 -1
- package/dist/combobox-CJBXDMDk.cjs +0 -212
- package/dist/combobox-CJBXDMDk.cjs.map +0 -1
- package/dist/combobox-styles-BIiOaOkk.cjs +0 -97
- package/dist/combobox-styles-BIiOaOkk.cjs.map +0 -1
- package/dist/combobox-styles-DQ8EVIcc.js +0 -93
- package/dist/combobox-styles-DQ8EVIcc.js.map +0 -1
- package/dist/command-Cxdxr3on.js +0 -182
- package/dist/command-Cxdxr3on.js.map +0 -1
- package/dist/command-DCZJIsbf.cjs +0 -211
- package/dist/command-DCZJIsbf.cjs.map +0 -1
- package/dist/comment-C2XwbnAP.cjs +0 -214
- package/dist/comment-C2XwbnAP.cjs.map +0 -1
- package/dist/comment-DivGawYy.js +0 -202
- package/dist/comment-DivGawYy.js.map +0 -1
- package/dist/components/ai/chat-event.cjs.js +0 -42
- package/dist/components/ai/chat-event.cjs.js.map +0 -1
- package/dist/components/ai/chat-event.d.ts +0 -2
- package/dist/components/ai/chat-event.es.js +0 -36
- package/dist/components/ai/chat-event.es.js.map +0 -1
- package/dist/composer-B_Err196.cjs +0 -156
- package/dist/composer-B_Err196.cjs.map +0 -1
- package/dist/composer-DJGAoBcn.js +0 -148
- package/dist/composer-DJGAoBcn.js.map +0 -1
- package/dist/copy-button-1PyYnSGS.cjs +0 -38
- package/dist/copy-button-1PyYnSGS.cjs.map +0 -1
- package/dist/copy-button-u3gk4RoJ.js +0 -36
- package/dist/copy-button-u3gk4RoJ.js.map +0 -1
- package/dist/data-code-section-DJYrPSas.cjs +0 -201
- package/dist/data-code-section-DJYrPSas.cjs.map +0 -1
- package/dist/data-code-section-kJ4tC12g.js +0 -199
- package/dist/data-code-section-kJ4tC12g.js.map +0 -1
- package/dist/data-keys-and-values-OR8KkBEc.cjs +0 -109
- package/dist/data-keys-and-values-OR8KkBEc.cjs.map +0 -1
- package/dist/data-keys-and-values-uWBaTX6Y.js +0 -107
- package/dist/data-keys-and-values-uWBaTX6Y.js.map +0 -1
- package/dist/data-list-DEKEzLzK.cjs +0 -125
- package/dist/data-list-DEKEzLzK.cjs.map +0 -1
- package/dist/data-list-skeleton-COqiIiMk.js +0 -36
- package/dist/data-list-skeleton-COqiIiMk.js.map +0 -1
- package/dist/data-list-skeleton-xdEctGVs.cjs +0 -38
- package/dist/data-list-skeleton-xdEctGVs.cjs.map +0 -1
- package/dist/data-list-spacer-CcY4Md1u.js +0 -200
- package/dist/data-list-spacer-CcY4Md1u.js.map +0 -1
- package/dist/data-list-spacer-Duvki6d9.cjs +0 -209
- package/dist/data-list-spacer-Duvki6d9.cjs.map +0 -1
- package/dist/data-list-top-C3SvVMNH.js +0 -357
- package/dist/data-list-top-C3SvVMNH.js.map +0 -1
- package/dist/data-list-top-CbWpkCBc.cjs +0 -382
- package/dist/data-list-top-CbWpkCBc.cjs.map +0 -1
- package/dist/data-list-u1TC5cbd.js +0 -121
- package/dist/data-list-u1TC5cbd.js.map +0 -1
- package/dist/data-panel-D2kZv9vY.cjs +0 -270
- package/dist/data-panel-D2kZv9vY.cjs.map +0 -1
- package/dist/data-panel-DzzwYYxO.js +0 -250
- package/dist/data-panel-DzzwYYxO.js.map +0 -1
- package/dist/date-time-range-picker-B3L39JoT.cjs +0 -180
- package/dist/date-time-range-picker-B3L39JoT.cjs.map +0 -1
- package/dist/date-time-range-picker-CVAK6Nas.js +0 -178
- package/dist/date-time-range-picker-CVAK6Nas.js.map +0 -1
- package/dist/dialog-75R05iBY.cjs +0 -29
- package/dist/dialog-75R05iBY.cjs.map +0 -1
- package/dist/dialog-BpW3qHc1.js +0 -8
- package/dist/dialog-BpW3qHc1.js.map +0 -1
- package/dist/dialog-CDg8uu4t.cjs +0 -280
- package/dist/dialog-CDg8uu4t.cjs.map +0 -1
- package/dist/dialog-CZBP5xw9.js +0 -246
- package/dist/dialog-CZBP5xw9.js.map +0 -1
- package/dist/dialog-action-BmUMDvL5.cjs +0 -185
- package/dist/dialog-action-BmUMDvL5.cjs.map +0 -1
- package/dist/dialog-action-DF5s1_r9.js +0 -183
- package/dist/dialog-action-DF5s1_r9.js.map +0 -1
- package/dist/domains/chat/messages/notification-signal-notice-variant.cjs.js +0 -19
- package/dist/domains/chat/messages/notification-signal-notice-variant.cjs.js.map +0 -1
- package/dist/domains/chat/messages/notification-signal-notice-variant.d.ts +0 -2
- package/dist/domains/chat/messages/notification-signal-notice-variant.es.js +0 -15
- package/dist/domains/chat/messages/notification-signal-notice-variant.es.js.map +0 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js +0 -25
- package/dist/domains/chat/messages/reasoning-streaming-line.cjs.js.map +0 -1
- package/dist/domains/chat/messages/reasoning-streaming-line.d.ts +0 -2
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js +0 -21
- package/dist/domains/chat/messages/reasoning-streaming-line.es.js.map +0 -1
- package/dist/domains/chat/messages/reasoning.cjs.js +0 -27
- package/dist/domains/chat/messages/reasoning.cjs.js.map +0 -1
- package/dist/domains/chat/messages/reasoning.d.ts +0 -2
- package/dist/domains/chat/messages/reasoning.es.js +0 -23
- package/dist/domains/chat/messages/reasoning.es.js.map +0 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.cjs.js +0 -35
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.cjs.js.map +0 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.d.ts +0 -2
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.es.js +0 -31
- package/dist/domains/traces/components/thread-trace/thread-trace-rail.es.js.map +0 -1
- package/dist/domains/traces/hooks/use-thread-rail-turns.cjs.js +0 -26
- package/dist/domains/traces/hooks/use-thread-rail-turns.cjs.js.map +0 -1
- package/dist/domains/traces/hooks/use-thread-rail-turns.d.ts +0 -2
- package/dist/domains/traces/hooks/use-thread-rail-turns.es.js +0 -21
- package/dist/domains/traces/hooks/use-thread-rail-turns.es.js.map +0 -1
- package/dist/drawer-C1VyTeuX.js +0 -327
- package/dist/drawer-C1VyTeuX.js.map +0 -1
- package/dist/drawer-tUWEluOi.cjs +0 -365
- package/dist/drawer-tUWEluOi.cjs.map +0 -1
- package/dist/field-block-BG5E7u9v.cjs +0 -87
- package/dist/field-block-BG5E7u9v.cjs.map +0 -1
- package/dist/field-block-BRLwud-v.js +0 -85
- package/dist/field-block-BRLwud-v.js.map +0 -1
- package/dist/field-block-error-msg-Y0fi0HUC.js +0 -22
- package/dist/field-block-error-msg-Y0fi0HUC.js.map +0 -1
- package/dist/field-block-error-msg-oudJz2Hx.cjs +0 -24
- package/dist/field-block-error-msg-oudJz2Hx.cjs.map +0 -1
- package/dist/filter-bar-chip-BgrXebUP.cjs +0 -1233
- package/dist/filter-bar-chip-BgrXebUP.cjs.map +0 -1
- package/dist/filter-bar-chip-Dp-MJ5gB.js +0 -1211
- package/dist/filter-bar-chip-Dp-MJ5gB.js.map +0 -1
- package/dist/horizontal-bars-43dr_F8j.cjs +0 -141
- package/dist/horizontal-bars-43dr_F8j.cjs.map +0 -1
- package/dist/horizontal-bars-DsTY4Y1M.js +0 -139
- package/dist/horizontal-bars-DsTY4Y1M.js.map +0 -1
- package/dist/input-group-CMFu6PUv.js +0 -196
- package/dist/input-group-CMFu6PUv.js.map +0 -1
- package/dist/input-group-mWZK0Lpw.cjs +0 -222
- package/dist/input-group-mWZK0Lpw.cjs.map +0 -1
- package/dist/list-search-BXoac6o3.js +0 -69
- package/dist/list-search-BXoac6o3.js.map +0 -1
- package/dist/list-search-Cuv2Y2J_.cjs +0 -71
- package/dist/list-search-Cuv2Y2J_.cjs.map +0 -1
- package/dist/logs-data-list-CHKSTiQb.js +0 -81
- package/dist/logs-data-list-CHKSTiQb.js.map +0 -1
- package/dist/logs-data-list-D-_gGvS8.cjs +0 -83
- package/dist/logs-data-list-D-_gGvS8.cjs.map +0 -1
- package/dist/main-sidebar-CIiWGCgI.js +0 -898
- package/dist/main-sidebar-CIiWGCgI.js.map +0 -1
- package/dist/main-sidebar-CV19jNRC.cjs +0 -916
- package/dist/main-sidebar-CV19jNRC.cjs.map +0 -1
- package/dist/markdown-renderer-DLehCdpz.cjs +0 -409
- package/dist/markdown-renderer-DLehCdpz.cjs.map +0 -1
- package/dist/markdown-renderer-DdD4LqK4.js +0 -407
- package/dist/markdown-renderer-DdD4LqK4.js.map +0 -1
- package/dist/message-D9b33Pf_.cjs +0 -66
- package/dist/message-D9b33Pf_.cjs.map +0 -1
- package/dist/message-DRb9nopu.js +0 -62
- package/dist/message-DRb9nopu.js.map +0 -1
- package/dist/message-copy-button-B7wrqavw.cjs +0 -11
- package/dist/message-copy-button-B7wrqavw.cjs.map +0 -1
- package/dist/message-copy-button-DyrD6I3O.js +0 -9
- package/dist/message-copy-button-DyrD6I3O.js.map +0 -1
- package/dist/message-scroller-c22pIucB.cjs +0 -860
- package/dist/message-scroller-c22pIucB.cjs.map +0 -1
- package/dist/message-scroller-context-DFynTlSh.js +0 -23
- package/dist/message-scroller-context-DFynTlSh.js.map +0 -1
- package/dist/message-scroller-hooks-BLilySMj.js +0 -46
- package/dist/message-scroller-hooks-BLilySMj.js.map +0 -1
- package/dist/message-scroller-v1kQVq2v.js +0 -834
- package/dist/message-scroller-v1kQVq2v.js.map +0 -1
- package/dist/metrics-card-C2RTi5Ew.js +0 -93
- package/dist/metrics-card-C2RTi5Ew.js.map +0 -1
- package/dist/metrics-card-DzcVJTAN.cjs +0 -95
- package/dist/metrics-card-DzcVJTAN.cjs.map +0 -1
- package/dist/metrics-kpi-card-BVCuXeDa.js +0 -94
- package/dist/metrics-kpi-card-BVCuXeDa.js.map +0 -1
- package/dist/metrics-kpi-card-DoIeHfv6.cjs +0 -96
- package/dist/metrics-kpi-card-DoIeHfv6.cjs.map +0 -1
- package/dist/metrics-line-chart-CwvP8dUo.js +0 -102
- package/dist/metrics-line-chart-CwvP8dUo.js.map +0 -1
- package/dist/metrics-line-chart-kz8QgD9q.cjs +0 -104
- package/dist/metrics-line-chart-kz8QgD9q.cjs.map +0 -1
- package/dist/metrics-line-chart-tooltip-Bp7Giyp9.js +0 -50
- package/dist/metrics-line-chart-tooltip-Bp7Giyp9.js.map +0 -1
- package/dist/metrics-line-chart-tooltip-Dp34Hg6w.cjs +0 -53
- package/dist/metrics-line-chart-tooltip-Dp34Hg6w.cjs.map +0 -1
- package/dist/page-header-BGyZw13s.js +0 -115
- package/dist/page-header-BGyZw13s.js.map +0 -1
- package/dist/page-header-CqvBk1wE.cjs +0 -117
- package/dist/page-header-CqvBk1wE.cjs.map +0 -1
- package/dist/plan--c77t-qX.cjs +0 -206
- package/dist/plan--c77t-qX.cjs.map +0 -1
- package/dist/plan-fhKsQQAW.js +0 -189
- package/dist/plan-fhKsQQAW.js.map +0 -1
- package/dist/property-filter-applied-D9ic9S7S.js +0 -337
- package/dist/property-filter-applied-D9ic9S7S.js.map +0 -1
- package/dist/property-filter-applied-FrNNM2Aa.cjs +0 -341
- package/dist/property-filter-applied-FrNNM2Aa.cjs.map +0 -1
- package/dist/relative-timestamp-BqGyFlxW.cjs +0 -120
- package/dist/relative-timestamp-BqGyFlxW.cjs.map +0 -1
- package/dist/relative-timestamp-DXBeY2hD.js +0 -118
- package/dist/relative-timestamp-DXBeY2hD.js.map +0 -1
- package/dist/sankey-chart-C1e0nRc3.cjs +0 -926
- package/dist/sankey-chart-C1e0nRc3.cjs.map +0 -1
- package/dist/sankey-chart-jvMXKzud.js +0 -916
- package/dist/sankey-chart-jvMXKzud.js.map +0 -1
- package/dist/sankeyColor-BoMbAWtq.js +0 -48
- package/dist/sankeyColor-BoMbAWtq.js.map +0 -1
- package/dist/sankeyColor-DHE7ggh8.cjs +0 -53
- package/dist/sankeyColor-DHE7ggh8.cjs.map +0 -1
- package/dist/scroll-area-BzOyuS8Y.cjs +0 -249
- package/dist/scroll-area-BzOyuS8Y.cjs.map +0 -1
- package/dist/scroll-area-DyTZoISq.js +0 -227
- package/dist/scroll-area-DyTZoISq.js.map +0 -1
- package/dist/search-field-block-Bcgo08Vu.cjs +0 -127
- package/dist/search-field-block-Bcgo08Vu.cjs.map +0 -1
- package/dist/search-field-block-ClMMuCq0.js +0 -125
- package/dist/search-field-block-ClMMuCq0.js.map +0 -1
- package/dist/section-9Aqb0bt8.js +0 -110
- package/dist/section-9Aqb0bt8.js.map +0 -1
- package/dist/section-DkqPjf8E.cjs +0 -114
- package/dist/section-DkqPjf8E.cjs.map +0 -1
- package/dist/select-B_xxIbdq.js +0 -138
- package/dist/select-B_xxIbdq.js.map +0 -1
- package/dist/select-C2IbXjKQ.cjs +0 -164
- package/dist/select-C2IbXjKQ.cjs.map +0 -1
- package/dist/select-field-block-Bkt0eE15.js +0 -59
- package/dist/select-field-block-Bkt0eE15.js.map +0 -1
- package/dist/select-field-block-X1b2lzJ-.cjs +0 -61
- package/dist/select-field-block-X1b2lzJ-.cjs.map +0 -1
- package/dist/settings-row-DYEDiq6R.js +0 -117
- package/dist/settings-row-DYEDiq6R.js.map +0 -1
- package/dist/settings-row-DrVBY0qS.cjs +0 -122
- package/dist/settings-row-DrVBY0qS.cjs.map +0 -1
- package/dist/side-dialog-2JVgN0vs.cjs +0 -294
- package/dist/side-dialog-2JVgN0vs.cjs.map +0 -1
- package/dist/side-dialog-BCREZ1dF.js +0 -274
- package/dist/side-dialog-BCREZ1dF.js.map +0 -1
- package/dist/signals-empty-state.css +0 -54
- package/dist/slider-C-Fda4HC.cjs +0 -97
- package/dist/slider-C-Fda4HC.cjs.map +0 -1
- package/dist/slider-MM3K0Pyv.js +0 -95
- package/dist/slider-MM3K0Pyv.js.map +0 -1
- package/dist/span-payload-primitives-CDE-brSn.js +0 -68
- package/dist/span-payload-primitives-CDE-brSn.js.map +0 -1
- package/dist/span-payload-primitives-CcRvL12M.cjs +0 -75
- package/dist/span-payload-primitives-CcRvL12M.cjs.map +0 -1
- package/dist/src/domains/chat/messages/notification-signal-notice-variant.d.ts +0 -1
- package/dist/src/domains/chat/messages/reasoning-streaming-line.d.ts +0 -4
- package/dist/src/domains/chat/messages/reasoning.d.ts +0 -8
- package/dist/src/domains/chat/stories/reasoning.stories.d.ts +0 -21
- package/dist/src/domains/chat/stories/signals.stories.d.ts +0 -17
- package/dist/src/domains/chat/stories/system-reminders.stories.d.ts +0 -15
- package/dist/src/domains/traces/components/thread-trace/thread-trace-rail.d.ts +0 -9
- package/dist/src/domains/traces/hooks/use-thread-rail-turns.d.ts +0 -8
- package/dist/src/ds/components/Dialog/dialog-new-variant.stories.d.ts +0 -64
- package/dist/src/ds/components/ai/chat-event/chat-event-preview.d.ts +0 -1
- package/dist/src/ds/components/ai/chat-event/chat-event.d.ts +0 -14
- package/dist/src/ds/components/ai/chat-event/chat-notification.d.ts +0 -17
- package/dist/src/ds/components/ai/chat-event/chat-signal.d.ts +0 -9
- package/dist/src/ds/components/ai/chat-event/chat-skill.d.ts +0 -7
- package/dist/src/ds/components/ai/chat-event/chat-time-gap.d.ts +0 -3
- package/dist/src/ds/components/ai/chat-event/index.d.ts +0 -7
- package/dist/src/ds/components/ai/chat-event/notification-variant.d.ts +0 -2
- package/dist/src/ds/components/ai/chat-event/stories/notification.stories.d.ts +0 -59
- package/dist/src/ds/components/ai/chat-event/stories/signal.stories.d.ts +0 -46
- package/dist/src/ds/components/ai/chat-event/stories/skill.stories.d.ts +0 -29
- package/dist/src/ds/components/ai/chat-event/stories/time-gap.stories.d.ts +0 -16
- package/dist/src/ds/components/ai/tool-call/tool-call.d.ts +0 -47
- package/dist/src/ds/components/ai/tool-call/tool-call.stories.d.ts +0 -9
- package/dist/src/lib/as-child.d.ts +0 -22
- package/dist/switch-6125Oajw.cjs +0 -124
- package/dist/switch-6125Oajw.cjs.map +0 -1
- package/dist/switch-CE9jTpUG.js +0 -103
- package/dist/switch-CE9jTpUG.js.map +0 -1
- package/dist/tabs-content-C3x4OoZ_.js +0 -35
- package/dist/tabs-content-C3x4OoZ_.js.map +0 -1
- package/dist/tabs-content-DKELc1lK.cjs +0 -37
- package/dist/tabs-content-DKELc1lK.cjs.map +0 -1
- package/dist/tabs-root-5s72GhmI.cjs +0 -315
- package/dist/tabs-root-5s72GhmI.cjs.map +0 -1
- package/dist/tabs-root-Dh-McKbO.js +0 -312
- package/dist/tabs-root-Dh-McKbO.js.map +0 -1
- package/dist/tabs-tab-BDdO7sWN.js +0 -103
- package/dist/tabs-tab-BDdO7sWN.js.map +0 -1
- package/dist/tabs-tab-BzurlE52.cjs +0 -107
- package/dist/tabs-tab-BzurlE52.cjs.map +0 -1
- package/dist/text-and-icon-BcHVl157.cjs +0 -21
- package/dist/text-and-icon-BcHVl157.cjs.map +0 -1
- package/dist/text-and-icon-wzPA3yr_.js +0 -19
- package/dist/text-and-icon-wzPA3yr_.js.map +0 -1
- package/dist/text-field-block-BCOCO1W2.cjs +0 -58
- package/dist/text-field-block-BCOCO1W2.cjs.map +0 -1
- package/dist/text-field-block-yNMK8lM0.js +0 -56
- package/dist/text-field-block-yNMK8lM0.js.map +0 -1
- package/dist/textarea-field-block-CQOWTloR.js +0 -52
- package/dist/textarea-field-block-CQOWTloR.js.map +0 -1
- package/dist/textarea-field-block-DlV3zmOi.cjs +0 -54
- package/dist/textarea-field-block-DlV3zmOi.cjs.map +0 -1
- package/dist/thread-list-D7x7cggy.js +0 -72
- package/dist/thread-list-D7x7cggy.js.map +0 -1
- package/dist/thread-list-RfLw5JAn.cjs +0 -79
- package/dist/thread-list-RfLw5JAn.cjs.map +0 -1
- package/dist/thread-rail-BVpfkSyT.cjs +0 -343
- package/dist/thread-rail-BVpfkSyT.cjs.map +0 -1
- package/dist/thread-rail-DV89nFnn.js +0 -322
- package/dist/thread-rail-DV89nFnn.js.map +0 -1
- package/dist/thread-rail-turns-Co78M03v.cjs +0 -100
- package/dist/thread-rail-turns-Co78M03v.cjs.map +0 -1
- package/dist/thread-rail-turns-DmOL1kzt.js +0 -96
- package/dist/thread-rail-turns-DmOL1kzt.js.map +0 -1
- package/dist/time-picker-CkP8lNtI.js +0 -76
- package/dist/time-picker-CkP8lNtI.js.map +0 -1
- package/dist/time-picker-WCUzLJ-U.cjs +0 -78
- package/dist/time-picker-WCUzLJ-U.cjs.map +0 -1
- package/dist/tones-BGChDydJ.cjs +0 -19
- package/dist/tones-BGChDydJ.cjs.map +0 -1
- package/dist/tones-CzIKDKD-.js +0 -16
- package/dist/tones-CzIKDKD-.js.map +0 -1
- package/dist/tool-approval-D4_2Gc8e.cjs +0 -69
- package/dist/tool-approval-D4_2Gc8e.cjs.map +0 -1
- package/dist/tool-approval-gmDi8ZMB.js +0 -66
- package/dist/tool-approval-gmDi8ZMB.js.map +0 -1
- package/dist/tool-call-B0BQizdj.js +0 -185
- package/dist/tool-call-B0BQizdj.js.map +0 -1
- package/dist/tool-call-DELhfAdn.cjs +0 -200
- package/dist/tool-call-DELhfAdn.cjs.map +0 -1
- package/dist/tool-call-group-BfKO02wG.js +0 -62
- package/dist/tool-call-group-BfKO02wG.js.map +0 -1
- package/dist/tool-call-group-vZw3eZ_G.cjs +0 -64
- package/dist/tool-call-group-vZw3eZ_G.cjs.map +0 -1
- package/dist/tool-call-output-BFkL6RFA.cjs +0 -101
- package/dist/tool-call-output-BFkL6RFA.cjs.map +0 -1
- package/dist/tool-call-output-ChJk9-Za.js +0 -95
- package/dist/tool-call-output-ChJk9-Za.js.map +0 -1
- package/dist/tool-card-CBDOgK2M.cjs +0 -430
- package/dist/tool-card-CBDOgK2M.cjs.map +0 -1
- package/dist/tool-card-LAvGC99j.js +0 -425
- package/dist/tool-card-LAvGC99j.js.map +0 -1
- package/dist/tool-presentation-C7aizVF5.js +0 -90
- package/dist/tool-presentation-C7aizVF5.js.map +0 -1
- package/dist/tool-presentation-CupoLbdM.cjs +0 -95
- package/dist/tool-presentation-CupoLbdM.cjs.map +0 -1
- package/dist/traces-data-list-DjYZ6I61.js +0 -95
- package/dist/traces-data-list-DjYZ6I61.js.map +0 -1
- package/dist/traces-data-list-wzaZ6SKO.cjs +0 -97
- package/dist/traces-data-list-wzaZ6SKO.cjs.map +0 -1
- package/dist/use-workflow-graph-runtime-Bb0Hogzq.js +0 -297
- package/dist/use-workflow-graph-runtime-Bb0Hogzq.js.map +0 -1
- package/dist/use-workflow-graph-runtime-BsBMVYQ7.cjs +0 -302
- package/dist/use-workflow-graph-runtime-BsBMVYQ7.cjs.map +0 -1
- package/dist/workflow-code-dialog-content-BcT4gT_3.js +0 -52
- package/dist/workflow-code-dialog-content-BcT4gT_3.js.map +0 -1
- package/dist/workflow-code-dialog-content-Bw7nXZzf.cjs +0 -54
- package/dist/workflow-code-dialog-content-Bw7nXZzf.cjs.map +0 -1
- package/dist/workflow-condition-card-BMgzF6ef.cjs +0 -901
- package/dist/workflow-condition-card-BMgzF6ef.cjs.map +0 -1
- package/dist/workflow-condition-card-Ch_oHojN.js +0 -886
- package/dist/workflow-condition-card-Ch_oHojN.js.map +0 -1
- package/dist/workflow-data-edge-view-BgzJznv3.cjs +0 -77
- package/dist/workflow-data-edge-view-BgzJznv3.cjs.map +0 -1
- package/dist/workflow-data-edge-view-BhmhXi0X.js +0 -75
- package/dist/workflow-data-edge-view-BhmhXi0X.js.map +0 -1
- package/dist/workflow-debug-controls-CyeClKLl.cjs +0 -59
- package/dist/workflow-debug-controls-CyeClKLl.cjs.map +0 -1
- package/dist/workflow-debug-controls-DTG9uMPM.js +0 -57
- package/dist/workflow-debug-controls-DTG9uMPM.js.map +0 -1
- package/dist/workflow-edge-data-button-CfGM-0WO.cjs +0 -54
- package/dist/workflow-edge-data-button-CfGM-0WO.cjs.map +0 -1
- package/dist/workflow-edge-data-button-DAm2Y2eu.js +0 -52
- package/dist/workflow-edge-data-button-DAm2Y2eu.js.map +0 -1
- package/dist/workflow-step-action-CXafz2Ie.cjs +0 -52
- package/dist/workflow-step-action-CXafz2Ie.cjs.map +0 -1
- package/dist/workflow-step-action-DQaryuQe.js +0 -49
- package/dist/workflow-step-action-DQaryuQe.js.map +0 -1
|
@@ -30,7 +30,8 @@ const ee_signals_traceIntelligenceContext = require('./trace-intelligence-contex
|
|
|
30
30
|
const ee_signals_traceIntelligenceExplainer = require('./trace-intelligence-explainer.cjs.js');
|
|
31
31
|
const ee_signals_useTraceIntelligence = require('./use-trace-intelligence.cjs.js');
|
|
32
32
|
const ee_signals_viewModeTab = require('./view-mode-tab.cjs.js');
|
|
33
|
-
const tabsRoot = require('../../tabs-root-
|
|
33
|
+
const tabsRoot = require('../../tabs-root-BqC8X_h6.cjs');
|
|
34
|
+
const Txt = require('../../Txt-DPmEpNbp.cjs');
|
|
34
35
|
|
|
35
36
|
const DRILL_IN_TRACE_LIMIT = 2e3;
|
|
36
37
|
const VIEW_DESCRIPTIONS = {
|
|
@@ -318,7 +319,7 @@ function SankeySignals({
|
|
|
318
319
|
] }),
|
|
319
320
|
dateRangePicker
|
|
320
321
|
] }),
|
|
321
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
322
|
+
/* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { variant: "caption", tone: "muted", children: viewDescription }),
|
|
322
323
|
/* @__PURE__ */ jsxRuntime.jsx(ee_signals_components_signalsEmptyState.PendingSignalProgress, { progress: progressQuery.data, signalCatalog: effectiveSignalCatalog }),
|
|
323
324
|
viewMode === "compare" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
324
325
|
ee_signals_themeCompare.ThemeCompare,
|
|
@@ -390,8 +391,8 @@ function SankeySignals({
|
|
|
390
391
|
reorderDisabled: perspectiveMutation.isPending
|
|
391
392
|
}
|
|
392
393
|
),
|
|
393
|
-
perspectiveMutation.isPending ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
394
|
-
perspectiveMutation.isError ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
394
|
+
perspectiveMutation.isPending ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { variant: "caption", tone: "muted", font: "mono", role: "status", children: "Reloading snapshots for new trace signal perspective…" }) : null,
|
|
395
|
+
perspectiveMutation.isError ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { variant: "caption", className: "text-destructive-indicator", role: "alert", children: "Unable to load that trace signal perspective. Try reordering the columns again." }) : null
|
|
395
396
|
] }),
|
|
396
397
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
397
398
|
ee_signals_themeDetailPanel.ThemeDetailPanel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sankey-signals.cjs.js","sources":["../../../src/ee/signals/sankey-signals.tsx"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { ArrowLeftRight, ChartNoAxesGantt, Waypoints } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport { PendingSignalProgress } from './components/signals-empty-state';\nimport { SignalsOverviewPage as SignalsEmptyState } from './components/signals-overview-page';\nimport { fetchThemeFlow, fetchThemePaths, fetchThemeSnapshots, serializeThemeFilters } from './entity-learning-api';\nimport { FlowCard } from './flow-card';\nimport { useEntityLearningProgress } from './hooks/use-entity-learning-progress';\nimport { useSnapshotPlayback } from './hooks/use-snapshot-playback';\nimport { useThemeFlows } from './hooks/use-theme-flows';\nimport { useThemePaths } from './hooks/use-theme-paths';\nimport { useThemeSnapshots } from './hooks/use-theme-snapshots';\nimport { NoiseDetailPanel } from './noise-detail-panel';\nimport {\n buildSignalGraphSummary,\n selectFlowSnapshotIds,\n snapshotSummaryLabel,\n stabilizeThemeFlow,\n} from './sankey-signals-data';\nimport { orderedSignals, signalLabel } from './signal-formatting';\nimport { SignalsErrorState } from './signals-error-state';\nimport { SignalsFrameLoadingSkeleton, SignalsLoadingSkeleton } from './signals-loading-skeleton';\nimport { SnapshotTimeline } from './snapshot-timeline';\nimport { ThemeCompare } from './theme-compare';\nimport { ThemeDetailPanel } from './theme-detail-panel';\nimport {\n buildDrilledThemeFlow,\n findNoiseSelection,\n findSelectionStats,\n findThemeSelection,\n findThemeSelectionById,\n mergeVisibleSignalOrder,\n} from './theme-drilldown-data';\nimport type { SelectedTheme, ThemeSelection } from './theme-drilldown-data';\nimport { ThemeFilterBanner } from './theme-filter-banner';\nimport { ThemeLifelines } from './theme-lifelines';\nimport { TraceIntelligenceContext } from './trace-intelligence-context';\nimport { TraceIntelligenceExplainer } from './trace-intelligence-explainer';\nimport type { TraceSignalName } from './types';\nimport { useTraceIntelligence } from './use-trace-intelligence';\nimport { ViewModeTab } from './view-mode-tab';\nimport type { SignalsViewMode } from './view-mode-tab';\nimport type { SankeyChartNodeSelection } from '@/ds/components/SankeyChart';\nimport { TabList, Tabs } from '@/ds/components/Tabs';\n\nexport interface SankeySignalsProps {\n entityId: string;\n entityType?: string;\n signalNames: TraceSignalName[];\n dateFrom?: Date;\n dateTo?: Date;\n height?: number;\n selectedThemeId: string | undefined;\n onSelectedThemeIdChange: (themeId: string | undefined) => void;\n /** Snapshot id of the timeline frame currently displayed. The parent owns this state. */\n selectedFrameId: string;\n onFrameIdChange: (frameId: string) => void;\n /** Date range control rendered in line with the view mode tabs. */\n dateRangePicker?: React.ReactNode;\n}\n\nconst DRILL_IN_TRACE_LIMIT = 2000;\n\n/** One-line answer to \"what am I looking at?\" for each view, shown under the tabs. */\nconst VIEW_DESCRIPTIONS: Omit<Record<SignalsViewMode, string>, 'flow'> = {\n compare: 'Which themes grew, shrank, appeared, or disappeared between two points in time.',\n lifelines: \"Each theme's share of traces across the whole selected range.\",\n};\n\nfunction formatSignalList(labels: string[]): string {\n if (labels.length < 2) return labels[0] ?? 'trace signal';\n if (labels.length === 2) return labels.join(' and ');\n return `${labels.slice(0, -1).join(', ')}, and ${labels.at(-1)}`;\n}\n\nexport function SankeySignals({\n entityId,\n entityType = 'agent',\n signalNames: initialSignalNames,\n dateFrom,\n dateTo,\n height,\n selectedThemeId,\n onSelectedThemeIdChange,\n selectedFrameId,\n onFrameIdChange,\n dateRangePicker,\n}: SankeySignalsProps) {\n const queryClient = useQueryClient();\n const traceIntelligence = useTraceIntelligence();\n const { cacheScope, request, LinkComponent, signalCatalog } = traceIntelligence;\n const [signalNames, setSignalNames] = useState(() => initialSignalNames);\n const [pendingSignalNames, setPendingSignalNames] = useState<TraceSignalName[]>();\n const snapshotsQuery = useThemeSnapshots(entityId, entityType, signalNames, dateFrom, dateTo);\n const effectiveSignalCatalog = snapshotsQuery.data?.signalCatalog ?? signalCatalog;\n const traceIntelligenceContext = useMemo(\n () => ({ ...traceIntelligence, signalCatalog: effectiveSignalCatalog }),\n [effectiveSignalCatalog, traceIntelligence],\n );\n const snapshots = [...(snapshotsQuery.data?.snapshots ?? [])].sort((left, right) => left.ordinal - right.ordinal);\n const [isPlaying, setIsPlaying] = useState(false);\n const [viewMode, setViewMode] = useState<SignalsViewMode>('flow');\n const [drillStack, setDrillStack] = useState<ThemeSelection[]>([]);\n const [noiseSignalName, setNoiseSignalName] = useState<TraceSignalName>();\n // Pure derivation: the parent owns the frame. The index-0 fallback only covers\n // the transient render where a perspective change swapped the snapshot list.\n const matchedSnapshotIndex = snapshots.findIndex(snapshot => snapshot.snapshotId === selectedFrameId);\n const selectedSnapshotIndex = matchedSnapshotIndex >= 0 ? matchedSnapshotIndex : 0;\n const snapshot = snapshots[selectedSnapshotIndex];\n const totalSnapshots = snapshotsQuery.data?.totalSnapshots ?? snapshot?.total ?? 0;\n const selectSnapshot = (index: number) => {\n const id = snapshots[index]?.snapshotId;\n if (id) onFrameIdChange(id);\n };\n const handleViewModeChange = (nextViewMode: SignalsViewMode) => {\n if (nextViewMode !== 'flow') setIsPlaying(false);\n setViewMode(nextViewMode);\n };\n const handlePlayingChange = (nextIsPlaying: boolean) => {\n // Restart from the first landmark when play is pressed at the end.\n if (nextIsPlaying && selectedSnapshotIndex === snapshots.length - 1) selectSnapshot(0);\n setIsPlaying(nextIsPlaying);\n };\n const setThemeDetails = (selection: SelectedTheme | undefined) => {\n onSelectedThemeIdChange(selection?.themeId);\n };\n // Compare cards and lifeline points open details for the theme at the\n // landmark they were clicked on, so the panel's snapshot follows the click.\n const openThemeDetailsAt = (selection: ThemeSelection, snapshotIndex: number) => {\n if (selection.kind !== 'theme') return;\n selectSnapshot(snapshotIndex);\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n };\n\n // Undefined at the last landmark so playback stops instead of looping.\n const nextSnapshotId = snapshots[selectedSnapshotIndex + 1]?.snapshotId;\n const flowSnapshotIds = selectFlowSnapshotIds(snapshots, selectedSnapshotIndex);\n const flowQueries = useThemeFlows(entityId, entityType, signalNames, flowSnapshotIds);\n const flowQuery = flowQueries[flowSnapshotIds.indexOf(snapshot?.snapshotId ?? '')];\n const currentFlow = flowQuery?.data;\n // The loading skeleton tracks only the selected snapshot's flow; prefetched\n // neighbors warm the cache in the background without blocking the chart.\n const isFlowPending = flowQuery?.isPending ?? false;\n // Errors stay window-wide: a failed preload surfaces the retry state instead\n // of letting playback advance into a broken frame.\n const hasFlowError = flowQueries.some(query => query.isError);\n const isFlowWindowBusy = flowQueries.some(query => query.isPending) || hasFlowError;\n const windowFlows = useMemo(() => flowQueries.flatMap(query => (query.data ? [query.data] : [])), [flowQueries]);\n const stableUnfilteredFlow = useMemo(\n () => (currentFlow ? stabilizeThemeFlow(currentFlow, windowFlows) : undefined),\n [currentFlow, windowFlows],\n );\n const drillInAvailable = Boolean(currentFlow && currentFlow.snapshot.traceCount <= DRILL_IN_TRACE_LIMIT);\n const pathsQuery = useThemePaths(\n entityId,\n entityType,\n signalNames,\n snapshot?.snapshotId,\n drillInAvailable && drillStack.length > 0,\n );\n const flow = useMemo(() => {\n if (!stableUnfilteredFlow || drillStack.length === 0 || !pathsQuery.data) return stableUnfilteredFlow;\n\n const drilledFlow = buildDrilledThemeFlow(stableUnfilteredFlow, pathsQuery.data, drillStack);\n return stabilizeThemeFlow(drilledFlow, [stableUnfilteredFlow, drilledFlow]);\n }, [drillStack, pathsQuery.data, stableUnfilteredFlow]);\n const graphSummary = useMemo(() => (flow ? buildSignalGraphSummary(flow) : undefined), [flow]);\n const detailSelection =\n stableUnfilteredFlow && selectedThemeId ? findThemeSelectionById(stableUnfilteredFlow, selectedThemeId) : undefined;\n const populatedStageCount = currentFlow?.stages.filter(stage => stage.nodes.length > 0).length ?? 0;\n const hasPendingEnabledSignals = effectiveSignalCatalog.some(signal => signal.enabled && signal.status !== 'ready');\n const shouldLoadProgress =\n snapshotsQuery.isSuccess &&\n !snapshotsQuery.isError &&\n (hasPendingEnabledSignals ||\n !snapshot ||\n Boolean(currentFlow && (!flow || !graphSummary || populatedStageCount < 2)));\n const progressQuery = useEntityLearningProgress(entityId, entityType, shouldLoadProgress);\n const isPlaybackBlockedByDrillIn = drillStack.length > 0 && (pathsQuery.isFetching || pathsQuery.isError);\n const hasActivePathsError = drillStack.length > 0 && pathsQuery.isError;\n\n useSnapshotPlayback({\n isPlaying,\n isPlaybackBlocked: isFlowWindowBusy || isPlaybackBlockedByDrillIn,\n nextSnapshot: nextSnapshotId,\n onAdvance: frameId => {\n if (frameId === undefined) {\n setIsPlaying(false);\n return;\n }\n onFrameIdChange(frameId);\n },\n snapshotCount: snapshots.length,\n });\n\n const perspectiveMutation = useMutation({\n mutationFn: async (nextSignalNames: TraceSignalName[]) => {\n const nextSnapshots = await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-snapshots',\n nextSignalNames,\n dateFrom?.toISOString(),\n dateTo?.toISOString(),\n ],\n queryFn: () => fetchThemeSnapshots(request, entityId, entityType, nextSignalNames, dateFrom, dateTo),\n });\n const sortedNextSnapshots = [...nextSnapshots.snapshots].sort((left, right) => left.ordinal - right.ordinal);\n const matchedNextIndex = sortedNextSnapshots.findIndex(candidate => candidate.ordinal === snapshot?.ordinal);\n const nextSelectedIndex = matchedNextIndex >= 0 ? matchedNextIndex : 0;\n const nextSnapshot = sortedNextSnapshots[nextSelectedIndex];\n await Promise.all(\n selectFlowSnapshotIds(sortedNextSnapshots, nextSelectedIndex).map(snapshotId =>\n queryClient.fetchQuery({\n queryKey: ['entity-learning', cacheScope, entityType, entityId, 'theme-flow', nextSignalNames, snapshotId],\n queryFn: () => fetchThemeFlow(request, entityId, entityType, nextSignalNames, snapshotId),\n }),\n ),\n );\n if (drillStack.length > 0 && nextSnapshot && nextSnapshot.traceCount <= DRILL_IN_TRACE_LIMIT) {\n await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-paths',\n nextSignalNames,\n nextSnapshot.snapshotId,\n ],\n queryFn: () => fetchThemePaths(request, entityId, entityType, nextSignalNames, nextSnapshot.snapshotId),\n });\n }\n return { nextSignalNames, nextFrameId: nextSnapshot?.snapshotId };\n },\n onSuccess: ({ nextSignalNames, nextFrameId }) => {\n setSignalNames(nextSignalNames);\n setPendingSignalNames(undefined);\n // Keep the parent-owned frame pointing at a snapshot that exists in the new perspective.\n if (nextFrameId && nextFrameId !== selectedFrameId) onFrameIdChange(nextFrameId);\n },\n onError: () => setPendingSignalNames(undefined),\n });\n\n if (snapshotsQuery.isPending) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsLoadingSkeleton />\n </>\n );\n }\n\n if (snapshotsQuery.isError || hasFlowError || hasActivePathsError) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsErrorState\n message=\"Unable to load trace signal flow.\"\n onRetry={() => {\n setIsPlaying(false);\n void snapshotsQuery.refetch();\n void Promise.all(flowQueries.map(query => query.refetch()));\n if (drillStack.length > 0 && drillInAvailable) void pathsQuery.refetch();\n }}\n onClear={hasActivePathsError ? () => setDrillStack([]) : undefined}\n />\n </>\n );\n }\n\n if (!snapshot) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n isRangeEmpty\n />\n </>\n );\n }\n\n if (isFlowPending) {\n return (\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n {dateRangePicker && <div className=\"flex justify-end\">{dateRangePicker}</div>}\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={snapshot ? snapshotSummaryLabel(snapshot, undefined) : ''}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n <SignalsFrameLoadingSkeleton />\n </div>\n );\n }\n\n if (!currentFlow || !flow || !graphSummary || populatedStageCount < 2) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n />\n </>\n );\n }\n\n const stages = flow.stages;\n const isNodeClickable = (selection: SankeyChartNodeSelection) =>\n findNoiseSelection(flow, selection.column.id, selection.value) !== undefined ||\n findThemeSelection(flow, selection.column.id, selection.value) !== undefined;\n const handleNodeClick = (selection: SankeyChartNodeSelection) => {\n const nextSelection =\n findNoiseSelection(flow, selection.column.id, selection.value) ??\n findThemeSelection(flow, selection.column.id, selection.value);\n if (!nextSelection || drillStack.some(filter => filter.signalName === nextSelection.signalName)) return;\n if (nextSelection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(nextSelection);\n if (drillInAvailable) setDrillStack(current => [...current, nextSelection]);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(nextSelection.signalName);\n }\n };\n const drillInDisabledReason = drillInAvailable\n ? undefined\n : 'Drill-in is unavailable for snapshots with more than 2,000 traces.';\n const isDrilledEmpty = drillStack.length > 0 && pathsQuery.data !== undefined && flow.snapshot.traceCount === 0;\n const handleSignalOrderChange = (nextSignalNames: TraceSignalName[]) => {\n if (perspectiveMutation.isPending) return;\n setIsPlaying(false);\n setThemeDetails(undefined);\n setNoiseSignalName(undefined);\n const mergedSignalNames = mergeVisibleSignalOrder(signalNames, nextSignalNames);\n setPendingSignalNames(mergedSignalNames);\n perspectiveMutation.mutate(mergedSignalNames);\n };\n const filtersResolved = drillStack.length > 0 && drillInAvailable && pathsQuery.data !== undefined;\n const detailStats = filtersResolved ? findSelectionStats(flow, drillStack, detailSelection) : undefined;\n const noiseStats = filtersResolved\n ? findSelectionStats(flow, drillStack, noiseSignalName ? { kind: 'noise', signalName: noiseSignalName } : undefined)\n : undefined;\n const filterKey = serializeThemeFilters(drillStack);\n const catalogSignalNames = orderedSignals(effectiveSignalCatalog, signalNames);\n const viewDescription =\n viewMode === 'flow'\n ? `How this agent's traces distribute across ${formatSignalList(catalogSignalNames.map(name => signalLabel(effectiveSignalCatalog, name).toLocaleLowerCase()))} themes at this point in time.`\n : VIEW_DESCRIPTIONS[viewMode];\n const labeledColumns = graphSummary.columns.map(column => ({\n ...column,\n label: signalLabel(effectiveSignalCatalog, column.id),\n }));\n\n return (\n <TraceIntelligenceContext.Provider value={traceIntelligenceContext}>\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-4\">\n <Tabs<SignalsViewMode>\n value={viewMode}\n defaultTab=\"flow\"\n onValueChange={handleViewModeChange}\n className=\"w-fit\"\n >\n <TabList variant=\"pill-ghost\">\n <ViewModeTab value=\"flow\" icon={<Waypoints />} label=\"Flow\" />\n <ViewModeTab value=\"compare\" icon={<ArrowLeftRight />} label=\"Compare\" />\n <ViewModeTab value=\"lifelines\" icon={<ChartNoAxesGantt />} label=\"Lifelines\" />\n </TabList>\n </Tabs>\n <TraceIntelligenceExplainer signalCatalog={effectiveSignalCatalog} />\n </div>\n {dateRangePicker}\n </div>\n <p className=\"text-caption text-muted-foreground\">{viewDescription}</p>\n <PendingSignalProgress progress={progressQuery.data} signalCatalog={effectiveSignalCatalog} />\n {viewMode === 'compare' ? (\n <ThemeCompare\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : viewMode === 'lifelines' ? (\n <ThemeLifelines\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n selectedIndex={selectedSnapshotIndex}\n onSnapshotSelect={selectSnapshot}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : (\n <>\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={`${drillStack.length > 0 ? (drillInAvailable ? 'Filtered · ' : 'Filters unavailable · ') : ''}${snapshotSummaryLabel(snapshot, flow)}`}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n {drillStack.length > 0 ? (\n <ThemeFilterBanner\n selections={drillStack}\n filteredTraceCount={filtersResolved ? flow.snapshot.traceCount : undefined}\n totalTraceCount={currentFlow.snapshot.traceCount}\n isUnavailable={!drillInAvailable}\n onViewDetails={selection => {\n if (selection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(selection.signalName);\n }\n }}\n onRemove={signalName =>\n setDrillStack(current => current.filter(filter => filter.signalName !== signalName))\n }\n onClear={() => setDrillStack([])}\n />\n ) : null}\n {isDrilledEmpty ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n This theme is not present in the selected snapshot. Use the clear filter action above to return to the\n full flow.\n </section>\n ) : graphSummary.records.length === 0 ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n No cross-signal flow for this snapshot — its trace signals have not overlapped on shared traces yet.\n Pick another snapshot from the timeline below.\n </section>\n ) : (\n <FlowCard\n columns={labeledColumns}\n records={graphSummary.records}\n stages={stages}\n height={height}\n onNodeClick={handleNodeClick}\n isNodeClickable={isNodeClickable}\n drillInDisabledReason={drillInDisabledReason}\n onOrderChange={handleSignalOrderChange}\n signalOrder={pendingSignalNames ?? signalNames}\n reorderDisabled={perspectiveMutation.isPending}\n />\n )}\n {perspectiveMutation.isPending ? (\n <p className=\"font-mono text-caption text-muted-foreground\" role=\"status\">\n Reloading snapshots for new trace signal perspective…\n </p>\n ) : null}\n {perspectiveMutation.isError ? (\n <p className=\"text-caption text-red-500\" role=\"alert\">\n Unable to load that trace signal perspective. Try reordering the columns again.\n </p>\n ) : null}\n </>\n )}\n <ThemeDetailPanel\n key={`${snapshot.snapshotId}:${detailSelection?.signalName ?? ''}:${detailSelection?.themeId ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n snapshotTotal={snapshot.total}\n selection={detailSelection}\n filters={drillStack}\n filteredStats={detailStats}\n onClose={() => setThemeDetails(undefined)}\n />\n <NoiseDetailPanel\n key={`${snapshot.snapshotId}:${noiseSignalName ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n signalName={noiseSignalName}\n filters={drillStack}\n filteredStats={noiseStats}\n onClose={() => setNoiseSignalName(undefined)}\n />\n </div>\n </TraceIntelligenceContext.Provider>\n );\n}\n"],"names":["useQueryClient","useTraceIntelligence","useState","useThemeSnapshots","useMemo","snapshot","selectFlowSnapshotIds","useThemeFlows","stabilizeThemeFlow","useThemePaths","buildDrilledThemeFlow","buildSignalGraphSummary","findThemeSelectionById","useEntityLearningProgress","useSnapshotPlayback","useMutation","fetchThemeSnapshots","fetchThemeFlow","fetchThemePaths","jsxs","Fragment","jsx","SignalsLoadingSkeleton","SignalsErrorState","SignalsEmptyState","SnapshotTimeline","snapshotSummaryLabel","SignalsFrameLoadingSkeleton","findNoiseSelection","findThemeSelection","mergeVisibleSignalOrder","findSelectionStats","serializeThemeFilters","orderedSignals","signalLabel","TraceIntelligenceContext","Tabs","TabList","ViewModeTab","Waypoints","ArrowLeftRight","ChartNoAxesGantt","TraceIntelligenceExplainer","PendingSignalProgress","ThemeCompare","ThemeLifelines","ThemeFilterBanner","FlowCard","ThemeDetailPanel","NoiseDetailPanel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAM,oBAAA,GAAuB,GAAA;AAG7B,MAAM,iBAAA,GAAmE;AAAA,EACvE,OAAA,EAAS,iFAAA;AAAA,EACT,SAAA,EAAW;AACb,CAAA;AAEA,SAAS,iBAAiB,MAAA,EAA0B;AAClD,EAAA,IAAI,OAAO,MAAA,GAAS,CAAA,EAAG,OAAO,MAAA,CAAO,CAAC,CAAA,IAAK,cAAA;AAC3C,EAAA,IAAI,OAAO,MAAA,KAAW,CAAA,EAAG,OAAO,MAAA,CAAO,KAAK,OAAO,CAAA;AACnD,EAAA,OAAO,CAAA,EAAG,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC,CAAA,MAAA,EAAS,MAAA,CAAO,EAAA,CAAG,EAAE,CAAC,CAAA,CAAA;AAChE;AAEO,SAAS,aAAA,CAAc;AAAA,EAC5B,QAAA;AAAA,EACA,UAAA,GAAa,OAAA;AAAA,EACb,WAAA,EAAa,kBAAA;AAAA,EACb,QAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,eAAA;AAAA,EACA,uBAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,EAAuB;AACrB,EAAA,MAAM,cAAcA,yBAAA,EAAe;AACnC,EAAA,MAAM,oBAAoBC,oDAAA,EAAqB;AAC/C,EAAA,MAAM,EAAE,UAAA,EAAY,OAAA,EAAS,aAAA,EAAe,eAAc,GAAI,iBAAA;AAC9D,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIC,cAAA,CAAS,MAAM,kBAAkB,CAAA;AACvE,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAIA,cAAA,EAA4B;AAChF,EAAA,MAAM,iBAAiBC,oDAAA,CAAkB,QAAA,EAAU,UAAA,EAAY,WAAA,EAAa,UAAU,MAAM,CAAA;AAC5F,EAAA,MAAM,sBAAA,GAAyB,cAAA,CAAe,IAAA,EAAM,aAAA,IAAiB,aAAA;AACrE,EAAA,MAAM,wBAAA,GAA2BC,aAAA;AAAA,IAC/B,OAAO,EAAE,GAAG,iBAAA,EAAmB,eAAe,sBAAA,EAAuB,CAAA;AAAA,IACrE,CAAC,wBAAwB,iBAAiB;AAAA,GAC5C;AACA,EAAA,MAAM,YAAY,CAAC,GAAI,cAAA,CAAe,IAAA,EAAM,aAAa,EAAG,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,EAAM,KAAA,KAAU,IAAA,CAAK,OAAA,GAAU,MAAM,OAAO,CAAA;AAChH,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIF,eAAS,KAAK,CAAA;AAChD,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAA0B,MAAM,CAAA;AAChE,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAIA,cAAA,CAA2B,EAAE,CAAA;AACjE,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAIA,cAAA,EAA0B;AAGxE,EAAA,MAAM,uBAAuB,SAAA,CAAU,SAAA,CAAU,CAAAG,SAAAA,KAAYA,SAAAA,CAAS,eAAe,eAAe,CAAA;AACpG,EAAA,MAAM,qBAAA,GAAwB,oBAAA,IAAwB,CAAA,GAAI,oBAAA,GAAuB,CAAA;AACjF,EAAA,MAAM,QAAA,GAAW,UAAU,qBAAqB,CAAA;AAChD,EAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,IAAA,EAAM,cAAA,IAAkB,UAAU,KAAA,IAAS,CAAA;AACjF,EAAA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAAkB;AACxC,IAAA,MAAM,EAAA,GAAK,SAAA,CAAU,KAAK,CAAA,EAAG,UAAA;AAC7B,IAAA,IAAI,EAAA,kBAAoB,EAAE,CAAA;AAAA,EAC5B,CAAA;AACA,EAAA,MAAM,oBAAA,GAAuB,CAAC,YAAA,KAAkC;AAC9D,IAAA,IAAI,YAAA,KAAiB,MAAA,EAAQ,YAAA,CAAa,KAAK,CAAA;AAC/C,IAAA,WAAA,CAAY,YAAY,CAAA;AAAA,EAC1B,CAAA;AACA,EAAA,MAAM,mBAAA,GAAsB,CAAC,aAAA,KAA2B;AAEtD,IAAA,IAAI,iBAAiB,qBAAA,KAA0B,SAAA,CAAU,MAAA,GAAS,CAAA,iBAAkB,CAAC,CAAA;AACrF,IAAA,YAAA,CAAa,aAAa,CAAA;AAAA,EAC5B,CAAA;AACA,EAAA,MAAM,eAAA,GAAkB,CAAC,SAAA,KAAyC;AAChE,IAAA,uBAAA,CAAwB,WAAW,OAAO,CAAA;AAAA,EAC5C,CAAA;AAGA,EAAA,MAAM,kBAAA,GAAqB,CAAC,SAAA,EAA2B,aAAA,KAA0B;AAC/E,IAAA,IAAI,SAAA,CAAU,SAAS,OAAA,EAAS;AAChC,IAAA,cAAA,CAAe,aAAa,CAAA;AAC5B,IAAA,kBAAA,CAAmB,MAAS,CAAA;AAC5B,IAAA,eAAA,CAAgB,SAAS,CAAA;AAAA,EAC3B,CAAA;AAGA,EAAA,MAAM,cAAA,GAAiB,SAAA,CAAU,qBAAA,GAAwB,CAAC,CAAA,EAAG,UAAA;AAC7D,EAAA,MAAM,eAAA,GAAkBC,kDAAA,CAAsB,SAAA,EAAW,qBAAqB,CAAA;AAC9E,EAAA,MAAM,WAAA,GAAcC,4CAAA,CAAc,QAAA,EAAU,UAAA,EAAY,aAAa,eAAe,CAAA;AACpF,EAAA,MAAM,YAAY,WAAA,CAAY,eAAA,CAAgB,QAAQ,QAAA,EAAU,UAAA,IAAc,EAAE,CAAC,CAAA;AACjF,EAAA,MAAM,cAAc,SAAA,EAAW,IAAA;AAG/B,EAAA,MAAM,aAAA,GAAgB,WAAW,SAAA,IAAa,KAAA;AAG9C,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,IAAA,CAAK,CAAA,KAAA,KAAS,MAAM,OAAO,CAAA;AAC5D,EAAA,MAAM,mBAAmB,WAAA,CAAY,IAAA,CAAK,CAAA,KAAA,KAAS,KAAA,CAAM,SAAS,CAAA,IAAK,YAAA;AACvE,EAAA,MAAM,cAAcH,aAAA,CAAQ,MAAM,WAAA,CAAY,OAAA,CAAQ,WAAU,KAAA,CAAM,IAAA,GAAO,CAAC,KAAA,CAAM,IAAI,CAAA,GAAI,EAAG,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAC/G,EAAA,MAAM,oBAAA,GAAuBA,aAAA;AAAA,IAC3B,MAAO,WAAA,GAAcI,+CAAA,CAAmB,WAAA,EAAa,WAAW,CAAA,GAAI,MAAA;AAAA,IACpE,CAAC,aAAa,WAAW;AAAA,GAC3B;AACA,EAAA,MAAM,mBAAmB,OAAA,CAAQ,WAAA,IAAe,WAAA,CAAY,QAAA,CAAS,cAAc,oBAAoB,CAAA;AACvG,EAAA,MAAM,UAAA,GAAaC,4CAAA;AAAA,IACjB,QAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA,EAAU,UAAA;AAAA,IACV,gBAAA,IAAoB,WAAW,MAAA,GAAS;AAAA,GAC1C;AACA,EAAA,MAAM,IAAA,GAAOL,cAAQ,MAAM;AACzB,IAAA,IAAI,CAAC,wBAAwB,UAAA,CAAW,MAAA,KAAW,KAAK,CAAC,UAAA,CAAW,MAAM,OAAO,oBAAA;AAEjF,IAAA,MAAM,WAAA,GAAcM,mDAAA,CAAsB,oBAAA,EAAsB,UAAA,CAAW,MAAM,UAAU,CAAA;AAC3F,IAAA,OAAOF,+CAAA,CAAmB,WAAA,EAAa,CAAC,oBAAA,EAAsB,WAAW,CAAC,CAAA;AAAA,EAC5E,GAAG,CAAC,UAAA,EAAY,UAAA,CAAW,IAAA,EAAM,oBAAoB,CAAC,CAAA;AACtD,EAAA,MAAM,YAAA,GAAeJ,aAAA,CAAQ,MAAO,IAAA,GAAOO,oDAAA,CAAwB,IAAI,CAAA,GAAI,MAAA,EAAY,CAAC,IAAI,CAAC,CAAA;AAC7F,EAAA,MAAM,kBACJ,oBAAA,IAAwB,eAAA,GAAkBC,oDAAA,CAAuB,oBAAA,EAAsB,eAAe,CAAA,GAAI,MAAA;AAC5G,EAAA,MAAM,mBAAA,GAAsB,WAAA,EAAa,MAAA,CAAO,MAAA,CAAO,CAAA,KAAA,KAAS,MAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,CAAE,MAAA,IAAU,CAAA;AAClG,EAAA,MAAM,wBAAA,GAA2B,uBAAuB,IAAA,CAAK,CAAA,MAAA,KAAU,OAAO,OAAA,IAAW,MAAA,CAAO,WAAW,OAAO,CAAA;AAClH,EAAA,MAAM,qBACJ,cAAA,CAAe,SAAA,IACf,CAAC,cAAA,CAAe,YACf,wBAAA,IACC,CAAC,QAAA,IACD,OAAA,CAAQ,gBAAgB,CAAC,IAAA,IAAQ,CAAC,YAAA,IAAgB,sBAAsB,CAAA,CAAE,CAAA,CAAA;AAC9E,EAAA,MAAM,aAAA,GAAgBC,oEAAA,CAA0B,QAAA,EAAU,UAAA,EAAY,kBAAkB,CAAA;AACxF,EAAA,MAAM,6BAA6B,UAAA,CAAW,MAAA,GAAS,CAAA,KAAM,UAAA,CAAW,cAAc,UAAA,CAAW,OAAA,CAAA;AACjG,EAAA,MAAM,mBAAA,GAAsB,UAAA,CAAW,MAAA,GAAS,CAAA,IAAK,UAAA,CAAW,OAAA;AAEhE,EAAAC,wDAAA,CAAoB;AAAA,IAClB,SAAA;AAAA,IACA,mBAAmB,gBAAA,IAAoB,0BAAA;AAAA,IACvC,YAAA,EAAc,cAAA;AAAA,IACd,WAAW,CAAA,OAAA,KAAW;AACpB,MAAA,IAAI,YAAY,MAAA,EAAW;AACzB,QAAA,YAAA,CAAa,KAAK,CAAA;AAClB,QAAA;AAAA,MACF;AACA,MAAA,eAAA,CAAgB,OAAO,CAAA;AAAA,IACzB,CAAA;AAAA,IACA,eAAe,SAAA,CAAU;AAAA,GAC1B,CAAA;AAED,EAAA,MAAM,sBAAsBC,sBAAA,CAAY;AAAA,IACtC,UAAA,EAAY,OAAO,eAAA,KAAuC;AACxD,MAAA,MAAM,aAAA,GAAgB,MAAM,WAAA,CAAY,UAAA,CAAW;AAAA,QACjD,QAAA,EAAU;AAAA,UACR,iBAAA;AAAA,UACA,UAAA;AAAA,UACA,UAAA;AAAA,UACA,QAAA;AAAA,UACA,iBAAA;AAAA,UACA,eAAA;AAAA,UACA,UAAU,WAAA,EAAY;AAAA,UACtB,QAAQ,WAAA;AAAY,SACtB;AAAA,QACA,OAAA,EAAS,MAAMC,gDAAA,CAAoB,OAAA,EAAS,UAAU,UAAA,EAAY,eAAA,EAAiB,UAAU,MAAM;AAAA,OACpG,CAAA;AACD,MAAA,MAAM,mBAAA,GAAsB,CAAC,GAAG,aAAA,CAAc,SAAS,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,EAAM,KAAA,KAAU,IAAA,CAAK,OAAA,GAAU,MAAM,OAAO,CAAA;AAC3G,MAAA,MAAM,mBAAmB,mBAAA,CAAoB,SAAA,CAAU,eAAa,SAAA,CAAU,OAAA,KAAY,UAAU,OAAO,CAAA;AAC3G,MAAA,MAAM,iBAAA,GAAoB,gBAAA,IAAoB,CAAA,GAAI,gBAAA,GAAmB,CAAA;AACrE,MAAA,MAAM,YAAA,GAAe,oBAAoB,iBAAiB,CAAA;AAC1D,MAAA,MAAM,OAAA,CAAQ,GAAA;AAAA,QACZV,kDAAA,CAAsB,mBAAA,EAAqB,iBAAiB,CAAA,CAAE,GAAA;AAAA,UAAI,CAAA,UAAA,KAChE,YAAY,UAAA,CAAW;AAAA,YACrB,QAAA,EAAU,CAAC,iBAAA,EAAmB,UAAA,EAAY,YAAY,QAAA,EAAU,YAAA,EAAc,iBAAiB,UAAU,CAAA;AAAA,YACzG,SAAS,MAAMW,2CAAA,CAAe,SAAS,QAAA,EAAU,UAAA,EAAY,iBAAiB,UAAU;AAAA,WACzF;AAAA;AACH,OACF;AACA,MAAA,IAAI,WAAW,MAAA,GAAS,CAAA,IAAK,YAAA,IAAgB,YAAA,CAAa,cAAc,oBAAA,EAAsB;AAC5F,QAAA,MAAM,YAAY,UAAA,CAAW;AAAA,UAC3B,QAAA,EAAU;AAAA,YACR,iBAAA;AAAA,YACA,UAAA;AAAA,YACA,UAAA;AAAA,YACA,QAAA;AAAA,YACA,aAAA;AAAA,YACA,eAAA;AAAA,YACA,YAAA,CAAa;AAAA,WACf;AAAA,UACA,OAAA,EAAS,MAAMC,4CAAA,CAAgB,OAAA,EAAS,UAAU,UAAA,EAAY,eAAA,EAAiB,aAAa,UAAU;AAAA,SACvG,CAAA;AAAA,MACH;AACA,MAAA,OAAO,EAAE,eAAA,EAAiB,WAAA,EAAa,YAAA,EAAc,UAAA,EAAW;AAAA,IAClE,CAAA;AAAA,IACA,SAAA,EAAW,CAAC,EAAE,eAAA,EAAiB,aAAY,KAAM;AAC/C,MAAA,cAAA,CAAe,eAAe,CAAA;AAC9B,MAAA,qBAAA,CAAsB,MAAS,CAAA;AAE/B,MAAA,IAAI,WAAA,IAAe,WAAA,KAAgB,eAAA,EAAiB,eAAA,CAAgB,WAAW,CAAA;AAAA,IACjF,CAAA;AAAA,IACA,OAAA,EAAS,MAAM,qBAAA,CAAsB,MAAS;AAAA,GAC/C,CAAA;AAED,EAAA,IAAI,eAAe,SAAA,EAAW;AAC5B,IAAA,uBACEC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,eAAA,oBAAmBC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAA8C,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,qCAChGC,wDAAA,EAAA,EAAuB;AAAA,KAAA,EAC1B,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,cAAA,CAAe,OAAA,IAAW,YAAA,IAAgB,mBAAA,EAAqB;AACjE,IAAA,uBACEH,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,eAAA,oBAAmBC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAA8C,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,sBACjGA,cAAA;AAAA,QAACE,8CAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,mCAAA;AAAA,UACR,SAAS,MAAM;AACb,YAAA,YAAA,CAAa,KAAK,CAAA;AAClB,YAAA,KAAK,eAAe,OAAA,EAAQ;AAC5B,YAAA,KAAK,OAAA,CAAQ,IAAI,WAAA,CAAY,GAAA,CAAI,WAAS,KAAA,CAAM,OAAA,EAAS,CAAC,CAAA;AAC1D,YAAA,IAAI,WAAW,MAAA,GAAS,CAAA,IAAK,gBAAA,EAAkB,KAAK,WAAW,OAAA,EAAQ;AAAA,UACzE,CAAA;AAAA,UACA,SAAS,mBAAA,GAAsB,MAAM,aAAA,CAAc,EAAE,CAAA,GAAI;AAAA;AAAA;AAC3D,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,uBACEJ,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,eAAA,oBAAmBC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAA8C,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,sBACjGA,cAAA;AAAA,QAACG,6DAAA;AAAA,QAAA;AAAA,UACC,aAAA;AAAA,UACA,UAAU,aAAA,CAAc,IAAA;AAAA,UACxB,aAAA,EAAe,sBAAA;AAAA,UACf,YAAA,EAAY;AAAA;AAAA;AACd,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,uBACEL,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACZ,QAAA,EAAA;AAAA,MAAA,eAAA,oBAAmBE,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EAAoB,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,sBACvEA,cAAA;AAAA,QAACI,4CAAA;AAAA,QAAA;AAAA,UACC,SAAA;AAAA,UACA,aAAA,EAAe,qBAAA;AAAA,UACf,cAAA;AAAA,UACA,OAAA,EAAS,QAAA,GAAWC,iDAAA,CAAqB,QAAA,EAAU,MAAS,CAAA,GAAI,EAAA;AAAA,UAChE,SAAA;AAAA,UACA,eAAA,EAAiB,mBAAA;AAAA,UACjB,gBAAA,EAAkB;AAAA;AAAA,OACpB;AAAA,qCACCC,6DAAA,EAAA,EAA4B;AAAA,KAAA,EAC/B,CAAA;AAAA,EAEJ;AAEA,EAAA,IAAI,CAAC,WAAA,IAAe,CAAC,QAAQ,CAAC,YAAA,IAAgB,sBAAsB,CAAA,EAAG;AACrE,IAAA,uBACER,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,MAAA,eAAA,oBAAmBC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4CAAA,EAA8C,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,sBACjGA,cAAA;AAAA,QAACG,6DAAA;AAAA,QAAA;AAAA,UACC,aAAA;AAAA,UACA,UAAU,aAAA,CAAc,IAAA;AAAA,UACxB,aAAA,EAAe;AAAA;AAAA;AACjB,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AACpB,EAAA,MAAM,kBAAkB,CAAC,SAAA,KACvBI,iDAAmB,IAAA,EAAM,SAAA,CAAU,OAAO,EAAA,EAAI,SAAA,CAAU,KAAK,CAAA,KAAM,MAAA,IACnEC,iDAAmB,IAAA,EAAM,SAAA,CAAU,OAAO,EAAA,EAAI,SAAA,CAAU,KAAK,CAAA,KAAM,MAAA;AACrE,EAAA,MAAM,eAAA,GAAkB,CAAC,SAAA,KAAwC;AAC/D,IAAA,MAAM,aAAA,GACJD,gDAAA,CAAmB,IAAA,EAAM,SAAA,CAAU,OAAO,EAAA,EAAI,SAAA,CAAU,KAAK,CAAA,IAC7DC,iDAAmB,IAAA,EAAM,SAAA,CAAU,MAAA,CAAO,EAAA,EAAI,UAAU,KAAK,CAAA;AAC/D,IAAA,IAAI,CAAC,iBAAiB,UAAA,CAAW,IAAA,CAAK,YAAU,MAAA,CAAO,UAAA,KAAe,aAAA,CAAc,UAAU,CAAA,EAAG;AACjG,IAAA,IAAI,aAAA,CAAc,SAAS,OAAA,EAAS;AAClC,MAAA,kBAAA,CAAmB,MAAS,CAAA;AAC5B,MAAA,eAAA,CAAgB,aAAa,CAAA;AAC7B,MAAA,IAAI,kBAAkB,aAAA,CAAc,CAAA,OAAA,KAAW,CAAC,GAAG,OAAA,EAAS,aAAa,CAAC,CAAA;AAAA,IAC5E,CAAA,MAAO;AACL,MAAA,eAAA,CAAgB,MAAS,CAAA;AACzB,MAAA,kBAAA,CAAmB,cAAc,UAAU,CAAA;AAAA,IAC7C;AAAA,EACF,CAAA;AACA,EAAA,MAAM,qBAAA,GAAwB,mBAC1B,MAAA,GACA,oEAAA;AACJ,EAAA,MAAM,cAAA,GAAiB,WAAW,MAAA,GAAS,CAAA,IAAK,WAAW,IAAA,KAAS,MAAA,IAAa,IAAA,CAAK,QAAA,CAAS,UAAA,KAAe,CAAA;AAC9G,EAAA,MAAM,uBAAA,GAA0B,CAAC,eAAA,KAAuC;AACtE,IAAA,IAAI,oBAAoB,SAAA,EAAW;AACnC,IAAA,YAAA,CAAa,KAAK,CAAA;AAClB,IAAA,eAAA,CAAgB,MAAS,CAAA;AACzB,IAAA,kBAAA,CAAmB,MAAS,CAAA;AAC5B,IAAA,MAAM,iBAAA,GAAoBC,qDAAA,CAAwB,WAAA,EAAa,eAAe,CAAA;AAC9E,IAAA,qBAAA,CAAsB,iBAAiB,CAAA;AACvC,IAAA,mBAAA,CAAoB,OAAO,iBAAiB,CAAA;AAAA,EAC9C,CAAA;AACA,EAAA,MAAM,kBAAkB,UAAA,CAAW,MAAA,GAAS,CAAA,IAAK,gBAAA,IAAoB,WAAW,IAAA,KAAS,MAAA;AACzF,EAAA,MAAM,cAAc,eAAA,GAAkBC,gDAAA,CAAmB,IAAA,EAAM,UAAA,EAAY,eAAe,CAAA,GAAI,MAAA;AAC9F,EAAA,MAAM,UAAA,GAAa,eAAA,GACfA,gDAAA,CAAmB,IAAA,EAAM,UAAA,EAAY,eAAA,GAAkB,EAAE,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,eAAA,EAAgB,GAAI,MAAS,CAAA,GACjH,MAAA;AACJ,EAAA,MAAM,SAAA,GAAYC,mDAAsB,UAAU,CAAA;AAClD,EAAA,MAAM,kBAAA,GAAqBC,0CAAA,CAAe,sBAAA,EAAwB,WAAW,CAAA;AAC7E,EAAA,MAAM,kBACJ,QAAA,KAAa,MAAA,GACT,6CAA6C,gBAAA,CAAiB,kBAAA,CAAmB,IAAI,CAAA,IAAA,KAAQC,uCAAA,CAAY,sBAAA,EAAwB,IAAI,EAAE,iBAAA,EAAmB,CAAC,CAAC,CAAA,8BAAA,CAAA,GAC5J,kBAAkB,QAAQ,CAAA;AAChC,EAAA,MAAM,cAAA,GAAiB,YAAA,CAAa,OAAA,CAAQ,GAAA,CAAI,CAAA,MAAA,MAAW;AAAA,IACzD,GAAG,MAAA;AAAA,IACH,KAAA,EAAOA,uCAAA,CAAY,sBAAA,EAAwB,MAAA,CAAO,EAAE;AAAA,GACtD,CAAE,CAAA;AAEF,EAAA,uBACEb,cAAA,CAACc,6DAAyB,QAAA,EAAzB,EAAkC,OAAO,wBAAA,EACxC,QAAA,kBAAAhB,eAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8BAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2DAAA,EACb,QAAA,EAAA;AAAA,sBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2CAAA,EACb,QAAA,EAAA;AAAA,wBAAAE,cAAA;AAAA,UAACe,aAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,QAAA;AAAA,YACP,UAAA,EAAW,MAAA;AAAA,YACX,aAAA,EAAe,oBAAA;AAAA,YACf,SAAA,EAAU,OAAA;AAAA,YAEV,QAAA,kBAAAjB,eAAA,CAACkB,gBAAA,EAAA,EAAQ,OAAA,EAAQ,YAAA,EACf,QAAA,EAAA;AAAA,8BAAAhB,cAAA,CAACiB,kCAAA,EAAA,EAAY,OAAM,MAAA,EAAO,IAAA,iCAAOC,qBAAA,EAAA,EAAU,CAAA,EAAI,OAAM,MAAA,EAAO,CAAA;AAAA,8BAC5DlB,cAAA,CAACiB,sCAAY,KAAA,EAAM,SAAA,EAAU,sBAAMjB,cAAA,CAACmB,0BAAA,EAAA,EAAe,CAAA,EAAI,KAAA,EAAM,SAAA,EAAU,CAAA;AAAA,8BACvEnB,cAAA,CAACiB,sCAAY,KAAA,EAAM,WAAA,EAAY,sBAAMjB,cAAA,CAACoB,4BAAA,EAAA,EAAiB,CAAA,EAAI,KAAA,EAAM,WAAA,EAAY;AAAA,aAAA,EAC/E;AAAA;AAAA,SACF;AAAA,wBACApB,cAAA,CAACqB,gEAAA,EAAA,EAA2B,aAAA,EAAe,sBAAA,EAAwB;AAAA,OAAA,EACrE,CAAA;AAAA,MACC;AAAA,KAAA,EACH,CAAA;AAAA,oBACArB,cAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,oCAAA,EAAsC,QAAA,EAAA,eAAA,EAAgB,CAAA;AAAA,mCAClEsB,6DAAA,EAAA,EAAsB,QAAA,EAAU,aAAA,CAAc,IAAA,EAAM,eAAe,sBAAA,EAAwB,CAAA;AAAA,IAC3F,aAAa,SAAA,mBACZtB,cAAA;AAAA,MAACuB,oCAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA,EAAe;AAAA;AAAA,KACjB,GACE,aAAa,WAAA,mBACfvB,cAAA;AAAA,MAACwB,wCAAA;AAAA,MAAA;AAAA,QACC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAA,EAAe,qBAAA;AAAA,QACf,gBAAA,EAAkB,cAAA;AAAA,QAClB,aAAA,EAAe;AAAA;AAAA,wBAGjB1B,eAAA,CAAAC,mBAAA,EAAA,EACE,QAAA,EAAA;AAAA,sBAAAC,cAAA;AAAA,QAACI,4CAAA;AAAA,QAAA;AAAA,UACC,SAAA;AAAA,UACA,aAAA,EAAe,qBAAA;AAAA,UACf,cAAA;AAAA,UACA,OAAA,EAAS,CAAA,EAAG,UAAA,CAAW,MAAA,GAAS,CAAA,GAAK,gBAAA,GAAmB,aAAA,GAAgB,wBAAA,GAA4B,EAAE,CAAA,EAAGC,iDAAA,CAAqB,QAAA,EAAU,IAAI,CAAC,CAAA,CAAA;AAAA,UAC7I,SAAA;AAAA,UACA,eAAA,EAAiB,mBAAA;AAAA,UACjB,gBAAA,EAAkB;AAAA;AAAA,OACpB;AAAA,MACC,UAAA,CAAW,SAAS,CAAA,mBACnBL,cAAA;AAAA,QAACyB,8CAAA;AAAA,QAAA;AAAA,UACC,UAAA,EAAY,UAAA;AAAA,UACZ,kBAAA,EAAoB,eAAA,GAAkB,IAAA,CAAK,QAAA,CAAS,UAAA,GAAa,MAAA;AAAA,UACjE,eAAA,EAAiB,YAAY,QAAA,CAAS,UAAA;AAAA,UACtC,eAAe,CAAC,gBAAA;AAAA,UAChB,eAAe,CAAA,SAAA,KAAa;AAC1B,YAAA,IAAI,SAAA,CAAU,SAAS,OAAA,EAAS;AAC9B,cAAA,kBAAA,CAAmB,MAAS,CAAA;AAC5B,cAAA,eAAA,CAAgB,SAAS,CAAA;AAAA,YAC3B,CAAA,MAAO;AACL,cAAA,eAAA,CAAgB,MAAS,CAAA;AACzB,cAAA,kBAAA,CAAmB,UAAU,UAAU,CAAA;AAAA,YACzC;AAAA,UACF,CAAA;AAAA,UACA,QAAA,EAAU,CAAA,UAAA,KACR,aAAA,CAAc,CAAA,OAAA,KAAW,OAAA,CAAQ,OAAO,CAAA,MAAA,KAAU,MAAA,CAAO,UAAA,KAAe,UAAU,CAAC,CAAA;AAAA,UAErF,OAAA,EAAS,MAAM,aAAA,CAAc,EAAE;AAAA;AAAA,OACjC,GACE,IAAA;AAAA,MACH,iCACCzB,cAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,mFAAA,EAAoF,+HAGvG,CAAA,GACE,YAAA,CAAa,OAAA,CAAQ,MAAA,KAAW,oBAClCA,cAAA,CAAC,SAAA,EAAA,EAAQ,SAAA,EAAU,mFAAA,EAAoF,iKAGvG,CAAA,mBAEAA,cAAA;AAAA,QAAC0B,4BAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,cAAA;AAAA,UACT,SAAS,YAAA,CAAa,OAAA;AAAA,UACtB,MAAA;AAAA,UACA,MAAA;AAAA,UACA,WAAA,EAAa,eAAA;AAAA,UACb,eAAA;AAAA,UACA,qBAAA;AAAA,UACA,aAAA,EAAe,uBAAA;AAAA,UACf,aAAa,kBAAA,IAAsB,WAAA;AAAA,UACnC,iBAAiB,mBAAA,CAAoB;AAAA;AAAA,OACvC;AAAA,MAED,mBAAA,CAAoB,4BACnB1B,cAAA,CAAC,GAAA,EAAA,EAAE,WAAU,8CAAA,EAA+C,IAAA,EAAK,QAAA,EAAS,QAAA,EAAA,uDAAA,EAE1E,CAAA,GACE,IAAA;AAAA,MACH,mBAAA,CAAoB,0BACnBA,cAAA,CAAC,GAAA,EAAA,EAAE,WAAU,2BAAA,EAA4B,IAAA,EAAK,OAAA,EAAQ,QAAA,EAAA,iFAAA,EAEtD,CAAA,GACE;AAAA,KAAA,EACN,CAAA;AAAA,oBAEFA,cAAA;AAAA,MAAC2B,4CAAA;AAAA,MAAA;AAAA,QAEC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAY,QAAA,CAAS,UAAA;AAAA,QACrB,eAAe,QAAA,CAAS,KAAA;AAAA,QACxB,SAAA,EAAW,eAAA;AAAA,QACX,OAAA,EAAS,UAAA;AAAA,QACT,aAAA,EAAe,WAAA;AAAA,QACf,OAAA,EAAS,MAAM,eAAA,CAAgB,MAAS;AAAA,OAAA;AAAA,MARnC,CAAA,EAAG,QAAA,CAAS,UAAU,CAAA,CAAA,EAAI,eAAA,EAAiB,UAAA,IAAc,EAAE,CAAA,CAAA,EAAI,eAAA,EAAiB,OAAA,IAAW,EAAE,CAAA,CAAA,EAAI,SAAS,CAAA;AAAA,KASjH;AAAA,oBACA3B,cAAA;AAAA,MAAC4B,4CAAA;AAAA,MAAA;AAAA,QAEC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAY,QAAA,CAAS,UAAA;AAAA,QACrB,UAAA,EAAY,eAAA;AAAA,QACZ,OAAA,EAAS,UAAA;AAAA,QACT,aAAA,EAAe,UAAA;AAAA,QACf,OAAA,EAAS,MAAM,kBAAA,CAAmB,MAAS;AAAA,OAAA;AAAA,MAPtC,GAAG,QAAA,CAAS,UAAU,IAAI,eAAA,IAAmB,EAAE,IAAI,SAAS,CAAA;AAAA;AAQnE,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"sankey-signals.cjs.js","sources":["../../../src/ee/signals/sankey-signals.tsx"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { ArrowLeftRight, ChartNoAxesGantt, Waypoints } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport { PendingSignalProgress } from './components/signals-empty-state';\nimport { SignalsOverviewPage as SignalsEmptyState } from './components/signals-overview-page';\nimport { fetchThemeFlow, fetchThemePaths, fetchThemeSnapshots, serializeThemeFilters } from './entity-learning-api';\nimport { FlowCard } from './flow-card';\nimport { useEntityLearningProgress } from './hooks/use-entity-learning-progress';\nimport { useSnapshotPlayback } from './hooks/use-snapshot-playback';\nimport { useThemeFlows } from './hooks/use-theme-flows';\nimport { useThemePaths } from './hooks/use-theme-paths';\nimport { useThemeSnapshots } from './hooks/use-theme-snapshots';\nimport { NoiseDetailPanel } from './noise-detail-panel';\nimport {\n buildSignalGraphSummary,\n selectFlowSnapshotIds,\n snapshotSummaryLabel,\n stabilizeThemeFlow,\n} from './sankey-signals-data';\nimport { orderedSignals, signalLabel } from './signal-formatting';\nimport { SignalsErrorState } from './signals-error-state';\nimport { SignalsFrameLoadingSkeleton, SignalsLoadingSkeleton } from './signals-loading-skeleton';\nimport { SnapshotTimeline } from './snapshot-timeline';\nimport { ThemeCompare } from './theme-compare';\nimport { ThemeDetailPanel } from './theme-detail-panel';\nimport {\n buildDrilledThemeFlow,\n findNoiseSelection,\n findSelectionStats,\n findThemeSelection,\n findThemeSelectionById,\n mergeVisibleSignalOrder,\n} from './theme-drilldown-data';\nimport type { SelectedTheme, ThemeSelection } from './theme-drilldown-data';\nimport { ThemeFilterBanner } from './theme-filter-banner';\nimport { ThemeLifelines } from './theme-lifelines';\nimport { TraceIntelligenceContext } from './trace-intelligence-context';\nimport { TraceIntelligenceExplainer } from './trace-intelligence-explainer';\nimport type { TraceSignalName } from './types';\nimport { useTraceIntelligence } from './use-trace-intelligence';\nimport { ViewModeTab } from './view-mode-tab';\nimport type { SignalsViewMode } from './view-mode-tab';\nimport type { SankeyChartNodeSelection } from '@/ds/components/SankeyChart';\nimport { TabList, Tabs } from '@/ds/components/Tabs';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface SankeySignalsProps {\n entityId: string;\n entityType?: string;\n signalNames: TraceSignalName[];\n dateFrom?: Date;\n dateTo?: Date;\n height?: number;\n selectedThemeId: string | undefined;\n onSelectedThemeIdChange: (themeId: string | undefined) => void;\n /** Snapshot id of the timeline frame currently displayed. The parent owns this state. */\n selectedFrameId: string;\n onFrameIdChange: (frameId: string) => void;\n /** Date range control rendered in line with the view mode tabs. */\n dateRangePicker?: React.ReactNode;\n}\n\nconst DRILL_IN_TRACE_LIMIT = 2000;\n\n/** One-line answer to \"what am I looking at?\" for each view, shown under the tabs. */\nconst VIEW_DESCRIPTIONS: Omit<Record<SignalsViewMode, string>, 'flow'> = {\n compare: 'Which themes grew, shrank, appeared, or disappeared between two points in time.',\n lifelines: \"Each theme's share of traces across the whole selected range.\",\n};\n\nfunction formatSignalList(labels: string[]): string {\n if (labels.length < 2) return labels[0] ?? 'trace signal';\n if (labels.length === 2) return labels.join(' and ');\n return `${labels.slice(0, -1).join(', ')}, and ${labels.at(-1)}`;\n}\n\nexport function SankeySignals({\n entityId,\n entityType = 'agent',\n signalNames: initialSignalNames,\n dateFrom,\n dateTo,\n height,\n selectedThemeId,\n onSelectedThemeIdChange,\n selectedFrameId,\n onFrameIdChange,\n dateRangePicker,\n}: SankeySignalsProps) {\n const queryClient = useQueryClient();\n const traceIntelligence = useTraceIntelligence();\n const { cacheScope, request, LinkComponent, signalCatalog } = traceIntelligence;\n const [signalNames, setSignalNames] = useState(() => initialSignalNames);\n const [pendingSignalNames, setPendingSignalNames] = useState<TraceSignalName[]>();\n const snapshotsQuery = useThemeSnapshots(entityId, entityType, signalNames, dateFrom, dateTo);\n const effectiveSignalCatalog = snapshotsQuery.data?.signalCatalog ?? signalCatalog;\n const traceIntelligenceContext = useMemo(\n () => ({ ...traceIntelligence, signalCatalog: effectiveSignalCatalog }),\n [effectiveSignalCatalog, traceIntelligence],\n );\n const snapshots = [...(snapshotsQuery.data?.snapshots ?? [])].sort((left, right) => left.ordinal - right.ordinal);\n const [isPlaying, setIsPlaying] = useState(false);\n const [viewMode, setViewMode] = useState<SignalsViewMode>('flow');\n const [drillStack, setDrillStack] = useState<ThemeSelection[]>([]);\n const [noiseSignalName, setNoiseSignalName] = useState<TraceSignalName>();\n // Pure derivation: the parent owns the frame. The index-0 fallback only covers\n // the transient render where a perspective change swapped the snapshot list.\n const matchedSnapshotIndex = snapshots.findIndex(snapshot => snapshot.snapshotId === selectedFrameId);\n const selectedSnapshotIndex = matchedSnapshotIndex >= 0 ? matchedSnapshotIndex : 0;\n const snapshot = snapshots[selectedSnapshotIndex];\n const totalSnapshots = snapshotsQuery.data?.totalSnapshots ?? snapshot?.total ?? 0;\n const selectSnapshot = (index: number) => {\n const id = snapshots[index]?.snapshotId;\n if (id) onFrameIdChange(id);\n };\n const handleViewModeChange = (nextViewMode: SignalsViewMode) => {\n if (nextViewMode !== 'flow') setIsPlaying(false);\n setViewMode(nextViewMode);\n };\n const handlePlayingChange = (nextIsPlaying: boolean) => {\n // Restart from the first landmark when play is pressed at the end.\n if (nextIsPlaying && selectedSnapshotIndex === snapshots.length - 1) selectSnapshot(0);\n setIsPlaying(nextIsPlaying);\n };\n const setThemeDetails = (selection: SelectedTheme | undefined) => {\n onSelectedThemeIdChange(selection?.themeId);\n };\n // Compare cards and lifeline points open details for the theme at the\n // landmark they were clicked on, so the panel's snapshot follows the click.\n const openThemeDetailsAt = (selection: ThemeSelection, snapshotIndex: number) => {\n if (selection.kind !== 'theme') return;\n selectSnapshot(snapshotIndex);\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n };\n\n // Undefined at the last landmark so playback stops instead of looping.\n const nextSnapshotId = snapshots[selectedSnapshotIndex + 1]?.snapshotId;\n const flowSnapshotIds = selectFlowSnapshotIds(snapshots, selectedSnapshotIndex);\n const flowQueries = useThemeFlows(entityId, entityType, signalNames, flowSnapshotIds);\n const flowQuery = flowQueries[flowSnapshotIds.indexOf(snapshot?.snapshotId ?? '')];\n const currentFlow = flowQuery?.data;\n // The loading skeleton tracks only the selected snapshot's flow; prefetched\n // neighbors warm the cache in the background without blocking the chart.\n const isFlowPending = flowQuery?.isPending ?? false;\n // Errors stay window-wide: a failed preload surfaces the retry state instead\n // of letting playback advance into a broken frame.\n const hasFlowError = flowQueries.some(query => query.isError);\n const isFlowWindowBusy = flowQueries.some(query => query.isPending) || hasFlowError;\n const windowFlows = useMemo(() => flowQueries.flatMap(query => (query.data ? [query.data] : [])), [flowQueries]);\n const stableUnfilteredFlow = useMemo(\n () => (currentFlow ? stabilizeThemeFlow(currentFlow, windowFlows) : undefined),\n [currentFlow, windowFlows],\n );\n const drillInAvailable = Boolean(currentFlow && currentFlow.snapshot.traceCount <= DRILL_IN_TRACE_LIMIT);\n const pathsQuery = useThemePaths(\n entityId,\n entityType,\n signalNames,\n snapshot?.snapshotId,\n drillInAvailable && drillStack.length > 0,\n );\n const flow = useMemo(() => {\n if (!stableUnfilteredFlow || drillStack.length === 0 || !pathsQuery.data) return stableUnfilteredFlow;\n\n const drilledFlow = buildDrilledThemeFlow(stableUnfilteredFlow, pathsQuery.data, drillStack);\n return stabilizeThemeFlow(drilledFlow, [stableUnfilteredFlow, drilledFlow]);\n }, [drillStack, pathsQuery.data, stableUnfilteredFlow]);\n const graphSummary = useMemo(() => (flow ? buildSignalGraphSummary(flow) : undefined), [flow]);\n const detailSelection =\n stableUnfilteredFlow && selectedThemeId ? findThemeSelectionById(stableUnfilteredFlow, selectedThemeId) : undefined;\n const populatedStageCount = currentFlow?.stages.filter(stage => stage.nodes.length > 0).length ?? 0;\n const hasPendingEnabledSignals = effectiveSignalCatalog.some(signal => signal.enabled && signal.status !== 'ready');\n const shouldLoadProgress =\n snapshotsQuery.isSuccess &&\n !snapshotsQuery.isError &&\n (hasPendingEnabledSignals ||\n !snapshot ||\n Boolean(currentFlow && (!flow || !graphSummary || populatedStageCount < 2)));\n const progressQuery = useEntityLearningProgress(entityId, entityType, shouldLoadProgress);\n const isPlaybackBlockedByDrillIn = drillStack.length > 0 && (pathsQuery.isFetching || pathsQuery.isError);\n const hasActivePathsError = drillStack.length > 0 && pathsQuery.isError;\n\n useSnapshotPlayback({\n isPlaying,\n isPlaybackBlocked: isFlowWindowBusy || isPlaybackBlockedByDrillIn,\n nextSnapshot: nextSnapshotId,\n onAdvance: frameId => {\n if (frameId === undefined) {\n setIsPlaying(false);\n return;\n }\n onFrameIdChange(frameId);\n },\n snapshotCount: snapshots.length,\n });\n\n const perspectiveMutation = useMutation({\n mutationFn: async (nextSignalNames: TraceSignalName[]) => {\n const nextSnapshots = await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-snapshots',\n nextSignalNames,\n dateFrom?.toISOString(),\n dateTo?.toISOString(),\n ],\n queryFn: () => fetchThemeSnapshots(request, entityId, entityType, nextSignalNames, dateFrom, dateTo),\n });\n const sortedNextSnapshots = [...nextSnapshots.snapshots].sort((left, right) => left.ordinal - right.ordinal);\n const matchedNextIndex = sortedNextSnapshots.findIndex(candidate => candidate.ordinal === snapshot?.ordinal);\n const nextSelectedIndex = matchedNextIndex >= 0 ? matchedNextIndex : 0;\n const nextSnapshot = sortedNextSnapshots[nextSelectedIndex];\n await Promise.all(\n selectFlowSnapshotIds(sortedNextSnapshots, nextSelectedIndex).map(snapshotId =>\n queryClient.fetchQuery({\n queryKey: ['entity-learning', cacheScope, entityType, entityId, 'theme-flow', nextSignalNames, snapshotId],\n queryFn: () => fetchThemeFlow(request, entityId, entityType, nextSignalNames, snapshotId),\n }),\n ),\n );\n if (drillStack.length > 0 && nextSnapshot && nextSnapshot.traceCount <= DRILL_IN_TRACE_LIMIT) {\n await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-paths',\n nextSignalNames,\n nextSnapshot.snapshotId,\n ],\n queryFn: () => fetchThemePaths(request, entityId, entityType, nextSignalNames, nextSnapshot.snapshotId),\n });\n }\n return { nextSignalNames, nextFrameId: nextSnapshot?.snapshotId };\n },\n onSuccess: ({ nextSignalNames, nextFrameId }) => {\n setSignalNames(nextSignalNames);\n setPendingSignalNames(undefined);\n // Keep the parent-owned frame pointing at a snapshot that exists in the new perspective.\n if (nextFrameId && nextFrameId !== selectedFrameId) onFrameIdChange(nextFrameId);\n },\n onError: () => setPendingSignalNames(undefined),\n });\n\n if (snapshotsQuery.isPending) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsLoadingSkeleton />\n </>\n );\n }\n\n if (snapshotsQuery.isError || hasFlowError || hasActivePathsError) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsErrorState\n message=\"Unable to load trace signal flow.\"\n onRetry={() => {\n setIsPlaying(false);\n void snapshotsQuery.refetch();\n void Promise.all(flowQueries.map(query => query.refetch()));\n if (drillStack.length > 0 && drillInAvailable) void pathsQuery.refetch();\n }}\n onClear={hasActivePathsError ? () => setDrillStack([]) : undefined}\n />\n </>\n );\n }\n\n if (!snapshot) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n isRangeEmpty\n />\n </>\n );\n }\n\n if (isFlowPending) {\n return (\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n {dateRangePicker && <div className=\"flex justify-end\">{dateRangePicker}</div>}\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={snapshot ? snapshotSummaryLabel(snapshot, undefined) : ''}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n <SignalsFrameLoadingSkeleton />\n </div>\n );\n }\n\n if (!currentFlow || !flow || !graphSummary || populatedStageCount < 2) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n />\n </>\n );\n }\n\n const stages = flow.stages;\n const isNodeClickable = (selection: SankeyChartNodeSelection) =>\n findNoiseSelection(flow, selection.column.id, selection.value) !== undefined ||\n findThemeSelection(flow, selection.column.id, selection.value) !== undefined;\n const handleNodeClick = (selection: SankeyChartNodeSelection) => {\n const nextSelection =\n findNoiseSelection(flow, selection.column.id, selection.value) ??\n findThemeSelection(flow, selection.column.id, selection.value);\n if (!nextSelection || drillStack.some(filter => filter.signalName === nextSelection.signalName)) return;\n if (nextSelection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(nextSelection);\n if (drillInAvailable) setDrillStack(current => [...current, nextSelection]);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(nextSelection.signalName);\n }\n };\n const drillInDisabledReason = drillInAvailable\n ? undefined\n : 'Drill-in is unavailable for snapshots with more than 2,000 traces.';\n const isDrilledEmpty = drillStack.length > 0 && pathsQuery.data !== undefined && flow.snapshot.traceCount === 0;\n const handleSignalOrderChange = (nextSignalNames: TraceSignalName[]) => {\n if (perspectiveMutation.isPending) return;\n setIsPlaying(false);\n setThemeDetails(undefined);\n setNoiseSignalName(undefined);\n const mergedSignalNames = mergeVisibleSignalOrder(signalNames, nextSignalNames);\n setPendingSignalNames(mergedSignalNames);\n perspectiveMutation.mutate(mergedSignalNames);\n };\n const filtersResolved = drillStack.length > 0 && drillInAvailable && pathsQuery.data !== undefined;\n const detailStats = filtersResolved ? findSelectionStats(flow, drillStack, detailSelection) : undefined;\n const noiseStats = filtersResolved\n ? findSelectionStats(flow, drillStack, noiseSignalName ? { kind: 'noise', signalName: noiseSignalName } : undefined)\n : undefined;\n const filterKey = serializeThemeFilters(drillStack);\n const catalogSignalNames = orderedSignals(effectiveSignalCatalog, signalNames);\n const viewDescription =\n viewMode === 'flow'\n ? `How this agent's traces distribute across ${formatSignalList(catalogSignalNames.map(name => signalLabel(effectiveSignalCatalog, name).toLocaleLowerCase()))} themes at this point in time.`\n : VIEW_DESCRIPTIONS[viewMode];\n const labeledColumns = graphSummary.columns.map(column => ({\n ...column,\n label: signalLabel(effectiveSignalCatalog, column.id),\n }));\n\n return (\n <TraceIntelligenceContext.Provider value={traceIntelligenceContext}>\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-4\">\n <Tabs<SignalsViewMode>\n value={viewMode}\n defaultTab=\"flow\"\n onValueChange={handleViewModeChange}\n className=\"w-fit\"\n >\n <TabList variant=\"pill-ghost\">\n <ViewModeTab value=\"flow\" icon={<Waypoints />} label=\"Flow\" />\n <ViewModeTab value=\"compare\" icon={<ArrowLeftRight />} label=\"Compare\" />\n <ViewModeTab value=\"lifelines\" icon={<ChartNoAxesGantt />} label=\"Lifelines\" />\n </TabList>\n </Tabs>\n <TraceIntelligenceExplainer signalCatalog={effectiveSignalCatalog} />\n </div>\n {dateRangePicker}\n </div>\n <Txt variant=\"caption\" tone=\"muted\">\n {viewDescription}\n </Txt>\n <PendingSignalProgress progress={progressQuery.data} signalCatalog={effectiveSignalCatalog} />\n {viewMode === 'compare' ? (\n <ThemeCompare\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : viewMode === 'lifelines' ? (\n <ThemeLifelines\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n selectedIndex={selectedSnapshotIndex}\n onSnapshotSelect={selectSnapshot}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : (\n <>\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={`${drillStack.length > 0 ? (drillInAvailable ? 'Filtered · ' : 'Filters unavailable · ') : ''}${snapshotSummaryLabel(snapshot, flow)}`}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n {drillStack.length > 0 ? (\n <ThemeFilterBanner\n selections={drillStack}\n filteredTraceCount={filtersResolved ? flow.snapshot.traceCount : undefined}\n totalTraceCount={currentFlow.snapshot.traceCount}\n isUnavailable={!drillInAvailable}\n onViewDetails={selection => {\n if (selection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(selection.signalName);\n }\n }}\n onRemove={signalName =>\n setDrillStack(current => current.filter(filter => filter.signalName !== signalName))\n }\n onClear={() => setDrillStack([])}\n />\n ) : null}\n {isDrilledEmpty ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n This theme is not present in the selected snapshot. Use the clear filter action above to return to the\n full flow.\n </section>\n ) : graphSummary.records.length === 0 ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n No cross-signal flow for this snapshot — its trace signals have not overlapped on shared traces yet.\n Pick another snapshot from the timeline below.\n </section>\n ) : (\n <FlowCard\n columns={labeledColumns}\n records={graphSummary.records}\n stages={stages}\n height={height}\n onNodeClick={handleNodeClick}\n isNodeClickable={isNodeClickable}\n drillInDisabledReason={drillInDisabledReason}\n onOrderChange={handleSignalOrderChange}\n signalOrder={pendingSignalNames ?? signalNames}\n reorderDisabled={perspectiveMutation.isPending}\n />\n )}\n {perspectiveMutation.isPending ? (\n <Txt variant=\"caption\" tone=\"muted\" font=\"mono\" role=\"status\">\n Reloading snapshots for new trace signal perspective…\n </Txt>\n ) : null}\n {perspectiveMutation.isError ? (\n <Txt variant=\"caption\" className=\"text-destructive-indicator\" role=\"alert\">\n Unable to load that trace signal perspective. Try reordering the columns again.\n </Txt>\n ) : null}\n </>\n )}\n <ThemeDetailPanel\n key={`${snapshot.snapshotId}:${detailSelection?.signalName ?? ''}:${detailSelection?.themeId ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n snapshotTotal={snapshot.total}\n selection={detailSelection}\n filters={drillStack}\n filteredStats={detailStats}\n onClose={() => setThemeDetails(undefined)}\n />\n <NoiseDetailPanel\n key={`${snapshot.snapshotId}:${noiseSignalName ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n signalName={noiseSignalName}\n filters={drillStack}\n filteredStats={noiseStats}\n onClose={() => setNoiseSignalName(undefined)}\n />\n </div>\n </TraceIntelligenceContext.Provider>\n );\n}\n"],"names":["useQueryClient","useTraceIntelligence","useState","useThemeSnapshots","useMemo","snapshot","selectFlowSnapshotIds","useThemeFlows","stabilizeThemeFlow","useThemePaths","buildDrilledThemeFlow","buildSignalGraphSummary","findThemeSelectionById","useEntityLearningProgress","useSnapshotPlayback","useMutation","fetchThemeSnapshots","fetchThemeFlow","fetchThemePaths","jsxs","Fragment","jsx","SignalsLoadingSkeleton","SignalsErrorState","SignalsEmptyState","SnapshotTimeline","snapshotSummaryLabel","SignalsFrameLoadingSkeleton","findNoiseSelection","findThemeSelection","mergeVisibleSignalOrder","findSelectionStats","serializeThemeFilters","orderedSignals","signalLabel","TraceIntelligenceContext","Tabs","TabList","ViewModeTab","Waypoints","ArrowLeftRight","ChartNoAxesGantt","TraceIntelligenceExplainer","Txt","PendingSignalProgress","ThemeCompare","ThemeLifelines","ThemeFilterBanner","FlowCard","ThemeDetailPanel","NoiseDetailPanel"],"mappings":"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"}
|
|
@@ -26,7 +26,8 @@ import { TraceIntelligenceContext } from './trace-intelligence-context.es.js';
|
|
|
26
26
|
import { TraceIntelligenceExplainer } from './trace-intelligence-explainer.es.js';
|
|
27
27
|
import { useTraceIntelligence } from './use-trace-intelligence.es.js';
|
|
28
28
|
import { ViewModeTab } from './view-mode-tab.es.js';
|
|
29
|
-
import { a as Tabs, T as TabList } from '../../tabs-root-
|
|
29
|
+
import { a as Tabs, T as TabList } from '../../tabs-root-4vL8SHCO.js';
|
|
30
|
+
import { T as Txt } from '../../Txt-BP1SRHmL.js';
|
|
30
31
|
|
|
31
32
|
const DRILL_IN_TRACE_LIMIT = 2e3;
|
|
32
33
|
const VIEW_DESCRIPTIONS = {
|
|
@@ -314,7 +315,7 @@ function SankeySignals({
|
|
|
314
315
|
] }),
|
|
315
316
|
dateRangePicker
|
|
316
317
|
] }),
|
|
317
|
-
/* @__PURE__ */ jsx(
|
|
318
|
+
/* @__PURE__ */ jsx(Txt, { variant: "caption", tone: "muted", children: viewDescription }),
|
|
318
319
|
/* @__PURE__ */ jsx(PendingSignalProgress, { progress: progressQuery.data, signalCatalog: effectiveSignalCatalog }),
|
|
319
320
|
viewMode === "compare" ? /* @__PURE__ */ jsx(
|
|
320
321
|
ThemeCompare,
|
|
@@ -386,8 +387,8 @@ function SankeySignals({
|
|
|
386
387
|
reorderDisabled: perspectiveMutation.isPending
|
|
387
388
|
}
|
|
388
389
|
),
|
|
389
|
-
perspectiveMutation.isPending ? /* @__PURE__ */ jsx(
|
|
390
|
-
perspectiveMutation.isError ? /* @__PURE__ */ jsx(
|
|
390
|
+
perspectiveMutation.isPending ? /* @__PURE__ */ jsx(Txt, { variant: "caption", tone: "muted", font: "mono", role: "status", children: "Reloading snapshots for new trace signal perspective…" }) : null,
|
|
391
|
+
perspectiveMutation.isError ? /* @__PURE__ */ jsx(Txt, { variant: "caption", className: "text-destructive-indicator", role: "alert", children: "Unable to load that trace signal perspective. Try reordering the columns again." }) : null
|
|
391
392
|
] }),
|
|
392
393
|
/* @__PURE__ */ jsx(
|
|
393
394
|
ThemeDetailPanel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sankey-signals.es.js","sources":["../../../src/ee/signals/sankey-signals.tsx"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { ArrowLeftRight, ChartNoAxesGantt, Waypoints } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport { PendingSignalProgress } from './components/signals-empty-state';\nimport { SignalsOverviewPage as SignalsEmptyState } from './components/signals-overview-page';\nimport { fetchThemeFlow, fetchThemePaths, fetchThemeSnapshots, serializeThemeFilters } from './entity-learning-api';\nimport { FlowCard } from './flow-card';\nimport { useEntityLearningProgress } from './hooks/use-entity-learning-progress';\nimport { useSnapshotPlayback } from './hooks/use-snapshot-playback';\nimport { useThemeFlows } from './hooks/use-theme-flows';\nimport { useThemePaths } from './hooks/use-theme-paths';\nimport { useThemeSnapshots } from './hooks/use-theme-snapshots';\nimport { NoiseDetailPanel } from './noise-detail-panel';\nimport {\n buildSignalGraphSummary,\n selectFlowSnapshotIds,\n snapshotSummaryLabel,\n stabilizeThemeFlow,\n} from './sankey-signals-data';\nimport { orderedSignals, signalLabel } from './signal-formatting';\nimport { SignalsErrorState } from './signals-error-state';\nimport { SignalsFrameLoadingSkeleton, SignalsLoadingSkeleton } from './signals-loading-skeleton';\nimport { SnapshotTimeline } from './snapshot-timeline';\nimport { ThemeCompare } from './theme-compare';\nimport { ThemeDetailPanel } from './theme-detail-panel';\nimport {\n buildDrilledThemeFlow,\n findNoiseSelection,\n findSelectionStats,\n findThemeSelection,\n findThemeSelectionById,\n mergeVisibleSignalOrder,\n} from './theme-drilldown-data';\nimport type { SelectedTheme, ThemeSelection } from './theme-drilldown-data';\nimport { ThemeFilterBanner } from './theme-filter-banner';\nimport { ThemeLifelines } from './theme-lifelines';\nimport { TraceIntelligenceContext } from './trace-intelligence-context';\nimport { TraceIntelligenceExplainer } from './trace-intelligence-explainer';\nimport type { TraceSignalName } from './types';\nimport { useTraceIntelligence } from './use-trace-intelligence';\nimport { ViewModeTab } from './view-mode-tab';\nimport type { SignalsViewMode } from './view-mode-tab';\nimport type { SankeyChartNodeSelection } from '@/ds/components/SankeyChart';\nimport { TabList, Tabs } from '@/ds/components/Tabs';\n\nexport interface SankeySignalsProps {\n entityId: string;\n entityType?: string;\n signalNames: TraceSignalName[];\n dateFrom?: Date;\n dateTo?: Date;\n height?: number;\n selectedThemeId: string | undefined;\n onSelectedThemeIdChange: (themeId: string | undefined) => void;\n /** Snapshot id of the timeline frame currently displayed. The parent owns this state. */\n selectedFrameId: string;\n onFrameIdChange: (frameId: string) => void;\n /** Date range control rendered in line with the view mode tabs. */\n dateRangePicker?: React.ReactNode;\n}\n\nconst DRILL_IN_TRACE_LIMIT = 2000;\n\n/** One-line answer to \"what am I looking at?\" for each view, shown under the tabs. */\nconst VIEW_DESCRIPTIONS: Omit<Record<SignalsViewMode, string>, 'flow'> = {\n compare: 'Which themes grew, shrank, appeared, or disappeared between two points in time.',\n lifelines: \"Each theme's share of traces across the whole selected range.\",\n};\n\nfunction formatSignalList(labels: string[]): string {\n if (labels.length < 2) return labels[0] ?? 'trace signal';\n if (labels.length === 2) return labels.join(' and ');\n return `${labels.slice(0, -1).join(', ')}, and ${labels.at(-1)}`;\n}\n\nexport function SankeySignals({\n entityId,\n entityType = 'agent',\n signalNames: initialSignalNames,\n dateFrom,\n dateTo,\n height,\n selectedThemeId,\n onSelectedThemeIdChange,\n selectedFrameId,\n onFrameIdChange,\n dateRangePicker,\n}: SankeySignalsProps) {\n const queryClient = useQueryClient();\n const traceIntelligence = useTraceIntelligence();\n const { cacheScope, request, LinkComponent, signalCatalog } = traceIntelligence;\n const [signalNames, setSignalNames] = useState(() => initialSignalNames);\n const [pendingSignalNames, setPendingSignalNames] = useState<TraceSignalName[]>();\n const snapshotsQuery = useThemeSnapshots(entityId, entityType, signalNames, dateFrom, dateTo);\n const effectiveSignalCatalog = snapshotsQuery.data?.signalCatalog ?? signalCatalog;\n const traceIntelligenceContext = useMemo(\n () => ({ ...traceIntelligence, signalCatalog: effectiveSignalCatalog }),\n [effectiveSignalCatalog, traceIntelligence],\n );\n const snapshots = [...(snapshotsQuery.data?.snapshots ?? [])].sort((left, right) => left.ordinal - right.ordinal);\n const [isPlaying, setIsPlaying] = useState(false);\n const [viewMode, setViewMode] = useState<SignalsViewMode>('flow');\n const [drillStack, setDrillStack] = useState<ThemeSelection[]>([]);\n const [noiseSignalName, setNoiseSignalName] = useState<TraceSignalName>();\n // Pure derivation: the parent owns the frame. The index-0 fallback only covers\n // the transient render where a perspective change swapped the snapshot list.\n const matchedSnapshotIndex = snapshots.findIndex(snapshot => snapshot.snapshotId === selectedFrameId);\n const selectedSnapshotIndex = matchedSnapshotIndex >= 0 ? matchedSnapshotIndex : 0;\n const snapshot = snapshots[selectedSnapshotIndex];\n const totalSnapshots = snapshotsQuery.data?.totalSnapshots ?? snapshot?.total ?? 0;\n const selectSnapshot = (index: number) => {\n const id = snapshots[index]?.snapshotId;\n if (id) onFrameIdChange(id);\n };\n const handleViewModeChange = (nextViewMode: SignalsViewMode) => {\n if (nextViewMode !== 'flow') setIsPlaying(false);\n setViewMode(nextViewMode);\n };\n const handlePlayingChange = (nextIsPlaying: boolean) => {\n // Restart from the first landmark when play is pressed at the end.\n if (nextIsPlaying && selectedSnapshotIndex === snapshots.length - 1) selectSnapshot(0);\n setIsPlaying(nextIsPlaying);\n };\n const setThemeDetails = (selection: SelectedTheme | undefined) => {\n onSelectedThemeIdChange(selection?.themeId);\n };\n // Compare cards and lifeline points open details for the theme at the\n // landmark they were clicked on, so the panel's snapshot follows the click.\n const openThemeDetailsAt = (selection: ThemeSelection, snapshotIndex: number) => {\n if (selection.kind !== 'theme') return;\n selectSnapshot(snapshotIndex);\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n };\n\n // Undefined at the last landmark so playback stops instead of looping.\n const nextSnapshotId = snapshots[selectedSnapshotIndex + 1]?.snapshotId;\n const flowSnapshotIds = selectFlowSnapshotIds(snapshots, selectedSnapshotIndex);\n const flowQueries = useThemeFlows(entityId, entityType, signalNames, flowSnapshotIds);\n const flowQuery = flowQueries[flowSnapshotIds.indexOf(snapshot?.snapshotId ?? '')];\n const currentFlow = flowQuery?.data;\n // The loading skeleton tracks only the selected snapshot's flow; prefetched\n // neighbors warm the cache in the background without blocking the chart.\n const isFlowPending = flowQuery?.isPending ?? false;\n // Errors stay window-wide: a failed preload surfaces the retry state instead\n // of letting playback advance into a broken frame.\n const hasFlowError = flowQueries.some(query => query.isError);\n const isFlowWindowBusy = flowQueries.some(query => query.isPending) || hasFlowError;\n const windowFlows = useMemo(() => flowQueries.flatMap(query => (query.data ? [query.data] : [])), [flowQueries]);\n const stableUnfilteredFlow = useMemo(\n () => (currentFlow ? stabilizeThemeFlow(currentFlow, windowFlows) : undefined),\n [currentFlow, windowFlows],\n );\n const drillInAvailable = Boolean(currentFlow && currentFlow.snapshot.traceCount <= DRILL_IN_TRACE_LIMIT);\n const pathsQuery = useThemePaths(\n entityId,\n entityType,\n signalNames,\n snapshot?.snapshotId,\n drillInAvailable && drillStack.length > 0,\n );\n const flow = useMemo(() => {\n if (!stableUnfilteredFlow || drillStack.length === 0 || !pathsQuery.data) return stableUnfilteredFlow;\n\n const drilledFlow = buildDrilledThemeFlow(stableUnfilteredFlow, pathsQuery.data, drillStack);\n return stabilizeThemeFlow(drilledFlow, [stableUnfilteredFlow, drilledFlow]);\n }, [drillStack, pathsQuery.data, stableUnfilteredFlow]);\n const graphSummary = useMemo(() => (flow ? buildSignalGraphSummary(flow) : undefined), [flow]);\n const detailSelection =\n stableUnfilteredFlow && selectedThemeId ? findThemeSelectionById(stableUnfilteredFlow, selectedThemeId) : undefined;\n const populatedStageCount = currentFlow?.stages.filter(stage => stage.nodes.length > 0).length ?? 0;\n const hasPendingEnabledSignals = effectiveSignalCatalog.some(signal => signal.enabled && signal.status !== 'ready');\n const shouldLoadProgress =\n snapshotsQuery.isSuccess &&\n !snapshotsQuery.isError &&\n (hasPendingEnabledSignals ||\n !snapshot ||\n Boolean(currentFlow && (!flow || !graphSummary || populatedStageCount < 2)));\n const progressQuery = useEntityLearningProgress(entityId, entityType, shouldLoadProgress);\n const isPlaybackBlockedByDrillIn = drillStack.length > 0 && (pathsQuery.isFetching || pathsQuery.isError);\n const hasActivePathsError = drillStack.length > 0 && pathsQuery.isError;\n\n useSnapshotPlayback({\n isPlaying,\n isPlaybackBlocked: isFlowWindowBusy || isPlaybackBlockedByDrillIn,\n nextSnapshot: nextSnapshotId,\n onAdvance: frameId => {\n if (frameId === undefined) {\n setIsPlaying(false);\n return;\n }\n onFrameIdChange(frameId);\n },\n snapshotCount: snapshots.length,\n });\n\n const perspectiveMutation = useMutation({\n mutationFn: async (nextSignalNames: TraceSignalName[]) => {\n const nextSnapshots = await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-snapshots',\n nextSignalNames,\n dateFrom?.toISOString(),\n dateTo?.toISOString(),\n ],\n queryFn: () => fetchThemeSnapshots(request, entityId, entityType, nextSignalNames, dateFrom, dateTo),\n });\n const sortedNextSnapshots = [...nextSnapshots.snapshots].sort((left, right) => left.ordinal - right.ordinal);\n const matchedNextIndex = sortedNextSnapshots.findIndex(candidate => candidate.ordinal === snapshot?.ordinal);\n const nextSelectedIndex = matchedNextIndex >= 0 ? matchedNextIndex : 0;\n const nextSnapshot = sortedNextSnapshots[nextSelectedIndex];\n await Promise.all(\n selectFlowSnapshotIds(sortedNextSnapshots, nextSelectedIndex).map(snapshotId =>\n queryClient.fetchQuery({\n queryKey: ['entity-learning', cacheScope, entityType, entityId, 'theme-flow', nextSignalNames, snapshotId],\n queryFn: () => fetchThemeFlow(request, entityId, entityType, nextSignalNames, snapshotId),\n }),\n ),\n );\n if (drillStack.length > 0 && nextSnapshot && nextSnapshot.traceCount <= DRILL_IN_TRACE_LIMIT) {\n await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-paths',\n nextSignalNames,\n nextSnapshot.snapshotId,\n ],\n queryFn: () => fetchThemePaths(request, entityId, entityType, nextSignalNames, nextSnapshot.snapshotId),\n });\n }\n return { nextSignalNames, nextFrameId: nextSnapshot?.snapshotId };\n },\n onSuccess: ({ nextSignalNames, nextFrameId }) => {\n setSignalNames(nextSignalNames);\n setPendingSignalNames(undefined);\n // Keep the parent-owned frame pointing at a snapshot that exists in the new perspective.\n if (nextFrameId && nextFrameId !== selectedFrameId) onFrameIdChange(nextFrameId);\n },\n onError: () => setPendingSignalNames(undefined),\n });\n\n if (snapshotsQuery.isPending) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsLoadingSkeleton />\n </>\n );\n }\n\n if (snapshotsQuery.isError || hasFlowError || hasActivePathsError) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsErrorState\n message=\"Unable to load trace signal flow.\"\n onRetry={() => {\n setIsPlaying(false);\n void snapshotsQuery.refetch();\n void Promise.all(flowQueries.map(query => query.refetch()));\n if (drillStack.length > 0 && drillInAvailable) void pathsQuery.refetch();\n }}\n onClear={hasActivePathsError ? () => setDrillStack([]) : undefined}\n />\n </>\n );\n }\n\n if (!snapshot) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n isRangeEmpty\n />\n </>\n );\n }\n\n if (isFlowPending) {\n return (\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n {dateRangePicker && <div className=\"flex justify-end\">{dateRangePicker}</div>}\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={snapshot ? snapshotSummaryLabel(snapshot, undefined) : ''}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n <SignalsFrameLoadingSkeleton />\n </div>\n );\n }\n\n if (!currentFlow || !flow || !graphSummary || populatedStageCount < 2) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n />\n </>\n );\n }\n\n const stages = flow.stages;\n const isNodeClickable = (selection: SankeyChartNodeSelection) =>\n findNoiseSelection(flow, selection.column.id, selection.value) !== undefined ||\n findThemeSelection(flow, selection.column.id, selection.value) !== undefined;\n const handleNodeClick = (selection: SankeyChartNodeSelection) => {\n const nextSelection =\n findNoiseSelection(flow, selection.column.id, selection.value) ??\n findThemeSelection(flow, selection.column.id, selection.value);\n if (!nextSelection || drillStack.some(filter => filter.signalName === nextSelection.signalName)) return;\n if (nextSelection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(nextSelection);\n if (drillInAvailable) setDrillStack(current => [...current, nextSelection]);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(nextSelection.signalName);\n }\n };\n const drillInDisabledReason = drillInAvailable\n ? undefined\n : 'Drill-in is unavailable for snapshots with more than 2,000 traces.';\n const isDrilledEmpty = drillStack.length > 0 && pathsQuery.data !== undefined && flow.snapshot.traceCount === 0;\n const handleSignalOrderChange = (nextSignalNames: TraceSignalName[]) => {\n if (perspectiveMutation.isPending) return;\n setIsPlaying(false);\n setThemeDetails(undefined);\n setNoiseSignalName(undefined);\n const mergedSignalNames = mergeVisibleSignalOrder(signalNames, nextSignalNames);\n setPendingSignalNames(mergedSignalNames);\n perspectiveMutation.mutate(mergedSignalNames);\n };\n const filtersResolved = drillStack.length > 0 && drillInAvailable && pathsQuery.data !== undefined;\n const detailStats = filtersResolved ? findSelectionStats(flow, drillStack, detailSelection) : undefined;\n const noiseStats = filtersResolved\n ? findSelectionStats(flow, drillStack, noiseSignalName ? { kind: 'noise', signalName: noiseSignalName } : undefined)\n : undefined;\n const filterKey = serializeThemeFilters(drillStack);\n const catalogSignalNames = orderedSignals(effectiveSignalCatalog, signalNames);\n const viewDescription =\n viewMode === 'flow'\n ? `How this agent's traces distribute across ${formatSignalList(catalogSignalNames.map(name => signalLabel(effectiveSignalCatalog, name).toLocaleLowerCase()))} themes at this point in time.`\n : VIEW_DESCRIPTIONS[viewMode];\n const labeledColumns = graphSummary.columns.map(column => ({\n ...column,\n label: signalLabel(effectiveSignalCatalog, column.id),\n }));\n\n return (\n <TraceIntelligenceContext.Provider value={traceIntelligenceContext}>\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-4\">\n <Tabs<SignalsViewMode>\n value={viewMode}\n defaultTab=\"flow\"\n onValueChange={handleViewModeChange}\n className=\"w-fit\"\n >\n <TabList variant=\"pill-ghost\">\n <ViewModeTab value=\"flow\" icon={<Waypoints />} label=\"Flow\" />\n <ViewModeTab value=\"compare\" icon={<ArrowLeftRight />} label=\"Compare\" />\n <ViewModeTab value=\"lifelines\" icon={<ChartNoAxesGantt />} label=\"Lifelines\" />\n </TabList>\n </Tabs>\n <TraceIntelligenceExplainer signalCatalog={effectiveSignalCatalog} />\n </div>\n {dateRangePicker}\n </div>\n <p className=\"text-caption text-muted-foreground\">{viewDescription}</p>\n <PendingSignalProgress progress={progressQuery.data} signalCatalog={effectiveSignalCatalog} />\n {viewMode === 'compare' ? (\n <ThemeCompare\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : viewMode === 'lifelines' ? (\n <ThemeLifelines\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n selectedIndex={selectedSnapshotIndex}\n onSnapshotSelect={selectSnapshot}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : (\n <>\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={`${drillStack.length > 0 ? (drillInAvailable ? 'Filtered · ' : 'Filters unavailable · ') : ''}${snapshotSummaryLabel(snapshot, flow)}`}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n {drillStack.length > 0 ? (\n <ThemeFilterBanner\n selections={drillStack}\n filteredTraceCount={filtersResolved ? flow.snapshot.traceCount : undefined}\n totalTraceCount={currentFlow.snapshot.traceCount}\n isUnavailable={!drillInAvailable}\n onViewDetails={selection => {\n if (selection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(selection.signalName);\n }\n }}\n onRemove={signalName =>\n setDrillStack(current => current.filter(filter => filter.signalName !== signalName))\n }\n onClear={() => setDrillStack([])}\n />\n ) : null}\n {isDrilledEmpty ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n This theme is not present in the selected snapshot. Use the clear filter action above to return to the\n full flow.\n </section>\n ) : graphSummary.records.length === 0 ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n No cross-signal flow for this snapshot — its trace signals have not overlapped on shared traces yet.\n Pick another snapshot from the timeline below.\n </section>\n ) : (\n <FlowCard\n columns={labeledColumns}\n records={graphSummary.records}\n stages={stages}\n height={height}\n onNodeClick={handleNodeClick}\n isNodeClickable={isNodeClickable}\n drillInDisabledReason={drillInDisabledReason}\n onOrderChange={handleSignalOrderChange}\n signalOrder={pendingSignalNames ?? signalNames}\n reorderDisabled={perspectiveMutation.isPending}\n />\n )}\n {perspectiveMutation.isPending ? (\n <p className=\"font-mono text-caption text-muted-foreground\" role=\"status\">\n Reloading snapshots for new trace signal perspective…\n </p>\n ) : null}\n {perspectiveMutation.isError ? (\n <p className=\"text-caption text-red-500\" role=\"alert\">\n Unable to load that trace signal perspective. Try reordering the columns again.\n </p>\n ) : null}\n </>\n )}\n <ThemeDetailPanel\n key={`${snapshot.snapshotId}:${detailSelection?.signalName ?? ''}:${detailSelection?.themeId ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n snapshotTotal={snapshot.total}\n selection={detailSelection}\n filters={drillStack}\n filteredStats={detailStats}\n onClose={() => setThemeDetails(undefined)}\n />\n <NoiseDetailPanel\n key={`${snapshot.snapshotId}:${noiseSignalName ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n signalName={noiseSignalName}\n filters={drillStack}\n filteredStats={noiseStats}\n onClose={() => setNoiseSignalName(undefined)}\n />\n </div>\n </TraceIntelligenceContext.Provider>\n );\n}\n"],"names":["snapshot","SignalsEmptyState"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sankey-signals.es.js","sources":["../../../src/ee/signals/sankey-signals.tsx"],"sourcesContent":["import { useMutation, useQueryClient } from '@tanstack/react-query';\nimport { ArrowLeftRight, ChartNoAxesGantt, Waypoints } from 'lucide-react';\nimport { useMemo, useState } from 'react';\n\nimport { PendingSignalProgress } from './components/signals-empty-state';\nimport { SignalsOverviewPage as SignalsEmptyState } from './components/signals-overview-page';\nimport { fetchThemeFlow, fetchThemePaths, fetchThemeSnapshots, serializeThemeFilters } from './entity-learning-api';\nimport { FlowCard } from './flow-card';\nimport { useEntityLearningProgress } from './hooks/use-entity-learning-progress';\nimport { useSnapshotPlayback } from './hooks/use-snapshot-playback';\nimport { useThemeFlows } from './hooks/use-theme-flows';\nimport { useThemePaths } from './hooks/use-theme-paths';\nimport { useThemeSnapshots } from './hooks/use-theme-snapshots';\nimport { NoiseDetailPanel } from './noise-detail-panel';\nimport {\n buildSignalGraphSummary,\n selectFlowSnapshotIds,\n snapshotSummaryLabel,\n stabilizeThemeFlow,\n} from './sankey-signals-data';\nimport { orderedSignals, signalLabel } from './signal-formatting';\nimport { SignalsErrorState } from './signals-error-state';\nimport { SignalsFrameLoadingSkeleton, SignalsLoadingSkeleton } from './signals-loading-skeleton';\nimport { SnapshotTimeline } from './snapshot-timeline';\nimport { ThemeCompare } from './theme-compare';\nimport { ThemeDetailPanel } from './theme-detail-panel';\nimport {\n buildDrilledThemeFlow,\n findNoiseSelection,\n findSelectionStats,\n findThemeSelection,\n findThemeSelectionById,\n mergeVisibleSignalOrder,\n} from './theme-drilldown-data';\nimport type { SelectedTheme, ThemeSelection } from './theme-drilldown-data';\nimport { ThemeFilterBanner } from './theme-filter-banner';\nimport { ThemeLifelines } from './theme-lifelines';\nimport { TraceIntelligenceContext } from './trace-intelligence-context';\nimport { TraceIntelligenceExplainer } from './trace-intelligence-explainer';\nimport type { TraceSignalName } from './types';\nimport { useTraceIntelligence } from './use-trace-intelligence';\nimport { ViewModeTab } from './view-mode-tab';\nimport type { SignalsViewMode } from './view-mode-tab';\nimport type { SankeyChartNodeSelection } from '@/ds/components/SankeyChart';\nimport { TabList, Tabs } from '@/ds/components/Tabs';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface SankeySignalsProps {\n entityId: string;\n entityType?: string;\n signalNames: TraceSignalName[];\n dateFrom?: Date;\n dateTo?: Date;\n height?: number;\n selectedThemeId: string | undefined;\n onSelectedThemeIdChange: (themeId: string | undefined) => void;\n /** Snapshot id of the timeline frame currently displayed. The parent owns this state. */\n selectedFrameId: string;\n onFrameIdChange: (frameId: string) => void;\n /** Date range control rendered in line with the view mode tabs. */\n dateRangePicker?: React.ReactNode;\n}\n\nconst DRILL_IN_TRACE_LIMIT = 2000;\n\n/** One-line answer to \"what am I looking at?\" for each view, shown under the tabs. */\nconst VIEW_DESCRIPTIONS: Omit<Record<SignalsViewMode, string>, 'flow'> = {\n compare: 'Which themes grew, shrank, appeared, or disappeared between two points in time.',\n lifelines: \"Each theme's share of traces across the whole selected range.\",\n};\n\nfunction formatSignalList(labels: string[]): string {\n if (labels.length < 2) return labels[0] ?? 'trace signal';\n if (labels.length === 2) return labels.join(' and ');\n return `${labels.slice(0, -1).join(', ')}, and ${labels.at(-1)}`;\n}\n\nexport function SankeySignals({\n entityId,\n entityType = 'agent',\n signalNames: initialSignalNames,\n dateFrom,\n dateTo,\n height,\n selectedThemeId,\n onSelectedThemeIdChange,\n selectedFrameId,\n onFrameIdChange,\n dateRangePicker,\n}: SankeySignalsProps) {\n const queryClient = useQueryClient();\n const traceIntelligence = useTraceIntelligence();\n const { cacheScope, request, LinkComponent, signalCatalog } = traceIntelligence;\n const [signalNames, setSignalNames] = useState(() => initialSignalNames);\n const [pendingSignalNames, setPendingSignalNames] = useState<TraceSignalName[]>();\n const snapshotsQuery = useThemeSnapshots(entityId, entityType, signalNames, dateFrom, dateTo);\n const effectiveSignalCatalog = snapshotsQuery.data?.signalCatalog ?? signalCatalog;\n const traceIntelligenceContext = useMemo(\n () => ({ ...traceIntelligence, signalCatalog: effectiveSignalCatalog }),\n [effectiveSignalCatalog, traceIntelligence],\n );\n const snapshots = [...(snapshotsQuery.data?.snapshots ?? [])].sort((left, right) => left.ordinal - right.ordinal);\n const [isPlaying, setIsPlaying] = useState(false);\n const [viewMode, setViewMode] = useState<SignalsViewMode>('flow');\n const [drillStack, setDrillStack] = useState<ThemeSelection[]>([]);\n const [noiseSignalName, setNoiseSignalName] = useState<TraceSignalName>();\n // Pure derivation: the parent owns the frame. The index-0 fallback only covers\n // the transient render where a perspective change swapped the snapshot list.\n const matchedSnapshotIndex = snapshots.findIndex(snapshot => snapshot.snapshotId === selectedFrameId);\n const selectedSnapshotIndex = matchedSnapshotIndex >= 0 ? matchedSnapshotIndex : 0;\n const snapshot = snapshots[selectedSnapshotIndex];\n const totalSnapshots = snapshotsQuery.data?.totalSnapshots ?? snapshot?.total ?? 0;\n const selectSnapshot = (index: number) => {\n const id = snapshots[index]?.snapshotId;\n if (id) onFrameIdChange(id);\n };\n const handleViewModeChange = (nextViewMode: SignalsViewMode) => {\n if (nextViewMode !== 'flow') setIsPlaying(false);\n setViewMode(nextViewMode);\n };\n const handlePlayingChange = (nextIsPlaying: boolean) => {\n // Restart from the first landmark when play is pressed at the end.\n if (nextIsPlaying && selectedSnapshotIndex === snapshots.length - 1) selectSnapshot(0);\n setIsPlaying(nextIsPlaying);\n };\n const setThemeDetails = (selection: SelectedTheme | undefined) => {\n onSelectedThemeIdChange(selection?.themeId);\n };\n // Compare cards and lifeline points open details for the theme at the\n // landmark they were clicked on, so the panel's snapshot follows the click.\n const openThemeDetailsAt = (selection: ThemeSelection, snapshotIndex: number) => {\n if (selection.kind !== 'theme') return;\n selectSnapshot(snapshotIndex);\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n };\n\n // Undefined at the last landmark so playback stops instead of looping.\n const nextSnapshotId = snapshots[selectedSnapshotIndex + 1]?.snapshotId;\n const flowSnapshotIds = selectFlowSnapshotIds(snapshots, selectedSnapshotIndex);\n const flowQueries = useThemeFlows(entityId, entityType, signalNames, flowSnapshotIds);\n const flowQuery = flowQueries[flowSnapshotIds.indexOf(snapshot?.snapshotId ?? '')];\n const currentFlow = flowQuery?.data;\n // The loading skeleton tracks only the selected snapshot's flow; prefetched\n // neighbors warm the cache in the background without blocking the chart.\n const isFlowPending = flowQuery?.isPending ?? false;\n // Errors stay window-wide: a failed preload surfaces the retry state instead\n // of letting playback advance into a broken frame.\n const hasFlowError = flowQueries.some(query => query.isError);\n const isFlowWindowBusy = flowQueries.some(query => query.isPending) || hasFlowError;\n const windowFlows = useMemo(() => flowQueries.flatMap(query => (query.data ? [query.data] : [])), [flowQueries]);\n const stableUnfilteredFlow = useMemo(\n () => (currentFlow ? stabilizeThemeFlow(currentFlow, windowFlows) : undefined),\n [currentFlow, windowFlows],\n );\n const drillInAvailable = Boolean(currentFlow && currentFlow.snapshot.traceCount <= DRILL_IN_TRACE_LIMIT);\n const pathsQuery = useThemePaths(\n entityId,\n entityType,\n signalNames,\n snapshot?.snapshotId,\n drillInAvailable && drillStack.length > 0,\n );\n const flow = useMemo(() => {\n if (!stableUnfilteredFlow || drillStack.length === 0 || !pathsQuery.data) return stableUnfilteredFlow;\n\n const drilledFlow = buildDrilledThemeFlow(stableUnfilteredFlow, pathsQuery.data, drillStack);\n return stabilizeThemeFlow(drilledFlow, [stableUnfilteredFlow, drilledFlow]);\n }, [drillStack, pathsQuery.data, stableUnfilteredFlow]);\n const graphSummary = useMemo(() => (flow ? buildSignalGraphSummary(flow) : undefined), [flow]);\n const detailSelection =\n stableUnfilteredFlow && selectedThemeId ? findThemeSelectionById(stableUnfilteredFlow, selectedThemeId) : undefined;\n const populatedStageCount = currentFlow?.stages.filter(stage => stage.nodes.length > 0).length ?? 0;\n const hasPendingEnabledSignals = effectiveSignalCatalog.some(signal => signal.enabled && signal.status !== 'ready');\n const shouldLoadProgress =\n snapshotsQuery.isSuccess &&\n !snapshotsQuery.isError &&\n (hasPendingEnabledSignals ||\n !snapshot ||\n Boolean(currentFlow && (!flow || !graphSummary || populatedStageCount < 2)));\n const progressQuery = useEntityLearningProgress(entityId, entityType, shouldLoadProgress);\n const isPlaybackBlockedByDrillIn = drillStack.length > 0 && (pathsQuery.isFetching || pathsQuery.isError);\n const hasActivePathsError = drillStack.length > 0 && pathsQuery.isError;\n\n useSnapshotPlayback({\n isPlaying,\n isPlaybackBlocked: isFlowWindowBusy || isPlaybackBlockedByDrillIn,\n nextSnapshot: nextSnapshotId,\n onAdvance: frameId => {\n if (frameId === undefined) {\n setIsPlaying(false);\n return;\n }\n onFrameIdChange(frameId);\n },\n snapshotCount: snapshots.length,\n });\n\n const perspectiveMutation = useMutation({\n mutationFn: async (nextSignalNames: TraceSignalName[]) => {\n const nextSnapshots = await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-snapshots',\n nextSignalNames,\n dateFrom?.toISOString(),\n dateTo?.toISOString(),\n ],\n queryFn: () => fetchThemeSnapshots(request, entityId, entityType, nextSignalNames, dateFrom, dateTo),\n });\n const sortedNextSnapshots = [...nextSnapshots.snapshots].sort((left, right) => left.ordinal - right.ordinal);\n const matchedNextIndex = sortedNextSnapshots.findIndex(candidate => candidate.ordinal === snapshot?.ordinal);\n const nextSelectedIndex = matchedNextIndex >= 0 ? matchedNextIndex : 0;\n const nextSnapshot = sortedNextSnapshots[nextSelectedIndex];\n await Promise.all(\n selectFlowSnapshotIds(sortedNextSnapshots, nextSelectedIndex).map(snapshotId =>\n queryClient.fetchQuery({\n queryKey: ['entity-learning', cacheScope, entityType, entityId, 'theme-flow', nextSignalNames, snapshotId],\n queryFn: () => fetchThemeFlow(request, entityId, entityType, nextSignalNames, snapshotId),\n }),\n ),\n );\n if (drillStack.length > 0 && nextSnapshot && nextSnapshot.traceCount <= DRILL_IN_TRACE_LIMIT) {\n await queryClient.fetchQuery({\n queryKey: [\n 'entity-learning',\n cacheScope,\n entityType,\n entityId,\n 'theme-paths',\n nextSignalNames,\n nextSnapshot.snapshotId,\n ],\n queryFn: () => fetchThemePaths(request, entityId, entityType, nextSignalNames, nextSnapshot.snapshotId),\n });\n }\n return { nextSignalNames, nextFrameId: nextSnapshot?.snapshotId };\n },\n onSuccess: ({ nextSignalNames, nextFrameId }) => {\n setSignalNames(nextSignalNames);\n setPendingSignalNames(undefined);\n // Keep the parent-owned frame pointing at a snapshot that exists in the new perspective.\n if (nextFrameId && nextFrameId !== selectedFrameId) onFrameIdChange(nextFrameId);\n },\n onError: () => setPendingSignalNames(undefined),\n });\n\n if (snapshotsQuery.isPending) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsLoadingSkeleton />\n </>\n );\n }\n\n if (snapshotsQuery.isError || hasFlowError || hasActivePathsError) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsErrorState\n message=\"Unable to load trace signal flow.\"\n onRetry={() => {\n setIsPlaying(false);\n void snapshotsQuery.refetch();\n void Promise.all(flowQueries.map(query => query.refetch()));\n if (drillStack.length > 0 && drillInAvailable) void pathsQuery.refetch();\n }}\n onClear={hasActivePathsError ? () => setDrillStack([]) : undefined}\n />\n </>\n );\n }\n\n if (!snapshot) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n isRangeEmpty\n />\n </>\n );\n }\n\n if (isFlowPending) {\n return (\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n {dateRangePicker && <div className=\"flex justify-end\">{dateRangePicker}</div>}\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={snapshot ? snapshotSummaryLabel(snapshot, undefined) : ''}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n <SignalsFrameLoadingSkeleton />\n </div>\n );\n }\n\n if (!currentFlow || !flow || !graphSummary || populatedStageCount < 2) {\n return (\n <>\n {dateRangePicker && <div className=\"flex justify-end px-4 pt-4 lg:px-6 lg:pt-6\">{dateRangePicker}</div>}\n <SignalsEmptyState\n LinkComponent={LinkComponent}\n progress={progressQuery.data}\n signalCatalog={effectiveSignalCatalog}\n />\n </>\n );\n }\n\n const stages = flow.stages;\n const isNodeClickable = (selection: SankeyChartNodeSelection) =>\n findNoiseSelection(flow, selection.column.id, selection.value) !== undefined ||\n findThemeSelection(flow, selection.column.id, selection.value) !== undefined;\n const handleNodeClick = (selection: SankeyChartNodeSelection) => {\n const nextSelection =\n findNoiseSelection(flow, selection.column.id, selection.value) ??\n findThemeSelection(flow, selection.column.id, selection.value);\n if (!nextSelection || drillStack.some(filter => filter.signalName === nextSelection.signalName)) return;\n if (nextSelection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(nextSelection);\n if (drillInAvailable) setDrillStack(current => [...current, nextSelection]);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(nextSelection.signalName);\n }\n };\n const drillInDisabledReason = drillInAvailable\n ? undefined\n : 'Drill-in is unavailable for snapshots with more than 2,000 traces.';\n const isDrilledEmpty = drillStack.length > 0 && pathsQuery.data !== undefined && flow.snapshot.traceCount === 0;\n const handleSignalOrderChange = (nextSignalNames: TraceSignalName[]) => {\n if (perspectiveMutation.isPending) return;\n setIsPlaying(false);\n setThemeDetails(undefined);\n setNoiseSignalName(undefined);\n const mergedSignalNames = mergeVisibleSignalOrder(signalNames, nextSignalNames);\n setPendingSignalNames(mergedSignalNames);\n perspectiveMutation.mutate(mergedSignalNames);\n };\n const filtersResolved = drillStack.length > 0 && drillInAvailable && pathsQuery.data !== undefined;\n const detailStats = filtersResolved ? findSelectionStats(flow, drillStack, detailSelection) : undefined;\n const noiseStats = filtersResolved\n ? findSelectionStats(flow, drillStack, noiseSignalName ? { kind: 'noise', signalName: noiseSignalName } : undefined)\n : undefined;\n const filterKey = serializeThemeFilters(drillStack);\n const catalogSignalNames = orderedSignals(effectiveSignalCatalog, signalNames);\n const viewDescription =\n viewMode === 'flow'\n ? `How this agent's traces distribute across ${formatSignalList(catalogSignalNames.map(name => signalLabel(effectiveSignalCatalog, name).toLocaleLowerCase()))} themes at this point in time.`\n : VIEW_DESCRIPTIONS[viewMode];\n const labeledColumns = graphSummary.columns.map(column => ({\n ...column,\n label: signalLabel(effectiveSignalCatalog, column.id),\n }));\n\n return (\n <TraceIntelligenceContext.Provider value={traceIntelligenceContext}>\n <div className=\"min-w-0 space-y-5 p-4 lg:p-6\">\n <div className=\"flex min-w-0 flex-wrap items-center justify-between gap-3\">\n <div className=\"flex min-w-0 flex-wrap items-center gap-4\">\n <Tabs<SignalsViewMode>\n value={viewMode}\n defaultTab=\"flow\"\n onValueChange={handleViewModeChange}\n className=\"w-fit\"\n >\n <TabList variant=\"pill-ghost\">\n <ViewModeTab value=\"flow\" icon={<Waypoints />} label=\"Flow\" />\n <ViewModeTab value=\"compare\" icon={<ArrowLeftRight />} label=\"Compare\" />\n <ViewModeTab value=\"lifelines\" icon={<ChartNoAxesGantt />} label=\"Lifelines\" />\n </TabList>\n </Tabs>\n <TraceIntelligenceExplainer signalCatalog={effectiveSignalCatalog} />\n </div>\n {dateRangePicker}\n </div>\n <Txt variant=\"caption\" tone=\"muted\">\n {viewDescription}\n </Txt>\n <PendingSignalProgress progress={progressQuery.data} signalCatalog={effectiveSignalCatalog} />\n {viewMode === 'compare' ? (\n <ThemeCompare\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : viewMode === 'lifelines' ? (\n <ThemeLifelines\n entityId={entityId}\n entityType={entityType}\n signalNames={signalNames}\n snapshots={snapshots}\n totalSnapshots={totalSnapshots}\n selectedIndex={selectedSnapshotIndex}\n onSnapshotSelect={selectSnapshot}\n onThemeSelect={openThemeDetailsAt}\n />\n ) : (\n <>\n <SnapshotTimeline\n snapshots={snapshots}\n selectedIndex={selectedSnapshotIndex}\n totalSnapshots={totalSnapshots}\n summary={`${drillStack.length > 0 ? (drillInAvailable ? 'Filtered · ' : 'Filters unavailable · ') : ''}${snapshotSummaryLabel(snapshot, flow)}`}\n isPlaying={isPlaying}\n onPlayingChange={handlePlayingChange}\n onSnapshotChange={selectSnapshot}\n />\n {drillStack.length > 0 ? (\n <ThemeFilterBanner\n selections={drillStack}\n filteredTraceCount={filtersResolved ? flow.snapshot.traceCount : undefined}\n totalTraceCount={currentFlow.snapshot.traceCount}\n isUnavailable={!drillInAvailable}\n onViewDetails={selection => {\n if (selection.kind === 'theme') {\n setNoiseSignalName(undefined);\n setThemeDetails(selection);\n } else {\n setThemeDetails(undefined);\n setNoiseSignalName(selection.signalName);\n }\n }}\n onRemove={signalName =>\n setDrillStack(current => current.filter(filter => filter.signalName !== signalName))\n }\n onClear={() => setDrillStack([])}\n />\n ) : null}\n {isDrilledEmpty ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n This theme is not present in the selected snapshot. Use the clear filter action above to return to the\n full flow.\n </section>\n ) : graphSummary.records.length === 0 ? (\n <section className=\"rounded-lg border border-border bg-background p-6 text-body text-muted-foreground\">\n No cross-signal flow for this snapshot — its trace signals have not overlapped on shared traces yet.\n Pick another snapshot from the timeline below.\n </section>\n ) : (\n <FlowCard\n columns={labeledColumns}\n records={graphSummary.records}\n stages={stages}\n height={height}\n onNodeClick={handleNodeClick}\n isNodeClickable={isNodeClickable}\n drillInDisabledReason={drillInDisabledReason}\n onOrderChange={handleSignalOrderChange}\n signalOrder={pendingSignalNames ?? signalNames}\n reorderDisabled={perspectiveMutation.isPending}\n />\n )}\n {perspectiveMutation.isPending ? (\n <Txt variant=\"caption\" tone=\"muted\" font=\"mono\" role=\"status\">\n Reloading snapshots for new trace signal perspective…\n </Txt>\n ) : null}\n {perspectiveMutation.isError ? (\n <Txt variant=\"caption\" className=\"text-destructive-indicator\" role=\"alert\">\n Unable to load that trace signal perspective. Try reordering the columns again.\n </Txt>\n ) : null}\n </>\n )}\n <ThemeDetailPanel\n key={`${snapshot.snapshotId}:${detailSelection?.signalName ?? ''}:${detailSelection?.themeId ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n snapshotTotal={snapshot.total}\n selection={detailSelection}\n filters={drillStack}\n filteredStats={detailStats}\n onClose={() => setThemeDetails(undefined)}\n />\n <NoiseDetailPanel\n key={`${snapshot.snapshotId}:${noiseSignalName ?? ''}:${filterKey}`}\n entityId={entityId}\n entityType={entityType}\n snapshotId={snapshot.snapshotId}\n signalName={noiseSignalName}\n filters={drillStack}\n filteredStats={noiseStats}\n onClose={() => setNoiseSignalName(undefined)}\n />\n </div>\n </TraceIntelligenceContext.Provider>\n );\n}\n"],"names":["snapshot","SignalsEmptyState"],"mappings":"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"}
|
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const lucideReact = require('lucide-react');
|
|
7
6
|
const React = require('react');
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const fieldBlock = require('../../../field-block-BG5E7u9v.cjs');
|
|
7
|
+
const dialog = require('../../../dialog-DYpOpj9s.cjs');
|
|
8
|
+
const fieldBlock = require('../../../field-block-BIDi9Bvc.cjs');
|
|
11
9
|
const fieldErrorId = require('../../../field-error-id-B3Z2Zu5y.cjs');
|
|
12
|
-
const textFieldBlock = require('../../../text-field-block-
|
|
13
|
-
const Notice = require('../../../Notice-
|
|
14
|
-
const spinner = require('../../../spinner-BCpN7LL9.cjs');
|
|
10
|
+
const textFieldBlock = require('../../../text-field-block-DYOWjPgO.cjs');
|
|
11
|
+
const Notice = require('../../../Notice-CEBwitdf.cjs');
|
|
15
12
|
const textarea = require('../../../textarea-gUBUqpol.cjs');
|
|
13
|
+
const Txt = require('../../../Txt-DPmEpNbp.cjs');
|
|
14
|
+
const dialogAction = require('../../../dialog-action-B3AHq7mU.cjs');
|
|
16
15
|
|
|
17
16
|
const reservedNames = /* @__PURE__ */ new Set([
|
|
18
17
|
"goal",
|
|
@@ -66,7 +65,7 @@ function SignalDefinitionFormDialog({
|
|
|
66
65
|
setValue((current) => ({ ...current, [key]: fieldValue }));
|
|
67
66
|
setValidationErrors((current) => ({ ...current, [key]: void 0 }));
|
|
68
67
|
};
|
|
69
|
-
return /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(dialog.DialogContent, {
|
|
68
|
+
return /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog, { open, onOpenChange, pending, children: /* @__PURE__ */ jsxRuntime.jsxs(dialog.DialogContent, { size: "lg", children: [
|
|
70
69
|
/* @__PURE__ */ jsxRuntime.jsxs(dialog.DialogHeader, { children: [
|
|
71
70
|
/* @__PURE__ */ jsxRuntime.jsx(dialog.DialogTitle, { children: editing ? "Edit custom signal" : "Create custom signal" }),
|
|
72
71
|
/* @__PURE__ */ jsxRuntime.jsx(dialog.DialogDescription, { children: "Definitions belong to the organization. Every signal receives all available bounded trace context." })
|
|
@@ -153,24 +152,14 @@ function SignalDefinitionFormDialog({
|
|
|
153
152
|
validationErrors.taskPrompt ? /* @__PURE__ */ jsxRuntime.jsx(fieldBlock.FieldBlock.ErrorMsg, { name: "taskPrompt", children: validationErrors.taskPrompt }) : null
|
|
154
153
|
] })
|
|
155
154
|
] }),
|
|
156
|
-
editing ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
+
editing ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { variant: "meta", tone: "muted", children: "Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged." }) : null,
|
|
157
156
|
error ? /* @__PURE__ */ jsxRuntime.jsx("div", { role: "alert", children: /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice, { variant: "destructive", children: error }) }) : null
|
|
158
157
|
]
|
|
159
158
|
}
|
|
160
159
|
) }),
|
|
161
160
|
/* @__PURE__ */ jsxRuntime.jsxs(dialog.DialogFooter, { children: [
|
|
162
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
163
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
164
|
-
Button.Button,
|
|
165
|
-
{
|
|
166
|
-
type: "submit",
|
|
167
|
-
form: formId,
|
|
168
|
-
variant: "primary",
|
|
169
|
-
disabled: pending,
|
|
170
|
-
icon: pending ? /* @__PURE__ */ jsxRuntime.jsx(spinner.Spinner, {}) : void 0,
|
|
171
|
-
children: editing ? "Save signal" : "Create signal"
|
|
172
|
-
}
|
|
173
|
-
)
|
|
161
|
+
/* @__PURE__ */ jsxRuntime.jsx(dialog.DialogCancel, { children: "Cancel" }),
|
|
162
|
+
/* @__PURE__ */ jsxRuntime.jsx(dialogAction.DialogAction, { type: "submit", form: formId, children: editing ? "Save signal" : "Create signal" })
|
|
174
163
|
] })
|
|
175
164
|
] }) });
|
|
176
165
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-definition-form-dialog.cjs.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { X } from 'lucide-react';\nimport { useId, useState } from 'react';\n\nimport { Button } from '@/ds/components/Button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { FieldBlock, TextFieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { Notice } from '@/ds/components/Notice';\nimport { Spinner } from '@/ds/components/Spinner';\nimport { Textarea } from '@/ds/components/Textarea';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"sm:max-w-xl\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <form\n id={formId}\n className=\"space-y-4\"\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <TextFieldBlock\n id=\"input-name\"\n name=\"name\"\n label=\"Signal name\"\n helpText=\"A stable lowercase slug. It cannot be changed after creation.\"\n placeholder=\"handoff_quality\"\n value={value.name}\n disabled={editing || pending}\n errorMsg={validationErrors.name}\n onChange={event => setField('name', event.target.value)}\n />\n <TextFieldBlock\n id=\"input-displayLabel\"\n name=\"displayLabel\"\n label=\"Display label\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n disabled={pending}\n errorMsg={validationErrors.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"description\">Description</FieldBlock.Label>\n <Textarea\n id=\"input-description\"\n rows={2}\n value={value.description}\n disabled={pending}\n onChange={event => setField('description', event.target.value)}\n />\n </FieldBlock.Column>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"taskPrompt\">Signal instructions</FieldBlock.Label>\n <Textarea\n id=\"input-taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n disabled={pending}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n error={Boolean(validationErrors.taskPrompt)}\n aria-describedby={validationErrors.taskPrompt ? fieldErrorId('taskPrompt') : undefined}\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldBlock.HelpText>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldBlock.HelpText>\n {validationErrors.taskPrompt ? (\n <FieldBlock.ErrorMsg name=\"taskPrompt\">{validationErrors.taskPrompt}</FieldBlock.ErrorMsg>\n ) : null}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n {editing ? (\n <p className=\"text-meta text-muted-foreground\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </p>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </form>\n </DialogBody>\n <DialogFooter>\n <Button icon={<X />} type=\"button\" variant=\"ghost\" disabled={pending} onClick={() => onOpenChange(false)}>\n Cancel\n </Button>\n <Button\n type=\"submit\"\n form={formId}\n variant=\"primary\"\n disabled={pending}\n icon={pending ? <Spinner /> : undefined}\n >\n {editing ? 'Save signal' : 'Create signal'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["useId","useState","Dialog","jsxs","DialogContent","DialogHeader","jsx","DialogTitle","DialogDescription","DialogBody","TextFieldBlock","FieldBlock","Textarea","fieldErrorId","Notice","DialogFooter","Button","X","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signal-definition-form-dialog.cjs.js","sources":["../../../../src/ee/signals/settings/signal-definition-form-dialog.tsx"],"sourcesContent":["import type {\n CreateTraceSignalDefinitionInput,\n TraceSignalDefinition,\n UpdateTraceSignalDefinitionInput,\n} from '@mastra/client-js';\nimport { useId, useState } from 'react';\n\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { FieldBlock, TextFieldBlock, fieldErrorId } from '@/ds/components/FormFieldBlocks';\nimport { Notice } from '@/ds/components/Notice';\nimport { Textarea } from '@/ds/components/Textarea';\nimport { Txt } from '@/ds/components/Txt';\n\nconst reservedNames = new Set([\n 'goal',\n 'sentiment',\n 'behavior',\n 'outcome',\n 'intent',\n 'summary',\n 'tags',\n 'theme',\n 'noise',\n]);\n\nexport interface SignalDefinitionFormDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n definition?: TraceSignalDefinition;\n error?: string;\n pending: boolean;\n onCreate: (input: CreateTraceSignalDefinitionInput) => Promise<void>;\n onUpdate: (id: string, input: UpdateTraceSignalDefinitionInput) => Promise<void>;\n}\n\ntype FormValue = CreateTraceSignalDefinitionInput;\ntype FormErrors = Partial<Record<keyof FormValue, string>>;\n\nfunction initialValue(definition?: TraceSignalDefinition): FormValue {\n return definition\n ? {\n name: definition.name,\n displayLabel: definition.displayLabel,\n description: definition.description,\n taskPrompt: definition.taskPrompt,\n }\n : {\n name: '',\n displayLabel: '',\n description: '',\n taskPrompt: '',\n };\n}\n\nfunction validate(value: FormValue, editing: boolean): FormErrors {\n const errors: FormErrors = {};\n if (!editing && (!/^[a-z][a-z0-9_-]{1,31}$/.test(value.name) || reservedNames.has(value.name))) {\n errors.name = 'Use an unreserved lowercase slug of 2–32 letters, numbers, underscores, or hyphens.';\n }\n if (!value.displayLabel.trim()) errors.displayLabel = 'Display label is required.';\n if (!value.taskPrompt.trim() || value.taskPrompt.length > 2000) {\n errors.taskPrompt = 'Signal instructions are required and must be at most 2,000 characters.';\n }\n return errors;\n}\n\nexport function SignalDefinitionFormDialog({\n open,\n onOpenChange,\n definition,\n error,\n pending,\n onCreate,\n onUpdate,\n}: SignalDefinitionFormDialogProps) {\n const formId = useId();\n const [value, setValue] = useState(() => initialValue(definition));\n const [validationErrors, setValidationErrors] = useState<FormErrors>({});\n const editing = Boolean(definition);\n\n const setField = <Key extends keyof FormValue>(key: Key, fieldValue: FormValue[Key]) => {\n setValue(current => ({ ...current, [key]: fieldValue }));\n setValidationErrors(current => ({ ...current, [key]: undefined }));\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={pending}>\n <DialogContent size=\"lg\">\n <DialogHeader>\n <DialogTitle>{editing ? 'Edit custom signal' : 'Create custom signal'}</DialogTitle>\n <DialogDescription>\n Definitions belong to the organization. Every signal receives all available bounded trace context.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <form\n id={formId}\n className=\"space-y-4\"\n onSubmit={event => {\n event.preventDefault();\n const errors = validate(value, editing);\n setValidationErrors(errors);\n if (Object.keys(errors).length > 0) return;\n const action = definition\n ? onUpdate(definition.id, {\n displayLabel: value.displayLabel,\n description: value.description,\n taskPrompt: value.taskPrompt,\n })\n : onCreate(value);\n void action.then(() => onOpenChange(false)).catch(() => undefined);\n }}\n >\n <TextFieldBlock\n id=\"input-name\"\n name=\"name\"\n label=\"Signal name\"\n helpText=\"A stable lowercase slug. It cannot be changed after creation.\"\n placeholder=\"handoff_quality\"\n value={value.name}\n disabled={editing || pending}\n errorMsg={validationErrors.name}\n onChange={event => setField('name', event.target.value)}\n />\n <TextFieldBlock\n id=\"input-displayLabel\"\n name=\"displayLabel\"\n label=\"Display label\"\n placeholder=\"Handoff quality\"\n value={value.displayLabel}\n disabled={pending}\n errorMsg={validationErrors.displayLabel}\n onChange={event => setField('displayLabel', event.target.value)}\n />\n <FieldBlock.Layout>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"description\">Description</FieldBlock.Label>\n <Textarea\n id=\"input-description\"\n rows={2}\n value={value.description}\n disabled={pending}\n onChange={event => setField('description', event.target.value)}\n />\n </FieldBlock.Column>\n <FieldBlock.Column>\n <FieldBlock.Label name=\"taskPrompt\">Signal instructions</FieldBlock.Label>\n <Textarea\n id=\"input-taskPrompt\"\n rows={5}\n value={value.taskPrompt}\n disabled={pending}\n placeholder=\"Describe what this signal should evaluate and how the result should be written.\"\n error={Boolean(validationErrors.taskPrompt)}\n aria-describedby={validationErrors.taskPrompt ? fieldErrorId('taskPrompt') : undefined}\n onChange={event => setField('taskPrompt', event.target.value)}\n />\n <FieldBlock.HelpText>\n Tell the model what to evaluate and what the signal result should contain. {value.taskPrompt.length}\n /2,000 characters\n </FieldBlock.HelpText>\n {validationErrors.taskPrompt ? (\n <FieldBlock.ErrorMsg name=\"taskPrompt\">{validationErrors.taskPrompt}</FieldBlock.ErrorMsg>\n ) : null}\n </FieldBlock.Column>\n </FieldBlock.Layout>\n {editing ? (\n <Txt variant=\"meta\" tone=\"muted\">\n Instruction changes create a new version and apply only to new traces. Existing analysis is unchanged.\n </Txt>\n ) : null}\n {error ? (\n <div role=\"alert\">\n <Notice variant=\"destructive\">{error}</Notice>\n </div>\n ) : null}\n </form>\n </DialogBody>\n <DialogFooter>\n <DialogCancel>Cancel</DialogCancel>\n <DialogAction type=\"submit\" form={formId}>\n {editing ? 'Save signal' : 'Create signal'}\n </DialogAction>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n"],"names":["useId","useState","jsx","Dialog","jsxs","DialogContent","DialogHeader","DialogTitle","DialogDescription","DialogBody","TextFieldBlock","FieldBlock","Textarea","fieldErrorId","Txt","Notice","DialogFooter","DialogCancel","DialogAction"],"mappings":"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"}
|