@mastra/playground-ui 60.0.0 → 60.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (899) hide show
  1. package/README.md +7 -6
  2. package/dist/{Badge-H8K5WrXg.cjs → Badge-D3EctKQo.cjs} +16 -8
  3. package/dist/Badge-D3EctKQo.cjs.map +1 -0
  4. package/dist/{Badge-Q_pCeeGW.js → Badge-DmOqFpXW.js} +16 -8
  5. package/dist/Badge-DmOqFpXW.js.map +1 -0
  6. package/dist/{Button-BnmR2HRc.cjs → Button-CXhSUBxN.cjs} +3 -3
  7. package/dist/Button-CXhSUBxN.cjs.map +1 -0
  8. package/dist/{Button-C6eUqcPI.js → Button-D43ghVKt.js} +3 -3
  9. package/dist/Button-D43ghVKt.js.map +1 -0
  10. package/dist/{EmptyState-CJ5KC4Db.cjs → EmptyState-CuoMGNP0.cjs} +2 -2
  11. package/dist/EmptyState-CuoMGNP0.cjs.map +1 -0
  12. package/dist/{EmptyState-CynkaZd1.js → EmptyState-DyyUFpzY.js} +2 -2
  13. package/dist/EmptyState-DyyUFpzY.js.map +1 -0
  14. package/dist/{ErrorBoundary-Bb2R5IMR.js → ErrorBoundary-BvwJY6s9.js} +2 -2
  15. package/dist/{ErrorBoundary-Bb2R5IMR.js.map → ErrorBoundary-BvwJY6s9.js.map} +1 -1
  16. package/dist/{ErrorBoundary-CKrwONAU.cjs → ErrorBoundary-D7eIMbMr.cjs} +2 -2
  17. package/dist/{ErrorBoundary-CKrwONAU.cjs.map → ErrorBoundary-D7eIMbMr.cjs.map} +1 -1
  18. package/dist/{Notice-Ce3r5x-7.js → Notice-B8RIClJD.js} +2 -2
  19. package/dist/{Notice-Ce3r5x-7.js.map → Notice-B8RIClJD.js.map} +1 -1
  20. package/dist/{Notice-CEBwitdf.cjs → Notice-C4Tgmtgb.cjs} +2 -2
  21. package/dist/{Notice-CEBwitdf.cjs.map → Notice-C4Tgmtgb.cjs.map} +1 -1
  22. package/dist/{activity-Duth8KP_.js → activity-BoXbE4Kz.js} +3 -3
  23. package/dist/activity-BoXbE4Kz.js.map +1 -0
  24. package/dist/{activity-8egTNbaI.cjs → activity-CbQG59Oc.cjs} +3 -3
  25. package/dist/activity-CbQG59Oc.cjs.map +1 -0
  26. package/dist/{alert-dialog-D1UYVW__.js → alert-dialog-CzRo39mH.js} +3 -3
  27. package/dist/{alert-dialog-D1UYVW__.js.map → alert-dialog-CzRo39mH.js.map} +1 -1
  28. package/dist/{alert-dialog-BcOSIOSW.cjs → alert-dialog-DC-Fapxf.cjs} +3 -3
  29. package/dist/{alert-dialog-BcOSIOSW.cjs.map → alert-dialog-DC-Fapxf.cjs.map} +1 -1
  30. package/dist/{ask-user-DJXmLJzy.cjs → ask-user-CXu4b7Jw.cjs} +4 -4
  31. package/dist/ask-user-CXu4b7Jw.cjs.map +1 -0
  32. package/dist/{ask-user-Crg1O-o6.js → ask-user-Dlz2346n.js} +4 -4
  33. package/dist/ask-user-Dlz2346n.js.map +1 -0
  34. package/dist/buttons-group-CoZP3lJt.cjs.map +1 -1
  35. package/dist/buttons-group-DsZgrZBZ.js.map +1 -1
  36. package/dist/{code-block-C7A4Hv96.cjs → code-block-BzoMjjtf.cjs} +5 -5
  37. package/dist/{code-block-C7A4Hv96.cjs.map → code-block-BzoMjjtf.cjs.map} +1 -1
  38. package/dist/{code-block-C_pvalBv.js → code-block-DY5KsTGY.js} +5 -5
  39. package/dist/{code-block-C_pvalBv.js.map → code-block-DY5KsTGY.js.map} +1 -1
  40. package/dist/{code-editor-BXchPl_F.cjs → code-editor-DzQEzQJh.cjs} +5 -5
  41. package/dist/code-editor-DzQEzQJh.cjs.map +1 -0
  42. package/dist/{code-editor-Cltwid7c.js → code-editor-IR5UX112.js} +5 -5
  43. package/dist/code-editor-IR5UX112.js.map +1 -0
  44. package/dist/{combobox-B_C0cNid.js → combobox-B15qTrWO.js} +4 -4
  45. package/dist/{combobox-B_C0cNid.js.map → combobox-B15qTrWO.js.map} +1 -1
  46. package/dist/{combobox-rKV-Lksj.cjs → combobox-DJ0c4o4S.cjs} +4 -4
  47. package/dist/{combobox-rKV-Lksj.cjs.map → combobox-DJ0c4o4S.cjs.map} +1 -1
  48. package/dist/{combobox-styles-CLxC7VLA.js → combobox-styles-C2MEEpaG.js} +3 -3
  49. package/dist/{combobox-styles-CLxC7VLA.js.map → combobox-styles-C2MEEpaG.js.map} +1 -1
  50. package/dist/{combobox-styles-C4Kq1NFV.cjs → combobox-styles-DLflBH-G.cjs} +3 -3
  51. package/dist/{combobox-styles-C4Kq1NFV.cjs.map → combobox-styles-DLflBH-G.cjs.map} +1 -1
  52. package/dist/{command-CpXMoss8.cjs → command-Bm0VcX7X.cjs} +2 -2
  53. package/dist/{command-CpXMoss8.cjs.map → command-Bm0VcX7X.cjs.map} +1 -1
  54. package/dist/{command-C6JnofUJ.js → command-DFin7kHN.js} +2 -2
  55. package/dist/{command-C6JnofUJ.js.map → command-DFin7kHN.js.map} +1 -1
  56. package/dist/components/AlertDialog.cjs.js +1 -1
  57. package/dist/components/AlertDialog.es.js +1 -1
  58. package/dist/components/Badge.cjs.js +1 -1
  59. package/dist/components/Badge.es.js +1 -1
  60. package/dist/components/Button.cjs.js +1 -1
  61. package/dist/components/Button.es.js +2 -2
  62. package/dist/components/ClampedText.cjs.js +1 -1
  63. package/dist/components/ClampedText.es.js +1 -1
  64. package/dist/components/CodeBlock.cjs.js +1 -1
  65. package/dist/components/CodeBlock.es.js +1 -1
  66. package/dist/components/CodeEditor.cjs.js +1 -1
  67. package/dist/components/CodeEditor.es.js +1 -1
  68. package/dist/components/CollapsibleBox.cjs.js +12 -0
  69. package/dist/components/CollapsibleBox.cjs.js.map +1 -0
  70. package/dist/components/CollapsibleBox.d.ts +2 -0
  71. package/dist/components/CollapsibleBox.es.js +2 -0
  72. package/dist/components/CollapsibleBox.es.js.map +1 -0
  73. package/dist/components/Combobox.cjs.js +2 -2
  74. package/dist/components/Combobox.es.js +2 -2
  75. package/dist/components/Command.cjs.js +1 -1
  76. package/dist/components/Command.es.js +1 -1
  77. package/dist/components/CommandPalette.cjs.js +1 -1
  78. package/dist/components/CommandPalette.es.js +1 -1
  79. package/dist/components/Comment.cjs.js +3 -3
  80. package/dist/components/Comment.es.js +3 -3
  81. package/dist/components/CopyButton.cjs.js +1 -1
  82. package/dist/components/CopyButton.es.js +1 -1
  83. package/dist/components/DataCodeSection.cjs.js +1 -1
  84. package/dist/components/DataCodeSection.es.js +1 -1
  85. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  86. package/dist/components/DataDetailsPanel.es.js +2 -2
  87. package/dist/components/DataList.cjs.js +3 -3
  88. package/dist/components/DataList.es.js +3 -3
  89. package/dist/components/DataPanel.cjs.js +1 -1
  90. package/dist/components/DataPanel.es.js +1 -1
  91. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  92. package/dist/components/DateRangeTimeline.es.js +1 -1
  93. package/dist/components/DateTimePicker.cjs.js +3 -3
  94. package/dist/components/DateTimePicker.es.js +3 -3
  95. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  96. package/dist/components/DateTimeRangePicker.es.js +1 -1
  97. package/dist/components/Dialog.cjs.js +2 -2
  98. package/dist/components/Dialog.es.js +2 -2
  99. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  100. package/dist/components/DisabledFeatureButton.es.js +1 -1
  101. package/dist/components/Drawer.cjs.js +1 -1
  102. package/dist/components/Drawer.es.js +1 -1
  103. package/dist/components/EmptyState.cjs.js +1 -1
  104. package/dist/components/EmptyState.es.js +1 -1
  105. package/dist/components/EnvironmentVariablesEditor.cjs.js +5 -5
  106. package/dist/components/EnvironmentVariablesEditor.es.js +5 -5
  107. package/dist/components/ErrorBoundary.cjs.js +1 -1
  108. package/dist/components/ErrorBoundary.es.js +1 -1
  109. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  110. package/dist/components/FileDropBackdrop.es.js +1 -1
  111. package/dist/components/FilterBar.cjs.js +3 -3
  112. package/dist/components/FilterBar.es.js +4 -4
  113. package/dist/components/FormFieldBlocks.cjs.js +5 -5
  114. package/dist/components/FormFieldBlocks.es.js +5 -5
  115. package/dist/components/InputGroup.cjs.js +1 -1
  116. package/dist/components/InputGroup.es.js +1 -1
  117. package/dist/components/JSONSchemaForm.cjs.js +3 -3
  118. package/dist/components/JSONSchemaForm.es.js +3 -3
  119. package/dist/components/ListSearch.cjs.js +1 -1
  120. package/dist/components/ListSearch.es.js +1 -1
  121. package/dist/components/LogsDataList.cjs.js +1 -1
  122. package/dist/components/LogsDataList.es.js +1 -1
  123. package/dist/components/MainSidebar.cjs.js +1 -1
  124. package/dist/components/MainSidebar.es.js +2 -2
  125. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  126. package/dist/components/MarkdownRenderer.es.js +1 -1
  127. package/dist/components/Message.cjs.js +1 -1
  128. package/dist/components/Message.es.js +1 -1
  129. package/dist/components/MetricsCard.cjs.js +1 -1
  130. package/dist/components/MetricsCard.es.js +1 -1
  131. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  132. package/dist/components/MetricsKpiCard.es.js +1 -1
  133. package/dist/components/Notice.cjs.js +1 -1
  134. package/dist/components/Notice.es.js +1 -1
  135. package/dist/components/PrevNextNav.cjs.js +1 -1
  136. package/dist/components/PrevNextNav.es.js +1 -1
  137. package/dist/components/ProductBadge.cjs.js +1 -1
  138. package/dist/components/ProductBadge.es.js +1 -1
  139. package/dist/components/PropertyFilter.cjs.js +3 -3
  140. package/dist/components/PropertyFilter.es.js +4 -4
  141. package/dist/components/PullRequestIcon.cjs.js +1 -1
  142. package/dist/components/PullRequestIcon.cjs.js.map +1 -1
  143. package/dist/components/PullRequestIcon.es.js +1 -1
  144. package/dist/components/PullRequestIcon.es.js.map +1 -1
  145. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  146. package/dist/components/RelativeTimestamp.es.js +1 -1
  147. package/dist/components/RuleBuilder.cjs.js +3 -3
  148. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  149. package/dist/components/RuleBuilder.es.js +3 -3
  150. package/dist/components/RuleBuilder.es.js.map +1 -1
  151. package/dist/components/SankeyChart.cjs.js +1 -1
  152. package/dist/components/SankeyChart.es.js +1 -1
  153. package/dist/components/Section.cjs.js +1 -1
  154. package/dist/components/Section.es.js +1 -1
  155. package/dist/components/SegmentedControl.cjs.js +11 -0
  156. package/dist/components/SegmentedControl.cjs.js.map +1 -0
  157. package/dist/components/SegmentedControl.d.ts +2 -0
  158. package/dist/components/SegmentedControl.es.js +2 -0
  159. package/dist/components/SegmentedControl.es.js.map +1 -0
  160. package/dist/components/Select.cjs.js +1 -1
  161. package/dist/components/Select.es.js +1 -1
  162. package/dist/components/SideDialog.cjs.js +1 -1
  163. package/dist/components/SideDialog.es.js +1 -1
  164. package/dist/components/Steps.cjs.js +2 -2
  165. package/dist/components/Steps.cjs.js.map +1 -1
  166. package/dist/components/Steps.es.js +2 -2
  167. package/dist/components/Steps.es.js.map +1 -1
  168. package/dist/components/Tabs.cjs.js +3 -3
  169. package/dist/components/Tabs.es.js +3 -3
  170. package/dist/components/ThemeToggle.cjs.js +17 -86
  171. package/dist/components/ThemeToggle.cjs.js.map +1 -1
  172. package/dist/components/ThemeToggle.es.js +18 -87
  173. package/dist/components/ThemeToggle.es.js.map +1 -1
  174. package/dist/components/ThreadList.cjs.js +1 -1
  175. package/dist/components/ThreadList.es.js +1 -1
  176. package/dist/components/TokenBudget.cjs.js +1 -1
  177. package/dist/components/TokenBudget.es.js +1 -1
  178. package/dist/components/Truncate.cjs.js +1 -1
  179. package/dist/components/Truncate.es.js +1 -1
  180. package/dist/components/Workflow.cjs.js +6 -6
  181. package/dist/components/Workflow.es.js +6 -6
  182. package/dist/components/ai/activity.cjs.js +4 -4
  183. package/dist/components/ai/activity.es.js +4 -4
  184. package/dist/components/ai/ask-user.cjs.js +1 -1
  185. package/dist/components/ai/ask-user.es.js +1 -1
  186. package/dist/components/ai/plan.cjs.js +1 -1
  187. package/dist/components/ai/plan.es.js +1 -1
  188. package/dist/components/ai/tool-approval.cjs.js +1 -1
  189. package/dist/components/ai/tool-approval.es.js +1 -1
  190. package/dist/components/ai/tool-call.cjs.js +4 -4
  191. package/dist/components/ai/tool-call.es.js +4 -4
  192. package/dist/{copy-button-C6nXDjBz.cjs → copy-button-CGkFEDHF.cjs} +2 -2
  193. package/dist/{copy-button-C6nXDjBz.cjs.map → copy-button-CGkFEDHF.cjs.map} +1 -1
  194. package/dist/{copy-button-DbmsTUum.js → copy-button-DH8xtrWz.js} +2 -2
  195. package/dist/{copy-button-DbmsTUum.js.map → copy-button-DH8xtrWz.js.map} +1 -1
  196. package/dist/{data-code-section-D5b6_jcB.cjs → data-code-section-DWBfkrmO.cjs} +6 -6
  197. package/dist/data-code-section-DWBfkrmO.cjs.map +1 -0
  198. package/dist/{data-code-section-Bd2Xnckz.js → data-code-section-It6myyvZ.js} +6 -6
  199. package/dist/data-code-section-It6myyvZ.js.map +1 -0
  200. package/dist/{data-list-DL_oFE4j.js → data-list-CyeD_u-6.js} +3 -3
  201. package/dist/{data-list-DL_oFE4j.js.map → data-list-CyeD_u-6.js.map} +1 -1
  202. package/dist/{data-list-D8bACyyK.cjs → data-list-Y42KyuI1.cjs} +3 -3
  203. package/dist/{data-list-D8bACyyK.cjs.map → data-list-Y42KyuI1.cjs.map} +1 -1
  204. package/dist/{data-list-spacer-_bFe0e2u.cjs → data-list-spacer-BSg2hCx7.cjs} +2 -2
  205. package/dist/{data-list-spacer-_bFe0e2u.cjs.map → data-list-spacer-BSg2hCx7.cjs.map} +1 -1
  206. package/dist/{data-list-spacer-CE6-4ZQq.js → data-list-spacer-C8z32twc.js} +2 -2
  207. package/dist/{data-list-spacer-CE6-4ZQq.js.map → data-list-spacer-C8z32twc.js.map} +1 -1
  208. package/dist/{data-panel-CjvoI_lx.cjs → data-panel-D7Qk4iwZ.cjs} +3 -3
  209. package/dist/{data-panel-CjvoI_lx.cjs.map → data-panel-D7Qk4iwZ.cjs.map} +1 -1
  210. package/dist/{data-panel-42fdcagQ.js → data-panel-DuLf5j8S.js} +3 -3
  211. package/dist/{data-panel-42fdcagQ.js.map → data-panel-DuLf5j8S.js.map} +1 -1
  212. package/dist/{date-time-range-picker-C-pSI1u1.js → date-time-range-picker-BDylIIzt.js} +4 -4
  213. package/dist/{date-time-range-picker-C-pSI1u1.js.map → date-time-range-picker-BDylIIzt.js.map} +1 -1
  214. package/dist/{date-time-range-picker-BORAuIJM.cjs → date-time-range-picker-UheN070q.cjs} +4 -4
  215. package/dist/{date-time-range-picker-BORAuIJM.cjs.map → date-time-range-picker-UheN070q.cjs.map} +1 -1
  216. package/dist/{dialog-cKzR2TXI.js → dialog-Dt5kASkl.js} +2 -2
  217. package/dist/{dialog-cKzR2TXI.js.map → dialog-Dt5kASkl.js.map} +1 -1
  218. package/dist/{dialog-action-B3AHq7mU.cjs → dialog-action-C3Tc7ZKI.cjs} +3 -3
  219. package/dist/{dialog-action-B3AHq7mU.cjs.map → dialog-action-C3Tc7ZKI.cjs.map} +1 -1
  220. package/dist/{dialog-action-BGmDoI5T.js → dialog-action-CB3h9Z2J.js} +3 -3
  221. package/dist/{dialog-action-BGmDoI5T.js.map → dialog-action-CB3h9Z2J.js.map} +1 -1
  222. package/dist/{dialog-DYpOpj9s.cjs → dialog-d_AK1NQD.cjs} +2 -2
  223. package/dist/{dialog-DYpOpj9s.cjs.map → dialog-d_AK1NQD.cjs.map} +1 -1
  224. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  225. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  226. package/dist/domains/auth/components/session-expired.cjs.js +2 -2
  227. package/dist/domains/auth/components/session-expired.es.js +2 -2
  228. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  229. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  230. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  231. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  232. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  233. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  234. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  235. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  236. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  237. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  238. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  239. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  240. package/dist/domains/chat/messages/message-row.cjs.js +5 -5
  241. package/dist/domains/chat/messages/message-row.es.js +5 -5
  242. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  243. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  244. package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
  245. package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
  246. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  247. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  248. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  249. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  250. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  251. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  252. package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
  253. package/dist/domains/chat/messages/skill-message.es.js +3 -3
  254. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  255. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  256. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  257. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  258. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  259. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  260. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  261. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  262. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  263. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  264. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  265. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  266. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +3 -3
  267. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  268. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +3 -3
  269. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  270. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  271. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  272. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  273. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  274. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  275. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  276. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  277. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  278. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +3 -3
  279. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
  280. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +3 -3
  281. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
  282. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  283. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  284. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
  285. package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
  286. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +4 -3
  287. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  288. package/dist/domains/chat/tools/badges/workflow-badge.es.js +4 -3
  289. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  290. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  291. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  292. package/dist/domains/chat/tools/tool-card-kind.cjs.js +5 -1
  293. package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
  294. package/dist/domains/chat/tools/tool-card-kind.es.js +5 -2
  295. package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
  296. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  297. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  298. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  299. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  300. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
  301. package/dist/domains/logs/components/log-data-panel.es.js +3 -3
  302. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  303. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  304. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  305. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  306. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  307. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  308. package/dist/domains/logs/components/no-logs-info.cjs.js +2 -2
  309. package/dist/domains/logs/components/no-logs-info.es.js +2 -2
  310. package/dist/domains/memory/components/flame-graph.cjs.js +2 -2
  311. package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -1
  312. package/dist/domains/memory/components/flame-graph.es.js +2 -2
  313. package/dist/domains/memory/components/flame-graph.es.js.map +1 -1
  314. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  315. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  316. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  317. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  318. package/dist/domains/memory/components/thread-context-progress.cjs.js +1 -1
  319. package/dist/domains/memory/components/thread-context-progress.es.js +1 -1
  320. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  321. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  322. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  323. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  324. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  325. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  326. package/dist/domains/metrics/components/latency-card-view.cjs.js +5 -5
  327. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  328. package/dist/domains/metrics/components/latency-card-view.es.js +5 -5
  329. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  330. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  331. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  332. package/dist/domains/metrics/components/metrics-utils.cjs.js +1 -1
  333. package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -1
  334. package/dist/domains/metrics/components/metrics-utils.es.js +1 -1
  335. package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -1
  336. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  337. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  338. package/dist/domains/metrics/components/scores-card-view.cjs.js +6 -6
  339. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  340. package/dist/domains/metrics/components/scores-card-view.es.js +6 -6
  341. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  342. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +4 -4
  343. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +4 -4
  344. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +5 -5
  345. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  346. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +5 -5
  347. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  348. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +4 -4
  349. package/dist/domains/metrics/components/traces-volume-card-view.es.js +4 -4
  350. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  351. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  352. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  353. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  354. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  355. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  356. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  357. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  358. package/dist/domains/scores/components/trace-scores-tab.cjs.js +4 -4
  359. package/dist/domains/scores/components/trace-scores-tab.es.js +4 -4
  360. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  361. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  362. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +31 -9
  363. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js.map +1 -1
  364. package/dist/domains/traces/components/format-trace-thread-messages.es.js +31 -9
  365. package/dist/domains/traces/components/format-trace-thread-messages.es.js.map +1 -1
  366. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  367. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  368. package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -6
  369. package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
  370. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  371. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  372. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  373. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  374. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  375. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  376. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  377. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  378. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  379. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js.map +1 -1
  380. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  381. package/dist/domains/traces/components/span-payload/span-payload-json.es.js.map +1 -1
  382. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +16 -11
  383. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
  384. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +16 -11
  385. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
  386. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  387. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  388. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  389. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  390. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +16 -3
  391. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
  392. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +16 -3
  393. package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
  394. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  395. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  396. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +2 -2
  397. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +2 -2
  398. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  399. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  400. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  401. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  402. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  403. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +6 -6
  405. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +6 -6
  407. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
  408. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  409. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  410. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +8 -2
  411. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  412. package/dist/domains/traces/components/thread-view-by-trace.es.js +9 -3
  413. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  414. package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
  415. package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
  416. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +6 -6
  417. package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
  418. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
  419. package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
  420. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  421. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  422. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  423. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  424. package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
  425. package/dist/domains/traces/components/trace-status-value.cjs.js.map +1 -1
  426. package/dist/domains/traces/components/trace-status-value.es.js +1 -1
  427. package/dist/domains/traces/components/trace-status-value.es.js.map +1 -1
  428. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  429. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  430. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +9 -2
  431. package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
  432. package/dist/domains/traces/components/trace-thread-item-view.es.js +10 -3
  433. package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
  434. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  435. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  436. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  437. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  438. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  439. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  440. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  441. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  442. package/dist/domains/traces/components/traces-list-view.cjs.js +2 -2
  443. package/dist/domains/traces/components/traces-list-view.es.js +2 -2
  444. package/dist/domains/traces/hooks/use-trace-query.cjs.js +2 -2
  445. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  446. package/dist/domains/traces/hooks/use-trace-query.es.js +2 -2
  447. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  448. package/dist/domains/traces/trace-filters.cjs.js +5 -5
  449. package/dist/domains/traces/trace-filters.cjs.js.map +1 -1
  450. package/dist/domains/traces/trace-filters.es.js +5 -5
  451. package/dist/domains/traces/trace-filters.es.js.map +1 -1
  452. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  453. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  454. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +1 -1
  455. package/dist/domains/workflows/components/workflow-entity-header.es.js +1 -1
  456. package/dist/domains/workflows/components/workflow-information.cjs.js +1 -1
  457. package/dist/domains/workflows/components/workflow-information.es.js +1 -1
  458. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  459. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  460. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
  461. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
  462. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +3 -3
  463. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
  464. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
  465. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
  466. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  467. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  468. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  469. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  470. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +4 -4
  471. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js.map +1 -1
  472. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +4 -4
  473. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js.map +1 -1
  474. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +2 -2
  475. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +2 -2
  476. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +3 -3
  477. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +3 -3
  478. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  479. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  480. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  481. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  482. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  483. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  484. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  485. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  486. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  487. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  488. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  489. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  490. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  491. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  492. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  493. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  494. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -1
  495. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js.map +1 -1
  496. package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -1
  497. package/dist/domains/workflows/workflow/workflow-input-data.es.js.map +1 -1
  498. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  499. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  500. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  501. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  502. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
  503. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
  504. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  505. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  506. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +4 -4
  507. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js.map +1 -1
  508. package/dist/domains/workflows/workflow/workflow-run-header.es.js +4 -4
  509. package/dist/domains/workflows/workflow/workflow-run-header.es.js.map +1 -1
  510. package/dist/domains/workflows/workflow/workflow-status.cjs.js +2 -2
  511. package/dist/domains/workflows/workflow/workflow-status.cjs.js.map +1 -1
  512. package/dist/domains/workflows/workflow/workflow-status.es.js +2 -2
  513. package/dist/domains/workflows/workflow/workflow-status.es.js.map +1 -1
  514. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  515. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  516. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  517. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  518. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  519. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  520. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  521. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  522. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  523. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  524. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  525. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  526. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
  527. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
  528. package/dist/domains/workflows/workflow-status-tone.cjs.js +2 -2
  529. package/dist/domains/workflows/workflow-status-tone.cjs.js.map +1 -1
  530. package/dist/domains/workflows/workflow-status-tone.es.js +2 -2
  531. package/dist/domains/workflows/workflow-status-tone.es.js.map +1 -1
  532. package/dist/{drawer-DXf50w71.js → drawer-BI3B_krl.js} +2 -2
  533. package/dist/{drawer-DXf50w71.js.map → drawer-BI3B_krl.js.map} +1 -1
  534. package/dist/{drawer-d81cZiSV.cjs → drawer-DnXudVbm.cjs} +2 -2
  535. package/dist/{drawer-d81cZiSV.cjs.map → drawer-DnXudVbm.cjs.map} +1 -1
  536. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +1 -1
  537. package/dist/ee/signals/components/entity-index-compact-grid.es.js +1 -1
  538. package/dist/ee/signals/components/entity-index-list.cjs.js +2 -2
  539. package/dist/ee/signals/components/entity-index-list.es.js +2 -2
  540. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  541. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  542. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  543. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  544. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -4
  545. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -4
  546. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  547. package/dist/ee/signals/examples-pager.es.js +1 -1
  548. package/dist/ee/signals/flow-card.cjs.js +1 -1
  549. package/dist/ee/signals/flow-card.es.js +1 -1
  550. package/dist/ee/signals/noise-detail-panel.cjs.js +3 -3
  551. package/dist/ee/signals/noise-detail-panel.cjs.js.map +1 -1
  552. package/dist/ee/signals/noise-detail-panel.es.js +3 -3
  553. package/dist/ee/signals/noise-detail-panel.es.js.map +1 -1
  554. package/dist/ee/signals/sankey-signals.cjs.js +2 -2
  555. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  556. package/dist/ee/signals/sankey-signals.es.js +2 -2
  557. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  558. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +5 -5
  559. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +5 -5
  560. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  561. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  562. package/dist/ee/signals/signal-colors.cjs.js +3 -3
  563. package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
  564. package/dist/ee/signals/signal-colors.es.js +3 -3
  565. package/dist/ee/signals/signal-colors.es.js.map +1 -1
  566. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  567. package/dist/ee/signals/signals-error-state.cjs.js.map +1 -1
  568. package/dist/ee/signals/signals-error-state.es.js +2 -2
  569. package/dist/ee/signals/signals-error-state.es.js.map +1 -1
  570. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  571. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  572. package/dist/ee/signals/theme-detail-panel.cjs.js +4 -4
  573. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  574. package/dist/ee/signals/theme-detail-panel.es.js +4 -4
  575. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  576. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  577. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  578. package/dist/ee/signals/trace-insight-view.cjs.js +4 -4
  579. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  580. package/dist/ee/signals/trace-insight-view.es.js +4 -4
  581. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  582. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  583. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  584. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  585. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  586. package/dist/{field-block-DpejZ6U6.js → field-block--PeppIRb.js} +10 -3
  587. package/dist/field-block--PeppIRb.js.map +1 -0
  588. package/dist/{field-block-BIDi9Bvc.cjs → field-block-DtaPqBa3.cjs} +10 -3
  589. package/dist/field-block-DtaPqBa3.cjs.map +1 -0
  590. package/dist/{field-block-error-msg-B6-wnlAz.cjs → field-block-error-msg-CkhEN6nU.cjs} +2 -2
  591. package/dist/{field-block-error-msg-B6-wnlAz.cjs.map → field-block-error-msg-CkhEN6nU.cjs.map} +1 -1
  592. package/dist/{field-block-error-msg-edlaudVx.js → field-block-error-msg-LXwhKzIq.js} +2 -2
  593. package/dist/{field-block-error-msg-edlaudVx.js.map → field-block-error-msg-LXwhKzIq.js.map} +1 -1
  594. package/dist/{filter-bar-chip-D4CSm9KP.cjs → filter-bar-chip-CBlHsz4A.cjs} +3 -3
  595. package/dist/{filter-bar-chip-D4CSm9KP.cjs.map → filter-bar-chip-CBlHsz4A.cjs.map} +1 -1
  596. package/dist/{filter-bar-chip-BNPOrSrD.js → filter-bar-chip-DFOtEvpW.js} +3 -3
  597. package/dist/{filter-bar-chip-BNPOrSrD.js.map → filter-bar-chip-DFOtEvpW.js.map} +1 -1
  598. package/dist/{input-group-B8bnoDrA.js → input-group-0G9ZX_cM.js} +2 -2
  599. package/dist/{input-group-B8bnoDrA.js.map → input-group-0G9ZX_cM.js.map} +1 -1
  600. package/dist/{input-group-I8YVM_Ps.cjs → input-group-BRhBfeHC.cjs} +2 -2
  601. package/dist/{input-group-I8YVM_Ps.cjs.map → input-group-BRhBfeHC.cjs.map} +1 -1
  602. package/dist/layout/tabbed-container.cjs.js +6 -6
  603. package/dist/layout/tabbed-container.es.js +6 -6
  604. package/dist/lib/form/components/array-element-wrapper.cjs.js +2 -2
  605. package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
  606. package/dist/lib/form/components/array-element-wrapper.es.js +2 -2
  607. package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
  608. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  609. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  610. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  611. package/dist/lib/form/components/boolean-field.es.js +1 -1
  612. package/dist/lib/form/components/date-field.cjs.js +1 -1
  613. package/dist/lib/form/components/date-field.es.js +1 -1
  614. package/dist/lib/form/components/error-message.cjs.js +1 -1
  615. package/dist/lib/form/components/error-message.es.js +1 -1
  616. package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
  617. package/dist/lib/form/components/field-wrapper.es.js +1 -1
  618. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  619. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  620. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  621. package/dist/lib/form/components/object-wrapper.cjs.js.map +1 -1
  622. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  623. package/dist/lib/form/components/object-wrapper.es.js.map +1 -1
  624. package/dist/lib/form/components/record-field.cjs.js +1 -1
  625. package/dist/lib/form/components/record-field.es.js +1 -1
  626. package/dist/lib/form/components/select-field.cjs.js +1 -1
  627. package/dist/lib/form/components/select-field.es.js +1 -1
  628. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  629. package/dist/lib/form/components/submit-button.es.js +1 -1
  630. package/dist/{list-search-DXb7HFX8.cjs → list-search-BzAIj0DB.cjs} +2 -2
  631. package/dist/{list-search-DXb7HFX8.cjs.map → list-search-BzAIj0DB.cjs.map} +1 -1
  632. package/dist/{list-search-9l8IEdxZ.js → list-search-DI1DH7vU.js} +2 -2
  633. package/dist/{list-search-9l8IEdxZ.js.map → list-search-DI1DH7vU.js.map} +1 -1
  634. package/dist/{logs-data-list-C77r2FOj.js → logs-data-list-ButZV-2H.js} +3 -3
  635. package/dist/{logs-data-list-C77r2FOj.js.map → logs-data-list-ButZV-2H.js.map} +1 -1
  636. package/dist/{logs-data-list-CEFyG1Xb.cjs → logs-data-list-CtHern11.cjs} +3 -3
  637. package/dist/{logs-data-list-CEFyG1Xb.cjs.map → logs-data-list-CtHern11.cjs.map} +1 -1
  638. package/dist/{main-sidebar-link-active-BNko0jHZ.cjs → main-sidebar-link-active-D8VSuJKx.cjs} +2 -2
  639. package/dist/{main-sidebar-link-active-BNko0jHZ.cjs.map → main-sidebar-link-active-D8VSuJKx.cjs.map} +1 -1
  640. package/dist/{main-sidebar-link-active-1_ktyA8Q.js → main-sidebar-link-active-buZAhlHo.js} +2 -2
  641. package/dist/{main-sidebar-link-active-1_ktyA8Q.js.map → main-sidebar-link-active-buZAhlHo.js.map} +1 -1
  642. package/dist/{markdown-renderer-CSwjfPaf.cjs → markdown-renderer-CZV6neya.cjs} +3 -3
  643. package/dist/{markdown-renderer-CSwjfPaf.cjs.map → markdown-renderer-CZV6neya.cjs.map} +1 -1
  644. package/dist/{markdown-renderer-Bl0V7FCo.js → markdown-renderer-Cy7Iwy1c.js} +3 -3
  645. package/dist/{markdown-renderer-Bl0V7FCo.js.map → markdown-renderer-Cy7Iwy1c.js.map} +1 -1
  646. package/dist/{message-copy-button-DP3U-xA-.js → message-copy-button-C_mFZ3Vg.js} +2 -2
  647. package/dist/{message-copy-button-DP3U-xA-.js.map → message-copy-button-C_mFZ3Vg.js.map} +1 -1
  648. package/dist/{message-copy-button-ClJBX9qx.cjs → message-copy-button-CqMR2T2t.cjs} +2 -2
  649. package/dist/{message-copy-button-ClJBX9qx.cjs.map → message-copy-button-CqMR2T2t.cjs.map} +1 -1
  650. package/dist/{metrics-card-CloSmyRQ.js → metrics-card-C1rTkbcn.js} +3 -3
  651. package/dist/metrics-card-C1rTkbcn.js.map +1 -0
  652. package/dist/{metrics-card-HmQJHDNa.cjs → metrics-card-D7J9JDgn.cjs} +3 -3
  653. package/dist/metrics-card-D7J9JDgn.cjs.map +1 -0
  654. package/dist/{metrics-kpi-card-CW24YjZp.cjs → metrics-kpi-card-1hbihR2T.cjs} +3 -3
  655. package/dist/metrics-kpi-card-1hbihR2T.cjs.map +1 -0
  656. package/dist/{metrics-kpi-card-DLDT28IB.js → metrics-kpi-card-CiB88L41.js} +3 -3
  657. package/dist/metrics-kpi-card-CiB88L41.js.map +1 -0
  658. package/dist/new/settings.cjs.js +1 -1
  659. package/dist/new/settings.es.js +1 -1
  660. package/dist/new/sidebar.cjs.js +3 -3
  661. package/dist/new/sidebar.cjs.js.map +1 -1
  662. package/dist/new/sidebar.es.js +4 -4
  663. package/dist/new/sidebar.es.js.map +1 -1
  664. package/dist/{notification-activity-B1_2BPe_.js → notification-activity-CFR_b8eA.js} +4 -4
  665. package/dist/notification-activity-CFR_b8eA.js.map +1 -0
  666. package/dist/{notification-activity-BAn2fhYd.cjs → notification-activity-Dk50wcE4.cjs} +4 -4
  667. package/dist/notification-activity-Dk50wcE4.cjs.map +1 -0
  668. package/dist/{plan-DJfH1c_u.js → plan-CvTAGIWv.js} +10 -55
  669. package/dist/plan-CvTAGIWv.js.map +1 -0
  670. package/dist/{plan-ZKAT5frg.cjs → plan-DsfNN3a0.cjs} +10 -55
  671. package/dist/plan-DsfNN3a0.cjs.map +1 -0
  672. package/dist/primitives/menu-item.cjs.js +2 -2
  673. package/dist/primitives/menu-item.cjs.js.map +1 -1
  674. package/dist/primitives/menu-item.es.js +2 -2
  675. package/dist/primitives/menu-item.es.js.map +1 -1
  676. package/dist/primitives/trigger-button.cjs.js +1 -1
  677. package/dist/primitives/trigger-button.es.js +1 -1
  678. package/dist/{property-filter-applied-D0F0BYMY.cjs → property-filter-applied-Bp2z4KBv.cjs} +2 -2
  679. package/dist/{property-filter-applied-D0F0BYMY.cjs.map → property-filter-applied-Bp2z4KBv.cjs.map} +1 -1
  680. package/dist/{property-filter-applied-k0TOa9hf.js → property-filter-applied-C9verwDR.js} +2 -2
  681. package/dist/{property-filter-applied-k0TOa9hf.js.map → property-filter-applied-C9verwDR.js.map} +1 -1
  682. package/dist/{reasoning-activity-CO0Ab1Za.cjs → reasoning-activity-BVviIdMe.cjs} +3 -3
  683. package/dist/{reasoning-activity-CO0Ab1Za.cjs.map → reasoning-activity-BVviIdMe.cjs.map} +1 -1
  684. package/dist/{reasoning-activity-D3oCzL58.js → reasoning-activity-OM1-hbCV.js} +3 -3
  685. package/dist/{reasoning-activity-D3oCzL58.js.map → reasoning-activity-OM1-hbCV.js.map} +1 -1
  686. package/dist/{relative-timestamp-D-IvjsVb.cjs → relative-timestamp-BlmN8Vjn.cjs} +2 -2
  687. package/dist/{relative-timestamp-D-IvjsVb.cjs.map → relative-timestamp-BlmN8Vjn.cjs.map} +1 -1
  688. package/dist/{relative-timestamp-wERh5vUE.js → relative-timestamp-Cnp4VeLp.js} +2 -2
  689. package/dist/{relative-timestamp-wERh5vUE.js.map → relative-timestamp-Cnp4VeLp.js.map} +1 -1
  690. package/dist/resize/panel-drawer.cjs.js +1 -1
  691. package/dist/resize/panel-drawer.es.js +1 -1
  692. package/dist/{sankey-chart-D-xMiO2u.js → sankey-chart-D4Idjtth.js} +2 -2
  693. package/dist/sankey-chart-D4Idjtth.js.map +1 -0
  694. package/dist/{sankey-chart-S7iF7d0E.cjs → sankey-chart-DfVMZpz5.cjs} +2 -2
  695. package/dist/sankey-chart-DfVMZpz5.cjs.map +1 -0
  696. package/dist/{search-field-block-Cj9lJsYi.js → search-field-block-BPJh5yuW.js} +3 -3
  697. package/dist/{search-field-block-Cj9lJsYi.js.map → search-field-block-BPJh5yuW.js.map} +1 -1
  698. package/dist/{search-field-block-B1eqMV8x.cjs → search-field-block-DRa-ZNQj.cjs} +3 -3
  699. package/dist/{search-field-block-B1eqMV8x.cjs.map → search-field-block-DRa-ZNQj.cjs.map} +1 -1
  700. package/dist/{section-B5g_0tUo.js → section-BfEsNViI.js} +2 -2
  701. package/dist/{section-B5g_0tUo.js.map → section-BfEsNViI.js.map} +1 -1
  702. package/dist/{section-Bbp-NIR9.cjs → section-dBeXxS69.cjs} +2 -2
  703. package/dist/{section-Bbp-NIR9.cjs.map → section-dBeXxS69.cjs.map} +1 -1
  704. package/dist/segmented-control--I3IgW21.cjs +157 -0
  705. package/dist/segmented-control--I3IgW21.cjs.map +1 -0
  706. package/dist/segmented-control-BxeiypPR.js +135 -0
  707. package/dist/segmented-control-BxeiypPR.js.map +1 -0
  708. package/dist/{select-C0ZGSJYa.cjs → select-DBY9LQFQ.cjs} +2 -2
  709. package/dist/{select-C0ZGSJYa.cjs.map → select-DBY9LQFQ.cjs.map} +1 -1
  710. package/dist/{select-ch8imm15.js → select-DZeNf-kI.js} +2 -2
  711. package/dist/{select-ch8imm15.js.map → select-DZeNf-kI.js.map} +1 -1
  712. package/dist/{select-field-block-_ZUzUs7l.js → select-field-block-C_x9wNpU.js} +3 -3
  713. package/dist/{select-field-block-_ZUzUs7l.js.map → select-field-block-C_x9wNpU.js.map} +1 -1
  714. package/dist/{select-field-block-Dy_N3tWv.cjs → select-field-block-D8AMzoQT.cjs} +3 -3
  715. package/dist/{select-field-block-Dy_N3tWv.cjs.map → select-field-block-D8AMzoQT.cjs.map} +1 -1
  716. package/dist/{settings-row-2hq9Ww8Z.js → settings-row-C1JZDdz_.js} +4 -4
  717. package/dist/settings-row-C1JZDdz_.js.map +1 -0
  718. package/dist/{settings-row-BMRADph-.cjs → settings-row-C7YKfUgY.cjs} +4 -4
  719. package/dist/settings-row-C7YKfUgY.cjs.map +1 -0
  720. package/dist/{side-dialog-D2O3Y7GB.js → side-dialog-DCzCcZs6.js} +5 -5
  721. package/dist/{side-dialog-D2O3Y7GB.js.map → side-dialog-DCzCcZs6.js.map} +1 -1
  722. package/dist/{side-dialog-7P9aEC4v.cjs → side-dialog-DFnD1498.cjs} +5 -5
  723. package/dist/{side-dialog-7P9aEC4v.cjs.map → side-dialog-DFnD1498.cjs.map} +1 -1
  724. package/dist/{signal-activity-1REUU8T_.js → signal-activity-DW2ExjIp.js} +3 -3
  725. package/dist/{signal-activity-1REUU8T_.js.map → signal-activity-DW2ExjIp.js.map} +1 -1
  726. package/dist/{signal-activity-4OJb4kp6.cjs → signal-activity-byCTRP86.cjs} +3 -3
  727. package/dist/{signal-activity-4OJb4kp6.cjs.map → signal-activity-byCTRP86.cjs.map} +1 -1
  728. package/dist/{span-payload-primitives-CbXrqcs-.cjs → span-payload-primitives-D0mhsndj.cjs} +3 -3
  729. package/dist/{span-payload-primitives-CbXrqcs-.cjs.map → span-payload-primitives-D0mhsndj.cjs.map} +1 -1
  730. package/dist/{span-payload-primitives-CEflnpwW.js → span-payload-primitives-DL1Kr0cu.js} +3 -3
  731. package/dist/{span-payload-primitives-CEflnpwW.js.map → span-payload-primitives-DL1Kr0cu.js.map} +1 -1
  732. package/dist/src/domains/chat/tools/tool-card-kind.d.ts +2 -0
  733. package/dist/src/domains/metrics/components/metrics-utils.d.ts +1 -1
  734. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +2 -0
  735. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +1 -1
  736. package/dist/src/ds/components/Badge/Badge.d.ts +3 -3
  737. package/dist/src/ds/components/ButtonsGroup/buttons-group.d.ts +1 -0
  738. package/dist/src/ds/components/ButtonsGroup/buttons-group.stories.d.ts +0 -6
  739. package/dist/src/ds/components/CollapsibleBox/collapsible-box.d.ts +10 -0
  740. package/dist/src/ds/components/CollapsibleBox/collapsible-box.stories.d.ts +11 -0
  741. package/dist/src/ds/components/CollapsibleBox/index.d.ts +2 -0
  742. package/dist/src/ds/components/CollapsibleBox/use-collapsible-box.d.ts +14 -0
  743. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
  744. package/dist/src/ds/components/SegmentedControl/index.d.ts +1 -0
  745. package/dist/src/ds/components/SegmentedControl/segmented-control.d.ts +38 -0
  746. package/dist/src/ds/components/SegmentedControl/segmented-control.stories.d.ts +11 -0
  747. package/dist/src/ds/components/ThemeToggle/theme-toggle.d.ts +12 -30
  748. package/dist/src/ds/components/ThemeToggle/theme-toggle.stories.d.ts +0 -1
  749. package/dist/src/ds/components/TokenBudget/tones.d.ts +1 -1
  750. package/dist/src/ds/components/Workflow/cards/workflow-card-badge-utils.d.ts +2 -2
  751. package/dist/src/ds/components/ai/plan/plan.d.ts +1 -1
  752. package/dist/src/ds/tokens/colors.d.ts +31 -28
  753. package/dist/src/lib/colors.d.ts +1 -1
  754. package/dist/style.css +517 -184
  755. package/dist/{tabs-content-h2qqD8t-.js → tabs-content-CwbkTutf.js} +2 -2
  756. package/dist/{tabs-content-h2qqD8t-.js.map → tabs-content-CwbkTutf.js.map} +1 -1
  757. package/dist/{tabs-content-DQNRMjup.cjs → tabs-content-DnscxcLI.cjs} +2 -2
  758. package/dist/{tabs-content-DQNRMjup.cjs.map → tabs-content-DnscxcLI.cjs.map} +1 -1
  759. package/dist/{tabs-root-BqC8X_h6.cjs → tabs-root-C-ePF1y9.cjs} +4 -4
  760. package/dist/tabs-root-C-ePF1y9.cjs.map +1 -0
  761. package/dist/{tabs-root-4vL8SHCO.js → tabs-root-lrZZ3KwH.js} +4 -4
  762. package/dist/tabs-root-lrZZ3KwH.js.map +1 -0
  763. package/dist/{tabs-tab-lm4xyjtD.cjs → tabs-tab-BmIBFifi.cjs} +2 -2
  764. package/dist/{tabs-tab-lm4xyjtD.cjs.map → tabs-tab-BmIBFifi.cjs.map} +1 -1
  765. package/dist/{tabs-tab-7e2as-AV.js → tabs-tab-DoPSW-1s.js} +2 -2
  766. package/dist/{tabs-tab-7e2as-AV.js.map → tabs-tab-DoPSW-1s.js.map} +1 -1
  767. package/dist/{text-field-block-DYOWjPgO.cjs → text-field-block-DUntfMPu.cjs} +2 -2
  768. package/dist/{text-field-block-DYOWjPgO.cjs.map → text-field-block-DUntfMPu.cjs.map} +1 -1
  769. package/dist/{text-field-block-DJsOk8dJ.js → text-field-block-DZaGiu5D.js} +2 -2
  770. package/dist/{text-field-block-DJsOk8dJ.js.map → text-field-block-DZaGiu5D.js.map} +1 -1
  771. package/dist/{textarea-field-block-DqTd31gF.js → textarea-field-block-BscOSlvI.js} +2 -2
  772. package/dist/{textarea-field-block-DqTd31gF.js.map → textarea-field-block-BscOSlvI.js.map} +1 -1
  773. package/dist/{textarea-field-block-C5fPL2Hn.cjs → textarea-field-block-CKAhmLrz.cjs} +2 -2
  774. package/dist/{textarea-field-block-C5fPL2Hn.cjs.map → textarea-field-block-CKAhmLrz.cjs.map} +1 -1
  775. package/dist/{thread-list-DGI6M6if.js → thread-list-BTpezI4f.js} +2 -2
  776. package/dist/{thread-list-DGI6M6if.js.map → thread-list-BTpezI4f.js.map} +1 -1
  777. package/dist/{thread-list-DwASH1Vl.cjs → thread-list-Drcptd4x.cjs} +2 -2
  778. package/dist/{thread-list-DwASH1Vl.cjs.map → thread-list-Drcptd4x.cjs.map} +1 -1
  779. package/dist/{time-picker-CfZbLgMm.js → time-picker-BElZALzM.js} +2 -2
  780. package/dist/{time-picker-CfZbLgMm.js.map → time-picker-BElZALzM.js.map} +1 -1
  781. package/dist/{time-picker-C0DCPWpR.cjs → time-picker-_QJdolkZ.cjs} +2 -2
  782. package/dist/{time-picker-C0DCPWpR.cjs.map → time-picker-_QJdolkZ.cjs.map} +1 -1
  783. package/dist/tokens.cjs.js +31 -28
  784. package/dist/tokens.cjs.js.map +1 -1
  785. package/dist/tokens.es.js +31 -28
  786. package/dist/tokens.es.js.map +1 -1
  787. package/dist/{tones-DVtXIMPY.js → tones-RD3VjqiN.js} +2 -2
  788. package/dist/tones-RD3VjqiN.js.map +1 -0
  789. package/dist/{tones-BRAQR5Yb.cjs → tones-koH7QNLH.cjs} +2 -2
  790. package/dist/tones-koH7QNLH.cjs.map +1 -0
  791. package/dist/{tool-approval-xZvYiuBP.js → tool-approval-BNJ6MpnV.js} +3 -3
  792. package/dist/tool-approval-BNJ6MpnV.js.map +1 -0
  793. package/dist/{tool-approval-BAER9nxR.cjs → tool-approval-DOPxugSv.cjs} +3 -3
  794. package/dist/tool-approval-DOPxugSv.cjs.map +1 -0
  795. package/dist/{tool-call-arguments-D7PMJ6vj.js → tool-call-arguments-B1MghuMZ.js} +3 -3
  796. package/dist/{tool-call-arguments-D7PMJ6vj.js.map → tool-call-arguments-B1MghuMZ.js.map} +1 -1
  797. package/dist/{tool-call-arguments-ynBfg2dY.cjs → tool-call-arguments-CQYR65FB.cjs} +3 -3
  798. package/dist/{tool-call-arguments-ynBfg2dY.cjs.map → tool-call-arguments-CQYR65FB.cjs.map} +1 -1
  799. package/dist/{tool-call-group-9Dtupqev.cjs → tool-call-group-D_ioE9hT.cjs} +3 -3
  800. package/dist/tool-call-group-D_ioE9hT.cjs.map +1 -0
  801. package/dist/{tool-call-group-DJX7eUYY.js → tool-call-group-ZuYxpyDs.js} +3 -3
  802. package/dist/tool-call-group-ZuYxpyDs.js.map +1 -0
  803. package/dist/{tool-call-mono-gKG9Ek1m.js → tool-call-mono-CC6uzvhS.js} +2 -2
  804. package/dist/{tool-call-mono-gKG9Ek1m.js.map → tool-call-mono-CC6uzvhS.js.map} +1 -1
  805. package/dist/{tool-call-mono-DFSfVZ6E.cjs → tool-call-mono-DXtb4UMm.cjs} +2 -2
  806. package/dist/{tool-call-mono-DFSfVZ6E.cjs.map → tool-call-mono-DXtb4UMm.cjs.map} +1 -1
  807. package/dist/{tool-call-output-DEoCE_Xn.js → tool-call-output-COq3kB-f.js} +3 -3
  808. package/dist/tool-call-output-COq3kB-f.js.map +1 -0
  809. package/dist/{tool-call-output-Dl4sVfCy.cjs → tool-call-output-ht3k1qLQ.cjs} +3 -3
  810. package/dist/tool-call-output-ht3k1qLQ.cjs.map +1 -0
  811. package/dist/{tool-card-DRqhTx-u.cjs → tool-card-BfMA9tub.cjs} +5 -5
  812. package/dist/tool-card-BfMA9tub.cjs.map +1 -0
  813. package/dist/{tool-card-BA1YcDoS.js → tool-card-DPrShK-9.js} +5 -5
  814. package/dist/tool-card-DPrShK-9.js.map +1 -0
  815. package/dist/{traces-data-list-CU93pUfj.cjs → traces-data-list-BsAYYJ9t.cjs} +4 -4
  816. package/dist/{traces-data-list-CU93pUfj.cjs.map → traces-data-list-BsAYYJ9t.cjs.map} +1 -1
  817. package/dist/{traces-data-list-DaedGcID.js → traces-data-list-CnNpGVRN.js} +4 -4
  818. package/dist/{traces-data-list-DaedGcID.js.map → traces-data-list-CnNpGVRN.js.map} +1 -1
  819. package/dist/use-collapsible-box-CCvsF_a9.js +54 -0
  820. package/dist/use-collapsible-box-CCvsF_a9.js.map +1 -0
  821. package/dist/use-collapsible-box-CbQOkokQ.cjs +58 -0
  822. package/dist/use-collapsible-box-CbQOkokQ.cjs.map +1 -0
  823. package/dist/{use-workflow-graph-runtime-D0ODPlNB.cjs → use-workflow-graph-runtime-CIs2HzoP.cjs} +3 -3
  824. package/dist/{use-workflow-graph-runtime-D0ODPlNB.cjs.map → use-workflow-graph-runtime-CIs2HzoP.cjs.map} +1 -1
  825. package/dist/{use-workflow-graph-runtime-XL5zreeR.js → use-workflow-graph-runtime-CexS1ECI.js} +3 -3
  826. package/dist/{use-workflow-graph-runtime-XL5zreeR.js.map → use-workflow-graph-runtime-CexS1ECI.js.map} +1 -1
  827. package/dist/utils/colors.cjs.js +2 -2
  828. package/dist/utils/colors.cjs.js.map +1 -1
  829. package/dist/utils/colors.es.js +2 -2
  830. package/dist/utils/colors.es.js.map +1 -1
  831. package/dist/{workflow-code-dialog-content-Iz2Omi1P.js → workflow-code-dialog-content-BQBHzRfZ.js} +3 -3
  832. package/dist/{workflow-code-dialog-content-Iz2Omi1P.js.map → workflow-code-dialog-content-BQBHzRfZ.js.map} +1 -1
  833. package/dist/{workflow-code-dialog-content-vLneZlMd.cjs → workflow-code-dialog-content-COlaHWtW.cjs} +3 -3
  834. package/dist/{workflow-code-dialog-content-vLneZlMd.cjs.map → workflow-code-dialog-content-COlaHWtW.cjs.map} +1 -1
  835. package/dist/{workflow-condition-card-B0Va5Amx.js → workflow-condition-card-3J-As62x.js} +10 -10
  836. package/dist/{workflow-condition-card-B0Va5Amx.js.map → workflow-condition-card-3J-As62x.js.map} +1 -1
  837. package/dist/{workflow-condition-card-CfjhZb0m.cjs → workflow-condition-card-BjEAp0t6.cjs} +10 -10
  838. package/dist/{workflow-condition-card-CfjhZb0m.cjs.map → workflow-condition-card-BjEAp0t6.cjs.map} +1 -1
  839. package/dist/{workflow-data-edge-view-o7akvbpB.js → workflow-data-edge-view-BjfKYysc.js} +2 -2
  840. package/dist/{workflow-data-edge-view-o7akvbpB.js.map → workflow-data-edge-view-BjfKYysc.js.map} +1 -1
  841. package/dist/{workflow-data-edge-view-DXeWURnc.cjs → workflow-data-edge-view-BvhW_gux.cjs} +2 -2
  842. package/dist/{workflow-data-edge-view-DXeWURnc.cjs.map → workflow-data-edge-view-BvhW_gux.cjs.map} +1 -1
  843. package/dist/{workflow-debug-controls-Bcb4vcek.cjs → workflow-debug-controls-VbxiluNZ.cjs} +3 -3
  844. package/dist/{workflow-debug-controls-Bcb4vcek.cjs.map → workflow-debug-controls-VbxiluNZ.cjs.map} +1 -1
  845. package/dist/{workflow-debug-controls-DULCFa4s.js → workflow-debug-controls-tty6gLX2.js} +3 -3
  846. package/dist/{workflow-debug-controls-DULCFa4s.js.map → workflow-debug-controls-tty6gLX2.js.map} +1 -1
  847. package/dist/{workflow-edge-data-button-CX-eSbSB.cjs → workflow-edge-data-button-BTsPGDpk.cjs} +4 -4
  848. package/dist/{workflow-edge-data-button-CX-eSbSB.cjs.map → workflow-edge-data-button-BTsPGDpk.cjs.map} +1 -1
  849. package/dist/{workflow-edge-data-button-BuZzeN2n.js → workflow-edge-data-button-CIP46GJE.js} +4 -4
  850. package/dist/{workflow-edge-data-button-BuZzeN2n.js.map → workflow-edge-data-button-CIP46GJE.js.map} +1 -1
  851. package/dist/{workflow-step-action-Cf_XmOwj.js → workflow-step-action-B3coZwPr.js} +3 -3
  852. package/dist/{workflow-step-action-Cf_XmOwj.js.map → workflow-step-action-B3coZwPr.js.map} +1 -1
  853. package/dist/{workflow-step-action-JMkWtObA.cjs → workflow-step-action-COOlMQGX.cjs} +3 -3
  854. package/dist/{workflow-step-action-JMkWtObA.cjs.map → workflow-step-action-COOlMQGX.cjs.map} +1 -1
  855. package/package.json +9 -9
  856. package/theme/colors.css +66 -66
  857. package/theme/data-viz.css +3 -3
  858. package/theme/status.css +89 -71
  859. package/theme/surfaces.css +4 -1
  860. package/dist/Badge-H8K5WrXg.cjs.map +0 -1
  861. package/dist/Badge-Q_pCeeGW.js.map +0 -1
  862. package/dist/Button-BnmR2HRc.cjs.map +0 -1
  863. package/dist/Button-C6eUqcPI.js.map +0 -1
  864. package/dist/EmptyState-CJ5KC4Db.cjs.map +0 -1
  865. package/dist/EmptyState-CynkaZd1.js.map +0 -1
  866. package/dist/activity-8egTNbaI.cjs.map +0 -1
  867. package/dist/activity-Duth8KP_.js.map +0 -1
  868. package/dist/ask-user-Crg1O-o6.js.map +0 -1
  869. package/dist/ask-user-DJXmLJzy.cjs.map +0 -1
  870. package/dist/code-editor-BXchPl_F.cjs.map +0 -1
  871. package/dist/code-editor-Cltwid7c.js.map +0 -1
  872. package/dist/data-code-section-Bd2Xnckz.js.map +0 -1
  873. package/dist/data-code-section-D5b6_jcB.cjs.map +0 -1
  874. package/dist/field-block-BIDi9Bvc.cjs.map +0 -1
  875. package/dist/field-block-DpejZ6U6.js.map +0 -1
  876. package/dist/metrics-card-CloSmyRQ.js.map +0 -1
  877. package/dist/metrics-card-HmQJHDNa.cjs.map +0 -1
  878. package/dist/metrics-kpi-card-CW24YjZp.cjs.map +0 -1
  879. package/dist/metrics-kpi-card-DLDT28IB.js.map +0 -1
  880. package/dist/notification-activity-B1_2BPe_.js.map +0 -1
  881. package/dist/notification-activity-BAn2fhYd.cjs.map +0 -1
  882. package/dist/plan-DJfH1c_u.js.map +0 -1
  883. package/dist/plan-ZKAT5frg.cjs.map +0 -1
  884. package/dist/sankey-chart-D-xMiO2u.js.map +0 -1
  885. package/dist/sankey-chart-S7iF7d0E.cjs.map +0 -1
  886. package/dist/settings-row-2hq9Ww8Z.js.map +0 -1
  887. package/dist/settings-row-BMRADph-.cjs.map +0 -1
  888. package/dist/tabs-root-4vL8SHCO.js.map +0 -1
  889. package/dist/tabs-root-BqC8X_h6.cjs.map +0 -1
  890. package/dist/tones-BRAQR5Yb.cjs.map +0 -1
  891. package/dist/tones-DVtXIMPY.js.map +0 -1
  892. package/dist/tool-approval-BAER9nxR.cjs.map +0 -1
  893. package/dist/tool-approval-xZvYiuBP.js.map +0 -1
  894. package/dist/tool-call-group-9Dtupqev.cjs.map +0 -1
  895. package/dist/tool-call-group-DJX7eUYY.js.map +0 -1
  896. package/dist/tool-call-output-DEoCE_Xn.js.map +0 -1
  897. package/dist/tool-call-output-Dl4sVfCy.cjs.map +0 -1
  898. package/dist/tool-card-BA1YcDoS.js.map +0 -1
  899. package/dist/tool-card-DRqhTx-u.cjs.map +0 -1
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
- const Button = require('../../Button-BnmR2HRc.cjs');
7
+ const Button = require('../../Button-CXhSUBxN.cjs');
8
8
  const Txt = require('../../Txt-DPmEpNbp.cjs');
9
9
 
10
10
  const EXAMPLES_PAGE_SIZE = 5;
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { ChevronLeft, ChevronRight } from 'lucide-react';
3
- import { B as Button } from '../../Button-C6eUqcPI.js';
3
+ import { B as Button } from '../../Button-D43ghVKt.js';
4
4
  import { T as Txt } from '../../Txt-BP1SRHmL.js';
5
5
 
6
6
  const EXAMPLES_PAGE_SIZE = 5;
@@ -7,7 +7,7 @@ const ee_signals_sankeySignalsData = require('./sankey-signals-data.cjs.js');
7
7
  const ee_signals_signalColors = require('./signal-colors.cjs.js');
8
8
  const ee_signals_sortableSignalHeaders = require('./sortable-signal-headers.cjs.js');
9
9
  const Card = require('../../Card-BQsKHkyB.cjs');
10
- const sankeyChart = require('../../sankey-chart-S7iF7d0E.cjs');
10
+ const sankeyChart = require('../../sankey-chart-DfVMZpz5.cjs');
11
11
  const Txt = require('../../Txt-DPmEpNbp.cjs');
12
12
 
13
13
  function FlowCard({
@@ -3,7 +3,7 @@ import { getSignalRecordNodeValue, getSignalRecordNodeLabel, getSignalRecordNode
3
3
  import { getSignalColor } from './signal-colors.es.js';
4
4
  import { SortableSignalHeaders } from './sortable-signal-headers.es.js';
5
5
  import { C as Card, a as CardContent } from '../../Card-DVy0QS4m.js';
6
- import { S as Sankey, a as SankeyChart } from '../../sankey-chart-D-xMiO2u.js';
6
+ import { S as Sankey, a as SankeyChart } from '../../sankey-chart-D4Idjtth.js';
7
7
  import { T as Txt } from '../../Txt-BP1SRHmL.js';
8
8
 
9
9
  function FlowCard({
@@ -11,7 +11,7 @@ require('@tanstack/react-query');
11
11
  require('./trace-intelligence-context.cjs.js');
12
12
  const ee_signals_signalFormatting = require('./signal-formatting.cjs.js');
13
13
  const ee_signals_traceInsightView = require('./trace-insight-view.cjs.js');
14
- const drawer = require('../../drawer-d81cZiSV.cjs');
14
+ const drawer = require('../../drawer-DnXudVbm.cjs');
15
15
  const Txt = require('../../Txt-DPmEpNbp.cjs');
16
16
  const primitives_raisedSurface = require('../../primitives/raised-surface.cjs.js');
17
17
  const utils_cn = require('../../cn-DG0X1KEP.cjs');
@@ -81,7 +81,7 @@ function NoiseDetailPanel({
81
81
  ),
82
82
  /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { tone: "ink", className: "mt-3", children: "Noise contains trace signal summaries that did not consistently match a recurring theme in this snapshot." }),
83
83
  noiseQuery.isPending && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { tone: "muted", className: "mt-4", children: "Loading noise details…" }),
84
- noiseQuery.isError && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { className: "mt-4 text-destructive-indicator", children: "Unable to load noise details." }),
84
+ noiseQuery.isError && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { className: "mt-4 text-destructive-foreground", children: "Unable to load noise details." }),
85
85
  noiseQuery.data && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { tone: "ink", font: "mono", className: "mt-4 tabular-nums", children: ee_signals_signalFormatting.shareSentence(
86
86
  filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount,
87
87
  filteredStats?.stageShare ?? noiseQuery.data.noise.coverage
@@ -101,7 +101,7 @@ function NoiseDetailPanel({
101
101
  }
102
102
  ),
103
103
  examplesQuery.isPending && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { tone: "muted", className: "mt-3", children: "Loading examples…" }),
104
- examplesQuery.isError && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { className: "mt-3 text-destructive-indicator", children: "Unable to load examples." }),
104
+ examplesQuery.isError && /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { className: "mt-3 text-destructive-foreground", children: "Unable to load examples." }),
105
105
  examplesQuery.data && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
106
106
  examplesQuery.data.examples.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { tone: "muted", className: "mt-3", children: "No noise examples in this snapshot." }) : /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-3 space-y-3", children: examplesQuery.data.examples.map((example) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
107
107
  "button",
@@ -1 +1 @@
1
- {"version":3,"file":"noise-detail-panel.cjs.js","sources":["../../../src/ee/signals/noise-detail-panel.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { EXAMPLES_PAGE_SIZE, ExamplesPager } from './examples-pager';\nimport { useNoise, useNoiseExamples } from './hooks';\nimport { shareSentence } from './signal-formatting';\nimport type { ThemeSelection, ThemeSelectionStats } from './theme-drilldown-data';\nimport { TraceInsightView } from './trace-insight-view';\nimport type { TraceSignalName } from './types';\nimport {\n Drawer,\n DrawerBody,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from '@/ds/components/Drawer';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\ninterface NoiseDetailPanelProps {\n entityId: string;\n entityType: string;\n snapshotId: string;\n signalName: TraceSignalName | undefined;\n filters?: ThemeSelection[];\n filteredStats?: ThemeSelectionStats;\n onClose: () => void;\n}\n\nexport function NoiseDetailPanel({\n entityId,\n entityType,\n snapshotId,\n signalName,\n filters = [],\n filteredStats,\n onClose,\n}: NoiseDetailPanelProps) {\n const filterKey = filters\n .map(filter => `${filter.signalName}:${filter.kind === 'theme' ? filter.themeId : 'noise'}`)\n .join(',');\n const examplesContextKey = `${snapshotId}:${signalName ?? ''}:${filterKey}`;\n const [examplesPage, setExamplesPage] = useState(() => ({ contextKey: examplesContextKey, offset: 0 }));\n const examplesOffset = examplesPage.contextKey === examplesContextKey ? examplesPage.offset : 0;\n const [insightTraceId, setInsightTraceId] = useState<string>();\n const noiseQuery = useNoise(entityId, entityType, signalName, snapshotId);\n const examplesQuery = useNoiseExamples(\n entityId,\n entityType,\n signalName,\n snapshotId,\n EXAMPLES_PAGE_SIZE,\n examplesOffset,\n filters,\n );\n\n return (\n <Drawer\n onOpenChange={open => {\n if (!open) {\n setExamplesPage({ contextKey: '', offset: 0 });\n setInsightTraceId(undefined);\n onClose();\n }\n }}\n open={signalName !== undefined}\n overlay=\"none\"\n side=\"right\"\n variant=\"floating\"\n >\n <DrawerContent>\n <DrawerHeader className=\"border-b border-border\">\n <DrawerTitle>Noise</DrawerTitle>\n <DrawerDescription className=\"sr-only\">Noise details for the {signalName} trace signal</DrawerDescription>\n </DrawerHeader>\n <DrawerBody className=\"grid content-start gap-6 overflow-y-auto p-6\">\n {insightTraceId !== undefined && (\n <TraceInsightView traceId={insightTraceId} onBack={() => setInsightTraceId(undefined)} />\n )}\n {insightTraceId === undefined && (\n <>\n <section aria-labelledby=\"noise-summary-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-summary-heading\"\n className=\"tracking-wider uppercase\"\n >\n Summary\n </Txt>\n <Txt tone=\"ink\" className=\"mt-3\">\n Noise contains trace signal summaries that did not consistently match a recurring theme in this\n snapshot.\n </Txt>\n {noiseQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-4\">\n Loading noise details…\n </Txt>\n )}\n {noiseQuery.isError && (\n <Txt className=\"mt-4 text-destructive-indicator\">Unable to load noise details.</Txt>\n )}\n {noiseQuery.data && (\n <Txt tone=\"ink\" font=\"mono\" className=\"mt-4 tabular-nums\">\n {shareSentence(\n filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount,\n filteredStats?.stageShare ?? noiseQuery.data.noise.coverage,\n )}\n </Txt>\n )}\n </section>\n\n <section aria-labelledby=\"noise-examples-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-examples-heading\"\n className=\"tracking-wider uppercase\"\n >\n Example summaries\n </Txt>\n {examplesQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-3\">\n Loading examples…\n </Txt>\n )}\n {examplesQuery.isError && (\n <Txt className=\"mt-3 text-destructive-indicator\">Unable to load examples.</Txt>\n )}\n {examplesQuery.data && (\n <>\n {examplesQuery.data.examples.length === 0 ? (\n <Txt tone=\"muted\" className=\"mt-3\">\n No noise examples in this snapshot.\n </Txt>\n ) : (\n <ul className=\"mt-3 space-y-3\">\n {examplesQuery.data.examples.map(example => (\n <li key={example.traceId}>\n <button\n type=\"button\"\n aria-label={`View trace insight for ${example.signalText}`}\n className={cn(\n raisedSurfaceStyle,\n 'state-layer w-full cursor-pointer rounded-md p-3 text-left text-body text-foreground',\n )}\n onClick={() => setInsightTraceId(example.traceId)}\n >\n {example.signalText}\n </button>\n </li>\n ))}\n </ul>\n )}\n {noiseQuery.data && (\n <ExamplesPager\n traceCount={filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount}\n offset={examplesOffset}\n onOffsetChange={offset => setExamplesPage({ contextKey: examplesContextKey, offset })}\n />\n )}\n </>\n )}\n </section>\n </>\n )}\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}\n"],"names":["useState","useNoise","useNoiseExamples","EXAMPLES_PAGE_SIZE","jsx","Drawer","DrawerContent","jsxs","DrawerHeader","DrawerTitle","DrawerDescription","DrawerBody","TraceInsightView","Fragment","Txt","shareSentence","cn","raisedSurfaceStyle","ExamplesPager"],"mappings":"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"}
1
+ {"version":3,"file":"noise-detail-panel.cjs.js","sources":["../../../src/ee/signals/noise-detail-panel.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { EXAMPLES_PAGE_SIZE, ExamplesPager } from './examples-pager';\nimport { useNoise, useNoiseExamples } from './hooks';\nimport { shareSentence } from './signal-formatting';\nimport type { ThemeSelection, ThemeSelectionStats } from './theme-drilldown-data';\nimport { TraceInsightView } from './trace-insight-view';\nimport type { TraceSignalName } from './types';\nimport {\n Drawer,\n DrawerBody,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from '@/ds/components/Drawer';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\ninterface NoiseDetailPanelProps {\n entityId: string;\n entityType: string;\n snapshotId: string;\n signalName: TraceSignalName | undefined;\n filters?: ThemeSelection[];\n filteredStats?: ThemeSelectionStats;\n onClose: () => void;\n}\n\nexport function NoiseDetailPanel({\n entityId,\n entityType,\n snapshotId,\n signalName,\n filters = [],\n filteredStats,\n onClose,\n}: NoiseDetailPanelProps) {\n const filterKey = filters\n .map(filter => `${filter.signalName}:${filter.kind === 'theme' ? filter.themeId : 'noise'}`)\n .join(',');\n const examplesContextKey = `${snapshotId}:${signalName ?? ''}:${filterKey}`;\n const [examplesPage, setExamplesPage] = useState(() => ({ contextKey: examplesContextKey, offset: 0 }));\n const examplesOffset = examplesPage.contextKey === examplesContextKey ? examplesPage.offset : 0;\n const [insightTraceId, setInsightTraceId] = useState<string>();\n const noiseQuery = useNoise(entityId, entityType, signalName, snapshotId);\n const examplesQuery = useNoiseExamples(\n entityId,\n entityType,\n signalName,\n snapshotId,\n EXAMPLES_PAGE_SIZE,\n examplesOffset,\n filters,\n );\n\n return (\n <Drawer\n onOpenChange={open => {\n if (!open) {\n setExamplesPage({ contextKey: '', offset: 0 });\n setInsightTraceId(undefined);\n onClose();\n }\n }}\n open={signalName !== undefined}\n overlay=\"none\"\n side=\"right\"\n variant=\"floating\"\n >\n <DrawerContent>\n <DrawerHeader className=\"border-b border-border\">\n <DrawerTitle>Noise</DrawerTitle>\n <DrawerDescription className=\"sr-only\">Noise details for the {signalName} trace signal</DrawerDescription>\n </DrawerHeader>\n <DrawerBody className=\"grid content-start gap-6 overflow-y-auto p-6\">\n {insightTraceId !== undefined && (\n <TraceInsightView traceId={insightTraceId} onBack={() => setInsightTraceId(undefined)} />\n )}\n {insightTraceId === undefined && (\n <>\n <section aria-labelledby=\"noise-summary-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-summary-heading\"\n className=\"tracking-wider uppercase\"\n >\n Summary\n </Txt>\n <Txt tone=\"ink\" className=\"mt-3\">\n Noise contains trace signal summaries that did not consistently match a recurring theme in this\n snapshot.\n </Txt>\n {noiseQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-4\">\n Loading noise details…\n </Txt>\n )}\n {noiseQuery.isError && (\n <Txt className=\"mt-4 text-destructive-foreground\">Unable to load noise details.</Txt>\n )}\n {noiseQuery.data && (\n <Txt tone=\"ink\" font=\"mono\" className=\"mt-4 tabular-nums\">\n {shareSentence(\n filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount,\n filteredStats?.stageShare ?? noiseQuery.data.noise.coverage,\n )}\n </Txt>\n )}\n </section>\n\n <section aria-labelledby=\"noise-examples-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-examples-heading\"\n className=\"tracking-wider uppercase\"\n >\n Example summaries\n </Txt>\n {examplesQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-3\">\n Loading examples…\n </Txt>\n )}\n {examplesQuery.isError && (\n <Txt className=\"mt-3 text-destructive-foreground\">Unable to load examples.</Txt>\n )}\n {examplesQuery.data && (\n <>\n {examplesQuery.data.examples.length === 0 ? (\n <Txt tone=\"muted\" className=\"mt-3\">\n No noise examples in this snapshot.\n </Txt>\n ) : (\n <ul className=\"mt-3 space-y-3\">\n {examplesQuery.data.examples.map(example => (\n <li key={example.traceId}>\n <button\n type=\"button\"\n aria-label={`View trace insight for ${example.signalText}`}\n className={cn(\n raisedSurfaceStyle,\n 'state-layer w-full cursor-pointer rounded-md p-3 text-left text-body text-foreground',\n )}\n onClick={() => setInsightTraceId(example.traceId)}\n >\n {example.signalText}\n </button>\n </li>\n ))}\n </ul>\n )}\n {noiseQuery.data && (\n <ExamplesPager\n traceCount={filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount}\n offset={examplesOffset}\n onOffsetChange={offset => setExamplesPage({ contextKey: examplesContextKey, offset })}\n />\n )}\n </>\n )}\n </section>\n </>\n )}\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}\n"],"names":["useState","useNoise","useNoiseExamples","EXAMPLES_PAGE_SIZE","jsx","Drawer","DrawerContent","jsxs","DrawerHeader","DrawerTitle","DrawerDescription","DrawerBody","TraceInsightView","Fragment","Txt","shareSentence","cn","raisedSurfaceStyle","ExamplesPager"],"mappings":"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"}
@@ -7,7 +7,7 @@ import '@tanstack/react-query';
7
7
  import './trace-intelligence-context.es.js';
8
8
  import { shareSentence } from './signal-formatting.es.js';
9
9
  import { TraceInsightView } from './trace-insight-view.es.js';
10
- import { D as Drawer, d as DrawerContent, g as DrawerHeader, o as DrawerTitle, e as DrawerDescription, b as DrawerBody } from '../../drawer-DXf50w71.js';
10
+ import { D as Drawer, d as DrawerContent, g as DrawerHeader, o as DrawerTitle, e as DrawerDescription, b as DrawerBody } from '../../drawer-BI3B_krl.js';
11
11
  import { T as Txt } from '../../Txt-BP1SRHmL.js';
12
12
  import { raisedSurfaceStyle } from '../../primitives/raised-surface.es.js';
13
13
  import { c as cn } from '../../cn-65Adrsfj.js';
@@ -77,7 +77,7 @@ function NoiseDetailPanel({
77
77
  ),
78
78
  /* @__PURE__ */ jsx(Txt, { tone: "ink", className: "mt-3", children: "Noise contains trace signal summaries that did not consistently match a recurring theme in this snapshot." }),
79
79
  noiseQuery.isPending && /* @__PURE__ */ jsx(Txt, { tone: "muted", className: "mt-4", children: "Loading noise details…" }),
80
- noiseQuery.isError && /* @__PURE__ */ jsx(Txt, { className: "mt-4 text-destructive-indicator", children: "Unable to load noise details." }),
80
+ noiseQuery.isError && /* @__PURE__ */ jsx(Txt, { className: "mt-4 text-destructive-foreground", children: "Unable to load noise details." }),
81
81
  noiseQuery.data && /* @__PURE__ */ jsx(Txt, { tone: "ink", font: "mono", className: "mt-4 tabular-nums", children: shareSentence(
82
82
  filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount,
83
83
  filteredStats?.stageShare ?? noiseQuery.data.noise.coverage
@@ -97,7 +97,7 @@ function NoiseDetailPanel({
97
97
  }
98
98
  ),
99
99
  examplesQuery.isPending && /* @__PURE__ */ jsx(Txt, { tone: "muted", className: "mt-3", children: "Loading examples…" }),
100
- examplesQuery.isError && /* @__PURE__ */ jsx(Txt, { className: "mt-3 text-destructive-indicator", children: "Unable to load examples." }),
100
+ examplesQuery.isError && /* @__PURE__ */ jsx(Txt, { className: "mt-3 text-destructive-foreground", children: "Unable to load examples." }),
101
101
  examplesQuery.data && /* @__PURE__ */ jsxs(Fragment, { children: [
102
102
  examplesQuery.data.examples.length === 0 ? /* @__PURE__ */ jsx(Txt, { tone: "muted", className: "mt-3", children: "No noise examples in this snapshot." }) : /* @__PURE__ */ jsx("ul", { className: "mt-3 space-y-3", children: examplesQuery.data.examples.map((example) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
103
103
  "button",
@@ -1 +1 @@
1
- {"version":3,"file":"noise-detail-panel.es.js","sources":["../../../src/ee/signals/noise-detail-panel.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { EXAMPLES_PAGE_SIZE, ExamplesPager } from './examples-pager';\nimport { useNoise, useNoiseExamples } from './hooks';\nimport { shareSentence } from './signal-formatting';\nimport type { ThemeSelection, ThemeSelectionStats } from './theme-drilldown-data';\nimport { TraceInsightView } from './trace-insight-view';\nimport type { TraceSignalName } from './types';\nimport {\n Drawer,\n DrawerBody,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from '@/ds/components/Drawer';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\ninterface NoiseDetailPanelProps {\n entityId: string;\n entityType: string;\n snapshotId: string;\n signalName: TraceSignalName | undefined;\n filters?: ThemeSelection[];\n filteredStats?: ThemeSelectionStats;\n onClose: () => void;\n}\n\nexport function NoiseDetailPanel({\n entityId,\n entityType,\n snapshotId,\n signalName,\n filters = [],\n filteredStats,\n onClose,\n}: NoiseDetailPanelProps) {\n const filterKey = filters\n .map(filter => `${filter.signalName}:${filter.kind === 'theme' ? filter.themeId : 'noise'}`)\n .join(',');\n const examplesContextKey = `${snapshotId}:${signalName ?? ''}:${filterKey}`;\n const [examplesPage, setExamplesPage] = useState(() => ({ contextKey: examplesContextKey, offset: 0 }));\n const examplesOffset = examplesPage.contextKey === examplesContextKey ? examplesPage.offset : 0;\n const [insightTraceId, setInsightTraceId] = useState<string>();\n const noiseQuery = useNoise(entityId, entityType, signalName, snapshotId);\n const examplesQuery = useNoiseExamples(\n entityId,\n entityType,\n signalName,\n snapshotId,\n EXAMPLES_PAGE_SIZE,\n examplesOffset,\n filters,\n );\n\n return (\n <Drawer\n onOpenChange={open => {\n if (!open) {\n setExamplesPage({ contextKey: '', offset: 0 });\n setInsightTraceId(undefined);\n onClose();\n }\n }}\n open={signalName !== undefined}\n overlay=\"none\"\n side=\"right\"\n variant=\"floating\"\n >\n <DrawerContent>\n <DrawerHeader className=\"border-b border-border\">\n <DrawerTitle>Noise</DrawerTitle>\n <DrawerDescription className=\"sr-only\">Noise details for the {signalName} trace signal</DrawerDescription>\n </DrawerHeader>\n <DrawerBody className=\"grid content-start gap-6 overflow-y-auto p-6\">\n {insightTraceId !== undefined && (\n <TraceInsightView traceId={insightTraceId} onBack={() => setInsightTraceId(undefined)} />\n )}\n {insightTraceId === undefined && (\n <>\n <section aria-labelledby=\"noise-summary-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-summary-heading\"\n className=\"tracking-wider uppercase\"\n >\n Summary\n </Txt>\n <Txt tone=\"ink\" className=\"mt-3\">\n Noise contains trace signal summaries that did not consistently match a recurring theme in this\n snapshot.\n </Txt>\n {noiseQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-4\">\n Loading noise details…\n </Txt>\n )}\n {noiseQuery.isError && (\n <Txt className=\"mt-4 text-destructive-indicator\">Unable to load noise details.</Txt>\n )}\n {noiseQuery.data && (\n <Txt tone=\"ink\" font=\"mono\" className=\"mt-4 tabular-nums\">\n {shareSentence(\n filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount,\n filteredStats?.stageShare ?? noiseQuery.data.noise.coverage,\n )}\n </Txt>\n )}\n </section>\n\n <section aria-labelledby=\"noise-examples-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-examples-heading\"\n className=\"tracking-wider uppercase\"\n >\n Example summaries\n </Txt>\n {examplesQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-3\">\n Loading examples…\n </Txt>\n )}\n {examplesQuery.isError && (\n <Txt className=\"mt-3 text-destructive-indicator\">Unable to load examples.</Txt>\n )}\n {examplesQuery.data && (\n <>\n {examplesQuery.data.examples.length === 0 ? (\n <Txt tone=\"muted\" className=\"mt-3\">\n No noise examples in this snapshot.\n </Txt>\n ) : (\n <ul className=\"mt-3 space-y-3\">\n {examplesQuery.data.examples.map(example => (\n <li key={example.traceId}>\n <button\n type=\"button\"\n aria-label={`View trace insight for ${example.signalText}`}\n className={cn(\n raisedSurfaceStyle,\n 'state-layer w-full cursor-pointer rounded-md p-3 text-left text-body text-foreground',\n )}\n onClick={() => setInsightTraceId(example.traceId)}\n >\n {example.signalText}\n </button>\n </li>\n ))}\n </ul>\n )}\n {noiseQuery.data && (\n <ExamplesPager\n traceCount={filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount}\n offset={examplesOffset}\n onOffsetChange={offset => setExamplesPage({ contextKey: examplesContextKey, offset })}\n />\n )}\n </>\n )}\n </section>\n </>\n )}\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"noise-detail-panel.es.js","sources":["../../../src/ee/signals/noise-detail-panel.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { EXAMPLES_PAGE_SIZE, ExamplesPager } from './examples-pager';\nimport { useNoise, useNoiseExamples } from './hooks';\nimport { shareSentence } from './signal-formatting';\nimport type { ThemeSelection, ThemeSelectionStats } from './theme-drilldown-data';\nimport { TraceInsightView } from './trace-insight-view';\nimport type { TraceSignalName } from './types';\nimport {\n Drawer,\n DrawerBody,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n} from '@/ds/components/Drawer';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\ninterface NoiseDetailPanelProps {\n entityId: string;\n entityType: string;\n snapshotId: string;\n signalName: TraceSignalName | undefined;\n filters?: ThemeSelection[];\n filteredStats?: ThemeSelectionStats;\n onClose: () => void;\n}\n\nexport function NoiseDetailPanel({\n entityId,\n entityType,\n snapshotId,\n signalName,\n filters = [],\n filteredStats,\n onClose,\n}: NoiseDetailPanelProps) {\n const filterKey = filters\n .map(filter => `${filter.signalName}:${filter.kind === 'theme' ? filter.themeId : 'noise'}`)\n .join(',');\n const examplesContextKey = `${snapshotId}:${signalName ?? ''}:${filterKey}`;\n const [examplesPage, setExamplesPage] = useState(() => ({ contextKey: examplesContextKey, offset: 0 }));\n const examplesOffset = examplesPage.contextKey === examplesContextKey ? examplesPage.offset : 0;\n const [insightTraceId, setInsightTraceId] = useState<string>();\n const noiseQuery = useNoise(entityId, entityType, signalName, snapshotId);\n const examplesQuery = useNoiseExamples(\n entityId,\n entityType,\n signalName,\n snapshotId,\n EXAMPLES_PAGE_SIZE,\n examplesOffset,\n filters,\n );\n\n return (\n <Drawer\n onOpenChange={open => {\n if (!open) {\n setExamplesPage({ contextKey: '', offset: 0 });\n setInsightTraceId(undefined);\n onClose();\n }\n }}\n open={signalName !== undefined}\n overlay=\"none\"\n side=\"right\"\n variant=\"floating\"\n >\n <DrawerContent>\n <DrawerHeader className=\"border-b border-border\">\n <DrawerTitle>Noise</DrawerTitle>\n <DrawerDescription className=\"sr-only\">Noise details for the {signalName} trace signal</DrawerDescription>\n </DrawerHeader>\n <DrawerBody className=\"grid content-start gap-6 overflow-y-auto p-6\">\n {insightTraceId !== undefined && (\n <TraceInsightView traceId={insightTraceId} onBack={() => setInsightTraceId(undefined)} />\n )}\n {insightTraceId === undefined && (\n <>\n <section aria-labelledby=\"noise-summary-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-summary-heading\"\n className=\"tracking-wider uppercase\"\n >\n Summary\n </Txt>\n <Txt tone=\"ink\" className=\"mt-3\">\n Noise contains trace signal summaries that did not consistently match a recurring theme in this\n snapshot.\n </Txt>\n {noiseQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-4\">\n Loading noise details…\n </Txt>\n )}\n {noiseQuery.isError && (\n <Txt className=\"mt-4 text-destructive-foreground\">Unable to load noise details.</Txt>\n )}\n {noiseQuery.data && (\n <Txt tone=\"ink\" font=\"mono\" className=\"mt-4 tabular-nums\">\n {shareSentence(\n filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount,\n filteredStats?.stageShare ?? noiseQuery.data.noise.coverage,\n )}\n </Txt>\n )}\n </section>\n\n <section aria-labelledby=\"noise-examples-heading\">\n <Txt\n as=\"h2\"\n variant=\"caption\"\n tone=\"muted\"\n font=\"mono\"\n id=\"noise-examples-heading\"\n className=\"tracking-wider uppercase\"\n >\n Example summaries\n </Txt>\n {examplesQuery.isPending && (\n <Txt tone=\"muted\" className=\"mt-3\">\n Loading examples…\n </Txt>\n )}\n {examplesQuery.isError && (\n <Txt className=\"mt-3 text-destructive-foreground\">Unable to load examples.</Txt>\n )}\n {examplesQuery.data && (\n <>\n {examplesQuery.data.examples.length === 0 ? (\n <Txt tone=\"muted\" className=\"mt-3\">\n No noise examples in this snapshot.\n </Txt>\n ) : (\n <ul className=\"mt-3 space-y-3\">\n {examplesQuery.data.examples.map(example => (\n <li key={example.traceId}>\n <button\n type=\"button\"\n aria-label={`View trace insight for ${example.signalText}`}\n className={cn(\n raisedSurfaceStyle,\n 'state-layer w-full cursor-pointer rounded-md p-3 text-left text-body text-foreground',\n )}\n onClick={() => setInsightTraceId(example.traceId)}\n >\n {example.signalText}\n </button>\n </li>\n ))}\n </ul>\n )}\n {noiseQuery.data && (\n <ExamplesPager\n traceCount={filteredStats?.traceCount ?? noiseQuery.data.noise.traceCount}\n offset={examplesOffset}\n onOffsetChange={offset => setExamplesPage({ contextKey: examplesContextKey, offset })}\n />\n )}\n </>\n )}\n </section>\n </>\n )}\n </DrawerBody>\n </DrawerContent>\n </Drawer>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ 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-BqC8X_h6.cjs');
33
+ const tabsRoot = require('../../tabs-root-C-ePF1y9.cjs');
34
34
  const Txt = require('../../Txt-DPmEpNbp.cjs');
35
35
 
36
36
  const DRILL_IN_TRACE_LIMIT = 2e3;
@@ -392,7 +392,7 @@ function SankeySignals({
392
392
  }
393
393
  ),
394
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
+ perspectiveMutation.isError ? /* @__PURE__ */ jsxRuntime.jsx(Txt.Txt, { variant: "caption", className: "text-destructive-foreground", role: "alert", children: "Unable to load that trace signal perspective. Try reordering the columns again." }) : null
396
396
  ] }),
397
397
  /* @__PURE__ */ jsxRuntime.jsx(
398
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';\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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"}
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-foreground\" 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,7 @@ 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-4vL8SHCO.js';
29
+ import { a as Tabs, T as TabList } from '../../tabs-root-lrZZ3KwH.js';
30
30
  import { T as Txt } from '../../Txt-BP1SRHmL.js';
31
31
 
32
32
  const DRILL_IN_TRACE_LIMIT = 2e3;
@@ -388,7 +388,7 @@ function SankeySignals({
388
388
  }
389
389
  ),
390
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
+ perspectiveMutation.isError ? /* @__PURE__ */ jsx(Txt, { variant: "caption", className: "text-destructive-foreground", role: "alert", children: "Unable to load that trace signal perspective. Try reordering the columns again." }) : null
392
392
  ] }),
393
393
  /* @__PURE__ */ jsx(
394
394
  ThemeDetailPanel,