@mastra/playground-ui 68.0.0 → 69.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 (2284) hide show
  1. package/README.md +80 -8
  2. package/dist/AgentIndicator-Dnv_1hvF.js +1995 -0
  3. package/dist/AgentIndicator-Dnv_1hvF.js.map +1 -0
  4. package/dist/AgentIndicator-zCokR2zb.cjs +2012 -0
  5. package/dist/AgentIndicator-zCokR2zb.cjs.map +1 -0
  6. package/dist/AttachmentCard-Bt3-QAxJ.js +61 -0
  7. package/dist/AttachmentCard-Bt3-QAxJ.js.map +1 -0
  8. package/dist/AttachmentCard-BycDEelL.cjs +66 -0
  9. package/dist/AttachmentCard-BycDEelL.cjs.map +1 -0
  10. package/dist/Avatar-DOoEXudh.js +146 -0
  11. package/dist/Avatar-DOoEXudh.js.map +1 -0
  12. package/dist/Avatar-Dxpc0YUx.cjs +151 -0
  13. package/dist/Avatar-Dxpc0YUx.cjs.map +1 -0
  14. package/dist/Badge-C7NnqmMx.js +149 -0
  15. package/dist/Badge-C7NnqmMx.js.map +1 -0
  16. package/dist/Badge-DqaMg7Gy.cjs +154 -0
  17. package/dist/Badge-DqaMg7Gy.cjs.map +1 -0
  18. package/dist/Button-BfICfyxD.cjs +276 -0
  19. package/dist/Button-BfICfyxD.cjs.map +1 -0
  20. package/dist/Button-Bi7aXd_G.js +233 -0
  21. package/dist/Button-Bi7aXd_G.js.map +1 -0
  22. package/dist/Card-C9oCXvxU.cjs +134 -0
  23. package/dist/Card-C9oCXvxU.cjs.map +1 -0
  24. package/dist/Card-ClDoUQNb.js +91 -0
  25. package/dist/Card-ClDoUQNb.js.map +1 -0
  26. package/dist/CodeEditor-DHIDfP5g.cjs +515 -0
  27. package/dist/CodeEditor-DHIDfP5g.cjs.map +1 -0
  28. package/dist/CodeEditor-ZoBu3Gjw.js +466 -0
  29. package/dist/CodeEditor-ZoBu3Gjw.js.map +1 -0
  30. package/dist/Comment-2q9SomE2.js +317 -0
  31. package/dist/Comment-2q9SomE2.js.map +1 -0
  32. package/dist/Comment-rQxuMDQv.cjs +412 -0
  33. package/dist/Comment-rQxuMDQv.cjs.map +1 -0
  34. package/dist/Composer-bVE8qK52.js +357 -0
  35. package/dist/Composer-bVE8qK52.js.map +1 -0
  36. package/dist/Composer-u1K6edoZ.cjs +446 -0
  37. package/dist/Composer-u1K6edoZ.cjs.map +1 -0
  38. package/dist/DataCodeSection-7SvRJj6f.cjs +236 -0
  39. package/dist/DataCodeSection-7SvRJj6f.cjs.map +1 -0
  40. package/dist/DataCodeSection-CTodi9wg.js +231 -0
  41. package/dist/DataCodeSection-CTodi9wg.js.map +1 -0
  42. package/dist/DataDetailsPanel-BDoD6pxx.cjs +185 -0
  43. package/dist/DataDetailsPanel-BDoD6pxx.cjs.map +1 -0
  44. package/dist/DataDetailsPanel-BU05psHL.js +180 -0
  45. package/dist/DataDetailsPanel-BU05psHL.js.map +1 -0
  46. package/dist/DataKeysAndValues-B56je3sK.js +123 -0
  47. package/dist/DataKeysAndValues-B56je3sK.js.map +1 -0
  48. package/dist/DataKeysAndValues-BbKeVxrQ.cjs +128 -0
  49. package/dist/DataKeysAndValues-BbKeVxrQ.cjs.map +1 -0
  50. package/dist/DataList-B7ho6PrJ.js +408 -0
  51. package/dist/DataList-B7ho6PrJ.js.map +1 -0
  52. package/dist/DataList-DTIdllb-.cjs +431 -0
  53. package/dist/DataList-DTIdllb-.cjs.map +1 -0
  54. package/dist/DataPanel-BRRAvWYQ.cjs +298 -0
  55. package/dist/DataPanel-BRRAvWYQ.cjs.map +1 -0
  56. package/dist/DataPanel-pVr5LVaK.js +292 -0
  57. package/dist/DataPanel-pVr5LVaK.js.map +1 -0
  58. package/dist/Dialog-Duy3M1ny.cjs +424 -0
  59. package/dist/Dialog-Duy3M1ny.cjs.map +1 -0
  60. package/dist/Dialog-OBPu3rl2.js +334 -0
  61. package/dist/Dialog-OBPu3rl2.js.map +1 -0
  62. package/dist/EmptyState-Dc-sP95H.cjs +1524 -0
  63. package/dist/EmptyState-Dc-sP95H.cjs.map +1 -0
  64. package/dist/EmptyState-i88y1x75.js +1511 -0
  65. package/dist/EmptyState-i88y1x75.js.map +1 -0
  66. package/dist/ErrorBoundary-Bwoum0sT.cjs +138 -0
  67. package/dist/ErrorBoundary-Bwoum0sT.cjs.map +1 -0
  68. package/dist/ErrorBoundary-BzmaWe2y.js +131 -0
  69. package/dist/ErrorBoundary-BzmaWe2y.js.map +1 -0
  70. package/dist/FilterBar-CFacnMNl.js +861 -0
  71. package/dist/FilterBar-CFacnMNl.js.map +1 -0
  72. package/dist/FilterBar-CR8nbvoe.cjs +902 -0
  73. package/dist/FilterBar-CR8nbvoe.cjs.map +1 -0
  74. package/dist/KnowledgePageGraph.css +1 -3
  75. package/dist/LogsDataList-Cdo_U0Ei.js +96 -0
  76. package/dist/LogsDataList-Cdo_U0Ei.js.map +1 -0
  77. package/dist/LogsDataList-z0Y2X8P5.cjs +101 -0
  78. package/dist/LogsDataList-z0Y2X8P5.cjs.map +1 -0
  79. package/dist/MarkdownRenderer-BSGb65Ze.js +481 -0
  80. package/dist/MarkdownRenderer-BSGb65Ze.js.map +1 -0
  81. package/dist/MarkdownRenderer-CDwlvw0Y.cjs +490 -0
  82. package/dist/MarkdownRenderer-CDwlvw0Y.cjs.map +1 -0
  83. package/dist/MarkdownRenderer.css +77 -6
  84. package/dist/Message-CgO_SxI4.cjs +116 -0
  85. package/dist/Message-CgO_SxI4.cjs.map +1 -0
  86. package/dist/Message-DnnCoSef.js +87 -0
  87. package/dist/Message-DnnCoSef.js.map +1 -0
  88. package/dist/MessageScroller-D-mK1uuu.cjs +976 -0
  89. package/dist/MessageScroller-D-mK1uuu.cjs.map +1 -0
  90. package/dist/MessageScroller-nV_zBF3H.js +903 -0
  91. package/dist/MessageScroller-nV_zBF3H.js.map +1 -0
  92. package/dist/Metadata-5GJlO4GU.cjs +32 -0
  93. package/dist/Metadata-5GJlO4GU.cjs.map +1 -0
  94. package/dist/Metadata-DlVgmRTA.js +27 -0
  95. package/dist/Metadata-DlVgmRTA.js.map +1 -0
  96. package/dist/MetricsCard-CSJ4TsNq.cjs +229 -0
  97. package/dist/MetricsCard-CSJ4TsNq.cjs.map +1 -0
  98. package/dist/MetricsCard-D6bQfynP.js +224 -0
  99. package/dist/MetricsCard-D6bQfynP.js.map +1 -0
  100. package/dist/MetricsKpiCard-1blTbzUs.js +216 -0
  101. package/dist/MetricsKpiCard-1blTbzUs.js.map +1 -0
  102. package/dist/MetricsKpiCard-C_9GvRAp.cjs +221 -0
  103. package/dist/MetricsKpiCard-C_9GvRAp.cjs.map +1 -0
  104. package/dist/MetricsLineChart-4w5lpH63.js +262 -0
  105. package/dist/MetricsLineChart-4w5lpH63.js.map +1 -0
  106. package/dist/MetricsLineChart-BnY9JKzc.cjs +279 -0
  107. package/dist/MetricsLineChart-BnY9JKzc.cjs.map +1 -0
  108. package/dist/MetricsStackedBarChart-Bmk0OjYp.js +308 -0
  109. package/dist/MetricsStackedBarChart-Bmk0OjYp.js.map +1 -0
  110. package/dist/MetricsStackedBarChart-CJQF99sc.cjs +313 -0
  111. package/dist/MetricsStackedBarChart-CJQF99sc.cjs.map +1 -0
  112. package/dist/MetricsTable-CvMoo2vg.cjs +332 -0
  113. package/dist/MetricsTable-CvMoo2vg.cjs.map +1 -0
  114. package/dist/MetricsTable-DIjbD5Xk.js +327 -0
  115. package/dist/MetricsTable-DIjbD5Xk.js.map +1 -0
  116. package/dist/Notice-B_KjMmA6.cjs +117 -0
  117. package/dist/Notice-B_KjMmA6.cjs.map +1 -0
  118. package/dist/Notice-OSlG42lD.js +112 -0
  119. package/dist/Notice-OSlG42lD.js.map +1 -0
  120. package/dist/PageLayout-C0Fo3ZQC.cjs +54 -0
  121. package/dist/PageLayout-C0Fo3ZQC.cjs.map +1 -0
  122. package/dist/PageLayout-DLll7ZwB.js +49 -0
  123. package/dist/PageLayout-DLll7ZwB.js.map +1 -0
  124. package/dist/SankeyChart-lkM5cpOC.js +856 -0
  125. package/dist/SankeyChart-lkM5cpOC.js.map +1 -0
  126. package/dist/SankeyChart-m50vrsBS.cjs +921 -0
  127. package/dist/SankeyChart-m50vrsBS.cjs.map +1 -0
  128. package/dist/Section-B8MIbDDs.cjs +130 -0
  129. package/dist/Section-B8MIbDDs.cjs.map +1 -0
  130. package/dist/Section-C9Fgv-IF.js +113 -0
  131. package/dist/Section-C9Fgv-IF.js.map +1 -0
  132. package/dist/ShareBar-DERy_egz.cjs +456 -0
  133. package/dist/ShareBar-DERy_egz.cjs.map +1 -0
  134. package/dist/ShareBar-KrzzdcyI.js +451 -0
  135. package/dist/ShareBar-KrzzdcyI.js.map +1 -0
  136. package/dist/Tree-D1_VJClB.js +438 -0
  137. package/dist/Tree-D1_VJClB.js.map +1 -0
  138. package/dist/Tree-kgLG4IbP.cjs +445 -0
  139. package/dist/Tree-kgLG4IbP.cjs.map +1 -0
  140. package/dist/Txt-5efBsb2p.js +21 -0
  141. package/dist/Txt-5efBsb2p.js.map +1 -0
  142. package/dist/Txt-_00wWxTd.cjs +26 -0
  143. package/dist/Txt-_00wWxTd.cjs.map +1 -0
  144. package/dist/Workflow-CXRv3YXx.js +1316 -0
  145. package/dist/Workflow-CXRv3YXx.js.map +1 -0
  146. package/dist/Workflow-DIfTVqZs.cjs +1467 -0
  147. package/dist/Workflow-DIfTVqZs.cjs.map +1 -0
  148. package/dist/activity-BH_eegMA.js +450 -0
  149. package/dist/activity-BH_eegMA.js.map +1 -0
  150. package/dist/activity-Ciolopq8.cjs +581 -0
  151. package/dist/activity-Ciolopq8.cjs.map +1 -0
  152. package/dist/annotations.css +8 -0
  153. package/dist/ask-user-D4ezQ6pt.js +412 -0
  154. package/dist/ask-user-D4ezQ6pt.js.map +1 -0
  155. package/dist/ask-user-DcnUNMM5.cjs +495 -0
  156. package/dist/ask-user-DcnUNMM5.cjs.map +1 -0
  157. package/dist/buttons-group-DA_wORqQ.js +35 -0
  158. package/dist/buttons-group-DA_wORqQ.js.map +1 -0
  159. package/dist/buttons-group-DM6_Kohs.cjs +48 -0
  160. package/dist/buttons-group-DM6_Kohs.cjs.map +1 -0
  161. package/dist/chat-shell-context-0m1GVhS7.js +16 -0
  162. package/dist/chat-shell-context-0m1GVhS7.js.map +1 -0
  163. package/dist/chat-shell-context-ONCslAGn.cjs +39 -0
  164. package/dist/chat-shell-context-ONCslAGn.cjs.map +1 -0
  165. package/dist/clear-filters-button-C79dzuzA.js +22 -0
  166. package/dist/clear-filters-button-C79dzuzA.js.map +1 -0
  167. package/dist/clear-filters-button-CCO-y7kt.cjs +27 -0
  168. package/dist/clear-filters-button-CCO-y7kt.cjs.map +1 -0
  169. package/dist/combobox-i723LxeC.cjs +313 -0
  170. package/dist/combobox-i723LxeC.cjs.map +1 -0
  171. package/dist/combobox-lbSxWRMl.js +306 -0
  172. package/dist/combobox-lbSxWRMl.js.map +1 -0
  173. package/dist/combobox-parts-BeNqgCbj.cjs +582 -0
  174. package/dist/combobox-parts-BeNqgCbj.cjs.map +1 -0
  175. package/dist/combobox-parts-C9o4UfH_.js +437 -0
  176. package/dist/combobox-parts-C9o4UfH_.js.map +1 -0
  177. package/dist/components/AgentIndicator.cjs.js +1 -1
  178. package/dist/components/AgentIndicator.es.js +1 -1
  179. package/dist/components/AlertDialog.cjs.js +2 -2
  180. package/dist/components/AlertDialog.es.js +2 -2
  181. package/dist/components/AttachmentCard.cjs.js +1 -1
  182. package/dist/components/AttachmentCard.es.js +1 -1
  183. package/dist/components/Avatar.cjs.js +1 -1
  184. package/dist/components/Avatar.es.js +1 -1
  185. package/dist/components/Badge.cjs.js +1 -1
  186. package/dist/components/Badge.es.js +1 -1
  187. package/dist/components/Breadcrumb.cjs.js +6 -5
  188. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  189. package/dist/components/Breadcrumb.es.js +6 -5
  190. package/dist/components/Breadcrumb.es.js.map +1 -1
  191. package/dist/components/Button.cjs.js +2 -2
  192. package/dist/components/Button.es.js +2 -2
  193. package/dist/components/ButtonsGroup.cjs.js +1 -1
  194. package/dist/components/ButtonsGroup.es.js +1 -1
  195. package/dist/components/Card.cjs.js +1 -1
  196. package/dist/components/Card.es.js +1 -1
  197. package/dist/components/ChartSkeleton.cjs.js +2 -2
  198. package/dist/components/ChartSkeleton.es.js +2 -2
  199. package/dist/components/ChartTooltip.cjs.js +1 -1
  200. package/dist/components/ChartTooltip.es.js +1 -1
  201. package/dist/components/ChatShell.cjs.js +33 -9
  202. package/dist/components/ChatShell.cjs.js.map +1 -1
  203. package/dist/components/ChatShell.es.js +33 -9
  204. package/dist/components/ChatShell.es.js.map +1 -1
  205. package/dist/components/Checkbox.cjs.js +1 -1
  206. package/dist/components/Checkbox.es.js +1 -1
  207. package/dist/components/ClampedText.cjs.js +3 -3
  208. package/dist/components/ClampedText.es.js +3 -3
  209. package/dist/components/ClearFiltersButton.cjs.js +1 -1
  210. package/dist/components/ClearFiltersButton.es.js +1 -1
  211. package/dist/components/CodeBlock.cjs.js +5 -5
  212. package/dist/components/CodeBlock.es.js +5 -5
  213. package/dist/components/CodeDiff.cjs.js +3 -3
  214. package/dist/components/CodeDiff.es.js +2 -2
  215. package/dist/components/CodeEditor.cjs.js +1 -1
  216. package/dist/components/CodeEditor.es.js +1 -1
  217. package/dist/components/Collapsible.cjs.js +1 -1
  218. package/dist/components/Collapsible.es.js +1 -1
  219. package/dist/components/CollapsibleBox.cjs.js +1 -1
  220. package/dist/components/CollapsibleBox.es.js +1 -1
  221. package/dist/components/Combobox.cjs.js +2 -2
  222. package/dist/components/Combobox.es.js +2 -2
  223. package/dist/components/Command.cjs.js +5 -5
  224. package/dist/components/Command.es.js +5 -5
  225. package/dist/components/CommandPalette.cjs.js +7 -7
  226. package/dist/components/CommandPalette.cjs.js.map +1 -1
  227. package/dist/components/CommandPalette.es.js +7 -7
  228. package/dist/components/CommandPalette.es.js.map +1 -1
  229. package/dist/components/Comment.cjs.js +1 -1
  230. package/dist/components/Comment.es.js +1 -1
  231. package/dist/components/CompactNumber.cjs.js +2 -2
  232. package/dist/components/CompactNumber.es.js +2 -2
  233. package/dist/components/Composer.cjs.js +1 -1
  234. package/dist/components/Composer.es.js +1 -1
  235. package/dist/components/ContextMenu.cjs.js +1 -1
  236. package/dist/components/ContextMenu.es.js +1 -1
  237. package/dist/components/CopyButton.cjs.js +1 -1
  238. package/dist/components/CopyButton.es.js +1 -1
  239. package/dist/components/DataCodeSection.cjs.js +1 -1
  240. package/dist/components/DataCodeSection.es.js +1 -1
  241. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  242. package/dist/components/DataDetailsPanel.es.js +1 -1
  243. package/dist/components/DataKeysAndValues.cjs.js +1 -1
  244. package/dist/components/DataKeysAndValues.es.js +1 -1
  245. package/dist/components/DataList.cjs.js +3 -3
  246. package/dist/components/DataList.es.js +3 -3
  247. package/dist/components/DataPanel.cjs.js +1 -1
  248. package/dist/components/DataPanel.es.js +1 -1
  249. package/dist/components/DateRangeTimeline.cjs.js +9 -9
  250. package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
  251. package/dist/components/DateRangeTimeline.es.js +9 -9
  252. package/dist/components/DateRangeTimeline.es.js.map +1 -1
  253. package/dist/components/DateTimePicker.cjs.js +75 -142
  254. package/dist/components/DateTimePicker.cjs.js.map +1 -1
  255. package/dist/components/DateTimePicker.es.js +79 -146
  256. package/dist/components/DateTimePicker.es.js.map +1 -1
  257. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  258. package/dist/components/DateTimeRangePicker.es.js +1 -1
  259. package/dist/components/Dialog.cjs.js +1 -1
  260. package/dist/components/Dialog.es.js +1 -1
  261. package/dist/components/DiffStat.cjs.js +1 -1
  262. package/dist/components/DiffStat.es.js +1 -1
  263. package/dist/components/DisabledFeatureButton.cjs.js +3 -3
  264. package/dist/components/DisabledFeatureButton.es.js +3 -3
  265. package/dist/components/DisclosureChevron.cjs.js +1 -1
  266. package/dist/components/DisclosureChevron.es.js +1 -1
  267. package/dist/components/Drawer.cjs.js +2 -2
  268. package/dist/components/Drawer.es.js +2 -2
  269. package/dist/components/DropdownMenu.cjs.js +1 -1
  270. package/dist/components/DropdownMenu.es.js +1 -1
  271. package/dist/components/EmptyState.cjs.js +1 -1
  272. package/dist/components/EmptyState.es.js +1 -1
  273. package/dist/components/Entity.cjs.js +3 -3
  274. package/dist/components/Entity.es.js +3 -3
  275. package/dist/components/EntityHeader.cjs.js +2 -2
  276. package/dist/components/EntityHeader.es.js +2 -2
  277. package/dist/components/Entry.cjs.js +1 -1
  278. package/dist/components/Entry.es.js +1 -1
  279. package/dist/components/EnvironmentVariablesEditor.cjs.js +6 -6
  280. package/dist/components/EnvironmentVariablesEditor.es.js +6 -6
  281. package/dist/components/ErrorBoundary.cjs.js +1 -1
  282. package/dist/components/ErrorBoundary.es.js +1 -1
  283. package/dist/components/Field.cjs.js +2 -2
  284. package/dist/components/Field.es.js +2 -2
  285. package/dist/components/FileDropBackdrop.cjs.js +1 -1
  286. package/dist/components/FileDropBackdrop.es.js +1 -1
  287. package/dist/components/FilterBar.cjs.js +3 -3
  288. package/dist/components/FilterBar.es.js +3 -3
  289. package/dist/components/FormFieldBlocks.cjs.js +5 -5
  290. package/dist/components/FormFieldBlocks.es.js +6 -6
  291. package/dist/components/Header.cjs.js +1 -1
  292. package/dist/components/Header.es.js +1 -1
  293. package/dist/components/HoverCard.cjs.js +1 -1
  294. package/dist/components/HoverCard.es.js +1 -1
  295. package/dist/components/Input.cjs.js +1 -1
  296. package/dist/components/Input.es.js +1 -1
  297. package/dist/components/InputGroup.cjs.js +1 -1
  298. package/dist/components/InputGroup.es.js +1 -1
  299. package/dist/components/InputNumber.cjs.js +3 -3
  300. package/dist/components/InputNumber.es.js +3 -3
  301. package/dist/components/JSONSchemaForm.cjs.js +4 -4
  302. package/dist/components/JSONSchemaForm.es.js +4 -4
  303. package/dist/components/Kbd.cjs.js +1 -1
  304. package/dist/components/Kbd.es.js +1 -1
  305. package/dist/components/KeyValueList.cjs.js +2 -2
  306. package/dist/components/KeyValueList.es.js +2 -2
  307. package/dist/components/ListSearch.cjs.js +1 -1
  308. package/dist/components/ListSearch.es.js +1 -1
  309. package/dist/components/LogsDataList.cjs.js +2 -2
  310. package/dist/components/LogsDataList.es.js +2 -2
  311. package/dist/components/MainHeader.cjs.js +1 -1
  312. package/dist/components/MainHeader.es.js +1 -1
  313. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  314. package/dist/components/MarkdownRenderer.es.js +1 -1
  315. package/dist/components/Message.cjs.js +1 -1
  316. package/dist/components/Message.es.js +1 -1
  317. package/dist/components/MessageScroller.cjs.js +1 -1
  318. package/dist/components/MessageScroller.es.js +1 -1
  319. package/dist/components/Metadata.cjs.js +3 -0
  320. package/dist/components/Metadata.d.ts +1 -0
  321. package/dist/components/Metadata.es.js +1 -0
  322. package/dist/components/Meter.cjs.js +3 -3
  323. package/dist/components/Meter.es.js +3 -3
  324. package/dist/components/MetricsCard.cjs.js +1 -1
  325. package/dist/components/MetricsCard.es.js +1 -1
  326. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  327. package/dist/components/MetricsKpiCard.es.js +1 -1
  328. package/dist/components/MetricsLineChart.cjs.js +1 -1
  329. package/dist/components/MetricsLineChart.es.js +1 -1
  330. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  331. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  332. package/dist/components/MetricsTable.cjs.js +1 -1
  333. package/dist/components/MetricsTable.es.js +1 -1
  334. package/dist/components/Notice.cjs.js +1 -1
  335. package/dist/components/Notice.es.js +1 -1
  336. package/dist/components/PageHeader.cjs.js +1 -1
  337. package/dist/components/PageHeader.es.js +1 -1
  338. package/dist/components/PageLayout.cjs.js +1 -1
  339. package/dist/components/PageLayout.es.js +1 -1
  340. package/dist/components/Popover.cjs.js +1 -1
  341. package/dist/components/Popover.es.js +1 -1
  342. package/dist/components/PrevNextNav.cjs.js +1 -1
  343. package/dist/components/PrevNextNav.es.js +1 -1
  344. package/dist/components/ProductAvatar.cjs.js +2 -2
  345. package/dist/components/ProductAvatar.es.js +2 -2
  346. package/dist/components/ProductBadge.cjs.js +2 -2
  347. package/dist/components/ProductBadge.es.js +2 -2
  348. package/dist/components/PropertyFilter.cjs.js +9 -9
  349. package/dist/components/PropertyFilter.cjs.js.map +1 -1
  350. package/dist/components/PropertyFilter.es.js +9 -9
  351. package/dist/components/PropertyFilter.es.js.map +1 -1
  352. package/dist/components/RadioGroup.cjs.js +1 -1
  353. package/dist/components/RadioGroup.es.js +1 -1
  354. package/dist/components/RelativeTimestamp.cjs.js +6 -30
  355. package/dist/components/RelativeTimestamp.cjs.js.map +1 -1
  356. package/dist/components/RelativeTimestamp.es.js +7 -31
  357. package/dist/components/RelativeTimestamp.es.js.map +1 -1
  358. package/dist/components/RuleBuilder.cjs.js +22 -22
  359. package/dist/components/RuleBuilder.cjs.js.map +1 -1
  360. package/dist/components/RuleBuilder.es.js +5 -5
  361. package/dist/components/SankeyChart.cjs.js +1 -1
  362. package/dist/components/SankeyChart.es.js +1 -1
  363. package/dist/components/SavedViews.cjs.js +9 -9
  364. package/dist/components/SavedViews.es.js +9 -9
  365. package/dist/components/ScatterPlotChart.cjs.js +2 -2
  366. package/dist/components/ScatterPlotChart.es.js +2 -2
  367. package/dist/components/ScrollArea.cjs.js +1 -1
  368. package/dist/components/ScrollArea.es.js +1 -1
  369. package/dist/components/SearchInput.cjs.js +2 -2
  370. package/dist/components/SearchInput.es.js +2 -2
  371. package/dist/components/Section.cjs.js +1 -1
  372. package/dist/components/Section.es.js +1 -1
  373. package/dist/components/SectionCard.cjs.js +1 -1
  374. package/dist/components/SectionCard.es.js +1 -1
  375. package/dist/components/SegmentedControl.cjs.js +3 -3
  376. package/dist/components/SegmentedControl.es.js +3 -3
  377. package/dist/components/Select.cjs.js +1 -1
  378. package/dist/components/Select.es.js +1 -1
  379. package/dist/components/ShareBar.cjs.js +1 -1
  380. package/dist/components/ShareBar.es.js +1 -1
  381. package/dist/components/SideDialog.cjs.js +8 -8
  382. package/dist/components/SideDialog.es.js +8 -8
  383. package/dist/components/Sidebar.cjs.js +14 -14
  384. package/dist/components/Sidebar.cjs.js.map +1 -1
  385. package/dist/components/Sidebar.es.js +15 -15
  386. package/dist/components/Sidebar.es.js.map +1 -1
  387. package/dist/components/Skeleton.cjs.js +1 -1
  388. package/dist/components/Skeleton.es.js +1 -1
  389. package/dist/components/Spinner.cjs.js +1 -1
  390. package/dist/components/Spinner.es.js +1 -1
  391. package/dist/components/StatusIndicators.cjs.js +3 -3
  392. package/dist/components/StatusIndicators.es.js +3 -3
  393. package/dist/components/Steps.cjs.js +73 -3
  394. package/dist/components/Steps.cjs.js.map +1 -1
  395. package/dist/components/Steps.es.js +73 -4
  396. package/dist/components/Steps.es.js.map +1 -1
  397. package/dist/components/Switch.cjs.js +2 -2
  398. package/dist/components/Switch.es.js +2 -2
  399. package/dist/components/Table.cjs.js +4 -4
  400. package/dist/components/Table.es.js +4 -4
  401. package/dist/components/Tabs.cjs.js +2 -2
  402. package/dist/components/Tabs.es.js +2 -2
  403. package/dist/components/Text.cjs.js +1 -1
  404. package/dist/components/Text.es.js +1 -1
  405. package/dist/components/Textarea.cjs.js +2 -2
  406. package/dist/components/Textarea.es.js +2 -2
  407. package/dist/components/ThinkingLevel.cjs.js +5 -5
  408. package/dist/components/ThinkingLevel.cjs.js.map +1 -1
  409. package/dist/components/ThinkingLevel.es.js +5 -5
  410. package/dist/components/ThinkingLevel.es.js.map +1 -1
  411. package/dist/components/ThreadList.cjs.js +2 -2
  412. package/dist/components/ThreadList.es.js +2 -2
  413. package/dist/components/ThreadRail.cjs.js +10 -8
  414. package/dist/components/ThreadRail.cjs.js.map +1 -1
  415. package/dist/components/ThreadRail.es.js +10 -8
  416. package/dist/components/ThreadRail.es.js.map +1 -1
  417. package/dist/components/Toaster.cjs.js +4 -4
  418. package/dist/components/Toaster.es.js +3 -3
  419. package/dist/components/TokenBudget.cjs.js +3 -3
  420. package/dist/components/TokenBudget.es.js +2 -2
  421. package/dist/components/Tooltip.cjs.js +2 -2
  422. package/dist/components/Tooltip.es.js +2 -2
  423. package/dist/components/Tree.cjs.js +1 -1
  424. package/dist/components/Tree.es.js +1 -1
  425. package/dist/components/Truncate.cjs.js +3 -3
  426. package/dist/components/Truncate.es.js +3 -3
  427. package/dist/components/Txt.cjs.js +1 -1
  428. package/dist/components/Txt.es.js +1 -1
  429. package/dist/components/Workflow.cjs.js +1 -1
  430. package/dist/components/Workflow.es.js +1 -1
  431. package/dist/components/ai/activity.cjs.js +1 -1
  432. package/dist/components/ai/activity.es.js +1 -1
  433. package/dist/components/ai/annotations.cjs.js +836 -0
  434. package/dist/components/ai/annotations.cjs.js.map +1 -0
  435. package/dist/components/ai/annotations.d.ts +1 -0
  436. package/dist/components/ai/annotations.es.js +831 -0
  437. package/dist/components/ai/annotations.es.js.map +1 -0
  438. package/dist/components/ai/ask-user.cjs.js +1 -1
  439. package/dist/components/ai/ask-user.es.js +1 -1
  440. package/dist/components/ai/plan.cjs.js +6 -6
  441. package/dist/components/ai/plan.es.js +6 -6
  442. package/dist/components/ai/task-list.cjs.js +4 -4
  443. package/dist/components/ai/task-list.cjs.js.map +1 -1
  444. package/dist/components/ai/task-list.es.js +4 -4
  445. package/dist/components/ai/task-list.es.js.map +1 -1
  446. package/dist/components/ai/tool-approval.cjs.js +1 -1
  447. package/dist/components/ai/tool-approval.es.js +1 -1
  448. package/dist/components/ai/tool-call.cjs.js +7 -2
  449. package/dist/components/ai/tool-call.es.js +3 -3
  450. package/dist/components/ai/transcript-divider.cjs.js +1 -1
  451. package/dist/components/ai/transcript-divider.es.js +1 -1
  452. package/dist/context-menu-6_Kcs8kj.js +204 -0
  453. package/dist/context-menu-6_Kcs8kj.js.map +1 -0
  454. package/dist/context-menu-DwB7u7fB.cjs +211 -0
  455. package/dist/context-menu-DwB7u7fB.cjs.map +1 -0
  456. package/dist/copy-button-B-_Z6N6y.js +25 -0
  457. package/dist/copy-button-B-_Z6N6y.js.map +1 -0
  458. package/dist/copy-button-DuEUYvS2.cjs +30 -0
  459. package/dist/copy-button-DuEUYvS2.cjs.map +1 -0
  460. package/dist/data-list-072hHK9L.cjs +1003 -0
  461. package/dist/data-list-072hHK9L.cjs.map +1 -0
  462. package/dist/data-list-GzbzPmYR.js +866 -0
  463. package/dist/data-list-GzbzPmYR.js.map +1 -0
  464. package/dist/date-time-range-picker-2a-wUBTk.cjs +377 -0
  465. package/dist/date-time-range-picker-2a-wUBTk.cjs.map +1 -0
  466. package/dist/date-time-range-picker-BUjjjvo8.js +372 -0
  467. package/dist/date-time-range-picker-BUjjjvo8.js.map +1 -0
  468. package/dist/domains/auth/components/permission-denied.cjs.js +1 -1
  469. package/dist/domains/auth/components/permission-denied.es.js +1 -1
  470. package/dist/domains/auth/components/session-expired.cjs.js +3 -3
  471. package/dist/domains/auth/components/session-expired.es.js +3 -3
  472. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +2 -2
  473. package/dist/domains/chat/activity/activity-stretch-line.es.js +2 -2
  474. package/dist/domains/chat/activity/components/activity-fold.cjs.js +54 -58
  475. package/dist/domains/chat/activity/components/activity-fold.cjs.js.map +1 -1
  476. package/dist/domains/chat/activity/components/activity-fold.es.js +54 -58
  477. package/dist/domains/chat/activity/components/activity-fold.es.js.map +1 -1
  478. package/dist/domains/chat/activity/components/calls-panel.cjs.js +2 -2
  479. package/dist/domains/chat/activity/components/calls-panel.es.js +2 -2
  480. package/dist/domains/chat/activity/components/stretch-content.cjs.js +2 -2
  481. package/dist/domains/chat/activity/components/stretch-content.es.js +2 -2
  482. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  483. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  484. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  485. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  486. package/dist/domains/chat/activity/model/activity-words.cjs.js +7 -11
  487. package/dist/domains/chat/activity/model/activity-words.cjs.js.map +1 -1
  488. package/dist/domains/chat/activity/model/activity-words.es.js +8 -11
  489. package/dist/domains/chat/activity/model/activity-words.es.js.map +1 -1
  490. package/dist/domains/chat/activity.cjs.js +2 -5
  491. package/dist/domains/chat/activity.es.js +4 -5
  492. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +3 -3
  493. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +3 -3
  494. package/dist/domains/chat/attachments/composer-attachment-entry.cjs.js +2 -2
  495. package/dist/domains/chat/attachments/composer-attachment-entry.es.js +2 -2
  496. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +2 -2
  497. package/dist/domains/chat/attachments/composer-attachment-list.es.js +2 -2
  498. package/dist/domains/chat/attachments/composer-attachment.cjs.js +4 -4
  499. package/dist/domains/chat/attachments/composer-attachment.es.js +4 -4
  500. package/dist/domains/chat/attachments/message-attachment.cjs.js +2 -2
  501. package/dist/domains/chat/attachments/message-attachment.es.js +2 -2
  502. package/dist/domains/chat/attachments/message-image-attachment.cjs.js +2 -2
  503. package/dist/domains/chat/attachments/message-image-attachment.cjs.js.map +1 -1
  504. package/dist/domains/chat/attachments/message-image-attachment.es.js +2 -2
  505. package/dist/domains/chat/attachments/message-image-attachment.es.js.map +1 -1
  506. package/dist/domains/chat/attachments/split-message-attachments.cjs.js +4 -1
  507. package/dist/domains/chat/attachments/split-message-attachments.cjs.js.map +1 -1
  508. package/dist/domains/chat/attachments/split-message-attachments.es.js +4 -1
  509. package/dist/domains/chat/attachments/split-message-attachments.es.js.map +1 -1
  510. package/dist/domains/chat/components/badge-wrapper.cjs.js +2 -2
  511. package/dist/domains/chat/components/badge-wrapper.es.js +2 -2
  512. package/dist/domains/chat/components/loading-badge.cjs.js +2 -2
  513. package/dist/domains/chat/components/loading-badge.es.js +2 -2
  514. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +4 -4
  515. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +4 -4
  516. package/dist/domains/chat/components/section-label.cjs.js +1 -1
  517. package/dist/domains/chat/components/section-label.es.js +1 -1
  518. package/dist/domains/chat/context/chat-context.cjs.js +2 -0
  519. package/dist/domains/chat/context/chat-context.cjs.js.map +1 -1
  520. package/dist/domains/chat/context/chat-context.es.js +2 -1
  521. package/dist/domains/chat/context/chat-context.es.js.map +1 -1
  522. package/dist/domains/chat/knowledge/knowledge-links.cjs.js +1 -1
  523. package/dist/domains/chat/knowledge/knowledge-links.es.js +1 -1
  524. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +3 -3
  525. package/dist/domains/chat/knowledge/pinned-knowledge.es.js +3 -3
  526. package/dist/domains/chat/knowledge.cjs.js +1 -1
  527. package/dist/domains/chat/knowledge.es.js +1 -1
  528. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  529. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  530. package/dist/domains/chat/messages/dataset-save-action.cjs.js +10 -10
  531. package/dist/domains/chat/messages/dataset-save-action.es.js +11 -11
  532. package/dist/domains/chat/messages/message-row.cjs.js +20 -20
  533. package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
  534. package/dist/domains/chat/messages/message-row.es.js +20 -20
  535. package/dist/domains/chat/messages/message-row.es.js.map +1 -1
  536. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +5 -5
  537. package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
  538. package/dist/domains/chat/messages/notification-signal-notice.es.js +5 -5
  539. package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
  540. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  541. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  542. package/dist/domains/chat/messages/renderers/data-part-renderer.cjs.js +1 -1
  543. package/dist/domains/chat/messages/renderers/data-part-renderer.es.js +1 -1
  544. package/dist/domains/chat/messages/renderers/message-text.cjs.js +5 -5
  545. package/dist/domains/chat/messages/renderers/message-text.es.js +5 -5
  546. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  547. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  548. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  549. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  550. package/dist/domains/chat/messages/renderers/user-file-part-renderer.cjs.js +1 -1
  551. package/dist/domains/chat/messages/renderers/user-file-part-renderer.es.js +1 -1
  552. package/dist/domains/chat/messages/signal-badge.cjs.js +5 -5
  553. package/dist/domains/chat/messages/signal-badge.es.js +5 -5
  554. package/dist/domains/chat/messages/skill-message.cjs.js +4 -4
  555. package/dist/domains/chat/messages/skill-message.es.js +4 -4
  556. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  557. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  558. package/dist/domains/chat/messages/tripwire-notice.cjs.js +8 -13
  559. package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
  560. package/dist/domains/chat/messages/tripwire-notice.es.js +8 -13
  561. package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
  562. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  563. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  564. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  565. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  566. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  567. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  568. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +5 -5
  569. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +5 -5
  570. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +7 -6
  571. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js.map +1 -1
  572. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +7 -6
  573. package/dist/domains/chat/tools/badges/code-mode-badge.es.js.map +1 -1
  574. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +5 -5
  575. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +5 -5
  576. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +2 -2
  577. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -1
  578. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +2 -2
  579. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -1
  580. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +34 -28
  581. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
  582. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +34 -28
  583. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
  584. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +28 -24
  585. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
  586. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +28 -24
  587. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
  588. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +4 -4
  589. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +4 -4
  590. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +8 -7
  591. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js.map +1 -1
  592. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +8 -7
  593. package/dist/domains/chat/tools/badges/observation-marker-details.es.js.map +1 -1
  594. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +3 -3
  595. package/dist/domains/chat/tools/badges/observation-renderer.es.js +3 -3
  596. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +25 -34
  597. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js.map +1 -1
  598. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +27 -36
  599. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js.map +1 -1
  600. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  601. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  602. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +19 -26
  603. package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
  604. package/dist/domains/chat/tools/badges/tool-badge.es.js +19 -26
  605. package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
  606. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +12 -10
  607. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  608. package/dist/domains/chat/tools/badges/workflow-badge.es.js +12 -10
  609. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  610. package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js +13 -0
  611. package/dist/domains/chat/tools/badges/workspace-data-parts.cjs.js.map +1 -1
  612. package/dist/domains/chat/tools/badges/workspace-data-parts.es.js +13 -1
  613. package/dist/domains/chat/tools/badges/workspace-data-parts.es.js.map +1 -1
  614. package/dist/domains/chat/tools/badges/workspace-link.cjs.js +1 -1
  615. package/dist/domains/chat/tools/badges/workspace-link.es.js +1 -1
  616. package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +8 -8
  617. package/dist/domains/chat/tools/connect-prompt-tool.es.js +8 -8
  618. package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +5 -5
  619. package/dist/domains/chat/tools/mcp-input-request-tool.es.js +5 -5
  620. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +4 -4
  621. package/dist/domains/chat/tools/submit-plan-tool.es.js +4 -4
  622. package/dist/domains/chat/tools/tool-card-kind.cjs.js +10 -5
  623. package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
  624. package/dist/domains/chat/tools/tool-card-kind.es.js +10 -5
  625. package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
  626. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  627. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  628. package/dist/domains/chat/tools/tool-groups.cjs.js +2 -2
  629. package/dist/domains/chat/tools/tool-groups.es.js +2 -2
  630. package/dist/domains/chat.cjs.js +6 -5
  631. package/dist/domains/chat.es.js +6 -6
  632. package/dist/domains/connect.cjs.js +1 -1
  633. package/dist/domains/connect.es.js +1 -1
  634. package/dist/domains/dashboards/components/connected-widget.cjs.js +55 -0
  635. package/dist/domains/dashboards/components/connected-widget.cjs.js.map +1 -0
  636. package/dist/domains/dashboards/components/connected-widget.d.ts +1 -0
  637. package/dist/domains/dashboards/components/connected-widget.es.js +54 -0
  638. package/dist/domains/dashboards/components/connected-widget.es.js.map +1 -0
  639. package/dist/domains/dashboards/components/dashboard-grid.cjs.js +11 -8
  640. package/dist/domains/dashboards/components/dashboard-grid.cjs.js.map +1 -1
  641. package/dist/domains/dashboards/components/dashboard-grid.es.js +11 -8
  642. package/dist/domains/dashboards/components/dashboard-grid.es.js.map +1 -1
  643. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +26 -10
  644. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
  645. package/dist/domains/dashboards/components/dashboard-renderer.es.js +26 -10
  646. package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
  647. package/dist/domains/dashboards/components/stateless-widget.cjs.js +30 -0
  648. package/dist/domains/dashboards/components/stateless-widget.cjs.js.map +1 -0
  649. package/dist/domains/dashboards/components/stateless-widget.d.ts +1 -0
  650. package/dist/domains/dashboards/components/stateless-widget.es.js +29 -0
  651. package/dist/domains/dashboards/components/stateless-widget.es.js.map +1 -0
  652. package/dist/domains/dashboards/components/view-gate.cjs.js +18 -40
  653. package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -1
  654. package/dist/domains/dashboards/components/view-gate.es.js +18 -40
  655. package/dist/domains/dashboards/components/view-gate.es.js.map +1 -1
  656. package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
  657. package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
  658. package/dist/domains/dashboards/components/widget-controls.cjs.js +122 -1
  659. package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
  660. package/dist/domains/dashboards/components/widget-controls.es.js +121 -3
  661. package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -1
  662. package/dist/domains/dashboards/components/widget-error.cjs.js +6 -3
  663. package/dist/domains/dashboards/components/widget-error.cjs.js.map +1 -1
  664. package/dist/domains/dashboards/components/widget-error.es.js +6 -3
  665. package/dist/domains/dashboards/components/widget-error.es.js.map +1 -1
  666. package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js +55 -0
  667. package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js.map +1 -0
  668. package/dist/domains/dashboards/hooks/use-dashboard-environment.d.ts +1 -0
  669. package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js +53 -0
  670. package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js.map +1 -0
  671. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +24 -0
  672. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -1
  673. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +23 -1
  674. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -1
  675. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +10 -6
  676. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
  677. package/dist/domains/dashboards/hooks/use-widget-views.es.js +10 -7
  678. package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
  679. package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js +11 -0
  680. package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js.map +1 -0
  681. package/dist/domains/dashboards/kinds/kpis/kpis-plan.d.ts +1 -0
  682. package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js +9 -0
  683. package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js.map +1 -0
  684. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +28 -15
  685. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
  686. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +29 -16
  687. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
  688. package/dist/domains/dashboards/kinds/kpis.cjs.js +4 -1
  689. package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -1
  690. package/dist/domains/dashboards/kinds/kpis.es.js +4 -1
  691. package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -1
  692. package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js +27 -0
  693. package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js.map +1 -0
  694. package/dist/domains/dashboards/kinds/scores/scores-plan.d.ts +1 -0
  695. package/dist/domains/dashboards/kinds/scores/scores-plan.es.js +24 -0
  696. package/dist/domains/dashboards/kinds/scores/scores-plan.es.js.map +1 -0
  697. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +35 -33
  698. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
  699. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +35 -33
  700. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
  701. package/dist/domains/dashboards/kinds/scores.cjs.js +4 -0
  702. package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -1
  703. package/dist/domains/dashboards/kinds/scores.es.js +4 -0
  704. package/dist/domains/dashboards/kinds/scores.es.js.map +1 -1
  705. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +3 -7
  706. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -1
  707. package/dist/domains/dashboards/kinds/table/table-cells.es.js +3 -7
  708. package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -1
  709. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +5 -3
  710. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -1
  711. package/dist/domains/dashboards/kinds/table/table-columns.es.js +5 -3
  712. package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -1
  713. package/dist/domains/dashboards/kinds/table/table-plan.cjs.js +47 -0
  714. package/dist/domains/dashboards/kinds/table/table-plan.cjs.js.map +1 -0
  715. package/dist/domains/dashboards/kinds/table/table-plan.d.ts +1 -0
  716. package/dist/domains/dashboards/kinds/table/table-plan.es.js +44 -0
  717. package/dist/domains/dashboards/kinds/table/table-plan.es.js.map +1 -0
  718. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +25 -24
  719. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
  720. package/dist/domains/dashboards/kinds/table/table-tabs.es.js +26 -25
  721. package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
  722. package/dist/domains/dashboards/kinds/table/table-view.cjs.js +19 -19
  723. package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -1
  724. package/dist/domains/dashboards/kinds/table/table-view.es.js +19 -19
  725. package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -1
  726. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +14 -15
  727. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
  728. package/dist/domains/dashboards/kinds/table/table-widget.es.js +14 -15
  729. package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
  730. package/dist/domains/dashboards/kinds/table.cjs.js +5 -1
  731. package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -1
  732. package/dist/domains/dashboards/kinds/table.es.js +5 -1
  733. package/dist/domains/dashboards/kinds/table.es.js.map +1 -1
  734. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js +18 -0
  735. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js.map +1 -0
  736. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +1 -0
  737. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js +16 -0
  738. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js.map +1 -0
  739. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +38 -31
  740. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
  741. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +39 -32
  742. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
  743. package/dist/domains/dashboards/kinds/timeseries.cjs.js +4 -1
  744. package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -1
  745. package/dist/domains/dashboards/kinds/timeseries.es.js +4 -1
  746. package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -1
  747. package/dist/domains/dashboards/lib/alert-actions.cjs.js +123 -0
  748. package/dist/domains/dashboards/lib/alert-actions.cjs.js.map +1 -0
  749. package/dist/domains/dashboards/lib/alert-actions.d.ts +1 -0
  750. package/dist/domains/dashboards/lib/alert-actions.es.js +118 -0
  751. package/dist/domains/dashboards/lib/alert-actions.es.js.map +1 -0
  752. package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
  753. package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
  754. package/dist/domains/dashboards/lib/format.cjs.js +1 -1
  755. package/dist/domains/dashboards/lib/format.es.js +1 -1
  756. package/dist/domains/dashboards/lib/gate.cjs.js +62 -0
  757. package/dist/domains/dashboards/lib/gate.cjs.js.map +1 -0
  758. package/dist/domains/dashboards/lib/gate.d.ts +1 -0
  759. package/dist/domains/dashboards/lib/gate.es.js +60 -0
  760. package/dist/domains/dashboards/lib/gate.es.js.map +1 -0
  761. package/dist/domains/dashboards/lib/pin-actions.cjs.js +16 -0
  762. package/dist/domains/dashboards/lib/pin-actions.cjs.js.map +1 -0
  763. package/dist/domains/dashboards/lib/pin-actions.d.ts +1 -0
  764. package/dist/domains/dashboards/lib/pin-actions.es.js +15 -0
  765. package/dist/domains/dashboards/lib/pin-actions.es.js.map +1 -0
  766. package/dist/domains/dashboards/lib/plan-widget.cjs.js +41 -0
  767. package/dist/domains/dashboards/lib/plan-widget.cjs.js.map +1 -0
  768. package/dist/domains/dashboards/lib/plan-widget.d.ts +1 -0
  769. package/dist/domains/dashboards/lib/plan-widget.es.js +38 -0
  770. package/dist/domains/dashboards/lib/plan-widget.es.js.map +1 -0
  771. package/dist/domains/dashboards/lib/requests.cjs.js +49 -2
  772. package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -1
  773. package/dist/domains/dashboards/lib/requests.es.js +48 -3
  774. package/dist/domains/dashboards/lib/requests.es.js.map +1 -1
  775. package/dist/domains/dashboards/lib/scores.cjs.js +32 -0
  776. package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -1
  777. package/dist/domains/dashboards/lib/scores.es.js +31 -1
  778. package/dist/domains/dashboards/lib/scores.es.js.map +1 -1
  779. package/dist/domains/dashboards/lib/timeseries.cjs.js +17 -0
  780. package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -1
  781. package/dist/domains/dashboards/lib/timeseries.es.js +17 -1
  782. package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -1
  783. package/dist/domains/dashboards/lib/values.cjs.js.map +1 -1
  784. package/dist/domains/dashboards/lib/values.es.js.map +1 -1
  785. package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
  786. package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
  787. package/dist/domains/dashboards.cjs.js +26 -8
  788. package/dist/domains/dashboards.es.js +15 -11
  789. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +11 -11
  790. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +11 -11
  791. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +3 -3
  792. package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +3 -3
  793. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +6 -6
  794. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +6 -6
  795. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +7 -7
  796. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +7 -7
  797. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +3 -2
  798. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -1
  799. package/dist/domains/knowledge/components/KnowledgePageCard.es.js +3 -2
  800. package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -1
  801. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +191 -222
  802. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
  803. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +193 -225
  804. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
  805. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +625 -273
  806. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
  807. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +626 -274
  808. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
  809. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +554 -463
  810. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
  811. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +557 -466
  812. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
  813. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +22 -13
  814. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
  815. package/dist/domains/knowledge/components/KnowledgePageTree.es.js +23 -14
  816. package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
  817. package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js +16 -0
  818. package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js.map +1 -0
  819. package/dist/domains/knowledge/components/KnowledgeSourceIcon.d.ts +1 -0
  820. package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js +15 -0
  821. package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js.map +1 -0
  822. package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js +10 -0
  823. package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js.map +1 -0
  824. package/dist/domains/knowledge/components/KnowledgeTooltip.d.ts +1 -0
  825. package/dist/domains/knowledge/components/KnowledgeTooltip.es.js +9 -0
  826. package/dist/domains/knowledge/components/KnowledgeTooltip.es.js.map +1 -0
  827. package/dist/domains/knowledge/lib/fitViewport.cjs.js +22 -8
  828. package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -1
  829. package/dist/domains/knowledge/lib/fitViewport.es.js +22 -9
  830. package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -1
  831. package/dist/domains/knowledge/lib/pageAddress.cjs.js +51 -0
  832. package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -1
  833. package/dist/domains/knowledge/lib/pageAddress.es.js +50 -1
  834. package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -1
  835. package/dist/domains/knowledge/lib/pageRefs.cjs.js +43 -2
  836. package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -1
  837. package/dist/domains/knowledge/lib/pageRefs.es.js +43 -3
  838. package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -1
  839. package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js +10 -0
  840. package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js.map +1 -0
  841. package/dist/domains/knowledge/lib/pagesByRefContext.d.ts +1 -0
  842. package/dist/domains/knowledge/lib/pagesByRefContext.es.js +10 -0
  843. package/dist/domains/knowledge/lib/pagesByRefContext.es.js.map +1 -0
  844. package/dist/domains/llm/models-dev-logo-slugs.cjs.js +230 -0
  845. package/dist/domains/llm/models-dev-logo-slugs.cjs.js.map +1 -0
  846. package/dist/domains/llm/models-dev-logo-slugs.d.ts +1 -0
  847. package/dist/domains/llm/models-dev-logo-slugs.es.js +229 -0
  848. package/dist/domains/llm/models-dev-logo-slugs.es.js.map +1 -0
  849. package/dist/domains/llm/provider-logo-monogram.cjs.js +37 -0
  850. package/dist/domains/llm/provider-logo-monogram.cjs.js.map +1 -0
  851. package/dist/domains/llm/provider-logo-monogram.d.ts +1 -0
  852. package/dist/domains/llm/provider-logo-monogram.es.js +36 -0
  853. package/dist/domains/llm/provider-logo-monogram.es.js.map +1 -0
  854. package/dist/domains/llm/provider-logo.cjs.js +46 -17
  855. package/dist/domains/llm/provider-logo.cjs.js.map +1 -1
  856. package/dist/domains/llm/provider-logo.es.js +46 -17
  857. package/dist/domains/llm/provider-logo.es.js.map +1 -1
  858. package/dist/domains/llm/provider-map-icon.cjs.js +1 -1
  859. package/dist/domains/llm/provider-map-icon.es.js +1 -1
  860. package/dist/domains/llm.cjs.js +1 -1
  861. package/dist/domains/llm.es.js +1 -1
  862. package/dist/domains/logs/components/log-data-panel.cjs.js +11 -7
  863. package/dist/domains/logs/components/log-data-panel.cjs.js.map +1 -1
  864. package/dist/domains/logs/components/log-data-panel.es.js +11 -7
  865. package/dist/domains/logs/components/log-data-panel.es.js.map +1 -1
  866. package/dist/domains/logs/components/logs-error-content.cjs.js +1 -1
  867. package/dist/domains/logs/components/logs-error-content.es.js +1 -1
  868. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  869. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  870. package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
  871. package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
  872. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  873. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  874. package/dist/domains/logs/components/no-logs-info.cjs.js +3 -3
  875. package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -1
  876. package/dist/domains/logs/components/no-logs-info.es.js +3 -3
  877. package/dist/domains/logs/components/no-logs-info.es.js.map +1 -1
  878. package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +1 -1
  879. package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +1 -1
  880. package/dist/domains/logs.cjs.js +2 -2
  881. package/dist/domains/logs.es.js +2 -2
  882. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +29 -5
  883. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
  884. package/dist/domains/mcps/components/mcp-app-tool-result.es.js +30 -6
  885. package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
  886. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +64 -9
  887. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -1
  888. package/dist/domains/mcps/components/mcp-app-viewer.es.js +64 -9
  889. package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -1
  890. package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js +11 -0
  891. package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js.map +1 -0
  892. package/dist/domains/mcps/context/mcp-app-host-context-value.d.ts +1 -0
  893. package/dist/domains/mcps/context/mcp-app-host-context-value.es.js +9 -0
  894. package/dist/domains/mcps/context/mcp-app-host-context-value.es.js.map +1 -0
  895. package/dist/domains/mcps/context/mcp-app-host-context.cjs.js +14 -0
  896. package/dist/domains/mcps/context/mcp-app-host-context.cjs.js.map +1 -0
  897. package/dist/domains/mcps/context/mcp-app-host-context.d.ts +1 -0
  898. package/dist/domains/mcps/context/mcp-app-host-context.es.js +13 -0
  899. package/dist/domains/mcps/context/mcp-app-host-context.es.js.map +1 -0
  900. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js +37 -0
  901. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -0
  902. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +1 -0
  903. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +36 -0
  904. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -0
  905. package/dist/domains/mcps.cjs.js +5 -0
  906. package/dist/domains/mcps.d.ts +1 -0
  907. package/dist/domains/mcps.es.js +3 -0
  908. package/dist/domains/memory/components/flame-graph.cjs.js +4 -4
  909. package/dist/domains/memory/components/flame-graph.es.js +4 -4
  910. package/dist/domains/memory/components/memory-studio-panel.cjs.js +6 -6
  911. package/dist/domains/memory/components/memory-studio-panel.es.js +6 -6
  912. package/dist/domains/memory/components/observation-detail-view.cjs.js +6 -6
  913. package/dist/domains/memory/components/observation-detail-view.es.js +6 -6
  914. package/dist/domains/memory/components/thread-context-progress.cjs.js +2 -2
  915. package/dist/domains/memory/components/thread-context-progress.es.js +2 -2
  916. package/dist/domains/memory/components.cjs.js +1 -1
  917. package/dist/domains/memory/components.es.js +1 -1
  918. package/dist/domains/metrics/components/agent-runs-card.cjs.js +7 -7
  919. package/dist/domains/metrics/components/agent-runs-card.es.js +7 -7
  920. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.cjs.js +2 -2
  921. package/dist/domains/metrics/components/breakdown/breakdown-entity-tab.es.js +2 -2
  922. package/dist/domains/metrics/components/breakdown/breakdown-figure.cjs.js +1 -1
  923. package/dist/domains/metrics/components/breakdown/breakdown-figure.es.js +1 -1
  924. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.cjs.js +2 -2
  925. package/dist/domains/metrics/components/breakdown/breakdown-models-tab.es.js +2 -2
  926. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.cjs.js +2 -2
  927. package/dist/domains/metrics/components/breakdown/breakdown-row-mark.es.js +2 -2
  928. package/dist/domains/metrics/components/breakdown/breakdown-row-name.cjs.js +1 -1
  929. package/dist/domains/metrics/components/breakdown/breakdown-row-name.es.js +1 -1
  930. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +2 -2
  931. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +2 -2
  932. package/dist/domains/metrics/components/breakdown/breakdown-table.cjs.js +8 -8
  933. package/dist/domains/metrics/components/breakdown/breakdown-table.es.js +8 -8
  934. package/dist/domains/metrics/components/breakdown/breakdown-text.cjs.js +1 -1
  935. package/dist/domains/metrics/components/breakdown/breakdown-text.es.js +1 -1
  936. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.cjs.js +2 -2
  937. package/dist/domains/metrics/components/breakdown/breakdown-trace-tab.es.js +2 -2
  938. package/dist/domains/metrics/components/breakdown-card.cjs.js +4 -4
  939. package/dist/domains/metrics/components/breakdown-card.es.js +4 -4
  940. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  941. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  942. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  943. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  944. package/dist/domains/metrics/components/chart-card-error.cjs.js +2 -2
  945. package/dist/domains/metrics/components/chart-card-error.es.js +2 -2
  946. package/dist/domains/metrics/components/chart-card.cjs.js +21 -5
  947. package/dist/domains/metrics/components/chart-card.cjs.js.map +1 -1
  948. package/dist/domains/metrics/components/chart-card.es.js +21 -5
  949. package/dist/domains/metrics/components/chart-card.es.js.map +1 -1
  950. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  951. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  952. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +5 -5
  953. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +5 -5
  954. package/dist/domains/metrics/components/failure-rate-card.cjs.js +7 -7
  955. package/dist/domains/metrics/components/failure-rate-card.es.js +7 -7
  956. package/dist/domains/metrics/components/kpi-card.cjs.js +1 -1
  957. package/dist/domains/metrics/components/kpi-card.cjs.js.map +1 -1
  958. package/dist/domains/metrics/components/kpi-card.es.js +1 -1
  959. package/dist/domains/metrics/components/kpi-card.es.js.map +1 -1
  960. package/dist/domains/metrics/components/latency-card.cjs.js +7 -7
  961. package/dist/domains/metrics/components/latency-card.es.js +7 -7
  962. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +2 -2
  963. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +2 -2
  964. package/dist/domains/metrics/components/scores-card.cjs.js +4 -4
  965. package/dist/domains/metrics/components/scores-card.es.js +4 -4
  966. package/dist/domains/metrics/components/token-usage-card.cjs.js +8 -8
  967. package/dist/domains/metrics/components/token-usage-card.es.js +8 -8
  968. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
  969. package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
  970. package/dist/domains/metrics/components/trace-volume-card.cjs.js +4 -4
  971. package/dist/domains/metrics/components/trace-volume-card.es.js +4 -4
  972. package/dist/domains/metrics/components/usage-card.cjs.js +5 -5
  973. package/dist/domains/metrics/components/usage-card.es.js +5 -5
  974. package/dist/domains/metrics/components.cjs.js +9 -9
  975. package/dist/domains/metrics/components.es.js +9 -9
  976. package/dist/domains/metrics/drilldown.cjs.js +1 -1
  977. package/dist/domains/metrics/drilldown.es.js +1 -1
  978. package/dist/domains/metrics/hooks/use-metrics-activity.cjs.js +1 -1
  979. package/dist/domains/metrics/hooks/use-metrics-activity.es.js +1 -1
  980. package/dist/domains/metrics/hooks/use-metrics-latency.cjs.js +1 -1
  981. package/dist/domains/metrics/hooks/use-metrics-latency.es.js +1 -1
  982. package/dist/domains/metrics/hooks/use-metrics-scores.cjs.js +1 -1
  983. package/dist/domains/metrics/hooks/use-metrics-scores.es.js +1 -1
  984. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.cjs.js +2 -2
  985. package/dist/domains/metrics/hooks/use-metrics-span-aggregate.es.js +2 -2
  986. package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.cjs.js +1 -1
  987. package/dist/domains/metrics/hooks/use-metrics-trace-aggregate.es.js +1 -1
  988. package/dist/domains/metrics/hooks/use-metrics.cjs.js +1 -1
  989. package/dist/domains/metrics/hooks/use-metrics.es.js +1 -1
  990. package/dist/domains/metrics/hooks.cjs.js +5 -5
  991. package/dist/domains/metrics/hooks.es.js +5 -5
  992. package/dist/domains/metrics/lib/breakdown-table.cjs.js +2 -2
  993. package/dist/domains/metrics/lib/breakdown-table.es.js +2 -2
  994. package/dist/domains/metrics/lib/series-colors.cjs.js +279 -0
  995. package/dist/domains/metrics/lib/series-colors.cjs.js.map +1 -0
  996. package/dist/domains/metrics/lib/series-colors.d.ts +1 -0
  997. package/dist/domains/metrics/lib/series-colors.es.js +272 -0
  998. package/dist/domains/metrics/lib/series-colors.es.js.map +1 -0
  999. package/dist/domains/metrics/lib.cjs.js +9 -3
  1000. package/dist/domains/metrics/lib.es.js +5 -4
  1001. package/dist/domains/metrics.cjs.js +10 -4
  1002. package/dist/domains/metrics.es.js +6 -5
  1003. package/dist/domains/observability/components/observability-capability-gate.cjs.js +3 -3
  1004. package/dist/domains/observability/components/observability-capability-gate.es.js +3 -3
  1005. package/dist/domains/observability/components/observability-histogram.cjs.js +5 -5
  1006. package/dist/domains/observability/components/observability-histogram.cjs.js.map +1 -1
  1007. package/dist/domains/observability/components/observability-histogram.es.js +5 -5
  1008. package/dist/domains/observability/components/observability-histogram.es.js.map +1 -1
  1009. package/dist/domains/observability/components/observability-page-layout.cjs.js +2 -2
  1010. package/dist/domains/observability/components/observability-page-layout.es.js +2 -2
  1011. package/dist/domains/observability/hooks/use-observability-list-filters.cjs.js +3 -3
  1012. package/dist/domains/observability/hooks/use-observability-list-filters.es.js +3 -3
  1013. package/dist/domains/observability/observability-list-url-state.cjs.js +1 -1
  1014. package/dist/domains/observability/observability-list-url-state.es.js +1 -1
  1015. package/dist/domains/observability/saved-view-state.cjs.js +3 -3
  1016. package/dist/domains/observability/saved-view-state.es.js +3 -3
  1017. package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
  1018. package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
  1019. package/dist/domains/observability/saved-views/use-hosted-saved-views.cjs.js +1 -1
  1020. package/dist/domains/observability/saved-views/use-hosted-saved-views.es.js +1 -1
  1021. package/dist/domains/observability/saved-views.cjs.js +2 -2
  1022. package/dist/domains/observability/saved-views.es.js +2 -2
  1023. package/dist/domains/observability.cjs.js +6 -6
  1024. package/dist/domains/observability.es.js +6 -6
  1025. package/dist/domains/review/components/review-status-badge.cjs.js +1 -1
  1026. package/dist/domains/review/components/review-status-badge.es.js +1 -1
  1027. package/dist/domains/scores/components/score-as-item-dialog.cjs.js +1 -1
  1028. package/dist/domains/scores/components/score-as-item-dialog.es.js +1 -1
  1029. package/dist/domains/scores/components/score-data-panel.cjs.js +7 -7
  1030. package/dist/domains/scores/components/score-data-panel.cjs.js.map +1 -1
  1031. package/dist/domains/scores/components/score-data-panel.es.js +7 -7
  1032. package/dist/domains/scores/components/score-data-panel.es.js.map +1 -1
  1033. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  1034. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  1035. package/dist/domains/scores/components/trace-scores-list.cjs.js +5 -5
  1036. package/dist/domains/scores/components/trace-scores-list.es.js +5 -5
  1037. package/dist/domains/scores/components/trace-scores-tab.cjs.js +15 -19
  1038. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  1039. package/dist/domains/scores/components/trace-scores-tab.es.js +15 -19
  1040. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  1041. package/dist/domains/scores/components.cjs.js +1 -1
  1042. package/dist/domains/scores/components.es.js +1 -1
  1043. package/dist/domains/skills/skill-simple-form.cjs.js +4 -4
  1044. package/dist/domains/skills/skill-simple-form.es.js +4 -4
  1045. package/dist/domains/spans/components/spans-explorer-body.cjs.js +6 -6
  1046. package/dist/domains/spans/components/spans-explorer-body.es.js +7 -7
  1047. package/dist/domains/spans/components/spans-filter-bar.cjs.js +3 -3
  1048. package/dist/domains/spans/components/spans-filter-bar.es.js +3 -3
  1049. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +2 -2
  1050. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +2 -2
  1051. package/dist/domains/spans/hooks/use-spans-list-source.cjs.js +1 -1
  1052. package/dist/domains/spans/hooks/use-spans-list-source.es.js +1 -1
  1053. package/dist/domains/spans/hooks.cjs.js +1 -1
  1054. package/dist/domains/spans/hooks.es.js +1 -1
  1055. package/dist/domains/threads/components/threads-explorer-body.cjs.js +6 -6
  1056. package/dist/domains/threads/components/threads-explorer-body.es.js +7 -7
  1057. package/dist/domains/threads/components/threads-filter-bar.cjs.js +3 -3
  1058. package/dist/domains/threads/components/threads-filter-bar.es.js +3 -3
  1059. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +2 -2
  1060. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +2 -2
  1061. package/dist/domains/threads/hooks/use-threads-list-source.cjs.js +1 -1
  1062. package/dist/domains/threads/hooks/use-threads-list-source.es.js +1 -1
  1063. package/dist/domains/threads/hooks.cjs.js +1 -1
  1064. package/dist/domains/threads/hooks.es.js +1 -1
  1065. package/dist/domains/traces/components/columns-menu/columns-menu.cjs.js +1 -1
  1066. package/dist/domains/traces/components/columns-menu/columns-menu.es.js +2 -2
  1067. package/dist/domains/traces/components/feedback-options.cjs.js +0 -0
  1068. package/dist/domains/traces/components/feedback-options.d.ts +1 -0
  1069. package/dist/domains/traces/components/feedback-options.es.js +0 -0
  1070. package/dist/domains/traces/components/feedback-thread.cjs.js +16 -10
  1071. package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
  1072. package/dist/domains/traces/components/feedback-thread.es.js +16 -10
  1073. package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
  1074. package/dist/domains/traces/components/format-trace-thread-messages.cjs.js +1 -1
  1075. package/dist/domains/traces/components/format-trace-thread-messages.es.js +1 -1
  1076. package/dist/domains/traces/components/no-traces-info.cjs.js +2 -2
  1077. package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -1
  1078. package/dist/domains/traces/components/no-traces-info.es.js +2 -2
  1079. package/dist/domains/traces/components/no-traces-info.es.js.map +1 -1
  1080. package/dist/domains/traces/components/shared.cjs.js +3 -3
  1081. package/dist/domains/traces/components/shared.es.js +3 -3
  1082. package/dist/domains/traces/components/span-data-panel-view.cjs.js +23 -23
  1083. package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -1
  1084. package/dist/domains/traces/components/span-data-panel-view.es.js +23 -23
  1085. package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -1
  1086. package/dist/domains/traces/components/span-details-view.cjs.js +3 -3
  1087. package/dist/domains/traces/components/span-details-view.es.js +3 -3
  1088. package/dist/domains/traces/components/span-feedback-tab.cjs.js +8 -5
  1089. package/dist/domains/traces/components/span-feedback-tab.cjs.js.map +1 -1
  1090. package/dist/domains/traces/components/span-feedback-tab.es.js +8 -5
  1091. package/dist/domains/traces/components/span-feedback-tab.es.js.map +1 -1
  1092. package/dist/domains/traces/components/span-outcome.cjs.js +1 -1
  1093. package/dist/domains/traces/components/span-outcome.es.js +1 -1
  1094. package/dist/domains/traces/components/span-outcome.utils.cjs.js +3 -3
  1095. package/dist/domains/traces/components/span-outcome.utils.cjs.js.map +1 -1
  1096. package/dist/domains/traces/components/span-outcome.utils.es.js +3 -3
  1097. package/dist/domains/traces/components/span-outcome.utils.es.js.map +1 -1
  1098. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +5 -5
  1099. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +5 -5
  1100. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +4 -4
  1101. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +4 -4
  1102. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +7 -7
  1103. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +7 -7
  1104. package/dist/domains/traces/components/span-payload/span-payload-attachment.cjs.js +1 -1
  1105. package/dist/domains/traces/components/span-payload/span-payload-attachment.es.js +1 -1
  1106. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +2 -2
  1107. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +2 -2
  1108. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +14 -9
  1109. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js.map +1 -1
  1110. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +14 -9
  1111. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js.map +1 -1
  1112. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  1113. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  1114. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +3 -3
  1115. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +3 -3
  1116. package/dist/domains/traces/components/span-payload/span-payload-registry.cjs.js +1 -1
  1117. package/dist/domains/traces/components/span-payload/span-payload-registry.es.js +1 -1
  1118. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +7 -7
  1119. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +7 -7
  1120. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  1121. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  1122. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  1123. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  1124. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +3 -3
  1125. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +3 -3
  1126. package/dist/domains/traces/components/span-payload/span-signal-details.cjs.js +4 -4
  1127. package/dist/domains/traces/components/span-payload/span-signal-details.es.js +4 -4
  1128. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +6 -6
  1129. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +6 -6
  1130. package/dist/domains/traces/components/span-payload.cjs.js +4 -4
  1131. package/dist/domains/traces/components/span-payload.es.js +4 -4
  1132. package/dist/domains/traces/components/span-prompt-changes.cjs.js +17 -10
  1133. package/dist/domains/traces/components/span-prompt-changes.cjs.js.map +1 -1
  1134. package/dist/domains/traces/components/span-prompt-changes.es.js +17 -10
  1135. package/dist/domains/traces/components/span-prompt-changes.es.js.map +1 -1
  1136. package/dist/domains/traces/components/span-rows.cjs.js +1 -1
  1137. package/dist/domains/traces/components/span-rows.es.js +1 -1
  1138. package/dist/domains/traces/components/span-summary-description.cjs.js +3 -3
  1139. package/dist/domains/traces/components/span-summary-description.es.js +3 -3
  1140. package/dist/domains/traces/components/span-timeline-row.cjs.js +10 -10
  1141. package/dist/domains/traces/components/span-timeline-row.es.js +10 -10
  1142. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +3 -3
  1143. package/dist/domains/traces/components/span-timing-hover-card.es.js +3 -3
  1144. package/dist/domains/traces/components/span-token-usage.cjs.js +2 -2
  1145. package/dist/domains/traces/components/span-token-usage.es.js +2 -2
  1146. package/dist/domains/traces/components/span-token-usage.utils.cjs.js +2 -2
  1147. package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -1
  1148. package/dist/domains/traces/components/span-token-usage.utils.es.js +2 -2
  1149. package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -1
  1150. package/dist/domains/traces/components/span-type-badge.cjs.js +1 -1
  1151. package/dist/domains/traces/components/span-type-badge.es.js +1 -1
  1152. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +3 -3
  1153. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +3 -3
  1154. package/dist/domains/traces/components/thread-trace/thread-trace-list.cjs.js +2 -2
  1155. package/dist/domains/traces/components/thread-trace/thread-trace-list.es.js +2 -2
  1156. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  1157. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  1158. package/dist/domains/traces/components/thread-trace/thread-trace-root.cjs.js +3 -3
  1159. package/dist/domains/traces/components/thread-trace/thread-trace-root.es.js +3 -3
  1160. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +5 -5
  1161. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +5 -5
  1162. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.cjs.js +1 -1
  1163. package/dist/domains/traces/components/thread-trace/thread-trace-span-panel.es.js +1 -1
  1164. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +6 -6
  1165. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +6 -6
  1166. package/dist/domains/traces/components/thread-trace.cjs.js +3 -3
  1167. package/dist/domains/traces/components/thread-trace.es.js +3 -3
  1168. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +12 -10
  1169. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  1170. package/dist/domains/traces/components/thread-view-by-trace.es.js +12 -10
  1171. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  1172. package/dist/domains/traces/components/thread-view-skeleton.cjs.js +5 -5
  1173. package/dist/domains/traces/components/thread-view-skeleton.es.js +5 -5
  1174. package/dist/domains/traces/components/timeline-name-col.cjs.js +6 -6
  1175. package/dist/domains/traces/components/timeline-name-col.es.js +6 -6
  1176. package/dist/domains/traces/components/timeline-timing-col.cjs.js +4 -4
  1177. package/dist/domains/traces/components/timeline-timing-col.es.js +4 -4
  1178. package/dist/domains/traces/components/trace-columns-menu.cjs.js +5 -5
  1179. package/dist/domains/traces/components/trace-columns-menu.es.js +5 -5
  1180. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +13 -13
  1181. package/dist/domains/traces/components/trace-data-panel-view.es.js +13 -13
  1182. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -2
  1183. package/dist/domains/traces/components/trace-data-panel.es.js +2 -2
  1184. package/dist/domains/traces/components/trace-details-view.cjs.js +3 -3
  1185. package/dist/domains/traces/components/trace-details-view.es.js +3 -3
  1186. package/dist/domains/traces/components/trace-error-cell.cjs.js +2 -2
  1187. package/dist/domains/traces/components/trace-error-cell.es.js +2 -2
  1188. package/dist/domains/traces/components/trace-error-summary.cjs.js +2 -2
  1189. package/dist/domains/traces/components/trace-error-summary.es.js +2 -2
  1190. package/dist/domains/traces/components/trace-feedback-tab.cjs.js +9 -4
  1191. package/dist/domains/traces/components/trace-feedback-tab.cjs.js.map +1 -1
  1192. package/dist/domains/traces/components/trace-feedback-tab.es.js +9 -4
  1193. package/dist/domains/traces/components/trace-feedback-tab.es.js.map +1 -1
  1194. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  1195. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  1196. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  1197. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  1198. package/dist/domains/traces/components/trace-messages-skeleton.cjs.js +1 -1
  1199. package/dist/domains/traces/components/trace-messages-skeleton.es.js +1 -1
  1200. package/dist/domains/traces/components/trace-span-panel.cjs.js +5 -4
  1201. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  1202. package/dist/domains/traces/components/trace-span-panel.es.js +5 -4
  1203. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  1204. package/dist/domains/traces/components/trace-span-timeline-markers.cjs.js +6 -6
  1205. package/dist/domains/traces/components/trace-span-timeline-markers.es.js +6 -6
  1206. package/dist/domains/traces/components/trace-span-timeline.cjs.js +5 -5
  1207. package/dist/domains/traces/components/trace-span-timeline.es.js +5 -5
  1208. package/dist/domains/traces/components/trace-span-tree-skeleton.cjs.js +2 -2
  1209. package/dist/domains/traces/components/trace-span-tree-skeleton.es.js +2 -2
  1210. package/dist/domains/traces/components/trace-span-tree.cjs.js +2 -2
  1211. package/dist/domains/traces/components/trace-span-tree.es.js +2 -2
  1212. package/dist/domains/traces/components/trace-status-value.cjs.js +1 -1
  1213. package/dist/domains/traces/components/trace-status-value.es.js +1 -1
  1214. package/dist/domains/traces/components/trace-summary-description.cjs.js +5 -5
  1215. package/dist/domains/traces/components/trace-summary-description.es.js +5 -5
  1216. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +5 -5
  1217. package/dist/domains/traces/components/trace-thread-item-view.es.js +5 -5
  1218. package/dist/domains/traces/components/trace-thread-panel.cjs.js +3 -2
  1219. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  1220. package/dist/domains/traces/components/trace-thread-panel.es.js +3 -2
  1221. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  1222. package/dist/domains/traces/components/trace-timeline.cjs.js +1 -1
  1223. package/dist/domains/traces/components/trace-timeline.es.js +1 -1
  1224. package/dist/domains/traces/components/traces-error-content.cjs.js +2 -2
  1225. package/dist/domains/traces/components/traces-error-content.es.js +2 -2
  1226. package/dist/domains/traces/components/traces-explorer/traces-explorer-body.cjs.js +2 -2
  1227. package/dist/domains/traces/components/traces-explorer/traces-explorer-body.es.js +2 -2
  1228. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.cjs.js +1 -1
  1229. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-menu.es.js +1 -1
  1230. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.cjs.js +1 -1
  1231. package/dist/domains/traces/components/traces-explorer/traces-explorer-columns-provider.es.js +1 -1
  1232. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
  1233. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
  1234. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
  1235. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
  1236. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.cjs.js +1 -1
  1237. package/dist/domains/traces/components/traces-explorer/traces-explorer-histogram.es.js +1 -1
  1238. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.cjs.js +2 -2
  1239. package/dist/domains/traces/components/traces-explorer/traces-explorer-layout.es.js +2 -2
  1240. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +2 -2
  1241. package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +2 -2
  1242. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.cjs.js +1 -1
  1243. package/dist/domains/traces/components/traces-explorer/traces-explorer-list.es.js +1 -1
  1244. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +14 -9
  1245. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
  1246. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +14 -9
  1247. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
  1248. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +16 -3
  1249. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
  1250. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +17 -4
  1251. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
  1252. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
  1253. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
  1254. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +2 -2
  1255. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +2 -2
  1256. package/dist/domains/traces/components/traces-explorer.cjs.js +4 -4
  1257. package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
  1258. package/dist/domains/traces/components/traces-explorer.es.js +4 -4
  1259. package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
  1260. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +2 -2
  1261. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +2 -2
  1262. package/dist/domains/traces/components/traces-list-view.cjs.js +10 -10
  1263. package/dist/domains/traces/components/traces-list-view.es.js +10 -10
  1264. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +2 -2
  1265. package/dist/domains/traces/components/traces-page-skeleton.es.js +2 -2
  1266. package/dist/domains/traces/components/traces-spans-switch.cjs.js +3 -3
  1267. package/dist/domains/traces/components/traces-spans-switch.es.js +3 -3
  1268. package/dist/domains/traces/components.cjs.js +15 -15
  1269. package/dist/domains/traces/components.es.js +15 -15
  1270. package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +1 -1
  1271. package/dist/domains/traces/hooks/use-download-trace-json.es.js +1 -1
  1272. package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +1 -1
  1273. package/dist/domains/traces/hooks/use-traces-list-source.es.js +1 -1
  1274. package/dist/domains/traces/hooks.cjs.js +4 -4
  1275. package/dist/domains/traces/hooks.es.js +4 -4
  1276. package/dist/domains/traces/utils/span-utils.cjs.js +2 -2
  1277. package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -1
  1278. package/dist/domains/traces/utils/span-utils.es.js +2 -2
  1279. package/dist/domains/traces/utils/span-utils.es.js.map +1 -1
  1280. package/dist/domains/traces/utils.cjs.js +2 -2
  1281. package/dist/domains/traces/utils.es.js +2 -2
  1282. package/dist/domains/traces.cjs.js +2 -2
  1283. package/dist/domains/traces.es.js +2 -2
  1284. package/dist/domains/workflows/components/workflow-combobox.cjs.js +4 -3
  1285. package/dist/domains/workflows/components/workflow-combobox.cjs.js.map +1 -1
  1286. package/dist/domains/workflows/components/workflow-combobox.es.js +4 -3
  1287. package/dist/domains/workflows/components/workflow-combobox.es.js.map +1 -1
  1288. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +6 -6
  1289. package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
  1290. package/dist/domains/workflows/components/workflow-entity-header.es.js +6 -6
  1291. package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
  1292. package/dist/domains/workflows/components/workflow-information.cjs.js +10 -10
  1293. package/dist/domains/workflows/components/workflow-information.es.js +10 -10
  1294. package/dist/domains/workflows/components/workflow-layout.cjs.js +3 -3
  1295. package/dist/domains/workflows/components/workflow-layout.es.js +2 -2
  1296. package/dist/domains/workflows/components/workflow-run-status-icon.cjs.js +3 -3
  1297. package/dist/domains/workflows/components/workflow-run-status-icon.es.js +3 -3
  1298. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +4 -4
  1299. package/dist/domains/workflows/components/workflow-step-detail.es.js +4 -4
  1300. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +2 -2
  1301. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +2 -2
  1302. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +11 -11
  1303. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +11 -11
  1304. package/dist/domains/workflows/context/playground-workflow-run-provider.cjs.js +1 -1
  1305. package/dist/domains/workflows/context/playground-workflow-run-provider.es.js +1 -1
  1306. package/dist/domains/workflows/context/use-stream-for-run.cjs.js +1 -1
  1307. package/dist/domains/workflows/context/use-stream-for-run.es.js +1 -1
  1308. package/dist/domains/workflows/context/workflow-run-provider.cjs.js +1 -1
  1309. package/dist/domains/workflows/context/workflow-run-provider.es.js +1 -1
  1310. package/dist/domains/workflows/runs/workflow-run-details.cjs.js +2 -2
  1311. package/dist/domains/workflows/runs/workflow-run-details.es.js +2 -2
  1312. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +26 -21
  1313. package/dist/domains/workflows/runs/workflow-run-list.cjs.js.map +1 -1
  1314. package/dist/domains/workflows/runs/workflow-run-list.es.js +26 -21
  1315. package/dist/domains/workflows/runs/workflow-run-list.es.js.map +1 -1
  1316. package/dist/domains/workflows/workflow/data/use-workflow-data.cjs.js +1 -1
  1317. package/dist/domains/workflows/workflow/data/use-workflow-data.es.js +1 -1
  1318. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  1319. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  1320. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +5 -5
  1321. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +5 -5
  1322. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  1323. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  1324. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +8 -8
  1325. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js.map +1 -1
  1326. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +8 -8
  1327. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js.map +1 -1
  1328. package/dist/domains/workflows/workflow/use-workflow-graph-nodes.cjs.js +1 -1
  1329. package/dist/domains/workflows/workflow/use-workflow-graph-nodes.es.js +1 -1
  1330. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  1331. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  1332. package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
  1333. package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
  1334. package/dist/domains/workflows/workflow/utils.cjs.js +2 -2
  1335. package/dist/domains/workflows/workflow/utils.es.js +2 -2
  1336. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  1337. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  1338. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  1339. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  1340. package/dist/domains/workflows/workflow/workflow-card.cjs.js +1 -1
  1341. package/dist/domains/workflows/workflow/workflow-card.es.js +1 -1
  1342. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  1343. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  1344. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  1345. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  1346. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  1347. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  1348. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +6 -6
  1349. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +6 -6
  1350. package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js +1 -1
  1351. package/dist/domains/workflows/workflow/workflow-graph-groups.cjs.js.map +1 -1
  1352. package/dist/domains/workflows/workflow/workflow-graph-groups.es.js +1 -1
  1353. package/dist/domains/workflows/workflow/workflow-graph-groups.es.js.map +1 -1
  1354. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +4 -4
  1355. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +4 -4
  1356. package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
  1357. package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
  1358. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  1359. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  1360. package/dist/domains/workflows/workflow/workflow-graph.cjs.js +2 -2
  1361. package/dist/domains/workflows/workflow/workflow-graph.es.js +2 -2
  1362. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +6 -6
  1363. package/dist/domains/workflows/workflow/workflow-input-data.es.js +6 -6
  1364. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +2 -2
  1365. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
  1366. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  1367. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  1368. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
  1369. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
  1370. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +4 -4
  1371. package/dist/domains/workflows/workflow/workflow-run-data.es.js +4 -4
  1372. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  1373. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  1374. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +6 -6
  1375. package/dist/domains/workflows/workflow/workflow-run-header.es.js +6 -6
  1376. package/dist/domains/workflows/workflow/workflow-status.cjs.js +7 -7
  1377. package/dist/domains/workflows/workflow/workflow-status.es.js +7 -7
  1378. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +2 -2
  1379. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +2 -2
  1380. package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
  1381. package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
  1382. package/dist/domains/workflows/workflow/workflow-steps-status.cjs.js +1 -1
  1383. package/dist/domains/workflows/workflow/workflow-steps-status.es.js +1 -1
  1384. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +10 -10
  1385. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +10 -10
  1386. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +12 -12
  1387. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +12 -12
  1388. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +4 -4
  1389. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +4 -4
  1390. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +9 -9
  1391. package/dist/domains/workflows/workflow/workflow-timeline.es.js +9 -9
  1392. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +2 -2
  1393. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +2 -2
  1394. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +3 -3
  1395. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +3 -3
  1396. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +5 -5
  1397. package/dist/domains/workflows/workflow/workflow-trigger.es.js +5 -5
  1398. package/dist/domains/workflows.cjs.js +4 -4
  1399. package/dist/domains/workflows.es.js +4 -4
  1400. package/dist/domains/workspace/components/mount-icon.cjs.js +1 -1
  1401. package/dist/domains/workspace/components/mount-icon.es.js +1 -1
  1402. package/dist/domains/workspace/components/workspace-active-file.cjs.js +4 -4
  1403. package/dist/domains/workspace/components/workspace-active-file.es.js +4 -4
  1404. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +10 -10
  1405. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +10 -10
  1406. package/dist/domains/workspace/components/workspace-add-skill.cjs.js +1 -1
  1407. package/dist/domains/workspace/components/workspace-add-skill.es.js +1 -1
  1408. package/dist/domains/workspace/components/workspace-context.cjs.js +1 -1
  1409. package/dist/domains/workspace/components/workspace-context.es.js +1 -1
  1410. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +4 -4
  1411. package/dist/domains/workspace/components/workspace-create-directory.es.js +4 -4
  1412. package/dist/domains/workspace/components/workspace-error.cjs.js +1 -1
  1413. package/dist/domains/workspace/components/workspace-error.es.js +1 -1
  1414. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +2 -2
  1415. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +2 -2
  1416. package/dist/domains/workspace/components/workspace-parts.cjs.js +5 -5
  1417. package/dist/domains/workspace/components/workspace-parts.es.js +5 -5
  1418. package/dist/domains/workspace/components/workspace-search.cjs.js +17 -20
  1419. package/dist/domains/workspace/components/workspace-search.cjs.js.map +1 -1
  1420. package/dist/domains/workspace/components/workspace-search.es.js +18 -21
  1421. package/dist/domains/workspace/components/workspace-search.es.js.map +1 -1
  1422. package/dist/domains/workspace/components/workspace-tree-view.cjs.js +1 -1
  1423. package/dist/domains/workspace/components/workspace-tree-view.es.js +1 -1
  1424. package/dist/domains/workspace/components/workspace-tree.cjs.js +11 -11
  1425. package/dist/domains/workspace/components/workspace-tree.cjs.js.map +1 -1
  1426. package/dist/domains/workspace/components/workspace-tree.es.js +11 -11
  1427. package/dist/domains/workspace/components/workspace-tree.es.js.map +1 -1
  1428. package/dist/domains/workspace/components/workspace.cjs.js +1 -1
  1429. package/dist/domains/workspace/components/workspace.es.js +1 -1
  1430. package/dist/domains/workspace.cjs.js +3 -3
  1431. package/dist/domains/workspace.es.js +3 -3
  1432. package/dist/dropdown-menu-D3D8USIY.cjs +249 -0
  1433. package/dist/dropdown-menu-D3D8USIY.cjs.map +1 -0
  1434. package/dist/dropdown-menu-jsf9D-J_.js +242 -0
  1435. package/dist/dropdown-menu-jsf9D-J_.js.map +1 -0
  1436. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +4 -4
  1437. package/dist/ee/signals/components/entity-index-compact-grid.es.js +4 -4
  1438. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -1
  1439. package/dist/ee/signals/components/entity-index-list.es.js +1 -1
  1440. package/dist/ee/signals/components/entity-index-status.cjs.js +2 -2
  1441. package/dist/ee/signals/components/entity-index-status.es.js +2 -2
  1442. package/dist/ee/signals/components/signals-empty-state.cjs.js +12 -21
  1443. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  1444. package/dist/ee/signals/components/signals-empty-state.es.js +12 -21
  1445. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  1446. package/dist/ee/signals/components/trace-intelligence-entity-detail.cjs.js +5 -5
  1447. package/dist/ee/signals/components/trace-intelligence-entity-detail.es.js +5 -5
  1448. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +13 -13
  1449. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +14 -14
  1450. package/dist/ee/signals/examples-pager.cjs.js +2 -2
  1451. package/dist/ee/signals/examples-pager.es.js +2 -2
  1452. package/dist/ee/signals/flow-card.cjs.js +4 -4
  1453. package/dist/ee/signals/flow-card.es.js +4 -4
  1454. package/dist/ee/signals/lifeline-point.cjs.js +2 -2
  1455. package/dist/ee/signals/lifeline-point.es.js +2 -2
  1456. package/dist/ee/signals/lifeline-row.cjs.js +6 -6
  1457. package/dist/ee/signals/lifeline-row.cjs.js.map +1 -1
  1458. package/dist/ee/signals/lifeline-row.es.js +6 -6
  1459. package/dist/ee/signals/lifeline-row.es.js.map +1 -1
  1460. package/dist/ee/signals/noise-detail-panel.cjs.js +6 -6
  1461. package/dist/ee/signals/noise-detail-panel.es.js +6 -6
  1462. package/dist/ee/signals/sankey-signals-data.cjs.js +9 -5
  1463. package/dist/ee/signals/sankey-signals-data.cjs.js.map +1 -1
  1464. package/dist/ee/signals/sankey-signals-data.es.js +9 -5
  1465. package/dist/ee/signals/sankey-signals-data.es.js.map +1 -1
  1466. package/dist/ee/signals/sankey-signals.cjs.js +21 -12
  1467. package/dist/ee/signals/sankey-signals.cjs.js.map +1 -1
  1468. package/dist/ee/signals/sankey-signals.es.js +21 -12
  1469. package/dist/ee/signals/sankey-signals.es.js.map +1 -1
  1470. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +4 -4
  1471. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +4 -4
  1472. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +7 -7
  1473. package/dist/ee/signals/settings/trace-signal-settings.es.js +7 -7
  1474. package/dist/ee/signals/signal-delta-column.cjs.js +3 -3
  1475. package/dist/ee/signals/signal-delta-column.es.js +3 -3
  1476. package/dist/ee/signals/signal-lifelines.cjs.js +5 -5
  1477. package/dist/ee/signals/signal-lifelines.es.js +5 -5
  1478. package/dist/ee/signals/signals-error-state.cjs.js +2 -2
  1479. package/dist/ee/signals/signals-error-state.es.js +2 -2
  1480. package/dist/ee/signals/snapshot-summary.cjs.js +15 -0
  1481. package/dist/ee/signals/snapshot-summary.cjs.js.map +1 -0
  1482. package/dist/ee/signals/snapshot-summary.d.ts +1 -0
  1483. package/dist/ee/signals/snapshot-summary.es.js +14 -0
  1484. package/dist/ee/signals/snapshot-summary.es.js.map +1 -0
  1485. package/dist/ee/signals/snapshot-timeline.cjs.js +4 -4
  1486. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  1487. package/dist/ee/signals/snapshot-timeline.es.js +4 -4
  1488. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  1489. package/dist/ee/signals/sortable-signal-headers.cjs.js +6 -6
  1490. package/dist/ee/signals/sortable-signal-headers.es.js +6 -6
  1491. package/dist/ee/signals/theme-compare.cjs.js +15 -7
  1492. package/dist/ee/signals/theme-compare.cjs.js.map +1 -1
  1493. package/dist/ee/signals/theme-compare.es.js +15 -7
  1494. package/dist/ee/signals/theme-compare.es.js.map +1 -1
  1495. package/dist/ee/signals/theme-detail-panel.cjs.js +13 -17
  1496. package/dist/ee/signals/theme-detail-panel.cjs.js.map +1 -1
  1497. package/dist/ee/signals/theme-detail-panel.es.js +13 -17
  1498. package/dist/ee/signals/theme-detail-panel.es.js.map +1 -1
  1499. package/dist/ee/signals/theme-filter-banner.cjs.js +7 -7
  1500. package/dist/ee/signals/theme-filter-banner.cjs.js.map +1 -1
  1501. package/dist/ee/signals/theme-filter-banner.es.js +7 -7
  1502. package/dist/ee/signals/theme-filter-banner.es.js.map +1 -1
  1503. package/dist/ee/signals/theme-lifelines.cjs.js +8 -5
  1504. package/dist/ee/signals/theme-lifelines.cjs.js.map +1 -1
  1505. package/dist/ee/signals/theme-lifelines.es.js +8 -5
  1506. package/dist/ee/signals/theme-lifelines.es.js.map +1 -1
  1507. package/dist/ee/signals/theme-trend-chart.cjs.js +3 -3
  1508. package/dist/ee/signals/theme-trend-chart.cjs.js.map +1 -1
  1509. package/dist/ee/signals/theme-trend-chart.es.js +3 -3
  1510. package/dist/ee/signals/theme-trend-chart.es.js.map +1 -1
  1511. package/dist/ee/signals/trace-insight-view.cjs.js +11 -13
  1512. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  1513. package/dist/ee/signals/trace-insight-view.es.js +11 -13
  1514. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  1515. package/dist/ee/signals/trace-intelligence-explainer.cjs.js +10 -15
  1516. package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
  1517. package/dist/ee/signals/trace-intelligence-explainer.es.js +10 -15
  1518. package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
  1519. package/dist/ee/signals/view-mode-tab.cjs.js +2 -2
  1520. package/dist/ee/signals/view-mode-tab.es.js +2 -2
  1521. package/dist/ee/signals.cjs.js +5 -5
  1522. package/dist/ee/signals.es.js +5 -5
  1523. package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +1 -1
  1524. package/dist/ee/topics/components/topic-trace-details-panel.es.js +1 -1
  1525. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +4 -4
  1526. package/dist/ee/topics/components/topic-trace-summary-list.es.js +4 -4
  1527. package/dist/ee/topics/components/topics-layout.cjs.js +1 -1
  1528. package/dist/ee/topics/components/topics-layout.es.js +1 -1
  1529. package/dist/field-error-id-6ZynvsRO.js +89 -0
  1530. package/dist/field-error-id-6ZynvsRO.js.map +1 -0
  1531. package/dist/field-error-id-VimPQI_b.cjs +100 -0
  1532. package/dist/field-error-id-VimPQI_b.cjs.map +1 -0
  1533. package/dist/filter-bar-chip-DFsbUZ-V.cjs +1545 -0
  1534. package/dist/filter-bar-chip-DFsbUZ-V.cjs.map +1 -0
  1535. package/dist/filter-bar-chip-NBtfDca9.js +1420 -0
  1536. package/dist/filter-bar-chip-NBtfDca9.js.map +1 -0
  1537. package/dist/filter-bar-time-range-CEgdThCy.cjs +83 -0
  1538. package/dist/filter-bar-time-range-CEgdThCy.cjs.map +1 -0
  1539. package/dist/filter-bar-time-range-CHSMbpPd.js +60 -0
  1540. package/dist/filter-bar-time-range-CHSMbpPd.js.map +1 -0
  1541. package/dist/hooks/use-clock.cjs.js +34 -0
  1542. package/dist/hooks/use-clock.cjs.js.map +1 -0
  1543. package/dist/hooks/use-clock.d.ts +1 -0
  1544. package/dist/hooks/use-clock.es.js +33 -0
  1545. package/dist/hooks/use-clock.es.js.map +1 -0
  1546. package/dist/hooks/use-copy-to-clipboard.cjs.js +1 -1
  1547. package/dist/hooks/use-copy-to-clipboard.es.js +1 -1
  1548. package/dist/hooks/use-text-highlight.cjs.js +3 -5
  1549. package/dist/hooks/use-text-highlight.cjs.js.map +1 -1
  1550. package/dist/hooks/use-text-highlight.es.js +1 -3
  1551. package/dist/hooks/use-text-highlight.es.js.map +1 -1
  1552. package/dist/icons/ByteDanceIcon.cjs.js +37 -0
  1553. package/dist/icons/ByteDanceIcon.cjs.js.map +1 -0
  1554. package/dist/icons/ByteDanceIcon.d.ts +1 -0
  1555. package/dist/icons/ByteDanceIcon.es.js +34 -0
  1556. package/dist/icons/ByteDanceIcon.es.js.map +1 -0
  1557. package/dist/icons/CohereBrandIcon.cjs.js +34 -0
  1558. package/dist/icons/CohereBrandIcon.cjs.js.map +1 -0
  1559. package/dist/icons/CohereBrandIcon.d.ts +1 -0
  1560. package/dist/icons/CohereBrandIcon.es.js +31 -0
  1561. package/dist/icons/CohereBrandIcon.es.js.map +1 -0
  1562. package/dist/icons/ConfluenceIcon.cjs.js +18 -0
  1563. package/dist/icons/ConfluenceIcon.cjs.js.map +1 -0
  1564. package/dist/icons/ConfluenceIcon.d.ts +1 -0
  1565. package/dist/icons/ConfluenceIcon.es.js +15 -0
  1566. package/dist/icons/ConfluenceIcon.es.js.map +1 -0
  1567. package/dist/icons/FireworksIcon.cjs.js +22 -0
  1568. package/dist/icons/FireworksIcon.cjs.js.map +1 -0
  1569. package/dist/icons/FireworksIcon.d.ts +1 -0
  1570. package/dist/icons/FireworksIcon.es.js +19 -0
  1571. package/dist/icons/FireworksIcon.es.js.map +1 -0
  1572. package/dist/icons/Icon.cjs.js +1 -1
  1573. package/dist/icons/Icon.es.js +1 -1
  1574. package/dist/icons/LongCatIcon.cjs.js +22 -0
  1575. package/dist/icons/LongCatIcon.cjs.js.map +1 -0
  1576. package/dist/icons/LongCatIcon.d.ts +1 -0
  1577. package/dist/icons/LongCatIcon.es.js +19 -0
  1578. package/dist/icons/LongCatIcon.es.js.map +1 -0
  1579. package/dist/icons/MicrosoftIcon.cjs.js +34 -0
  1580. package/dist/icons/MicrosoftIcon.cjs.js.map +1 -0
  1581. package/dist/icons/MicrosoftIcon.d.ts +1 -0
  1582. package/dist/icons/MicrosoftIcon.es.js +31 -0
  1583. package/dist/icons/MicrosoftIcon.es.js.map +1 -0
  1584. package/dist/icons/MorphIcon.cjs.js +20 -0
  1585. package/dist/icons/MorphIcon.cjs.js.map +1 -0
  1586. package/dist/icons/MorphIcon.d.ts +1 -0
  1587. package/dist/icons/MorphIcon.es.js +17 -0
  1588. package/dist/icons/MorphIcon.es.js.map +1 -0
  1589. package/dist/icons/NotionIcon.cjs.js +18 -0
  1590. package/dist/icons/NotionIcon.cjs.js.map +1 -0
  1591. package/dist/icons/NotionIcon.d.ts +1 -0
  1592. package/dist/icons/NotionIcon.es.js +15 -0
  1593. package/dist/icons/NotionIcon.es.js.map +1 -0
  1594. package/dist/icons/NousResearchIcon.cjs.js +19 -0
  1595. package/dist/icons/NousResearchIcon.cjs.js.map +1 -0
  1596. package/dist/icons/NousResearchIcon.d.ts +1 -0
  1597. package/dist/icons/NousResearchIcon.es.js +16 -0
  1598. package/dist/icons/NousResearchIcon.es.js.map +1 -0
  1599. package/dist/icons/NovaIcon.cjs.js +41 -0
  1600. package/dist/icons/NovaIcon.cjs.js.map +1 -0
  1601. package/dist/icons/NovaIcon.d.ts +1 -0
  1602. package/dist/icons/NovaIcon.es.js +38 -0
  1603. package/dist/icons/NovaIcon.es.js.map +1 -0
  1604. package/dist/icons/PerplexityIcon.cjs.js +21 -0
  1605. package/dist/icons/PerplexityIcon.cjs.js.map +1 -0
  1606. package/dist/icons/PerplexityIcon.d.ts +1 -0
  1607. package/dist/icons/PerplexityIcon.es.js +18 -0
  1608. package/dist/icons/PerplexityIcon.es.js.map +1 -0
  1609. package/dist/icons/SakanaIcon.cjs.js +20 -0
  1610. package/dist/icons/SakanaIcon.cjs.js.map +1 -0
  1611. package/dist/icons/SakanaIcon.d.ts +1 -0
  1612. package/dist/icons/SakanaIcon.es.js +17 -0
  1613. package/dist/icons/SakanaIcon.es.js.map +1 -0
  1614. package/dist/icons/StepFunIcon.cjs.js +35 -0
  1615. package/dist/icons/StepFunIcon.cjs.js.map +1 -0
  1616. package/dist/icons/StepFunIcon.d.ts +1 -0
  1617. package/dist/icons/StepFunIcon.es.js +32 -0
  1618. package/dist/icons/StepFunIcon.es.js.map +1 -0
  1619. package/dist/icons/TencentIcon.cjs.js +21 -0
  1620. package/dist/icons/TencentIcon.cjs.js.map +1 -0
  1621. package/dist/icons/TencentIcon.d.ts +1 -0
  1622. package/dist/icons/TencentIcon.es.js +18 -0
  1623. package/dist/icons/TencentIcon.es.js.map +1 -0
  1624. package/dist/icons/UpstageIcon.cjs.js +36 -0
  1625. package/dist/icons/UpstageIcon.cjs.js.map +1 -0
  1626. package/dist/icons/UpstageIcon.d.ts +1 -0
  1627. package/dist/icons/UpstageIcon.es.js +33 -0
  1628. package/dist/icons/UpstageIcon.es.js.map +1 -0
  1629. package/dist/icons/ZendeskIcon.cjs.js +18 -0
  1630. package/dist/icons/ZendeskIcon.cjs.js.map +1 -0
  1631. package/dist/icons/ZendeskIcon.d.ts +1 -0
  1632. package/dist/icons/ZendeskIcon.es.js +15 -0
  1633. package/dist/icons/ZendeskIcon.es.js.map +1 -0
  1634. package/dist/input-BpnUsQSt.cjs +55 -0
  1635. package/dist/input-BpnUsQSt.cjs.map +1 -0
  1636. package/dist/input-Cyit5ZSc.js +48 -0
  1637. package/dist/input-Cyit5ZSc.js.map +1 -0
  1638. package/dist/input-group-DBCilXjT.cjs +169 -0
  1639. package/dist/input-group-DBCilXjT.cjs.map +1 -0
  1640. package/dist/input-group-NV4ZzKOk.js +120 -0
  1641. package/dist/input-group-NV4ZzKOk.js.map +1 -0
  1642. package/dist/layout/tabbed-container.cjs.js +1 -1
  1643. package/dist/layout/tabbed-container.es.js +1 -1
  1644. package/dist/lib/form/auto-form.cjs.js +1 -1
  1645. package/dist/lib/form/auto-form.es.js +1 -1
  1646. package/dist/lib/form/components/array-element-wrapper.cjs.js +4 -4
  1647. package/dist/lib/form/components/array-element-wrapper.es.js +4 -4
  1648. package/dist/lib/form/components/array-wrapper.cjs.js +2 -2
  1649. package/dist/lib/form/components/array-wrapper.es.js +2 -2
  1650. package/dist/lib/form/components/boolean-field.cjs.js +1 -1
  1651. package/dist/lib/form/components/boolean-field.es.js +1 -1
  1652. package/dist/lib/form/components/date-field.cjs.js +5 -5
  1653. package/dist/lib/form/components/date-field.es.js +5 -5
  1654. package/dist/lib/form/components/error-message.cjs.js +1 -1
  1655. package/dist/lib/form/components/error-message.es.js +1 -1
  1656. package/dist/lib/form/components/form-submit-row.cjs.js +2 -2
  1657. package/dist/lib/form/components/form-submit-row.es.js +2 -2
  1658. package/dist/lib/form/components/number-field.cjs.js +1 -1
  1659. package/dist/lib/form/components/number-field.es.js +1 -1
  1660. package/dist/lib/form/components/object-wrapper.cjs.js +3 -3
  1661. package/dist/lib/form/components/object-wrapper.es.js +3 -3
  1662. package/dist/lib/form/components/record-field.cjs.js +2 -2
  1663. package/dist/lib/form/components/record-field.es.js +2 -2
  1664. package/dist/lib/form/components/select-field.cjs.js +1 -1
  1665. package/dist/lib/form/components/select-field.es.js +1 -1
  1666. package/dist/lib/form/components/string-field.cjs.js +1 -1
  1667. package/dist/lib/form/components/string-field.es.js +1 -1
  1668. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  1669. package/dist/lib/form/components/submit-button.es.js +1 -1
  1670. package/dist/lib/form/components/union-field.cjs.js +1 -1
  1671. package/dist/lib/form/components/union-field.es.js +1 -1
  1672. package/dist/lib/form/dynamic-form.cjs.js +2 -2
  1673. package/dist/lib/form/dynamic-form.es.js +2 -2
  1674. package/dist/list-search-DUcIMJTk.js +45 -0
  1675. package/dist/list-search-DUcIMJTk.js.map +1 -0
  1676. package/dist/list-search-yF02rvZt.cjs +50 -0
  1677. package/dist/list-search-yF02rvZt.cjs.map +1 -0
  1678. package/dist/new/layout/page-header.cjs.js +1 -1
  1679. package/dist/new/layout/page-header.es.js +1 -1
  1680. package/dist/new/settings.cjs.js +1 -1
  1681. package/dist/new/settings.es.js +1 -1
  1682. package/dist/observability-saved-views-UM8HBJ6J.cjs +304 -0
  1683. package/dist/observability-saved-views-UM8HBJ6J.cjs.map +1 -0
  1684. package/dist/observability-saved-views-lLWk1w0g.js +299 -0
  1685. package/dist/observability-saved-views-lLWk1w0g.js.map +1 -0
  1686. package/dist/page-header-Maytcmgh.js +120 -0
  1687. package/dist/page-header-Maytcmgh.js.map +1 -0
  1688. package/dist/page-header-pZCts_WC.cjs +125 -0
  1689. package/dist/page-header-pZCts_WC.cjs.map +1 -0
  1690. package/dist/popover-BpMi52Tb.js +94 -0
  1691. package/dist/popover-BpMi52Tb.js.map +1 -0
  1692. package/dist/popover-D9AfJmla.cjs +119 -0
  1693. package/dist/popover-D9AfJmla.cjs.map +1 -0
  1694. package/dist/primitives/chart-frame.cjs.js +2 -2
  1695. package/dist/primitives/chart-frame.es.js +2 -2
  1696. package/dist/primitives/chart-time-tick.cjs.js +2 -2
  1697. package/dist/primitives/chart-time-tick.es.js +2 -2
  1698. package/dist/primitives/charts/drag-selection.cjs.js +1 -1
  1699. package/dist/primitives/charts/drag-selection.es.js +1 -1
  1700. package/dist/primitives/menu-item.cjs.js +2 -2
  1701. package/dist/primitives/menu-item.es.js +2 -2
  1702. package/dist/primitives/menu-scroll-area.cjs.js +1 -1
  1703. package/dist/primitives/menu-scroll-area.es.js +1 -1
  1704. package/dist/primitives/resize-handle-indicator.cjs.js +1 -1
  1705. package/dist/primitives/resize-handle-indicator.es.js +1 -1
  1706. package/dist/primitives/trigger-button.cjs.js +2 -2
  1707. package/dist/primitives/trigger-button.es.js +2 -2
  1708. package/dist/property-filter-applied-BBVmWRsC.js +344 -0
  1709. package/dist/property-filter-applied-BBVmWRsC.js.map +1 -0
  1710. package/dist/property-filter-applied-iYDdM1hb.cjs +361 -0
  1711. package/dist/property-filter-applied-iYDdM1hb.cjs.map +1 -0
  1712. package/dist/resize/collapsible-panel.cjs.js +4 -4
  1713. package/dist/resize/collapsible-panel.cjs.js.map +1 -1
  1714. package/dist/resize/collapsible-panel.es.js +4 -4
  1715. package/dist/resize/collapsible-panel.es.js.map +1 -1
  1716. package/dist/resize/panel-drawer.cjs.js +3 -3
  1717. package/dist/resize/panel-drawer.es.js +3 -3
  1718. package/dist/resize/panel-icon-button.cjs.js +1 -2
  1719. package/dist/resize/panel-icon-button.cjs.js.map +1 -1
  1720. package/dist/resize/panel-icon-button.es.js +1 -1
  1721. package/dist/resize/separator.cjs.js +1 -1
  1722. package/dist/resize/separator.es.js +1 -1
  1723. package/dist/scroll-area-9-S7wfSs.js +227 -0
  1724. package/dist/scroll-area-9-S7wfSs.js.map +1 -0
  1725. package/dist/scroll-area-BU_TorPW.cjs +246 -0
  1726. package/dist/scroll-area-BU_TorPW.cjs.map +1 -0
  1727. package/dist/select-CeukeSn_.cjs +176 -0
  1728. package/dist/select-CeukeSn_.cjs.map +1 -0
  1729. package/dist/select-dNX9If-s.js +133 -0
  1730. package/dist/select-dNX9If-s.js.map +1 -0
  1731. package/dist/settings-BEw_bg12.js +106 -0
  1732. package/dist/settings-BEw_bg12.js.map +1 -0
  1733. package/dist/settings-Bminohri.cjs +135 -0
  1734. package/dist/settings-Bminohri.cjs.map +1 -0
  1735. package/dist/span-payload-primitives-CL3hlirm.cjs +217 -0
  1736. package/dist/span-payload-primitives-CL3hlirm.cjs.map +1 -0
  1737. package/dist/span-payload-primitives-KxqoXspn.js +164 -0
  1738. package/dist/span-payload-primitives-KxqoXspn.js.map +1 -0
  1739. package/dist/spinner-B9ykw74u.js +63 -0
  1740. package/dist/spinner-B9ykw74u.js.map +1 -0
  1741. package/dist/spinner-oS6q4pwx.cjs +68 -0
  1742. package/dist/spinner-oS6q4pwx.cjs.map +1 -0
  1743. package/dist/src/domains/chat/activity/index.d.ts +1 -3
  1744. package/dist/src/domains/chat/activity/model/activity-members.d.ts +1 -2
  1745. package/dist/src/domains/chat/activity/model/activity-words.d.ts +1 -2
  1746. package/dist/src/domains/chat/context/chat-context.d.ts +9 -0
  1747. package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +2 -1
  1748. package/dist/src/domains/chat/tools/badges/mcp-task-chip.d.ts +1 -1
  1749. package/dist/src/domains/chat/tools/badges/workspace-data-parts.d.ts +6 -0
  1750. package/dist/src/domains/chat/tools/tool-card-kind.d.ts +12 -2
  1751. package/dist/src/domains/dashboards/components/connected-widget.d.ts +9 -0
  1752. package/dist/src/domains/dashboards/components/dashboard-grid.d.ts +4 -1
  1753. package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +30 -3
  1754. package/dist/src/domains/dashboards/components/stateless-widget.d.ts +40 -0
  1755. package/dist/src/domains/dashboards/components/view-gate.d.ts +2 -10
  1756. package/dist/src/domains/dashboards/components/widget-controls.d.ts +27 -0
  1757. package/dist/src/domains/dashboards/components/widget-error.d.ts +7 -2
  1758. package/dist/src/domains/dashboards/hooks/use-dashboard-environment.d.ts +8 -0
  1759. package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +11 -1
  1760. package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +8 -2
  1761. package/dist/src/domains/dashboards/index.d.ts +14 -6
  1762. package/dist/src/domains/dashboards/kinds/kpis/kpis-plan.d.ts +355 -0
  1763. package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -1
  1764. package/dist/src/domains/dashboards/kinds/scores/scores-plan.d.ts +358 -0
  1765. package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
  1766. package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +6 -2
  1767. package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +2 -1
  1768. package/dist/src/domains/dashboards/kinds/table/table-plan.d.ts +18 -0
  1769. package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +1 -1
  1770. package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +1 -0
  1771. package/dist/src/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +355 -0
  1772. package/dist/src/domains/dashboards/lib/alert-actions.d.ts +36 -0
  1773. package/dist/src/domains/dashboards/lib/chrome.d.ts +5 -2
  1774. package/dist/src/domains/dashboards/lib/gate.d.ts +65 -0
  1775. package/dist/src/domains/dashboards/lib/pin-actions.d.ts +7 -0
  1776. package/dist/src/domains/dashboards/lib/plan-widget.d.ts +390 -0
  1777. package/dist/src/domains/dashboards/lib/requests.d.ts +22 -0
  1778. package/dist/src/domains/dashboards/lib/scores.d.ts +11 -1
  1779. package/dist/src/domains/dashboards/lib/timeseries.d.ts +6 -1
  1780. package/dist/src/domains/dashboards/lib/values.d.ts +5 -0
  1781. package/dist/src/domains/dashboards/widget-kind.d.ts +118 -2
  1782. package/dist/src/domains/knowledge/components/KnowledgePageDetail.d.ts +7 -1
  1783. package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +4 -1
  1784. package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +3 -0
  1785. package/dist/src/domains/knowledge/components/KnowledgeSourceIcon.d.ts +5 -0
  1786. package/dist/src/domains/knowledge/components/KnowledgeTooltip.d.ts +5 -0
  1787. package/dist/src/domains/knowledge/lib/fitViewport.d.ts +9 -2
  1788. package/dist/src/domains/knowledge/lib/pageAddress.d.ts +10 -0
  1789. package/dist/src/domains/knowledge/lib/pageRefs.d.ts +12 -1
  1790. package/dist/src/domains/knowledge/lib/pagesByRefContext.d.ts +6 -0
  1791. package/dist/src/domains/llm/models-dev-logo-slugs.d.ts +1 -0
  1792. package/dist/src/domains/llm/provider-logo-monogram.d.ts +8 -0
  1793. package/dist/src/domains/llm/provider-logo.d.ts +0 -4
  1794. package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +4 -1
  1795. package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +12 -2
  1796. package/dist/src/domains/mcps/context/mcp-app-host-context-value.d.ts +23 -0
  1797. package/dist/src/domains/mcps/context/mcp-app-host-context.d.ts +7 -0
  1798. package/dist/src/domains/mcps/hooks/use-mcp-app-tool-call.d.ts +5 -0
  1799. package/dist/src/domains/mcps/index.d.ts +3 -0
  1800. package/dist/src/domains/metrics/components/chart-card.d.ts +6 -2
  1801. package/dist/src/domains/metrics/components/kpi-card.d.ts +2 -1
  1802. package/dist/src/domains/metrics/lib/index.d.ts +1 -0
  1803. package/dist/src/domains/metrics/lib/series-colors.d.ts +39 -0
  1804. package/dist/src/domains/traces/components/feedback-options.d.ts +8 -0
  1805. package/dist/src/domains/traces/components/feedback-thread.d.ts +2 -1
  1806. package/dist/src/domains/traces/components/span-feedback-tab.d.ts +4 -2
  1807. package/dist/src/domains/traces/components/span-token-usage.utils.d.ts +1 -1
  1808. package/dist/src/domains/traces/components/thread-view-by-trace.d.ts +4 -1
  1809. package/dist/src/domains/traces/components/trace-feedback-tab.d.ts +4 -2
  1810. package/dist/src/domains/traces/components/trace-span-panel.d.ts +3 -1
  1811. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +3 -1
  1812. package/dist/src/domains/traces/components/traces-explorer/index.d.ts +1 -0
  1813. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +2 -0
  1814. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-root.d.ts +4 -1
  1815. package/dist/src/domains/workflows/components/workflow-combobox.d.ts +2 -1
  1816. package/dist/src/ds/components/AgentIndicator/paint.d.ts +6 -2
  1817. package/dist/src/ds/components/AgentIndicator/poses/coordination.d.ts +7 -0
  1818. package/dist/src/ds/components/AgentIndicator/poses/documents.d.ts +2 -0
  1819. package/dist/src/ds/components/AgentIndicator/poses/files.d.ts +5 -0
  1820. package/dist/src/ds/components/AgentIndicator/poses/interface.d.ts +8 -0
  1821. package/dist/src/ds/components/AgentIndicator/poses/knowledge-actions.d.ts +6 -0
  1822. package/dist/src/ds/components/AgentIndicator/poses/knowledge.d.ts +2 -0
  1823. package/dist/src/ds/components/AgentIndicator/poses/skills.d.ts +4 -0
  1824. package/dist/src/ds/components/AgentIndicator/poses/terminal.d.ts +4 -0
  1825. package/dist/src/ds/components/AgentIndicator/poses/thinking.d.ts +2 -0
  1826. package/dist/src/ds/components/AgentIndicator/poses.d.ts +1 -1
  1827. package/dist/src/ds/components/AgentIndicator/shapes.d.ts +7 -1
  1828. package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +2 -0
  1829. package/dist/src/ds/components/Breadcrumb/crumb-switcher.d.ts +1 -0
  1830. package/dist/src/ds/components/ChatShell/chat-shell-context.d.ts +9 -0
  1831. package/dist/src/ds/components/ChatShell/chat-shell.d.ts +5 -0
  1832. package/dist/src/ds/components/ChatShell/index.d.ts +2 -1
  1833. package/dist/src/ds/components/Combobox/combobox-parts.d.ts +2 -1
  1834. package/dist/src/ds/components/Combobox/combobox-styles.d.ts +9 -4
  1835. package/dist/src/ds/components/Combobox/combobox.d.ts +4 -2
  1836. package/dist/src/ds/components/CommandPalette/command-palette.d.ts +1 -1
  1837. package/dist/src/ds/components/DateTimePicker/date-picker.d.ts +6 -1
  1838. package/dist/src/ds/components/DateTimePicker/index.d.ts +0 -1
  1839. package/dist/src/ds/components/DateTimeRangePicker/custom-range-editor.d.ts +3 -2
  1840. package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +3 -0
  1841. package/dist/src/ds/components/Message/message-timestamp.d.ts +1 -0
  1842. package/dist/src/ds/components/MessageScroller/message-scroller-context.d.ts +3 -2
  1843. package/dist/src/ds/components/MessageScroller/message-scroller-geometry.d.ts +1 -1
  1844. package/dist/src/ds/components/MessageScroller/message-scroller-hooks.d.ts +2 -8
  1845. package/dist/src/ds/components/MessageScroller/message-scroller-visibility-store.d.ts +8 -0
  1846. package/dist/src/ds/components/Metadata/index.d.ts +2 -0
  1847. package/dist/src/ds/components/Metadata/metadata.d.ts +10 -0
  1848. package/dist/src/ds/components/MetricsCard/index.d.ts +1 -0
  1849. package/dist/src/ds/components/MetricsCard/metrics-card-drag-handle.d.ts +12 -0
  1850. package/dist/src/ds/components/MetricsCard/metrics-card.d.ts +2 -0
  1851. package/dist/src/ds/components/Steps/index.d.ts +1 -0
  1852. package/dist/src/ds/components/Steps/step.d.ts +13 -0
  1853. package/dist/src/ds/components/Steps/steps-context.d.ts +2 -0
  1854. package/dist/src/ds/components/Steps/steps-root.d.ts +18 -0
  1855. package/dist/src/ds/components/Steps/steps.d.ts +7 -0
  1856. package/dist/src/ds/components/Tree/tree-label.d.ts +1 -1
  1857. package/dist/src/ds/components/ai/annotations/annotatable-selection.d.ts +25 -0
  1858. package/dist/src/ds/components/ai/annotations/annotation-comment-card.d.ts +11 -0
  1859. package/dist/src/ds/components/ai/annotations/annotation-comment-popover.d.ts +15 -0
  1860. package/dist/src/ds/components/ai/annotations/annotation-highlights.d.ts +1 -0
  1861. package/dist/src/ds/components/ai/annotations/annotation-marker.d.ts +13 -0
  1862. package/dist/src/ds/components/ai/annotations/annotation-markers.d.ts +9 -0
  1863. package/dist/src/ds/components/ai/annotations/annotation-number.d.ts +4 -0
  1864. package/dist/src/ds/components/ai/annotations/annotation-selection-toolbar.d.ts +7 -0
  1865. package/dist/src/ds/components/ai/annotations/chat-annotations.d.ts +27 -0
  1866. package/dist/src/ds/components/ai/annotations/composer-annotation-list.d.ts +6 -0
  1867. package/dist/src/ds/components/ai/annotations/composer-annotations.d.ts +5 -0
  1868. package/dist/src/ds/components/ai/annotations/format-annotated-message.d.ts +11 -0
  1869. package/dist/src/ds/components/ai/annotations/index.d.ts +5 -0
  1870. package/dist/src/ds/components/ai/annotations/transcript-annotations.d.ts +6 -0
  1871. package/dist/src/ds/components/ai/annotations/use-annotation-placement.d.ts +11 -0
  1872. package/dist/src/ds/components/ai/annotations/use-annotation-selection.d.ts +12 -0
  1873. package/dist/src/ds/components/ai/tool-call/index.d.ts +3 -0
  1874. package/dist/src/ds/components/ai/tool-call/tool-call-body.d.ts +6 -0
  1875. package/dist/src/ds/components/ai/tool-call/tool-call-exit-status.d.ts +11 -0
  1876. package/dist/src/ds/components/ai/tool-call/tool-call-output.d.ts +1 -2
  1877. package/dist/src/ds/components/ai/tool-call/tool-call-view.d.ts +17 -0
  1878. package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +127 -138
  1879. package/dist/src/ds/components/ai/tool-call/tool-presentation.d.ts +2 -0
  1880. package/dist/src/ds/components/ai/tool-call/tool-styles.d.ts +10 -0
  1881. package/dist/src/ds/components/ai/transcript-divider/transcript-divider.d.ts +2 -2
  1882. package/dist/src/ds/icons/ByteDanceIcon.d.ts +2 -0
  1883. package/dist/src/ds/icons/CohereBrandIcon.d.ts +2 -0
  1884. package/dist/src/ds/icons/ConfluenceIcon.d.ts +2 -0
  1885. package/dist/src/ds/icons/FireworksIcon.d.ts +2 -0
  1886. package/dist/src/ds/icons/LongCatIcon.d.ts +2 -0
  1887. package/dist/src/ds/icons/MicrosoftIcon.d.ts +2 -0
  1888. package/dist/src/ds/icons/MorphIcon.d.ts +2 -0
  1889. package/dist/src/ds/icons/NotionIcon.d.ts +2 -0
  1890. package/dist/src/ds/icons/NousResearchIcon.d.ts +2 -0
  1891. package/dist/src/ds/icons/NovaIcon.d.ts +2 -0
  1892. package/dist/src/ds/icons/PerplexityIcon.d.ts +2 -0
  1893. package/dist/src/ds/icons/SakanaIcon.d.ts +2 -0
  1894. package/dist/src/ds/icons/StepFunIcon.d.ts +2 -0
  1895. package/dist/src/ds/icons/TencentIcon.d.ts +2 -0
  1896. package/dist/src/ds/icons/UpstageIcon.d.ts +2 -0
  1897. package/dist/src/ds/icons/ZendeskIcon.d.ts +2 -0
  1898. package/dist/src/ds/icons/index.d.ts +16 -0
  1899. package/dist/src/ds/tokens/colors.d.ts +12 -0
  1900. package/dist/src/ee/signals/sankey-signals-data.d.ts +2 -2
  1901. package/dist/src/ee/signals/snapshot-summary.d.ts +7 -0
  1902. package/dist/src/ee/signals/snapshot-timeline.d.ts +2 -1
  1903. package/dist/src/hooks/use-clock.d.ts +5 -0
  1904. package/dist/src/lib/resize/collapsible-panel.d.ts +5 -3
  1905. package/dist/src/lib/string.d.ts +1 -0
  1906. package/dist/src/utils/mcp-app-context.d.ts +6 -0
  1907. package/dist/string-CA5M0mj_.js +19 -0
  1908. package/dist/string-CA5M0mj_.js.map +1 -0
  1909. package/dist/string-EyTazW-F.cjs +42 -0
  1910. package/dist/string-EyTazW-F.cjs.map +1 -0
  1911. package/dist/style.css +400 -179
  1912. package/dist/tabbed-container-9yvqEQON.js +125 -0
  1913. package/dist/tabbed-container-9yvqEQON.js.map +1 -0
  1914. package/dist/tabbed-container-Bmk5dgJ4.cjs +130 -0
  1915. package/dist/tabbed-container-Bmk5dgJ4.cjs.map +1 -0
  1916. package/dist/tabs-content-BGkPZ5EQ.js +29 -0
  1917. package/dist/tabs-content-BGkPZ5EQ.js.map +1 -0
  1918. package/dist/tabs-content-D_ic2ZqI.cjs +34 -0
  1919. package/dist/tabs-content-D_ic2ZqI.cjs.map +1 -0
  1920. package/dist/tabs-tab-CJVS0WED.js +349 -0
  1921. package/dist/tabs-tab-CJVS0WED.js.map +1 -0
  1922. package/dist/tabs-tab-Dj2huH5T.cjs +372 -0
  1923. package/dist/tabs-tab-Dj2huH5T.cjs.map +1 -0
  1924. package/dist/toast-api-Cak5N8pT.js +50 -0
  1925. package/dist/toast-api-Cak5N8pT.js.map +1 -0
  1926. package/dist/toast-api-DDcGCbIw.cjs +55 -0
  1927. package/dist/toast-api-DDcGCbIw.cjs.map +1 -0
  1928. package/dist/tokens.cjs.js +12 -0
  1929. package/dist/tokens.cjs.js.map +1 -1
  1930. package/dist/tokens.es.js +12 -0
  1931. package/dist/tokens.es.js.map +1 -1
  1932. package/dist/tool-approval-C4WNL8VD.cjs +115 -0
  1933. package/dist/tool-approval-C4WNL8VD.cjs.map +1 -0
  1934. package/dist/tool-approval-ZfL3-Vvi.js +98 -0
  1935. package/dist/tool-approval-ZfL3-Vvi.js.map +1 -0
  1936. package/dist/tool-call-BLzYTI-x.js +505 -0
  1937. package/dist/tool-call-BLzYTI-x.js.map +1 -0
  1938. package/dist/tool-call-C4TBpJ6Y.cjs +600 -0
  1939. package/dist/tool-call-C4TBpJ6Y.cjs.map +1 -0
  1940. package/dist/tool-card-BjOV2sXi.js +412 -0
  1941. package/dist/tool-card-BjOV2sXi.js.map +1 -0
  1942. package/dist/tool-card-CO_3C_Bn.cjs +438 -0
  1943. package/dist/tool-card-CO_3C_Bn.cjs.map +1 -0
  1944. package/dist/tool-presentation-C2bYQ7gB.js +874 -0
  1945. package/dist/tool-presentation-C2bYQ7gB.js.map +1 -0
  1946. package/dist/tool-presentation-DPp9h-n2.cjs +915 -0
  1947. package/dist/tool-presentation-DPp9h-n2.cjs.map +1 -0
  1948. package/dist/tooltip-BsExuMO8.cjs +112 -0
  1949. package/dist/tooltip-BsExuMO8.cjs.map +1 -0
  1950. package/dist/tooltip-DJcze2VZ.js +87 -0
  1951. package/dist/tooltip-DJcze2VZ.js.map +1 -0
  1952. package/dist/transcript-divider-DM2HkdeO.js +35 -0
  1953. package/dist/transcript-divider-DM2HkdeO.js.map +1 -0
  1954. package/dist/transcript-divider-DroC3feH.cjs +40 -0
  1955. package/dist/transcript-divider-DroC3feH.cjs.map +1 -0
  1956. package/dist/types-BwdKiX24.js +1909 -0
  1957. package/dist/types-BwdKiX24.js.map +1 -0
  1958. package/dist/types-KjLUPShK.cjs +1922 -0
  1959. package/dist/types-KjLUPShK.cjs.map +1 -0
  1960. package/dist/use-workflow-graph-runtime-B_dKpjUe.js +284 -0
  1961. package/dist/use-workflow-graph-runtime-B_dKpjUe.js.map +1 -0
  1962. package/dist/use-workflow-graph-runtime-D_PpEIQ5.cjs +307 -0
  1963. package/dist/use-workflow-graph-runtime-D_PpEIQ5.cjs.map +1 -0
  1964. package/dist/utils/mcp-app-context.cjs.js +17 -0
  1965. package/dist/utils/mcp-app-context.cjs.js.map +1 -0
  1966. package/dist/utils/mcp-app-context.d.ts +1 -0
  1967. package/dist/utils/mcp-app-context.es.js +15 -0
  1968. package/dist/utils/mcp-app-context.es.js.map +1 -0
  1969. package/dist/utils/string.cjs.js +2 -1
  1970. package/dist/utils/string.es.js +1 -1
  1971. package/dist/utils/toast.cjs.js +1 -1
  1972. package/dist/utils/toast.es.js +1 -1
  1973. package/oxlint/copy-rules.d.ts +4 -0
  1974. package/oxlint/copy-rules.js +29 -0
  1975. package/oxlint/copy-sources.js +223 -0
  1976. package/oxlint/index.d.ts +5 -0
  1977. package/oxlint/index.js +17 -0
  1978. package/package.json +13 -10
  1979. package/theme/data-viz.css +33 -0
  1980. package/dist/AgentIndicator-Bs2S8AWJ.js +0 -847
  1981. package/dist/AgentIndicator-Bs2S8AWJ.js.map +0 -1
  1982. package/dist/AgentIndicator-to30W73z.cjs +0 -864
  1983. package/dist/AgentIndicator-to30W73z.cjs.map +0 -1
  1984. package/dist/AttachmentCard-CciBqu7E.cjs +0 -66
  1985. package/dist/AttachmentCard-CciBqu7E.cjs.map +0 -1
  1986. package/dist/AttachmentCard-DbGp7TYl.js +0 -61
  1987. package/dist/AttachmentCard-DbGp7TYl.js.map +0 -1
  1988. package/dist/Avatar-Dj8aP7OI.js +0 -146
  1989. package/dist/Avatar-Dj8aP7OI.js.map +0 -1
  1990. package/dist/Avatar-Iiqjad9K.cjs +0 -151
  1991. package/dist/Avatar-Iiqjad9K.cjs.map +0 -1
  1992. package/dist/Badge-DZ6r6bcw.cjs +0 -154
  1993. package/dist/Badge-DZ6r6bcw.cjs.map +0 -1
  1994. package/dist/Badge-aVu5iGAF.js +0 -149
  1995. package/dist/Badge-aVu5iGAF.js.map +0 -1
  1996. package/dist/Button-CLXTbAY8.js +0 -233
  1997. package/dist/Button-CLXTbAY8.js.map +0 -1
  1998. package/dist/Button-DLcMcuUL.cjs +0 -276
  1999. package/dist/Button-DLcMcuUL.cjs.map +0 -1
  2000. package/dist/Card-C6iEBgVq.cjs +0 -134
  2001. package/dist/Card-C6iEBgVq.cjs.map +0 -1
  2002. package/dist/Card-LU1aWO7U.js +0 -91
  2003. package/dist/Card-LU1aWO7U.js.map +0 -1
  2004. package/dist/CodeEditor-CLzs0yVc.cjs +0 -515
  2005. package/dist/CodeEditor-CLzs0yVc.cjs.map +0 -1
  2006. package/dist/CodeEditor-COnz9c6B.js +0 -466
  2007. package/dist/CodeEditor-COnz9c6B.js.map +0 -1
  2008. package/dist/Comment-0n98b_f_.js +0 -317
  2009. package/dist/Comment-0n98b_f_.js.map +0 -1
  2010. package/dist/Comment-Cg0f7eLa.cjs +0 -412
  2011. package/dist/Comment-Cg0f7eLa.cjs.map +0 -1
  2012. package/dist/Composer-BcueJvdX.cjs +0 -441
  2013. package/dist/Composer-BcueJvdX.cjs.map +0 -1
  2014. package/dist/Composer-D1gF-0jZ.js +0 -352
  2015. package/dist/Composer-D1gF-0jZ.js.map +0 -1
  2016. package/dist/DataCodeSection-CFxXsQWH.cjs +0 -236
  2017. package/dist/DataCodeSection-CFxXsQWH.cjs.map +0 -1
  2018. package/dist/DataCodeSection-PY9XEg2C.js +0 -231
  2019. package/dist/DataCodeSection-PY9XEg2C.js.map +0 -1
  2020. package/dist/DataDetailsPanel-CohEKPm4.js +0 -180
  2021. package/dist/DataDetailsPanel-CohEKPm4.js.map +0 -1
  2022. package/dist/DataDetailsPanel-DiyjEXqK.cjs +0 -185
  2023. package/dist/DataDetailsPanel-DiyjEXqK.cjs.map +0 -1
  2024. package/dist/DataKeysAndValues-DsH6AbAo.cjs +0 -128
  2025. package/dist/DataKeysAndValues-DsH6AbAo.cjs.map +0 -1
  2026. package/dist/DataKeysAndValues-PwOmGxyp.js +0 -123
  2027. package/dist/DataKeysAndValues-PwOmGxyp.js.map +0 -1
  2028. package/dist/DataList-CUhRQAv6.js +0 -408
  2029. package/dist/DataList-CUhRQAv6.js.map +0 -1
  2030. package/dist/DataList-Cj0mfk19.cjs +0 -431
  2031. package/dist/DataList-Cj0mfk19.cjs.map +0 -1
  2032. package/dist/DataPanel-Coc9h35I.cjs +0 -298
  2033. package/dist/DataPanel-Coc9h35I.cjs.map +0 -1
  2034. package/dist/DataPanel-IgB9D5PO.js +0 -292
  2035. package/dist/DataPanel-IgB9D5PO.js.map +0 -1
  2036. package/dist/Dialog-BvWF9HE-.cjs +0 -424
  2037. package/dist/Dialog-BvWF9HE-.cjs.map +0 -1
  2038. package/dist/Dialog-DaWtxwd9.js +0 -334
  2039. package/dist/Dialog-DaWtxwd9.js.map +0 -1
  2040. package/dist/EmptyState-DxDHlYqD.cjs +0 -1524
  2041. package/dist/EmptyState-DxDHlYqD.cjs.map +0 -1
  2042. package/dist/EmptyState-P-Gy898T.js +0 -1511
  2043. package/dist/EmptyState-P-Gy898T.js.map +0 -1
  2044. package/dist/ErrorBoundary-B5GjmA6V.cjs +0 -138
  2045. package/dist/ErrorBoundary-B5GjmA6V.cjs.map +0 -1
  2046. package/dist/ErrorBoundary-Cat3KU86.js +0 -131
  2047. package/dist/ErrorBoundary-Cat3KU86.js.map +0 -1
  2048. package/dist/FilterBar-BSP2UTjc.cjs +0 -903
  2049. package/dist/FilterBar-BSP2UTjc.cjs.map +0 -1
  2050. package/dist/FilterBar-PSQ1OwqH.js +0 -862
  2051. package/dist/FilterBar-PSQ1OwqH.js.map +0 -1
  2052. package/dist/LogsDataList-BI2C5OJz.js +0 -96
  2053. package/dist/LogsDataList-BI2C5OJz.js.map +0 -1
  2054. package/dist/LogsDataList-CCIfUPGo.cjs +0 -101
  2055. package/dist/LogsDataList-CCIfUPGo.cjs.map +0 -1
  2056. package/dist/MarkdownRenderer-CI30RqdB.js +0 -481
  2057. package/dist/MarkdownRenderer-CI30RqdB.js.map +0 -1
  2058. package/dist/MarkdownRenderer-y65WGBhC.cjs +0 -490
  2059. package/dist/MarkdownRenderer-y65WGBhC.cjs.map +0 -1
  2060. package/dist/Message-CWzi5F_Q.js +0 -76
  2061. package/dist/Message-CWzi5F_Q.js.map +0 -1
  2062. package/dist/Message-jj56lxNL.cjs +0 -105
  2063. package/dist/Message-jj56lxNL.cjs.map +0 -1
  2064. package/dist/MessageScroller-CGsfTd1Z.cjs +0 -952
  2065. package/dist/MessageScroller-CGsfTd1Z.cjs.map +0 -1
  2066. package/dist/MessageScroller-DvaKlm4O.js +0 -879
  2067. package/dist/MessageScroller-DvaKlm4O.js.map +0 -1
  2068. package/dist/MetricsCard-BEwiS7Pe.cjs +0 -216
  2069. package/dist/MetricsCard-BEwiS7Pe.cjs.map +0 -1
  2070. package/dist/MetricsCard-ua6C6b8a.js +0 -211
  2071. package/dist/MetricsCard-ua6C6b8a.js.map +0 -1
  2072. package/dist/MetricsKpiCard-By_-sagx.cjs +0 -221
  2073. package/dist/MetricsKpiCard-By_-sagx.cjs.map +0 -1
  2074. package/dist/MetricsKpiCard-OHbAElTl.js +0 -216
  2075. package/dist/MetricsKpiCard-OHbAElTl.js.map +0 -1
  2076. package/dist/MetricsLineChart-4SwxBbQx.js +0 -262
  2077. package/dist/MetricsLineChart-4SwxBbQx.js.map +0 -1
  2078. package/dist/MetricsLineChart-tZxsauau.cjs +0 -279
  2079. package/dist/MetricsLineChart-tZxsauau.cjs.map +0 -1
  2080. package/dist/MetricsStackedBarChart-CDLE76IB.cjs +0 -313
  2081. package/dist/MetricsStackedBarChart-CDLE76IB.cjs.map +0 -1
  2082. package/dist/MetricsStackedBarChart-D2QyS4-z.js +0 -308
  2083. package/dist/MetricsStackedBarChart-D2QyS4-z.js.map +0 -1
  2084. package/dist/MetricsTable-BSl81oNe.cjs +0 -332
  2085. package/dist/MetricsTable-BSl81oNe.cjs.map +0 -1
  2086. package/dist/MetricsTable-DID6LRoP.js +0 -327
  2087. package/dist/MetricsTable-DID6LRoP.js.map +0 -1
  2088. package/dist/Notice-C-8oOZZF.js +0 -112
  2089. package/dist/Notice-C-8oOZZF.js.map +0 -1
  2090. package/dist/Notice-JZ7SW7q6.cjs +0 -117
  2091. package/dist/Notice-JZ7SW7q6.cjs.map +0 -1
  2092. package/dist/PageLayout-CyM_Op3c.js +0 -49
  2093. package/dist/PageLayout-CyM_Op3c.js.map +0 -1
  2094. package/dist/PageLayout-DFRzcnkf.cjs +0 -54
  2095. package/dist/PageLayout-DFRzcnkf.cjs.map +0 -1
  2096. package/dist/SankeyChart-DHeJ45KN.cjs +0 -921
  2097. package/dist/SankeyChart-DHeJ45KN.cjs.map +0 -1
  2098. package/dist/SankeyChart-E68mYEs2.js +0 -856
  2099. package/dist/SankeyChart-E68mYEs2.js.map +0 -1
  2100. package/dist/Section-CWFQ8jNS.js +0 -113
  2101. package/dist/Section-CWFQ8jNS.js.map +0 -1
  2102. package/dist/Section-CyGQZR7U.cjs +0 -130
  2103. package/dist/Section-CyGQZR7U.cjs.map +0 -1
  2104. package/dist/ShareBar-3Z5np-NY.cjs +0 -456
  2105. package/dist/ShareBar-3Z5np-NY.cjs.map +0 -1
  2106. package/dist/ShareBar-D6dWWl4C.js +0 -451
  2107. package/dist/ShareBar-D6dWWl4C.js.map +0 -1
  2108. package/dist/Tree-BplQcY8u.cjs +0 -444
  2109. package/dist/Tree-BplQcY8u.cjs.map +0 -1
  2110. package/dist/Tree-CoLkeBCL.js +0 -437
  2111. package/dist/Tree-CoLkeBCL.js.map +0 -1
  2112. package/dist/Txt-BM6TVV_c.js +0 -21
  2113. package/dist/Txt-BM6TVV_c.js.map +0 -1
  2114. package/dist/Txt-BnoSqxKE.cjs +0 -26
  2115. package/dist/Txt-BnoSqxKE.cjs.map +0 -1
  2116. package/dist/Workflow-C3SlEdP-.js +0 -1315
  2117. package/dist/Workflow-C3SlEdP-.js.map +0 -1
  2118. package/dist/Workflow-DSWQ-ROz.cjs +0 -1466
  2119. package/dist/Workflow-DSWQ-ROz.cjs.map +0 -1
  2120. package/dist/activity-C8Ql81WM.js +0 -450
  2121. package/dist/activity-C8Ql81WM.js.map +0 -1
  2122. package/dist/activity-CcQZeDYi.cjs +0 -581
  2123. package/dist/activity-CcQZeDYi.cjs.map +0 -1
  2124. package/dist/ask-user-C1p2PEYe.cjs +0 -495
  2125. package/dist/ask-user-C1p2PEYe.cjs.map +0 -1
  2126. package/dist/ask-user-DPznrqGO.js +0 -412
  2127. package/dist/ask-user-DPznrqGO.js.map +0 -1
  2128. package/dist/buttons-group-Dc6R7YSs.cjs +0 -48
  2129. package/dist/buttons-group-Dc6R7YSs.cjs.map +0 -1
  2130. package/dist/buttons-group-DkFlnMiL.js +0 -35
  2131. package/dist/buttons-group-DkFlnMiL.js.map +0 -1
  2132. package/dist/clear-filters-button-Buc973vw.cjs +0 -27
  2133. package/dist/clear-filters-button-Buc973vw.cjs.map +0 -1
  2134. package/dist/clear-filters-button-CNrRuHOY.js +0 -22
  2135. package/dist/clear-filters-button-CNrRuHOY.js.map +0 -1
  2136. package/dist/combobox-D21no8t5.js +0 -302
  2137. package/dist/combobox-D21no8t5.js.map +0 -1
  2138. package/dist/combobox-DIT_6xiG.cjs +0 -309
  2139. package/dist/combobox-DIT_6xiG.cjs.map +0 -1
  2140. package/dist/combobox-parts-C4phOq4t.cjs +0 -567
  2141. package/dist/combobox-parts-C4phOq4t.cjs.map +0 -1
  2142. package/dist/combobox-parts-D90ir0Py.js +0 -428
  2143. package/dist/combobox-parts-D90ir0Py.js.map +0 -1
  2144. package/dist/context-menu-DTFPCyae.cjs +0 -211
  2145. package/dist/context-menu-DTFPCyae.cjs.map +0 -1
  2146. package/dist/context-menu-Dv0NU0oM.js +0 -204
  2147. package/dist/context-menu-Dv0NU0oM.js.map +0 -1
  2148. package/dist/copy-button-BXrbevLn.js +0 -25
  2149. package/dist/copy-button-BXrbevLn.js.map +0 -1
  2150. package/dist/copy-button-DJAQ6_3o.cjs +0 -30
  2151. package/dist/copy-button-DJAQ6_3o.cjs.map +0 -1
  2152. package/dist/data-list-C4Vmq5HA.cjs +0 -1003
  2153. package/dist/data-list-C4Vmq5HA.cjs.map +0 -1
  2154. package/dist/data-list-DHCOoLmj.js +0 -866
  2155. package/dist/data-list-DHCOoLmj.js.map +0 -1
  2156. package/dist/date-time-range-picker-CWGjoR3j.cjs +0 -348
  2157. package/dist/date-time-range-picker-CWGjoR3j.cjs.map +0 -1
  2158. package/dist/date-time-range-picker-CdSiXwB4.js +0 -343
  2159. package/dist/date-time-range-picker-CdSiXwB4.js.map +0 -1
  2160. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +0 -29
  2161. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js.map +0 -1
  2162. package/dist/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -1
  2163. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +0 -28
  2164. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js.map +0 -1
  2165. package/dist/domains/dashboards/hooks/use-scorers.cjs.js +0 -41
  2166. package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +0 -1
  2167. package/dist/domains/dashboards/hooks/use-scorers.d.ts +0 -1
  2168. package/dist/domains/dashboards/hooks/use-scorers.es.js +0 -40
  2169. package/dist/domains/dashboards/hooks/use-scorers.es.js.map +0 -1
  2170. package/dist/dropdown-menu-B4jY3J9e.js +0 -234
  2171. package/dist/dropdown-menu-B4jY3J9e.js.map +0 -1
  2172. package/dist/dropdown-menu-BETTTPBB.cjs +0 -241
  2173. package/dist/dropdown-menu-BETTTPBB.cjs.map +0 -1
  2174. package/dist/field-error-id-DBSuJ3HM.js +0 -89
  2175. package/dist/field-error-id-DBSuJ3HM.js.map +0 -1
  2176. package/dist/field-error-id-nGAF0330.cjs +0 -100
  2177. package/dist/field-error-id-nGAF0330.cjs.map +0 -1
  2178. package/dist/filter-bar-chip-CABeKrtf.js +0 -1420
  2179. package/dist/filter-bar-chip-CABeKrtf.js.map +0 -1
  2180. package/dist/filter-bar-chip-Cg-UbIwP.cjs +0 -1545
  2181. package/dist/filter-bar-chip-Cg-UbIwP.cjs.map +0 -1
  2182. package/dist/filter-bar-time-range-qlV8p7hp.js +0 -60
  2183. package/dist/filter-bar-time-range-qlV8p7hp.js.map +0 -1
  2184. package/dist/filter-bar-time-range-zdM024JD.cjs +0 -83
  2185. package/dist/filter-bar-time-range-zdM024JD.cjs.map +0 -1
  2186. package/dist/input-0l1uzOBZ.js +0 -48
  2187. package/dist/input-0l1uzOBZ.js.map +0 -1
  2188. package/dist/input-2hRXcZIu.cjs +0 -55
  2189. package/dist/input-2hRXcZIu.cjs.map +0 -1
  2190. package/dist/input-group-DVJLZDBL.cjs +0 -169
  2191. package/dist/input-group-DVJLZDBL.cjs.map +0 -1
  2192. package/dist/input-group-QKKV_ouF.js +0 -120
  2193. package/dist/input-group-QKKV_ouF.js.map +0 -1
  2194. package/dist/list-search-BtRno5As.cjs +0 -50
  2195. package/dist/list-search-BtRno5As.cjs.map +0 -1
  2196. package/dist/list-search-CkhsTFdG.js +0 -45
  2197. package/dist/list-search-CkhsTFdG.js.map +0 -1
  2198. package/dist/observability-saved-views-CjKTEp1V.js +0 -299
  2199. package/dist/observability-saved-views-CjKTEp1V.js.map +0 -1
  2200. package/dist/observability-saved-views-Daizz4tU.cjs +0 -304
  2201. package/dist/observability-saved-views-Daizz4tU.cjs.map +0 -1
  2202. package/dist/page-header-BB6yjtce.cjs +0 -125
  2203. package/dist/page-header-BB6yjtce.cjs.map +0 -1
  2204. package/dist/page-header-BykBsHUy.js +0 -120
  2205. package/dist/page-header-BykBsHUy.js.map +0 -1
  2206. package/dist/popover-BJqa6Hz6.cjs +0 -119
  2207. package/dist/popover-BJqa6Hz6.cjs.map +0 -1
  2208. package/dist/popover-CzHvTPk2.js +0 -94
  2209. package/dist/popover-CzHvTPk2.js.map +0 -1
  2210. package/dist/property-filter-applied--U5EZdaA.js +0 -344
  2211. package/dist/property-filter-applied--U5EZdaA.js.map +0 -1
  2212. package/dist/property-filter-applied-BkkIObRq.cjs +0 -361
  2213. package/dist/property-filter-applied-BkkIObRq.cjs.map +0 -1
  2214. package/dist/scroll-area-BP4gPZ4G.cjs +0 -246
  2215. package/dist/scroll-area-BP4gPZ4G.cjs.map +0 -1
  2216. package/dist/scroll-area-C226l0v0.js +0 -227
  2217. package/dist/scroll-area-C226l0v0.js.map +0 -1
  2218. package/dist/select-BdIZEdcy.js +0 -133
  2219. package/dist/select-BdIZEdcy.js.map +0 -1
  2220. package/dist/select-Dg8L5ROX.cjs +0 -176
  2221. package/dist/select-Dg8L5ROX.cjs.map +0 -1
  2222. package/dist/settings-BaUeaO96.js +0 -106
  2223. package/dist/settings-BaUeaO96.js.map +0 -1
  2224. package/dist/settings-CUVqhBbf.cjs +0 -135
  2225. package/dist/settings-CUVqhBbf.cjs.map +0 -1
  2226. package/dist/span-payload-primitives-CKKIAVPJ.js +0 -164
  2227. package/dist/span-payload-primitives-CKKIAVPJ.js.map +0 -1
  2228. package/dist/span-payload-primitives-D4tHWN2W.cjs +0 -217
  2229. package/dist/span-payload-primitives-D4tHWN2W.cjs.map +0 -1
  2230. package/dist/spinner-C8ZxiA5C.cjs +0 -68
  2231. package/dist/spinner-C8ZxiA5C.cjs.map +0 -1
  2232. package/dist/spinner-CnLgLj9R.js +0 -63
  2233. package/dist/spinner-CnLgLj9R.js.map +0 -1
  2234. package/dist/src/domains/chat/activity/components/activity-timed-trigger.d.ts +0 -9
  2235. package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +0 -66
  2236. package/dist/src/ds/components/DateTimePicker/time-picker.d.ts +0 -7
  2237. package/dist/string-CNKDIc_4.js +0 -16
  2238. package/dist/string-CNKDIc_4.js.map +0 -1
  2239. package/dist/string-DdJJdCv2.cjs +0 -33
  2240. package/dist/string-DdJJdCv2.cjs.map +0 -1
  2241. package/dist/tabbed-container-B4lCBgRP.cjs +0 -130
  2242. package/dist/tabbed-container-B4lCBgRP.cjs.map +0 -1
  2243. package/dist/tabbed-container-DI1GI1Qv.js +0 -125
  2244. package/dist/tabbed-container-DI1GI1Qv.js.map +0 -1
  2245. package/dist/tabs-content-CmXe5ML0.cjs +0 -34
  2246. package/dist/tabs-content-CmXe5ML0.cjs.map +0 -1
  2247. package/dist/tabs-content-D__B9hd-.js +0 -29
  2248. package/dist/tabs-content-D__B9hd-.js.map +0 -1
  2249. package/dist/tabs-tab-CYTZevdV.js +0 -349
  2250. package/dist/tabs-tab-CYTZevdV.js.map +0 -1
  2251. package/dist/tabs-tab-DGwfHVDr.cjs +0 -372
  2252. package/dist/tabs-tab-DGwfHVDr.cjs.map +0 -1
  2253. package/dist/toast-api-D_rrRhNG.js +0 -50
  2254. package/dist/toast-api-D_rrRhNG.js.map +0 -1
  2255. package/dist/toast-api-qtkOucy2.cjs +0 -55
  2256. package/dist/toast-api-qtkOucy2.cjs.map +0 -1
  2257. package/dist/tool-approval-CJvPDL7D.cjs +0 -115
  2258. package/dist/tool-approval-CJvPDL7D.cjs.map +0 -1
  2259. package/dist/tool-approval-DyN11vFA.js +0 -98
  2260. package/dist/tool-approval-DyN11vFA.js.map +0 -1
  2261. package/dist/tool-call-DBn14X-3.cjs +0 -497
  2262. package/dist/tool-call-DBn14X-3.cjs.map +0 -1
  2263. package/dist/tool-call-Dsj43lvJ.js +0 -426
  2264. package/dist/tool-call-Dsj43lvJ.js.map +0 -1
  2265. package/dist/tool-card-BOLXeKIp.cjs +0 -428
  2266. package/dist/tool-card-BOLXeKIp.cjs.map +0 -1
  2267. package/dist/tool-card-HZ5bm7ue.js +0 -402
  2268. package/dist/tool-card-HZ5bm7ue.js.map +0 -1
  2269. package/dist/tool-presentation-CvibOP1J.js +0 -256
  2270. package/dist/tool-presentation-CvibOP1J.js.map +0 -1
  2271. package/dist/tool-presentation-D6nzVruN.cjs +0 -291
  2272. package/dist/tool-presentation-D6nzVruN.cjs.map +0 -1
  2273. package/dist/tooltip-BiRLT3Th.cjs +0 -112
  2274. package/dist/tooltip-BiRLT3Th.cjs.map +0 -1
  2275. package/dist/tooltip-HzcLyGtV.js +0 -87
  2276. package/dist/tooltip-HzcLyGtV.js.map +0 -1
  2277. package/dist/transcript-divider-CQ6sc3nt.cjs +0 -46
  2278. package/dist/transcript-divider-CQ6sc3nt.cjs.map +0 -1
  2279. package/dist/transcript-divider-CvdgElIC.js +0 -41
  2280. package/dist/transcript-divider-CvdgElIC.js.map +0 -1
  2281. package/dist/use-workflow-graph-runtime-BKNhOKsH.js +0 -284
  2282. package/dist/use-workflow-graph-runtime-BKNhOKsH.js.map +0 -1
  2283. package/dist/use-workflow-graph-runtime-DYao-08R.cjs +0 -307
  2284. package/dist/use-workflow-graph-runtime-DYao-08R.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"requests.cjs.js","names":["intersectFilters","bucketPlan","toTraceAggregateTimeRange","previousWindow","AGGREGATE_PRIORITY"],"sources":["../../../../src/domains/dashboards/lib/requests.ts"],"sourcesContent":["import type { AggregateSpansArgs, AggregateTracesArgs, DashboardQuery, MastraClient } from '@mastra/client-js';\nimport type { MetricsQueryFilters } from '@mastra/react/hooks/metrics';\nimport { bucketPlan } from '../../metrics/lib/metrics-buckets';\nimport { AGGREGATE_PRIORITY } from '../../metrics/lib/request-limiter';\nimport type { AggregatePriority } from '../../metrics/lib/request-limiter';\nimport { previousWindow } from '../../metrics/lib/time-window';\nimport { toTraceAggregateTimeRange } from '../../metrics/lib/trace-aggregate';\nimport { intersectFilters } from './filters';\n\ntype Window = { start: Date; end: Date };\ntype Interval = '1h' | '1d';\ntype Args<M extends keyof MastraClient> = MastraClient[M] extends (args: infer A, ...rest: never[]) => unknown\n ? A\n : never;\n\ntype Call =\n | { method: 'aggregateTraces'; args: AggregateTracesArgs; priority?: AggregatePriority }\n | { method: 'aggregateSpans'; args: AggregateSpansArgs; priority?: AggregatePriority }\n | { method: 'getMetricAggregate'; args: Args<'getMetricAggregate'> }\n | { method: 'getMetricBreakdown'; args: Args<'getMetricBreakdown'> }\n | { method: 'getMetricTimeSeries'; args: Args<'getMetricTimeSeries'> }\n | { method: 'getMetricPercentiles'; args: Args<'getMetricPercentiles'> }\n | { method: 'getScoreAggregate'; args: Args<'getScoreAggregate'> }\n | { method: 'getScoreBreakdown'; args: Args<'getScoreBreakdown'> }\n | { method: 'getScoreTimeSeries'; args: Args<'getScoreTimeSeries'> }\n | { method: 'getScorePercentiles'; args: Args<'getScorePercentiles'> };\n\n/** One call a dashboard query makes, with the args it sends. */\nexport type DashboardRequest = Call & {\n /** Its filters contradict the page's, so nothing can match: it isn't sent and answers empty. */\n unsatisfiable?: true;\n};\n\nexport type DashboardRequestMethod = DashboardRequest['method'];\n\ntype Answers = { [M in DashboardRequestMethod]: Awaited<ReturnType<MastraClient[M]>> };\n\n/** A request's answer, tagged with the method that produced it so a widget narrows it by `method`. */\nexport type DashboardAnswer = {\n [M in DashboardRequestMethod]: { method: M; data: Answers[M] };\n}[DashboardRequestMethod];\n\ntype TraceWhere = NonNullable<AggregateTracesArgs['where']>;\ntype SpanWhere = NonNullable<AggregateSpansArgs['where']>;\n\n/** What the page adds to every widget's query: its frozen window and its filter bar. */\nexport type DashboardPageContext = {\n window: Window;\n /** The page's metrics and scores filters, `timestamp` included. */\n filters: MetricsQueryFilters['filters'];\n /** The filter bar as trace and span predicates, from the aggregate gates. */\n traceWhere?: TraceWhere;\n spanWhere?: SpanWhere;\n};\n\n/** How the widget kind sends a query. */\nexport type DashboardRequestOptions = {\n /** The bucket size, for a query that doesn't set its own. Unset sends the query as written. */\n interval?: Interval;\n};\n\n/** The widget's predicate and the page's, both required; the widget's comes first. */\nfunction andTrace(widget: TraceWhere | undefined, page: TraceWhere | undefined): TraceWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\nfunction andSpan(widget: SpanWhere | undefined, page: SpanWhere | undefined): SpanWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\ntype ValuesQuery = Extract<DashboardQuery, { source: 'metrics' | 'scores' }>;\n\n/**\n * A metrics or scores query's args, the page's filters intersected with its own, over `window`;\n * `unsatisfiable` when they contradict.\n */\nfunction valuesArgs<Q extends ValuesQuery>(query: Q, page: DashboardPageContext, window: Window) {\n const { source: _source, id: _id, request, compare, filters, ...rest } = query;\n const combined = intersectFilters(page.filters, filters);\n return {\n unsatisfiable: combined === undefined ? (true as const) : undefined,\n args: {\n ...rest,\n filters: { ...(combined ?? page.filters), timestamp: window },\n // An aggregate compares in the same request; anything else sends a second one over `window`.\n comparePeriod: request === 'aggregate' && compare === 'previousWindow' ? ('previous_period' as const) : undefined,\n },\n };\n}\n\n/** A bucketed request's interval: its own, else the kind's, else the bar charts' for `window`. */\nfunction bucketOf<I extends string>(own: I | undefined, interval: Interval | undefined, window: Window) {\n return own ?? interval ?? bucketPlan(window.start, window.end).interval;\n}\n\n/**\n * The request a query sends over `window`, the page's filters ANDed with the widget's: trace and span\n * predicates are joined with `and`; metrics and scores filters intersect (`intersectFilters`), and a\n * contradiction marks the request unsatisfiable. A scores query without a scorer sends nothing: the\n * `scores` kind expands it per scorer first.\n */\nexport function buildRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n { interval }: DashboardRequestOptions,\n window: Window = page.window,\n priority?: AggregatePriority,\n): DashboardRequest | undefined {\n if (query.source === 'traceAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateTraces',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andTrace(where, page.traceWhere),\n },\n priority,\n };\n }\n if (query.source === 'spanAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateSpans',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andSpan(where, page.spanWhere),\n },\n priority,\n };\n }\n if (query.source === 'metrics') {\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricAggregate', args, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricBreakdown', args, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricPercentiles', args: bucketed, unsatisfiable };\n }\n }\n }\n const { scorerId } = query;\n if (scorerId === undefined) return undefined;\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreAggregate', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreBreakdown', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScoreTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScorePercentiles', args: bucketed, unsatisfiable };\n }\n }\n}\n\n/** Whether a query asks for the previous window as a request of its own. */\nexport function sendsPreviousRequest(query: DashboardQuery) {\n if (query.compare !== 'previousWindow') return false;\n return !((query.source === 'metrics' || query.source === 'scores') && query.request === 'aggregate');\n}\n\n/** The previous window's request, sent last so the widget never waits on it. */\nexport function buildPreviousRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n options: DashboardRequestOptions,\n): DashboardRequest | undefined {\n if (!sendsPreviousRequest(query)) return undefined;\n return buildRequest(query, page, options, previousWindow(page.window), AGGREGATE_PRIORITY.last);\n}\n\n/** What an unsatisfiable request answers: nothing matched. */\nfunction emptyAnswer(method: DashboardRequestMethod): DashboardAnswer {\n switch (method) {\n case 'aggregateTraces':\n case 'aggregateSpans':\n return { method, data: { rows: [], truncated: false } };\n case 'getMetricAggregate':\n case 'getScoreAggregate':\n return { method, data: { value: null } };\n case 'getMetricBreakdown':\n case 'getScoreBreakdown':\n return { method, data: { groups: [] } };\n case 'getMetricTimeSeries':\n case 'getMetricPercentiles':\n case 'getScoreTimeSeries':\n case 'getScorePercentiles':\n return { method, data: { series: [] } };\n }\n}\n\n/** Runs a request on the client; an unsatisfiable one answers empty without a call. */\nexport async function sendRequest(client: MastraClient, request: DashboardRequest): Promise<DashboardAnswer> {\n if (request.unsatisfiable) return emptyAnswer(request.method);\n switch (request.method) {\n case 'aggregateTraces':\n return { method: request.method, data: await client.aggregateTraces(request.args) };\n case 'aggregateSpans':\n return { method: request.method, data: await client.aggregateSpans(request.args) };\n case 'getMetricAggregate':\n return { method: request.method, data: await client.getMetricAggregate(request.args) };\n case 'getMetricBreakdown':\n return { method: request.method, data: await client.getMetricBreakdown(request.args) };\n case 'getMetricTimeSeries':\n return { method: request.method, data: await client.getMetricTimeSeries(request.args) };\n case 'getMetricPercentiles':\n return { method: request.method, data: await client.getMetricPercentiles(request.args) };\n case 'getScoreAggregate':\n return { method: request.method, data: await client.getScoreAggregate(request.args) };\n case 'getScoreBreakdown':\n return { method: request.method, data: await client.getScoreBreakdown(request.args) };\n case 'getScoreTimeSeries':\n return { method: request.method, data: await client.getScoreTimeSeries(request.args) };\n case 'getScorePercentiles':\n return { method: request.method, data: await client.getScorePercentiles(request.args) };\n }\n}\n\n/**\n * The React Query key. Answers are cached tagged with their method, so they live under the dashboards'\n * own keys rather than `useTraceAggregate`'s, whose entries hold the bare response.\n */\nexport function requestKey(request: DashboardRequest): readonly unknown[] {\n if (request.unsatisfiable) return ['dashboards', 'unsatisfiable', request.method];\n return ['dashboards', request.method, request.args];\n}\n\n/** Whether a query needs the trace or span aggregate gate. */\nexport const aggregateSource = (query: DashboardQuery) =>\n query.source === 'traceAggregate' ? 'trace' : query.source === 'spanAggregate' ? 'span' : undefined;\n"],"mappings":"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"}
1
+ {"version":3,"file":"requests.cjs.js","names":["intersectFilters","bucketPlan","toTraceAggregateTimeRange","previousWindow","AGGREGATE_PRIORITY"],"sources":["../../../../src/domains/dashboards/lib/requests.ts"],"sourcesContent":["import type { AggregateSpansArgs, AggregateTracesArgs, DashboardQuery, MastraClient } from '@mastra/client-js';\nimport type { MetricsQueryFilters } from '@mastra/react/hooks/metrics';\nimport { bucketPlan } from '../../metrics/lib/metrics-buckets';\nimport { AGGREGATE_PRIORITY } from '../../metrics/lib/request-limiter';\nimport type { AggregatePriority } from '../../metrics/lib/request-limiter';\nimport { previousWindow } from '../../metrics/lib/time-window';\nimport { toTraceAggregateTimeRange } from '../../metrics/lib/trace-aggregate';\nimport { intersectFilters } from './filters';\n\ntype Window = { start: Date; end: Date };\ntype Interval = '1h' | '1d';\ntype Args<M extends keyof MastraClient> = MastraClient[M] extends (args: infer A, ...rest: never[]) => unknown\n ? A\n : never;\n\ntype Call =\n | { method: 'aggregateTraces'; args: AggregateTracesArgs; priority?: AggregatePriority }\n | { method: 'aggregateSpans'; args: AggregateSpansArgs; priority?: AggregatePriority }\n | { method: 'getMetricAggregate'; args: Args<'getMetricAggregate'> }\n | { method: 'getMetricBreakdown'; args: Args<'getMetricBreakdown'> }\n | { method: 'getMetricTimeSeries'; args: Args<'getMetricTimeSeries'> }\n | { method: 'getMetricPercentiles'; args: Args<'getMetricPercentiles'> }\n | { method: 'getScoreAggregate'; args: Args<'getScoreAggregate'> }\n | { method: 'getScoreBreakdown'; args: Args<'getScoreBreakdown'> }\n | { method: 'getScoreTimeSeries'; args: Args<'getScoreTimeSeries'> }\n | { method: 'getScorePercentiles'; args: Args<'getScorePercentiles'> }\n | { method: 'listScores'; args: Args<'listScores'> };\n\n/** One call a dashboard query makes, with the args it sends. */\nexport type DashboardRequest = Call & {\n /** Its filters contradict the page's, so nothing can match: it isn't sent and answers empty. */\n unsatisfiable?: true;\n};\n\nexport type DashboardRequestMethod = DashboardRequest['method'];\n\ntype Answers = { [M in DashboardRequestMethod]: Awaited<ReturnType<MastraClient[M]>> };\n\n/** A request's answer, tagged with the method that produced it so a widget narrows it by `method`. */\nexport type DashboardAnswer = {\n [M in DashboardRequestMethod]: { method: M; data: Answers[M] };\n}[DashboardRequestMethod];\n\n/**\n * Where a request's answer stands, as plain data: what a widget renders from, whoever fetched it.\n * `isLoading` has no answer yet; `isRefetching` has one and is fetching it again.\n */\nexport type DashboardResult = {\n data?: DashboardAnswer;\n isLoading: boolean;\n isRefetching: boolean;\n isError: boolean;\n error?: unknown;\n};\n\ntype TraceWhere = NonNullable<AggregateTracesArgs['where']>;\ntype SpanWhere = NonNullable<AggregateSpansArgs['where']>;\n\n/** What the page adds to every widget's query: its frozen window and its filter bar. */\nexport type DashboardPageContext = {\n window: Window;\n /** The page's metrics and scores filters, `timestamp` included. */\n filters: MetricsQueryFilters['filters'];\n /** The filter bar as trace and span predicates, from the aggregate gates. */\n traceWhere?: TraceWhere;\n spanWhere?: SpanWhere;\n};\n\n/** How the widget kind sends a query. */\nexport type DashboardRequestOptions = {\n /** The bucket size, for a query that doesn't set its own. Unset sends the query as written. */\n interval?: Interval;\n};\n\n/** The widget's predicate and the page's, both required; the widget's comes first. */\nfunction andTrace(widget: TraceWhere | undefined, page: TraceWhere | undefined): TraceWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\nfunction andSpan(widget: SpanWhere | undefined, page: SpanWhere | undefined): SpanWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\ntype ValuesQuery = Extract<DashboardQuery, { source: 'metrics' | 'scores' }>;\n\n/**\n * A metrics or scores query's args, the page's filters intersected with its own, over `window`;\n * `unsatisfiable` when they contradict.\n */\nfunction valuesArgs<Q extends ValuesQuery>(query: Q, page: DashboardPageContext, window: Window) {\n const { source: _source, id: _id, request, compare, filters, ...rest } = query;\n const combined = intersectFilters(page.filters, filters);\n return {\n unsatisfiable: combined === undefined ? (true as const) : undefined,\n args: {\n ...rest,\n filters: { ...(combined ?? page.filters), timestamp: window },\n // An aggregate compares in the same request; anything else sends a second one over `window`.\n comparePeriod: request === 'aggregate' && compare === 'previousWindow' ? ('previous_period' as const) : undefined,\n },\n };\n}\n\n/**\n * The query with the page's filter bar ANDed in, as `buildRequest` applies it, but without the time\n * window: trace and span predicates joined with `and`, metrics and scores filters intersected.\n * `'unsatisfiable'` when the filters contradict, so nothing can match.\n */\nexport function pageQuery(query: DashboardQuery, page: DashboardPageContext): DashboardQuery | 'unsatisfiable' {\n if (query.source === 'traceAggregate') {\n const where = andTrace(query.where, page.traceWhere);\n return where ? { ...query, where } : query;\n }\n if (query.source === 'spanAggregate') {\n const where = andSpan(query.where, page.spanWhere);\n return where ? { ...query, where } : query;\n }\n const combined = intersectFilters(page.filters, query.filters);\n if (combined === undefined) return 'unsatisfiable';\n const { timestamp: _timestamp, ...filters } = combined;\n const { filters: _own, ...rest } = query;\n return Object.keys(filters).length > 0 ? { ...rest, filters } : rest;\n}\n\n/** A bucketed request's interval: its own, else the kind's, else the bar charts' for `window`. */\nfunction bucketOf<I extends string>(own: I | undefined, interval: Interval | undefined, window: Window) {\n return own ?? interval ?? bucketPlan(window.start, window.end).interval;\n}\n\n/**\n * The request a query sends over `window`, the page's filters ANDed with the widget's: trace and span\n * predicates are joined with `and`; metrics and scores filters intersect (`intersectFilters`), and a\n * contradiction marks the request unsatisfiable. A scores query without a scorer sends nothing: the\n * `scores` kind expands it per scorer first.\n */\nexport function buildRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n { interval }: DashboardRequestOptions,\n window: Window = page.window,\n priority?: AggregatePriority,\n): DashboardRequest | undefined {\n if (query.source === 'traceAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateTraces',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andTrace(where, page.traceWhere),\n },\n priority,\n };\n }\n if (query.source === 'spanAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateSpans',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andSpan(where, page.spanWhere),\n },\n priority,\n };\n }\n if (query.source === 'metrics') {\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricAggregate', args, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricBreakdown', args, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricPercentiles', args: bucketed, unsatisfiable };\n }\n }\n }\n const { scorerId } = query;\n if (scorerId === undefined) return undefined;\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreAggregate', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreBreakdown', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScoreTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScorePercentiles', args: bucketed, unsatisfiable };\n }\n }\n}\n\n/** Whether a query asks for the previous window as a request of its own. */\nexport function sendsPreviousRequest(query: DashboardQuery) {\n if (query.compare !== 'previousWindow') return false;\n return !((query.source === 'metrics' || query.source === 'scores') && query.request === 'aggregate');\n}\n\n/** The previous window's request, sent last so the widget never waits on it. */\nexport function buildPreviousRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n options: DashboardRequestOptions,\n): DashboardRequest | undefined {\n if (!sendsPreviousRequest(query)) return undefined;\n return buildRequest(query, page, options, previousWindow(page.window), AGGREGATE_PRIORITY.last);\n}\n\n/** What an unsatisfiable request answers: nothing matched. */\nexport function emptyAnswer(method: DashboardRequestMethod): DashboardAnswer {\n switch (method) {\n case 'aggregateTraces':\n case 'aggregateSpans':\n return { method, data: { rows: [], truncated: false } };\n case 'getMetricAggregate':\n case 'getScoreAggregate':\n return { method, data: { value: null } };\n case 'getMetricBreakdown':\n case 'getScoreBreakdown':\n return { method, data: { groups: [] } };\n case 'getMetricTimeSeries':\n case 'getMetricPercentiles':\n case 'getScoreTimeSeries':\n case 'getScorePercentiles':\n return { method, data: { series: [] } };\n case 'listScores':\n return { method, data: { scores: [], pagination: { total: 0, page: 0, perPage: 0, hasMore: false } } };\n }\n}\n\n/** Runs a request on the client; an unsatisfiable one answers empty without a call. */\nexport async function sendRequest(client: MastraClient, request: DashboardRequest): Promise<DashboardAnswer> {\n if (request.unsatisfiable) return emptyAnswer(request.method);\n switch (request.method) {\n case 'aggregateTraces':\n return { method: request.method, data: await client.aggregateTraces(request.args) };\n case 'aggregateSpans':\n return { method: request.method, data: await client.aggregateSpans(request.args) };\n case 'getMetricAggregate':\n return { method: request.method, data: await client.getMetricAggregate(request.args) };\n case 'getMetricBreakdown':\n return { method: request.method, data: await client.getMetricBreakdown(request.args) };\n case 'getMetricTimeSeries':\n return { method: request.method, data: await client.getMetricTimeSeries(request.args) };\n case 'getMetricPercentiles':\n return { method: request.method, data: await client.getMetricPercentiles(request.args) };\n case 'getScoreAggregate':\n return { method: request.method, data: await client.getScoreAggregate(request.args) };\n case 'getScoreBreakdown':\n return { method: request.method, data: await client.getScoreBreakdown(request.args) };\n case 'getScoreTimeSeries':\n return { method: request.method, data: await client.getScoreTimeSeries(request.args) };\n case 'getScorePercentiles':\n return { method: request.method, data: await client.getScorePercentiles(request.args) };\n case 'listScores':\n return { method: request.method, data: await client.listScores(request.args) };\n }\n}\n\n/**\n * The React Query key. Answers are cached tagged with their method, so they live under the dashboards'\n * own keys rather than `useTraceAggregate`'s, whose entries hold the bare response.\n */\nexport function requestKey(request: DashboardRequest): readonly unknown[] {\n if (request.unsatisfiable) return ['dashboards', 'unsatisfiable', request.method];\n return ['dashboards', request.method, request.args];\n}\n\n/** Whether a query needs the trace or span aggregate gate. */\nexport const aggregateSource = (query: DashboardQuery) =>\n query.source === 'traceAggregate' ? 'trace' : query.source === 'spanAggregate' ? 'span' : undefined;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { AGGREGATE_PRIORITY } from "../../metrics/lib/request-limiter.es.js";
2
1
  import { bucketPlan } from "../../metrics/lib/metrics-buckets.es.js";
3
- import { toTraceAggregateTimeRange } from "../../metrics/lib/trace-aggregate.es.js";
2
+ import { AGGREGATE_PRIORITY } from "../../metrics/lib/request-limiter.es.js";
4
3
  import { previousWindow } from "../../metrics/lib/time-window.es.js";
4
+ import { toTraceAggregateTimeRange } from "../../metrics/lib/trace-aggregate.es.js";
5
5
  import { intersectFilters } from "./filters.es.js";
6
6
  // src/domains/dashboards/lib/requests.ts
7
7
  /** The widget's predicate and the page's, both required; the widget's comes first. */
@@ -36,6 +36,35 @@ function valuesArgs(query, page, window) {
36
36
  }
37
37
  };
38
38
  }
39
+ /**
40
+ * The query with the page's filter bar ANDed in, as `buildRequest` applies it, but without the time
41
+ * window: trace and span predicates joined with `and`, metrics and scores filters intersected.
42
+ * `'unsatisfiable'` when the filters contradict, so nothing can match.
43
+ */
44
+ function pageQuery(query, page) {
45
+ if (query.source === "traceAggregate") {
46
+ const where = andTrace(query.where, page.traceWhere);
47
+ return where ? {
48
+ ...query,
49
+ where
50
+ } : query;
51
+ }
52
+ if (query.source === "spanAggregate") {
53
+ const where = andSpan(query.where, page.spanWhere);
54
+ return where ? {
55
+ ...query,
56
+ where
57
+ } : query;
58
+ }
59
+ const combined = intersectFilters(page.filters, query.filters);
60
+ if (combined === void 0) return "unsatisfiable";
61
+ const { timestamp: _timestamp, ...filters } = combined;
62
+ const { filters: _own, ...rest } = query;
63
+ return Object.keys(filters).length > 0 ? {
64
+ ...rest,
65
+ filters
66
+ } : rest;
67
+ }
39
68
  /** A bucketed request's interval: its own, else the kind's, else the bar charts' for `window`. */
40
69
  function bucketOf(own, interval, window) {
41
70
  return own ?? interval ?? bucketPlan(window.start, window.end).interval;
@@ -202,6 +231,18 @@ function emptyAnswer(method) {
202
231
  method,
203
232
  data: { series: [] }
204
233
  };
234
+ case "listScores": return {
235
+ method,
236
+ data: {
237
+ scores: [],
238
+ pagination: {
239
+ total: 0,
240
+ page: 0,
241
+ perPage: 0,
242
+ hasMore: false
243
+ }
244
+ }
245
+ };
205
246
  }
206
247
  }
207
248
  /** Runs a request on the client; an unsatisfiable one answers empty without a call. */
@@ -248,6 +289,10 @@ async function sendRequest(client, request) {
248
289
  method: request.method,
249
290
  data: await client.getScorePercentiles(request.args)
250
291
  };
292
+ case "listScores": return {
293
+ method: request.method,
294
+ data: await client.listScores(request.args)
295
+ };
251
296
  }
252
297
  }
253
298
  /**
@@ -268,6 +313,6 @@ function requestKey(request) {
268
313
  }
269
314
  /** Whether a query needs the trace or span aggregate gate. */
270
315
  var aggregateSource = (query) => query.source === "traceAggregate" ? "trace" : query.source === "spanAggregate" ? "span" : void 0;
271
- export { aggregateSource, buildPreviousRequest, buildRequest, requestKey, sendRequest, sendsPreviousRequest };
316
+ export { aggregateSource, buildPreviousRequest, buildRequest, emptyAnswer, pageQuery, requestKey, sendRequest, sendsPreviousRequest };
272
317
 
273
318
  //# sourceMappingURL=requests.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"requests.es.js","names":[],"sources":["../../../../src/domains/dashboards/lib/requests.ts"],"sourcesContent":["import type { AggregateSpansArgs, AggregateTracesArgs, DashboardQuery, MastraClient } from '@mastra/client-js';\nimport type { MetricsQueryFilters } from '@mastra/react/hooks/metrics';\nimport { bucketPlan } from '../../metrics/lib/metrics-buckets';\nimport { AGGREGATE_PRIORITY } from '../../metrics/lib/request-limiter';\nimport type { AggregatePriority } from '../../metrics/lib/request-limiter';\nimport { previousWindow } from '../../metrics/lib/time-window';\nimport { toTraceAggregateTimeRange } from '../../metrics/lib/trace-aggregate';\nimport { intersectFilters } from './filters';\n\ntype Window = { start: Date; end: Date };\ntype Interval = '1h' | '1d';\ntype Args<M extends keyof MastraClient> = MastraClient[M] extends (args: infer A, ...rest: never[]) => unknown\n ? A\n : never;\n\ntype Call =\n | { method: 'aggregateTraces'; args: AggregateTracesArgs; priority?: AggregatePriority }\n | { method: 'aggregateSpans'; args: AggregateSpansArgs; priority?: AggregatePriority }\n | { method: 'getMetricAggregate'; args: Args<'getMetricAggregate'> }\n | { method: 'getMetricBreakdown'; args: Args<'getMetricBreakdown'> }\n | { method: 'getMetricTimeSeries'; args: Args<'getMetricTimeSeries'> }\n | { method: 'getMetricPercentiles'; args: Args<'getMetricPercentiles'> }\n | { method: 'getScoreAggregate'; args: Args<'getScoreAggregate'> }\n | { method: 'getScoreBreakdown'; args: Args<'getScoreBreakdown'> }\n | { method: 'getScoreTimeSeries'; args: Args<'getScoreTimeSeries'> }\n | { method: 'getScorePercentiles'; args: Args<'getScorePercentiles'> };\n\n/** One call a dashboard query makes, with the args it sends. */\nexport type DashboardRequest = Call & {\n /** Its filters contradict the page's, so nothing can match: it isn't sent and answers empty. */\n unsatisfiable?: true;\n};\n\nexport type DashboardRequestMethod = DashboardRequest['method'];\n\ntype Answers = { [M in DashboardRequestMethod]: Awaited<ReturnType<MastraClient[M]>> };\n\n/** A request's answer, tagged with the method that produced it so a widget narrows it by `method`. */\nexport type DashboardAnswer = {\n [M in DashboardRequestMethod]: { method: M; data: Answers[M] };\n}[DashboardRequestMethod];\n\ntype TraceWhere = NonNullable<AggregateTracesArgs['where']>;\ntype SpanWhere = NonNullable<AggregateSpansArgs['where']>;\n\n/** What the page adds to every widget's query: its frozen window and its filter bar. */\nexport type DashboardPageContext = {\n window: Window;\n /** The page's metrics and scores filters, `timestamp` included. */\n filters: MetricsQueryFilters['filters'];\n /** The filter bar as trace and span predicates, from the aggregate gates. */\n traceWhere?: TraceWhere;\n spanWhere?: SpanWhere;\n};\n\n/** How the widget kind sends a query. */\nexport type DashboardRequestOptions = {\n /** The bucket size, for a query that doesn't set its own. Unset sends the query as written. */\n interval?: Interval;\n};\n\n/** The widget's predicate and the page's, both required; the widget's comes first. */\nfunction andTrace(widget: TraceWhere | undefined, page: TraceWhere | undefined): TraceWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\nfunction andSpan(widget: SpanWhere | undefined, page: SpanWhere | undefined): SpanWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\ntype ValuesQuery = Extract<DashboardQuery, { source: 'metrics' | 'scores' }>;\n\n/**\n * A metrics or scores query's args, the page's filters intersected with its own, over `window`;\n * `unsatisfiable` when they contradict.\n */\nfunction valuesArgs<Q extends ValuesQuery>(query: Q, page: DashboardPageContext, window: Window) {\n const { source: _source, id: _id, request, compare, filters, ...rest } = query;\n const combined = intersectFilters(page.filters, filters);\n return {\n unsatisfiable: combined === undefined ? (true as const) : undefined,\n args: {\n ...rest,\n filters: { ...(combined ?? page.filters), timestamp: window },\n // An aggregate compares in the same request; anything else sends a second one over `window`.\n comparePeriod: request === 'aggregate' && compare === 'previousWindow' ? ('previous_period' as const) : undefined,\n },\n };\n}\n\n/** A bucketed request's interval: its own, else the kind's, else the bar charts' for `window`. */\nfunction bucketOf<I extends string>(own: I | undefined, interval: Interval | undefined, window: Window) {\n return own ?? interval ?? bucketPlan(window.start, window.end).interval;\n}\n\n/**\n * The request a query sends over `window`, the page's filters ANDed with the widget's: trace and span\n * predicates are joined with `and`; metrics and scores filters intersect (`intersectFilters`), and a\n * contradiction marks the request unsatisfiable. A scores query without a scorer sends nothing: the\n * `scores` kind expands it per scorer first.\n */\nexport function buildRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n { interval }: DashboardRequestOptions,\n window: Window = page.window,\n priority?: AggregatePriority,\n): DashboardRequest | undefined {\n if (query.source === 'traceAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateTraces',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andTrace(where, page.traceWhere),\n },\n priority,\n };\n }\n if (query.source === 'spanAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateSpans',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andSpan(where, page.spanWhere),\n },\n priority,\n };\n }\n if (query.source === 'metrics') {\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricAggregate', args, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricBreakdown', args, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricPercentiles', args: bucketed, unsatisfiable };\n }\n }\n }\n const { scorerId } = query;\n if (scorerId === undefined) return undefined;\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreAggregate', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreBreakdown', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScoreTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScorePercentiles', args: bucketed, unsatisfiable };\n }\n }\n}\n\n/** Whether a query asks for the previous window as a request of its own. */\nexport function sendsPreviousRequest(query: DashboardQuery) {\n if (query.compare !== 'previousWindow') return false;\n return !((query.source === 'metrics' || query.source === 'scores') && query.request === 'aggregate');\n}\n\n/** The previous window's request, sent last so the widget never waits on it. */\nexport function buildPreviousRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n options: DashboardRequestOptions,\n): DashboardRequest | undefined {\n if (!sendsPreviousRequest(query)) return undefined;\n return buildRequest(query, page, options, previousWindow(page.window), AGGREGATE_PRIORITY.last);\n}\n\n/** What an unsatisfiable request answers: nothing matched. */\nfunction emptyAnswer(method: DashboardRequestMethod): DashboardAnswer {\n switch (method) {\n case 'aggregateTraces':\n case 'aggregateSpans':\n return { method, data: { rows: [], truncated: false } };\n case 'getMetricAggregate':\n case 'getScoreAggregate':\n return { method, data: { value: null } };\n case 'getMetricBreakdown':\n case 'getScoreBreakdown':\n return { method, data: { groups: [] } };\n case 'getMetricTimeSeries':\n case 'getMetricPercentiles':\n case 'getScoreTimeSeries':\n case 'getScorePercentiles':\n return { method, data: { series: [] } };\n }\n}\n\n/** Runs a request on the client; an unsatisfiable one answers empty without a call. */\nexport async function sendRequest(client: MastraClient, request: DashboardRequest): Promise<DashboardAnswer> {\n if (request.unsatisfiable) return emptyAnswer(request.method);\n switch (request.method) {\n case 'aggregateTraces':\n return { method: request.method, data: await client.aggregateTraces(request.args) };\n case 'aggregateSpans':\n return { method: request.method, data: await client.aggregateSpans(request.args) };\n case 'getMetricAggregate':\n return { method: request.method, data: await client.getMetricAggregate(request.args) };\n case 'getMetricBreakdown':\n return { method: request.method, data: await client.getMetricBreakdown(request.args) };\n case 'getMetricTimeSeries':\n return { method: request.method, data: await client.getMetricTimeSeries(request.args) };\n case 'getMetricPercentiles':\n return { method: request.method, data: await client.getMetricPercentiles(request.args) };\n case 'getScoreAggregate':\n return { method: request.method, data: await client.getScoreAggregate(request.args) };\n case 'getScoreBreakdown':\n return { method: request.method, data: await client.getScoreBreakdown(request.args) };\n case 'getScoreTimeSeries':\n return { method: request.method, data: await client.getScoreTimeSeries(request.args) };\n case 'getScorePercentiles':\n return { method: request.method, data: await client.getScorePercentiles(request.args) };\n }\n}\n\n/**\n * The React Query key. Answers are cached tagged with their method, so they live under the dashboards'\n * own keys rather than `useTraceAggregate`'s, whose entries hold the bare response.\n */\nexport function requestKey(request: DashboardRequest): readonly unknown[] {\n if (request.unsatisfiable) return ['dashboards', 'unsatisfiable', request.method];\n return ['dashboards', request.method, request.args];\n}\n\n/** Whether a query needs the trace or span aggregate gate. */\nexport const aggregateSource = (query: DashboardQuery) =>\n query.source === 'traceAggregate' ? 'trace' : query.source === 'spanAggregate' ? 'span' : undefined;\n"],"mappings":"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"}
1
+ {"version":3,"file":"requests.es.js","names":[],"sources":["../../../../src/domains/dashboards/lib/requests.ts"],"sourcesContent":["import type { AggregateSpansArgs, AggregateTracesArgs, DashboardQuery, MastraClient } from '@mastra/client-js';\nimport type { MetricsQueryFilters } from '@mastra/react/hooks/metrics';\nimport { bucketPlan } from '../../metrics/lib/metrics-buckets';\nimport { AGGREGATE_PRIORITY } from '../../metrics/lib/request-limiter';\nimport type { AggregatePriority } from '../../metrics/lib/request-limiter';\nimport { previousWindow } from '../../metrics/lib/time-window';\nimport { toTraceAggregateTimeRange } from '../../metrics/lib/trace-aggregate';\nimport { intersectFilters } from './filters';\n\ntype Window = { start: Date; end: Date };\ntype Interval = '1h' | '1d';\ntype Args<M extends keyof MastraClient> = MastraClient[M] extends (args: infer A, ...rest: never[]) => unknown\n ? A\n : never;\n\ntype Call =\n | { method: 'aggregateTraces'; args: AggregateTracesArgs; priority?: AggregatePriority }\n | { method: 'aggregateSpans'; args: AggregateSpansArgs; priority?: AggregatePriority }\n | { method: 'getMetricAggregate'; args: Args<'getMetricAggregate'> }\n | { method: 'getMetricBreakdown'; args: Args<'getMetricBreakdown'> }\n | { method: 'getMetricTimeSeries'; args: Args<'getMetricTimeSeries'> }\n | { method: 'getMetricPercentiles'; args: Args<'getMetricPercentiles'> }\n | { method: 'getScoreAggregate'; args: Args<'getScoreAggregate'> }\n | { method: 'getScoreBreakdown'; args: Args<'getScoreBreakdown'> }\n | { method: 'getScoreTimeSeries'; args: Args<'getScoreTimeSeries'> }\n | { method: 'getScorePercentiles'; args: Args<'getScorePercentiles'> }\n | { method: 'listScores'; args: Args<'listScores'> };\n\n/** One call a dashboard query makes, with the args it sends. */\nexport type DashboardRequest = Call & {\n /** Its filters contradict the page's, so nothing can match: it isn't sent and answers empty. */\n unsatisfiable?: true;\n};\n\nexport type DashboardRequestMethod = DashboardRequest['method'];\n\ntype Answers = { [M in DashboardRequestMethod]: Awaited<ReturnType<MastraClient[M]>> };\n\n/** A request's answer, tagged with the method that produced it so a widget narrows it by `method`. */\nexport type DashboardAnswer = {\n [M in DashboardRequestMethod]: { method: M; data: Answers[M] };\n}[DashboardRequestMethod];\n\n/**\n * Where a request's answer stands, as plain data: what a widget renders from, whoever fetched it.\n * `isLoading` has no answer yet; `isRefetching` has one and is fetching it again.\n */\nexport type DashboardResult = {\n data?: DashboardAnswer;\n isLoading: boolean;\n isRefetching: boolean;\n isError: boolean;\n error?: unknown;\n};\n\ntype TraceWhere = NonNullable<AggregateTracesArgs['where']>;\ntype SpanWhere = NonNullable<AggregateSpansArgs['where']>;\n\n/** What the page adds to every widget's query: its frozen window and its filter bar. */\nexport type DashboardPageContext = {\n window: Window;\n /** The page's metrics and scores filters, `timestamp` included. */\n filters: MetricsQueryFilters['filters'];\n /** The filter bar as trace and span predicates, from the aggregate gates. */\n traceWhere?: TraceWhere;\n spanWhere?: SpanWhere;\n};\n\n/** How the widget kind sends a query. */\nexport type DashboardRequestOptions = {\n /** The bucket size, for a query that doesn't set its own. Unset sends the query as written. */\n interval?: Interval;\n};\n\n/** The widget's predicate and the page's, both required; the widget's comes first. */\nfunction andTrace(widget: TraceWhere | undefined, page: TraceWhere | undefined): TraceWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\nfunction andSpan(widget: SpanWhere | undefined, page: SpanWhere | undefined): SpanWhere | undefined {\n return widget && page ? { op: 'and', args: [widget, page] } : (widget ?? page);\n}\n\ntype ValuesQuery = Extract<DashboardQuery, { source: 'metrics' | 'scores' }>;\n\n/**\n * A metrics or scores query's args, the page's filters intersected with its own, over `window`;\n * `unsatisfiable` when they contradict.\n */\nfunction valuesArgs<Q extends ValuesQuery>(query: Q, page: DashboardPageContext, window: Window) {\n const { source: _source, id: _id, request, compare, filters, ...rest } = query;\n const combined = intersectFilters(page.filters, filters);\n return {\n unsatisfiable: combined === undefined ? (true as const) : undefined,\n args: {\n ...rest,\n filters: { ...(combined ?? page.filters), timestamp: window },\n // An aggregate compares in the same request; anything else sends a second one over `window`.\n comparePeriod: request === 'aggregate' && compare === 'previousWindow' ? ('previous_period' as const) : undefined,\n },\n };\n}\n\n/**\n * The query with the page's filter bar ANDed in, as `buildRequest` applies it, but without the time\n * window: trace and span predicates joined with `and`, metrics and scores filters intersected.\n * `'unsatisfiable'` when the filters contradict, so nothing can match.\n */\nexport function pageQuery(query: DashboardQuery, page: DashboardPageContext): DashboardQuery | 'unsatisfiable' {\n if (query.source === 'traceAggregate') {\n const where = andTrace(query.where, page.traceWhere);\n return where ? { ...query, where } : query;\n }\n if (query.source === 'spanAggregate') {\n const where = andSpan(query.where, page.spanWhere);\n return where ? { ...query, where } : query;\n }\n const combined = intersectFilters(page.filters, query.filters);\n if (combined === undefined) return 'unsatisfiable';\n const { timestamp: _timestamp, ...filters } = combined;\n const { filters: _own, ...rest } = query;\n return Object.keys(filters).length > 0 ? { ...rest, filters } : rest;\n}\n\n/** A bucketed request's interval: its own, else the kind's, else the bar charts' for `window`. */\nfunction bucketOf<I extends string>(own: I | undefined, interval: Interval | undefined, window: Window) {\n return own ?? interval ?? bucketPlan(window.start, window.end).interval;\n}\n\n/**\n * The request a query sends over `window`, the page's filters ANDed with the widget's: trace and span\n * predicates are joined with `and`; metrics and scores filters intersect (`intersectFilters`), and a\n * contradiction marks the request unsatisfiable. A scores query without a scorer sends nothing: the\n * `scores` kind expands it per scorer first.\n */\nexport function buildRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n { interval }: DashboardRequestOptions,\n window: Window = page.window,\n priority?: AggregatePriority,\n): DashboardRequest | undefined {\n if (query.source === 'traceAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateTraces',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andTrace(where, page.traceWhere),\n },\n priority,\n };\n }\n if (query.source === 'spanAggregate') {\n const { source: _source, id: _id, compare: _compare, where, interval: own, ...rest } = query;\n return {\n method: 'aggregateSpans',\n args: {\n timeRange: toTraceAggregateTimeRange(window),\n ...rest,\n interval: own ?? interval,\n where: andSpan(where, page.spanWhere),\n },\n priority,\n };\n }\n if (query.source === 'metrics') {\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricAggregate', args, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getMetricBreakdown', args, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getMetricPercentiles', args: bucketed, unsatisfiable };\n }\n }\n }\n const { scorerId } = query;\n if (scorerId === undefined) return undefined;\n switch (query.request) {\n case 'aggregate': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreAggregate', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'breakdown': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n return { method: 'getScoreBreakdown', args: { ...args, scorerId }, unsatisfiable };\n }\n case 'timeSeries': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScoreTimeSeries', args: bucketed, unsatisfiable };\n }\n case 'percentiles': {\n const { args, unsatisfiable } = valuesArgs(query, page, window);\n const bucketed = { ...args, scorerId, interval: bucketOf(query.interval, interval, window) };\n return { method: 'getScorePercentiles', args: bucketed, unsatisfiable };\n }\n }\n}\n\n/** Whether a query asks for the previous window as a request of its own. */\nexport function sendsPreviousRequest(query: DashboardQuery) {\n if (query.compare !== 'previousWindow') return false;\n return !((query.source === 'metrics' || query.source === 'scores') && query.request === 'aggregate');\n}\n\n/** The previous window's request, sent last so the widget never waits on it. */\nexport function buildPreviousRequest(\n query: DashboardQuery,\n page: DashboardPageContext,\n options: DashboardRequestOptions,\n): DashboardRequest | undefined {\n if (!sendsPreviousRequest(query)) return undefined;\n return buildRequest(query, page, options, previousWindow(page.window), AGGREGATE_PRIORITY.last);\n}\n\n/** What an unsatisfiable request answers: nothing matched. */\nexport function emptyAnswer(method: DashboardRequestMethod): DashboardAnswer {\n switch (method) {\n case 'aggregateTraces':\n case 'aggregateSpans':\n return { method, data: { rows: [], truncated: false } };\n case 'getMetricAggregate':\n case 'getScoreAggregate':\n return { method, data: { value: null } };\n case 'getMetricBreakdown':\n case 'getScoreBreakdown':\n return { method, data: { groups: [] } };\n case 'getMetricTimeSeries':\n case 'getMetricPercentiles':\n case 'getScoreTimeSeries':\n case 'getScorePercentiles':\n return { method, data: { series: [] } };\n case 'listScores':\n return { method, data: { scores: [], pagination: { total: 0, page: 0, perPage: 0, hasMore: false } } };\n }\n}\n\n/** Runs a request on the client; an unsatisfiable one answers empty without a call. */\nexport async function sendRequest(client: MastraClient, request: DashboardRequest): Promise<DashboardAnswer> {\n if (request.unsatisfiable) return emptyAnswer(request.method);\n switch (request.method) {\n case 'aggregateTraces':\n return { method: request.method, data: await client.aggregateTraces(request.args) };\n case 'aggregateSpans':\n return { method: request.method, data: await client.aggregateSpans(request.args) };\n case 'getMetricAggregate':\n return { method: request.method, data: await client.getMetricAggregate(request.args) };\n case 'getMetricBreakdown':\n return { method: request.method, data: await client.getMetricBreakdown(request.args) };\n case 'getMetricTimeSeries':\n return { method: request.method, data: await client.getMetricTimeSeries(request.args) };\n case 'getMetricPercentiles':\n return { method: request.method, data: await client.getMetricPercentiles(request.args) };\n case 'getScoreAggregate':\n return { method: request.method, data: await client.getScoreAggregate(request.args) };\n case 'getScoreBreakdown':\n return { method: request.method, data: await client.getScoreBreakdown(request.args) };\n case 'getScoreTimeSeries':\n return { method: request.method, data: await client.getScoreTimeSeries(request.args) };\n case 'getScorePercentiles':\n return { method: request.method, data: await client.getScorePercentiles(request.args) };\n case 'listScores':\n return { method: request.method, data: await client.listScores(request.args) };\n }\n}\n\n/**\n * The React Query key. Answers are cached tagged with their method, so they live under the dashboards'\n * own keys rather than `useTraceAggregate`'s, whose entries hold the bare response.\n */\nexport function requestKey(request: DashboardRequest): readonly unknown[] {\n if (request.unsatisfiable) return ['dashboards', 'unsatisfiable', request.method];\n return ['dashboards', request.method, request.args];\n}\n\n/** Whether a query needs the trace or span aggregate gate. */\nexport const aggregateSource = (query: DashboardQuery) =>\n query.source === 'traceAggregate' ? 'trace' : query.source === 'spanAggregate' ? 'span' : undefined;\n"],"mappings":";;;;;;;AA2EA,SAAS,SAAS,QAAgC,MAAsD;CACtG,OAAO,UAAU,OAAO;EAAE,IAAI;EAAO,MAAM,CAAC,QAAQ,IAAI;CAAE,IAAK,UAAU;AAC3E;AAEA,SAAS,QAAQ,QAA+B,MAAoD;CAClG,OAAO,UAAU,OAAO;EAAE,IAAI;EAAO,MAAM,CAAC,QAAQ,IAAI;CAAE,IAAK,UAAU;AAC3E;;;;;AAQA,SAAS,WAAkC,OAAU,MAA4B,QAAgB;CAC/F,MAAM,EAAE,QAAQ,SAAS,IAAI,KAAK,SAAS,SAAS,SAAS,GAAG,SAAS;CACzE,MAAM,WAAW,iBAAiB,KAAK,SAAS,OAAO;CACvD,OAAO;EACL,eAAe,aAAa,KAAA,IAAa,OAAiB,KAAA;EAC1D,MAAM;GACJ,GAAG;GACH,SAAS;IAAE,GAAI,YAAY,KAAK;IAAU,WAAW;GAAO;GAE5D,eAAe,YAAY,eAAe,YAAY,mBAAoB,oBAA8B,KAAA;EAC1G;CACF;AACF;;;;;;AAOA,SAAgB,UAAU,OAAuB,MAA8D;CAC7G,IAAI,MAAM,WAAW,kBAAkB;EACrC,MAAM,QAAQ,SAAS,MAAM,OAAO,KAAK,UAAU;EACnD,OAAO,QAAQ;GAAE,GAAG;GAAO;EAAM,IAAI;CACvC;CACA,IAAI,MAAM,WAAW,iBAAiB;EACpC,MAAM,QAAQ,QAAQ,MAAM,OAAO,KAAK,SAAS;EACjD,OAAO,QAAQ;GAAE,GAAG;GAAO;EAAM,IAAI;CACvC;CACA,MAAM,WAAW,iBAAiB,KAAK,SAAS,MAAM,OAAO;CAC7D,IAAI,aAAa,KAAA,GAAW,OAAO;CACnC,MAAM,EAAE,WAAW,YAAY,GAAG,YAAY;CAC9C,MAAM,EAAE,SAAS,MAAM,GAAG,SAAS;CACnC,OAAO,OAAO,KAAK,OAAO,CAAC,CAAC,SAAS,IAAI;EAAE,GAAG;EAAM;CAAQ,IAAI;AAClE;;AAGA,SAAS,SAA2B,KAAoB,UAAgC,QAAgB;CACtG,OAAO,OAAO,YAAY,WAAW,OAAO,OAAO,OAAO,GAAG,CAAC,CAAC;AACjE;;;;;;;AAQA,SAAgB,aACd,OACA,MACA,EAAE,YACF,SAAiB,KAAK,QACtB,UAC8B;CAC9B,IAAI,MAAM,WAAW,kBAAkB;EACrC,MAAM,EAAE,QAAQ,SAAS,IAAI,KAAK,SAAS,UAAU,OAAO,UAAU,KAAK,GAAG,SAAS;EACvF,OAAO;GACL,QAAQ;GACR,MAAM;IACJ,WAAW,0BAA0B,MAAM;IAC3C,GAAG;IACH,UAAU,OAAO;IACjB,OAAO,SAAS,OAAO,KAAK,UAAU;GACxC;GACA;EACF;CACF;CACA,IAAI,MAAM,WAAW,iBAAiB;EACpC,MAAM,EAAE,QAAQ,SAAS,IAAI,KAAK,SAAS,UAAU,OAAO,UAAU,KAAK,GAAG,SAAS;EACvF,OAAO;GACL,QAAQ;GACR,MAAM;IACJ,WAAW,0BAA0B,MAAM;IAC3C,GAAG;IACH,UAAU,OAAO;IACjB,OAAO,QAAQ,OAAO,KAAK,SAAS;GACtC;GACA;EACF;CACF;CACA,IAAI,MAAM,WAAW,WACnB,QAAQ,MAAM,SAAd;EACE,KAAK,aAAa;GAChB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAC9D,OAAO;IAAE,QAAQ;IAAsB;IAAM;GAAc;EAC7D;EACA,KAAK,aAAa;GAChB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAC9D,OAAO;IAAE,QAAQ;IAAsB;IAAM;GAAc;EAC7D;EACA,KAAK,cAAc;GACjB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAE9D,OAAO;IAAE,QAAQ;IAAuB,MAAM;KAD3B,GAAG;KAAM,UAAU,SAAS,MAAM,UAAU,UAAU,MAAM;IACjC;IAAU;GAAc;EACxE;EACA,KAAK,eAAe;GAClB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAE9D,OAAO;IAAE,QAAQ;IAAwB,MAAM;KAD5B,GAAG;KAAM,UAAU,SAAS,MAAM,UAAU,UAAU,MAAM;IAChC;IAAU;GAAc;EACzE;CACF;CAEF,MAAM,EAAE,aAAa;CACrB,IAAI,aAAa,KAAA,GAAW,OAAO,KAAA;CACnC,QAAQ,MAAM,SAAd;EACE,KAAK,aAAa;GAChB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAC9D,OAAO;IAAE,QAAQ;IAAqB,MAAM;KAAE,GAAG;KAAM;IAAS;IAAG;GAAc;EACnF;EACA,KAAK,aAAa;GAChB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAC9D,OAAO;IAAE,QAAQ;IAAqB,MAAM;KAAE,GAAG;KAAM;IAAS;IAAG;GAAc;EACnF;EACA,KAAK,cAAc;GACjB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAE9D,OAAO;IAAE,QAAQ;IAAsB,MAAM;KAD1B,GAAG;KAAM;KAAU,UAAU,SAAS,MAAM,UAAU,UAAU,MAAM;IAC5C;IAAU;GAAc;EACvE;EACA,KAAK,eAAe;GAClB,MAAM,EAAE,MAAM,kBAAkB,WAAW,OAAO,MAAM,MAAM;GAE9D,OAAO;IAAE,QAAQ;IAAuB,MAAM;KAD3B,GAAG;KAAM;KAAU,UAAU,SAAS,MAAM,UAAU,UAAU,MAAM;IAC3C;IAAU;GAAc;EACxE;CACF;AACF;;AAGA,SAAgB,qBAAqB,OAAuB;CAC1D,IAAI,MAAM,YAAY,kBAAkB,OAAO;CAC/C,OAAO,GAAG,MAAM,WAAW,aAAa,MAAM,WAAW,aAAa,MAAM,YAAY;AAC1F;;AAGA,SAAgB,qBACd,OACA,MACA,SAC8B;CAC9B,IAAI,CAAC,qBAAqB,KAAK,GAAG,OAAO,KAAA;CACzC,OAAO,aAAa,OAAO,MAAM,SAAS,eAAe,KAAK,MAAM,GAAG,mBAAmB,IAAI;AAChG;;AAGA,SAAgB,YAAY,QAAiD;CAC3E,QAAQ,QAAR;EACE,KAAK;EACL,KAAK,kBACH,OAAO;GAAE;GAAQ,MAAM;IAAE,MAAM,CAAC;IAAG,WAAW;GAAM;EAAE;EACxD,KAAK;EACL,KAAK,qBACH,OAAO;GAAE;GAAQ,MAAM,EAAE,OAAO,KAAK;EAAE;EACzC,KAAK;EACL,KAAK,qBACH,OAAO;GAAE;GAAQ,MAAM,EAAE,QAAQ,CAAC,EAAE;EAAE;EACxC,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,uBACH,OAAO;GAAE;GAAQ,MAAM,EAAE,QAAQ,CAAC,EAAE;EAAE;EACxC,KAAK,cACH,OAAO;GAAE;GAAQ,MAAM;IAAE,QAAQ,CAAC;IAAG,YAAY;KAAE,OAAO;KAAG,MAAM;KAAG,SAAS;KAAG,SAAS;IAAM;GAAE;EAAE;CACzG;AACF;;AAGA,eAAsB,YAAY,QAAsB,SAAqD;CAC3G,IAAI,QAAQ,eAAe,OAAO,YAAY,QAAQ,MAAM;CAC5D,QAAQ,QAAQ,QAAhB;EACE,KAAK,mBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,gBAAgB,QAAQ,IAAI;EAAE;EACpF,KAAK,kBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,eAAe,QAAQ,IAAI;EAAE;EACnF,KAAK,sBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,mBAAmB,QAAQ,IAAI;EAAE;EACvF,KAAK,sBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,mBAAmB,QAAQ,IAAI;EAAE;EACvF,KAAK,uBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,oBAAoB,QAAQ,IAAI;EAAE;EACxF,KAAK,wBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,qBAAqB,QAAQ,IAAI;EAAE;EACzF,KAAK,qBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,kBAAkB,QAAQ,IAAI;EAAE;EACtF,KAAK,qBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,kBAAkB,QAAQ,IAAI;EAAE;EACtF,KAAK,sBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,mBAAmB,QAAQ,IAAI;EAAE;EACvF,KAAK,uBACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,oBAAoB,QAAQ,IAAI;EAAE;EACxF,KAAK,cACH,OAAO;GAAE,QAAQ,QAAQ;GAAQ,MAAM,MAAM,OAAO,WAAW,QAAQ,IAAI;EAAE;CACjF;AACF;;;;;AAMA,SAAgB,WAAW,SAA+C;CACxE,IAAI,QAAQ,eAAe,OAAO;EAAC;EAAc;EAAiB,QAAQ;CAAM;CAChF,OAAO;EAAC;EAAc,QAAQ;EAAQ,QAAQ;CAAI;AACpD;;AAGA,IAAa,mBAAmB,UAC9B,MAAM,WAAW,mBAAmB,UAAU,MAAM,WAAW,kBAAkB,SAAS,KAAA"}
@@ -21,6 +21,36 @@ function discoveredScorers(scores) {
21
21
  name: names.get(scorerId) ?? scorerId
22
22
  }));
23
23
  }
24
+ /** How many recent scores to read to find the scorers in the range (the API's page limit). */
25
+ var DISCOVERY_PAGE_SIZE = 100;
26
+ /**
27
+ * The range's most recent scores, read to find the scorers when the queries leave theirs out (the API
28
+ * can't list scorers); `undefined` when they name their own.
29
+ */
30
+ function scorerDiscoveryRequest(queries, page) {
31
+ if (!queries.some(needsScorer)) return void 0;
32
+ return {
33
+ method: "listScores",
34
+ args: {
35
+ filters: page.filters,
36
+ pagination: {
37
+ page: 0,
38
+ perPage: DISCOVERY_PAGE_SIZE
39
+ }
40
+ }
41
+ };
42
+ }
43
+ /**
44
+ * The scorers to chart: the queries' own scorer, or, when they leave it out, every scorer among the
45
+ * discovery request's answer, as the Scores card finds them.
46
+ */
47
+ function scorersOf(queries, discovery) {
48
+ if (!queries.some(needsScorer)) return ownScorers(queries);
49
+ return discoveredScorers((discovery?.method === "listScores" ? discovery.data.scores : []).map((s) => ({
50
+ scorerId: s.scorerId,
51
+ scorerName: s.scorerName ?? void 0
52
+ })));
53
+ }
24
54
  /** The query for one scorer: its own scorer if it names one, else `scorerId`. */
25
55
  var withScorer = (query, scorerId) => query?.source === "scores" && query.scorerId === void 0 ? {
26
56
  ...query,
@@ -52,6 +82,8 @@ function shapeScores(scorers, means, points, window, stepHours) {
52
82
  exports.discoveredScorers = discoveredScorers;
53
83
  exports.needsScorer = needsScorer;
54
84
  exports.ownScorers = ownScorers;
85
+ exports.scorerDiscoveryRequest = scorerDiscoveryRequest;
86
+ exports.scorersOf = scorersOf;
55
87
  exports.shapeScores = shapeScores;
56
88
  exports.withScorer = withScorer;
57
89
 
@@ -1 +1 @@
1
- {"version":3,"file":"scores.cjs.js","names":["bucketGrid","gridIndex","seriesOf","valueOf"],"sources":["../../../../src/domains/dashboards/lib/scores.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, gridIndex } from '../../metrics/lib/metrics-buckets';\nimport { seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer } from './requests';\n\nexport type Scorer = { scorerId: string; name: string };\n\nexport type ScoresBucket = BucketLabels & Record<string, number | string | undefined>;\n\n/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */\nexport const needsScorer = (query: DashboardQuery | undefined) =>\n query?.source === 'scores' && query.scorerId === undefined;\n\n/** The scorer the view's queries name themselves, when none of them leaves it out. */\nexport function ownScorers(queries: DashboardQuery[]): Scorer[] {\n const own = queries.find(q => q.source === 'scores' && q.scorerId);\n const scorerId = own?.source === 'scores' ? own.scorerId : undefined;\n return scorerId ? [{ scorerId, name: scorerId }] : [];\n}\n\n/** Every scorer among the recent scores, sorted by id, named as the scores name them. */\nexport function discoveredScorers(scores: { scorerId: string; scorerName?: string }[]): Scorer[] {\n const names = new Map(scores.map(s => [s.scorerId, s.scorerName ?? s.scorerId]));\n return [...names.keys()].toSorted().map(scorerId => ({ scorerId, name: names.get(scorerId) ?? scorerId }));\n}\n\n/** The query for one scorer: its own scorer if it names one, else `scorerId`. */\nexport const withScorer = (query: DashboardQuery | undefined, scorerId: string): DashboardQuery | undefined =>\n query?.source === 'scores' && query.scorerId === undefined ? { ...query, scorerId } : query;\n\n/**\n * Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's\n * mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold\n * one answer per scorer, in `scorers`' order.\n */\nexport function shapeScores(\n scorers: Scorer[],\n means: (DashboardAnswer | undefined)[],\n points: (DashboardAnswer | undefined)[],\n window: { start: Date; end: Date },\n stepHours: number,\n) {\n const buckets: ScoresBucket[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(buckets, stepHours);\n scorers.forEach(({ scorerId }, i) => {\n for (const s of seriesOf(points[i]) ?? []) {\n for (const p of s.points) {\n const at = indexOf(p);\n const bucket = at === undefined ? undefined : buckets[at];\n if (bucket) bucket[scorerId] = p.value;\n }\n }\n });\n const lines = scorers.map((scorer, i) => ({ ...scorer, mean: valueOf(means[i])?.value ?? 0 }));\n return { buckets, lines };\n}\n"],"mappings":";;;;;AAWA,IAAa,eAAe,UAC1B,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA;;AAGnD,SAAgB,WAAW,SAAqC;CAC9D,MAAM,MAAM,QAAQ,MAAK,MAAK,EAAE,WAAW,YAAY,EAAE,QAAQ;CACjE,MAAM,WAAW,KAAK,WAAW,WAAW,IAAI,WAAW,KAAA;CAC3D,OAAO,WAAW,CAAC;EAAE;EAAU,MAAM;CAAS,CAAC,IAAI,CAAC;AACtD;;AAGA,SAAgB,kBAAkB,QAA+D;CAC/F,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;CAC/E,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,cAAa;EAAE;EAAU,MAAM,MAAM,IAAI,QAAQ,KAAK;CAAS,EAAE;AAC3G;;AAGA,IAAa,cAAc,OAAmC,aAC5D,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA,IAAY;CAAE,GAAG;CAAO;AAAS,IAAI;;;;;;AAOxF,SAAgB,YACd,SACA,OACA,QACA,QACA,WACA;CACA,MAAM,UAA0BA,4CAAAA,WAAW,OAAO,OAAO,OAAO,KAAK,SAAS;CAC9E,MAAM,UAAUC,4CAAAA,UAAU,SAAS,SAAS;CAC5C,QAAQ,SAAS,EAAE,YAAY,MAAM;EACnC,KAAK,MAAM,KAAKC,uCAAAA,SAAS,OAAO,EAAE,KAAK,CAAC,GACtC,KAAK,MAAM,KAAK,EAAE,QAAQ;GACxB,MAAM,KAAK,QAAQ,CAAC;GACpB,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,QAAQ;GACtD,IAAI,QAAQ,OAAO,YAAY,EAAE;EACnC;CAEJ,CAAC;CAED,OAAO;EAAE;EAAS,OADJ,QAAQ,KAAK,QAAQ,OAAO;GAAE,GAAG;GAAQ,MAAMC,uCAAAA,QAAQ,MAAM,EAAE,CAAC,EAAE,SAAS;EAAE,EACzE;CAAM;AAC1B"}
1
+ {"version":3,"file":"scores.cjs.js","names":["bucketGrid","gridIndex","seriesOf","valueOf"],"sources":["../../../../src/domains/dashboards/lib/scores.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, gridIndex } from '../../metrics/lib/metrics-buckets';\nimport { seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer, DashboardPageContext, DashboardRequest } from './requests';\n\nexport type Scorer = { scorerId: string; name: string };\n\nexport type ScoresBucket = BucketLabels & Record<string, number | string | undefined>;\n\n/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */\nexport const needsScorer = (query: DashboardQuery | undefined) =>\n query?.source === 'scores' && query.scorerId === undefined;\n\n/** The scorer the view's queries name themselves, when none of them leaves it out. */\nexport function ownScorers(queries: DashboardQuery[]): Scorer[] {\n const own = queries.find(q => q.source === 'scores' && q.scorerId);\n const scorerId = own?.source === 'scores' ? own.scorerId : undefined;\n return scorerId ? [{ scorerId, name: scorerId }] : [];\n}\n\n/** Every scorer among the recent scores, sorted by id, named as the scores name them. */\nexport function discoveredScorers(scores: { scorerId: string; scorerName?: string }[]): Scorer[] {\n const names = new Map(scores.map(s => [s.scorerId, s.scorerName ?? s.scorerId]));\n return [...names.keys()].toSorted().map(scorerId => ({ scorerId, name: names.get(scorerId) ?? scorerId }));\n}\n\n/** How many recent scores to read to find the scorers in the range (the API's page limit). */\nconst DISCOVERY_PAGE_SIZE = 100;\n\n/**\n * The range's most recent scores, read to find the scorers when the queries leave theirs out (the API\n * can't list scorers); `undefined` when they name their own.\n */\nexport function scorerDiscoveryRequest(\n queries: DashboardQuery[],\n page: DashboardPageContext,\n): DashboardRequest | undefined {\n if (!queries.some(needsScorer)) return undefined;\n return {\n method: 'listScores',\n args: { filters: page.filters, pagination: { page: 0, perPage: DISCOVERY_PAGE_SIZE } },\n };\n}\n\n/**\n * The scorers to chart: the queries' own scorer, or, when they leave it out, every scorer among the\n * discovery request's answer, as the Scores card finds them.\n */\nexport function scorersOf(queries: DashboardQuery[], discovery: DashboardAnswer | undefined): Scorer[] {\n if (!queries.some(needsScorer)) return ownScorers(queries);\n const scores = discovery?.method === 'listScores' ? discovery.data.scores : [];\n return discoveredScorers(scores.map(s => ({ scorerId: s.scorerId, scorerName: s.scorerName ?? undefined })));\n}\n\n/** The query for one scorer: its own scorer if it names one, else `scorerId`. */\nexport const withScorer = (query: DashboardQuery | undefined, scorerId: string): DashboardQuery | undefined =>\n query?.source === 'scores' && query.scorerId === undefined ? { ...query, scorerId } : query;\n\n/**\n * Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's\n * mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold\n * one answer per scorer, in `scorers`' order.\n */\nexport function shapeScores(\n scorers: Scorer[],\n means: (DashboardAnswer | undefined)[],\n points: (DashboardAnswer | undefined)[],\n window: { start: Date; end: Date },\n stepHours: number,\n) {\n const buckets: ScoresBucket[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(buckets, stepHours);\n scorers.forEach(({ scorerId }, i) => {\n for (const s of seriesOf(points[i]) ?? []) {\n for (const p of s.points) {\n const at = indexOf(p);\n const bucket = at === undefined ? undefined : buckets[at];\n if (bucket) bucket[scorerId] = p.value;\n }\n }\n });\n const lines = scorers.map((scorer, i) => ({ ...scorer, mean: valueOf(means[i])?.value ?? 0 }));\n return { buckets, lines };\n}\n"],"mappings":";;;;;AAWA,IAAa,eAAe,UAC1B,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA;;AAGnD,SAAgB,WAAW,SAAqC;CAC9D,MAAM,MAAM,QAAQ,MAAK,MAAK,EAAE,WAAW,YAAY,EAAE,QAAQ;CACjE,MAAM,WAAW,KAAK,WAAW,WAAW,IAAI,WAAW,KAAA;CAC3D,OAAO,WAAW,CAAC;EAAE;EAAU,MAAM;CAAS,CAAC,IAAI,CAAC;AACtD;;AAGA,SAAgB,kBAAkB,QAA+D;CAC/F,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;CAC/E,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,cAAa;EAAE;EAAU,MAAM,MAAM,IAAI,QAAQ,KAAK;CAAS,EAAE;AAC3G;;AAGA,IAAM,sBAAsB;;;;;AAM5B,SAAgB,uBACd,SACA,MAC8B;CAC9B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO,KAAA;CACvC,OAAO;EACL,QAAQ;EACR,MAAM;GAAE,SAAS,KAAK;GAAS,YAAY;IAAE,MAAM;IAAG,SAAS;GAAoB;EAAE;CACvF;AACF;;;;;AAMA,SAAgB,UAAU,SAA2B,WAAkD;CACrG,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO,WAAW,OAAO;CAEzD,OAAO,mBADQ,WAAW,WAAW,eAAe,UAAU,KAAK,SAAS,CAAC,EAAA,CAC7C,KAAI,OAAM;EAAE,UAAU,EAAE;EAAU,YAAY,EAAE,cAAc,KAAA;CAAU,EAAE,CAAC;AAC7G;;AAGA,IAAa,cAAc,OAAmC,aAC5D,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA,IAAY;CAAE,GAAG;CAAO;AAAS,IAAI;;;;;;AAOxF,SAAgB,YACd,SACA,OACA,QACA,QACA,WACA;CACA,MAAM,UAA0BA,4CAAAA,WAAW,OAAO,OAAO,OAAO,KAAK,SAAS;CAC9E,MAAM,UAAUC,4CAAAA,UAAU,SAAS,SAAS;CAC5C,QAAQ,SAAS,EAAE,YAAY,MAAM;EACnC,KAAK,MAAM,KAAKC,uCAAAA,SAAS,OAAO,EAAE,KAAK,CAAC,GACtC,KAAK,MAAM,KAAK,EAAE,QAAQ;GACxB,MAAM,KAAK,QAAQ,CAAC;GACpB,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,QAAQ;GACtD,IAAI,QAAQ,OAAO,YAAY,EAAE;EACnC;CAEJ,CAAC;CAED,OAAO;EAAE;EAAS,OADJ,QAAQ,KAAK,QAAQ,OAAO;GAAE,GAAG;GAAQ,MAAMC,uCAAAA,QAAQ,MAAM,EAAE,CAAC,EAAE,SAAS;EAAE,EACzE;CAAM;AAC1B"}
@@ -20,6 +20,36 @@ function discoveredScorers(scores) {
20
20
  name: names.get(scorerId) ?? scorerId
21
21
  }));
22
22
  }
23
+ /** How many recent scores to read to find the scorers in the range (the API's page limit). */
24
+ var DISCOVERY_PAGE_SIZE = 100;
25
+ /**
26
+ * The range's most recent scores, read to find the scorers when the queries leave theirs out (the API
27
+ * can't list scorers); `undefined` when they name their own.
28
+ */
29
+ function scorerDiscoveryRequest(queries, page) {
30
+ if (!queries.some(needsScorer)) return void 0;
31
+ return {
32
+ method: "listScores",
33
+ args: {
34
+ filters: page.filters,
35
+ pagination: {
36
+ page: 0,
37
+ perPage: DISCOVERY_PAGE_SIZE
38
+ }
39
+ }
40
+ };
41
+ }
42
+ /**
43
+ * The scorers to chart: the queries' own scorer, or, when they leave it out, every scorer among the
44
+ * discovery request's answer, as the Scores card finds them.
45
+ */
46
+ function scorersOf(queries, discovery) {
47
+ if (!queries.some(needsScorer)) return ownScorers(queries);
48
+ return discoveredScorers((discovery?.method === "listScores" ? discovery.data.scores : []).map((s) => ({
49
+ scorerId: s.scorerId,
50
+ scorerName: s.scorerName ?? void 0
51
+ })));
52
+ }
23
53
  /** The query for one scorer: its own scorer if it names one, else `scorerId`. */
24
54
  var withScorer = (query, scorerId) => query?.source === "scores" && query.scorerId === void 0 ? {
25
55
  ...query,
@@ -48,6 +78,6 @@ function shapeScores(scorers, means, points, window, stepHours) {
48
78
  }))
49
79
  };
50
80
  }
51
- export { discoveredScorers, needsScorer, ownScorers, shapeScores, withScorer };
81
+ export { discoveredScorers, needsScorer, ownScorers, scorerDiscoveryRequest, scorersOf, shapeScores, withScorer };
52
82
 
53
83
  //# sourceMappingURL=scores.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scores.es.js","names":[],"sources":["../../../../src/domains/dashboards/lib/scores.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, gridIndex } from '../../metrics/lib/metrics-buckets';\nimport { seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer } from './requests';\n\nexport type Scorer = { scorerId: string; name: string };\n\nexport type ScoresBucket = BucketLabels & Record<string, number | string | undefined>;\n\n/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */\nexport const needsScorer = (query: DashboardQuery | undefined) =>\n query?.source === 'scores' && query.scorerId === undefined;\n\n/** The scorer the view's queries name themselves, when none of them leaves it out. */\nexport function ownScorers(queries: DashboardQuery[]): Scorer[] {\n const own = queries.find(q => q.source === 'scores' && q.scorerId);\n const scorerId = own?.source === 'scores' ? own.scorerId : undefined;\n return scorerId ? [{ scorerId, name: scorerId }] : [];\n}\n\n/** Every scorer among the recent scores, sorted by id, named as the scores name them. */\nexport function discoveredScorers(scores: { scorerId: string; scorerName?: string }[]): Scorer[] {\n const names = new Map(scores.map(s => [s.scorerId, s.scorerName ?? s.scorerId]));\n return [...names.keys()].toSorted().map(scorerId => ({ scorerId, name: names.get(scorerId) ?? scorerId }));\n}\n\n/** The query for one scorer: its own scorer if it names one, else `scorerId`. */\nexport const withScorer = (query: DashboardQuery | undefined, scorerId: string): DashboardQuery | undefined =>\n query?.source === 'scores' && query.scorerId === undefined ? { ...query, scorerId } : query;\n\n/**\n * Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's\n * mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold\n * one answer per scorer, in `scorers`' order.\n */\nexport function shapeScores(\n scorers: Scorer[],\n means: (DashboardAnswer | undefined)[],\n points: (DashboardAnswer | undefined)[],\n window: { start: Date; end: Date },\n stepHours: number,\n) {\n const buckets: ScoresBucket[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(buckets, stepHours);\n scorers.forEach(({ scorerId }, i) => {\n for (const s of seriesOf(points[i]) ?? []) {\n for (const p of s.points) {\n const at = indexOf(p);\n const bucket = at === undefined ? undefined : buckets[at];\n if (bucket) bucket[scorerId] = p.value;\n }\n }\n });\n const lines = scorers.map((scorer, i) => ({ ...scorer, mean: valueOf(means[i])?.value ?? 0 }));\n return { buckets, lines };\n}\n"],"mappings":";;;;AAWA,IAAa,eAAe,UAC1B,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA;;AAGnD,SAAgB,WAAW,SAAqC;CAC9D,MAAM,MAAM,QAAQ,MAAK,MAAK,EAAE,WAAW,YAAY,EAAE,QAAQ;CACjE,MAAM,WAAW,KAAK,WAAW,WAAW,IAAI,WAAW,KAAA;CAC3D,OAAO,WAAW,CAAC;EAAE;EAAU,MAAM;CAAS,CAAC,IAAI,CAAC;AACtD;;AAGA,SAAgB,kBAAkB,QAA+D;CAC/F,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;CAC/E,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,cAAa;EAAE;EAAU,MAAM,MAAM,IAAI,QAAQ,KAAK;CAAS,EAAE;AAC3G;;AAGA,IAAa,cAAc,OAAmC,aAC5D,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA,IAAY;CAAE,GAAG;CAAO;AAAS,IAAI;;;;;;AAOxF,SAAgB,YACd,SACA,OACA,QACA,QACA,WACA;CACA,MAAM,UAA0B,WAAW,OAAO,OAAO,OAAO,KAAK,SAAS;CAC9E,MAAM,UAAU,UAAU,SAAS,SAAS;CAC5C,QAAQ,SAAS,EAAE,YAAY,MAAM;EACnC,KAAK,MAAM,KAAK,SAAS,OAAO,EAAE,KAAK,CAAC,GACtC,KAAK,MAAM,KAAK,EAAE,QAAQ;GACxB,MAAM,KAAK,QAAQ,CAAC;GACpB,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,QAAQ;GACtD,IAAI,QAAQ,OAAO,YAAY,EAAE;EACnC;CAEJ,CAAC;CAED,OAAO;EAAE;EAAS,OADJ,QAAQ,KAAK,QAAQ,OAAO;GAAE,GAAG;GAAQ,MAAM,QAAQ,MAAM,EAAE,CAAC,EAAE,SAAS;EAAE,EACzE;CAAM;AAC1B"}
1
+ {"version":3,"file":"scores.es.js","names":[],"sources":["../../../../src/domains/dashboards/lib/scores.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, gridIndex } from '../../metrics/lib/metrics-buckets';\nimport { seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer, DashboardPageContext, DashboardRequest } from './requests';\n\nexport type Scorer = { scorerId: string; name: string };\n\nexport type ScoresBucket = BucketLabels & Record<string, number | string | undefined>;\n\n/** Whether the query leaves its scorer out, so the widget has to find the scorers itself. */\nexport const needsScorer = (query: DashboardQuery | undefined) =>\n query?.source === 'scores' && query.scorerId === undefined;\n\n/** The scorer the view's queries name themselves, when none of them leaves it out. */\nexport function ownScorers(queries: DashboardQuery[]): Scorer[] {\n const own = queries.find(q => q.source === 'scores' && q.scorerId);\n const scorerId = own?.source === 'scores' ? own.scorerId : undefined;\n return scorerId ? [{ scorerId, name: scorerId }] : [];\n}\n\n/** Every scorer among the recent scores, sorted by id, named as the scores name them. */\nexport function discoveredScorers(scores: { scorerId: string; scorerName?: string }[]): Scorer[] {\n const names = new Map(scores.map(s => [s.scorerId, s.scorerName ?? s.scorerId]));\n return [...names.keys()].toSorted().map(scorerId => ({ scorerId, name: names.get(scorerId) ?? scorerId }));\n}\n\n/** How many recent scores to read to find the scorers in the range (the API's page limit). */\nconst DISCOVERY_PAGE_SIZE = 100;\n\n/**\n * The range's most recent scores, read to find the scorers when the queries leave theirs out (the API\n * can't list scorers); `undefined` when they name their own.\n */\nexport function scorerDiscoveryRequest(\n queries: DashboardQuery[],\n page: DashboardPageContext,\n): DashboardRequest | undefined {\n if (!queries.some(needsScorer)) return undefined;\n return {\n method: 'listScores',\n args: { filters: page.filters, pagination: { page: 0, perPage: DISCOVERY_PAGE_SIZE } },\n };\n}\n\n/**\n * The scorers to chart: the queries' own scorer, or, when they leave it out, every scorer among the\n * discovery request's answer, as the Scores card finds them.\n */\nexport function scorersOf(queries: DashboardQuery[], discovery: DashboardAnswer | undefined): Scorer[] {\n if (!queries.some(needsScorer)) return ownScorers(queries);\n const scores = discovery?.method === 'listScores' ? discovery.data.scores : [];\n return discoveredScorers(scores.map(s => ({ scorerId: s.scorerId, scorerName: s.scorerName ?? undefined })));\n}\n\n/** The query for one scorer: its own scorer if it names one, else `scorerId`. */\nexport const withScorer = (query: DashboardQuery | undefined, scorerId: string): DashboardQuery | undefined =>\n query?.source === 'scores' && query.scorerId === undefined ? { ...query, scorerId } : query;\n\n/**\n * Lays each scorer's points on the window's bucket grid, keyed by scorer id, and reads each scorer's\n * mean (0 when the aggregate has no value, as the Scores card shows it). `means` and `points` hold\n * one answer per scorer, in `scorers`' order.\n */\nexport function shapeScores(\n scorers: Scorer[],\n means: (DashboardAnswer | undefined)[],\n points: (DashboardAnswer | undefined)[],\n window: { start: Date; end: Date },\n stepHours: number,\n) {\n const buckets: ScoresBucket[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(buckets, stepHours);\n scorers.forEach(({ scorerId }, i) => {\n for (const s of seriesOf(points[i]) ?? []) {\n for (const p of s.points) {\n const at = indexOf(p);\n const bucket = at === undefined ? undefined : buckets[at];\n if (bucket) bucket[scorerId] = p.value;\n }\n }\n });\n const lines = scorers.map((scorer, i) => ({ ...scorer, mean: valueOf(means[i])?.value ?? 0 }));\n return { buckets, lines };\n}\n"],"mappings":";;;;AAWA,IAAa,eAAe,UAC1B,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA;;AAGnD,SAAgB,WAAW,SAAqC;CAC9D,MAAM,MAAM,QAAQ,MAAK,MAAK,EAAE,WAAW,YAAY,EAAE,QAAQ;CACjE,MAAM,WAAW,KAAK,WAAW,WAAW,IAAI,WAAW,KAAA;CAC3D,OAAO,WAAW,CAAC;EAAE;EAAU,MAAM;CAAS,CAAC,IAAI,CAAC;AACtD;;AAGA,SAAgB,kBAAkB,QAA+D;CAC/F,MAAM,QAAQ,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;CAC/E,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAI,cAAa;EAAE;EAAU,MAAM,MAAM,IAAI,QAAQ,KAAK;CAAS,EAAE;AAC3G;;AAGA,IAAM,sBAAsB;;;;;AAM5B,SAAgB,uBACd,SACA,MAC8B;CAC9B,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO,KAAA;CACvC,OAAO;EACL,QAAQ;EACR,MAAM;GAAE,SAAS,KAAK;GAAS,YAAY;IAAE,MAAM;IAAG,SAAS;GAAoB;EAAE;CACvF;AACF;;;;;AAMA,SAAgB,UAAU,SAA2B,WAAkD;CACrG,IAAI,CAAC,QAAQ,KAAK,WAAW,GAAG,OAAO,WAAW,OAAO;CAEzD,OAAO,mBADQ,WAAW,WAAW,eAAe,UAAU,KAAK,SAAS,CAAC,EAAA,CAC7C,KAAI,OAAM;EAAE,UAAU,EAAE;EAAU,YAAY,EAAE,cAAc,KAAA;CAAU,EAAE,CAAC;AAC7G;;AAGA,IAAa,cAAc,OAAmC,aAC5D,OAAO,WAAW,YAAY,MAAM,aAAa,KAAA,IAAY;CAAE,GAAG;CAAO;AAAS,IAAI;;;;;;AAOxF,SAAgB,YACd,SACA,OACA,QACA,QACA,WACA;CACA,MAAM,UAA0B,WAAW,OAAO,OAAO,OAAO,KAAK,SAAS;CAC9E,MAAM,UAAU,UAAU,SAAS,SAAS;CAC5C,QAAQ,SAAS,EAAE,YAAY,MAAM;EACnC,KAAK,MAAM,KAAK,SAAS,OAAO,EAAE,KAAK,CAAC,GACtC,KAAK,MAAM,KAAK,EAAE,QAAQ;GACxB,MAAM,KAAK,QAAQ,CAAC;GACpB,MAAM,SAAS,OAAO,KAAA,IAAY,KAAA,IAAY,QAAQ;GACtD,IAAI,QAAQ,OAAO,YAAY,EAAE;EACnC;CAEJ,CAAC;CAED,OAAO;EAAE;EAAS,OADJ,QAAQ,KAAK,QAAQ,OAAO;GAAE,GAAG;GAAQ,MAAM,QAAQ,MAAM,EAAE,CAAC,EAAE,SAAS;EAAE,EACzE;CAAM;AAC1B"}
@@ -150,6 +150,22 @@ function shapeTimeseries({ options, responses, window, hasTraceQueries }) {
150
150
  /** Aggregations whose values for several groups add up to the value for all of them. */
151
151
  var ADDITIVE = /* @__PURE__ */ new Set(["sum", "count"]);
152
152
  /**
153
+ * The numbers an alert could watch: each series over the range (its `rangeTotal`, else its value),
154
+ * then the card's total when it is an expression.
155
+ */
156
+ function timeseriesAlertValues(options) {
157
+ const values = options.series.map((s) => ({
158
+ label: s.label,
159
+ value: s.rangeTotal ?? s.value
160
+ }));
161
+ const total = options.total?.value;
162
+ if (total && total !== "total" && !("peak" in total)) values.push({
163
+ label: "Total",
164
+ value: total
165
+ });
166
+ return values;
167
+ }
168
+ /**
153
169
  * What the schema can't say: query ids the view has, bucketed queries that leave their interval to the
154
170
  * chart's grid, refs that pick one of the percentiles their query asks for, and refs that pick one group
155
171
  * of a grouped aggregation that can't be added up.
@@ -185,6 +201,7 @@ function timeseriesIssues(options, queries) {
185
201
  ];
186
202
  }
187
203
  exports.shapeTimeseries = shapeTimeseries;
204
+ exports.timeseriesAlertValues = timeseriesAlertValues;
188
205
  exports.timeseriesIssues = timeseriesIssues;
189
206
  exports.timeseriesOptionsSchema = timeseriesOptionsSchema;
190
207
  exports.timeseriesSeriesSchema = timeseriesSeriesSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"timeseries.cjs.js","names":["z","colorSchema","valueExprSchema","formatSchema","queryRefSchema","measureOf","rowsOf","valueOf","bucketPlan","intervalHours","bucketGrid","gridIndex","seriesOf","matchesGroups","evaluate","exprRefs","unknownQueryIssues"],"sources":["../../../../src/domains/dashboards/lib/timeseries.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport { z } from 'zod/v4';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, bucketPlan, gridIndex, intervalHours } from '../../metrics/lib/metrics-buckets';\nimport type { ApiInterval } from '../../metrics/lib/metrics-buckets';\nimport { bucketTraceAggregateRows } from '../../metrics/lib/trace-aggregate';\nimport type { TraceAggregateRow } from '../../metrics/lib/trace-aggregate';\nimport { measureOf, rowsOf, seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer } from './requests';\nimport {\n colorSchema,\n evaluate,\n exprRefs,\n formatSchema,\n matchesGroups,\n queryRefSchema,\n unknownQueryIssues,\n valueExprSchema,\n} from './values';\nimport type { ValueExpr, ValueRef } from './values';\n\nexport const timeseriesSeriesSchema = z\n .object({\n dataKey: z.string().min(1),\n label: z.string().min(1),\n color: colorSchema,\n emphasis: z.boolean().optional(),\n /** The series' value per bucket. */\n value: valueExprSchema,\n /** The series' value over the whole range, shown beside the card's title marked with the series' color. */\n rangeTotal: valueExprSchema.optional(),\n /** Rounds each bucket's value to a whole number. */\n round: z.boolean().optional(),\n })\n .strict();\n\nexport const timeseriesOptionsSchema = z\n .object({\n chart: z.enum(['stackedBar', 'line']),\n format: formatSchema,\n /** `false` leaves the y-axis to the chart's default labels. */\n axis: z.boolean().optional(),\n series: z.array(timeseriesSeriesSchema).min(1),\n /**\n * `chart` re-buckets metrics onto the bar charts' grid (sums merge); `api` keeps the API's 1h or 1d\n * buckets (percentiles and averages can't merge). Trace and span aggregates always keep the API's.\n */\n buckets: z.enum(['chart', 'api']).optional(),\n /** Ids of queries sent over the whole range, without an interval (e.g. distinct counts, which can't be summed). */\n totals: z.array(queryRefSchema).optional(),\n /** Hides a series whose range total (or, without one, sum of buckets) is zero. */\n hideEmpty: z.boolean().optional(),\n /** Emphasizes the first series shown. */\n emphasizeFirst: z.boolean().optional(),\n xLabels: z.literal('edges').optional(),\n /** The y-axis range when every plotted value is zero. */\n flatYDomain: z.tuple([z.number(), z.number()]).optional(),\n yDomain: z.tuple([z.number(), z.number()]).optional(),\n /** The card's total, beside its title. Ignored when a series has a `rangeTotal`. */\n total: z\n .object({\n /** `total`: every series summed over the range; `peak`: one series' highest bucket; or an expression over range totals. */\n value: z.union([z.literal('total'), z.object({ peak: z.string().min(1) }).strict(), valueExprSchema]),\n format: formatSchema.optional(),\n })\n .strict()\n .optional(),\n emptyMessage: z.string().optional(),\n /** Empty when this is zero over the range; by default, when every plotted value is zero. */\n emptyWhenZero: valueExprSchema.optional(),\n })\n .strict();\n\nexport type TimeseriesOptions = z.infer<typeof timeseriesOptionsSchema>;\nexport type TimeseriesSeries = z.infer<typeof timeseriesSeriesSchema>;\n\ntype Window = { start: Date; end: Date };\n\nexport type ChartBucket = BucketLabels & Record<string, number | string | undefined>;\n\nexport type ShapedTimeseries = {\n data: ChartBucket[];\n /** The series shown, each with its range total when it has one. */\n series: (Omit<TimeseriesSeries, 'rangeTotal'> & { rangeTotal?: number })[];\n /** Hours per bucket, for a clicked bucket's window. */\n stepHours: number;\n /** The card's total, from `options.total`. */\n total?: number;\n /** Every plotted value is zero (or missing). */\n flat: boolean;\n /** Nothing to show in the range. */\n empty: boolean;\n};\n\n/** A ref's value in one trace aggregate row set (ungrouped: one row). */\nfunction fromRows(rows: TraceAggregateRow[], ref: ValueRef) {\n const { measure } = ref;\n if (!measure) return undefined;\n const values = rows.flatMap(r => measureOf(r.measures, measure) ?? []);\n return values.length ? values.reduce((a, b) => a + b, 0) : undefined;\n}\n\n/** A ref's value over the whole range, from a totals query or the sum of its buckets. */\nfunction rangeValue(answer: DashboardAnswer | undefined, ref: ValueRef, perBucket: (number | undefined)[] | undefined) {\n const aggregate = rowsOf(answer);\n if (aggregate && !aggregate.rows.some(r => r.bucket)) return fromRows(aggregate.rows, ref) ?? 0;\n const value = valueOf(answer);\n if (value) return (ref.field === 'estimatedCost' ? value.estimatedCost : value.value) ?? undefined;\n return perBucket?.reduce<number>((sum, v) => sum + (v ?? 0), 0);\n}\n\n/**\n * Lays a timeseries view's answers on the chart's bucket grid. `chart` buckets add every point that\n * falls in a bucket (missing is 0); `api` buckets take the API's point (missing stays unset).\n */\nexport function shapeTimeseries({\n options,\n responses,\n window,\n hasTraceQueries,\n}: {\n options: TimeseriesOptions;\n /** Each query's answer, by query id. */\n responses: ReadonlyMap<string, DashboardAnswer | undefined>;\n window: Window;\n hasTraceQueries: boolean;\n}): ShapedTimeseries {\n const plan = bucketPlan(window.start, window.end);\n const merged = !hasTraceQueries && (options.buckets ?? 'chart') === 'chart';\n const stepHours = merged ? plan.stepHours : intervalHours(plan.interval);\n const grid: BucketLabels[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(grid, stepHours);\n const totals = new Set(options.totals ?? []);\n\n const cache = new Map<string, (number | undefined)[]>();\n const bucketed = (ref: ValueRef): (number | undefined)[] => {\n const key = JSON.stringify(ref);\n const hit = cache.get(key);\n if (hit) return hit;\n const values: (number | undefined)[] = grid.map(() => (merged ? 0 : undefined));\n const answer = responses.get(ref.query);\n const aggregate = rowsOf(answer);\n if (aggregate) {\n bucketTraceAggregateRows(aggregate.rows, window).forEach((b, i) => {\n values[i] = fromRows(b.rows, ref) ?? 0;\n });\n }\n for (const s of seriesOf(answer) ?? []) {\n if (ref.percentile !== undefined && s.percentile !== ref.percentile) continue;\n if (!matchesGroups(ref, s.name ?? '')) continue;\n for (const p of s.points) {\n const i = indexOf(p);\n if (i === undefined) continue;\n const v = ref.field === 'estimatedCost' ? (p.estimatedCost ?? 0) : p.value;\n // Every series the ref matches adds up (e.g. a grouped count); `api` buckets stay unset until one answers.\n values[i] = (values[i] ?? 0) + v;\n }\n }\n cache.set(key, values);\n return values;\n };\n const rangeOf = (ref: ValueRef) =>\n rangeValue(responses.get(ref.query), ref, totals.has(ref.query) ? undefined : bucketed(ref)) ?? 0;\n const overRange = (expr: ValueExpr) => evaluate(expr, rangeOf) ?? 0;\n\n const perSeries = options.series.map(s => {\n const values = grid.map((_, i) => {\n const v = evaluate(s.value, ref => bucketed(ref)[i]);\n return v === undefined ? undefined : s.round ? Math.round(v) : v;\n });\n const sum = values.reduce<number>((a, v) => a + (v ?? 0), 0);\n return { s, values, rangeTotal: s.rangeTotal ? overRange(s.rangeTotal) : undefined, sum };\n });\n\n const shown = perSeries.filter(p => !options.hideEmpty || (p.rangeTotal ?? p.sum) > 0);\n const data: ChartBucket[] = grid.map((labels, i) => {\n const bucket: ChartBucket = { ...labels };\n for (const p of shown) {\n const v = p.values[i];\n if (v !== undefined) bucket[p.s.dataKey] = v;\n }\n return bucket;\n });\n\n let total: number | undefined;\n const spec = options.total?.value;\n if (spec === 'total') total = shown.reduce((a, p) => a + p.sum, 0);\n else if (spec && 'peak' in spec) {\n const peak = perSeries.find(p => p.s.dataKey === spec.peak);\n total = Math.max(0, ...(peak?.values ?? []).map(v => v ?? 0));\n } else if (spec) total = overRange(spec);\n\n const flat = shown.every(p => p.values.every(v => !v));\n return {\n data,\n series: shown.map((p, i) => ({\n ...p.s,\n emphasis: options.emphasizeFirst ? i === 0 : p.s.emphasis,\n rangeTotal: p.rangeTotal,\n })),\n stepHours,\n total,\n flat,\n empty: options.emptyWhenZero ? overRange(options.emptyWhenZero) === 0 : flat,\n };\n}\n\n/** Aggregations whose values for several groups add up to the value for all of them. */\nconst ADDITIVE = new Set<string>(['sum', 'count']);\n\n/**\n * What the schema can't say: query ids the view has, bucketed queries that leave their interval to the\n * chart's grid, refs that pick one of the percentiles their query asks for, and refs that pick one group\n * of a grouped aggregation that can't be added up.\n */\nexport function timeseriesIssues(options: TimeseriesOptions, queries: readonly DashboardQuery[]): string[] {\n const exprs = options.series.flatMap(s => (s.rangeTotal ? [s.value, s.rangeTotal] : [s.value]));\n const total = options.total?.value;\n if (total && total !== 'total' && !('peak' in total)) exprs.push(total);\n if (options.emptyWhenZero) exprs.push(options.emptyWhenZero);\n const refs = exprs.flatMap(exprRefs);\n const totals = new Set(options.totals ?? []);\n const byId = new Map(queries.map(q => [q.id, q]));\n\n // The chart lays every query on one grid built from the page's range; a query's own interval would\n // land its points in the wrong buckets.\n const ownIntervals = queries\n .filter(q => q.id !== undefined && !totals.has(q.id) && 'interval' in q && q.interval !== undefined)\n .map(q => `query '${q.id}' sets its own interval; the chart's buckets follow the page's range`);\n // Percentiles of one metric can't be added up, so a ref must pick one when its query asks for several.\n const ambiguousPercentiles = refs\n .filter(r => {\n const query = byId.get(r.query);\n return (\n r.percentile === undefined &&\n query !== undefined &&\n 'request' in query &&\n query.request === 'percentiles' &&\n query.percentiles.length > 1\n );\n })\n .map(r => `a value reading query '${r.query}' must pick one of its percentiles`);\n const missingPercentiles = refs\n .filter(r => {\n const query = byId.get(r.query);\n return (\n r.percentile !== undefined &&\n query !== undefined &&\n 'request' in query &&\n query.request === 'percentiles' &&\n !query.percentiles.includes(r.percentile)\n );\n })\n .map(r => `a value reading query '${r.query}' picks percentile ${r.percentile}, which the query doesn't ask for`);\n // Every series a ref matches adds up, which is only right for counts and sums.\n const mixedGroups = refs\n .filter(r => {\n const query = byId.get(r.query);\n return (\n r.groups?.length !== 1 &&\n query !== undefined &&\n 'request' in query &&\n query.request === 'timeSeries' &&\n (query.groupBy?.length ?? 0) > 0 &&\n !ADDITIVE.has(query.aggregation)\n );\n })\n .map(r => `a value reading query '${r.query}' must pick one group, since its groups' values can't be added up`);\n\n return [\n ...unknownQueryIssues(\n refs.map(r => r.query),\n queries,\n ),\n ...unknownQueryIssues(options.totals ?? [], queries, 'options.totals'),\n ...ownIntervals,\n ...new Set(ambiguousPercentiles),\n ...new Set(missingPercentiles),\n ...new Set(mixedGroups),\n ];\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"timeseries.cjs.js","names":["z","colorSchema","valueExprSchema","formatSchema","queryRefSchema","measureOf","rowsOf","valueOf","bucketPlan","intervalHours","bucketGrid","gridIndex","seriesOf","matchesGroups","evaluate","exprRefs","unknownQueryIssues"],"sources":["../../../../src/domains/dashboards/lib/timeseries.ts"],"sourcesContent":["import type { DashboardQuery } from '@mastra/client-js';\nimport { z } from 'zod/v4';\nimport type { BucketLabels } from '../../metrics/lib/bucket-labels';\nimport { bucketGrid, bucketPlan, gridIndex, intervalHours } from '../../metrics/lib/metrics-buckets';\nimport type { ApiInterval } from '../../metrics/lib/metrics-buckets';\nimport { bucketTraceAggregateRows } from '../../metrics/lib/trace-aggregate';\nimport type { TraceAggregateRow } from '../../metrics/lib/trace-aggregate';\nimport { measureOf, rowsOf, seriesOf, valueOf } from './answers';\nimport type { DashboardAnswer } from './requests';\nimport {\n colorSchema,\n evaluate,\n exprRefs,\n formatSchema,\n matchesGroups,\n queryRefSchema,\n unknownQueryIssues,\n valueExprSchema,\n} from './values';\nimport type { LabelledValue, ValueExpr, ValueRef } from './values';\n\nexport const timeseriesSeriesSchema = z\n .object({\n dataKey: z.string().min(1),\n label: z.string().min(1),\n color: colorSchema,\n emphasis: z.boolean().optional(),\n /** The series' value per bucket. */\n value: valueExprSchema,\n /** The series' value over the whole range, shown beside the card's title marked with the series' color. */\n rangeTotal: valueExprSchema.optional(),\n /** Rounds each bucket's value to a whole number. */\n round: z.boolean().optional(),\n })\n .strict();\n\nexport const timeseriesOptionsSchema = z\n .object({\n chart: z.enum(['stackedBar', 'line']),\n format: formatSchema,\n /** `false` leaves the y-axis to the chart's default labels. */\n axis: z.boolean().optional(),\n series: z.array(timeseriesSeriesSchema).min(1),\n /**\n * `chart` re-buckets metrics onto the bar charts' grid (sums merge); `api` keeps the API's 1h or 1d\n * buckets (percentiles and averages can't merge). Trace and span aggregates always keep the API's.\n */\n buckets: z.enum(['chart', 'api']).optional(),\n /** Ids of queries sent over the whole range, without an interval (e.g. distinct counts, which can't be summed). */\n totals: z.array(queryRefSchema).optional(),\n /** Hides a series whose range total (or, without one, sum of buckets) is zero. */\n hideEmpty: z.boolean().optional(),\n /** Emphasizes the first series shown. */\n emphasizeFirst: z.boolean().optional(),\n xLabels: z.literal('edges').optional(),\n /** The y-axis range when every plotted value is zero. */\n flatYDomain: z.tuple([z.number(), z.number()]).optional(),\n yDomain: z.tuple([z.number(), z.number()]).optional(),\n /** The card's total, beside its title. Ignored when a series has a `rangeTotal`. */\n total: z\n .object({\n /** `total`: every series summed over the range; `peak`: one series' highest bucket; or an expression over range totals. */\n value: z.union([z.literal('total'), z.object({ peak: z.string().min(1) }).strict(), valueExprSchema]),\n format: formatSchema.optional(),\n })\n .strict()\n .optional(),\n emptyMessage: z.string().optional(),\n /** Empty when this is zero over the range; by default, when every plotted value is zero. */\n emptyWhenZero: valueExprSchema.optional(),\n })\n .strict();\n\nexport type TimeseriesOptions = z.infer<typeof timeseriesOptionsSchema>;\nexport type TimeseriesSeries = z.infer<typeof timeseriesSeriesSchema>;\n\ntype Window = { start: Date; end: Date };\n\nexport type ChartBucket = BucketLabels & Record<string, number | string | undefined>;\n\nexport type ShapedTimeseries = {\n data: ChartBucket[];\n /** The series shown, each with its range total when it has one. */\n series: (Omit<TimeseriesSeries, 'rangeTotal'> & { rangeTotal?: number })[];\n /** Hours per bucket, for a clicked bucket's window. */\n stepHours: number;\n /** The card's total, from `options.total`. */\n total?: number;\n /** Every plotted value is zero (or missing). */\n flat: boolean;\n /** Nothing to show in the range. */\n empty: boolean;\n};\n\n/** A ref's value in one trace aggregate row set (ungrouped: one row). */\nfunction fromRows(rows: TraceAggregateRow[], ref: ValueRef) {\n const { measure } = ref;\n if (!measure) return undefined;\n const values = rows.flatMap(r => measureOf(r.measures, measure) ?? []);\n return values.length ? values.reduce((a, b) => a + b, 0) : undefined;\n}\n\n/** A ref's value over the whole range, from a totals query or the sum of its buckets. */\nfunction rangeValue(answer: DashboardAnswer | undefined, ref: ValueRef, perBucket: (number | undefined)[] | undefined) {\n const aggregate = rowsOf(answer);\n if (aggregate && !aggregate.rows.some(r => r.bucket)) return fromRows(aggregate.rows, ref) ?? 0;\n const value = valueOf(answer);\n if (value) return (ref.field === 'estimatedCost' ? value.estimatedCost : value.value) ?? undefined;\n return perBucket?.reduce<number>((sum, v) => sum + (v ?? 0), 0);\n}\n\n/**\n * Lays a timeseries view's answers on the chart's bucket grid. `chart` buckets add every point that\n * falls in a bucket (missing is 0); `api` buckets take the API's point (missing stays unset).\n */\nexport function shapeTimeseries({\n options,\n responses,\n window,\n hasTraceQueries,\n}: {\n options: TimeseriesOptions;\n /** Each query's answer, by query id. */\n responses: ReadonlyMap<string, DashboardAnswer | undefined>;\n window: Window;\n hasTraceQueries: boolean;\n}): ShapedTimeseries {\n const plan = bucketPlan(window.start, window.end);\n const merged = !hasTraceQueries && (options.buckets ?? 'chart') === 'chart';\n const stepHours = merged ? plan.stepHours : intervalHours(plan.interval);\n const grid: BucketLabels[] = bucketGrid(window.start, window.end, stepHours);\n const indexOf = gridIndex(grid, stepHours);\n const totals = new Set(options.totals ?? []);\n\n const cache = new Map<string, (number | undefined)[]>();\n const bucketed = (ref: ValueRef): (number | undefined)[] => {\n const key = JSON.stringify(ref);\n const hit = cache.get(key);\n if (hit) return hit;\n const values: (number | undefined)[] = grid.map(() => (merged ? 0 : undefined));\n const answer = responses.get(ref.query);\n const aggregate = rowsOf(answer);\n if (aggregate) {\n bucketTraceAggregateRows(aggregate.rows, window).forEach((b, i) => {\n values[i] = fromRows(b.rows, ref) ?? 0;\n });\n }\n for (const s of seriesOf(answer) ?? []) {\n if (ref.percentile !== undefined && s.percentile !== ref.percentile) continue;\n if (!matchesGroups(ref, s.name ?? '')) continue;\n for (const p of s.points) {\n const i = indexOf(p);\n if (i === undefined) continue;\n const v = ref.field === 'estimatedCost' ? (p.estimatedCost ?? 0) : p.value;\n // Every series the ref matches adds up (e.g. a grouped count); `api` buckets stay unset until one answers.\n values[i] = (values[i] ?? 0) + v;\n }\n }\n cache.set(key, values);\n return values;\n };\n const rangeOf = (ref: ValueRef) =>\n rangeValue(responses.get(ref.query), ref, totals.has(ref.query) ? undefined : bucketed(ref)) ?? 0;\n const overRange = (expr: ValueExpr) => evaluate(expr, rangeOf) ?? 0;\n\n const perSeries = options.series.map(s => {\n const values = grid.map((_, i) => {\n const v = evaluate(s.value, ref => bucketed(ref)[i]);\n return v === undefined ? undefined : s.round ? Math.round(v) : v;\n });\n const sum = values.reduce<number>((a, v) => a + (v ?? 0), 0);\n return { s, values, rangeTotal: s.rangeTotal ? overRange(s.rangeTotal) : undefined, sum };\n });\n\n const shown = perSeries.filter(p => !options.hideEmpty || (p.rangeTotal ?? p.sum) > 0);\n const data: ChartBucket[] = grid.map((labels, i) => {\n const bucket: ChartBucket = { ...labels };\n for (const p of shown) {\n const v = p.values[i];\n if (v !== undefined) bucket[p.s.dataKey] = v;\n }\n return bucket;\n });\n\n let total: number | undefined;\n const spec = options.total?.value;\n if (spec === 'total') total = shown.reduce((a, p) => a + p.sum, 0);\n else if (spec && 'peak' in spec) {\n const peak = perSeries.find(p => p.s.dataKey === spec.peak);\n total = Math.max(0, ...(peak?.values ?? []).map(v => v ?? 0));\n } else if (spec) total = overRange(spec);\n\n const flat = shown.every(p => p.values.every(v => !v));\n return {\n data,\n series: shown.map((p, i) => ({\n ...p.s,\n emphasis: options.emphasizeFirst ? i === 0 : p.s.emphasis,\n rangeTotal: p.rangeTotal,\n })),\n stepHours,\n total,\n flat,\n empty: options.emptyWhenZero ? overRange(options.emptyWhenZero) === 0 : flat,\n };\n}\n\n/** Aggregations whose values for several groups add up to the value for all of them. */\nconst ADDITIVE = new Set<string>(['sum', 'count']);\n\n/**\n * The numbers an alert could watch: each series over the range (its `rangeTotal`, else its value),\n * then the card's total when it is an expression.\n */\nexport function timeseriesAlertValues(options: TimeseriesOptions): LabelledValue[] {\n const values = options.series.map(s => ({ label: s.label, value: s.rangeTotal ?? s.value }));\n const total = options.total?.value;\n if (total && total !== 'total' && !('peak' in total)) values.push({ label: 'Total', value: total });\n return values;\n}\n\n/**\n * What the schema can't say: query ids the view has, bucketed queries that leave their interval to the\n * chart's grid, refs that pick one of the percentiles their query asks for, and refs that pick one group\n * of a grouped aggregation that can't be added up.\n */\nexport function timeseriesIssues(options: TimeseriesOptions, queries: readonly DashboardQuery[]): string[] {\n const exprs = options.series.flatMap(s => (s.rangeTotal ? [s.value, s.rangeTotal] : [s.value]));\n const total = options.total?.value;\n if (total && total !== 'total' && !('peak' in total)) exprs.push(total);\n if (options.emptyWhenZero) exprs.push(options.emptyWhenZero);\n const refs = exprs.flatMap(exprRefs);\n const totals = new Set(options.totals ?? []);\n const byId = new Map(queries.map(q => [q.id, q]));\n\n // The chart lays every query on one grid built from the page's range; a query's own interval would\n // land its points in the wrong buckets.\n const ownIntervals = queries\n .filter(q => q.id !== undefined && !totals.has(q.id) && 'interval' in q && q.interval !== undefined)\n .map(q => `query '${q.id}' sets its own interval; the chart's buckets follow the page's range`);\n // Percentiles of one metric can't be added up, so a ref must pick one when its query asks for several.\n const ambiguousPercentiles = refs\n .filter(r => {\n const query = byId.get(r.query);\n return (\n r.percentile === undefined &&\n query !== undefined &&\n 'request' in query &&\n query.request === 'percentiles' &&\n query.percentiles.length > 1\n );\n })\n .map(r => `a value reading query '${r.query}' must pick one of its percentiles`);\n const missingPercentiles = refs\n .filter(r => {\n const query = byId.get(r.query);\n return (\n r.percentile !== undefined &&\n query !== undefined &&\n 'request' in query &&\n query.request === 'percentiles' &&\n !query.percentiles.includes(r.percentile)\n );\n })\n .map(r => `a value reading query '${r.query}' picks percentile ${r.percentile}, which the query doesn't ask for`);\n // Every series a ref matches adds up, which is only right for counts and sums.\n const mixedGroups = refs\n .filter(r => {\n const query = byId.get(r.query);\n return (\n r.groups?.length !== 1 &&\n query !== undefined &&\n 'request' in query &&\n query.request === 'timeSeries' &&\n (query.groupBy?.length ?? 0) > 0 &&\n !ADDITIVE.has(query.aggregation)\n );\n })\n .map(r => `a value reading query '${r.query}' must pick one group, since its groups' values can't be added up`);\n\n return [\n ...unknownQueryIssues(\n refs.map(r => r.query),\n queries,\n ),\n ...unknownQueryIssues(options.totals ?? [], queries, 'options.totals'),\n ...ownIntervals,\n ...new Set(ambiguousPercentiles),\n ...new Set(missingPercentiles),\n ...new Set(mixedGroups),\n ];\n}\n"],"mappings":"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"}
@@ -149,6 +149,22 @@ function shapeTimeseries({ options, responses, window, hasTraceQueries }) {
149
149
  /** Aggregations whose values for several groups add up to the value for all of them. */
150
150
  var ADDITIVE = /* @__PURE__ */ new Set(["sum", "count"]);
151
151
  /**
152
+ * The numbers an alert could watch: each series over the range (its `rangeTotal`, else its value),
153
+ * then the card's total when it is an expression.
154
+ */
155
+ function timeseriesAlertValues(options) {
156
+ const values = options.series.map((s) => ({
157
+ label: s.label,
158
+ value: s.rangeTotal ?? s.value
159
+ }));
160
+ const total = options.total?.value;
161
+ if (total && total !== "total" && !("peak" in total)) values.push({
162
+ label: "Total",
163
+ value: total
164
+ });
165
+ return values;
166
+ }
167
+ /**
152
168
  * What the schema can't say: query ids the view has, bucketed queries that leave their interval to the
153
169
  * chart's grid, refs that pick one of the percentiles their query asks for, and refs that pick one group
154
170
  * of a grouped aggregation that can't be added up.
@@ -183,6 +199,6 @@ function timeseriesIssues(options, queries) {
183
199
  ...new Set(mixedGroups)
184
200
  ];
185
201
  }
186
- export { shapeTimeseries, timeseriesIssues, timeseriesOptionsSchema, timeseriesSeriesSchema };
202
+ export { shapeTimeseries, timeseriesAlertValues, timeseriesIssues, timeseriesOptionsSchema, timeseriesSeriesSchema };
187
203
 
188
204
  //# sourceMappingURL=timeseries.es.js.map