@mastra/playground-ui 68.0.0-alpha.2 → 68.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/dist/{FilterBar-CQl04O6t.cjs → FilterBar-BSP2UTjc.cjs} +2 -2
  2. package/dist/{FilterBar-CQl04O6t.cjs.map → FilterBar-BSP2UTjc.cjs.map} +1 -1
  3. package/dist/{FilterBar-BgW2dqRQ.js → FilterBar-PSQ1OwqH.js} +2 -2
  4. package/dist/{FilterBar-BgW2dqRQ.js.map → FilterBar-PSQ1OwqH.js.map} +1 -1
  5. package/dist/KnowledgePageGraph.css +55 -0
  6. package/dist/{MarkdownRenderer-2GOXQJEv.js → MarkdownRenderer-CI30RqdB.js} +19 -6
  7. package/dist/MarkdownRenderer-CI30RqdB.js.map +1 -0
  8. package/dist/{MarkdownRenderer-CB8Z_CHc.cjs → MarkdownRenderer-y65WGBhC.cjs} +19 -6
  9. package/dist/MarkdownRenderer-y65WGBhC.cjs.map +1 -0
  10. package/dist/{MetricsCard-CEB-f2sv.cjs → MetricsCard-BEwiS7Pe.cjs} +8 -8
  11. package/dist/MetricsCard-BEwiS7Pe.cjs.map +1 -0
  12. package/dist/{MetricsCard-M8awJ2B_.js → MetricsCard-ua6C6b8a.js} +10 -10
  13. package/dist/MetricsCard-ua6C6b8a.js.map +1 -0
  14. package/dist/{MetricsLineChart-BhHoduO0.js → MetricsLineChart-4SwxBbQx.js} +14 -3
  15. package/dist/MetricsLineChart-4SwxBbQx.js.map +1 -0
  16. package/dist/{MetricsLineChart-CjBm4IXu.cjs → MetricsLineChart-tZxsauau.cjs} +13 -2
  17. package/dist/MetricsLineChart-tZxsauau.cjs.map +1 -0
  18. package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs → MetricsStackedBarChart-CDLE76IB.cjs} +2 -2
  19. package/dist/{MetricsStackedBarChart-BdMlKv6G.cjs.map → MetricsStackedBarChart-CDLE76IB.cjs.map} +1 -1
  20. package/dist/{MetricsStackedBarChart-BRuA6MTE.js → MetricsStackedBarChart-D2QyS4-z.js} +2 -2
  21. package/dist/{MetricsStackedBarChart-BRuA6MTE.js.map → MetricsStackedBarChart-D2QyS4-z.js.map} +1 -1
  22. package/dist/{activity-rJ1NQl_2.js → activity-C8Ql81WM.js} +2 -2
  23. package/dist/{activity-rJ1NQl_2.js.map → activity-C8Ql81WM.js.map} +1 -1
  24. package/dist/{activity-DyB5H3gF.cjs → activity-CcQZeDYi.cjs} +2 -2
  25. package/dist/{activity-DyB5H3gF.cjs.map → activity-CcQZeDYi.cjs.map} +1 -1
  26. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  27. package/dist/components/DateTimeRangePicker.es.js +1 -1
  28. package/dist/components/FilterBar.cjs.js +2 -2
  29. package/dist/components/FilterBar.es.js +2 -2
  30. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  31. package/dist/components/MarkdownRenderer.es.js +1 -1
  32. package/dist/components/MetricsCard.cjs.js +1 -1
  33. package/dist/components/MetricsCard.es.js +1 -1
  34. package/dist/components/MetricsLineChart.cjs.js +1 -1
  35. package/dist/components/MetricsLineChart.es.js +1 -1
  36. package/dist/components/MetricsStackedBarChart.cjs.js +1 -1
  37. package/dist/components/MetricsStackedBarChart.es.js +1 -1
  38. package/dist/components/SavedViews.cjs.js +1 -1
  39. package/dist/components/SavedViews.es.js +1 -1
  40. package/dist/components/ai/activity.cjs.js +1 -1
  41. package/dist/components/ai/activity.es.js +1 -1
  42. package/dist/components/ai/plan.cjs.js +1 -1
  43. package/dist/components/ai/plan.es.js +1 -1
  44. package/dist/components/ai/tool-approval.cjs.js +1 -1
  45. package/dist/components/ai/tool-approval.es.js +1 -1
  46. package/dist/components/ai/tool-call.cjs.js +2 -2
  47. package/dist/components/ai/tool-call.es.js +2 -2
  48. package/dist/{date-time-range-picker-CTt7Od0P.cjs → date-time-range-picker-CWGjoR3j.cjs} +40 -13
  49. package/dist/date-time-range-picker-CWGjoR3j.cjs.map +1 -0
  50. package/dist/{date-time-range-picker-DKh1K9Iy.js → date-time-range-picker-CdSiXwB4.js} +40 -13
  51. package/dist/date-time-range-picker-CdSiXwB4.js.map +1 -0
  52. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
  53. package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
  54. package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
  55. package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
  56. package/dist/domains/chat/activity/components/activity-timed-trigger.cjs.js +1 -1
  57. package/dist/domains/chat/activity/components/activity-timed-trigger.es.js +1 -1
  58. package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
  59. package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
  60. package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
  61. package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
  62. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  63. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  64. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  65. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  66. package/dist/domains/chat/activity/model/activity-words.cjs.js +2 -2
  67. package/dist/domains/chat/activity/model/activity-words.es.js +2 -2
  68. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  69. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  70. package/dist/domains/chat/knowledge/knowledge-links.cjs.js +52 -6
  71. package/dist/domains/chat/knowledge/knowledge-links.cjs.js.map +1 -1
  72. package/dist/domains/chat/knowledge/knowledge-links.es.js +53 -9
  73. package/dist/domains/chat/knowledge/knowledge-links.es.js.map +1 -1
  74. package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js +10 -3
  75. package/dist/domains/chat/knowledge/pinned-knowledge-data.cjs.js.map +1 -1
  76. package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js +10 -3
  77. package/dist/domains/chat/knowledge/pinned-knowledge-data.es.js.map +1 -1
  78. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +8 -3
  79. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js.map +1 -1
  80. package/dist/domains/chat/knowledge/pinned-knowledge.es.js +8 -3
  81. package/dist/domains/chat/knowledge/pinned-knowledge.es.js.map +1 -1
  82. package/dist/domains/chat/knowledge.cjs.js +2 -0
  83. package/dist/domains/chat/knowledge.es.js +2 -2
  84. package/dist/domains/chat/messages/message-row.cjs.js +3 -3
  85. package/dist/domains/chat/messages/message-row.es.js +3 -3
  86. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  87. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  88. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  89. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  90. package/dist/domains/chat/messages/renderers/message-text.cjs.js +35 -1
  91. package/dist/domains/chat/messages/renderers/message-text.cjs.js.map +1 -1
  92. package/dist/domains/chat/messages/renderers/message-text.es.js +36 -2
  93. package/dist/domains/chat/messages/renderers/message-text.es.js.map +1 -1
  94. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  95. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  96. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  97. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  98. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  99. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  100. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  101. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  102. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  103. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  104. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  105. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  106. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +2 -2
  107. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +2 -2
  108. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js +80 -0
  109. package/dist/domains/chat/tools/badges/knowledge-body-range.cjs.js.map +1 -0
  110. package/dist/domains/chat/tools/badges/knowledge-body-range.d.ts +1 -0
  111. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js +78 -0
  112. package/dist/domains/chat/tools/badges/knowledge-body-range.es.js.map +1 -0
  113. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +163 -13
  114. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js.map +1 -1
  115. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +165 -15
  116. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js.map +1 -1
  117. package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js +51 -0
  118. package/dist/domains/chat/tools/badges/mcp-input-request-badge.cjs.js.map +1 -0
  119. package/dist/domains/chat/tools/badges/mcp-input-request-badge.d.ts +1 -0
  120. package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js +49 -0
  121. package/dist/domains/chat/tools/badges/mcp-input-request-badge.es.js.map +1 -0
  122. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js +7 -2
  123. package/dist/domains/chat/tools/badges/mcp-task-chip.cjs.js.map +1 -1
  124. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js +7 -2
  125. package/dist/domains/chat/tools/badges/mcp-task-chip.es.js.map +1 -1
  126. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  127. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  128. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  129. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  130. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  131. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  132. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  133. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  134. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  135. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  136. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +9 -4
  137. package/dist/domains/chat/tools/badges/tool-badge.cjs.js.map +1 -1
  138. package/dist/domains/chat/tools/badges/tool-badge.es.js +9 -4
  139. package/dist/domains/chat/tools/badges/tool-badge.es.js.map +1 -1
  140. package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js +81 -0
  141. package/dist/domains/chat/tools/badges/use-deferred-input-request.cjs.js.map +1 -0
  142. package/dist/domains/chat/tools/badges/use-deferred-input-request.d.ts +1 -0
  143. package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js +77 -0
  144. package/dist/domains/chat/tools/badges/use-deferred-input-request.es.js.map +1 -0
  145. package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js +11 -2
  146. package/dist/domains/chat/tools/badges/use-mcp-task-progress.cjs.js.map +1 -1
  147. package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js +11 -2
  148. package/dist/domains/chat/tools/badges/use-mcp-task-progress.es.js.map +1 -1
  149. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +1 -1
  150. package/dist/domains/chat/tools/badges/workflow-badge.es.js +1 -1
  151. package/dist/domains/chat/tools/connect-prompt-tool.cjs.js +79 -4
  152. package/dist/domains/chat/tools/connect-prompt-tool.cjs.js.map +1 -1
  153. package/dist/domains/chat/tools/connect-prompt-tool.es.js +79 -4
  154. package/dist/domains/chat/tools/connect-prompt-tool.es.js.map +1 -1
  155. package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +238 -0
  156. package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js.map +1 -0
  157. package/dist/domains/chat/tools/mcp-input-request-tool.d.ts +1 -0
  158. package/dist/domains/chat/tools/mcp-input-request-tool.es.js +237 -0
  159. package/dist/domains/chat/tools/mcp-input-request-tool.es.js.map +1 -0
  160. package/dist/domains/chat/tools/mcp-input-request.cjs.js +40 -0
  161. package/dist/domains/chat/tools/mcp-input-request.cjs.js.map +1 -0
  162. package/dist/domains/chat/tools/mcp-input-request.d.ts +1 -0
  163. package/dist/domains/chat/tools/mcp-input-request.es.js +33 -0
  164. package/dist/domains/chat/tools/mcp-input-request.es.js.map +1 -0
  165. package/dist/domains/chat/tools/tool-card-kind.cjs.js +9 -4
  166. package/dist/domains/chat/tools/tool-card-kind.cjs.js.map +1 -1
  167. package/dist/domains/chat/tools/tool-card-kind.es.js +9 -5
  168. package/dist/domains/chat/tools/tool-card-kind.es.js.map +1 -1
  169. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  170. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  171. package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
  172. package/dist/domains/chat/tools/tool-groups.es.js +1 -1
  173. package/dist/domains/chat.cjs.js +5 -3
  174. package/dist/domains/chat.es.js +4 -4
  175. package/dist/domains/connect/types.cjs.js.map +1 -1
  176. package/dist/domains/connect/types.es.js.map +1 -1
  177. package/dist/domains/connect/use-user-connect.cjs.js +19 -2
  178. package/dist/domains/connect/use-user-connect.cjs.js.map +1 -1
  179. package/dist/domains/connect/use-user-connect.es.js +19 -2
  180. package/dist/domains/connect/use-user-connect.es.js.map +1 -1
  181. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +4 -3
  182. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
  183. package/dist/domains/dashboards/components/dashboard-renderer.es.js +4 -3
  184. package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
  185. package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
  186. package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
  187. package/dist/domains/dashboards/components/widget-error.cjs.js +1 -1
  188. package/dist/domains/dashboards/components/widget-error.es.js +1 -1
  189. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +4 -3
  190. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
  191. package/dist/domains/dashboards/hooks/use-widget-views.es.js +4 -3
  192. package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
  193. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +9 -6
  194. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
  195. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +9 -6
  196. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
  197. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +2 -2
  198. package/dist/domains/dashboards/kinds/table/table-tabs.es.js +2 -2
  199. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +1 -1
  200. package/dist/domains/dashboards/kinds/table/table-widget.es.js +1 -1
  201. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +6 -5
  202. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
  203. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +6 -5
  204. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
  205. package/dist/domains/dashboards/lib/chrome.cjs.js +9 -2
  206. package/dist/domains/dashboards/lib/chrome.cjs.js.map +1 -1
  207. package/dist/domains/dashboards/lib/chrome.es.js +9 -2
  208. package/dist/domains/dashboards/lib/chrome.es.js.map +1 -1
  209. package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
  210. package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
  211. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js +48 -0
  212. package/dist/domains/knowledge/components/KnowledgePageCard.cjs.js.map +1 -0
  213. package/dist/domains/knowledge/components/KnowledgePageCard.d.ts +1 -0
  214. package/dist/domains/knowledge/components/KnowledgePageCard.es.js +47 -0
  215. package/dist/domains/knowledge/components/KnowledgePageCard.es.js.map +1 -0
  216. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +63 -5
  217. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
  218. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +64 -6
  219. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
  220. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +485 -47
  221. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
  222. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +487 -50
  223. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
  224. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +1051 -123
  225. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
  226. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +1054 -126
  227. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
  228. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +75 -3
  229. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
  230. package/dist/domains/knowledge/components/KnowledgePageTree.es.js +76 -4
  231. package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
  232. package/dist/domains/knowledge/lib/circleText.cjs.js +9 -0
  233. package/dist/domains/knowledge/lib/circleText.cjs.js.map +1 -0
  234. package/dist/domains/knowledge/lib/circleText.d.ts +1 -0
  235. package/dist/domains/knowledge/lib/circleText.es.js +8 -0
  236. package/dist/domains/knowledge/lib/circleText.es.js.map +1 -0
  237. package/dist/domains/knowledge/lib/fitViewport.cjs.js +82 -0
  238. package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -0
  239. package/dist/domains/knowledge/lib/fitViewport.d.ts +1 -0
  240. package/dist/domains/knowledge/lib/fitViewport.es.js +73 -0
  241. package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -0
  242. package/dist/domains/knowledge/lib/graphShape.cjs.js +524 -0
  243. package/dist/domains/knowledge/lib/graphShape.cjs.js.map +1 -0
  244. package/dist/domains/knowledge/lib/graphShape.d.ts +1 -0
  245. package/dist/domains/knowledge/lib/graphShape.es.js +499 -0
  246. package/dist/domains/knowledge/lib/graphShape.es.js.map +1 -0
  247. package/dist/domains/knowledge/lib/linkCountsText.cjs.js +11 -0
  248. package/dist/domains/knowledge/lib/linkCountsText.cjs.js.map +1 -0
  249. package/dist/domains/knowledge/lib/linkCountsText.d.ts +1 -0
  250. package/dist/domains/knowledge/lib/linkCountsText.es.js +10 -0
  251. package/dist/domains/knowledge/lib/linkCountsText.es.js.map +1 -0
  252. package/dist/domains/knowledge/lib/pageAddress.cjs.js +29 -0
  253. package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -0
  254. package/dist/domains/knowledge/lib/pageAddress.d.ts +1 -0
  255. package/dist/domains/knowledge/lib/pageAddress.es.js +27 -0
  256. package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -0
  257. package/dist/domains/knowledge/lib/pageGraph.cjs.js +11 -11
  258. package/dist/domains/knowledge/lib/pageGraph.cjs.js.map +1 -1
  259. package/dist/domains/knowledge/lib/pageGraph.es.js +11 -11
  260. package/dist/domains/knowledge/lib/pageGraph.es.js.map +1 -1
  261. package/dist/domains/knowledge/lib/pageRefs.cjs.js +69 -0
  262. package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -0
  263. package/dist/domains/knowledge/lib/pageRefs.d.ts +1 -0
  264. package/dist/domains/knowledge/lib/pageRefs.es.js +66 -0
  265. package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -0
  266. package/dist/domains/knowledge/lib/pageTree.cjs.js +5 -0
  267. package/dist/domains/knowledge/lib/pageTree.cjs.js.map +1 -1
  268. package/dist/domains/knowledge/lib/pageTree.es.js +5 -1
  269. package/dist/domains/knowledge/lib/pageTree.es.js.map +1 -1
  270. package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js +82 -0
  271. package/dist/domains/knowledge/lib/remarkKnowledgeLinks.cjs.js.map +1 -0
  272. package/dist/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +1 -0
  273. package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js +78 -0
  274. package/dist/domains/knowledge/lib/remarkKnowledgeLinks.es.js.map +1 -0
  275. package/dist/domains/knowledge/lib/tooltipSide.cjs.js +77 -0
  276. package/dist/domains/knowledge/lib/tooltipSide.cjs.js.map +1 -0
  277. package/dist/domains/knowledge/lib/tooltipSide.d.ts +1 -0
  278. package/dist/domains/knowledge/lib/tooltipSide.es.js +75 -0
  279. package/dist/domains/knowledge/lib/tooltipSide.es.js.map +1 -0
  280. package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js +65 -0
  281. package/dist/domains/knowledge/lib/useLeavingNodes.cjs.js.map +1 -0
  282. package/dist/domains/knowledge/lib/useLeavingNodes.d.ts +1 -0
  283. package/dist/domains/knowledge/lib/useLeavingNodes.es.js +62 -0
  284. package/dist/domains/knowledge/lib/useLeavingNodes.es.js.map +1 -0
  285. package/dist/domains/knowledge/lib/useStableWhile.cjs.js +15 -0
  286. package/dist/domains/knowledge/lib/useStableWhile.cjs.js.map +1 -0
  287. package/dist/domains/knowledge/lib/useStableWhile.d.ts +1 -0
  288. package/dist/domains/knowledge/lib/useStableWhile.es.js +14 -0
  289. package/dist/domains/knowledge/lib/useStableWhile.es.js.map +1 -0
  290. package/dist/domains/metrics/components/agent-runs-card.cjs.js +3 -3
  291. package/dist/domains/metrics/components/agent-runs-card.es.js +3 -3
  292. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
  293. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
  294. package/dist/domains/metrics/components/breakdown-card.cjs.js +1 -1
  295. package/dist/domains/metrics/components/breakdown-card.es.js +1 -1
  296. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  297. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  298. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  299. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  300. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  301. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  302. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  303. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  304. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +3 -2
  305. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js.map +1 -1
  306. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +3 -2
  307. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js.map +1 -1
  308. package/dist/domains/metrics/components/failure-rate-card.cjs.js +3 -2
  309. package/dist/domains/metrics/components/failure-rate-card.cjs.js.map +1 -1
  310. package/dist/domains/metrics/components/failure-rate-card.es.js +3 -2
  311. package/dist/domains/metrics/components/failure-rate-card.es.js.map +1 -1
  312. package/dist/domains/metrics/components/latency-card.cjs.js +3 -2
  313. package/dist/domains/metrics/components/latency-card.cjs.js.map +1 -1
  314. package/dist/domains/metrics/components/latency-card.es.js +3 -2
  315. package/dist/domains/metrics/components/latency-card.es.js.map +1 -1
  316. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +1 -1
  317. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +1 -1
  318. package/dist/domains/metrics/components/scores-card.cjs.js +2 -1
  319. package/dist/domains/metrics/components/scores-card.cjs.js.map +1 -1
  320. package/dist/domains/metrics/components/scores-card.es.js +2 -1
  321. package/dist/domains/metrics/components/scores-card.es.js.map +1 -1
  322. package/dist/domains/metrics/components/token-usage-card.cjs.js +3 -3
  323. package/dist/domains/metrics/components/token-usage-card.es.js +3 -3
  324. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
  325. package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
  326. package/dist/domains/observability/components/observability-histogram.cjs.js +1 -1
  327. package/dist/domains/observability/components/observability-histogram.es.js +1 -1
  328. package/dist/domains/scores/components/trace-scores-list.cjs.js +2 -2
  329. package/dist/domains/scores/components/trace-scores-list.es.js +2 -2
  330. package/dist/domains/skills/skill-simple-form.cjs.js +1 -1
  331. package/dist/domains/skills/skill-simple-form.es.js +1 -1
  332. package/dist/domains/spans/components/spans-filter-bar.cjs.js +2 -2
  333. package/dist/domains/spans/components/spans-filter-bar.es.js +2 -2
  334. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +1 -1
  335. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +1 -1
  336. package/dist/domains/threads/components/threads-filter-bar.cjs.js +2 -2
  337. package/dist/domains/threads/components/threads-filter-bar.es.js +2 -2
  338. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +1 -1
  339. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +1 -1
  340. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  341. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  342. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  343. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  344. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  345. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  346. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  347. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  348. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  349. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  350. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  351. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  352. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  353. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  354. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +1 -1
  355. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
  356. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
  357. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
  358. package/dist/domains/traces/components/span-timeline-row.cjs.js +1 -1
  359. package/dist/domains/traces/components/span-timeline-row.es.js +1 -1
  360. package/dist/domains/traces/components/span-timing-hover-card.cjs.js +1 -1
  361. package/dist/domains/traces/components/span-timing-hover-card.es.js +1 -1
  362. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +8 -2
  363. package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
  364. package/dist/domains/traces/components/trace-data-panel-view.es.js +8 -2
  365. package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
  366. package/dist/domains/traces/components/trace-error-cell.cjs.js +1 -1
  367. package/dist/domains/traces/components/trace-error-cell.es.js +1 -1
  368. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
  369. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
  370. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +1 -1
  371. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
  372. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +1 -1
  373. package/dist/domains/workflows/runs/workflow-run-list.es.js +1 -1
  374. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +2 -2
  375. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +2 -2
  376. package/dist/domains/workflows/workflow/use-workflow-trigger.cjs.js +3 -3
  377. package/dist/domains/workflows/workflow/use-workflow-trigger.es.js +3 -3
  378. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +1 -1
  379. package/dist/domains/workflows/workflow/workflow-input-data.es.js +1 -1
  380. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  381. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  382. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +2 -2
  383. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +2 -2
  384. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
  385. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
  386. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
  387. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
  388. package/dist/{filter-bar-time-range-mg9JeYue.js → filter-bar-time-range-qlV8p7hp.js} +2 -2
  389. package/dist/{filter-bar-time-range-mg9JeYue.js.map → filter-bar-time-range-qlV8p7hp.js.map} +1 -1
  390. package/dist/{filter-bar-time-range-BA-pXMlo.cjs → filter-bar-time-range-zdM024JD.cjs} +2 -2
  391. package/dist/{filter-bar-time-range-BA-pXMlo.cjs.map → filter-bar-time-range-zdM024JD.cjs.map} +1 -1
  392. package/dist/lib/form/dynamic-form.cjs.js +2 -2
  393. package/dist/lib/form/dynamic-form.es.js +2 -2
  394. package/dist/lib/form/json-draft.cjs.js +1 -1
  395. package/dist/lib/form/json-draft.es.js +1 -1
  396. package/dist/lib/form/zod-provider.cjs.js +1 -1
  397. package/dist/lib/form/zod-provider.es.js +1 -1
  398. package/dist/{span-payload-primitives-B3RdahsC.js → span-payload-primitives-CKKIAVPJ.js} +4 -4
  399. package/dist/{span-payload-primitives-B3RdahsC.js.map → span-payload-primitives-CKKIAVPJ.js.map} +1 -1
  400. package/dist/{span-payload-primitives-_2d-pAOD.cjs → span-payload-primitives-D4tHWN2W.cjs} +4 -4
  401. package/dist/{span-payload-primitives-_2d-pAOD.cjs.map → span-payload-primitives-D4tHWN2W.cjs.map} +1 -1
  402. package/dist/src/domains/chat/knowledge/knowledge-links.d.ts +32 -4
  403. package/dist/src/domains/chat/knowledge/pinned-knowledge-data.d.ts +2 -0
  404. package/dist/src/domains/chat/tools/badges/knowledge-body-range.d.ts +12 -0
  405. package/dist/src/domains/chat/tools/badges/knowledge-tool-badge.d.ts +5 -2
  406. package/dist/src/domains/chat/tools/badges/mcp-input-request-badge.d.ts +18 -0
  407. package/dist/src/domains/chat/tools/badges/tool-badge.d.ts +4 -1
  408. package/dist/src/domains/chat/tools/badges/use-deferred-input-request.d.ts +44 -0
  409. package/dist/src/domains/chat/tools/badges/use-mcp-task-progress.d.ts +6 -1
  410. package/dist/src/domains/chat/tools/connect-prompt-tool.d.ts +10 -1
  411. package/dist/src/domains/chat/tools/mcp-input-request-tool.d.ts +18 -0
  412. package/dist/src/domains/chat/tools/mcp-input-request.d.ts +40 -0
  413. package/dist/src/domains/chat/tools/tool-card-kind.d.ts +4 -2
  414. package/dist/src/domains/chat/tools/tool-card.d.ts +1 -1
  415. package/dist/src/domains/connect/types.d.ts +16 -0
  416. package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +4 -2
  417. package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +4 -3
  418. package/dist/src/domains/dashboards/index.d.ts +1 -1
  419. package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
  420. package/dist/src/domains/dashboards/lib/chrome.d.ts +6 -4
  421. package/dist/src/domains/dashboards/widget-kind.d.ts +12 -0
  422. package/dist/src/domains/knowledge/components/KnowledgePageCard.d.ts +23 -0
  423. package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +29 -0
  424. package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +27 -1
  425. package/dist/src/domains/knowledge/components/KnowledgePageTree.d.ts +2 -1
  426. package/dist/src/domains/knowledge/lib/circleText.d.ts +2 -0
  427. package/dist/src/domains/knowledge/lib/fitViewport.d.ts +67 -0
  428. package/dist/src/domains/knowledge/lib/graphShape.d.ts +131 -0
  429. package/dist/src/domains/knowledge/lib/linkCountsText.d.ts +5 -0
  430. package/dist/src/domains/knowledge/lib/pageAddress.d.ts +5 -0
  431. package/dist/src/domains/knowledge/lib/pageGraph.d.ts +4 -4
  432. package/dist/src/domains/knowledge/lib/pageRefs.d.ts +15 -0
  433. package/dist/src/domains/knowledge/lib/pageTree.d.ts +2 -0
  434. package/dist/src/domains/knowledge/lib/remarkKnowledgeLinks.d.ts +13 -0
  435. package/dist/src/domains/knowledge/lib/tooltipSide.d.ts +40 -0
  436. package/dist/src/domains/knowledge/lib/useLeavingNodes.d.ts +14 -0
  437. package/dist/src/domains/knowledge/lib/useStableWhile.d.ts +5 -0
  438. package/dist/src/domains/knowledge/pageTypes.d.ts +6 -1
  439. package/dist/src/ds/components/DateTimeRangePicker/date-time-range-picker.d.ts +12 -1
  440. package/dist/src/ds/components/MarkdownRenderer/markdown-renderer.d.ts +8 -1
  441. package/dist/src/ds/components/MetricsCard/metrics-card-headline.d.ts +1 -1
  442. package/dist/src/ds/components/MetricsLineChart/metrics-line-chart.d.ts +8 -0
  443. package/dist/src/ds/components/ai/tool-call/tool-phrases.d.ts +6 -0
  444. package/dist/style.css +73 -2
  445. package/dist/{tool-approval-1qiB4hhG.cjs → tool-approval-CJvPDL7D.cjs} +4 -4
  446. package/dist/{tool-approval-1qiB4hhG.cjs.map → tool-approval-CJvPDL7D.cjs.map} +1 -1
  447. package/dist/{tool-approval-B6MFcaKV.js → tool-approval-DyN11vFA.js} +4 -4
  448. package/dist/{tool-approval-B6MFcaKV.js.map → tool-approval-DyN11vFA.js.map} +1 -1
  449. package/dist/{tool-call-Bu66PkD-.cjs → tool-call-DBn14X-3.cjs} +9 -3
  450. package/dist/{tool-call-Bu66PkD-.cjs.map → tool-call-DBn14X-3.cjs.map} +1 -1
  451. package/dist/{tool-call-Ch9-jjXU.js → tool-call-Dsj43lvJ.js} +9 -3
  452. package/dist/{tool-call-Ch9-jjXU.js.map → tool-call-Dsj43lvJ.js.map} +1 -1
  453. package/dist/{tool-card-DrqPZfPQ.cjs → tool-card-BOLXeKIp.cjs} +167 -126
  454. package/dist/tool-card-BOLXeKIp.cjs.map +1 -0
  455. package/dist/{tool-card-sO6P2Qj4.js → tool-card-HZ5bm7ue.js} +168 -127
  456. package/dist/tool-card-HZ5bm7ue.js.map +1 -0
  457. package/dist/{tool-presentation-DvCsb_kz.js → tool-presentation-CvibOP1J.js} +6 -1
  458. package/dist/tool-presentation-CvibOP1J.js.map +1 -0
  459. package/dist/{tool-presentation-CQlDEwgS.cjs → tool-presentation-D6nzVruN.cjs} +6 -1
  460. package/dist/tool-presentation-D6nzVruN.cjs.map +1 -0
  461. package/package.json +11 -11
  462. package/dist/MarkdownRenderer-2GOXQJEv.js.map +0 -1
  463. package/dist/MarkdownRenderer-CB8Z_CHc.cjs.map +0 -1
  464. package/dist/MetricsCard-CEB-f2sv.cjs.map +0 -1
  465. package/dist/MetricsCard-M8awJ2B_.js.map +0 -1
  466. package/dist/MetricsLineChart-BhHoduO0.js.map +0 -1
  467. package/dist/MetricsLineChart-CjBm4IXu.cjs.map +0 -1
  468. package/dist/date-time-range-picker-CTt7Od0P.cjs.map +0 -1
  469. package/dist/date-time-range-picker-DKh1K9Iy.js.map +0 -1
  470. package/dist/domains/knowledge/lib/pageLayout.cjs.js +0 -49
  471. package/dist/domains/knowledge/lib/pageLayout.cjs.js.map +0 -1
  472. package/dist/domains/knowledge/lib/pageLayout.d.ts +0 -1
  473. package/dist/domains/knowledge/lib/pageLayout.es.js +0 -48
  474. package/dist/domains/knowledge/lib/pageLayout.es.js.map +0 -1
  475. package/dist/src/domains/knowledge/lib/pageLayout.d.ts +0 -24
  476. package/dist/tool-card-DrqPZfPQ.cjs.map +0 -1
  477. package/dist/tool-card-sO6P2Qj4.js.map +0 -1
  478. package/dist/tool-presentation-CQlDEwgS.cjs.map +0 -1
  479. package/dist/tool-presentation-DvCsb_kz.js.map +0 -1
@@ -15,8 +15,8 @@ const require_components_AlertDialog = require("../../../components/AlertDialog.
15
15
  const require_components_ThreadList = require("../../../components/ThreadList.cjs.js");
16
16
  let react = require("react");
17
17
  let react_jsx_runtime = require("react/jsx-runtime");
18
- let _mastra_react_hooks_workflows = require("@mastra/react/hooks/workflows");
19
18
  let zod = require("zod");
19
+ let _mastra_react_hooks_workflows = require("@mastra/react/hooks/workflows");
20
20
  // src/domains/workflows/runs/workflow-run-list.tsx
21
21
  var runSnapshotSchema = zod.z.object({
22
22
  status: zod.z.enum([
@@ -14,8 +14,8 @@ import { AlertDialog } from "../../../components/AlertDialog.es.js";
14
14
  import { ThreadList, ThreadListEmpty, ThreadListItem, ThreadListItems } from "../../../components/ThreadList.es.js";
15
15
  import { useState } from "react";
16
16
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
17
- import { useDeleteWorkflowRun, useWorkflowRun, useWorkflowRuns } from "@mastra/react/hooks/workflows";
18
17
  import { z } from "zod";
18
+ import { useDeleteWorkflowRun, useWorkflowRun, useWorkflowRuns } from "@mastra/react/hooks/workflows";
19
19
  // src/domains/workflows/runs/workflow-run-list.tsx
20
20
  var runSnapshotSchema = z.object({
21
21
  status: z.enum([
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_select = require("../../../../select-Dg8L5ROX.cjs");
3
3
  const require_components_Field = require("../../../../components/Field.cjs.js");
4
- const require_domains_workflows_workflow_input_processor_input = require("./processor-input.cjs.js");
5
- const require_lib_form_components_form_submit_row = require("../../../../lib/form/components/form-submit-row.cjs.js");
6
4
  const require_components_Textarea = require("../../../../components/Textarea.cjs.js");
5
+ const require_lib_form_components_form_submit_row = require("../../../../lib/form/components/form-submit-row.cjs.js");
6
+ const require_domains_workflows_workflow_input_processor_input = require("./processor-input.cjs.js");
7
7
  let react = require("react");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  // src/domains/workflows/workflow/input/workflow-processor-input.tsx
@@ -1,8 +1,8 @@
1
1
  import { i as SelectItem, n as SelectContent, o as SelectTrigger, s as SelectValue, t as Select } from "../../../../select-BdIZEdcy.js";
2
2
  import { Field, FieldDescription, FieldError, FieldLabel } from "../../../../components/Field.es.js";
3
- import { getProcessorMessage, updateProcessorMessage, withPhaseRole } from "./processor-input.es.js";
4
- import { FormSubmitRow } from "../../../../lib/form/components/form-submit-row.es.js";
5
3
  import { Textarea } from "../../../../components/Textarea.es.js";
4
+ import { FormSubmitRow } from "../../../../lib/form/components/form-submit-row.es.js";
5
+ import { getProcessorMessage, updateProcessorMessage, withPhaseRole } from "./processor-input.es.js";
6
6
  import { useState } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  // src/domains/workflows/workflow/input/workflow-processor-input.tsx
@@ -1,12 +1,12 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_lib_form_zod_provider_compat = require("../../../lib/form/zod-provider/compat.cjs.js");
3
+ const require_lib_form_json_schema_to_zod_runtime = require("../../../lib/form/json-schema-to-zod-runtime.cjs.js");
2
4
  const require_domains_workflows_context_workflow_run_context = require("../context/workflow-run-context.cjs.js");
3
5
  require("./workflow-step-node-utils.cjs.js");
4
6
  const require_domains_workflows_workflow_utils = require("./utils.cjs.js");
5
- const require_lib_form_json_schema_to_zod_runtime = require("../../../lib/form/json-schema-to-zod-runtime.cjs.js");
6
- const require_lib_form_zod_provider_compat = require("../../../lib/form/zod-provider/compat.cjs.js");
7
7
  let react = require("react");
8
- let superjson = require("superjson");
9
8
  let zod = require("zod");
9
+ let superjson = require("superjson");
10
10
  // src/domains/workflows/workflow/use-workflow-trigger.ts
11
11
  function useSuspendedSteps(streamResult, runId) {
12
12
  return (0, react.useMemo)(() => {
@@ -1,11 +1,11 @@
1
+ import { asObjectProperty } from "../../../lib/form/zod-provider/compat.es.js";
2
+ import { jsonSchemaToZodRuntime } from "../../../lib/form/json-schema-to-zod-runtime.es.js";
1
3
  import { WorkflowRunContext } from "../context/workflow-run-context.es.js";
2
4
  import "./workflow-step-node-utils.es.js";
3
5
  import { buildNextStepInput, buildStepSuccessors, buildStepsFlow, collectGraphStepFlags, constructNodesAndEdges, isBranchArmBypassed, isLastRunnableStep, selectNextStepKey } from "./utils.es.js";
4
- import { jsonSchemaToZodRuntime } from "../../../lib/form/json-schema-to-zod-runtime.es.js";
5
- import { asObjectProperty } from "../../../lib/form/zod-provider/compat.es.js";
6
6
  import { useCallback, useContext, useMemo } from "react";
7
- import { parse } from "superjson";
8
7
  import { z } from "zod";
8
+ import { parse } from "superjson";
9
9
  // src/domains/workflows/workflow/use-workflow-trigger.ts
10
10
  function useSuspendedSteps(streamResult, runId) {
11
11
  return useMemo(() => {
@@ -4,11 +4,11 @@ const require_icons_Icon = require("../../../icons/Icon.cjs.js");
4
4
  const require_Txt = require("../../../Txt-BnoSqxKE.cjs");
5
5
  const require_components_Collapsible = require("../../../components/Collapsible.cjs.js");
6
6
  const require_components_DisclosureChevron = require("../../../components/DisclosureChevron.cjs.js");
7
+ const require_lib_form_dynamic_form = require("../../../lib/form/dynamic-form.cjs.js");
7
8
  const require_domains_workflows_workflow_input_processor_input = require("./input/processor-input.cjs.js");
8
9
  const require_domains_workflows_workflow_input_workflow_json_input = require("./input/workflow-json-input.cjs.js");
9
10
  const require_domains_workflows_workflow_input_workflow_processor_input = require("./input/workflow-processor-input.cjs.js");
10
11
  const require_domains_workflows_workflow_workflow_input_type_toggle = require("./workflow-input-type-toggle.cjs.js");
11
- const require_lib_form_dynamic_form = require("../../../lib/form/dynamic-form.cjs.js");
12
12
  const require_lib_form_json_draft = require("../../../lib/form/json-draft.cjs.js");
13
13
  let react = require("react");
14
14
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -3,11 +3,11 @@ import { Icon } from "../../../icons/Icon.es.js";
3
3
  import { t as Txt } from "../../../Txt-BM6TVV_c.js";
4
4
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../../components/Collapsible.es.js";
5
5
  import { DisclosureChevron } from "../../../components/DisclosureChevron.es.js";
6
+ import { DynamicForm } from "../../../lib/form/dynamic-form.es.js";
6
7
  import { createProcessorInput, parseProcessorDraft } from "./input/processor-input.es.js";
7
8
  import { WorkflowJsonInput } from "./input/workflow-json-input.es.js";
8
9
  import { WorkflowProcessorInput } from "./input/workflow-processor-input.es.js";
9
10
  import { WorkflowInputTypeToggle } from "./workflow-input-type-toggle.es.js";
10
- import { DynamicForm } from "../../../lib/form/dynamic-form.es.js";
11
11
  import { getFormShapeError, parseJsonDraft, validateJsonDraft } from "../../../lib/form/json-draft.es.js";
12
12
  import { useRef, useState } from "react";
13
13
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -8,15 +8,15 @@ const require_components_Collapsible = require("../../../components/Collapsible.
8
8
  const require_components_DisclosureChevron = require("../../../components/DisclosureChevron.cjs.js");
9
9
  const require_Badge = require("../../../Badge-DZ6r6bcw.cjs");
10
10
  const require_CodeEditor = require("../../../CodeEditor-CLzs0yVc.cjs");
11
- const require_components_Activity = require("../../../components/Activity.cjs.js");
12
11
  const require_lib_form_json_schema_to_zod_runtime = require("../../../lib/form/json-schema-to-zod-runtime.cjs.js");
12
+ const require_components_Activity = require("../../../components/Activity.cjs.js");
13
13
  const require_domains_workflows_workflow_workflow_input_data = require("./workflow-input-data.cjs.js");
14
14
  const require_domains_workflows_components_workflow_layout = require("../components/workflow-layout.cjs.js");
15
15
  let react = require("react");
16
16
  let react_jsx_runtime = require("react/jsx-runtime");
17
17
  let lucide_react = require("lucide-react");
18
- let superjson = require("superjson");
19
18
  let zod = require("zod");
19
+ let superjson = require("superjson");
20
20
  // src/domains/workflows/workflow/workflow-suspended-steps.tsx
21
21
  var suspendedWickStyle = { "--belt-hue": "var(--warning-indicator)" };
22
22
  function formatPayloadSize(payload) {
@@ -7,15 +7,15 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../../../co
7
7
  import { DisclosureChevron } from "../../../components/DisclosureChevron.es.js";
8
8
  import { t as Badge } from "../../../Badge-aVu5iGAF.js";
9
9
  import { t as CodeEditor } from "../../../CodeEditor-COnz9c6B.js";
10
- import { ActivityWick } from "../../../components/Activity.es.js";
11
10
  import { jsonSchemaToZodRuntime } from "../../../lib/form/json-schema-to-zod-runtime.es.js";
11
+ import { ActivityWick } from "../../../components/Activity.es.js";
12
12
  import { WorkflowInputData } from "./workflow-input-data.es.js";
13
13
  import { panelSurfaceStyle } from "../components/workflow-layout.es.js";
14
14
  import { useState } from "react";
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
16
16
  import { CirclePause, MoveDownLeft, MoveUpRight, Play } from "lucide-react";
17
- import { parse } from "superjson";
18
17
  import { z } from "zod";
18
+ import { parse } from "superjson";
19
19
  // src/domains/workflows/workflow/workflow-suspended-steps.tsx
20
20
  var suspendedWickStyle = { "--belt-hue": "var(--warning-indicator)" };
21
21
  function formatPayloadSize(payload) {
@@ -12,14 +12,14 @@ const require_components_DisclosureChevron = require("../../../components/Disclo
12
12
  const require_CodeEditor = require("../../../CodeEditor-CLzs0yVc.cjs");
13
13
  const require_Notice = require("../../../Notice-JZ7SW7q6.cjs");
14
14
  const require_components_Field = require("../../../components/Field.cjs.js");
15
- const require_domains_workflows_context_workflow_run_context = require("../context/workflow-run-context.cjs.js");
16
15
  const require_lib_form_json_schema_to_zod_runtime = require("../../../lib/form/json-schema-to-zod-runtime.cjs.js");
16
+ const require_domains_workflows_context_workflow_run_context = require("../context/workflow-run-context.cjs.js");
17
17
  const require_domains_workflows_workflow_workflow_input_data = require("./workflow-input-data.cjs.js");
18
18
  let react = require("react");
19
19
  let react_jsx_runtime = require("react/jsx-runtime");
20
20
  let lucide_react = require("lucide-react");
21
- let superjson = require("superjson");
22
21
  let zod = require("zod");
22
+ let superjson = require("superjson");
23
23
  // src/domains/workflows/workflow/workflow-time-travel-form.tsx
24
24
  var buttonClass = require_primitives_typography.quietTextHover;
25
25
  var prettyJson = (value) => {
@@ -11,14 +11,14 @@ import { DisclosureChevron } from "../../../components/DisclosureChevron.es.js";
11
11
  import { t as CodeEditor } from "../../../CodeEditor-COnz9c6B.js";
12
12
  import { t as Notice } from "../../../Notice-C-8oOZZF.js";
13
13
  import { Field, FieldError, FieldLabel } from "../../../components/Field.es.js";
14
- import { WorkflowRunContext } from "../context/workflow-run-context.es.js";
15
14
  import { jsonSchemaToZodRuntime } from "../../../lib/form/json-schema-to-zod-runtime.es.js";
15
+ import { WorkflowRunContext } from "../context/workflow-run-context.es.js";
16
16
  import { WorkflowInputData } from "./workflow-input-data.es.js";
17
17
  import { useContext, useMemo, useState } from "react";
18
18
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
19
19
  import { Braces, CopyIcon, EyeIcon, EyeOffIcon } from "lucide-react";
20
- import { parse } from "superjson";
21
20
  import { z } from "zod";
21
+ import { parse } from "superjson";
22
22
  // src/domains/workflows/workflow/workflow-time-travel-form.tsx
23
23
  var buttonClass = quietTextHover;
24
24
  var prettyJson = (value) => {
@@ -8,7 +8,7 @@ const require_select = require("../../../select-Dg8L5ROX.cjs");
8
8
  const require_Txt = require("../../../Txt-BnoSqxKE.cjs");
9
9
  const require_icons_GithubIcon = require("../../../icons/GithubIcon.cjs.js");
10
10
  const require_icons_SkillIcon = require("../../../icons/SkillIcon.cjs.js");
11
- const require_MarkdownRenderer = require("../../../MarkdownRenderer-CB8Z_CHc.cjs");
11
+ const require_MarkdownRenderer = require("../../../MarkdownRenderer-y65WGBhC.cjs");
12
12
  const require_Dialog = require("../../../Dialog-BvWF9HE-.cjs");
13
13
  const require_components_Field = require("../../../components/Field.cjs.js");
14
14
  const require_components_SearchInput = require("../../../components/SearchInput.cjs.js");
@@ -7,7 +7,7 @@ import { i as SelectItem, n as SelectContent, o as SelectTrigger, s as SelectVal
7
7
  import { t as Txt } from "../../../Txt-BM6TVV_c.js";
8
8
  import { GithubIcon } from "../../../icons/GithubIcon.es.js";
9
9
  import { SkillIcon } from "../../../icons/SkillIcon.es.js";
10
- import { t as MarkdownRenderer } from "../../../MarkdownRenderer-2GOXQJEv.js";
10
+ import { t as MarkdownRenderer } from "../../../MarkdownRenderer-CI30RqdB.js";
11
11
  import { a as DialogContent, c as DialogHeader, d as DialogTitle, n as DialogBody, o as DialogDescription, p as DialogAction, r as DialogCancel, s as DialogFooter, t as Dialog } from "../../../Dialog-DaWtxwd9.js";
12
12
  import { Field, FieldLabel } from "../../../components/Field.es.js";
13
13
  import { SearchInput } from "../../../components/SearchInput.es.js";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_components_CodeBlock = require("../../../components/CodeBlock.cjs.js");
3
- const require_MarkdownRenderer = require("../../../MarkdownRenderer-CB8Z_CHc.cjs");
3
+ const require_MarkdownRenderer = require("../../../MarkdownRenderer-y65WGBhC.cjs");
4
4
  const require_domains_workspace_components_frontmatter = require("./frontmatter.cjs.js");
5
5
  let react_jsx_runtime = require("react/jsx-runtime");
6
6
  // src/domains/workspace/components/workspace-markdown-preview.tsx
@@ -1,5 +1,5 @@
1
1
  import { CodeBlock } from "../../../components/CodeBlock.es.js";
2
- import { t as MarkdownRenderer } from "../../../MarkdownRenderer-2GOXQJEv.js";
2
+ import { t as MarkdownRenderer } from "../../../MarkdownRenderer-CI30RqdB.js";
3
3
  import { splitFrontmatter } from "./frontmatter.es.js";
4
4
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  // src/domains/workspace/components/workspace-markdown-preview.tsx
@@ -1,4 +1,4 @@
1
- import { t as DateTimeRangePicker } from "./date-time-range-picker-DKh1K9Iy.js";
1
+ import { t as DateTimeRangePicker } from "./date-time-range-picker-CdSiXwB4.js";
2
2
  import { p as useFilterBarItemKeys, y as useFilterBarContext } from "./filter-bar-chip-CABeKrtf.js";
3
3
  import { useRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -57,4 +57,4 @@ function FilterBarTimeRange(props) {
57
57
  }
58
58
  export { FilterBarTimeRange as i, FILTER_BAR_TIME_RANGE_FIELD_ID as n, FILTER_BAR_TIME_RANGE_ITEM as r, FILTER_BAR_TIME_RANGE_FIELD as t };
59
59
 
60
- //# sourceMappingURL=filter-bar-time-range-mg9JeYue.js.map
60
+ //# sourceMappingURL=filter-bar-time-range-qlV8p7hp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-bar-time-range-mg9JeYue.js","names":[],"sources":["../src/ds/components/FilterBar/filter-bar-time-range.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport { CalendarIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport { FILTER_BAR_CONTROL_SIZE } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport type { FilterBarField, FilterBarItem } from './types';\nimport { useFilterBarItemKeys } from './use-filter-bar-item-keys';\nimport { DateTimeRangePicker } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\nimport type { DateTimeRangePickerProps } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\n\nexport const FILTER_BAR_TIME_RANGE_FIELD_ID = 'timeRange';\n\n/**\n * Synthetic field backing the time range control. Hidden from the input's field step (the\n * range cannot be added twice) but registered so the bar resolves its label and takes it into\n * keyboard navigation. Add it to the bar's `fields` and `FILTER_BAR_TIME_RANGE_ITEM` to its\n * `items`, then render `FilterBar.TimeRange` for that item from `FilterBar.Chips`.\n */\nexport const FILTER_BAR_TIME_RANGE_FIELD: FilterBarField = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n label: 'Time',\n icon: CalendarIcon,\n type: 'text',\n operators: ['is'],\n hidden: true,\n};\n\nexport const FILTER_BAR_TIME_RANGE_ITEM: FilterBarItem = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n fieldId: FILTER_BAR_TIME_RANGE_FIELD_ID,\n operatorId: 'is',\n value: '',\n};\n\nexport type FilterBarTimeRangeProps = Omit<DateTimeRangePickerProps, 'size' | 'ref'>;\n\n/**\n * A filter bar's time range: the `DateTimeRangePicker` itself at the bar's rung, so it looks and\n * behaves exactly as it does anywhere else, reset × included. It scopes the bar rather than\n * filtering it, so it is not a removable chip; the wrapper only joins it to the bar's arrow-key\n * order.\n */\nexport function FilterBarTimeRange(props: FilterBarTimeRangeProps) {\n const ctx = useFilterBarContext();\n const rootRef = useRef<HTMLDivElement>(null);\n const { onKeyDown } = useFilterBarItemKeys({\n item: FILTER_BAR_TIME_RANGE_ITEM,\n rootRef,\n pinned: true,\n removable: false,\n segmentSelector: 'button',\n });\n\n return (\n <div\n ref={rootRef}\n role=\"group\"\n aria-label=\"Time range\"\n data-slot=\"filter-bar-time-range\"\n className=\"flex\"\n onKeyDown={onKeyDown}\n >\n <DateTimeRangePicker\n {...props}\n size={FILTER_BAR_CONTROL_SIZE}\n ref={el => ctx.registerSegment(FILTER_BAR_TIME_RANGE_ITEM.id, 'value', el)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAa,iCAAiC;;;;;;;AAQ9C,IAAa,8BAA8C;CACzD,IAAI;CACJ,OAAO;CACP,MAAM;CACN,MAAM;CACN,WAAW,CAAC,IAAI;CAChB,QAAQ;AACV;AAEA,IAAa,6BAA4C;CACvD,IAAI;CACJ,SAAS;CACT,YAAY;CACZ,OAAO;AACT;;;;;;;AAUA,SAAgB,mBAAmB,OAAgC;CACjE,MAAM,MAAM,oBAAoB;CAChC,MAAM,UAAU,OAAuB,IAAI;CAC3C,MAAM,EAAE,cAAc,qBAAqB;EACzC,MAAM;EACN;EACA,QAAQ;EACR,WAAW;EACX,iBAAiB;CACnB,CAAC;CAED,OACE,oBAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAU;EACC;EAEX,UAAA,oBAAC,qBAAD;GACE,GAAI;GACJ,MAAA;GACA,MAAK,OAAM,IAAI,gBAAgB,2BAA2B,IAAI,SAAS,EAAE;EAC1E,CAAA;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"filter-bar-time-range-qlV8p7hp.js","names":[],"sources":["../src/ds/components/FilterBar/filter-bar-time-range.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport { CalendarIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport { FILTER_BAR_CONTROL_SIZE } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport type { FilterBarField, FilterBarItem } from './types';\nimport { useFilterBarItemKeys } from './use-filter-bar-item-keys';\nimport { DateTimeRangePicker } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\nimport type { DateTimeRangePickerProps } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\n\nexport const FILTER_BAR_TIME_RANGE_FIELD_ID = 'timeRange';\n\n/**\n * Synthetic field backing the time range control. Hidden from the input's field step (the\n * range cannot be added twice) but registered so the bar resolves its label and takes it into\n * keyboard navigation. Add it to the bar's `fields` and `FILTER_BAR_TIME_RANGE_ITEM` to its\n * `items`, then render `FilterBar.TimeRange` for that item from `FilterBar.Chips`.\n */\nexport const FILTER_BAR_TIME_RANGE_FIELD: FilterBarField = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n label: 'Time',\n icon: CalendarIcon,\n type: 'text',\n operators: ['is'],\n hidden: true,\n};\n\nexport const FILTER_BAR_TIME_RANGE_ITEM: FilterBarItem = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n fieldId: FILTER_BAR_TIME_RANGE_FIELD_ID,\n operatorId: 'is',\n value: '',\n};\n\nexport type FilterBarTimeRangeProps = Omit<DateTimeRangePickerProps, 'size' | 'ref'>;\n\n/**\n * A filter bar's time range: the `DateTimeRangePicker` itself at the bar's rung, so it looks and\n * behaves exactly as it does anywhere else, reset × included. It scopes the bar rather than\n * filtering it, so it is not a removable chip; the wrapper only joins it to the bar's arrow-key\n * order.\n */\nexport function FilterBarTimeRange(props: FilterBarTimeRangeProps) {\n const ctx = useFilterBarContext();\n const rootRef = useRef<HTMLDivElement>(null);\n const { onKeyDown } = useFilterBarItemKeys({\n item: FILTER_BAR_TIME_RANGE_ITEM,\n rootRef,\n pinned: true,\n removable: false,\n segmentSelector: 'button',\n });\n\n return (\n <div\n ref={rootRef}\n role=\"group\"\n aria-label=\"Time range\"\n data-slot=\"filter-bar-time-range\"\n className=\"flex\"\n onKeyDown={onKeyDown}\n >\n <DateTimeRangePicker\n {...props}\n size={FILTER_BAR_CONTROL_SIZE}\n ref={el => ctx.registerSegment(FILTER_BAR_TIME_RANGE_ITEM.id, 'value', el)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAa,iCAAiC;;;;;;;AAQ9C,IAAa,8BAA8C;CACzD,IAAI;CACJ,OAAO;CACP,MAAM;CACN,MAAM;CACN,WAAW,CAAC,IAAI;CAChB,QAAQ;AACV;AAEA,IAAa,6BAA4C;CACvD,IAAI;CACJ,SAAS;CACT,YAAY;CACZ,OAAO;AACT;;;;;;;AAUA,SAAgB,mBAAmB,OAAgC;CACjE,MAAM,MAAM,oBAAoB;CAChC,MAAM,UAAU,OAAuB,IAAI;CAC3C,MAAM,EAAE,cAAc,qBAAqB;EACzC,MAAM;EACN;EACA,QAAQ;EACR,WAAW;EACX,iBAAiB;CACnB,CAAC;CAED,OACE,oBAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAU;EACC;EAEX,UAAA,oBAAC,qBAAD;GACE,GAAI;GACJ,MAAA;GACA,MAAK,OAAM,IAAI,gBAAgB,2BAA2B,IAAI,SAAS,EAAE;EAC1E,CAAA;CACE,CAAA;AAET"}
@@ -1,4 +1,4 @@
1
- const require_date_time_range_picker = require("./date-time-range-picker-CTt7Od0P.cjs");
1
+ const require_date_time_range_picker = require("./date-time-range-picker-CWGjoR3j.cjs");
2
2
  const require_filter_bar_chip = require("./filter-bar-chip-Cg-UbIwP.cjs");
3
3
  let react = require("react");
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -80,4 +80,4 @@ Object.defineProperty(exports, "FilterBarTimeRange", {
80
80
  }
81
81
  });
82
82
 
83
- //# sourceMappingURL=filter-bar-time-range-BA-pXMlo.cjs.map
83
+ //# sourceMappingURL=filter-bar-time-range-zdM024JD.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-bar-time-range-BA-pXMlo.cjs","names":["CalendarIcon","useFilterBarContext","useRef","useFilterBarItemKeys","DateTimeRangePicker"],"sources":["../src/ds/components/FilterBar/filter-bar-time-range.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport { CalendarIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport { FILTER_BAR_CONTROL_SIZE } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport type { FilterBarField, FilterBarItem } from './types';\nimport { useFilterBarItemKeys } from './use-filter-bar-item-keys';\nimport { DateTimeRangePicker } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\nimport type { DateTimeRangePickerProps } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\n\nexport const FILTER_BAR_TIME_RANGE_FIELD_ID = 'timeRange';\n\n/**\n * Synthetic field backing the time range control. Hidden from the input's field step (the\n * range cannot be added twice) but registered so the bar resolves its label and takes it into\n * keyboard navigation. Add it to the bar's `fields` and `FILTER_BAR_TIME_RANGE_ITEM` to its\n * `items`, then render `FilterBar.TimeRange` for that item from `FilterBar.Chips`.\n */\nexport const FILTER_BAR_TIME_RANGE_FIELD: FilterBarField = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n label: 'Time',\n icon: CalendarIcon,\n type: 'text',\n operators: ['is'],\n hidden: true,\n};\n\nexport const FILTER_BAR_TIME_RANGE_ITEM: FilterBarItem = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n fieldId: FILTER_BAR_TIME_RANGE_FIELD_ID,\n operatorId: 'is',\n value: '',\n};\n\nexport type FilterBarTimeRangeProps = Omit<DateTimeRangePickerProps, 'size' | 'ref'>;\n\n/**\n * A filter bar's time range: the `DateTimeRangePicker` itself at the bar's rung, so it looks and\n * behaves exactly as it does anywhere else, reset × included. It scopes the bar rather than\n * filtering it, so it is not a removable chip; the wrapper only joins it to the bar's arrow-key\n * order.\n */\nexport function FilterBarTimeRange(props: FilterBarTimeRangeProps) {\n const ctx = useFilterBarContext();\n const rootRef = useRef<HTMLDivElement>(null);\n const { onKeyDown } = useFilterBarItemKeys({\n item: FILTER_BAR_TIME_RANGE_ITEM,\n rootRef,\n pinned: true,\n removable: false,\n segmentSelector: 'button',\n });\n\n return (\n <div\n ref={rootRef}\n role=\"group\"\n aria-label=\"Time range\"\n data-slot=\"filter-bar-time-range\"\n className=\"flex\"\n onKeyDown={onKeyDown}\n >\n <DateTimeRangePicker\n {...props}\n size={FILTER_BAR_CONTROL_SIZE}\n ref={el => ctx.registerSegment(FILTER_BAR_TIME_RANGE_ITEM.id, 'value', el)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAa,iCAAiC;;;;;;;AAQ9C,IAAa,8BAA8C;CACzD,IAAI;CACJ,OAAO;CACP,MAAMA,aAAAA;CACN,MAAM;CACN,WAAW,CAAC,IAAI;CAChB,QAAQ;AACV;AAEA,IAAa,6BAA4C;CACvD,IAAI;CACJ,SAAS;CACT,YAAY;CACZ,OAAO;AACT;;;;;;;AAUA,SAAgB,mBAAmB,OAAgC;CACjE,MAAM,MAAMC,wBAAAA,oBAAoB;CAChC,MAAM,WAAA,GAAUC,MAAAA,OAAAA,CAAuB,IAAI;CAC3C,MAAM,EAAE,cAAcC,wBAAAA,qBAAqB;EACzC,MAAM;EACN;EACA,QAAQ;EACR,WAAW;EACX,iBAAiB;CACnB,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAU;EACC;EAEX,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,qBAAD;GACE,GAAI;GACJ,MAAA;GACA,MAAK,OAAM,IAAI,gBAAgB,2BAA2B,IAAI,SAAS,EAAE;EAC1E,CAAA;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"filter-bar-time-range-zdM024JD.cjs","names":["CalendarIcon","useFilterBarContext","useRef","useFilterBarItemKeys","DateTimeRangePicker"],"sources":["../src/ds/components/FilterBar/filter-bar-time-range.tsx"],"sourcesContent":["/* eslint-disable react-refresh/only-export-components */\nimport { CalendarIcon } from 'lucide-react';\nimport { useRef } from 'react';\nimport { FILTER_BAR_CONTROL_SIZE } from './filter-bar-chip';\nimport { useFilterBarContext } from './filter-bar-context';\nimport type { FilterBarField, FilterBarItem } from './types';\nimport { useFilterBarItemKeys } from './use-filter-bar-item-keys';\nimport { DateTimeRangePicker } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\nimport type { DateTimeRangePickerProps } from '@/ds/components/DateTimeRangePicker/date-time-range-picker';\n\nexport const FILTER_BAR_TIME_RANGE_FIELD_ID = 'timeRange';\n\n/**\n * Synthetic field backing the time range control. Hidden from the input's field step (the\n * range cannot be added twice) but registered so the bar resolves its label and takes it into\n * keyboard navigation. Add it to the bar's `fields` and `FILTER_BAR_TIME_RANGE_ITEM` to its\n * `items`, then render `FilterBar.TimeRange` for that item from `FilterBar.Chips`.\n */\nexport const FILTER_BAR_TIME_RANGE_FIELD: FilterBarField = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n label: 'Time',\n icon: CalendarIcon,\n type: 'text',\n operators: ['is'],\n hidden: true,\n};\n\nexport const FILTER_BAR_TIME_RANGE_ITEM: FilterBarItem = {\n id: FILTER_BAR_TIME_RANGE_FIELD_ID,\n fieldId: FILTER_BAR_TIME_RANGE_FIELD_ID,\n operatorId: 'is',\n value: '',\n};\n\nexport type FilterBarTimeRangeProps = Omit<DateTimeRangePickerProps, 'size' | 'ref'>;\n\n/**\n * A filter bar's time range: the `DateTimeRangePicker` itself at the bar's rung, so it looks and\n * behaves exactly as it does anywhere else, reset × included. It scopes the bar rather than\n * filtering it, so it is not a removable chip; the wrapper only joins it to the bar's arrow-key\n * order.\n */\nexport function FilterBarTimeRange(props: FilterBarTimeRangeProps) {\n const ctx = useFilterBarContext();\n const rootRef = useRef<HTMLDivElement>(null);\n const { onKeyDown } = useFilterBarItemKeys({\n item: FILTER_BAR_TIME_RANGE_ITEM,\n rootRef,\n pinned: true,\n removable: false,\n segmentSelector: 'button',\n });\n\n return (\n <div\n ref={rootRef}\n role=\"group\"\n aria-label=\"Time range\"\n data-slot=\"filter-bar-time-range\"\n className=\"flex\"\n onKeyDown={onKeyDown}\n >\n <DateTimeRangePicker\n {...props}\n size={FILTER_BAR_CONTROL_SIZE}\n ref={el => ctx.registerSegment(FILTER_BAR_TIME_RANGE_ITEM.id, 'value', el)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAa,iCAAiC;;;;;;;AAQ9C,IAAa,8BAA8C;CACzD,IAAI;CACJ,OAAO;CACP,MAAMA,aAAAA;CACN,MAAM;CACN,WAAW,CAAC,IAAI;CAChB,QAAQ;AACV;AAEA,IAAa,6BAA4C;CACvD,IAAI;CACJ,SAAS;CACT,YAAY;CACZ,OAAO;AACT;;;;;;;AAUA,SAAgB,mBAAmB,OAAgC;CACjE,MAAM,MAAMC,wBAAAA,oBAAoB;CAChC,MAAM,WAAA,GAAUC,MAAAA,OAAAA,CAAuB,IAAI;CAC3C,MAAM,EAAE,cAAcC,wBAAAA,qBAAqB;EACzC,MAAM;EACN;EACA,QAAQ;EACR,WAAW;EACX,iBAAiB;CACnB,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAW;EACX,aAAU;EACV,WAAU;EACC;EAEX,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,qBAAD;GACE,GAAI;GACJ,MAAA;GACA,MAAK,OAAM,IAAI,gBAAgB,2BAA2B,IAAI,SAAS,EAAE;EAC1E,CAAA;CACE,CAAA;AAET"}
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_lib_form_zod_provider_compat = require("./zod-provider/compat.cjs.js");
3
- const require_lib_form_components_form_submit_row = require("./components/form-submit-row.cjs.js");
4
2
  require("./field-context.cjs.js");
5
3
  const require_lib_form_auto_form = require("./auto-form.cjs.js");
4
+ const require_lib_form_components_form_submit_row = require("./components/form-submit-row.cjs.js");
5
+ const require_lib_form_zod_provider_compat = require("./zod-provider/compat.cjs.js");
6
6
  const require_lib_form_is_empty_zod_object = require("./is-empty-zod-object.cjs.js");
7
7
  const require_lib_form_zod_provider = require("./zod-provider.cjs.js");
8
8
  let react = require("react");
@@ -1,7 +1,7 @@
1
- import { asObjectProperty, getShape } from "./zod-provider/compat.es.js";
2
- import { FormSubmitRow } from "./components/form-submit-row.es.js";
3
1
  import "./field-context.es.js";
4
2
  import { AutoForm } from "./auto-form.es.js";
3
+ import { FormSubmitRow } from "./components/form-submit-row.es.js";
4
+ import { asObjectProperty, getShape } from "./zod-provider/compat.es.js";
5
5
  import { isEmptyZodObject } from "./is-empty-zod-object.es.js";
6
6
  import { CustomZodProvider } from "./zod-provider.es.js";
7
7
  import { createContext, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef } from "react";
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_lib_form_zod_provider_compat = require("./zod-provider/compat.cjs.js");
3
2
  const require_lib_form_utils = require("./utils.cjs.js");
3
+ const require_lib_form_zod_provider_compat = require("./zod-provider/compat.cjs.js");
4
4
  const require_lib_form_zod_provider_field_type_inference = require("./zod-provider/field-type-inference.cjs.js");
5
5
  // src/lib/form/json-draft.ts
6
6
  /** Parses the text of a JSON view, with an error ready to show under the editor. */
@@ -1,5 +1,5 @@
1
- import { getBaseSchema } from "./zod-provider/compat.es.js";
2
1
  import { isPlainObject } from "./utils.es.js";
2
+ import { getBaseSchema } from "./zod-provider/compat.es.js";
3
3
  import { inferFieldType } from "./zod-provider/field-type-inference.es.js";
4
4
  // src/lib/form/json-draft.ts
5
5
  /** Parses the text of a JSON view, with an error ready to show under the editor. */
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_lib_form_zod_provider_compat = require("./zod-provider/compat.cjs.js");
3
2
  const require_lib_form_utils = require("./utils.cjs.js");
3
+ const require_lib_form_zod_provider_compat = require("./zod-provider/compat.cjs.js");
4
4
  const require_lib_form_zod_provider_default_values = require("./zod-provider/default-values.cjs.js");
5
5
  const require_lib_form_zod_provider_field_type_inference = require("./zod-provider/field-type-inference.cjs.js");
6
6
  // src/lib/form/zod-provider/index.ts
@@ -1,5 +1,5 @@
1
- import { getArrayElement, getBaseSchema, getDef, getEnumValues, getIntersection, getLiteralValues, getRecordValueSchema, getShape, getUnionOptions, isOptional } from "./zod-provider/compat.es.js";
2
1
  import { isPlainObject } from "./utils.es.js";
2
+ import { getArrayElement, getBaseSchema, getDef, getEnumValues, getIntersection, getLiteralValues, getRecordValueSchema, getShape, getUnionOptions, isOptional } from "./zod-provider/compat.es.js";
3
3
  import { getDefaultValueInZodStack, getDefaultValues } from "./zod-provider/default-values.es.js";
4
4
  import { inferFieldType } from "./zod-provider/field-type-inference.es.js";
5
5
  // src/lib/form/zod-provider/index.ts
@@ -3,11 +3,11 @@ import { t as cn } from "./utils-DQx8TpNT.js";
3
3
  import "./primitives/raised-surface.es.js";
4
4
  import { t as ScrollArea } from "./scroll-area-C226l0v0.js";
5
5
  import { t as Txt } from "./Txt-BM6TVV_c.js";
6
- import { r as presentTool } from "./tool-presentation-DvCsb_kz.js";
7
- import { f as ActivityHeadline } from "./activity-rJ1NQl_2.js";
6
+ import { r as presentTool } from "./tool-presentation-CvibOP1J.js";
7
+ import { f as ActivityHeadline } from "./activity-C8Ql81WM.js";
8
8
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./components/Collapsible.es.js";
9
9
  import { DisclosureChevron } from "./components/DisclosureChevron.es.js";
10
- import { t as MarkdownRenderer } from "./MarkdownRenderer-2GOXQJEv.js";
10
+ import { t as MarkdownRenderer } from "./MarkdownRenderer-CI30RqdB.js";
11
11
  import { BadgeWrapper } from "./domains/chat/components/badge-wrapper.es.js";
12
12
  import { t as DataKeysAndValues } from "./DataKeysAndValues-PwOmGxyp.js";
13
13
  import { getDelegatedTool, getDelegatedToolHref } from "./domains/traces/components/span-payload/span-payload-registry.es.js";
@@ -161,4 +161,4 @@ function SpanPayloadToolCalls({ toolCalls }) {
161
161
  }
162
162
  export { SpanPayloadListName as a, SpanPayloadTool as c, SpanPayloadList as i, SpanToolNameValue as l, SpanPayloadField as n, SpanPayloadMarkdown as o, SpanPayloadLabel as r, SpanPayloadToolCalls as s, SpanPayloadCollapsible as t };
163
163
 
164
- //# sourceMappingURL=span-payload-primitives-B3RdahsC.js.map
164
+ //# sourceMappingURL=span-payload-primitives-CKKIAVPJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"span-payload-primitives-B3RdahsC.js","names":[],"sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField } from './span-payload-primitives';\nimport { getDelegatedTool, getDelegatedToolHref } from './span-payload-registry';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { useLinkComponent } from '@/lib/framework';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** A tool name in a key/value list, linked to its page when the tool is a workflow or sub-agent. */\nexport function SpanToolNameValue({ toolName }: { toolName: string }) {\n const { Link, paths } = useLinkComponent();\n const href = getDelegatedToolHref(paths, toolName);\n if (!href) return <DataKeysAndValues.Value>{toolName}</DataKeysAndValues.Value>;\n return (\n <DataKeysAndValues.ValueLink href={href} as={Link}>\n {toolName}\n </DataKeysAndValues.ValueLink>\n );\n}\n\nexport function SpanPayloadTool({ value }: { value: unknown }) {\n const { Link, paths } = useLinkComponent();\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const delegated = getDelegatedTool(call.toolName);\n // The header toggles the body, so the workflow or agent link sits in the body rather than in it.\n const delegatedHref = getDelegatedToolHref(paths, call.toolName);\n const hasBody = Boolean(delegatedHref) || input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {delegated && delegatedHref && (\n <DataKeysAndValues>\n <DataKeysAndValues.Key>{delegated.kind === 'workflow' ? 'Workflow' : 'Agent'}</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueLink href={delegatedHref} as={Link}>\n {delegated.key}\n </DataKeysAndValues.ValueLink>\n </DataKeysAndValues>\n )}\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"faint\" className=\"block uppercase\">\n {children}\n </Txt>\n );\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta text-placeholder uppercase\">\n <DisclosureChevron direction=\"right\" className=\"size-3\" />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\nexport interface SpanPayloadListItem {\n key: string;\n /** The item name, a link when it has a page to open. */\n name: ReactNode;\n description?: string;\n}\n\n/**\n * A scrollable list of named items with an optional description (tools, skills…). The scrollbar\n * stays visible while the list overflows, so readers can tell there are more items below.\n * `card` frames it on its own surface, for a list that stands alone in a section.\n */\nexport function SpanPayloadList({ items, slot, card }: { items: SpanPayloadListItem[]; slot: string; card?: boolean }) {\n return (\n <ScrollArea\n maxHeight=\"12rem\"\n alwaysShowScrollbar\n className={cn(card && cn(raisedSurfaceStyle, 'rounded-lg [--scroll-area-scrollbar-inset:0.5rem]'))}\n >\n <ul data-slot={slot} className={cn('flex flex-col gap-2', card ? 'p-3 pr-4' : 'pr-3')}>\n {items.map(item => (\n <li key={item.key} className=\"flex min-w-0 flex-col\">\n {item.name}\n {item.description && (\n // Payload content reads in ink like the messages around it; grey is kept for the labels.\n <Txt as=\"span\" variant=\"body-sm\" className=\"line-clamp-2\" title={item.description}>\n {item.description}\n </Txt>\n )}\n </li>\n ))}\n </ul>\n </ScrollArea>\n );\n}\n\n/** A list item name rendered as plain text. */\nexport function SpanPayloadListName({ children }: { children: string }) {\n return (\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} />\n </li>\n ))}\n </ul>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAM,YAAY,UAChB,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;;AAGrE,SAAgB,kBAAkB,EAAE,YAAkC;CACpE,MAAM,EAAE,MAAM,UAAU,iBAAiB;CACzC,MAAM,OAAO,qBAAqB,OAAO,QAAQ;CACjD,IAAI,CAAC,MAAM,OAAO,oBAAC,kBAAkB,OAAnB,EAAA,UAA0B,SAAkC,CAAA;CAC9E,OACE,oBAAC,kBAAkB,WAAnB;EAAmC;EAAM,IAAI;EAC1C,UAAA;CAC0B,CAAA;AAEjC;AAEA,SAAgB,gBAAgB,EAAE,SAA6B;CAC7D,MAAM,EAAE,MAAM,UAAU,iBAAiB;CACzC,IAAI,CAAC,SAAS,KAAK,GAAG,OAAO,oBAAC,iBAAD,EAAwB,MAAQ,CAAA;CAC7D,MAAM,OAAO,MAAM,SAAS,oBAAoB,MAAM,iBAAiB;CACvE,IAAI,CAAC,SAAS,IAAI,KAAK,OAAO,KAAK,aAAa,YAAY,CAAC,KAAK,UAChE,OAAO,oBAAC,iBAAD,EAAwB,MAAQ,CAAA;CAEzC,MAAM,QAAQ,UAAU,OAAO,KAAK,OAAO,KAAK;CAChD,MAAM,SAAS,YAAY,OAAO,KAAK,SAAS,KAAK;CACrD,MAAM,QAAQ,KAAK,YAAY,QAAQ,KAAK,UAAU;CACtD,MAAM,YAAY,OAAO,KAAK,cAAc,WAAW,KAAK,YAAY,KAAA;CACxE,MAAM,EAAE,MAAM,UAAU,OAAO,QAAQ,gBAAgB,YAAY,KAAK,UAAU,KAAK;CACvF,MAAM,YAAY,iBAAiB,KAAK,QAAQ;CAEhD,MAAM,gBAAgB,qBAAqB,OAAO,KAAK,QAAQ;CAE/D,OACE,oBAAC,OAAD;EAAK,aAAU;EAAoB,WAAU;EAC3C,UAAA,oBAAC,cAAD;GACE,QAAQ,QAAQ,UAAU;GAC1B,QACE,oBAAC,kBAAD;IAAkB,MAAM,oBAAC,UAAD,EAAU,eAAA,KAAa,CAAA;IAAU;IAAe;IAAqB;GAAc,CAAA;GAG5G,WATS,QAAQ,aAAa,KAAK,UAAU,KAAA,KAAa,WAAW,KAAA,KAAa,cAAc,KAAA,MAU/F,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACG,aAAa,iBACZ,qBAAC,mBAAD,EAAA,UAAA,CACE,oBAAC,kBAAkB,KAAnB,EAAA,UAAwB,UAAU,SAAS,aAAa,aAAa,QAA+B,CAAA,GACpG,oBAAC,kBAAkB,WAAnB;MAA6B,MAAM;MAAe,IAAI;MACnD,UAAA,UAAU;KACgB,CAAA,CACZ,EAAA,CAAA;KAEpB,UAAU,KAAA,KACT,oBAAC,kBAAD;MAAkB,OAAM;MACtB,UAAA,oBAAC,iBAAD,EAAiB,OAAO,MAAQ,CAAA;KAChB,CAAA;KAEnB,WAAW,KAAA,KACV,oBAAC,kBAAD;MAAkB,OAAM;MACtB,UAAA,oBAAC,iBAAD,EAAiB,OAAO,OAAS,CAAA;KACjB,CAAA;KAEnB,cAAc,KAAA,KACb,oBAAC,kBAAD;MAAkB,OAAM;MACtB,UAAA,oBAAC,iBAAD,EAAiB,OAAO,UAAY,CAAA;KACpB,CAAA;IAEjB;;EAEK,CAAA;CACX,CAAA;AAET;;;ACnEA,SAAgB,iBAAiB,EAAE,YAAqC;CACtE,OACE,oBAAC,KAAD;EAAK,IAAG;EAAO,SAAQ;EAAO,MAAK;EAAQ,WAAU;EAClD;CACE,CAAA;AAET;AAEA,SAAgB,iBAAiB,EAAE,OAAO,YAAuD;CAC/F,OACE,qBAAC,OAAD;EAAK,aAAU;EAAqB,WAAU;EAA9C,UAAA,CACE,oBAAC,kBAAD,EAAA,UAAmB,MAAwB,CAAA,GAC1C,QACE;;AAET;AAEA,SAAgB,oBAAoB,EAAE,YAAkC;CACtE,OACE,oBAAC,OAAD;EAAK,aAAU;EAAwB,WAAU;EAC/C,UAAA,oBAAC,kBAAD,EAAmB,SAA2B,CAAA;CAC3C,CAAA;AAET;;AAGA,SAAgB,uBAAuB,EACrC,OACA,UACA,cAAc,SAKb;CACD,OACE,qBAAC,aAAD;EAA0B;EAA1B,UAAA,CACE,qBAAC,oBAAD;GAAoB,WAAU;GAA9B,UAAA,CACE,oBAAC,mBAAD;IAAmB,WAAU;IAAQ,WAAU;GAAU,CAAA,GACxD,KACiB;EACpB,CAAA,GAAA,oBAAC,oBAAD;GAAoB,WAAU;GAAU;EAA6B,CAAA,CAC1D;;AAEjB;;;;;;AAcA,SAAgB,gBAAgB,EAAE,OAAO,MAAM,QAAwE;CACrH,OACE,oBAAC,YAAD;EACE,WAAU;EACV,qBAAA;EACA,WAAW,GAAG,QAAQ,GAAA,6KAAuB,mDAAmD,CAAC;EAEjG,UAAA,oBAAC,MAAD;GAAI,aAAW;GAAM,WAAW,GAAG,uBAAuB,OAAO,aAAa,MAAM;GACjF,UAAA,MAAM,KAAI,SACT,qBAAC,MAAD;IAAmB,WAAU;IAA7B,UAAA,CACG,KAAK,MACL,KAAK,eAEJ,oBAAC,KAAD;KAAK,IAAG;KAAO,SAAQ;KAAU,WAAU;KAAe,OAAO,KAAK;KACnE,UAAA,KAAK;IACH,CAAA,CAEL;GARK,GAAA,KAAK,GAQV,CACL;EACC,CAAA;CACM,CAAA;AAEhB;;AAGA,SAAgB,oBAAoB,EAAE,YAAkC;CACtE,OACE,oBAAC,KAAD;EAAK,IAAG;EAAO,SAAQ;EAAQ,MAAK;EAAM,WAAU;EACjD;CACE,CAAA;AAET;;AAGA,SAAgB,qBAAqB,EAAE,aAAuC;CAC5E,OACE,oBAAC,MAAD;EAAI,aAAU;EAA0B,WAAU;EAC/C,UAAA,UAAU,KAAK,MAAM,UACpB,oBAAC,MAAD,EAAA,UACE,oBAAC,iBAAD,EAAiB,OAAO,KAAO,CAAA,EAC7B,GAFK,KAEL,CACL;CACC,CAAA;AAER"}
1
+ {"version":3,"file":"span-payload-primitives-CKKIAVPJ.js","names":[],"sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField } from './span-payload-primitives';\nimport { getDelegatedTool, getDelegatedToolHref } from './span-payload-registry';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { useLinkComponent } from '@/lib/framework';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** A tool name in a key/value list, linked to its page when the tool is a workflow or sub-agent. */\nexport function SpanToolNameValue({ toolName }: { toolName: string }) {\n const { Link, paths } = useLinkComponent();\n const href = getDelegatedToolHref(paths, toolName);\n if (!href) return <DataKeysAndValues.Value>{toolName}</DataKeysAndValues.Value>;\n return (\n <DataKeysAndValues.ValueLink href={href} as={Link}>\n {toolName}\n </DataKeysAndValues.ValueLink>\n );\n}\n\nexport function SpanPayloadTool({ value }: { value: unknown }) {\n const { Link, paths } = useLinkComponent();\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const delegated = getDelegatedTool(call.toolName);\n // The header toggles the body, so the workflow or agent link sits in the body rather than in it.\n const delegatedHref = getDelegatedToolHref(paths, call.toolName);\n const hasBody = Boolean(delegatedHref) || input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {delegated && delegatedHref && (\n <DataKeysAndValues>\n <DataKeysAndValues.Key>{delegated.kind === 'workflow' ? 'Workflow' : 'Agent'}</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueLink href={delegatedHref} as={Link}>\n {delegated.key}\n </DataKeysAndValues.ValueLink>\n </DataKeysAndValues>\n )}\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"faint\" className=\"block uppercase\">\n {children}\n </Txt>\n );\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta text-placeholder uppercase\">\n <DisclosureChevron direction=\"right\" className=\"size-3\" />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\nexport interface SpanPayloadListItem {\n key: string;\n /** The item name, a link when it has a page to open. */\n name: ReactNode;\n description?: string;\n}\n\n/**\n * A scrollable list of named items with an optional description (tools, skills…). The scrollbar\n * stays visible while the list overflows, so readers can tell there are more items below.\n * `card` frames it on its own surface, for a list that stands alone in a section.\n */\nexport function SpanPayloadList({ items, slot, card }: { items: SpanPayloadListItem[]; slot: string; card?: boolean }) {\n return (\n <ScrollArea\n maxHeight=\"12rem\"\n alwaysShowScrollbar\n className={cn(card && cn(raisedSurfaceStyle, 'rounded-lg [--scroll-area-scrollbar-inset:0.5rem]'))}\n >\n <ul data-slot={slot} className={cn('flex flex-col gap-2', card ? 'p-3 pr-4' : 'pr-3')}>\n {items.map(item => (\n <li key={item.key} className=\"flex min-w-0 flex-col\">\n {item.name}\n {item.description && (\n // Payload content reads in ink like the messages around it; grey is kept for the labels.\n <Txt as=\"span\" variant=\"body-sm\" className=\"line-clamp-2\" title={item.description}>\n {item.description}\n </Txt>\n )}\n </li>\n ))}\n </ul>\n </ScrollArea>\n );\n}\n\n/** A list item name rendered as plain text. */\nexport function SpanPayloadListName({ children }: { children: string }) {\n return (\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} />\n </li>\n ))}\n </ul>\n );\n}\n"],"mappings":"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"}
@@ -3,11 +3,11 @@ const require_utils = require("./utils-uDc1ofX1.cjs");
3
3
  require("./primitives/raised-surface.cjs.js");
4
4
  const require_scroll_area = require("./scroll-area-BP4gPZ4G.cjs");
5
5
  const require_Txt = require("./Txt-BnoSqxKE.cjs");
6
- const require_tool_presentation = require("./tool-presentation-CQlDEwgS.cjs");
7
- const require_activity = require("./activity-DyB5H3gF.cjs");
6
+ const require_tool_presentation = require("./tool-presentation-D6nzVruN.cjs");
7
+ const require_activity = require("./activity-CcQZeDYi.cjs");
8
8
  const require_components_Collapsible = require("./components/Collapsible.cjs.js");
9
9
  const require_components_DisclosureChevron = require("./components/DisclosureChevron.cjs.js");
10
- const require_MarkdownRenderer = require("./MarkdownRenderer-CB8Z_CHc.cjs");
10
+ const require_MarkdownRenderer = require("./MarkdownRenderer-y65WGBhC.cjs");
11
11
  const require_domains_chat_components_badge_wrapper = require("./domains/chat/components/badge-wrapper.cjs.js");
12
12
  const require_DataKeysAndValues = require("./DataKeysAndValues-DsH6AbAo.cjs");
13
13
  const require_domains_traces_components_span_payload_span_payload_registry = require("./domains/traces/components/span-payload/span-payload-registry.cjs.js");
@@ -214,4 +214,4 @@ Object.defineProperty(exports, "SpanToolNameValue", {
214
214
  }
215
215
  });
216
216
 
217
- //# sourceMappingURL=span-payload-primitives-_2d-pAOD.cjs.map
217
+ //# sourceMappingURL=span-payload-primitives-D4tHWN2W.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"span-payload-primitives-_2d-pAOD.cjs","names":["useLinkComponent","getDelegatedToolHref","DataKeysAndValues","SpanPayloadJson","presentTool","getDelegatedTool","BadgeWrapper","ActivityHeadline","Txt","MarkdownRenderer","Collapsible","CollapsibleTrigger","DisclosureChevron","CollapsibleContent","ScrollArea","cn"],"sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField } from './span-payload-primitives';\nimport { getDelegatedTool, getDelegatedToolHref } from './span-payload-registry';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { useLinkComponent } from '@/lib/framework';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** A tool name in a key/value list, linked to its page when the tool is a workflow or sub-agent. */\nexport function SpanToolNameValue({ toolName }: { toolName: string }) {\n const { Link, paths } = useLinkComponent();\n const href = getDelegatedToolHref(paths, toolName);\n if (!href) return <DataKeysAndValues.Value>{toolName}</DataKeysAndValues.Value>;\n return (\n <DataKeysAndValues.ValueLink href={href} as={Link}>\n {toolName}\n </DataKeysAndValues.ValueLink>\n );\n}\n\nexport function SpanPayloadTool({ value }: { value: unknown }) {\n const { Link, paths } = useLinkComponent();\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const delegated = getDelegatedTool(call.toolName);\n // The header toggles the body, so the workflow or agent link sits in the body rather than in it.\n const delegatedHref = getDelegatedToolHref(paths, call.toolName);\n const hasBody = Boolean(delegatedHref) || input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {delegated && delegatedHref && (\n <DataKeysAndValues>\n <DataKeysAndValues.Key>{delegated.kind === 'workflow' ? 'Workflow' : 'Agent'}</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueLink href={delegatedHref} as={Link}>\n {delegated.key}\n </DataKeysAndValues.ValueLink>\n </DataKeysAndValues>\n )}\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"faint\" className=\"block uppercase\">\n {children}\n </Txt>\n );\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta text-placeholder uppercase\">\n <DisclosureChevron direction=\"right\" className=\"size-3\" />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\nexport interface SpanPayloadListItem {\n key: string;\n /** The item name, a link when it has a page to open. */\n name: ReactNode;\n description?: string;\n}\n\n/**\n * A scrollable list of named items with an optional description (tools, skills…). The scrollbar\n * stays visible while the list overflows, so readers can tell there are more items below.\n * `card` frames it on its own surface, for a list that stands alone in a section.\n */\nexport function SpanPayloadList({ items, slot, card }: { items: SpanPayloadListItem[]; slot: string; card?: boolean }) {\n return (\n <ScrollArea\n maxHeight=\"12rem\"\n alwaysShowScrollbar\n className={cn(card && cn(raisedSurfaceStyle, 'rounded-lg [--scroll-area-scrollbar-inset:0.5rem]'))}\n >\n <ul data-slot={slot} className={cn('flex flex-col gap-2', card ? 'p-3 pr-4' : 'pr-3')}>\n {items.map(item => (\n <li key={item.key} className=\"flex min-w-0 flex-col\">\n {item.name}\n {item.description && (\n // Payload content reads in ink like the messages around it; grey is kept for the labels.\n <Txt as=\"span\" variant=\"body-sm\" className=\"line-clamp-2\" title={item.description}>\n {item.description}\n </Txt>\n )}\n </li>\n ))}\n </ul>\n </ScrollArea>\n );\n}\n\n/** A list item name rendered as plain text. */\nexport function SpanPayloadListName({ children }: { children: string }) {\n return (\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} />\n </li>\n ))}\n </ul>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"span-payload-primitives-D4tHWN2W.cjs","names":["useLinkComponent","getDelegatedToolHref","DataKeysAndValues","SpanPayloadJson","presentTool","getDelegatedTool","BadgeWrapper","ActivityHeadline","Txt","MarkdownRenderer","Collapsible","CollapsibleTrigger","DisclosureChevron","CollapsibleContent","ScrollArea","cn"],"sources":["../src/domains/traces/components/span-payload/span-payload-tool.tsx","../src/domains/traces/components/span-payload/span-payload-primitives.tsx"],"sourcesContent":["import { SpanPayloadJson } from './span-payload-json';\nimport { SpanPayloadField } from './span-payload-primitives';\nimport { getDelegatedTool, getDelegatedToolHref } from './span-payload-registry';\nimport { BadgeWrapper } from '@/domains/chat/components/badge-wrapper';\nimport { ActivityHeadline } from '@/ds/components/ai/activity';\nimport { presentTool } from '@/ds/components/ai/tool-call/tool-presentation';\nimport { DataKeysAndValues } from '@/ds/components/DataKeysAndValues';\nimport { useLinkComponent } from '@/lib/framework';\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** A tool name in a key/value list, linked to its page when the tool is a workflow or sub-agent. */\nexport function SpanToolNameValue({ toolName }: { toolName: string }) {\n const { Link, paths } = useLinkComponent();\n const href = getDelegatedToolHref(paths, toolName);\n if (!href) return <DataKeysAndValues.Value>{toolName}</DataKeysAndValues.Value>;\n return (\n <DataKeysAndValues.ValueLink href={href} as={Link}>\n {toolName}\n </DataKeysAndValues.ValueLink>\n );\n}\n\nexport function SpanPayloadTool({ value }: { value: unknown }) {\n const { Link, paths } = useLinkComponent();\n if (!isRecord(value)) return <SpanPayloadJson value={value} />;\n const call = value.type === 'tool-invocation' ? value.toolInvocation : value;\n if (!isRecord(call) || typeof call.toolName !== 'string' || !call.toolName) {\n return <SpanPayloadJson value={value} />;\n }\n const input = 'args' in call ? call.args : call.input;\n const output = 'result' in call ? call.result : call.output;\n const error = call.isError === true || call.state === 'output-error';\n const errorText = typeof call.errorText === 'string' ? call.errorText : undefined;\n const { icon: ToolIcon, label, detail, description } = presentTool(call.toolName, input);\n const delegated = getDelegatedTool(call.toolName);\n // The header toggles the body, so the workflow or agent link sits in the body rather than in it.\n const delegatedHref = getDelegatedToolHref(paths, call.toolName);\n const hasBody = Boolean(delegatedHref) || input !== undefined || output !== undefined || errorText !== undefined;\n return (\n <div data-slot=\"span-payload-tool\" className=\"flex flex-col gap-2\">\n <BadgeWrapper\n status={error ? 'error' : 'idle'}\n header={\n <ActivityHeadline icon={<ToolIcon aria-hidden />} label={label} detail={detail} description={description} />\n }\n >\n {hasBody && (\n <div className=\"flex flex-col gap-3\">\n {delegated && delegatedHref && (\n <DataKeysAndValues>\n <DataKeysAndValues.Key>{delegated.kind === 'workflow' ? 'Workflow' : 'Agent'}</DataKeysAndValues.Key>\n <DataKeysAndValues.ValueLink href={delegatedHref} as={Link}>\n {delegated.key}\n </DataKeysAndValues.ValueLink>\n </DataKeysAndValues>\n )}\n {input !== undefined && (\n <SpanPayloadField label=\"Arguments\">\n <SpanPayloadJson value={input} />\n </SpanPayloadField>\n )}\n {output !== undefined && (\n <SpanPayloadField label=\"Result\">\n <SpanPayloadJson value={output} />\n </SpanPayloadField>\n )}\n {errorText !== undefined && (\n <SpanPayloadField label=\"Error\">\n <SpanPayloadJson value={errorText} />\n </SpanPayloadField>\n )}\n </div>\n )}\n </BadgeWrapper>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { SpanPayloadTool } from './span-payload-tool';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/ds/components/Collapsible';\nimport { DisclosureChevron } from '@/ds/components/DisclosureChevron';\nimport { MarkdownRenderer } from '@/ds/components/MarkdownRenderer';\nimport { ScrollArea } from '@/ds/components/ScrollArea';\nimport { Txt } from '@/ds/components/Txt';\nimport { raisedSurfaceStyle } from '@/ds/primitives/raised-surface';\nimport { cn } from '@/lib/utils';\n\n/** Small-caps label above a field of a rich payload. */\nexport function SpanPayloadLabel({ children }: { children: ReactNode }) {\n return (\n <Txt as=\"span\" variant=\"meta\" tone=\"faint\" className=\"block uppercase\">\n {children}\n </Txt>\n );\n}\n\nexport function SpanPayloadField({ label, children }: { label: ReactNode; children: ReactNode }) {\n return (\n <div data-slot=\"span-payload-field\" className=\"flex flex-col gap-1.5\">\n <SpanPayloadLabel>{label}</SpanPayloadLabel>\n {children}\n </div>\n );\n}\n\nexport function SpanPayloadMarkdown({ children }: { children: string }) {\n return (\n <div data-slot=\"span-payload-markdown\" className=\"text-foreground\">\n <MarkdownRenderer>{children}</MarkdownRenderer>\n </div>\n );\n}\n\n/** A collapsed block for secondary data (reasoning, steps, warnings…). */\nexport function SpanPayloadCollapsible({\n label,\n children,\n defaultOpen = false,\n}: {\n label: ReactNode;\n children: ReactNode;\n defaultOpen?: boolean;\n}) {\n return (\n <Collapsible defaultOpen={defaultOpen}>\n <CollapsibleTrigger className=\"flex items-center gap-1 text-meta text-placeholder uppercase\">\n <DisclosureChevron direction=\"right\" className=\"size-3\" />\n {label}\n </CollapsibleTrigger>\n <CollapsibleContent className=\"pt-1.5\">{children}</CollapsibleContent>\n </Collapsible>\n );\n}\n\nexport interface SpanPayloadListItem {\n key: string;\n /** The item name, a link when it has a page to open. */\n name: ReactNode;\n description?: string;\n}\n\n/**\n * A scrollable list of named items with an optional description (tools, skills…). The scrollbar\n * stays visible while the list overflows, so readers can tell there are more items below.\n * `card` frames it on its own surface, for a list that stands alone in a section.\n */\nexport function SpanPayloadList({ items, slot, card }: { items: SpanPayloadListItem[]; slot: string; card?: boolean }) {\n return (\n <ScrollArea\n maxHeight=\"12rem\"\n alwaysShowScrollbar\n className={cn(card && cn(raisedSurfaceStyle, 'rounded-lg [--scroll-area-scrollbar-inset:0.5rem]'))}\n >\n <ul data-slot={slot} className={cn('flex flex-col gap-2', card ? 'p-3 pr-4' : 'pr-3')}>\n {items.map(item => (\n <li key={item.key} className=\"flex min-w-0 flex-col\">\n {item.name}\n {item.description && (\n // Payload content reads in ink like the messages around it; grey is kept for the labels.\n <Txt as=\"span\" variant=\"body-sm\" className=\"line-clamp-2\" title={item.description}>\n {item.description}\n </Txt>\n )}\n </li>\n ))}\n </ul>\n </ScrollArea>\n );\n}\n\n/** A list item name rendered as plain text. */\nexport function SpanPayloadListName({ children }: { children: string }) {\n return (\n <Txt as=\"span\" variant=\"label\" tone=\"ink\" className=\"truncate\">\n {children}\n </Txt>\n );\n}\n\n/** Tool calls as core records them: `{ toolName, args | input }` when they have that shape, JSON otherwise. */\nexport function SpanPayloadToolCalls({ toolCalls }: { toolCalls: unknown[] }) {\n return (\n <ul data-slot=\"span-payload-tool-calls\" className=\"flex flex-col gap-2\">\n {toolCalls.map((call, index) => (\n <li key={index}>\n <SpanPayloadTool value={call} />\n </li>\n ))}\n </ul>\n );\n}\n"],"mappings":"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"}
@@ -1,21 +1,49 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { KnowledgePageCardProps } from '../../knowledge/components/KnowledgePageCard';
2
3
  import type { LinkComponent } from '../../../lib/framework';
4
+ /** Names the page a link points at: by id, or by reference the way `refHref` takes it. */
5
+ export type KnowledgePageTarget = {
6
+ pageId: string;
7
+ pageRef?: never;
8
+ } | {
9
+ pageRef: string;
10
+ pageId?: never;
11
+ };
12
+ /**
13
+ * What a hover card says about a page. Called, as a hook, only while a card is open, so a host fetches
14
+ * the page on hover and not for every link in the transcript. (Chat prose is the exception: a bare address
15
+ * in text calls it on render, since it links only if the page resolves.) `undefined` while loading or unreadable.
16
+ */
17
+ export type UseKnowledgePagePreview = (target: KnowledgePageTarget) => KnowledgePageCardProps | undefined;
3
18
  interface KnowledgeLinks {
19
+ /** Left out where the host cannot look a page up; links then have no hover card. */
20
+ usePagePreview?: UseKnowledgePagePreview;
4
21
  /** Undefined when this host has no page to open, e.g. a chat outside any project; the name shows as text. */
5
22
  pageHref: (pageId: string) => string | undefined;
23
+ /**
24
+ * Where a page named by reference (a scope address, or `scope#key/path` as `knowledge_list` names
25
+ * entries) opens. Studio's Knowledge page resolves the reference itself, so it uses the page URL. A
26
+ * host that only opens pages by id leaves it out, and those names show as text.
27
+ */
28
+ refHref?: (ref: string) => string | undefined;
6
29
  Link?: LinkComponent;
30
+ /** Set by the provider: this host has Knowledge pages, so references in chat prose become links. */
31
+ provided?: boolean;
7
32
  }
8
33
  /**
9
34
  * Where Knowledge page links in chat (tool cards, pinned Knowledge) point. Studio's default opens its own
10
35
  * Knowledge page; a host with its own route (Factory's per-project page) or its own router passes both.
11
36
  */
12
- export declare function KnowledgeLinksProvider({ pageHref, Link, children }: KnowledgeLinks & {
37
+ export declare function KnowledgeLinksProvider({ pageHref, refHref, Link, usePagePreview, children, }: Omit<KnowledgeLinks, 'provided'> & {
13
38
  children: ReactNode;
14
39
  }): import("react").JSX.Element;
40
+ /** What the host gave the provider; for renderers that must decide before drawing a link. */
41
+ export declare function useKnowledgeLinksContext(): KnowledgeLinks;
42
+ /** Whether this host mounted a `KnowledgeLinksProvider`, i.e. has Knowledge pages chat prose can link to. */
43
+ export declare function useHasKnowledgeLinks(): boolean;
15
44
  /** A link to a Knowledge page, through the host's link component and route. */
16
- export declare function KnowledgePageLink({ pageId, children, className, }: {
17
- pageId: string;
45
+ export declare function KnowledgePageLink({ pageId, pageRef, children, className, }: {
18
46
  children: ReactNode;
19
47
  className?: string;
20
- }): import("react").JSX.Element;
48
+ } & KnowledgePageTarget): import("react").JSX.Element;
21
49
  export {};
@@ -6,6 +6,8 @@ export interface PinnedPage {
6
6
  /** From the pin itself on newer cores; read off the delivered text's `<name> (<id>): ` prefix on older ones. */
7
7
  name?: string;
8
8
  scope?: string;
9
+ /** For a pinned listing, the id of the page whose subtree it lists; the row links there. */
10
+ listOf?: string;
9
11
  /** What the agent was given for this pin, verbatim. */
10
12
  text?: string;
11
13
  }