@mastra/playground-ui 60.2.0 → 61.0.0-alpha.1

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 (1106) hide show
  1. package/README.md +18 -0
  2. package/dist/{Avatar-bHcyExU7.js → Avatar-Bg_EZRgZ.js} +2 -2
  3. package/dist/{Avatar-bHcyExU7.js.map → Avatar-Bg_EZRgZ.js.map} +1 -1
  4. package/dist/{Avatar-B3PwGdWv.cjs → Avatar-DchBEEMO.cjs} +2 -2
  5. package/dist/{Avatar-B3PwGdWv.cjs.map → Avatar-DchBEEMO.cjs.map} +1 -1
  6. package/dist/{Badge-D3EctKQo.cjs → Badge-DB59RxT5.cjs} +3 -3
  7. package/dist/Badge-DB59RxT5.cjs.map +1 -0
  8. package/dist/{Badge-DmOqFpXW.js → Badge-DId-8rYY.js} +3 -3
  9. package/dist/Badge-DId-8rYY.js.map +1 -0
  10. package/dist/{EmptyState-DyyUFpzY.js → EmptyState-DGzBN0Ix.js} +2 -2
  11. package/dist/{EmptyState-DyyUFpzY.js.map → EmptyState-DGzBN0Ix.js.map} +1 -1
  12. package/dist/{EmptyState-CuoMGNP0.cjs → EmptyState-DvSib3QC.cjs} +2 -2
  13. package/dist/{EmptyState-CuoMGNP0.cjs.map → EmptyState-DvSib3QC.cjs.map} +1 -1
  14. package/dist/{Header-hTHhO02b.js → Header-BXl3AZgO.js} +2 -2
  15. package/dist/{Header-hTHhO02b.js.map → Header-BXl3AZgO.js.map} +1 -1
  16. package/dist/{Header-y51Sfo3G.cjs → Header-W3PBmXia.cjs} +2 -2
  17. package/dist/{Header-y51Sfo3G.cjs.map → Header-W3PBmXia.cjs.map} +1 -1
  18. package/dist/{Notice-B8RIClJD.js → Notice-D4gMAkVI.js} +2 -2
  19. package/dist/{Notice-B8RIClJD.js.map → Notice-D4gMAkVI.js.map} +1 -1
  20. package/dist/{Notice-C4Tgmtgb.cjs → Notice-D4zc_oTj.cjs} +2 -2
  21. package/dist/{Notice-C4Tgmtgb.cjs.map → Notice-D4zc_oTj.cjs.map} +1 -1
  22. package/dist/{Txt-BP1SRHmL.js → Txt-C3cYJgKU.js} +4 -1
  23. package/dist/Txt-C3cYJgKU.js.map +1 -0
  24. package/dist/{Txt-DPmEpNbp.cjs → Txt-DNnvlrBo.cjs} +4 -1
  25. package/dist/Txt-DNnvlrBo.cjs.map +1 -0
  26. package/dist/{activity-CbQG59Oc.cjs → activity-ClKZR5_o.cjs} +2 -2
  27. package/dist/{activity-CbQG59Oc.cjs.map → activity-ClKZR5_o.cjs.map} +1 -1
  28. package/dist/{activity-BoXbE4Kz.js → activity-D0SefV4r.js} +2 -2
  29. package/dist/{activity-BoXbE4Kz.js.map → activity-D0SefV4r.js.map} +1 -1
  30. package/dist/{ask-user-DE8TaPhb.js → ask-user-CqCUiZRR.js} +4 -4
  31. package/dist/{ask-user-DE8TaPhb.js.map → ask-user-CqCUiZRR.js.map} +1 -1
  32. package/dist/{ask-user-XYY0fUoI.cjs → ask-user-DBb0lUh2.cjs} +4 -4
  33. package/dist/{ask-user-XYY0fUoI.cjs.map → ask-user-DBb0lUh2.cjs.map} +1 -1
  34. package/dist/buttons-group.css +1 -1
  35. package/dist/{code-block-Bnz7Pq0Q.js → code-block-C04dJD3G.js} +5 -4
  36. package/dist/{code-block-Bnz7Pq0Q.js.map → code-block-C04dJD3G.js.map} +1 -1
  37. package/dist/{code-block-C3DbSINk.cjs → code-block-CMI2oLXm.cjs} +6 -5
  38. package/dist/{code-block-C3DbSINk.cjs.map → code-block-CMI2oLXm.cjs.map} +1 -1
  39. package/dist/collapsible-box-DW-y0Oi1.js +67 -0
  40. package/dist/collapsible-box-DW-y0Oi1.js.map +1 -0
  41. package/dist/collapsible-box-DdUueeh6.cjs +69 -0
  42. package/dist/collapsible-box-DdUueeh6.cjs.map +1 -0
  43. package/dist/{combobox-RzEkcOuu.cjs → combobox-DPpiBLWV.cjs} +3 -3
  44. package/dist/{combobox-RzEkcOuu.cjs.map → combobox-DPpiBLWV.cjs.map} +1 -1
  45. package/dist/{combobox-DKFPbNMB.js → combobox-DoJgbq9N.js} +3 -3
  46. package/dist/{combobox-DKFPbNMB.js.map → combobox-DoJgbq9N.js.map} +1 -1
  47. package/dist/{combobox-styles-mbcWlNZQ.js → combobox-styles-BuHYzri9.js} +3 -3
  48. package/dist/combobox-styles-BuHYzri9.js.map +1 -0
  49. package/dist/{combobox-styles-qL3FSgmU.cjs → combobox-styles-zdW4cHSq.cjs} +3 -3
  50. package/dist/combobox-styles-zdW4cHSq.cjs.map +1 -0
  51. package/dist/{command-DFin7kHN.js → command-CXPbrw66.js} +7 -4
  52. package/dist/command-CXPbrw66.js.map +1 -0
  53. package/dist/{command-Bm0VcX7X.cjs → command-DD3WIrQX.cjs} +7 -4
  54. package/dist/command-DD3WIrQX.cjs.map +1 -0
  55. package/dist/{comment-DKWkzdMj.js → comment-B1Cf9w4Z.js} +2 -2
  56. package/dist/{comment-DKWkzdMj.js.map → comment-B1Cf9w4Z.js.map} +1 -1
  57. package/dist/{comment-DWY6D0pZ.cjs → comment-DnbibTOe.cjs} +2 -2
  58. package/dist/{comment-DWY6D0pZ.cjs.map → comment-DnbibTOe.cjs.map} +1 -1
  59. package/dist/components/Avatar.cjs.js +1 -1
  60. package/dist/components/Avatar.es.js +1 -1
  61. package/dist/components/Badge.cjs.js +1 -1
  62. package/dist/components/Badge.es.js +1 -1
  63. package/dist/components/ClampedText.cjs.js +1 -1
  64. package/dist/components/ClampedText.es.js +1 -1
  65. package/dist/components/CodeBlock.cjs.js +1 -1
  66. package/dist/components/CodeBlock.es.js +1 -1
  67. package/dist/components/CollapsibleBox.cjs.js +3 -2
  68. package/dist/components/CollapsibleBox.cjs.js.map +1 -1
  69. package/dist/components/CollapsibleBox.es.js +2 -1
  70. package/dist/components/CollapsibleBox.es.js.map +1 -1
  71. package/dist/components/Combobox.cjs.js +2 -2
  72. package/dist/components/Combobox.es.js +2 -2
  73. package/dist/components/Command.cjs.js +1 -1
  74. package/dist/components/Command.es.js +1 -1
  75. package/dist/components/CommandPalette.cjs.js +2 -2
  76. package/dist/components/CommandPalette.es.js +2 -2
  77. package/dist/components/Comment.cjs.js +4 -4
  78. package/dist/components/Comment.es.js +5 -5
  79. package/dist/components/DataCodeSection.cjs.js +1 -1
  80. package/dist/components/DataCodeSection.es.js +1 -1
  81. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  82. package/dist/components/DataDetailsPanel.es.js +1 -1
  83. package/dist/components/DataList.cjs.js +4 -4
  84. package/dist/components/DataList.es.js +4 -4
  85. package/dist/components/DataPanel.cjs.js +1 -1
  86. package/dist/components/DataPanel.es.js +1 -1
  87. package/dist/components/DateRangeTimeline.cjs.js +1 -1
  88. package/dist/components/DateRangeTimeline.es.js +1 -1
  89. package/dist/components/DateTimePicker.cjs.js +2 -2
  90. package/dist/components/DateTimePicker.es.js +2 -2
  91. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  92. package/dist/components/DateTimeRangePicker.es.js +1 -1
  93. package/dist/components/EmptyState.cjs.js +1 -1
  94. package/dist/components/EmptyState.es.js +1 -1
  95. package/dist/components/Entity.cjs.js +1 -1
  96. package/dist/components/Entity.es.js +1 -1
  97. package/dist/components/EntityHeader.cjs.js +1 -1
  98. package/dist/components/EntityHeader.es.js +1 -1
  99. package/dist/components/Entry.cjs.js +1 -1
  100. package/dist/components/Entry.es.js +1 -1
  101. package/dist/components/EnvironmentVariablesEditor.cjs.js +5 -5
  102. package/dist/components/EnvironmentVariablesEditor.es.js +5 -5
  103. package/dist/components/Field.cjs.js +1 -1
  104. package/dist/components/Field.es.js +1 -1
  105. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  106. package/dist/components/FileDropBackdrop.es.js +1 -1
  107. package/dist/components/FilterBar.cjs.js +3 -3
  108. package/dist/components/FilterBar.es.js +4 -4
  109. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  110. package/dist/components/FormFieldBlocks.es.js +2 -2
  111. package/dist/components/Header.cjs.js +1 -1
  112. package/dist/components/Header.es.js +1 -1
  113. package/dist/components/HorizontalBars.cjs.js +1 -1
  114. package/dist/components/HorizontalBars.es.js +1 -1
  115. package/dist/components/InputGroup.cjs.js +3 -1
  116. package/dist/components/InputGroup.cjs.js.map +1 -1
  117. package/dist/components/InputGroup.es.js +1 -1
  118. package/dist/components/InputNumber.cjs.js +95 -0
  119. package/dist/components/InputNumber.cjs.js.map +1 -0
  120. package/dist/components/InputNumber.d.ts +2 -0
  121. package/dist/components/InputNumber.es.js +68 -0
  122. package/dist/components/InputNumber.es.js.map +1 -0
  123. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  124. package/dist/components/JSONSchemaForm.es.js +2 -2
  125. package/dist/components/KeyValueList.cjs.js +1 -1
  126. package/dist/components/KeyValueList.es.js +1 -1
  127. package/dist/components/ListSearch.cjs.js +1 -1
  128. package/dist/components/ListSearch.es.js +1 -1
  129. package/dist/components/LogsDataList.cjs.js +3 -1
  130. package/dist/components/LogsDataList.cjs.js.map +1 -1
  131. package/dist/components/LogsDataList.es.js +3 -1
  132. package/dist/components/LogsDataList.es.js.map +1 -1
  133. package/dist/components/MainHeader.cjs.js +1 -1
  134. package/dist/components/MainHeader.es.js +1 -1
  135. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  136. package/dist/components/MarkdownRenderer.es.js +1 -1
  137. package/dist/components/Message.cjs.js +1 -1
  138. package/dist/components/Message.es.js +2 -2
  139. package/dist/components/MetricsCard.cjs.js +1 -1
  140. package/dist/components/MetricsCard.es.js +1 -1
  141. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  142. package/dist/components/MetricsKpiCard.es.js +1 -1
  143. package/dist/components/MetricsLineChart.cjs.js +2 -2
  144. package/dist/components/MetricsLineChart.es.js +2 -2
  145. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  146. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  147. package/dist/components/Notice.cjs.js +1 -1
  148. package/dist/components/Notice.es.js +1 -1
  149. package/dist/components/PageHeader.cjs.js +1 -1
  150. package/dist/components/PageHeader.es.js +1 -1
  151. package/dist/components/PageLayout.cjs.js +1 -1
  152. package/dist/components/PageLayout.es.js +1 -1
  153. package/dist/components/ProductBadge.cjs.js +1 -1
  154. package/dist/components/ProductBadge.es.js +1 -1
  155. package/dist/components/PropertyFilter.cjs.js +3 -3
  156. package/dist/components/PropertyFilter.es.js +3 -3
  157. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  158. package/dist/components/RelativeTimestamp.es.js +1 -1
  159. package/dist/components/RuleBuilder.cjs.js +2 -2
  160. package/dist/components/RuleBuilder.es.js +2 -2
  161. package/dist/components/ScatterPlotChart.cjs.js +1 -1
  162. package/dist/components/ScatterPlotChart.es.js +1 -1
  163. package/dist/components/SearchInput.cjs.js +1 -1
  164. package/dist/components/SearchInput.es.js +1 -1
  165. package/dist/components/Section.cjs.js +1 -1
  166. package/dist/components/Section.es.js +1 -1
  167. package/dist/components/SectionCard.cjs.js +1 -1
  168. package/dist/components/SectionCard.es.js +1 -1
  169. package/dist/components/Select.cjs.js +1 -1
  170. package/dist/components/Select.es.js +1 -1
  171. package/dist/components/SideDialog.cjs.js +1 -1
  172. package/dist/components/SideDialog.es.js +1 -1
  173. package/dist/components/StatusIndicators.cjs.js +1 -1
  174. package/dist/components/StatusIndicators.es.js +1 -1
  175. package/dist/components/Steps.cjs.js +1 -1
  176. package/dist/components/Steps.es.js +1 -1
  177. package/dist/components/Table.cjs.js +1 -1
  178. package/dist/components/Table.es.js +1 -1
  179. package/dist/components/Tabs.cjs.js +5 -4
  180. package/dist/components/Tabs.cjs.js.map +1 -1
  181. package/dist/components/Tabs.es.js +4 -3
  182. package/dist/components/Tabs.es.js.map +1 -1
  183. package/dist/components/Text.cjs.js +1 -1
  184. package/dist/components/Text.es.js +1 -1
  185. package/dist/components/ThinkingLevel.cjs.js +230 -0
  186. package/dist/components/ThinkingLevel.cjs.js.map +1 -0
  187. package/dist/components/ThinkingLevel.d.ts +2 -0
  188. package/dist/components/ThinkingLevel.es.js +223 -0
  189. package/dist/components/ThinkingLevel.es.js.map +1 -0
  190. package/dist/components/ThreadList.cjs.js +1 -1
  191. package/dist/components/ThreadList.es.js +1 -1
  192. package/dist/components/ThreadRail.cjs.js +1 -1
  193. package/dist/components/ThreadRail.es.js +1 -1
  194. package/dist/components/TokenBudget.cjs.js +1 -1
  195. package/dist/components/TokenBudget.es.js +1 -1
  196. package/dist/components/Tree.cjs.js +2 -487
  197. package/dist/components/Tree.cjs.js.map +1 -1
  198. package/dist/components/Tree.es.js +1 -471
  199. package/dist/components/Tree.es.js.map +1 -1
  200. package/dist/components/Truncate.cjs.js +1 -1
  201. package/dist/components/Truncate.es.js +1 -1
  202. package/dist/components/Txt.cjs.js +1 -1
  203. package/dist/components/Txt.es.js +1 -1
  204. package/dist/components/Workflow.cjs.js +4 -4
  205. package/dist/components/Workflow.es.js +4 -4
  206. package/dist/components/ai/activity.cjs.js +4 -4
  207. package/dist/components/ai/activity.es.js +4 -4
  208. package/dist/components/ai/ask-user.cjs.js +1 -1
  209. package/dist/components/ai/ask-user.es.js +1 -1
  210. package/dist/components/ai/plan.cjs.js +1 -1
  211. package/dist/components/ai/plan.es.js +1 -1
  212. package/dist/components/ai/task-list.cjs.js +1 -1
  213. package/dist/components/ai/task-list.es.js +1 -1
  214. package/dist/components/ai/tool-call.cjs.js +2 -2
  215. package/dist/components/ai/tool-call.es.js +2 -2
  216. package/dist/components/ai/transcript-divider.cjs.js +3 -11
  217. package/dist/components/ai/transcript-divider.cjs.js.map +1 -1
  218. package/dist/components/ai/transcript-divider.es.js +1 -13
  219. package/dist/components/ai/transcript-divider.es.js.map +1 -1
  220. package/dist/{data-code-section-Ds79F6W-.cjs → data-code-section-DIj4CMvD.cjs} +2 -2
  221. package/dist/{data-code-section-Ds79F6W-.cjs.map → data-code-section-DIj4CMvD.cjs.map} +1 -1
  222. package/dist/{data-code-section-DFxE6ckH.js → data-code-section-K-2Bj1zO.js} +2 -2
  223. package/dist/{data-code-section-DFxE6ckH.js.map → data-code-section-K-2Bj1zO.js.map} +1 -1
  224. package/dist/{data-list-CEIYm7FY.js → data-list-DdsyfT8B.js} +3 -3
  225. package/dist/{data-list-CEIYm7FY.js.map → data-list-DdsyfT8B.js.map} +1 -1
  226. package/dist/{data-list-Bqf-fhMx.cjs → data-list-DoKc-wSe.cjs} +3 -3
  227. package/dist/{data-list-Bqf-fhMx.cjs.map → data-list-DoKc-wSe.cjs.map} +1 -1
  228. package/dist/{data-list-spacer-BH2DjRdk.js → data-list-spacer-7QVTcgIS.js} +2 -2
  229. package/dist/{data-list-spacer-BH2DjRdk.js.map → data-list-spacer-7QVTcgIS.js.map} +1 -1
  230. package/dist/{data-list-spacer-DFvaAEqo.cjs → data-list-spacer-CD4hD-As.cjs} +2 -2
  231. package/dist/{data-list-spacer-DFvaAEqo.cjs.map → data-list-spacer-CD4hD-As.cjs.map} +1 -1
  232. package/dist/{data-panel-CbomKGJt.js → data-panel-CKvpHRUM.js} +4 -4
  233. package/dist/data-panel-CKvpHRUM.js.map +1 -0
  234. package/dist/{data-panel-o-QLWuFV.cjs → data-panel-YCvno_Di.cjs} +4 -4
  235. package/dist/data-panel-YCvno_Di.cjs.map +1 -0
  236. package/dist/{date-time-range-picker-Bb-CGVEL.cjs → date-time-range-picker-BbX8F_LY.cjs} +4 -4
  237. package/dist/{date-time-range-picker-Bb-CGVEL.cjs.map → date-time-range-picker-BbX8F_LY.cjs.map} +1 -1
  238. package/dist/{date-time-range-picker-B1zYIQTC.js → date-time-range-picker-DzPLKJol.js} +4 -4
  239. package/dist/{date-time-range-picker-B1zYIQTC.js.map → date-time-range-picker-DzPLKJol.js.map} +1 -1
  240. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  241. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  242. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  243. package/dist/domains/auth/components/session-expired.es.js +1 -1
  244. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  245. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  246. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  247. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  248. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  249. package/dist/domains/chat/components/section-label.es.js +1 -1
  250. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +1 -1
  251. package/dist/domains/chat/messages/assistant-message-actions.es.js +1 -1
  252. package/dist/domains/chat/messages/dataset-save-action.cjs.js +2 -2
  253. package/dist/domains/chat/messages/dataset-save-action.es.js +2 -2
  254. package/dist/domains/chat/messages/message-row.cjs.js +4 -4
  255. package/dist/domains/chat/messages/message-row.es.js +4 -4
  256. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  257. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  258. package/dist/domains/chat/messages/renderers/message-text.cjs.js +3 -3
  259. package/dist/domains/chat/messages/renderers/message-text.es.js +3 -3
  260. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  261. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  262. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  263. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  264. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  265. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  266. package/dist/domains/chat/messages/skill-message.cjs.js +3 -3
  267. package/dist/domains/chat/messages/skill-message.es.js +3 -3
  268. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  269. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  270. package/dist/domains/chat/messages/tripwire-notice.cjs.js +2 -2
  271. package/dist/domains/chat/messages/tripwire-notice.es.js +2 -2
  272. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  273. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  274. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  275. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  276. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  277. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  278. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  279. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  280. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +1 -1
  281. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +1 -1
  282. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +3 -3
  283. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +3 -3
  284. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +2 -2
  285. package/dist/domains/chat/tools/badges/observation-renderer.es.js +2 -2
  286. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  287. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  288. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  289. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  290. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
  291. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
  292. package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
  293. package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
  294. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  295. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  296. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  297. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  298. package/dist/domains/logs/components/log-data-panel.cjs.js +2 -2
  299. package/dist/domains/logs/components/log-data-panel.es.js +2 -2
  300. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  301. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  302. package/dist/domains/logs/components/logs-list-view.cjs.js +1 -1
  303. package/dist/domains/logs/components/logs-list-view.es.js +1 -1
  304. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  305. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  306. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  307. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  308. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  309. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  310. package/dist/domains/memory/components/observation-detail-view.cjs.js +3 -3
  311. package/dist/domains/memory/components/observation-detail-view.es.js +3 -3
  312. package/dist/domains/metrics/components/bar-list.cjs.js +1 -1
  313. package/dist/domains/metrics/components/bar-list.es.js +1 -1
  314. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  315. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  316. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  317. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  318. package/dist/domains/metrics/components/latency-card-view.cjs.js +8 -7
  319. package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -1
  320. package/dist/domains/metrics/components/latency-card-view.es.js +7 -6
  321. package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -1
  322. package/dist/domains/metrics/components/memory-card-view.cjs.js +7 -6
  323. package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -1
  324. package/dist/domains/metrics/components/memory-card-view.es.js +6 -5
  325. package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -1
  326. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  327. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  328. package/dist/domains/metrics/components/scores-card-view.cjs.js +8 -7
  329. package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -1
  330. package/dist/domains/metrics/components/scores-card-view.es.js +7 -6
  331. package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -1
  332. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +7 -6
  333. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -1
  334. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +6 -5
  335. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -1
  336. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +8 -7
  337. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -1
  338. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +7 -6
  339. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -1
  340. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +7 -6
  341. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -1
  342. package/dist/domains/metrics/components/traces-volume-card-view.es.js +6 -5
  343. package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -1
  344. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  345. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  346. package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +1 -1
  347. package/dist/domains/observability/components/trace-as-item-dialog.es.js +1 -1
  348. package/dist/domains/request-context/components/request-context-label.cjs.js +1 -1
  349. package/dist/domains/request-context/components/request-context-label.es.js +1 -1
  350. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  351. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  352. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
  353. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
  354. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  355. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  356. package/dist/domains/scores/components/span-scoring.cjs.js +3 -3
  357. package/dist/domains/scores/components/span-scoring.es.js +3 -3
  358. package/dist/domains/scores/components/trace-scores-tab.cjs.js +5 -4
  359. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  360. package/dist/domains/scores/components/trace-scores-tab.es.js +5 -4
  361. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  362. package/dist/domains/traces/components/feedback-thread.cjs.js +4 -4
  363. package/dist/domains/traces/components/feedback-thread.es.js +4 -4
  364. package/dist/domains/traces/components/no-traces-info.cjs.js +1 -1
  365. package/dist/domains/traces/components/no-traces-info.es.js +1 -1
  366. package/dist/domains/traces/components/span-data-panel-view.cjs.js +20 -15
  367. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  368. package/dist/domains/traces/components/span-data-panel-view.es.js +19 -14
  369. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  370. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  371. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  372. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  373. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  374. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +3 -3
  375. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +3 -3
  376. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +3 -3
  377. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +3 -3
  378. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +2 -2
  379. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +2 -2
  380. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  381. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  382. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +3 -2
  383. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js.map +1 -1
  384. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -1
  385. package/dist/domains/traces/components/span-payload/span-payload-section.es.js.map +1 -1
  386. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  387. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  388. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  389. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  390. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  391. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  392. package/dist/domains/traces/components/span-timeline-row.cjs.js +1 -1
  393. package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
  394. package/dist/domains/traces/components/span-token-usage.cjs.js +1 -1
  395. package/dist/domains/traces/components/span-token-usage.es.js +1 -1
  396. package/dist/domains/traces/components/span-type-legend.cjs.js +1 -1
  397. package/dist/domains/traces/components/span-type-legend.es.js +1 -1
  398. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +5 -3
  399. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js.map +1 -1
  400. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +5 -3
  401. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js.map +1 -1
  402. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +3 -2
  403. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js.map +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +3 -2
  405. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js.map +1 -1
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +8 -16
  407. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js.map +1 -1
  408. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +8 -15
  409. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js.map +1 -1
  410. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +2 -15
  411. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js.map +1 -1
  412. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +2 -15
  413. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js.map +1 -1
  414. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +26 -4
  415. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js.map +1 -1
  416. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +26 -6
  417. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js.map +1 -1
  418. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +29 -24
  419. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js.map +1 -1
  420. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +30 -25
  421. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js.map +1 -1
  422. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +45 -45
  423. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js.map +1 -1
  424. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +47 -47
  425. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js.map +1 -1
  426. package/dist/domains/traces/components/thread-trace.cjs.js +2 -1
  427. package/dist/domains/traces/components/thread-trace.cjs.js.map +1 -1
  428. package/dist/domains/traces/components/thread-trace.es.js +4 -3
  429. package/dist/domains/traces/components/thread-trace.es.js.map +1 -1
  430. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +43 -24
  431. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  432. package/dist/domains/traces/components/thread-view-by-trace.es.js +46 -27
  433. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  434. package/dist/domains/traces/components/thread-view-skeleton.cjs.js +28 -13
  435. package/dist/domains/traces/components/thread-view-skeleton.cjs.js.map +1 -1
  436. package/dist/domains/traces/components/thread-view-skeleton.es.js +28 -13
  437. package/dist/domains/traces/components/thread-view-skeleton.es.js.map +1 -1
  438. package/dist/domains/traces/components/timeline-name-col.cjs.js +5 -5
  439. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  440. package/dist/domains/traces/components/timeline-name-col.es.js +5 -5
  441. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  442. package/dist/domains/traces/components/timeline-timing-col.cjs.js +1 -1
  443. package/dist/domains/traces/components/timeline-timing-col.es.js +1 -1
  444. package/dist/domains/traces/components/trace-columns-menu.cjs.js +3 -3
  445. package/dist/domains/traces/components/trace-columns-menu.es.js +3 -3
  446. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +72 -50
  447. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  448. package/dist/domains/traces/components/trace-data-panel-view.es.js +72 -50
  449. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  450. package/dist/domains/traces/components/trace-data-panel.cjs.js +1 -1
  451. package/dist/domains/traces/components/trace-data-panel.es.js +1 -1
  452. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  453. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  454. package/dist/domains/traces/components/trace-messages-panel.cjs.js +2 -16
  455. package/dist/domains/traces/components/trace-messages-panel.cjs.js.map +1 -1
  456. package/dist/domains/traces/components/trace-messages-panel.es.js +3 -17
  457. package/dist/domains/traces/components/trace-messages-panel.es.js.map +1 -1
  458. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +18 -15
  459. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js.map +1 -1
  460. package/dist/domains/traces/components/trace-messages-skeleton.es.js +18 -15
  461. package/dist/domains/traces/components/trace-messages-skeleton.es.js.map +1 -1
  462. package/dist/domains/traces/components/trace-span-panel.cjs.js +77 -66
  463. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  464. package/dist/domains/traces/components/trace-span-panel.es.js +78 -67
  465. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  466. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +11 -13
  467. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js.map +1 -1
  468. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +11 -13
  469. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js.map +1 -1
  470. package/dist/domains/traces/components/trace-span-tree.cjs.js +1 -1
  471. package/dist/domains/traces/components/trace-span-tree.es.js +1 -1
  472. package/dist/domains/traces/components/trace-summary-description.cjs.js +2 -2
  473. package/dist/domains/traces/components/trace-summary-description.es.js +2 -2
  474. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +2 -2
  475. package/dist/domains/traces/components/trace-thread-item-view.cjs.js.map +1 -1
  476. package/dist/domains/traces/components/trace-thread-item-view.es.js +2 -2
  477. package/dist/domains/traces/components/trace-thread-item-view.es.js.map +1 -1
  478. package/dist/domains/traces/components/trace-thread-panel.cjs.js +32 -21
  479. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  480. package/dist/domains/traces/components/trace-thread-panel.es.js +32 -21
  481. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  482. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  483. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  484. package/dist/domains/traces/components/traces-error-content.cjs.js +1 -1
  485. package/dist/domains/traces/components/traces-error-content.es.js +1 -1
  486. package/dist/domains/traces/components/traces-list-view.cjs.js +3 -3
  487. package/dist/domains/traces/components/traces-list-view.es.js +3 -3
  488. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -0
  489. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  490. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -0
  491. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  492. package/dist/domains/traces/hooks/use-branch.cjs.js +0 -3
  493. package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -1
  494. package/dist/domains/traces/hooks/use-branch.es.js +0 -3
  495. package/dist/domains/traces/hooks/use-branch.es.js.map +1 -1
  496. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +0 -3
  497. package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -1
  498. package/dist/domains/traces/hooks/use-trace-light-spans.es.js +0 -3
  499. package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -1
  500. package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +1 -1
  501. package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +1 -1
  502. package/dist/domains/traces/hooks/use-trace-query.cjs.js +2 -0
  503. package/dist/domains/traces/hooks/use-trace-query.cjs.js.map +1 -1
  504. package/dist/domains/traces/hooks/use-trace-query.es.js +2 -0
  505. package/dist/domains/traces/hooks/use-trace-query.es.js.map +1 -1
  506. package/dist/domains/traces/hooks/use-trace-search.cjs.js +7 -2
  507. package/dist/domains/traces/hooks/use-trace-search.cjs.js.map +1 -1
  508. package/dist/domains/traces/hooks/use-trace-search.es.js +7 -2
  509. package/dist/domains/traces/hooks/use-trace-search.es.js.map +1 -1
  510. package/dist/domains/traces/hooks/use-trace-spans.cjs.js +1 -5
  511. package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -1
  512. package/dist/domains/traces/hooks/use-trace-spans.es.js +1 -5
  513. package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -1
  514. package/dist/domains/traces/utils/to-searchable-spans.cjs.js +0 -5
  515. package/dist/domains/traces/utils/to-searchable-spans.cjs.js.map +1 -1
  516. package/dist/domains/traces/utils/to-searchable-spans.es.js +1 -5
  517. package/dist/domains/traces/utils/to-searchable-spans.es.js.map +1 -1
  518. package/dist/domains/traces/utils.cjs.js +0 -1
  519. package/dist/domains/traces/utils.cjs.js.map +1 -1
  520. package/dist/domains/traces/utils.es.js +1 -1
  521. package/dist/domains/traces.cjs.js +0 -1
  522. package/dist/domains/traces.cjs.js.map +1 -1
  523. package/dist/domains/traces.es.js +1 -1
  524. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  525. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  526. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +2 -2
  527. package/dist/domains/workflows/components/workflow-entity-header.es.js +2 -2
  528. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  529. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  530. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  531. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  532. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +3 -3
  533. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +3 -3
  534. package/dist/domains/workflows/runs/workflow-run-details.cjs.js +1 -1
  535. package/dist/domains/workflows/runs/workflow-run-details.es.js +1 -1
  536. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +2 -2
  537. package/dist/domains/workflows/runs/workflow-run-list.es.js +2 -2
  538. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  539. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  540. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  541. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  542. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  543. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  544. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
  545. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
  546. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  547. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  548. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +2 -2
  549. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +2 -2
  550. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  551. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  552. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  553. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  554. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  555. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  556. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +1 -1
  557. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +1 -1
  558. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  559. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  560. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  561. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  562. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
  563. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
  564. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
  565. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +1 -1
  566. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +4 -4
  567. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +4 -4
  568. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +6 -5
  569. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js.map +1 -1
  570. package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -4
  571. package/dist/domains/workflows/workflow/workflow-run-data.es.js.map +1 -1
  572. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  573. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  574. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +3 -3
  575. package/dist/domains/workflows/workflow/workflow-run-header.es.js +3 -3
  576. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  577. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  578. package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
  579. package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
  580. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  581. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  582. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  583. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  584. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +1 -1
  585. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +1 -1
  586. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +1 -1
  587. package/dist/domains/workflows/workflow/workflow-timeline.es.js +1 -1
  588. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +2 -2
  589. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +2 -2
  590. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  591. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  592. package/dist/domains/workspace/components/frontmatter.cjs.js +13 -0
  593. package/dist/domains/workspace/components/frontmatter.cjs.js.map +1 -0
  594. package/dist/domains/workspace/components/frontmatter.d.ts +2 -0
  595. package/dist/domains/workspace/components/frontmatter.es.js +9 -0
  596. package/dist/domains/workspace/components/frontmatter.es.js.map +1 -0
  597. package/dist/domains/workspace/components/mount-icon.cjs.js +42 -0
  598. package/dist/domains/workspace/components/mount-icon.cjs.js.map +1 -0
  599. package/dist/domains/workspace/components/mount-icon.d.ts +2 -0
  600. package/dist/domains/workspace/components/mount-icon.es.js +38 -0
  601. package/dist/domains/workspace/components/mount-icon.es.js.map +1 -0
  602. package/dist/domains/workspace/components/use-workspace-context.cjs.js +16 -0
  603. package/dist/domains/workspace/components/use-workspace-context.cjs.js.map +1 -0
  604. package/dist/domains/workspace/components/use-workspace-context.d.ts +2 -0
  605. package/dist/domains/workspace/components/use-workspace-context.es.js +11 -0
  606. package/dist/domains/workspace/components/use-workspace-context.es.js.map +1 -0
  607. package/dist/domains/workspace/components/workspace-active-file.cjs.js +72 -0
  608. package/dist/domains/workspace/components/workspace-active-file.cjs.js.map +1 -0
  609. package/dist/domains/workspace/components/workspace-active-file.d.ts +2 -0
  610. package/dist/domains/workspace/components/workspace-active-file.es.js +67 -0
  611. package/dist/domains/workspace/components/workspace-active-file.es.js.map +1 -0
  612. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +282 -0
  613. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js.map +1 -0
  614. package/dist/domains/workspace/components/workspace-add-skill-dialog.d.ts +2 -0
  615. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +278 -0
  616. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js.map +1 -0
  617. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +48 -0
  618. package/dist/domains/workspace/components/workspace-add-skill.cjs.js.map +1 -0
  619. package/dist/domains/workspace/components/workspace-add-skill.d.ts +2 -0
  620. package/dist/domains/workspace/components/workspace-add-skill.es.js +44 -0
  621. package/dist/domains/workspace/components/workspace-add-skill.es.js.map +1 -0
  622. package/dist/domains/workspace/components/workspace-context.cjs.js +88 -0
  623. package/dist/domains/workspace/components/workspace-context.cjs.js.map +1 -0
  624. package/dist/domains/workspace/components/workspace-context.d.ts +2 -0
  625. package/dist/domains/workspace/components/workspace-context.es.js +84 -0
  626. package/dist/domains/workspace/components/workspace-context.es.js.map +1 -0
  627. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +68 -0
  628. package/dist/domains/workspace/components/workspace-create-directory.cjs.js.map +1 -0
  629. package/dist/domains/workspace/components/workspace-create-directory.d.ts +2 -0
  630. package/dist/domains/workspace/components/workspace-create-directory.es.js +64 -0
  631. package/dist/domains/workspace/components/workspace-create-directory.es.js.map +1 -0
  632. package/dist/domains/workspace/components/workspace-error.cjs.js +26 -0
  633. package/dist/domains/workspace/components/workspace-error.cjs.js.map +1 -0
  634. package/dist/domains/workspace/components/workspace-error.d.ts +2 -0
  635. package/dist/domains/workspace/components/workspace-error.es.js +22 -0
  636. package/dist/domains/workspace/components/workspace-error.es.js.map +1 -0
  637. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +27 -0
  638. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js.map +1 -0
  639. package/dist/domains/workspace/components/workspace-markdown-preview.d.ts +2 -0
  640. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +23 -0
  641. package/dist/domains/workspace/components/workspace-markdown-preview.es.js.map +1 -0
  642. package/dist/domains/workspace/components/workspace-parts.cjs.js +94 -0
  643. package/dist/domains/workspace/components/workspace-parts.cjs.js.map +1 -0
  644. package/dist/domains/workspace/components/workspace-parts.d.ts +2 -0
  645. package/dist/domains/workspace/components/workspace-parts.es.js +84 -0
  646. package/dist/domains/workspace/components/workspace-parts.es.js.map +1 -0
  647. package/dist/domains/workspace/components/workspace-search.cjs.js +117 -0
  648. package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -0
  649. package/dist/domains/workspace/components/workspace-search.d.ts +2 -0
  650. package/dist/domains/workspace/components/workspace-search.es.js +111 -0
  651. package/dist/domains/workspace/components/workspace-search.es.js.map +1 -0
  652. package/dist/domains/workspace/components/workspace-tree-view.cjs.js +34 -0
  653. package/dist/domains/workspace/components/workspace-tree-view.cjs.js.map +1 -0
  654. package/dist/domains/workspace/components/workspace-tree-view.d.ts +2 -0
  655. package/dist/domains/workspace/components/workspace-tree-view.es.js +30 -0
  656. package/dist/domains/workspace/components/workspace-tree-view.es.js.map +1 -0
  657. package/dist/domains/workspace/components/workspace-tree.cjs.js +245 -0
  658. package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -0
  659. package/dist/domains/workspace/components/workspace-tree.d.ts +2 -0
  660. package/dist/domains/workspace/components/workspace-tree.es.js +241 -0
  661. package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -0
  662. package/dist/domains/workspace/components/workspace.cjs.js +25 -0
  663. package/dist/domains/workspace/components/workspace.cjs.js.map +1 -0
  664. package/dist/domains/workspace/components/workspace.d.ts +2 -0
  665. package/dist/domains/workspace/components/workspace.es.js +21 -0
  666. package/dist/domains/workspace/components/workspace.es.js.map +1 -0
  667. package/dist/domains/workspace/file-type.cjs.js +25 -0
  668. package/dist/domains/workspace/file-type.cjs.js.map +1 -0
  669. package/dist/domains/workspace/file-type.d.ts +2 -0
  670. package/dist/domains/workspace/file-type.es.js +17 -0
  671. package/dist/domains/workspace/file-type.es.js.map +1 -0
  672. package/dist/domains/workspace/hooks/use-skills-sh.cjs.js +72 -0
  673. package/dist/domains/workspace/hooks/use-skills-sh.cjs.js.map +1 -0
  674. package/dist/domains/workspace/hooks/use-skills-sh.d.ts +2 -0
  675. package/dist/domains/workspace/hooks/use-skills-sh.es.js +65 -0
  676. package/dist/domains/workspace/hooks/use-skills-sh.es.js.map +1 -0
  677. package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js +21 -0
  678. package/dist/domains/workspace/hooks/use-workspace-directory.cjs.js.map +1 -0
  679. package/dist/domains/workspace/hooks/use-workspace-directory.d.ts +2 -0
  680. package/dist/domains/workspace/hooks/use-workspace-directory.es.js +16 -0
  681. package/dist/domains/workspace/hooks/use-workspace-directory.es.js.map +1 -0
  682. package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js +22 -0
  683. package/dist/domains/workspace/hooks/use-workspace-file-content.cjs.js.map +1 -0
  684. package/dist/domains/workspace/hooks/use-workspace-file-content.d.ts +2 -0
  685. package/dist/domains/workspace/hooks/use-workspace-file-content.es.js +18 -0
  686. package/dist/domains/workspace/hooks/use-workspace-file-content.es.js.map +1 -0
  687. package/dist/domains/workspace/hooks/use-workspace-search.cjs.js +53 -0
  688. package/dist/domains/workspace/hooks/use-workspace-search.cjs.js.map +1 -0
  689. package/dist/domains/workspace/hooks/use-workspace-search.d.ts +2 -0
  690. package/dist/domains/workspace/hooks/use-workspace-search.es.js +49 -0
  691. package/dist/domains/workspace/hooks/use-workspace-search.es.js.map +1 -0
  692. package/dist/domains/workspace/path.cjs.js +17 -0
  693. package/dist/domains/workspace/path.cjs.js.map +1 -0
  694. package/dist/domains/workspace/path.d.ts +2 -0
  695. package/dist/domains/workspace/path.es.js +10 -0
  696. package/dist/domains/workspace/path.es.js.map +1 -0
  697. package/dist/domains/workspace.cjs.js +24 -0
  698. package/dist/domains/workspace.cjs.js.map +1 -0
  699. package/dist/domains/workspace.d.ts +2 -0
  700. package/dist/domains/workspace.es.js +9 -0
  701. package/dist/domains/workspace.es.js.map +1 -0
  702. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +2 -2
  703. package/dist/ee/signals/components/entity-index-compact-grid.es.js +2 -2
  704. package/dist/ee/signals/components/entity-index-list.cjs.js +4 -2
  705. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  706. package/dist/ee/signals/components/entity-index-list.es.js +4 -2
  707. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  708. package/dist/ee/signals/components/signals-empty-state.cjs.js +1 -1
  709. package/dist/ee/signals/components/signals-empty-state.es.js +1 -1
  710. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +1 -1
  711. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +1 -1
  712. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -3
  713. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  714. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -3
  715. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  716. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  717. package/dist/ee/signals/examples-pager.es.js +1 -1
  718. package/dist/ee/signals/flow-card.cjs.js +1 -1
  719. package/dist/ee/signals/flow-card.es.js +1 -1
  720. package/dist/ee/signals/lifeline-row.cjs.js +1 -1
  721. package/dist/ee/signals/lifeline-row.es.js +1 -1
  722. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  723. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  724. package/dist/ee/signals/sankey-signals.cjs.js +4 -3
  725. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  726. package/dist/ee/signals/sankey-signals.es.js +3 -2
  727. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  728. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
  729. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
  730. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  731. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  732. package/dist/ee/signals/signal-delta-column.cjs.js +1 -1
  733. package/dist/ee/signals/signal-delta-column.es.js +1 -1
  734. package/dist/ee/signals/signal-lifelines.cjs.js +1 -1
  735. package/dist/ee/signals/signal-lifelines.es.js +1 -1
  736. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  737. package/dist/ee/signals/signals-error-state.es.js +1 -1
  738. package/dist/ee/signals/snapshot-timeline.cjs.js +1 -1
  739. package/dist/ee/signals/snapshot-timeline.es.js +1 -1
  740. package/dist/ee/signals/theme-compare.cjs.js +1 -1
  741. package/dist/ee/signals/theme-compare.es.js +1 -1
  742. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  743. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  744. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  745. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  746. package/dist/ee/signals/theme-lifelines.cjs.js +1 -1
  747. package/dist/ee/signals/theme-lifelines.es.js +1 -1
  748. package/dist/ee/signals/trace-insight-view.cjs.js +1 -1
  749. package/dist/ee/signals/trace-insight-view.es.js +1 -1
  750. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -1
  751. package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -1
  752. package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
  753. package/dist/ee/signals/view-mode-tab.es.js +2 -2
  754. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +2 -1
  755. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -1
  756. package/dist/ee/topics/components/topic-trace-details-panel.es.js +2 -1
  757. package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -1
  758. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
  759. package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
  760. package/dist/{entity-header-DEjkHoqj.cjs → entity-header-By57lpH8.cjs} +2 -2
  761. package/dist/{entity-header-DEjkHoqj.cjs.map → entity-header-By57lpH8.cjs.map} +1 -1
  762. package/dist/{entity-header-9qzr-3xQ.js → entity-header-DMjzE4Za.js} +2 -2
  763. package/dist/{entity-header-9qzr-3xQ.js.map → entity-header-DMjzE4Za.js.map} +1 -1
  764. package/dist/{field-BtvEQ68O.js → field-BiMIiq2Y.js} +3 -3
  765. package/dist/field-BiMIiq2Y.js.map +1 -0
  766. package/dist/{field-ip9xiOVa.cjs → field-BkeKcz_6.cjs} +3 -3
  767. package/dist/field-BkeKcz_6.cjs.map +1 -0
  768. package/dist/{field-error-id-4DYu4KZ2.cjs → field-error-id-4xiCVBJ_.cjs} +5 -5
  769. package/dist/field-error-id-4xiCVBJ_.cjs.map +1 -0
  770. package/dist/{field-error-id-BSQLcfHo.js → field-error-id-CSvLKtJE.js} +5 -5
  771. package/dist/field-error-id-CSvLKtJE.js.map +1 -0
  772. package/dist/{filter-bar-chip-Dmboyu1t.js → filter-bar-chip-CRejLco-.js} +2 -2
  773. package/dist/{filter-bar-chip-Dmboyu1t.js.map → filter-bar-chip-CRejLco-.js.map} +1 -1
  774. package/dist/{filter-bar-chip-BsWm7SQr.cjs → filter-bar-chip-Cr7kUN9G.cjs} +2 -2
  775. package/dist/{filter-bar-chip-BsWm7SQr.cjs.map → filter-bar-chip-Cr7kUN9G.cjs.map} +1 -1
  776. package/dist/hooks/use-fluid-hover.cjs.js +11 -0
  777. package/dist/hooks/use-fluid-hover.cjs.js.map +1 -1
  778. package/dist/hooks/use-fluid-hover.es.js +11 -0
  779. package/dist/hooks/use-fluid-hover.es.js.map +1 -1
  780. package/dist/{horizontal-bars-BSRESJsp.js → horizontal-bars-BL-GHeFh.js} +2 -2
  781. package/dist/{horizontal-bars-BSRESJsp.js.map → horizontal-bars-BL-GHeFh.js.map} +1 -1
  782. package/dist/{horizontal-bars-DRD7JkHL.cjs → horizontal-bars-D-rFCRbH.cjs} +2 -2
  783. package/dist/{horizontal-bars-DRD7JkHL.cjs.map → horizontal-bars-D-rFCRbH.cjs.map} +1 -1
  784. package/dist/icons/FileIcon.cjs.js +18 -0
  785. package/dist/icons/FileIcon.cjs.js.map +1 -0
  786. package/dist/icons/FileIcon.d.ts +2 -0
  787. package/dist/icons/FileIcon.es.js +14 -0
  788. package/dist/icons/FileIcon.es.js.map +1 -0
  789. package/dist/icons/SearchIcon.cjs.js +18 -0
  790. package/dist/icons/SearchIcon.cjs.js.map +1 -0
  791. package/dist/icons/SearchIcon.d.ts +2 -0
  792. package/dist/icons/SearchIcon.es.js +14 -0
  793. package/dist/icons/SearchIcon.es.js.map +1 -0
  794. package/dist/icons/TrashIcon.cjs.js +18 -0
  795. package/dist/icons/TrashIcon.cjs.js.map +1 -0
  796. package/dist/icons/TrashIcon.d.ts +2 -0
  797. package/dist/icons/TrashIcon.es.js +14 -0
  798. package/dist/icons/TrashIcon.es.js.map +1 -0
  799. package/dist/{input-group-wzirc-1k.js → input-group-D1XvzgI2.js} +10 -7
  800. package/dist/input-group-D1XvzgI2.js.map +1 -0
  801. package/dist/{input-group-BgCXLSRV.cjs → input-group-DBRe9V5t.cjs} +11 -6
  802. package/dist/input-group-DBRe9V5t.cjs.map +1 -0
  803. package/dist/layout/tabbed-container.cjs.js +11 -9
  804. package/dist/layout/tabbed-container.cjs.js.map +1 -1
  805. package/dist/layout/tabbed-container.es.js +9 -7
  806. package/dist/layout/tabbed-container.es.js.map +1 -1
  807. package/dist/lib/form/components/array-element-wrapper.cjs.js +1 -1
  808. package/dist/lib/form/components/array-element-wrapper.es.js +1 -1
  809. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  810. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  811. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  812. package/dist/lib/form/components/boolean-field.es.js +1 -1
  813. package/dist/lib/form/components/error-message.cjs.js +1 -1
  814. package/dist/lib/form/components/error-message.es.js +1 -1
  815. package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
  816. package/dist/lib/form/components/field-wrapper.es.js +1 -1
  817. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  818. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  819. package/dist/lib/form/components/select-field.cjs.js +1 -1
  820. package/dist/lib/form/components/select-field.es.js +1 -1
  821. package/dist/lib/form/components/union-field.cjs.js +1 -1
  822. package/dist/lib/form/components/union-field.es.js +1 -1
  823. package/dist/{list-search-CTGQJCh1.cjs → list-search-CCHN2OMB.cjs} +2 -2
  824. package/dist/{list-search-CTGQJCh1.cjs.map → list-search-CCHN2OMB.cjs.map} +1 -1
  825. package/dist/{list-search-CmOCmTwL.js → list-search-DcACBmNB.js} +2 -2
  826. package/dist/{list-search-CmOCmTwL.js.map → list-search-DcACBmNB.js.map} +1 -1
  827. package/dist/{logs-data-list-B9CAqAHD.cjs → logs-data-list-BITdSK12.cjs} +4 -4
  828. package/dist/{logs-data-list-B9CAqAHD.cjs.map → logs-data-list-BITdSK12.cjs.map} +1 -1
  829. package/dist/{logs-data-list-DfzdzgXB.js → logs-data-list-PlH4_hgq.js} +4 -4
  830. package/dist/{logs-data-list-DfzdzgXB.js.map → logs-data-list-PlH4_hgq.js.map} +1 -1
  831. package/dist/{markdown-renderer-DPwN7Vtm.cjs → markdown-renderer-DRo-Hcuu.cjs} +2 -2
  832. package/dist/{markdown-renderer-DPwN7Vtm.cjs.map → markdown-renderer-DRo-Hcuu.cjs.map} +1 -1
  833. package/dist/{markdown-renderer-zvB6a8uj.js → markdown-renderer-XfWPF-B7.js} +2 -2
  834. package/dist/{markdown-renderer-zvB6a8uj.js.map → markdown-renderer-XfWPF-B7.js.map} +1 -1
  835. package/dist/{message-C1c5oZE7.cjs → message-DGDmsmOT.cjs} +2 -2
  836. package/dist/{message-C1c5oZE7.cjs.map → message-DGDmsmOT.cjs.map} +1 -1
  837. package/dist/{message-C7hocqft.js → message-DoxVrgBX.js} +2 -2
  838. package/dist/{message-C7hocqft.js.map → message-DoxVrgBX.js.map} +1 -1
  839. package/dist/{metrics-card-C1rTkbcn.js → metrics-card-DFEWxFkJ.js} +3 -3
  840. package/dist/{metrics-card-C1rTkbcn.js.map → metrics-card-DFEWxFkJ.js.map} +1 -1
  841. package/dist/{metrics-card-D7J9JDgn.cjs → metrics-card-xX9SHUpB.cjs} +3 -3
  842. package/dist/{metrics-card-D7J9JDgn.cjs.map → metrics-card-xX9SHUpB.cjs.map} +1 -1
  843. package/dist/{metrics-kpi-card-1hbihR2T.cjs → metrics-kpi-card-9L0j_oGY.cjs} +5 -14
  844. package/dist/metrics-kpi-card-9L0j_oGY.cjs.map +1 -0
  845. package/dist/{metrics-kpi-card-CiB88L41.js → metrics-kpi-card-DxcLqbDU.js} +5 -14
  846. package/dist/metrics-kpi-card-DxcLqbDU.js.map +1 -0
  847. package/dist/{metrics-line-chart-C3UMBQ38.js → metrics-line-chart-C9_EMuHK.js} +2 -2
  848. package/dist/{metrics-line-chart-C3UMBQ38.js.map → metrics-line-chart-C9_EMuHK.js.map} +1 -1
  849. package/dist/{metrics-line-chart-CjJxBbM-.cjs → metrics-line-chart-R-T_jyeP.cjs} +2 -2
  850. package/dist/{metrics-line-chart-CjJxBbM-.cjs.map → metrics-line-chart-R-T_jyeP.cjs.map} +1 -1
  851. package/dist/{metrics-line-chart-tooltip-DiXCgpik.cjs → metrics-line-chart-tooltip-BoG8nbkO.cjs} +2 -2
  852. package/dist/{metrics-line-chart-tooltip-DiXCgpik.cjs.map → metrics-line-chart-tooltip-BoG8nbkO.cjs.map} +1 -1
  853. package/dist/{metrics-line-chart-tooltip-mZXPH1yH.js → metrics-line-chart-tooltip-C3WAk3DN.js} +2 -2
  854. package/dist/{metrics-line-chart-tooltip-mZXPH1yH.js.map → metrics-line-chart-tooltip-C3WAk3DN.js.map} +1 -1
  855. package/dist/new/layout/page-header.cjs.js +1 -1
  856. package/dist/new/layout/page-header.es.js +1 -1
  857. package/dist/new/settings.cjs.js +2 -2
  858. package/dist/new/settings.es.js +2 -2
  859. package/dist/new/sidebar.cjs.js +1 -1
  860. package/dist/new/sidebar.es.js +1 -1
  861. package/dist/{notification-activity-CFR_b8eA.js → notification-activity-BDoleJAA.js} +4 -4
  862. package/dist/{notification-activity-CFR_b8eA.js.map → notification-activity-BDoleJAA.js.map} +1 -1
  863. package/dist/{notification-activity-Dk50wcE4.cjs → notification-activity-C_vZiswj.cjs} +4 -4
  864. package/dist/{notification-activity-Dk50wcE4.cjs.map → notification-activity-C_vZiswj.cjs.map} +1 -1
  865. package/dist/{page-header-DIS8V2TK.js → page-header-D5a7qrVc.js} +2 -2
  866. package/dist/{page-header-DIS8V2TK.js.map → page-header-D5a7qrVc.js.map} +1 -1
  867. package/dist/{page-header-C1WiOrTE.cjs → page-header-Dc2KSbnw.cjs} +2 -2
  868. package/dist/{page-header-C1WiOrTE.cjs.map → page-header-Dc2KSbnw.cjs.map} +1 -1
  869. package/dist/{plan-D8rM4i4S.cjs → plan-BBf7ONr7.cjs} +7 -6
  870. package/dist/{plan-D8rM4i4S.cjs.map → plan-BBf7ONr7.cjs.map} +1 -1
  871. package/dist/{plan-BtOryfz5.js → plan-BgvXKTEM.js} +6 -5
  872. package/dist/{plan-BtOryfz5.js.map → plan-BgvXKTEM.js.map} +1 -1
  873. package/dist/primitives/form-element.cjs.js +1 -1
  874. package/dist/primitives/form-element.cjs.js.map +1 -1
  875. package/dist/primitives/form-element.es.js +1 -1
  876. package/dist/primitives/form-element.es.js.map +1 -1
  877. package/dist/{reasoning-activity-6VkIbDT4.js → reasoning-activity-DTmKCDZ-.js} +3 -3
  878. package/dist/{reasoning-activity-6VkIbDT4.js.map → reasoning-activity-DTmKCDZ-.js.map} +1 -1
  879. package/dist/{reasoning-activity-DaXMgyr3.cjs → reasoning-activity-Dc6VbiMr.cjs} +3 -3
  880. package/dist/{reasoning-activity-DaXMgyr3.cjs.map → reasoning-activity-Dc6VbiMr.cjs.map} +1 -1
  881. package/dist/{relative-timestamp-BlmN8Vjn.cjs → relative-timestamp-Nnwtw7Rp.cjs} +2 -2
  882. package/dist/{relative-timestamp-BlmN8Vjn.cjs.map → relative-timestamp-Nnwtw7Rp.cjs.map} +1 -1
  883. package/dist/{relative-timestamp-Cnp4VeLp.js → relative-timestamp-Rn8mAobA.js} +2 -2
  884. package/dist/{relative-timestamp-Cnp4VeLp.js.map → relative-timestamp-Rn8mAobA.js.map} +1 -1
  885. package/dist/resize/panel-group.cjs.js +14 -2
  886. package/dist/resize/panel-group.cjs.js.map +1 -1
  887. package/dist/resize/panel-group.es.js +14 -2
  888. package/dist/resize/panel-group.es.js.map +1 -1
  889. package/dist/{search-input-BKXiYeed.js → search-input-63Y1_wgA.js} +3 -3
  890. package/dist/{search-input-BKXiYeed.js.map → search-input-63Y1_wgA.js.map} +1 -1
  891. package/dist/{search-input-T0orZ7Jf.cjs → search-input-CBhT3N4z.cjs} +3 -3
  892. package/dist/{search-input-T0orZ7Jf.cjs.map → search-input-CBhT3N4z.cjs.map} +1 -1
  893. package/dist/{section-Byml9qxH.cjs → section-C5r-Mtxk.cjs} +3 -3
  894. package/dist/{section-Byml9qxH.cjs.map → section-C5r-Mtxk.cjs.map} +1 -1
  895. package/dist/{section-DTooysg2.js → section-DYrbH35K.js} +3 -3
  896. package/dist/{section-DTooysg2.js.map → section-DYrbH35K.js.map} +1 -1
  897. package/dist/{select--ArpXYDc.js → select-CWxcmE3F.js} +2 -2
  898. package/dist/select-CWxcmE3F.js.map +1 -0
  899. package/dist/{select-DJQYAVcm.cjs → select-KV77JIvp.cjs} +2 -2
  900. package/dist/select-KV77JIvp.cjs.map +1 -0
  901. package/dist/{settings-row-B0jGFpVw.js → settings-row-Dc6ECXjj.js} +2 -2
  902. package/dist/{settings-row-B0jGFpVw.js.map → settings-row-Dc6ECXjj.js.map} +1 -1
  903. package/dist/{settings-row-Dt4WnnRf.cjs → settings-row-UPZXTcx1.cjs} +2 -2
  904. package/dist/{settings-row-Dt4WnnRf.cjs.map → settings-row-UPZXTcx1.cjs.map} +1 -1
  905. package/dist/{side-dialog-lQUx6B_M.cjs → side-dialog-CFTgnDXu.cjs} +2 -2
  906. package/dist/{side-dialog-lQUx6B_M.cjs.map → side-dialog-CFTgnDXu.cjs.map} +1 -1
  907. package/dist/{side-dialog-DZJc85m3.js → side-dialog-yvAvCday.js} +2 -2
  908. package/dist/{side-dialog-DZJc85m3.js.map → side-dialog-yvAvCday.js.map} +1 -1
  909. package/dist/{signal-activity-byCTRP86.cjs → signal-activity-BI-DRdjw.cjs} +4 -4
  910. package/dist/{signal-activity-byCTRP86.cjs.map → signal-activity-BI-DRdjw.cjs.map} +1 -1
  911. package/dist/{signal-activity-DW2ExjIp.js → signal-activity-_ChAbNsW.js} +4 -4
  912. package/dist/{signal-activity-DW2ExjIp.js.map → signal-activity-_ChAbNsW.js.map} +1 -1
  913. package/dist/{span-payload-primitives-CGamdu2t.js → span-payload-primitives-188dDV5s.js} +3 -3
  914. package/dist/{span-payload-primitives-CGamdu2t.js.map → span-payload-primitives-188dDV5s.js.map} +1 -1
  915. package/dist/{span-payload-primitives-SkL3U9hR.cjs → span-payload-primitives-DrKJXIc3.cjs} +3 -3
  916. package/dist/{span-payload-primitives-SkL3U9hR.cjs.map → span-payload-primitives-DrKJXIc3.cjs.map} +1 -1
  917. package/dist/src/domains/traces/components/span-data-panel-view.d.ts +3 -1
  918. package/dist/src/domains/traces/components/thread-trace/index.d.ts +23 -20
  919. package/dist/src/domains/traces/components/thread-trace/thread-trace-details.d.ts +1 -1
  920. package/dist/src/domains/traces/components/thread-trace/thread-trace-messages.d.ts +5 -15
  921. package/dist/src/domains/traces/components/thread-trace/thread-trace-root.d.ts +2 -2
  922. package/dist/src/domains/traces/components/thread-trace/thread-trace-row.d.ts +17 -2
  923. package/dist/src/domains/traces/components/thread-trace/thread-trace-span-panel.d.ts +3 -3
  924. package/dist/src/domains/traces/components/thread-trace/thread-trace-spans.d.ts +3 -4
  925. package/dist/src/domains/traces/components/thread-view-skeleton.d.ts +10 -4
  926. package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +10 -3
  927. package/dist/src/domains/traces/components/trace-data-panel-view.stories.d.ts +7 -5
  928. package/dist/src/domains/traces/components/trace-messages-panel.d.ts +2 -10
  929. package/dist/src/domains/traces/components/trace-messages-skeleton.d.ts +9 -6
  930. package/dist/src/domains/traces/components/trace-span-panel.d.ts +1 -1
  931. package/dist/src/domains/traces/components/trace-span-tree-skeleton.d.ts +4 -6
  932. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +7 -5
  933. package/dist/src/domains/traces/hooks/use-branch.d.ts +2 -2
  934. package/dist/src/domains/traces/hooks/use-trace-light-spans.d.ts +2 -2
  935. package/dist/src/domains/traces/hooks/use-trace-or-branch-spans.d.ts +2 -2
  936. package/dist/src/domains/traces/hooks/use-trace-query.d.ts +2 -0
  937. package/dist/src/domains/traces/hooks/use-trace-search.d.ts +11 -8
  938. package/dist/src/domains/traces/hooks/use-trace-spans.d.ts +1 -7
  939. package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +1 -0
  940. package/dist/src/domains/traces/utils/index.d.ts +1 -1
  941. package/dist/src/domains/traces/utils/to-searchable-spans.d.ts +2 -26
  942. package/dist/src/domains/workspace/components/frontmatter.d.ts +4 -0
  943. package/dist/src/domains/workspace/components/mount-icon.d.ts +6 -0
  944. package/dist/src/domains/workspace/components/use-workspace-context.d.ts +32 -0
  945. package/dist/src/domains/workspace/components/workspace-active-file.d.ts +13 -0
  946. package/dist/src/domains/workspace/components/workspace-add-skill-dialog.d.ts +39 -0
  947. package/dist/src/domains/workspace/components/workspace-add-skill.d.ts +10 -0
  948. package/dist/src/domains/workspace/components/workspace-context.d.ts +28 -0
  949. package/dist/src/domains/workspace/components/workspace-create-directory.d.ts +4 -0
  950. package/dist/src/domains/workspace/components/workspace-error.d.ts +5 -0
  951. package/dist/src/domains/workspace/components/workspace-markdown-preview.d.ts +4 -0
  952. package/dist/src/domains/workspace/components/workspace-parts.d.ts +25 -0
  953. package/dist/src/domains/workspace/components/workspace-search.d.ts +5 -0
  954. package/dist/src/domains/workspace/components/workspace-tree-view.d.ts +32 -0
  955. package/dist/src/domains/workspace/components/workspace-tree.d.ts +1 -0
  956. package/dist/src/domains/workspace/components/workspace.d.ts +18 -0
  957. package/dist/src/domains/workspace/file-type.d.ts +6 -0
  958. package/dist/src/domains/workspace/hooks/use-skills-sh.d.ts +51 -0
  959. package/dist/src/domains/workspace/hooks/use-workspace-directory.d.ts +17 -0
  960. package/dist/src/domains/workspace/hooks/use-workspace-file-content.d.ts +8 -0
  961. package/dist/src/domains/workspace/hooks/use-workspace-search.d.ts +11 -0
  962. package/dist/src/domains/workspace/index.d.ts +14 -0
  963. package/dist/src/domains/workspace/path.d.ts +6 -0
  964. package/dist/src/ds/components/Button/button.stories.d.ts +1 -0
  965. package/dist/src/ds/components/CollapsibleBox/collapsible-box.d.ts +5 -2
  966. package/dist/src/ds/components/CollapsibleBox/collapsible-box.stories.d.ts +1 -0
  967. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +1 -1
  968. package/dist/src/ds/components/Command/command.stories.d.ts +1 -0
  969. package/dist/src/ds/components/InputGroup/input-group.d.ts +2 -0
  970. package/dist/src/ds/components/InputGroup/input-group.stories.d.ts +0 -1
  971. package/dist/src/ds/components/InputNumber/index.d.ts +1 -0
  972. package/dist/src/ds/components/InputNumber/input-number.d.ts +26 -0
  973. package/dist/src/ds/components/InputNumber/input-number.stories.d.ts +11 -0
  974. package/dist/src/ds/components/Tabs/tabs-context.d.ts +0 -1
  975. package/dist/src/ds/components/Tabs/tabs-list.d.ts +0 -7
  976. package/dist/src/ds/components/Tabs/tabs-root.d.ts +1 -1
  977. package/dist/src/ds/components/Tabs/tabs-tab.d.ts +3 -1
  978. package/dist/src/ds/components/Tabs/tabs.stories.d.ts +0 -1
  979. package/dist/src/ds/components/ThinkingLevel/index.d.ts +4 -0
  980. package/dist/src/ds/components/ThinkingLevel/thinking-level-picker.d.ts +17 -0
  981. package/dist/src/ds/components/ThinkingLevel/thinking-level-ramp.d.ts +9 -0
  982. package/dist/src/ds/components/ThinkingLevel/thinking-level-slider.d.ts +13 -0
  983. package/dist/src/ds/components/ThinkingLevel/thinking-level.stories.d.ts +14 -0
  984. package/dist/src/ds/components/ThinkingLevel/use-thinking-level-stop.d.ts +29 -0
  985. package/dist/src/ds/components/ai/transcript-divider/stories/transcript-divider.stories.d.ts +3 -0
  986. package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +6 -1
  987. package/dist/src/ds/icons/FileIcon.d.ts +2 -0
  988. package/dist/src/ds/icons/SearchIcon.d.ts +2 -0
  989. package/dist/src/ds/icons/TrashIcon.d.ts +2 -0
  990. package/dist/src/ds/icons/index.d.ts +3 -0
  991. package/dist/src/ds/layout/tabbed-container/tabbed-container-root.d.ts +2 -1
  992. package/dist/src/ds/tokens/fonts.d.ts +1 -1
  993. package/dist/src/lib/resize/panel-group.d.ts +3 -1
  994. package/dist/style.css +270 -121
  995. package/dist/{tabs-content-DnscxcLI.cjs → tabs-content-DfH1hhpU.cjs} +3 -3
  996. package/dist/{tabs-content-DnscxcLI.cjs.map → tabs-content-DfH1hhpU.cjs.map} +1 -1
  997. package/dist/{tabs-content-CwbkTutf.js → tabs-content-OWF8un_n.js} +2 -2
  998. package/dist/{tabs-content-CwbkTutf.js.map → tabs-content-OWF8un_n.js.map} +1 -1
  999. package/dist/tabs-context-Cbuw7i0u.js +7 -0
  1000. package/dist/tabs-context-Cbuw7i0u.js.map +1 -0
  1001. package/dist/tabs-context-pnspPkI-.cjs +10 -0
  1002. package/dist/tabs-context-pnspPkI-.cjs.map +1 -0
  1003. package/dist/{tabs-root-C-ePF1y9.cjs → tabs-list-Tqj36HIL.cjs} +10 -43
  1004. package/dist/tabs-list-Tqj36HIL.cjs.map +1 -0
  1005. package/dist/{tabs-root-lrZZ3KwH.js → tabs-list-tLx5fgP0.js} +12 -44
  1006. package/dist/tabs-list-tLx5fgP0.js.map +1 -0
  1007. package/dist/tabs-root-BbzhUZl4.js +40 -0
  1008. package/dist/tabs-root-BbzhUZl4.js.map +1 -0
  1009. package/dist/tabs-root-Hkt7A6oq.cjs +42 -0
  1010. package/dist/tabs-root-Hkt7A6oq.cjs.map +1 -0
  1011. package/dist/tabs-root.css +0 -70
  1012. package/dist/{tabs-tab-BmIBFifi.cjs → tabs-tab-C-C2vX-D.cjs} +10 -7
  1013. package/dist/tabs-tab-C-C2vX-D.cjs.map +1 -0
  1014. package/dist/{tabs-tab-DoPSW-1s.js → tabs-tab-ClLIOGiC.js} +11 -6
  1015. package/dist/tabs-tab-ClLIOGiC.js.map +1 -0
  1016. package/dist/{text-and-icon-CuBm-Wjm.js → text-and-icon-Bo6NLLBl.js} +2 -2
  1017. package/dist/{text-and-icon-CuBm-Wjm.js.map → text-and-icon-Bo6NLLBl.js.map} +1 -1
  1018. package/dist/{text-and-icon-4eVhfmbb.cjs → text-and-icon-CvakH4YL.cjs} +2 -2
  1019. package/dist/{text-and-icon-4eVhfmbb.cjs.map → text-and-icon-CvakH4YL.cjs.map} +1 -1
  1020. package/dist/{thread-list-BTpezI4f.js → thread-list-D2zSEQWK.js} +2 -2
  1021. package/dist/{thread-list-BTpezI4f.js.map → thread-list-D2zSEQWK.js.map} +1 -1
  1022. package/dist/{thread-list-Drcptd4x.cjs → thread-list-DKBwiGfX.cjs} +2 -2
  1023. package/dist/{thread-list-Drcptd4x.cjs.map → thread-list-DKBwiGfX.cjs.map} +1 -1
  1024. package/dist/{time-picker-KE48KlpH.cjs → time-picker-Uz05Y0qU.cjs} +2 -2
  1025. package/dist/{time-picker-KE48KlpH.cjs.map → time-picker-Uz05Y0qU.cjs.map} +1 -1
  1026. package/dist/{time-picker-DRSAkFuj.js → time-picker-eQkyOP4X.js} +2 -2
  1027. package/dist/{time-picker-DRSAkFuj.js.map → time-picker-eQkyOP4X.js.map} +1 -1
  1028. package/dist/tokens.cjs.js +3 -0
  1029. package/dist/tokens.cjs.js.map +1 -1
  1030. package/dist/tokens.es.js +3 -0
  1031. package/dist/tokens.es.js.map +1 -1
  1032. package/dist/{tool-call-arguments-CtUKj7IB.js → tool-call-arguments-Cm5qfywz.js} +2 -2
  1033. package/dist/{tool-call-arguments-CtUKj7IB.js.map → tool-call-arguments-Cm5qfywz.js.map} +1 -1
  1034. package/dist/{tool-call-arguments-BemKsB9v.cjs → tool-call-arguments-cML2FFBk.cjs} +2 -2
  1035. package/dist/{tool-call-arguments-BemKsB9v.cjs.map → tool-call-arguments-cML2FFBk.cjs.map} +1 -1
  1036. package/dist/{tool-call-group-D_ioE9hT.cjs → tool-call-group-CALHT0zr.cjs} +3 -3
  1037. package/dist/{tool-call-group-D_ioE9hT.cjs.map → tool-call-group-CALHT0zr.cjs.map} +1 -1
  1038. package/dist/{tool-call-group-ZuYxpyDs.js → tool-call-group-UoMplOy2.js} +3 -3
  1039. package/dist/{tool-call-group-ZuYxpyDs.js.map → tool-call-group-UoMplOy2.js.map} +1 -1
  1040. package/dist/{traces-data-list-Dd8vMPQK.cjs → traces-data-list-D-wz-Je3.cjs} +5 -5
  1041. package/dist/{traces-data-list-Dd8vMPQK.cjs.map → traces-data-list-D-wz-Je3.cjs.map} +1 -1
  1042. package/dist/{traces-data-list-Fvl8mlih.js → traces-data-list-DmCgejAx.js} +5 -5
  1043. package/dist/{traces-data-list-Fvl8mlih.js.map → traces-data-list-DmCgejAx.js.map} +1 -1
  1044. package/dist/transcript-divider-273Bsdjs.cjs +30 -0
  1045. package/dist/transcript-divider-273Bsdjs.cjs.map +1 -0
  1046. package/dist/transcript-divider-CPIo8NUj.js +28 -0
  1047. package/dist/transcript-divider-CPIo8NUj.js.map +1 -0
  1048. package/dist/tree-DOVwqiSm.cjs +493 -0
  1049. package/dist/tree-DOVwqiSm.cjs.map +1 -0
  1050. package/dist/tree-DixCN7B0.js +472 -0
  1051. package/dist/tree-DixCN7B0.js.map +1 -0
  1052. package/dist/use-collapsible-box-B0t2_SvP.js +20 -0
  1053. package/dist/use-collapsible-box-B0t2_SvP.js.map +1 -0
  1054. package/dist/use-collapsible-box-BI80L4h_.cjs +23 -0
  1055. package/dist/use-collapsible-box-BI80L4h_.cjs.map +1 -0
  1056. package/dist/{use-workflow-graph-runtime-JQwLwNBD.js → use-workflow-graph-runtime-IZ-er4hs.js} +4 -4
  1057. package/dist/{use-workflow-graph-runtime-JQwLwNBD.js.map → use-workflow-graph-runtime-IZ-er4hs.js.map} +1 -1
  1058. package/dist/{use-workflow-graph-runtime-BNAtEa06.cjs → use-workflow-graph-runtime-t17K6Hkf.cjs} +4 -4
  1059. package/dist/{use-workflow-graph-runtime-BNAtEa06.cjs.map → use-workflow-graph-runtime-t17K6Hkf.cjs.map} +1 -1
  1060. package/dist/{workflow-condition-card-BjEAp0t6.cjs → workflow-condition-card-B_oDiQ6I.cjs} +3 -3
  1061. package/dist/{workflow-condition-card-BjEAp0t6.cjs.map → workflow-condition-card-B_oDiQ6I.cjs.map} +1 -1
  1062. package/dist/{workflow-condition-card-3J-As62x.js → workflow-condition-card-CLyskv_B.js} +3 -3
  1063. package/dist/{workflow-condition-card-3J-As62x.js.map → workflow-condition-card-CLyskv_B.js.map} +1 -1
  1064. package/dist/{workflow-data-edge-view-C4nbA2Fa.js → workflow-data-edge-view-JmkSlDp1.js} +2 -2
  1065. package/dist/{workflow-data-edge-view-C4nbA2Fa.js.map → workflow-data-edge-view-JmkSlDp1.js.map} +1 -1
  1066. package/dist/{workflow-data-edge-view-aHAZkZOH.cjs → workflow-data-edge-view-aNTgHQUk.cjs} +2 -2
  1067. package/dist/{workflow-data-edge-view-aHAZkZOH.cjs.map → workflow-data-edge-view-aNTgHQUk.cjs.map} +1 -1
  1068. package/dist/{workflow-debug-controls-tty6gLX2.js → workflow-debug-controls-CQc8ljAI.js} +3 -3
  1069. package/dist/{workflow-debug-controls-tty6gLX2.js.map → workflow-debug-controls-CQc8ljAI.js.map} +1 -1
  1070. package/dist/{workflow-debug-controls-VbxiluNZ.cjs → workflow-debug-controls-WXT05idC.cjs} +3 -3
  1071. package/dist/{workflow-debug-controls-VbxiluNZ.cjs.map → workflow-debug-controls-WXT05idC.cjs.map} +1 -1
  1072. package/dist/{workflow-edge-data-button-2aIkzgev.js → workflow-edge-data-button-B7bM7UqW.js} +2 -2
  1073. package/dist/{workflow-edge-data-button-2aIkzgev.js.map → workflow-edge-data-button-B7bM7UqW.js.map} +1 -1
  1074. package/dist/{workflow-edge-data-button-BFNO-TRL.cjs → workflow-edge-data-button-CHoNrfef.cjs} +2 -2
  1075. package/dist/{workflow-edge-data-button-BFNO-TRL.cjs.map → workflow-edge-data-button-CHoNrfef.cjs.map} +1 -1
  1076. package/package.json +10 -10
  1077. package/theme/colors.css +1 -1
  1078. package/theme/typography.css +19 -2
  1079. package/dist/Badge-D3EctKQo.cjs.map +0 -1
  1080. package/dist/Badge-DmOqFpXW.js.map +0 -1
  1081. package/dist/Txt-BP1SRHmL.js.map +0 -1
  1082. package/dist/Txt-DPmEpNbp.cjs.map +0 -1
  1083. package/dist/combobox-styles-mbcWlNZQ.js.map +0 -1
  1084. package/dist/combobox-styles-qL3FSgmU.cjs.map +0 -1
  1085. package/dist/command-Bm0VcX7X.cjs.map +0 -1
  1086. package/dist/command-DFin7kHN.js.map +0 -1
  1087. package/dist/data-panel-CbomKGJt.js.map +0 -1
  1088. package/dist/data-panel-o-QLWuFV.cjs.map +0 -1
  1089. package/dist/field-BtvEQ68O.js.map +0 -1
  1090. package/dist/field-error-id-4DYu4KZ2.cjs.map +0 -1
  1091. package/dist/field-error-id-BSQLcfHo.js.map +0 -1
  1092. package/dist/field-ip9xiOVa.cjs.map +0 -1
  1093. package/dist/input-group-BgCXLSRV.cjs.map +0 -1
  1094. package/dist/input-group-wzirc-1k.js.map +0 -1
  1095. package/dist/metrics-kpi-card-1hbihR2T.cjs.map +0 -1
  1096. package/dist/metrics-kpi-card-CiB88L41.js.map +0 -1
  1097. package/dist/select--ArpXYDc.js.map +0 -1
  1098. package/dist/select-DJQYAVcm.cjs.map +0 -1
  1099. package/dist/tabs-root-C-ePF1y9.cjs.map +0 -1
  1100. package/dist/tabs-root-lrZZ3KwH.js.map +0 -1
  1101. package/dist/tabs-tab-BmIBFifi.cjs.map +0 -1
  1102. package/dist/tabs-tab-DoPSW-1s.js.map +0 -1
  1103. package/dist/use-collapsible-box-CCvsF_a9.js +0 -54
  1104. package/dist/use-collapsible-box-CCvsF_a9.js.map +0 -1
  1105. package/dist/use-collapsible-box-CbQOkokQ.cjs +0 -58
  1106. package/dist/use-collapsible-box-CbQOkokQ.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-or-branch-spans.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-or-branch-spans.ts"],"sourcesContent":["import type { TraceListMode } from '../trace-filters';\nimport type { SearchableSpan } from '../types';\nimport { useBranch } from './use-branch';\nimport { useTraceSpans } from './use-trace-spans';\n\nexport interface UseTraceOrBranchSpansArgs {\n traceId: string | null | undefined;\n /** Required when `listMode === 'branches'` — the anchor span identifying the displayed\n * subtree. The hook fetches `getBranch(traceId, anchorSpanId)`. Intra-panel span selection\n * is separate (the caller's `spanIdParam`); the anchor stays put while it changes. */\n anchorSpanId?: string | null;\n listMode: TraceListMode;\n depth?: number;\n}\n\nexport interface UseTraceOrBranchSpansResult {\n spans: SearchableSpan[] | undefined;\n /** Set in branches mode; undefined in traces mode (which uses parentSpanId == null). */\n anchorSpanId: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: unknown;\n}\n\n/**\n * Unified data source for the trace/span detail panel. Returns trace spans (full tree from the\n * root) in traces mode, or branch spans (subtree rooted at `anchorSpanId`) in branches mode.\n * Only the active query fires; the inactive one is disabled via its `enabled` flag.\n *\n * Both modes carry full span payloads: the panel renders and searches them, so a lightweight\n * projection here would hide content from the reader looking straight at it.\n */\nexport function useTraceOrBranchSpans({\n traceId,\n anchorSpanId,\n listMode,\n depth,\n}: UseTraceOrBranchSpansArgs): UseTraceOrBranchSpansResult {\n const isBranches = listMode === 'branches';\n\n const traceQuery = useTraceSpans(isBranches ? null : traceId);\n const branchQuery = useBranch({\n traceId: isBranches ? traceId : null,\n spanId: isBranches ? anchorSpanId : null,\n depth,\n });\n\n if (isBranches) {\n return {\n spans: branchQuery.data?.spans,\n anchorSpanId: anchorSpanId ?? undefined,\n isLoading: branchQuery.isLoading,\n isError: branchQuery.isError,\n error: branchQuery.error,\n };\n }\n\n return {\n spans: traceQuery.data?.spans,\n anchorSpanId: undefined,\n isLoading: traceQuery.isLoading,\n isError: traceQuery.isError,\n error: traceQuery.error,\n };\n}\n"],"names":[],"mappings":";;;AAgCO,SAAS,qBAAA,CAAsB;AAAA,EACpC,OAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA2D;AACzD,EAAA,MAAM,aAAa,QAAA,KAAa,UAAA;AAEhC,EAAA,MAAM,UAAA,GAAa,aAAA,CAAc,UAAA,GAAa,IAAA,GAAO,OAAO,CAAA;AAC5D,EAAA,MAAM,cAAc,SAAA,CAAU;AAAA,IAC5B,OAAA,EAAS,aAAa,OAAA,GAAU,IAAA;AAAA,IAChC,MAAA,EAAQ,aAAa,YAAA,GAAe,IAAA;AAAA,IACpC;AAAA,GACD,CAAA;AAED,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,YAAY,IAAA,EAAM,KAAA;AAAA,MACzB,cAAc,YAAA,IAAgB,MAAA;AAAA,MAC9B,WAAW,WAAA,CAAY,SAAA;AAAA,MACvB,SAAS,WAAA,CAAY,OAAA;AAAA,MACrB,OAAO,WAAA,CAAY;AAAA,KACrB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,WAAW,IAAA,EAAM,KAAA;AAAA,IACxB,YAAA,EAAc,MAAA;AAAA,IACd,WAAW,UAAA,CAAW,SAAA;AAAA,IACtB,SAAS,UAAA,CAAW,OAAA;AAAA,IACpB,OAAO,UAAA,CAAW;AAAA,GACpB;AACF;;;;"}
1
+ {"version":3,"file":"use-trace-or-branch-spans.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-or-branch-spans.ts"],"sourcesContent":["import type { TraceListMode } from '../trace-filters';\nimport type { LightSpanRecord } from '../types';\nimport { useBranch } from './use-branch';\nimport { useTraceSpans } from './use-trace-spans';\n\nexport interface UseTraceOrBranchSpansArgs {\n traceId: string | null | undefined;\n /** Required when `listMode === 'branches'` — the anchor span identifying the displayed\n * subtree. The hook fetches `getBranch(traceId, anchorSpanId)`. Intra-panel span selection\n * is separate (the caller's `spanIdParam`); the anchor stays put while it changes. */\n anchorSpanId?: string | null;\n listMode: TraceListMode;\n depth?: number;\n}\n\nexport interface UseTraceOrBranchSpansResult {\n spans: LightSpanRecord[] | undefined;\n /** Set in branches mode; undefined in traces mode (which uses parentSpanId == null). */\n anchorSpanId: string | undefined;\n isLoading: boolean;\n isError: boolean;\n error: unknown;\n}\n\n/**\n * Unified data source for the trace/span detail panel. Returns trace spans (full tree from the\n * root) in traces mode, or branch spans (subtree rooted at `anchorSpanId`) in branches mode.\n * Only the active query fires; the inactive one is disabled via its `enabled` flag.\n *\n * Both modes carry full span payloads: the panel renders and searches them, so a lightweight\n * projection here would hide content from the reader looking straight at it.\n */\nexport function useTraceOrBranchSpans({\n traceId,\n anchorSpanId,\n listMode,\n depth,\n}: UseTraceOrBranchSpansArgs): UseTraceOrBranchSpansResult {\n const isBranches = listMode === 'branches';\n\n const traceQuery = useTraceSpans(isBranches ? null : traceId);\n const branchQuery = useBranch({\n traceId: isBranches ? traceId : null,\n spanId: isBranches ? anchorSpanId : null,\n depth,\n });\n\n if (isBranches) {\n return {\n spans: branchQuery.data?.spans,\n anchorSpanId: anchorSpanId ?? undefined,\n isLoading: branchQuery.isLoading,\n isError: branchQuery.isError,\n error: branchQuery.error,\n };\n }\n\n return {\n spans: traceQuery.data?.spans,\n anchorSpanId: undefined,\n isLoading: traceQuery.isLoading,\n isError: traceQuery.isError,\n error: traceQuery.error,\n };\n}\n"],"names":[],"mappings":";;;AAgCO,SAAS,qBAAA,CAAsB;AAAA,EACpC,OAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA2D;AACzD,EAAA,MAAM,aAAa,QAAA,KAAa,UAAA;AAEhC,EAAA,MAAM,UAAA,GAAa,aAAA,CAAc,UAAA,GAAa,IAAA,GAAO,OAAO,CAAA;AAC5D,EAAA,MAAM,cAAc,SAAA,CAAU;AAAA,IAC5B,OAAA,EAAS,aAAa,OAAA,GAAU,IAAA;AAAA,IAChC,MAAA,EAAQ,aAAa,YAAA,GAAe,IAAA;AAAA,IACpC;AAAA,GACD,CAAA;AAED,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,YAAY,IAAA,EAAM,KAAA;AAAA,MACzB,cAAc,YAAA,IAAgB,MAAA;AAAA,MAC9B,WAAW,WAAA,CAAY,SAAA;AAAA,MACvB,SAAS,WAAA,CAAY,OAAA;AAAA,MACrB,OAAO,WAAA,CAAY;AAAA,KACrB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,WAAW,IAAA,EAAM,KAAA;AAAA,IACxB,YAAA,EAAc,MAAA;AAAA,IACd,WAAW,UAAA,CAAW,SAAA;AAAA,IACtB,SAAS,UAAA,CAAW,OAAA;AAAA,IACpB,OAAO,UAAA,CAAW;AAAA,GACpB;AACF;;;;"}
@@ -111,6 +111,7 @@ function useTraceQuery({
111
111
  isFetchingNextPage,
112
112
  fetchNextPage,
113
113
  isLoading,
114
+ isPlaceholderData,
114
115
  isFetching,
115
116
  isRefetching,
116
117
  fetchStatus,
@@ -130,6 +131,7 @@ function useTraceQuery({
130
131
  isFetchingNextPage,
131
132
  fetchNextPage,
132
133
  isLoading,
134
+ isPlaceholderData,
133
135
  isFetching,
134
136
  isRefetching,
135
137
  fetchStatus,
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-query.cjs.js","sources":["../../../../src/domains/traces/hooks/use-trace-query.ts"],"sourcesContent":["import { MastraClient } from '@mastra/client-js';\nimport type { QueryTracesKeysetInput, TraceQueryKeysetTraceResponse } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { keepPreviousData, skipToken, useInfiniteQuery } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { buildTraceListFilters } from '../trace-filters';\nimport { useInView } from '@/hooks/use-in-view';\n\nexport const TRACE_QUERY_PER_PAGE = 25;\n\ntype TraceQueryTrace = TraceQueryKeysetTraceResponse['traces'][number];\n\ntype ListTracesArgs = NonNullable<Parameters<MastraClient['listTracesLight']>[0]>;\ntype LegacyTraceListFilters = ReturnType<typeof buildTraceListFilters>;\ntype ListTracesLightResponse = Awaited<ReturnType<MastraClient['listTracesLight']>>;\ntype LightSpanRecord = ListTracesLightResponse['spans'][number];\n\nexport type TraceQueryArgs = Omit<QueryTracesKeysetInput, 'page' | 'pagination'>;\n\nexport interface UseTraceQueryArgs {\n query: TraceQueryArgs | undefined;\n limit?: number;\n enabled?: boolean;\n refetchInterval?: number | false;\n refetchOnWindowFocus?: boolean;\n /** When false, lists traces through the legacy `listTracesLight` endpoint instead of the trace-query API. */\n withQueryTrace?: boolean;\n /** Filters for the legacy endpoint, as built by `buildTraceListFilters`. Only read when `withQueryTrace` is false. */\n legacyFilters?: LegacyTraceListFilters;\n}\n\nexport interface UseTraceQueryReturn {\n data: TraceQueryTrace[] | undefined;\n hasNextPage: boolean;\n isFetchingNextPage: boolean;\n fetchNextPage: () => void;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n fetchStatus: 'idle' | 'fetching' | 'paused';\n isError: boolean;\n error: Error | null;\n refetch: () => void;\n setEndOfListElement: (node: HTMLDivElement | null) => void;\n}\n\nexport function getTraceQueryNextPageParam(lastPage: TraceQueryKeysetTraceResponse | undefined): string | undefined {\n return lastPage?.page.next ?? undefined;\n}\n\nexport function selectTraceQueryTraces(data: { pages: TraceQueryKeysetTraceResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.traces.filter(trace => {\n if (seen.has(trace.traceId)) return false;\n seen.add(trace.traceId);\n return true;\n }),\n );\n}\n\nconst toIsoString = (value: Date | string): string => (typeof value === 'string' ? value : value.toISOString());\n\n/** Maps a legacy light root span to a trace-query row. The light record carries no\n * environment, so it stays null. Running spans have no `endedAt` and may carry a\n * status outside the query API's enum; both are kept as-is (the list view handles them), hence the\n * assertion at this compatibility boundary. */\nexport function lightSpanToTraceQueryTrace(span: LightSpanRecord): TraceQueryTrace {\n const row = {\n traceId: span.traceId,\n rootSpanId: span.spanId,\n name: span.name,\n entityId: span.entityId ?? null,\n parentSpanId: span.parentSpanId ?? null,\n createdAt: toIsoString(span.createdAt),\n metadata: span.metadata ?? null,\n inputPreview: span.inputPreview ?? null,\n threadId: span.threadId ?? null,\n resourceId: span.resourceId ?? null,\n startedAt: toIsoString(span.startedAt),\n endedAt: span.endedAt == null ? span.endedAt : toIsoString(span.endedAt),\n entityName: span.entityName ?? null,\n entityType: span.entityType ?? null,\n environment: null,\n status: span.status,\n };\n return row as TraceQueryTrace;\n}\n\nexport function selectLegacyTraceQueryTraces(data: { pages: ListTracesLightResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.spans.flatMap(span => {\n if (seen.has(span.traceId)) return [];\n seen.add(span.traceId);\n return [lightSpanToTraceQueryTrace(span)];\n }),\n );\n}\n\nexport function getLegacyTraceQueryNextPageParam(lastPage: ListTracesLightResponse): number | undefined {\n return lastPage.pagination?.hasMore ? lastPage.pagination.page + 1 : undefined;\n}\n\n/** Queries traces with cursor pagination and viewport-driven loading. */\nexport function useTraceQuery({\n query,\n limit = TRACE_QUERY_PER_PAGE,\n enabled = true,\n refetchInterval,\n refetchOnWindowFocus,\n withQueryTrace = true,\n legacyFilters,\n}: UseTraceQueryArgs): UseTraceQueryReturn {\n const client = useMastraClient();\n const { inView, setRef: setEndOfListElement } = useInView();\n const queryResult = useInfiniteQuery<\n TraceQueryKeysetTraceResponse,\n Error,\n TraceQueryTrace[],\n readonly unknown[],\n string | undefined\n >({\n queryKey: ['trace-query', query, limit] as const,\n queryFn: query\n ? async ({ pageParam }) => {\n // Capability failures must reach the fallback without the SDK retrying 501 responses.\n const queryClient = new MastraClient({ ...client.options, retries: 0 });\n const response = await queryClient.queryTraces({ ...query, page: { limit, after: pageParam ?? null } });\n if ('traces' in response && 'page' in response) return response;\n throw new Error('Expected a cursor-paginated trace query response');\n }\n : skipToken,\n initialPageParam: undefined,\n getNextPageParam: getTraceQueryNextPageParam,\n select: selectTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && withQueryTrace,\n });\n const orderBy = query?.orderBy;\n const legacyDirection = orderBy?.[0]?.direction === 'asc' ? 'ASC' : 'DESC';\n const legacyResult = useInfiniteQuery<ListTracesLightResponse, Error, TraceQueryTrace[], readonly unknown[], number>({\n queryKey: ['trace-query-legacy', legacyFilters, limit, orderBy] as const,\n queryFn: ({ pageParam }) =>\n client.listTracesLight({\n // Core's date-range filter types `start`/`end` loosely; the client param type is stricter.\n filters: legacyFilters as ListTracesArgs['filters'],\n pagination: { page: pageParam, perPage: limit },\n orderBy: { field: 'startedAt', direction: legacyDirection },\n }),\n initialPageParam: 0,\n getNextPageParam: getLegacyTraceQueryNextPageParam,\n select: selectLegacyTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && !withQueryTrace,\n });\n const result = withQueryTrace ? queryResult : legacyResult;\n const {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n isFetchNextPageError,\n } = result;\n\n useEffect(() => {\n if (enabled && inView && hasNextPage && !isFetching && !isFetchNextPageError) {\n void fetchNextPage();\n }\n }, [enabled, inView, hasNextPage, isFetching, isFetchNextPageError, fetchNextPage]);\n\n return {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n setEndOfListElement,\n };\n}\n"],"names":["useMastraClient","useInView","useInfiniteQuery","MastraClient","skipToken","keepPreviousData","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"use-trace-query.cjs.js","sources":["../../../../src/domains/traces/hooks/use-trace-query.ts"],"sourcesContent":["import { MastraClient } from '@mastra/client-js';\nimport type { QueryTracesKeysetInput, TraceQueryKeysetTraceResponse } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { keepPreviousData, skipToken, useInfiniteQuery } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { buildTraceListFilters } from '../trace-filters';\nimport { useInView } from '@/hooks/use-in-view';\n\nexport const TRACE_QUERY_PER_PAGE = 25;\n\ntype TraceQueryTrace = TraceQueryKeysetTraceResponse['traces'][number];\n\ntype ListTracesArgs = NonNullable<Parameters<MastraClient['listTracesLight']>[0]>;\ntype LegacyTraceListFilters = ReturnType<typeof buildTraceListFilters>;\ntype ListTracesLightResponse = Awaited<ReturnType<MastraClient['listTracesLight']>>;\ntype LightSpanRecord = ListTracesLightResponse['spans'][number];\n\nexport type TraceQueryArgs = Omit<QueryTracesKeysetInput, 'page' | 'pagination'>;\n\nexport interface UseTraceQueryArgs {\n query: TraceQueryArgs | undefined;\n limit?: number;\n enabled?: boolean;\n refetchInterval?: number | false;\n refetchOnWindowFocus?: boolean;\n /** When false, lists traces through the legacy `listTracesLight` endpoint instead of the trace-query API. */\n withQueryTrace?: boolean;\n /** Filters for the legacy endpoint, as built by `buildTraceListFilters`. Only read when `withQueryTrace` is false. */\n legacyFilters?: LegacyTraceListFilters;\n}\n\nexport interface UseTraceQueryReturn {\n data: TraceQueryTrace[] | undefined;\n hasNextPage: boolean;\n isFetchingNextPage: boolean;\n fetchNextPage: () => void;\n isLoading: boolean;\n /** The rows belong to the previous query key (e.g. another thread) while the new one loads. */\n isPlaceholderData: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n fetchStatus: 'idle' | 'fetching' | 'paused';\n isError: boolean;\n error: Error | null;\n refetch: () => void;\n setEndOfListElement: (node: HTMLDivElement | null) => void;\n}\n\nexport function getTraceQueryNextPageParam(lastPage: TraceQueryKeysetTraceResponse | undefined): string | undefined {\n return lastPage?.page.next ?? undefined;\n}\n\nexport function selectTraceQueryTraces(data: { pages: TraceQueryKeysetTraceResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.traces.filter(trace => {\n if (seen.has(trace.traceId)) return false;\n seen.add(trace.traceId);\n return true;\n }),\n );\n}\n\nconst toIsoString = (value: Date | string): string => (typeof value === 'string' ? value : value.toISOString());\n\n/** Maps a legacy light root span to a trace-query row. The light record carries no\n * environment, so it stays null. Running spans have no `endedAt` and may carry a\n * status outside the query API's enum; both are kept as-is (the list view handles them), hence the\n * assertion at this compatibility boundary. */\nexport function lightSpanToTraceQueryTrace(span: LightSpanRecord): TraceQueryTrace {\n const row = {\n traceId: span.traceId,\n rootSpanId: span.spanId,\n name: span.name,\n entityId: span.entityId ?? null,\n parentSpanId: span.parentSpanId ?? null,\n createdAt: toIsoString(span.createdAt),\n metadata: span.metadata ?? null,\n inputPreview: span.inputPreview ?? null,\n threadId: span.threadId ?? null,\n resourceId: span.resourceId ?? null,\n startedAt: toIsoString(span.startedAt),\n endedAt: span.endedAt == null ? span.endedAt : toIsoString(span.endedAt),\n entityName: span.entityName ?? null,\n entityType: span.entityType ?? null,\n environment: null,\n status: span.status,\n };\n return row as TraceQueryTrace;\n}\n\nexport function selectLegacyTraceQueryTraces(data: { pages: ListTracesLightResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.spans.flatMap(span => {\n if (seen.has(span.traceId)) return [];\n seen.add(span.traceId);\n return [lightSpanToTraceQueryTrace(span)];\n }),\n );\n}\n\nexport function getLegacyTraceQueryNextPageParam(lastPage: ListTracesLightResponse): number | undefined {\n return lastPage.pagination?.hasMore ? lastPage.pagination.page + 1 : undefined;\n}\n\n/** Queries traces with cursor pagination and viewport-driven loading. */\nexport function useTraceQuery({\n query,\n limit = TRACE_QUERY_PER_PAGE,\n enabled = true,\n refetchInterval,\n refetchOnWindowFocus,\n withQueryTrace = true,\n legacyFilters,\n}: UseTraceQueryArgs): UseTraceQueryReturn {\n const client = useMastraClient();\n const { inView, setRef: setEndOfListElement } = useInView();\n const queryResult = useInfiniteQuery<\n TraceQueryKeysetTraceResponse,\n Error,\n TraceQueryTrace[],\n readonly unknown[],\n string | undefined\n >({\n queryKey: ['trace-query', query, limit] as const,\n queryFn: query\n ? async ({ pageParam }) => {\n // Capability failures must reach the fallback without the SDK retrying 501 responses.\n const queryClient = new MastraClient({ ...client.options, retries: 0 });\n const response = await queryClient.queryTraces({ ...query, page: { limit, after: pageParam ?? null } });\n if ('traces' in response && 'page' in response) return response;\n throw new Error('Expected a cursor-paginated trace query response');\n }\n : skipToken,\n initialPageParam: undefined,\n getNextPageParam: getTraceQueryNextPageParam,\n select: selectTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && withQueryTrace,\n });\n const orderBy = query?.orderBy;\n const legacyDirection = orderBy?.[0]?.direction === 'asc' ? 'ASC' : 'DESC';\n const legacyResult = useInfiniteQuery<ListTracesLightResponse, Error, TraceQueryTrace[], readonly unknown[], number>({\n queryKey: ['trace-query-legacy', legacyFilters, limit, orderBy] as const,\n queryFn: ({ pageParam }) =>\n client.listTracesLight({\n // Core's date-range filter types `start`/`end` loosely; the client param type is stricter.\n filters: legacyFilters as ListTracesArgs['filters'],\n pagination: { page: pageParam, perPage: limit },\n orderBy: { field: 'startedAt', direction: legacyDirection },\n }),\n initialPageParam: 0,\n getNextPageParam: getLegacyTraceQueryNextPageParam,\n select: selectLegacyTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && !withQueryTrace,\n });\n const result = withQueryTrace ? queryResult : legacyResult;\n const {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isPlaceholderData,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n isFetchNextPageError,\n } = result;\n\n useEffect(() => {\n if (enabled && inView && hasNextPage && !isFetching && !isFetchNextPageError) {\n void fetchNextPage();\n }\n }, [enabled, inView, hasNextPage, isFetching, isFetchNextPageError, fetchNextPage]);\n\n return {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isPlaceholderData,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n setEndOfListElement,\n };\n}\n"],"names":["useMastraClient","useInView","useInfiniteQuery","MastraClient","skipToken","keepPreviousData","useEffect"],"mappings":"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"}
@@ -107,6 +107,7 @@ function useTraceQuery({
107
107
  isFetchingNextPage,
108
108
  fetchNextPage,
109
109
  isLoading,
110
+ isPlaceholderData,
110
111
  isFetching,
111
112
  isRefetching,
112
113
  fetchStatus,
@@ -126,6 +127,7 @@ function useTraceQuery({
126
127
  isFetchingNextPage,
127
128
  fetchNextPage,
128
129
  isLoading,
130
+ isPlaceholderData,
129
131
  isFetching,
130
132
  isRefetching,
131
133
  fetchStatus,
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-query.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-query.ts"],"sourcesContent":["import { MastraClient } from '@mastra/client-js';\nimport type { QueryTracesKeysetInput, TraceQueryKeysetTraceResponse } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { keepPreviousData, skipToken, useInfiniteQuery } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { buildTraceListFilters } from '../trace-filters';\nimport { useInView } from '@/hooks/use-in-view';\n\nexport const TRACE_QUERY_PER_PAGE = 25;\n\ntype TraceQueryTrace = TraceQueryKeysetTraceResponse['traces'][number];\n\ntype ListTracesArgs = NonNullable<Parameters<MastraClient['listTracesLight']>[0]>;\ntype LegacyTraceListFilters = ReturnType<typeof buildTraceListFilters>;\ntype ListTracesLightResponse = Awaited<ReturnType<MastraClient['listTracesLight']>>;\ntype LightSpanRecord = ListTracesLightResponse['spans'][number];\n\nexport type TraceQueryArgs = Omit<QueryTracesKeysetInput, 'page' | 'pagination'>;\n\nexport interface UseTraceQueryArgs {\n query: TraceQueryArgs | undefined;\n limit?: number;\n enabled?: boolean;\n refetchInterval?: number | false;\n refetchOnWindowFocus?: boolean;\n /** When false, lists traces through the legacy `listTracesLight` endpoint instead of the trace-query API. */\n withQueryTrace?: boolean;\n /** Filters for the legacy endpoint, as built by `buildTraceListFilters`. Only read when `withQueryTrace` is false. */\n legacyFilters?: LegacyTraceListFilters;\n}\n\nexport interface UseTraceQueryReturn {\n data: TraceQueryTrace[] | undefined;\n hasNextPage: boolean;\n isFetchingNextPage: boolean;\n fetchNextPage: () => void;\n isLoading: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n fetchStatus: 'idle' | 'fetching' | 'paused';\n isError: boolean;\n error: Error | null;\n refetch: () => void;\n setEndOfListElement: (node: HTMLDivElement | null) => void;\n}\n\nexport function getTraceQueryNextPageParam(lastPage: TraceQueryKeysetTraceResponse | undefined): string | undefined {\n return lastPage?.page.next ?? undefined;\n}\n\nexport function selectTraceQueryTraces(data: { pages: TraceQueryKeysetTraceResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.traces.filter(trace => {\n if (seen.has(trace.traceId)) return false;\n seen.add(trace.traceId);\n return true;\n }),\n );\n}\n\nconst toIsoString = (value: Date | string): string => (typeof value === 'string' ? value : value.toISOString());\n\n/** Maps a legacy light root span to a trace-query row. The light record carries no\n * environment, so it stays null. Running spans have no `endedAt` and may carry a\n * status outside the query API's enum; both are kept as-is (the list view handles them), hence the\n * assertion at this compatibility boundary. */\nexport function lightSpanToTraceQueryTrace(span: LightSpanRecord): TraceQueryTrace {\n const row = {\n traceId: span.traceId,\n rootSpanId: span.spanId,\n name: span.name,\n entityId: span.entityId ?? null,\n parentSpanId: span.parentSpanId ?? null,\n createdAt: toIsoString(span.createdAt),\n metadata: span.metadata ?? null,\n inputPreview: span.inputPreview ?? null,\n threadId: span.threadId ?? null,\n resourceId: span.resourceId ?? null,\n startedAt: toIsoString(span.startedAt),\n endedAt: span.endedAt == null ? span.endedAt : toIsoString(span.endedAt),\n entityName: span.entityName ?? null,\n entityType: span.entityType ?? null,\n environment: null,\n status: span.status,\n };\n return row as TraceQueryTrace;\n}\n\nexport function selectLegacyTraceQueryTraces(data: { pages: ListTracesLightResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.spans.flatMap(span => {\n if (seen.has(span.traceId)) return [];\n seen.add(span.traceId);\n return [lightSpanToTraceQueryTrace(span)];\n }),\n );\n}\n\nexport function getLegacyTraceQueryNextPageParam(lastPage: ListTracesLightResponse): number | undefined {\n return lastPage.pagination?.hasMore ? lastPage.pagination.page + 1 : undefined;\n}\n\n/** Queries traces with cursor pagination and viewport-driven loading. */\nexport function useTraceQuery({\n query,\n limit = TRACE_QUERY_PER_PAGE,\n enabled = true,\n refetchInterval,\n refetchOnWindowFocus,\n withQueryTrace = true,\n legacyFilters,\n}: UseTraceQueryArgs): UseTraceQueryReturn {\n const client = useMastraClient();\n const { inView, setRef: setEndOfListElement } = useInView();\n const queryResult = useInfiniteQuery<\n TraceQueryKeysetTraceResponse,\n Error,\n TraceQueryTrace[],\n readonly unknown[],\n string | undefined\n >({\n queryKey: ['trace-query', query, limit] as const,\n queryFn: query\n ? async ({ pageParam }) => {\n // Capability failures must reach the fallback without the SDK retrying 501 responses.\n const queryClient = new MastraClient({ ...client.options, retries: 0 });\n const response = await queryClient.queryTraces({ ...query, page: { limit, after: pageParam ?? null } });\n if ('traces' in response && 'page' in response) return response;\n throw new Error('Expected a cursor-paginated trace query response');\n }\n : skipToken,\n initialPageParam: undefined,\n getNextPageParam: getTraceQueryNextPageParam,\n select: selectTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && withQueryTrace,\n });\n const orderBy = query?.orderBy;\n const legacyDirection = orderBy?.[0]?.direction === 'asc' ? 'ASC' : 'DESC';\n const legacyResult = useInfiniteQuery<ListTracesLightResponse, Error, TraceQueryTrace[], readonly unknown[], number>({\n queryKey: ['trace-query-legacy', legacyFilters, limit, orderBy] as const,\n queryFn: ({ pageParam }) =>\n client.listTracesLight({\n // Core's date-range filter types `start`/`end` loosely; the client param type is stricter.\n filters: legacyFilters as ListTracesArgs['filters'],\n pagination: { page: pageParam, perPage: limit },\n orderBy: { field: 'startedAt', direction: legacyDirection },\n }),\n initialPageParam: 0,\n getNextPageParam: getLegacyTraceQueryNextPageParam,\n select: selectLegacyTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && !withQueryTrace,\n });\n const result = withQueryTrace ? queryResult : legacyResult;\n const {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n isFetchNextPageError,\n } = result;\n\n useEffect(() => {\n if (enabled && inView && hasNextPage && !isFetching && !isFetchNextPageError) {\n void fetchNextPage();\n }\n }, [enabled, inView, hasNextPage, isFetching, isFetchNextPageError, fetchNextPage]);\n\n return {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n setEndOfListElement,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-trace-query.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-query.ts"],"sourcesContent":["import { MastraClient } from '@mastra/client-js';\nimport type { QueryTracesKeysetInput, TraceQueryKeysetTraceResponse } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { keepPreviousData, skipToken, useInfiniteQuery } from '@tanstack/react-query';\nimport { useEffect } from 'react';\nimport type { buildTraceListFilters } from '../trace-filters';\nimport { useInView } from '@/hooks/use-in-view';\n\nexport const TRACE_QUERY_PER_PAGE = 25;\n\ntype TraceQueryTrace = TraceQueryKeysetTraceResponse['traces'][number];\n\ntype ListTracesArgs = NonNullable<Parameters<MastraClient['listTracesLight']>[0]>;\ntype LegacyTraceListFilters = ReturnType<typeof buildTraceListFilters>;\ntype ListTracesLightResponse = Awaited<ReturnType<MastraClient['listTracesLight']>>;\ntype LightSpanRecord = ListTracesLightResponse['spans'][number];\n\nexport type TraceQueryArgs = Omit<QueryTracesKeysetInput, 'page' | 'pagination'>;\n\nexport interface UseTraceQueryArgs {\n query: TraceQueryArgs | undefined;\n limit?: number;\n enabled?: boolean;\n refetchInterval?: number | false;\n refetchOnWindowFocus?: boolean;\n /** When false, lists traces through the legacy `listTracesLight` endpoint instead of the trace-query API. */\n withQueryTrace?: boolean;\n /** Filters for the legacy endpoint, as built by `buildTraceListFilters`. Only read when `withQueryTrace` is false. */\n legacyFilters?: LegacyTraceListFilters;\n}\n\nexport interface UseTraceQueryReturn {\n data: TraceQueryTrace[] | undefined;\n hasNextPage: boolean;\n isFetchingNextPage: boolean;\n fetchNextPage: () => void;\n isLoading: boolean;\n /** The rows belong to the previous query key (e.g. another thread) while the new one loads. */\n isPlaceholderData: boolean;\n isFetching: boolean;\n isRefetching: boolean;\n fetchStatus: 'idle' | 'fetching' | 'paused';\n isError: boolean;\n error: Error | null;\n refetch: () => void;\n setEndOfListElement: (node: HTMLDivElement | null) => void;\n}\n\nexport function getTraceQueryNextPageParam(lastPage: TraceQueryKeysetTraceResponse | undefined): string | undefined {\n return lastPage?.page.next ?? undefined;\n}\n\nexport function selectTraceQueryTraces(data: { pages: TraceQueryKeysetTraceResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.traces.filter(trace => {\n if (seen.has(trace.traceId)) return false;\n seen.add(trace.traceId);\n return true;\n }),\n );\n}\n\nconst toIsoString = (value: Date | string): string => (typeof value === 'string' ? value : value.toISOString());\n\n/** Maps a legacy light root span to a trace-query row. The light record carries no\n * environment, so it stays null. Running spans have no `endedAt` and may carry a\n * status outside the query API's enum; both are kept as-is (the list view handles them), hence the\n * assertion at this compatibility boundary. */\nexport function lightSpanToTraceQueryTrace(span: LightSpanRecord): TraceQueryTrace {\n const row = {\n traceId: span.traceId,\n rootSpanId: span.spanId,\n name: span.name,\n entityId: span.entityId ?? null,\n parentSpanId: span.parentSpanId ?? null,\n createdAt: toIsoString(span.createdAt),\n metadata: span.metadata ?? null,\n inputPreview: span.inputPreview ?? null,\n threadId: span.threadId ?? null,\n resourceId: span.resourceId ?? null,\n startedAt: toIsoString(span.startedAt),\n endedAt: span.endedAt == null ? span.endedAt : toIsoString(span.endedAt),\n entityName: span.entityName ?? null,\n entityType: span.entityType ?? null,\n environment: null,\n status: span.status,\n };\n return row as TraceQueryTrace;\n}\n\nexport function selectLegacyTraceQueryTraces(data: { pages: ListTracesLightResponse[] }): TraceQueryTrace[] {\n const seen = new Set<string>();\n return data.pages.flatMap(page =>\n page.spans.flatMap(span => {\n if (seen.has(span.traceId)) return [];\n seen.add(span.traceId);\n return [lightSpanToTraceQueryTrace(span)];\n }),\n );\n}\n\nexport function getLegacyTraceQueryNextPageParam(lastPage: ListTracesLightResponse): number | undefined {\n return lastPage.pagination?.hasMore ? lastPage.pagination.page + 1 : undefined;\n}\n\n/** Queries traces with cursor pagination and viewport-driven loading. */\nexport function useTraceQuery({\n query,\n limit = TRACE_QUERY_PER_PAGE,\n enabled = true,\n refetchInterval,\n refetchOnWindowFocus,\n withQueryTrace = true,\n legacyFilters,\n}: UseTraceQueryArgs): UseTraceQueryReturn {\n const client = useMastraClient();\n const { inView, setRef: setEndOfListElement } = useInView();\n const queryResult = useInfiniteQuery<\n TraceQueryKeysetTraceResponse,\n Error,\n TraceQueryTrace[],\n readonly unknown[],\n string | undefined\n >({\n queryKey: ['trace-query', query, limit] as const,\n queryFn: query\n ? async ({ pageParam }) => {\n // Capability failures must reach the fallback without the SDK retrying 501 responses.\n const queryClient = new MastraClient({ ...client.options, retries: 0 });\n const response = await queryClient.queryTraces({ ...query, page: { limit, after: pageParam ?? null } });\n if ('traces' in response && 'page' in response) return response;\n throw new Error('Expected a cursor-paginated trace query response');\n }\n : skipToken,\n initialPageParam: undefined,\n getNextPageParam: getTraceQueryNextPageParam,\n select: selectTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && withQueryTrace,\n });\n const orderBy = query?.orderBy;\n const legacyDirection = orderBy?.[0]?.direction === 'asc' ? 'ASC' : 'DESC';\n const legacyResult = useInfiniteQuery<ListTracesLightResponse, Error, TraceQueryTrace[], readonly unknown[], number>({\n queryKey: ['trace-query-legacy', legacyFilters, limit, orderBy] as const,\n queryFn: ({ pageParam }) =>\n client.listTracesLight({\n // Core's date-range filter types `start`/`end` loosely; the client param type is stricter.\n filters: legacyFilters as ListTracesArgs['filters'],\n pagination: { page: pageParam, perPage: limit },\n orderBy: { field: 'startedAt', direction: legacyDirection },\n }),\n initialPageParam: 0,\n getNextPageParam: getLegacyTraceQueryNextPageParam,\n select: selectLegacyTraceQueryTraces,\n retry: false,\n placeholderData: keepPreviousData,\n refetchInterval,\n refetchOnWindowFocus,\n enabled: enabled && !withQueryTrace,\n });\n const result = withQueryTrace ? queryResult : legacyResult;\n const {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isPlaceholderData,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n isFetchNextPageError,\n } = result;\n\n useEffect(() => {\n if (enabled && inView && hasNextPage && !isFetching && !isFetchNextPageError) {\n void fetchNextPage();\n }\n }, [enabled, inView, hasNextPage, isFetching, isFetchNextPageError, fetchNextPage]);\n\n return {\n data,\n hasNextPage,\n isFetchingNextPage,\n fetchNextPage,\n isLoading,\n isPlaceholderData,\n isFetching,\n isRefetching,\n fetchStatus,\n isError,\n error,\n refetch,\n setEndOfListElement,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -4,21 +4,26 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const React = require('react');
6
6
  const domains_traces_utils_filterSpansKeepingAncestors = require('../utils/filter-spans-keeping-ancestors.cjs.js');
7
+ const domains_traces_utils_toSearchableSpans = require('../utils/to-searchable-spans.cjs.js');
7
8
 
8
9
  function useTraceSearch(spans) {
9
10
  const [query, setQuery] = React.useState("");
10
11
  const deferredQuery = React.useDeferredValue(query);
12
+ const searchTextById = React.useMemo(
13
+ () => new Map(domains_traces_utils_toSearchableSpans.toSearchableSpans(spans).map((span) => [span.spanId, span.searchText])),
14
+ [spans]
15
+ );
11
16
  const { results, payloadOnlyMatchIds } = React.useMemo(() => {
12
17
  const term = deferredQuery.trim().toLowerCase();
13
18
  if (!term) return { results: spans, payloadOnlyMatchIds: /* @__PURE__ */ new Set() };
14
19
  const payloadOnly = /* @__PURE__ */ new Set();
15
20
  const filtered = domains_traces_utils_filterSpansKeepingAncestors.filterSpansKeepingAncestors(spans, (span) => {
16
- if (!span.searchText.includes(term)) return false;
21
+ if (!searchTextById.get(span.spanId)?.includes(term)) return false;
17
22
  if (!span.name.toLowerCase().includes(term)) payloadOnly.add(span.spanId);
18
23
  return true;
19
24
  });
20
25
  return { results: filtered, payloadOnlyMatchIds: payloadOnly };
21
- }, [spans, deferredQuery]);
26
+ }, [spans, searchTextById, deferredQuery]);
22
27
  return { query, setQuery, results, payloadOnlyMatchIds, isPending: query !== deferredQuery };
23
28
  }
24
29
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-search.cjs.js","sources":["../../../../src/domains/traces/hooks/use-trace-search.ts"],"sourcesContent":["import { useDeferredValue, useMemo, useState } from 'react';\nimport type { SearchableSpan } from '../types';\nimport { filterSpansKeepingAncestors } from '../utils';\n\nexport interface UseTraceSearchResult {\n /** The immediate, user-facing input value. Bind this to the search field. */\n query: string;\n setQuery: (query: string) => void;\n /** Rows matching the deferred query. An empty query returns the input array reference. */\n results: SearchableSpan[];\n /**\n * Spans that matched somewhere other than their name — in `metadata`, `attributes` or\n * `error`. Their row shows no visible occurrence of the term, so the surface needs to say\n * why it is there. Ancestors kept only to preserve the hierarchy are not in here: they did\n * not match at all. Empty while the query is empty.\n */\n payloadOnlyMatchIds: Set<string>;\n /** True while the deferred value is behind `query` (the list is still catching up). */\n isPending: boolean;\n}\n\n/**\n * Client-side search over a flat span list.\n *\n * Matching is a substring test against `searchText`, the haystack built once per span when\n * the query resolved (see `toSearchableSpans`). That is what makes the open-ended `metadata`\n * and `error` payloads searchable: their shapes are unknown, so no fixed list of fields can\n * read them. Both sides are already lowercased, so the test is a bare `includes`.\n *\n * Filtering is keyed on a deferred copy of the query, so typing stays responsive while a\n * large list re-filters at lower priority — bind the input to `query`, not to the deferred\n * value. A matching span keeps its ancestors and its whole subtree, so the hierarchy stays\n * intact.\n *\n * `spans` is required. Resolving the loading/empty state is the caller's job — a component\n * holding a query result passes `data?.spans ?? []`.\n */\nexport function useTraceSearch(spans: SearchableSpan[]): UseTraceSearchResult {\n const [query, setQuery] = useState('');\n const deferredQuery = useDeferredValue(query);\n\n const { results, payloadOnlyMatchIds } = useMemo(() => {\n const term = deferredQuery.trim().toLowerCase();\n if (!term) return { results: spans, payloadOnlyMatchIds: new Set<string>() };\n\n const payloadOnly = new Set<string>();\n const filtered = filterSpansKeepingAncestors(spans, span => {\n if (!span.searchText.includes(term)) return false;\n // The name is the only part of a span the timeline paints, so a match it doesn't\n // contain came from the payload.\n if (!span.name.toLowerCase().includes(term)) payloadOnly.add(span.spanId);\n return true;\n });\n\n return { results: filtered, payloadOnlyMatchIds: payloadOnly };\n }, [spans, deferredQuery]);\n\n return { query, setQuery, results, payloadOnlyMatchIds, isPending: query !== deferredQuery };\n}\n"],"names":["useState","useDeferredValue","useMemo","filterSpansKeepingAncestors"],"mappings":";;;;;;;AAqCO,SAAS,eAAe,KAAA,EAA+C;AAC5E,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,CAAA;AACrC,EAAA,MAAM,aAAA,GAAgBC,uBAAiB,KAAK,CAAA;AAE5C,EAAA,MAAM,EAAE,OAAA,EAAS,mBAAA,EAAoB,GAAIC,cAAQ,MAAM;AACrD,IAAA,MAAM,IAAA,GAAO,aAAA,CAAc,IAAA,EAAK,CAAE,WAAA,EAAY;AAC9C,IAAA,IAAI,CAAC,MAAM,OAAO,EAAE,SAAS,KAAA,EAAO,mBAAA,kBAAqB,IAAI,GAAA,EAAY,EAAE;AAE3E,IAAA,MAAM,WAAA,uBAAkB,GAAA,EAAY;AACpC,IAAA,MAAM,QAAA,GAAWC,4EAAA,CAA4B,KAAA,EAAO,CAAA,IAAA,KAAQ;AAC1D,MAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,QAAA,CAAS,IAAI,GAAG,OAAO,KAAA;AAG5C,MAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,IAAI,CAAA,EAAG,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA;AACxE,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,OAAO,EAAE,OAAA,EAAS,QAAA,EAAU,mBAAA,EAAqB,WAAA,EAAY;AAAA,EAC/D,CAAA,EAAG,CAAC,KAAA,EAAO,aAAa,CAAC,CAAA;AAEzB,EAAA,OAAO,EAAE,KAAA,EAAO,QAAA,EAAU,SAAS,mBAAA,EAAqB,SAAA,EAAW,UAAU,aAAA,EAAc;AAC7F;;;;"}
1
+ {"version":3,"file":"use-trace-search.cjs.js","sources":["../../../../src/domains/traces/hooks/use-trace-search.ts"],"sourcesContent":["import { useDeferredValue, useMemo, useState } from 'react';\nimport type { LightSpanRecord } from '../types';\nimport { filterSpansKeepingAncestors, toSearchableSpans } from '../utils';\n\nexport interface UseTraceSearchResult<Span extends LightSpanRecord = LightSpanRecord> {\n /** The immediate, user-facing input value. Bind this to the search field. */\n query: string;\n setQuery: (query: string) => void;\n /** Rows matching the deferred query. An empty query returns the input array reference. */\n results: Span[];\n /**\n * Spans that matched somewhere other than their name — in `metadata`, `attributes` or\n * `error`. Their row shows no visible occurrence of the term, so the surface needs to say\n * why it is there. Ancestors kept only to preserve the hierarchy are not in here: they did\n * not match at all. Empty while the query is empty.\n */\n payloadOnlyMatchIds: Set<string>;\n /** True while the deferred value is behind `query` (the list is still catching up). */\n isPending: boolean;\n}\n\n/**\n * Client-side search over a flat span list.\n *\n * Matching is a substring test against a lowercased haystack built once per `spans` array\n * (see `toSearchableSpans`). That is what makes the open-ended `metadata` and `error`\n * payloads searchable: their shapes are unknown, so no fixed list of fields can read them.\n *\n * The haystack lives here, not in the data hooks, so only a mounted search surface pays for\n * flattening. Views that merely render spans (e.g. the thread view, which shows every trace\n * of a thread at once) never build it.\n *\n * Filtering is keyed on a deferred copy of the query, so typing stays responsive while a\n * large list re-filters at lower priority — bind the input to `query`, not to the deferred\n * value. A matching span keeps its ancestors and its whole subtree, so the hierarchy stays\n * intact.\n *\n * `spans` is required. Resolving the loading/empty state is the caller's job — a component\n * holding a query result passes `data?.spans ?? []`.\n */\nexport function useTraceSearch<Span extends LightSpanRecord>(spans: Span[]): UseTraceSearchResult<Span> {\n const [query, setQuery] = useState('');\n const deferredQuery = useDeferredValue(query);\n\n const searchTextById = useMemo(\n () => new Map(toSearchableSpans(spans).map(span => [span.spanId, span.searchText])),\n [spans],\n );\n\n const { results, payloadOnlyMatchIds } = useMemo(() => {\n const term = deferredQuery.trim().toLowerCase();\n if (!term) return { results: spans, payloadOnlyMatchIds: new Set<string>() };\n\n const payloadOnly = new Set<string>();\n const filtered = filterSpansKeepingAncestors(spans, span => {\n if (!searchTextById.get(span.spanId)?.includes(term)) return false;\n // The name is the only part of a span the timeline paints, so a match it doesn't\n // contain came from the payload.\n if (!span.name.toLowerCase().includes(term)) payloadOnly.add(span.spanId);\n return true;\n });\n\n return { results: filtered, payloadOnlyMatchIds: payloadOnly };\n }, [spans, searchTextById, deferredQuery]);\n\n return { query, setQuery, results, payloadOnlyMatchIds, isPending: query !== deferredQuery };\n}\n"],"names":["useState","useDeferredValue","useMemo","toSearchableSpans","filterSpansKeepingAncestors"],"mappings":";;;;;;;;AAwCO,SAAS,eAA6C,KAAA,EAA2C;AACtG,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,CAAA;AACrC,EAAA,MAAM,aAAA,GAAgBC,uBAAiB,KAAK,CAAA;AAE5C,EAAA,MAAM,cAAA,GAAiBC,aAAA;AAAA,IACrB,MAAM,IAAI,GAAA,CAAIC,wDAAA,CAAkB,KAAK,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ,CAAC,IAAA,CAAK,MAAA,EAAQ,IAAA,CAAK,UAAU,CAAC,CAAC,CAAA;AAAA,IAClF,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,EAAE,OAAA,EAAS,mBAAA,EAAoB,GAAID,cAAQ,MAAM;AACrD,IAAA,MAAM,IAAA,GAAO,aAAA,CAAc,IAAA,EAAK,CAAE,WAAA,EAAY;AAC9C,IAAA,IAAI,CAAC,MAAM,OAAO,EAAE,SAAS,KAAA,EAAO,mBAAA,kBAAqB,IAAI,GAAA,EAAY,EAAE;AAE3E,IAAA,MAAM,WAAA,uBAAkB,GAAA,EAAY;AACpC,IAAA,MAAM,QAAA,GAAWE,4EAAA,CAA4B,KAAA,EAAO,CAAA,IAAA,KAAQ;AAC1D,MAAA,IAAI,CAAC,eAAe,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA,EAAG,QAAA,CAAS,IAAI,CAAA,EAAG,OAAO,KAAA;AAG7D,MAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,IAAI,CAAA,EAAG,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA;AACxE,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,OAAO,EAAE,OAAA,EAAS,QAAA,EAAU,mBAAA,EAAqB,WAAA,EAAY;AAAA,EAC/D,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,aAAa,CAAC,CAAA;AAEzC,EAAA,OAAO,EAAE,KAAA,EAAO,QAAA,EAAU,SAAS,mBAAA,EAAqB,SAAA,EAAW,UAAU,aAAA,EAAc;AAC7F;;;;"}
@@ -1,20 +1,25 @@
1
1
  import { useState, useDeferredValue, useMemo } from 'react';
2
2
  import { filterSpansKeepingAncestors } from '../utils/filter-spans-keeping-ancestors.es.js';
3
+ import { toSearchableSpans } from '../utils/to-searchable-spans.es.js';
3
4
 
4
5
  function useTraceSearch(spans) {
5
6
  const [query, setQuery] = useState("");
6
7
  const deferredQuery = useDeferredValue(query);
8
+ const searchTextById = useMemo(
9
+ () => new Map(toSearchableSpans(spans).map((span) => [span.spanId, span.searchText])),
10
+ [spans]
11
+ );
7
12
  const { results, payloadOnlyMatchIds } = useMemo(() => {
8
13
  const term = deferredQuery.trim().toLowerCase();
9
14
  if (!term) return { results: spans, payloadOnlyMatchIds: /* @__PURE__ */ new Set() };
10
15
  const payloadOnly = /* @__PURE__ */ new Set();
11
16
  const filtered = filterSpansKeepingAncestors(spans, (span) => {
12
- if (!span.searchText.includes(term)) return false;
17
+ if (!searchTextById.get(span.spanId)?.includes(term)) return false;
13
18
  if (!span.name.toLowerCase().includes(term)) payloadOnly.add(span.spanId);
14
19
  return true;
15
20
  });
16
21
  return { results: filtered, payloadOnlyMatchIds: payloadOnly };
17
- }, [spans, deferredQuery]);
22
+ }, [spans, searchTextById, deferredQuery]);
18
23
  return { query, setQuery, results, payloadOnlyMatchIds, isPending: query !== deferredQuery };
19
24
  }
20
25
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-search.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-search.ts"],"sourcesContent":["import { useDeferredValue, useMemo, useState } from 'react';\nimport type { SearchableSpan } from '../types';\nimport { filterSpansKeepingAncestors } from '../utils';\n\nexport interface UseTraceSearchResult {\n /** The immediate, user-facing input value. Bind this to the search field. */\n query: string;\n setQuery: (query: string) => void;\n /** Rows matching the deferred query. An empty query returns the input array reference. */\n results: SearchableSpan[];\n /**\n * Spans that matched somewhere other than their name — in `metadata`, `attributes` or\n * `error`. Their row shows no visible occurrence of the term, so the surface needs to say\n * why it is there. Ancestors kept only to preserve the hierarchy are not in here: they did\n * not match at all. Empty while the query is empty.\n */\n payloadOnlyMatchIds: Set<string>;\n /** True while the deferred value is behind `query` (the list is still catching up). */\n isPending: boolean;\n}\n\n/**\n * Client-side search over a flat span list.\n *\n * Matching is a substring test against `searchText`, the haystack built once per span when\n * the query resolved (see `toSearchableSpans`). That is what makes the open-ended `metadata`\n * and `error` payloads searchable: their shapes are unknown, so no fixed list of fields can\n * read them. Both sides are already lowercased, so the test is a bare `includes`.\n *\n * Filtering is keyed on a deferred copy of the query, so typing stays responsive while a\n * large list re-filters at lower priority — bind the input to `query`, not to the deferred\n * value. A matching span keeps its ancestors and its whole subtree, so the hierarchy stays\n * intact.\n *\n * `spans` is required. Resolving the loading/empty state is the caller's job — a component\n * holding a query result passes `data?.spans ?? []`.\n */\nexport function useTraceSearch(spans: SearchableSpan[]): UseTraceSearchResult {\n const [query, setQuery] = useState('');\n const deferredQuery = useDeferredValue(query);\n\n const { results, payloadOnlyMatchIds } = useMemo(() => {\n const term = deferredQuery.trim().toLowerCase();\n if (!term) return { results: spans, payloadOnlyMatchIds: new Set<string>() };\n\n const payloadOnly = new Set<string>();\n const filtered = filterSpansKeepingAncestors(spans, span => {\n if (!span.searchText.includes(term)) return false;\n // The name is the only part of a span the timeline paints, so a match it doesn't\n // contain came from the payload.\n if (!span.name.toLowerCase().includes(term)) payloadOnly.add(span.spanId);\n return true;\n });\n\n return { results: filtered, payloadOnlyMatchIds: payloadOnly };\n }, [spans, deferredQuery]);\n\n return { query, setQuery, results, payloadOnlyMatchIds, isPending: query !== deferredQuery };\n}\n"],"names":[],"mappings":";;;AAqCO,SAAS,eAAe,KAAA,EAA+C;AAC5E,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,EAAE,CAAA;AACrC,EAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,EAAA,MAAM,EAAE,OAAA,EAAS,mBAAA,EAAoB,GAAI,QAAQ,MAAM;AACrD,IAAA,MAAM,IAAA,GAAO,aAAA,CAAc,IAAA,EAAK,CAAE,WAAA,EAAY;AAC9C,IAAA,IAAI,CAAC,MAAM,OAAO,EAAE,SAAS,KAAA,EAAO,mBAAA,kBAAqB,IAAI,GAAA,EAAY,EAAE;AAE3E,IAAA,MAAM,WAAA,uBAAkB,GAAA,EAAY;AACpC,IAAA,MAAM,QAAA,GAAW,2BAAA,CAA4B,KAAA,EAAO,CAAA,IAAA,KAAQ;AAC1D,MAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,QAAA,CAAS,IAAI,GAAG,OAAO,KAAA;AAG5C,MAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,IAAI,CAAA,EAAG,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA;AACxE,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,OAAO,EAAE,OAAA,EAAS,QAAA,EAAU,mBAAA,EAAqB,WAAA,EAAY;AAAA,EAC/D,CAAA,EAAG,CAAC,KAAA,EAAO,aAAa,CAAC,CAAA;AAEzB,EAAA,OAAO,EAAE,KAAA,EAAO,QAAA,EAAU,SAAS,mBAAA,EAAqB,SAAA,EAAW,UAAU,aAAA,EAAc;AAC7F;;;;"}
1
+ {"version":3,"file":"use-trace-search.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-search.ts"],"sourcesContent":["import { useDeferredValue, useMemo, useState } from 'react';\nimport type { LightSpanRecord } from '../types';\nimport { filterSpansKeepingAncestors, toSearchableSpans } from '../utils';\n\nexport interface UseTraceSearchResult<Span extends LightSpanRecord = LightSpanRecord> {\n /** The immediate, user-facing input value. Bind this to the search field. */\n query: string;\n setQuery: (query: string) => void;\n /** Rows matching the deferred query. An empty query returns the input array reference. */\n results: Span[];\n /**\n * Spans that matched somewhere other than their name — in `metadata`, `attributes` or\n * `error`. Their row shows no visible occurrence of the term, so the surface needs to say\n * why it is there. Ancestors kept only to preserve the hierarchy are not in here: they did\n * not match at all. Empty while the query is empty.\n */\n payloadOnlyMatchIds: Set<string>;\n /** True while the deferred value is behind `query` (the list is still catching up). */\n isPending: boolean;\n}\n\n/**\n * Client-side search over a flat span list.\n *\n * Matching is a substring test against a lowercased haystack built once per `spans` array\n * (see `toSearchableSpans`). That is what makes the open-ended `metadata` and `error`\n * payloads searchable: their shapes are unknown, so no fixed list of fields can read them.\n *\n * The haystack lives here, not in the data hooks, so only a mounted search surface pays for\n * flattening. Views that merely render spans (e.g. the thread view, which shows every trace\n * of a thread at once) never build it.\n *\n * Filtering is keyed on a deferred copy of the query, so typing stays responsive while a\n * large list re-filters at lower priority — bind the input to `query`, not to the deferred\n * value. A matching span keeps its ancestors and its whole subtree, so the hierarchy stays\n * intact.\n *\n * `spans` is required. Resolving the loading/empty state is the caller's job — a component\n * holding a query result passes `data?.spans ?? []`.\n */\nexport function useTraceSearch<Span extends LightSpanRecord>(spans: Span[]): UseTraceSearchResult<Span> {\n const [query, setQuery] = useState('');\n const deferredQuery = useDeferredValue(query);\n\n const searchTextById = useMemo(\n () => new Map(toSearchableSpans(spans).map(span => [span.spanId, span.searchText])),\n [spans],\n );\n\n const { results, payloadOnlyMatchIds } = useMemo(() => {\n const term = deferredQuery.trim().toLowerCase();\n if (!term) return { results: spans, payloadOnlyMatchIds: new Set<string>() };\n\n const payloadOnly = new Set<string>();\n const filtered = filterSpansKeepingAncestors(spans, span => {\n if (!searchTextById.get(span.spanId)?.includes(term)) return false;\n // The name is the only part of a span the timeline paints, so a match it doesn't\n // contain came from the payload.\n if (!span.name.toLowerCase().includes(term)) payloadOnly.add(span.spanId);\n return true;\n });\n\n return { results: filtered, payloadOnlyMatchIds: payloadOnly };\n }, [spans, searchTextById, deferredQuery]);\n\n return { query, setQuery, results, payloadOnlyMatchIds, isPending: query !== deferredQuery };\n}\n"],"names":[],"mappings":";;;;AAwCO,SAAS,eAA6C,KAAA,EAA2C;AACtG,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,EAAE,CAAA;AACrC,EAAA,MAAM,aAAA,GAAgB,iBAAiB,KAAK,CAAA;AAE5C,EAAA,MAAM,cAAA,GAAiB,OAAA;AAAA,IACrB,MAAM,IAAI,GAAA,CAAI,iBAAA,CAAkB,KAAK,CAAA,CAAE,GAAA,CAAI,CAAA,IAAA,KAAQ,CAAC,IAAA,CAAK,MAAA,EAAQ,IAAA,CAAK,UAAU,CAAC,CAAC,CAAA;AAAA,IAClF,CAAC,KAAK;AAAA,GACR;AAEA,EAAA,MAAM,EAAE,OAAA,EAAS,mBAAA,EAAoB,GAAI,QAAQ,MAAM;AACrD,IAAA,MAAM,IAAA,GAAO,aAAA,CAAc,IAAA,EAAK,CAAE,WAAA,EAAY;AAC9C,IAAA,IAAI,CAAC,MAAM,OAAO,EAAE,SAAS,KAAA,EAAO,mBAAA,kBAAqB,IAAI,GAAA,EAAY,EAAE;AAE3E,IAAA,MAAM,WAAA,uBAAkB,GAAA,EAAY;AACpC,IAAA,MAAM,QAAA,GAAW,2BAAA,CAA4B,KAAA,EAAO,CAAA,IAAA,KAAQ;AAC1D,MAAA,IAAI,CAAC,eAAe,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA,EAAG,QAAA,CAAS,IAAI,CAAA,EAAG,OAAO,KAAA;AAG7D,MAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,WAAA,EAAY,CAAE,QAAA,CAAS,IAAI,CAAA,EAAG,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA;AACxE,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA;AAED,IAAA,OAAO,EAAE,OAAA,EAAS,QAAA,EAAU,mBAAA,EAAqB,WAAA,EAAY;AAAA,EAC/D,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,aAAa,CAAC,CAAA;AAEzC,EAAA,OAAO,EAAE,KAAA,EAAO,QAAA,EAAU,SAAS,mBAAA,EAAqB,SAAA,EAAW,UAAU,aAAA,EAAc;AAC7F;;;;"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const react = require('@mastra/react');
6
6
  const reactQuery = require('@tanstack/react-query');
7
- const domains_traces_utils_toSearchableSpans = require('../utils/to-searchable-spans.cjs.js');
8
7
 
9
8
  const traceSpansQueryOptions = (client, traceId) => reactQuery.queryOptions({
10
9
  queryKey: ["trace-spans", traceId],
@@ -19,7 +18,6 @@ const traceSpansQueryOptions = (client, traceId) => reactQuery.queryOptions({
19
18
  // Resumed runs and delayed exports can append spans even when every known span has ended.
20
19
  staleTime: 0
21
20
  });
22
- const selectSearchableTraceSpans = (data) => data ? { ...data, spans: domains_traces_utils_toSearchableSpans.toSearchableSpans(data.spans) } : null;
23
21
  function useTraceSpans(traceId, { passive = false } = {}) {
24
22
  const client = react.useMastraClient();
25
23
  return reactQuery.useQuery({
@@ -27,9 +25,7 @@ function useTraceSpans(traceId, { passive = false } = {}) {
27
25
  // History rows share updates but leave automatic refreshes to the selected detail.
28
26
  refetchOnMount: !passive,
29
27
  refetchOnWindowFocus: !passive,
30
- refetchOnReconnect: !passive,
31
- // Builds each span's search haystack once per fetch, cached with the query.
32
- select: selectSearchableTraceSpans
28
+ refetchOnReconnect: !passive
33
29
  });
34
30
  }
35
31
  function useTraceSpansQueries(traceIds, select, fallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-spans.cjs.js","sources":["../../../../src/domains/traces/hooks/use-trace-spans.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { queryOptions, useQueries, useQuery } from '@tanstack/react-query';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { toSearchableSpans } from '../utils';\n\n/**\n * Key, fetcher and stale policy of the `trace-spans` query. Every observer of this key must\n * share these (rather than only the key) so one observer with a stricter `staleTime` does not\n * refetch data another one considers fresh.\n */\nexport const traceSpansQueryOptions = (client: MastraClient, traceId: string | null | undefined) =>\n queryOptions({\n queryKey: ['trace-spans', traceId],\n queryFn: async () => {\n if (!traceId) {\n throw new Error('Trace ID is required');\n }\n const res = await client.getTrace(traceId);\n return res;\n },\n enabled: !!traceId,\n // Resumed runs and delayed exports can append spans even when every known span has ended.\n staleTime: 0,\n });\n\n/**\n * Every span of a single trace, with its full payload.\n *\n * The lightweight projection exists to keep blob columns off the read path of a\n * *list*, where the cost is paid once per trace on screen. A trace that is open\n * has already narrowed that to one, and the panel both renders and searches\n * these spans -- `input`, `output` and `attributes` included -- so the\n * projection would only hide content the reader is looking at.\n */\nexport type TraceSpansData = Awaited<ReturnType<MastraClient['getTrace']>>;\ntype SearchableTraceSpansData = Omit<NonNullable<TraceSpansData>, 'spans'> & {\n spans: Array<NonNullable<TraceSpansData>['spans'][number] & { searchText: string }>;\n};\n\nconst selectSearchableTraceSpans = (data: TraceSpansData): SearchableTraceSpansData | null =>\n data ? { ...data, spans: toSearchableSpans(data.spans) } : null;\n\nexport function useTraceSpans(\n traceId: string | null | undefined,\n { passive = false }: { passive?: boolean } = {},\n): UseQueryResult<SearchableTraceSpansData | null> {\n const client = useMastraClient();\n\n return useQuery({\n ...traceSpansQueryOptions(client, traceId),\n // History rows share updates but leave automatic refreshes to the selected detail.\n refetchOnMount: !passive,\n refetchOnWindowFocus: !passive,\n refetchOnReconnect: !passive,\n // Builds each span's search haystack once per fetch, cached with the query.\n select: selectSearchableTraceSpans,\n });\n}\n\n/**\n * Observes the `trace-spans` query of several traces at once and projects each one with `select`.\n * Traces still loading (or failed) yield `fallback(traceId)` so the result always lines up with `traceIds`.\n */\nexport function useTraceSpansQueries<T>(\n traceIds: string[],\n select: (traceId: string, data: TraceSpansData) => T,\n fallback: (traceId: string) => T,\n): T[] {\n const client = useMastraClient();\n\n return useQueries({\n queries: traceIds.map(traceId => ({\n ...traceSpansQueryOptions(client, traceId),\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n select: (data: TraceSpansData) => select(traceId, data),\n })),\n combine: results =>\n results.map((result, index) =>\n result.data === undefined ? fallback(traceIds[index] ?? '') : (result.data as T),\n ),\n });\n}\n"],"names":["queryOptions","toSearchableSpans","useMastraClient","useQuery","useQueries"],"mappings":";;;;;;;;AAWO,MAAM,sBAAA,GAAyB,CAAC,MAAA,EAAsB,OAAA,KAC3DA,uBAAA,CAAa;AAAA,EACX,QAAA,EAAU,CAAC,aAAA,EAAe,OAAO,CAAA;AAAA,EACjC,SAAS,YAAY;AACnB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AACA,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA;AACzC,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAAA,EACA,OAAA,EAAS,CAAC,CAAC,OAAA;AAAA;AAAA,EAEX,SAAA,EAAW;AACb,CAAC;AAgBH,MAAM,0BAAA,GAA6B,CAAC,IAAA,KAClC,IAAA,GAAO,EAAE,GAAG,IAAA,EAAM,KAAA,EAAOC,wDAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,EAAE,GAAI,IAAA;AAEtD,SAAS,cACd,OAAA,EACA,EAAE,UAAU,KAAA,EAAM,GAA2B,EAAC,EACG;AACjD,EAAA,MAAM,SAASC,qBAAA,EAAgB;AAE/B,EAAA,OAAOC,mBAAA,CAAS;AAAA,IACd,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA;AAAA,IAEzC,gBAAgB,CAAC,OAAA;AAAA,IACjB,sBAAsB,CAAC,OAAA;AAAA,IACvB,oBAAoB,CAAC,OAAA;AAAA;AAAA,IAErB,MAAA,EAAQ;AAAA,GACT,CAAA;AACH;AAMO,SAAS,oBAAA,CACd,QAAA,EACA,MAAA,EACA,QAAA,EACK;AACL,EAAA,MAAM,SAASD,qBAAA,EAAgB;AAE/B,EAAA,OAAOE,qBAAA,CAAW;AAAA,IAChB,OAAA,EAAS,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,MAAY;AAAA,MAChC,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA,MACzC,cAAA,EAAgB,KAAA;AAAA,MAChB,oBAAA,EAAsB,KAAA;AAAA,MACtB,kBAAA,EAAoB,KAAA;AAAA,MACpB,MAAA,EAAQ,CAAC,IAAA,KAAyB,MAAA,CAAO,SAAS,IAAI;AAAA,KACxD,CAAE,CAAA;AAAA,IACF,OAAA,EAAS,aACP,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,MAAA,EAAQ,KAAA,KACnB,MAAA,CAAO,IAAA,KAAS,MAAA,GAAY,QAAA,CAAS,QAAA,CAAS,KAAK,CAAA,IAAK,EAAE,CAAA,GAAK,MAAA,CAAO;AAAA;AACxE,GACH,CAAA;AACH;;;;;;"}
1
+ {"version":3,"file":"use-trace-spans.cjs.js","sources":["../../../../src/domains/traces/hooks/use-trace-spans.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { queryOptions, useQueries, useQuery } from '@tanstack/react-query';\nimport type { UseQueryResult } from '@tanstack/react-query';\n\n/**\n * Key, fetcher and stale policy of the `trace-spans` query. Every observer of this key must\n * share these (rather than only the key) so one observer with a stricter `staleTime` does not\n * refetch data another one considers fresh.\n */\nexport const traceSpansQueryOptions = (client: MastraClient, traceId: string | null | undefined) =>\n queryOptions({\n queryKey: ['trace-spans', traceId],\n queryFn: async () => {\n if (!traceId) {\n throw new Error('Trace ID is required');\n }\n const res = await client.getTrace(traceId);\n return res;\n },\n enabled: !!traceId,\n // Resumed runs and delayed exports can append spans even when every known span has ended.\n staleTime: 0,\n });\n\n/**\n * Every span of a single trace, with its full payload.\n *\n * The lightweight projection exists to keep blob columns off the read path of a\n * *list*, where the cost is paid once per trace on screen. A trace that is open\n * has already narrowed that to one, and the panel both renders and searches\n * these spans -- `input`, `output` and `attributes` included -- so the\n * projection would only hide content the reader is looking at.\n */\nexport type TraceSpansData = Awaited<ReturnType<MastraClient['getTrace']>>;\n\nexport function useTraceSpans(\n traceId: string | null | undefined,\n { passive = false }: { passive?: boolean } = {},\n): UseQueryResult<TraceSpansData> {\n const client = useMastraClient();\n\n return useQuery({\n ...traceSpansQueryOptions(client, traceId),\n // History rows share updates but leave automatic refreshes to the selected detail.\n refetchOnMount: !passive,\n refetchOnWindowFocus: !passive,\n refetchOnReconnect: !passive,\n });\n}\n\n/**\n * Observes the `trace-spans` query of several traces at once and projects each one with `select`.\n * Traces still loading (or failed) yield `fallback(traceId)` so the result always lines up with `traceIds`.\n */\nexport function useTraceSpansQueries<T>(\n traceIds: string[],\n select: (traceId: string, data: TraceSpansData) => T,\n fallback: (traceId: string) => T,\n): T[] {\n const client = useMastraClient();\n\n return useQueries({\n queries: traceIds.map(traceId => ({\n ...traceSpansQueryOptions(client, traceId),\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n select: (data: TraceSpansData) => select(traceId, data),\n })),\n combine: results =>\n results.map((result, index) =>\n result.data === undefined ? fallback(traceIds[index] ?? '') : (result.data as T),\n ),\n });\n}\n"],"names":["queryOptions","useMastraClient","useQuery","useQueries"],"mappings":";;;;;;;AAUO,MAAM,sBAAA,GAAyB,CAAC,MAAA,EAAsB,OAAA,KAC3DA,uBAAA,CAAa;AAAA,EACX,QAAA,EAAU,CAAC,aAAA,EAAe,OAAO,CAAA;AAAA,EACjC,SAAS,YAAY;AACnB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AACA,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA;AACzC,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAAA,EACA,OAAA,EAAS,CAAC,CAAC,OAAA;AAAA;AAAA,EAEX,SAAA,EAAW;AACb,CAAC;AAaI,SAAS,cACd,OAAA,EACA,EAAE,UAAU,KAAA,EAAM,GAA2B,EAAC,EACd;AAChC,EAAA,MAAM,SAASC,qBAAA,EAAgB;AAE/B,EAAA,OAAOC,mBAAA,CAAS;AAAA,IACd,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA;AAAA,IAEzC,gBAAgB,CAAC,OAAA;AAAA,IACjB,sBAAsB,CAAC,OAAA;AAAA,IACvB,oBAAoB,CAAC;AAAA,GACtB,CAAA;AACH;AAMO,SAAS,oBAAA,CACd,QAAA,EACA,MAAA,EACA,QAAA,EACK;AACL,EAAA,MAAM,SAASD,qBAAA,EAAgB;AAE/B,EAAA,OAAOE,qBAAA,CAAW;AAAA,IAChB,OAAA,EAAS,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,MAAY;AAAA,MAChC,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA,MACzC,cAAA,EAAgB,KAAA;AAAA,MAChB,oBAAA,EAAsB,KAAA;AAAA,MACtB,kBAAA,EAAoB,KAAA;AAAA,MACpB,MAAA,EAAQ,CAAC,IAAA,KAAyB,MAAA,CAAO,SAAS,IAAI;AAAA,KACxD,CAAE,CAAA;AAAA,IACF,OAAA,EAAS,aACP,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,MAAA,EAAQ,KAAA,KACnB,MAAA,CAAO,IAAA,KAAS,MAAA,GAAY,QAAA,CAAS,QAAA,CAAS,KAAK,CAAA,IAAK,EAAE,CAAA,GAAK,MAAA,CAAO;AAAA;AACxE,GACH,CAAA;AACH;;;;;;"}
@@ -1,6 +1,5 @@
1
1
  import { useMastraClient } from '@mastra/react';
2
2
  import { useQuery, queryOptions, useQueries } from '@tanstack/react-query';
3
- import { toSearchableSpans } from '../utils/to-searchable-spans.es.js';
4
3
 
5
4
  const traceSpansQueryOptions = (client, traceId) => queryOptions({
6
5
  queryKey: ["trace-spans", traceId],
@@ -15,7 +14,6 @@ const traceSpansQueryOptions = (client, traceId) => queryOptions({
15
14
  // Resumed runs and delayed exports can append spans even when every known span has ended.
16
15
  staleTime: 0
17
16
  });
18
- const selectSearchableTraceSpans = (data) => data ? { ...data, spans: toSearchableSpans(data.spans) } : null;
19
17
  function useTraceSpans(traceId, { passive = false } = {}) {
20
18
  const client = useMastraClient();
21
19
  return useQuery({
@@ -23,9 +21,7 @@ function useTraceSpans(traceId, { passive = false } = {}) {
23
21
  // History rows share updates but leave automatic refreshes to the selected detail.
24
22
  refetchOnMount: !passive,
25
23
  refetchOnWindowFocus: !passive,
26
- refetchOnReconnect: !passive,
27
- // Builds each span's search haystack once per fetch, cached with the query.
28
- select: selectSearchableTraceSpans
24
+ refetchOnReconnect: !passive
29
25
  });
30
26
  }
31
27
  function useTraceSpansQueries(traceIds, select, fallback) {
@@ -1 +1 @@
1
- {"version":3,"file":"use-trace-spans.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-spans.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { queryOptions, useQueries, useQuery } from '@tanstack/react-query';\nimport type { UseQueryResult } from '@tanstack/react-query';\nimport { toSearchableSpans } from '../utils';\n\n/**\n * Key, fetcher and stale policy of the `trace-spans` query. Every observer of this key must\n * share these (rather than only the key) so one observer with a stricter `staleTime` does not\n * refetch data another one considers fresh.\n */\nexport const traceSpansQueryOptions = (client: MastraClient, traceId: string | null | undefined) =>\n queryOptions({\n queryKey: ['trace-spans', traceId],\n queryFn: async () => {\n if (!traceId) {\n throw new Error('Trace ID is required');\n }\n const res = await client.getTrace(traceId);\n return res;\n },\n enabled: !!traceId,\n // Resumed runs and delayed exports can append spans even when every known span has ended.\n staleTime: 0,\n });\n\n/**\n * Every span of a single trace, with its full payload.\n *\n * The lightweight projection exists to keep blob columns off the read path of a\n * *list*, where the cost is paid once per trace on screen. A trace that is open\n * has already narrowed that to one, and the panel both renders and searches\n * these spans -- `input`, `output` and `attributes` included -- so the\n * projection would only hide content the reader is looking at.\n */\nexport type TraceSpansData = Awaited<ReturnType<MastraClient['getTrace']>>;\ntype SearchableTraceSpansData = Omit<NonNullable<TraceSpansData>, 'spans'> & {\n spans: Array<NonNullable<TraceSpansData>['spans'][number] & { searchText: string }>;\n};\n\nconst selectSearchableTraceSpans = (data: TraceSpansData): SearchableTraceSpansData | null =>\n data ? { ...data, spans: toSearchableSpans(data.spans) } : null;\n\nexport function useTraceSpans(\n traceId: string | null | undefined,\n { passive = false }: { passive?: boolean } = {},\n): UseQueryResult<SearchableTraceSpansData | null> {\n const client = useMastraClient();\n\n return useQuery({\n ...traceSpansQueryOptions(client, traceId),\n // History rows share updates but leave automatic refreshes to the selected detail.\n refetchOnMount: !passive,\n refetchOnWindowFocus: !passive,\n refetchOnReconnect: !passive,\n // Builds each span's search haystack once per fetch, cached with the query.\n select: selectSearchableTraceSpans,\n });\n}\n\n/**\n * Observes the `trace-spans` query of several traces at once and projects each one with `select`.\n * Traces still loading (or failed) yield `fallback(traceId)` so the result always lines up with `traceIds`.\n */\nexport function useTraceSpansQueries<T>(\n traceIds: string[],\n select: (traceId: string, data: TraceSpansData) => T,\n fallback: (traceId: string) => T,\n): T[] {\n const client = useMastraClient();\n\n return useQueries({\n queries: traceIds.map(traceId => ({\n ...traceSpansQueryOptions(client, traceId),\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n select: (data: TraceSpansData) => select(traceId, data),\n })),\n combine: results =>\n results.map((result, index) =>\n result.data === undefined ? fallback(traceIds[index] ?? '') : (result.data as T),\n ),\n });\n}\n"],"names":[],"mappings":";;;;AAWO,MAAM,sBAAA,GAAyB,CAAC,MAAA,EAAsB,OAAA,KAC3D,YAAA,CAAa;AAAA,EACX,QAAA,EAAU,CAAC,aAAA,EAAe,OAAO,CAAA;AAAA,EACjC,SAAS,YAAY;AACnB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AACA,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA;AACzC,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAAA,EACA,OAAA,EAAS,CAAC,CAAC,OAAA;AAAA;AAAA,EAEX,SAAA,EAAW;AACb,CAAC;AAgBH,MAAM,0BAAA,GAA6B,CAAC,IAAA,KAClC,IAAA,GAAO,EAAE,GAAG,IAAA,EAAM,KAAA,EAAO,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,EAAE,GAAI,IAAA;AAEtD,SAAS,cACd,OAAA,EACA,EAAE,UAAU,KAAA,EAAM,GAA2B,EAAC,EACG;AACjD,EAAA,MAAM,SAAS,eAAA,EAAgB;AAE/B,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA;AAAA,IAEzC,gBAAgB,CAAC,OAAA;AAAA,IACjB,sBAAsB,CAAC,OAAA;AAAA,IACvB,oBAAoB,CAAC,OAAA;AAAA;AAAA,IAErB,MAAA,EAAQ;AAAA,GACT,CAAA;AACH;AAMO,SAAS,oBAAA,CACd,QAAA,EACA,MAAA,EACA,QAAA,EACK;AACL,EAAA,MAAM,SAAS,eAAA,EAAgB;AAE/B,EAAA,OAAO,UAAA,CAAW;AAAA,IAChB,OAAA,EAAS,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,MAAY;AAAA,MAChC,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA,MACzC,cAAA,EAAgB,KAAA;AAAA,MAChB,oBAAA,EAAsB,KAAA;AAAA,MACtB,kBAAA,EAAoB,KAAA;AAAA,MACpB,MAAA,EAAQ,CAAC,IAAA,KAAyB,MAAA,CAAO,SAAS,IAAI;AAAA,KACxD,CAAE,CAAA;AAAA,IACF,OAAA,EAAS,aACP,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,MAAA,EAAQ,KAAA,KACnB,MAAA,CAAO,IAAA,KAAS,MAAA,GAAY,QAAA,CAAS,QAAA,CAAS,KAAK,CAAA,IAAK,EAAE,CAAA,GAAK,MAAA,CAAO;AAAA;AACxE,GACH,CAAA;AACH;;;;"}
1
+ {"version":3,"file":"use-trace-spans.es.js","sources":["../../../../src/domains/traces/hooks/use-trace-spans.ts"],"sourcesContent":["import type { MastraClient } from '@mastra/client-js';\nimport { useMastraClient } from '@mastra/react';\nimport { queryOptions, useQueries, useQuery } from '@tanstack/react-query';\nimport type { UseQueryResult } from '@tanstack/react-query';\n\n/**\n * Key, fetcher and stale policy of the `trace-spans` query. Every observer of this key must\n * share these (rather than only the key) so one observer with a stricter `staleTime` does not\n * refetch data another one considers fresh.\n */\nexport const traceSpansQueryOptions = (client: MastraClient, traceId: string | null | undefined) =>\n queryOptions({\n queryKey: ['trace-spans', traceId],\n queryFn: async () => {\n if (!traceId) {\n throw new Error('Trace ID is required');\n }\n const res = await client.getTrace(traceId);\n return res;\n },\n enabled: !!traceId,\n // Resumed runs and delayed exports can append spans even when every known span has ended.\n staleTime: 0,\n });\n\n/**\n * Every span of a single trace, with its full payload.\n *\n * The lightweight projection exists to keep blob columns off the read path of a\n * *list*, where the cost is paid once per trace on screen. A trace that is open\n * has already narrowed that to one, and the panel both renders and searches\n * these spans -- `input`, `output` and `attributes` included -- so the\n * projection would only hide content the reader is looking at.\n */\nexport type TraceSpansData = Awaited<ReturnType<MastraClient['getTrace']>>;\n\nexport function useTraceSpans(\n traceId: string | null | undefined,\n { passive = false }: { passive?: boolean } = {},\n): UseQueryResult<TraceSpansData> {\n const client = useMastraClient();\n\n return useQuery({\n ...traceSpansQueryOptions(client, traceId),\n // History rows share updates but leave automatic refreshes to the selected detail.\n refetchOnMount: !passive,\n refetchOnWindowFocus: !passive,\n refetchOnReconnect: !passive,\n });\n}\n\n/**\n * Observes the `trace-spans` query of several traces at once and projects each one with `select`.\n * Traces still loading (or failed) yield `fallback(traceId)` so the result always lines up with `traceIds`.\n */\nexport function useTraceSpansQueries<T>(\n traceIds: string[],\n select: (traceId: string, data: TraceSpansData) => T,\n fallback: (traceId: string) => T,\n): T[] {\n const client = useMastraClient();\n\n return useQueries({\n queries: traceIds.map(traceId => ({\n ...traceSpansQueryOptions(client, traceId),\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n select: (data: TraceSpansData) => select(traceId, data),\n })),\n combine: results =>\n results.map((result, index) =>\n result.data === undefined ? fallback(traceIds[index] ?? '') : (result.data as T),\n ),\n });\n}\n"],"names":[],"mappings":";;;AAUO,MAAM,sBAAA,GAAyB,CAAC,MAAA,EAAsB,OAAA,KAC3D,YAAA,CAAa;AAAA,EACX,QAAA,EAAU,CAAC,aAAA,EAAe,OAAO,CAAA;AAAA,EACjC,SAAS,YAAY;AACnB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,IACxC;AACA,IAAA,MAAM,GAAA,GAAM,MAAM,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA;AACzC,IAAA,OAAO,GAAA;AAAA,EACT,CAAA;AAAA,EACA,OAAA,EAAS,CAAC,CAAC,OAAA;AAAA;AAAA,EAEX,SAAA,EAAW;AACb,CAAC;AAaI,SAAS,cACd,OAAA,EACA,EAAE,UAAU,KAAA,EAAM,GAA2B,EAAC,EACd;AAChC,EAAA,MAAM,SAAS,eAAA,EAAgB;AAE/B,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA;AAAA,IAEzC,gBAAgB,CAAC,OAAA;AAAA,IACjB,sBAAsB,CAAC,OAAA;AAAA,IACvB,oBAAoB,CAAC;AAAA,GACtB,CAAA;AACH;AAMO,SAAS,oBAAA,CACd,QAAA,EACA,MAAA,EACA,QAAA,EACK;AACL,EAAA,MAAM,SAAS,eAAA,EAAgB;AAE/B,EAAA,OAAO,UAAA,CAAW;AAAA,IAChB,OAAA,EAAS,QAAA,CAAS,GAAA,CAAI,CAAA,OAAA,MAAY;AAAA,MAChC,GAAG,sBAAA,CAAuB,MAAA,EAAQ,OAAO,CAAA;AAAA,MACzC,cAAA,EAAgB,KAAA;AAAA,MAChB,oBAAA,EAAsB,KAAA;AAAA,MACtB,kBAAA,EAAoB,KAAA;AAAA,MACpB,MAAA,EAAQ,CAAC,IAAA,KAAyB,MAAA,CAAO,SAAS,IAAI;AAAA,KACxD,CAAE,CAAA;AAAA,IACF,OAAA,EAAS,aACP,OAAA,CAAQ,GAAA;AAAA,MAAI,CAAC,MAAA,EAAQ,KAAA,KACnB,MAAA,CAAO,IAAA,KAAS,MAAA,GAAY,QAAA,CAAS,QAAA,CAAS,KAAK,CAAA,IAAK,EAAE,CAAA,GAAK,MAAA,CAAO;AAAA;AACxE,GACH,CAAA;AACH;;;;"}
@@ -12,11 +12,6 @@ function toSearchableSpans(spans) {
12
12
  searchText: domains_traces_utils_flattenToSearchText.flattenToSearchText(span).toLowerCase()
13
13
  }));
14
14
  }
15
- function selectSearchableSpans(data) {
16
- if (!data) return null;
17
- return { ...data, spans: toSearchableSpans(data.spans) };
18
- }
19
15
 
20
- exports.selectSearchableSpans = selectSearchableSpans;
21
16
  exports.toSearchableSpans = toSearchableSpans;
22
17
  //# sourceMappingURL=to-searchable-spans.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-searchable-spans.cjs.js","sources":["../../../../src/domains/traces/utils/to-searchable-spans.ts"],"sourcesContent":["import type { LightSpanRecord, SearchableSpan } from '../types';\nimport { flattenToSearchText } from './flatten-to-search-text';\n\n/**\n * Attach a precomputed search haystack to each span.\n *\n * Run this once, where the span list is resolved — not per keystroke. Flattening\n * walks every nested payload, so doing it inside a filter would repeat the whole\n * walk for every character typed.\n *\n * The whole record is flattened, which is what reaches `metadata` and `error`:\n * their shapes are open-ended, so no fixed list of fields can read them. The\n * text is lowercased here so matching is a bare `includes` with no per-span\n * `toLowerCase` on every keystroke.\n *\n * Inputs are left untouched; each result is a new object.\n */\nexport function toSearchableSpans<Span extends LightSpanRecord>(spans: Span[]): Array<Span & { searchText: string }> {\n return spans.map(span => ({\n ...span,\n // Computed from `span`, so a stale `searchText` on the input is overwritten\n // rather than carried through by the spread.\n searchText: flattenToSearchText(span).toLowerCase(),\n }));\n}\n\n/**\n * React Query `select` for the `{ traceId, spans }` payload returned by\n * `getTraceLight` and `getBranch`.\n *\n * Enriching here rather than in a component means the flattening runs once per\n * fetch and is cached with the query, so it survives the panel unmounting and\n * remounting. Keep this a module-level reference: React Query re-runs `select`\n * whenever its identity changes, and an inline arrow would re-flatten the whole\n * trace on every render.\n *\n * Deliberately not generic: TypeScript cannot infer a query's `TData` from a\n * generic function passed as `select`, and silently falls back to the unselected\n * type — which would leave `searchText` missing at the call sites.\n *\n * `null` is passed through because a query may resolve to it. `undefined` is not\n * in the signature: React Query only runs `select` once data exists.\n */\nexport function selectSearchableSpans(\n data: { traceId: string; spans: LightSpanRecord[] } | null,\n): { traceId: string; spans: SearchableSpan[] } | null {\n if (!data) return null;\n\n return { ...data, spans: toSearchableSpans(data.spans) };\n}\n"],"names":["flattenToSearchText"],"mappings":";;;;;;AAiBO,SAAS,kBAAgD,KAAA,EAAqD;AACnH,EAAA,OAAO,KAAA,CAAM,IAAI,CAAA,IAAA,MAAS;AAAA,IACxB,GAAG,IAAA;AAAA;AAAA;AAAA,IAGH,UAAA,EAAYA,4DAAA,CAAoB,IAAI,CAAA,CAAE,WAAA;AAAY,GACpD,CAAE,CAAA;AACJ;AAmBO,SAAS,sBACd,IAAA,EACqD;AACrD,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,OAAO,EAAE,GAAG,IAAA,EAAM,OAAO,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,EAAE;AACzD;;;;;"}
1
+ {"version":3,"file":"to-searchable-spans.cjs.js","sources":["../../../../src/domains/traces/utils/to-searchable-spans.ts"],"sourcesContent":["import type { LightSpanRecord } from '../types';\nimport { flattenToSearchText } from './flatten-to-search-text';\n\n/**\n * Attach a precomputed search haystack to each span.\n *\n * Run this once per span list — not per keystroke. Flattening\n * walks every nested payload, so doing it inside a filter would repeat the whole\n * walk for every character typed.\n *\n * The whole record is flattened, which is what reaches `metadata` and `error`:\n * their shapes are open-ended, so no fixed list of fields can read them. The\n * text is lowercased here so matching is a bare `includes` with no per-span\n * `toLowerCase` on every keystroke.\n *\n * Inputs are left untouched; each result is a new object.\n */\nexport function toSearchableSpans<Span extends LightSpanRecord>(spans: Span[]): Array<Span & { searchText: string }> {\n return spans.map(span => ({\n ...span,\n // Computed from `span`, so a stale `searchText` on the input is overwritten\n // rather than carried through by the spread.\n searchText: flattenToSearchText(span).toLowerCase(),\n }));\n}\n"],"names":["flattenToSearchText"],"mappings":";;;;;;AAiBO,SAAS,kBAAgD,KAAA,EAAqD;AACnH,EAAA,OAAO,KAAA,CAAM,IAAI,CAAA,IAAA,MAAS;AAAA,IACxB,GAAG,IAAA;AAAA;AAAA;AAAA,IAGH,UAAA,EAAYA,4DAAA,CAAoB,IAAI,CAAA,CAAE,WAAA;AAAY,GACpD,CAAE,CAAA;AACJ;;;;"}
@@ -8,10 +8,6 @@ function toSearchableSpans(spans) {
8
8
  searchText: flattenToSearchText(span).toLowerCase()
9
9
  }));
10
10
  }
11
- function selectSearchableSpans(data) {
12
- if (!data) return null;
13
- return { ...data, spans: toSearchableSpans(data.spans) };
14
- }
15
11
 
16
- export { selectSearchableSpans, toSearchableSpans };
12
+ export { toSearchableSpans };
17
13
  //# sourceMappingURL=to-searchable-spans.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"to-searchable-spans.es.js","sources":["../../../../src/domains/traces/utils/to-searchable-spans.ts"],"sourcesContent":["import type { LightSpanRecord, SearchableSpan } from '../types';\nimport { flattenToSearchText } from './flatten-to-search-text';\n\n/**\n * Attach a precomputed search haystack to each span.\n *\n * Run this once, where the span list is resolved — not per keystroke. Flattening\n * walks every nested payload, so doing it inside a filter would repeat the whole\n * walk for every character typed.\n *\n * The whole record is flattened, which is what reaches `metadata` and `error`:\n * their shapes are open-ended, so no fixed list of fields can read them. The\n * text is lowercased here so matching is a bare `includes` with no per-span\n * `toLowerCase` on every keystroke.\n *\n * Inputs are left untouched; each result is a new object.\n */\nexport function toSearchableSpans<Span extends LightSpanRecord>(spans: Span[]): Array<Span & { searchText: string }> {\n return spans.map(span => ({\n ...span,\n // Computed from `span`, so a stale `searchText` on the input is overwritten\n // rather than carried through by the spread.\n searchText: flattenToSearchText(span).toLowerCase(),\n }));\n}\n\n/**\n * React Query `select` for the `{ traceId, spans }` payload returned by\n * `getTraceLight` and `getBranch`.\n *\n * Enriching here rather than in a component means the flattening runs once per\n * fetch and is cached with the query, so it survives the panel unmounting and\n * remounting. Keep this a module-level reference: React Query re-runs `select`\n * whenever its identity changes, and an inline arrow would re-flatten the whole\n * trace on every render.\n *\n * Deliberately not generic: TypeScript cannot infer a query's `TData` from a\n * generic function passed as `select`, and silently falls back to the unselected\n * type — which would leave `searchText` missing at the call sites.\n *\n * `null` is passed through because a query may resolve to it. `undefined` is not\n * in the signature: React Query only runs `select` once data exists.\n */\nexport function selectSearchableSpans(\n data: { traceId: string; spans: LightSpanRecord[] } | null,\n): { traceId: string; spans: SearchableSpan[] } | null {\n if (!data) return null;\n\n return { ...data, spans: toSearchableSpans(data.spans) };\n}\n"],"names":[],"mappings":";;AAiBO,SAAS,kBAAgD,KAAA,EAAqD;AACnH,EAAA,OAAO,KAAA,CAAM,IAAI,CAAA,IAAA,MAAS;AAAA,IACxB,GAAG,IAAA;AAAA;AAAA;AAAA,IAGH,UAAA,EAAY,mBAAA,CAAoB,IAAI,CAAA,CAAE,WAAA;AAAY,GACpD,CAAE,CAAA;AACJ;AAmBO,SAAS,sBACd,IAAA,EACqD;AACrD,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,OAAO,EAAE,GAAG,IAAA,EAAM,OAAO,iBAAA,CAAkB,IAAA,CAAK,KAAK,CAAA,EAAE;AACzD;;;;"}
1
+ {"version":3,"file":"to-searchable-spans.es.js","sources":["../../../../src/domains/traces/utils/to-searchable-spans.ts"],"sourcesContent":["import type { LightSpanRecord } from '../types';\nimport { flattenToSearchText } from './flatten-to-search-text';\n\n/**\n * Attach a precomputed search haystack to each span.\n *\n * Run this once per span list — not per keystroke. Flattening\n * walks every nested payload, so doing it inside a filter would repeat the whole\n * walk for every character typed.\n *\n * The whole record is flattened, which is what reaches `metadata` and `error`:\n * their shapes are open-ended, so no fixed list of fields can read them. The\n * text is lowercased here so matching is a bare `includes` with no per-span\n * `toLowerCase` on every keystroke.\n *\n * Inputs are left untouched; each result is a new object.\n */\nexport function toSearchableSpans<Span extends LightSpanRecord>(spans: Span[]): Array<Span & { searchText: string }> {\n return spans.map(span => ({\n ...span,\n // Computed from `span`, so a stale `searchText` on the input is overwritten\n // rather than carried through by the spread.\n searchText: flattenToSearchText(span).toLowerCase(),\n }));\n}\n"],"names":[],"mappings":";;AAiBO,SAAS,kBAAgD,KAAA,EAAqD;AACnH,EAAA,OAAO,KAAA,CAAM,IAAI,CAAA,IAAA,MAAS;AAAA,IACxB,GAAG,IAAA;AAAA;AAAA;AAAA,IAGH,UAAA,EAAY,mBAAA,CAAoB,IAAI,CAAA,CAAE,WAAA;AAAY,GACpD,CAAE,CAAA;AACJ;;;;"}
@@ -12,7 +12,6 @@ const domains_traces_utils_spanUtils = require('./utils/span-utils.cjs.js');
12
12
 
13
13
  exports.filterSpansKeepingAncestors = domains_traces_utils_filterSpansKeepingAncestors.filterSpansKeepingAncestors;
14
14
  exports.flattenToSearchText = domains_traces_utils_flattenToSearchText.flattenToSearchText;
15
- exports.selectSearchableSpans = domains_traces_utils_toSearchableSpans.selectSearchableSpans;
16
15
  exports.toSearchableSpans = domains_traces_utils_toSearchableSpans.toSearchableSpans;
17
16
  exports.getSpanTimingLayout = domains_traces_utils_spanTiming.getSpanTimingLayout;
18
17
  exports.getInputPreview = domains_traces_utils_spanUtils.getInputPreview;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"utils.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  export { filterSpansKeepingAncestors } from './utils/filter-spans-keeping-ancestors.es.js';
2
2
  export { flattenToSearchText } from './utils/flatten-to-search-text.es.js';
3
- export { selectSearchableSpans, toSearchableSpans } from './utils/to-searchable-spans.es.js';
3
+ export { toSearchableSpans } from './utils/to-searchable-spans.es.js';
4
4
  export { getSpanTimingLayout } from './utils/span-timing.es.js';
5
5
  export { getInputPreview, getSpanDurationMs, getTokenLimitMessage, isTokenLimitExceeded } from './utils/span-utils.es.js';
6
6
  //# sourceMappingURL=utils.es.js.map
@@ -130,7 +130,6 @@ exports.useExpandedSpanIds = domains_traces_hooks_useExpandedSpanIds.useExpanded
130
130
  exports.useVisibleTraceRows = domains_traces_hooks_useVisibleTraceRows.useVisibleTraceRows;
131
131
  exports.filterSpansKeepingAncestors = domains_traces_utils_filterSpansKeepingAncestors.filterSpansKeepingAncestors;
132
132
  exports.flattenToSearchText = domains_traces_utils_flattenToSearchText.flattenToSearchText;
133
- exports.selectSearchableSpans = domains_traces_utils_toSearchableSpans.selectSearchableSpans;
134
133
  exports.toSearchableSpans = domains_traces_utils_toSearchableSpans.toSearchableSpans;
135
134
  exports.getSpanTimingLayout = domains_traces_utils_spanTiming.getSpanTimingLayout;
136
135
  exports.getInputPreview = domains_traces_utils_spanUtils.getInputPreview;
@@ -1 +1 @@
1
- {"version":3,"file":"traces.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"traces.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -55,7 +55,7 @@ export { useExpandedSpanIds } from './traces/hooks/use-expanded-span-ids.es.js';
55
55
  export { useVisibleTraceRows } from './traces/hooks/use-visible-trace-rows.es.js';
56
56
  export { filterSpansKeepingAncestors } from './traces/utils/filter-spans-keeping-ancestors.es.js';
57
57
  export { flattenToSearchText } from './traces/utils/flatten-to-search-text.es.js';
58
- export { selectSearchableSpans, toSearchableSpans } from './traces/utils/to-searchable-spans.es.js';
58
+ export { toSearchableSpans } from './traces/utils/to-searchable-spans.es.js';
59
59
  export { getSpanTimingLayout } from './traces/utils/span-timing.es.js';
60
60
  export { getInputPreview, getSpanDurationMs, getTokenLimitMessage, isTokenLimitExceeded } from './traces/utils/span-utils.es.js';
61
61
  export { DEFAULT_TRACE_FILTERS_STORAGE_KEY, ROOT_ENTITY_TYPES, ROOT_ENTITY_TYPE_OPTIONS, TRACE_ANCHOR_SPAN_ID_PARAM, TRACE_DATE_FROM_PARAM, TRACE_DATE_PRESET_PARAM, TRACE_DATE_PRESET_VALUES, TRACE_DATE_TO_PARAM, TRACE_FILTER_BAR_OPERATORS, TRACE_FILTER_GROUP_PARAM, TRACE_FILTER_OPERATOR_PARAM_SUFFIX, TRACE_LIST_MODE_OPTIONS, TRACE_LIST_MODE_PARAM, TRACE_LIST_MODE_VALUES, TRACE_METADATA_FILTER_FIELD_PREFIX, TRACE_METADATA_FILTER_PARAM_PREFIX, TRACE_PROPERTY_FILTER_FIELD_IDS, TRACE_PROPERTY_FILTER_PARAM_BY_FIELD, TRACE_ROOT_ENTITY_TYPE_PARAM, TRACE_STATUS_OPTIONS, TRACE_STATUS_PARAM, TRACE_STATUS_VALUES, TRACE_SYNTHETIC_FILTER_FIELD_IDS, applyTracePropertyFilterTokens, buildTraceListFilters, clearSavedTraceFilters, createTraceFilterBarFields, filterBarExpressionToTraceFilters, filterBarItemsToTraceTokens, getPreservedTraceFilterParams, getTraceFilterGroups, getTracePropertyFilterTokens, hasAnyTraceFilterParams, isTraceMetadataFieldId, loadTraceFiltersFromStorage, metadataFieldIdToParam, metadataParamToFieldId, parseTraceFilterGroupParam, saveTraceFiltersToStorage, serializeTraceFilterGroup, traceFilterFieldColor, traceFilterFieldIcon, traceFilterOperatorParam, traceFilterTokenOperator, traceFiltersToFilterBarExpression, traceTokensToFilterBarItems } from './traces/trace-filters.es.js';
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const domains_workflows_hooks_useWorkflows = require('../hooks/use-workflows.cjs.js');
8
- const combobox = require('../../../combobox-RzEkcOuu.cjs');
8
+ const combobox = require('../../../combobox-DPpiBLWV.cjs');
9
9
  require('@base-ui/react/combobox');
10
10
  const lib_framework = require('../../../lib/framework.cjs.js');
11
11
  const toast = require('../../../toast-nm-fM7BR.cjs');
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { useEffect } from 'react';
3
3
  import { useWorkflows } from '../hooks/use-workflows.es.js';
4
- import { C as Combobox } from '../../../combobox-DKFPbNMB.js';
4
+ import { C as Combobox } from '../../../combobox-DoJgbq9N.js';
5
5
  import '@base-ui/react/combobox';
6
6
  import { useLinkComponent } from '../../../lib/framework.es.js';
7
7
  import { t as toast } from '../../../toast-c5kCpyWt.js';
@@ -5,8 +5,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const domains_workflows_hooks_useWorkflow = require('../hooks/use-workflow.cjs.js');
8
- const Badge = require('../../../Badge-D3EctKQo.cjs');
9
- const entityHeader = require('../../../entity-header-DEjkHoqj.cjs');
8
+ const Badge = require('../../../Badge-DB59RxT5.cjs');
9
+ const entityHeader = require('../../../entity-header-By57lpH8.cjs');
10
10
  const tooltip = require('../../../tooltip-DIZ5oqjV.cjs');
11
11
  const icons_WorkflowIcon = require('../../../icons/WorkflowIcon.cjs.js');
12
12
  const primitives_transitions = require('../../../primitives/transitions.cjs.js');
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { CopyIcon, Cpu, Database } from 'lucide-react';
3
3
  import { useWorkflow } from '../hooks/use-workflow.es.js';
4
- import { B as Badge } from '../../../Badge-DmOqFpXW.js';
5
- import { E as EntityHeader } from '../../../entity-header-9qzr-3xQ.js';
4
+ import { B as Badge } from '../../../Badge-DId-8rYY.js';
5
+ import { E as EntityHeader } from '../../../entity-header-DMjzE4Za.js';
6
6
  import { b as TooltipProvider, T as Tooltip, c as TooltipTrigger, a as TooltipContent } from '../../../tooltip-DsQPiynb.js';
7
7
  import { WorkflowIcon } from '../../../icons/WorkflowIcon.es.js';
8
8
  import { focusRing } from '../../../primitives/transitions.es.js';
@@ -7,9 +7,9 @@ const react = require('@xyflow/react');
7
7
  const lucideReact = require('lucide-react');
8
8
  const domains_workflows_context_workflowStepDetailContext = require('../context/workflow-step-detail-context.cjs.js');
9
9
  const domains_workflows_workflow_data_workflowDataInspector = require('../workflow/data/workflow-data-inspector.cjs.js');
10
- const domains_workflows_workflow_workflowNestedGraph = require('../../../use-workflow-graph-runtime-BNAtEa06.cjs');
11
- const Txt = require('../../../Txt-DPmEpNbp.cjs');
12
- const workflowConditionCard = require('../../../workflow-condition-card-BjEAp0t6.cjs');
10
+ const domains_workflows_workflow_workflowNestedGraph = require('../../../use-workflow-graph-runtime-t17K6Hkf.cjs');
11
+ const Txt = require('../../../Txt-DNnvlrBo.cjs');
12
+ const workflowConditionCard = require('../../../workflow-condition-card-B_oDiQ6I.cjs');
13
13
  const workflowCodeDialogContent = require('../../../workflow-code-dialog-content-DyoN3850.cjs');
14
14
  const icons_WorkflowIcon = require('../../../icons/WorkflowIcon.cjs.js');
15
15
 
@@ -3,9 +3,9 @@ import { ReactFlowProvider } from '@xyflow/react';
3
3
  import { List, X } from 'lucide-react';
4
4
  import { useWorkflowStepDetail } from '../context/workflow-step-detail-context.es.js';
5
5
  import { WorkflowDataInspector } from '../workflow/data/workflow-data-inspector.es.js';
6
- import { W as WorkflowNestedGraph } from '../../../use-workflow-graph-runtime-JQwLwNBD.js';
7
- import { T as Txt } from '../../../Txt-BP1SRHmL.js';
8
- import { B as BADGE_COLORS } from '../../../workflow-condition-card-3J-As62x.js';
6
+ import { W as WorkflowNestedGraph } from '../../../use-workflow-graph-runtime-IZ-er4hs.js';
7
+ import { T as Txt } from '../../../Txt-C3cYJgKU.js';
8
+ import { B as BADGE_COLORS } from '../../../workflow-condition-card-CLyskv_B.js';
9
9
  import { W as WorkflowCodeContent } from '../../../workflow-code-dialog-content-3AcgitHa.js';
10
10
  import { WorkflowIcon } from '../../../icons/WorkflowIcon.es.js';
11
11
 
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const lucideReact = require('lucide-react');
7
7
  const Button = require('../../../../Button-CXhSUBxN.cjs');
8
- const EmptyState = require('../../../../EmptyState-CuoMGNP0.cjs');
8
+ const EmptyState = require('../../../../EmptyState-DvSib3QC.cjs');
9
9
 
10
10
  const NoWorkflowsInfo = () => /* @__PURE__ */ jsxRuntime.jsx(
11
11
  EmptyState.EmptyState,
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { ExternalLinkIcon } from 'lucide-react';
3
3
  import { B as Button } from '../../../../Button-D43ghVKt.js';
4
- import { E as EmptyState } from '../../../../EmptyState-DyyUFpzY.js';
4
+ import { E as EmptyState } from '../../../../EmptyState-DGzBN0Ix.js';
5
5
 
6
6
  const NoWorkflowsInfo = () => /* @__PURE__ */ jsx(
7
7
  EmptyState,