@mastra/playground-ui 60.0.0-alpha.9 → 60.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (850) hide show
  1. package/README.md +21 -15
  2. package/dist/{Button-DbJn0bJX.cjs → Button-BnmR2HRc.cjs} +5 -1
  3. package/dist/Button-BnmR2HRc.cjs.map +1 -0
  4. package/dist/{Button-CHTvSq4d.js → Button-C6eUqcPI.js} +6 -2
  5. package/dist/Button-C6eUqcPI.js.map +1 -0
  6. package/dist/{Card-BbwF20OW.cjs → Card-BQsKHkyB.cjs} +5 -5
  7. package/dist/Card-BQsKHkyB.cjs.map +1 -0
  8. package/dist/{Card-DmT57Pve.js → Card-DVy0QS4m.js} +5 -5
  9. package/dist/Card-DVy0QS4m.js.map +1 -0
  10. package/dist/{ErrorBoundary-DDi5RBQv.js → ErrorBoundary-Bb2R5IMR.js} +2 -2
  11. package/dist/{ErrorBoundary-DDi5RBQv.js.map → ErrorBoundary-Bb2R5IMR.js.map} +1 -1
  12. package/dist/{ErrorBoundary-BRQxBc51.cjs → ErrorBoundary-CKrwONAU.cjs} +2 -2
  13. package/dist/{ErrorBoundary-BRQxBc51.cjs.map → ErrorBoundary-CKrwONAU.cjs.map} +1 -1
  14. package/dist/{Notice-JX9yuy6r.cjs → Notice-CEBwitdf.cjs} +2 -2
  15. package/dist/{Notice-JX9yuy6r.cjs.map → Notice-CEBwitdf.cjs.map} +1 -1
  16. package/dist/{Notice-b3XjkEVP.js → Notice-Ce3r5x-7.js} +2 -2
  17. package/dist/{Notice-b3XjkEVP.js.map → Notice-Ce3r5x-7.js.map} +1 -1
  18. package/dist/{activity-BYD9ugQK.cjs → activity-8egTNbaI.cjs} +2 -2
  19. package/dist/{activity-BYD9ugQK.cjs.map → activity-8egTNbaI.cjs.map} +1 -1
  20. package/dist/{activity-BnyR9d_6.js → activity-Duth8KP_.js} +2 -2
  21. package/dist/{activity-BnyR9d_6.js.map → activity-Duth8KP_.js.map} +1 -1
  22. package/dist/activity.css +3 -3
  23. package/dist/{alert-dialog-JQyJ-qjE.cjs → alert-dialog-BcOSIOSW.cjs} +3 -3
  24. package/dist/{alert-dialog-JQyJ-qjE.cjs.map → alert-dialog-BcOSIOSW.cjs.map} +1 -1
  25. package/dist/{alert-dialog-CAGfWxfv.js → alert-dialog-D1UYVW__.js} +3 -3
  26. package/dist/{alert-dialog-CAGfWxfv.js.map → alert-dialog-D1UYVW__.js.map} +1 -1
  27. package/dist/{ask-user-BSitQ3cU.js → ask-user-Crg1O-o6.js} +2 -2
  28. package/dist/{ask-user-BSitQ3cU.js.map → ask-user-Crg1O-o6.js.map} +1 -1
  29. package/dist/{ask-user-C8PIlzDe.cjs → ask-user-DJXmLJzy.cjs} +2 -2
  30. package/dist/{ask-user-C8PIlzDe.cjs.map → ask-user-DJXmLJzy.cjs.map} +1 -1
  31. package/dist/buttons-group.css +4 -14
  32. package/dist/{code-block-FI2Y_vRg.cjs → code-block-C7A4Hv96.cjs} +5 -5
  33. package/dist/{code-block-FI2Y_vRg.cjs.map → code-block-C7A4Hv96.cjs.map} +1 -1
  34. package/dist/{code-block-D1_YjIGG.js → code-block-C_pvalBv.js} +5 -5
  35. package/dist/{code-block-D1_YjIGG.js.map → code-block-C_pvalBv.js.map} +1 -1
  36. package/dist/{code-editor-8l_YoqYu.cjs → code-editor-BXchPl_F.cjs} +3 -3
  37. package/dist/code-editor-BXchPl_F.cjs.map +1 -0
  38. package/dist/{code-editor-m5ktiTwB.js → code-editor-Cltwid7c.js} +3 -3
  39. package/dist/code-editor-Cltwid7c.js.map +1 -0
  40. package/dist/{collapsible-DhhP5p1j.js → collapsible-BNUn4644.js} +2 -2
  41. package/dist/collapsible-BNUn4644.js.map +1 -0
  42. package/dist/{collapsible-BFSJouuI.cjs → collapsible-jfzzU7Gp.cjs} +2 -2
  43. package/dist/collapsible-jfzzU7Gp.cjs.map +1 -0
  44. package/dist/{combobox-DDvFeXkN.js → combobox-B_C0cNid.js} +4 -4
  45. package/dist/{combobox-DDvFeXkN.js.map → combobox-B_C0cNid.js.map} +1 -1
  46. package/dist/{combobox-Dm1hKirJ.cjs → combobox-rKV-Lksj.cjs} +4 -4
  47. package/dist/{combobox-Dm1hKirJ.cjs.map → combobox-rKV-Lksj.cjs.map} +1 -1
  48. package/dist/{combobox-styles-B0qifmU6.cjs → combobox-styles-C4Kq1NFV.cjs} +2 -2
  49. package/dist/{combobox-styles-B0qifmU6.cjs.map → combobox-styles-C4Kq1NFV.cjs.map} +1 -1
  50. package/dist/{combobox-styles-VF_qaHQZ.js → combobox-styles-CLxC7VLA.js} +2 -2
  51. package/dist/{combobox-styles-VF_qaHQZ.js.map → combobox-styles-CLxC7VLA.js.map} +1 -1
  52. package/dist/{command-DxGz6-Jx.js → command-C6JnofUJ.js} +3 -3
  53. package/dist/{command-DxGz6-Jx.js.map → command-C6JnofUJ.js.map} +1 -1
  54. package/dist/{command-B4ue1PCR.cjs → command-CpXMoss8.cjs} +3 -3
  55. package/dist/{command-B4ue1PCR.cjs.map → command-CpXMoss8.cjs.map} +1 -1
  56. package/dist/components/AlertDialog.cjs.js +1 -1
  57. package/dist/components/AlertDialog.es.js +1 -1
  58. package/dist/components/Button.cjs.js +1 -1
  59. package/dist/components/Button.es.js +2 -2
  60. package/dist/components/Card.cjs.js +1 -1
  61. package/dist/components/Card.es.js +1 -1
  62. package/dist/components/ClampedText.cjs.js +1 -1
  63. package/dist/components/ClampedText.es.js +1 -1
  64. package/dist/components/CodeBlock.cjs.js +1 -1
  65. package/dist/components/CodeBlock.es.js +1 -1
  66. package/dist/components/CodeEditor.cjs.js +1 -1
  67. package/dist/components/CodeEditor.es.js +1 -1
  68. package/dist/components/Collapsible.cjs.js +1 -1
  69. package/dist/components/Collapsible.es.js +1 -1
  70. package/dist/components/Combobox.cjs.js +2 -2
  71. package/dist/components/Combobox.es.js +2 -2
  72. package/dist/components/Command.cjs.js +1 -1
  73. package/dist/components/Command.es.js +1 -1
  74. package/dist/components/CommandPalette.cjs.js +2 -2
  75. package/dist/components/CommandPalette.es.js +2 -2
  76. package/dist/components/Comment.cjs.js +2 -2
  77. package/dist/components/Comment.es.js +2 -2
  78. package/dist/components/Composer.cjs.js +2 -2
  79. package/dist/components/Composer.es.js +2 -2
  80. package/dist/components/CopyButton.cjs.js +1 -1
  81. package/dist/components/CopyButton.es.js +1 -1
  82. package/dist/components/DataCodeSection.cjs.js +1 -1
  83. package/dist/components/DataCodeSection.es.js +1 -1
  84. package/dist/components/DataDetailsPanel.cjs.js +2 -2
  85. package/dist/components/DataDetailsPanel.es.js +2 -2
  86. package/dist/components/DataList.cjs.js +5 -5
  87. package/dist/components/DataList.es.js +5 -5
  88. package/dist/components/DataPanel.cjs.js +1 -1
  89. package/dist/components/DataPanel.es.js +1 -1
  90. package/dist/components/DateRangeTimeline.cjs.js +5 -3
  91. package/dist/components/DateRangeTimeline.cjs.js.map +1 -1
  92. package/dist/components/DateRangeTimeline.es.js +5 -3
  93. package/dist/components/DateRangeTimeline.es.js.map +1 -1
  94. package/dist/components/DateTimePicker.cjs.js +2 -2
  95. package/dist/components/DateTimePicker.es.js +2 -2
  96. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  97. package/dist/components/DateTimeRangePicker.es.js +1 -1
  98. package/dist/components/Dialog.cjs.js +2 -2
  99. package/dist/components/Dialog.es.js +2 -2
  100. package/dist/components/DisabledFeatureButton.cjs.js +1 -1
  101. package/dist/components/DisabledFeatureButton.es.js +1 -1
  102. package/dist/components/Drawer.cjs.js +1 -1
  103. package/dist/components/Drawer.es.js +1 -1
  104. package/dist/components/EnvironmentVariablesEditor.cjs.js +4 -4
  105. package/dist/components/EnvironmentVariablesEditor.es.js +4 -4
  106. package/dist/components/ErrorBoundary.cjs.js +1 -1
  107. package/dist/components/ErrorBoundary.es.js +1 -1
  108. package/dist/components/FilterBar.cjs.js +3 -3
  109. package/dist/components/FilterBar.es.js +4 -4
  110. package/dist/components/FormFieldBlocks.cjs.js +2 -2
  111. package/dist/components/FormFieldBlocks.es.js +2 -2
  112. package/dist/components/HorizontalBars.cjs.js +1 -1
  113. package/dist/components/HorizontalBars.es.js +1 -1
  114. package/dist/components/InputGroup.cjs.js +1 -1
  115. package/dist/components/InputGroup.es.js +1 -1
  116. package/dist/components/JSONSchemaForm.cjs.js +2 -2
  117. package/dist/components/JSONSchemaForm.es.js +2 -2
  118. package/dist/components/ListSearch.cjs.js +1 -1
  119. package/dist/components/ListSearch.es.js +1 -1
  120. package/dist/components/LogsDataList.cjs.js +2 -4
  121. package/dist/components/LogsDataList.cjs.js.map +1 -1
  122. package/dist/components/LogsDataList.es.js +2 -4
  123. package/dist/components/LogsDataList.es.js.map +1 -1
  124. package/dist/components/MainSidebar.cjs.js +1 -1
  125. package/dist/components/MainSidebar.es.js +2 -2
  126. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  127. package/dist/components/MarkdownRenderer.es.js +1 -1
  128. package/dist/components/Message.cjs.js +1 -1
  129. package/dist/components/Message.es.js +1 -1
  130. package/dist/components/MetricsCard.cjs.js +1 -1
  131. package/dist/components/MetricsCard.es.js +1 -1
  132. package/dist/components/MetricsKpiCard.cjs.js +1 -1
  133. package/dist/components/MetricsKpiCard.es.js +1 -1
  134. package/dist/components/Notice.cjs.js +1 -1
  135. package/dist/components/Notice.es.js +1 -1
  136. package/dist/components/PrevNextNav.cjs.js +1 -1
  137. package/dist/components/PrevNextNav.es.js +1 -1
  138. package/dist/components/PropertyFilter.cjs.js +3 -3
  139. package/dist/components/PropertyFilter.es.js +4 -4
  140. package/dist/components/RelativeTimestamp.cjs.js +1 -1
  141. package/dist/components/RelativeTimestamp.es.js +1 -1
  142. package/dist/components/RuleBuilder.cjs.js +2 -2
  143. package/dist/components/RuleBuilder.es.js +2 -2
  144. package/dist/components/ScrollArea.cjs.js +1 -1
  145. package/dist/components/ScrollArea.es.js +1 -1
  146. package/dist/components/SectionCard.cjs.js +1 -12
  147. package/dist/components/SectionCard.cjs.js.map +1 -1
  148. package/dist/components/SectionCard.es.js +1 -12
  149. package/dist/components/SectionCard.es.js.map +1 -1
  150. package/dist/components/Select.cjs.js +1 -1
  151. package/dist/components/Select.es.js +1 -1
  152. package/dist/components/SideDialog.cjs.js +1 -1
  153. package/dist/components/SideDialog.es.js +1 -1
  154. package/dist/components/Slider.cjs.js +1 -1
  155. package/dist/components/Slider.es.js +1 -1
  156. package/dist/components/StatusIndicators.cjs.js +6 -18
  157. package/dist/components/StatusIndicators.cjs.js.map +1 -1
  158. package/dist/components/StatusIndicators.es.js +6 -18
  159. package/dist/components/StatusIndicators.es.js.map +1 -1
  160. package/dist/components/Switch.cjs.js +1 -1
  161. package/dist/components/Switch.es.js +1 -1
  162. package/dist/components/Table.cjs.js +3 -2
  163. package/dist/components/Table.cjs.js.map +1 -1
  164. package/dist/components/Table.es.js +3 -2
  165. package/dist/components/Table.es.js.map +1 -1
  166. package/dist/components/Tabs.cjs.js +3 -3
  167. package/dist/components/Tabs.es.js +3 -3
  168. package/dist/components/ThreadList.cjs.js +1 -1
  169. package/dist/components/ThreadList.es.js +1 -1
  170. package/dist/components/ThreadRail.cjs.js +3 -2
  171. package/dist/components/ThreadRail.cjs.js.map +1 -1
  172. package/dist/components/ThreadRail.es.js +3 -2
  173. package/dist/components/ThreadRail.es.js.map +1 -1
  174. package/dist/components/Tree.cjs.js +2 -2
  175. package/dist/components/Tree.cjs.js.map +1 -1
  176. package/dist/components/Tree.es.js +2 -2
  177. package/dist/components/Tree.es.js.map +1 -1
  178. package/dist/components/Truncate.cjs.js +1 -1
  179. package/dist/components/Truncate.es.js +1 -1
  180. package/dist/components/Workflow.cjs.js +6 -6
  181. package/dist/components/Workflow.es.js +6 -6
  182. package/dist/components/ai/activity.cjs.js +4 -4
  183. package/dist/components/ai/activity.es.js +4 -4
  184. package/dist/components/ai/ask-user.cjs.js +1 -1
  185. package/dist/components/ai/ask-user.es.js +1 -1
  186. package/dist/components/ai/plan.cjs.js +1 -1
  187. package/dist/components/ai/plan.es.js +1 -1
  188. package/dist/components/ai/task-list.cjs.js +2 -2
  189. package/dist/components/ai/task-list.cjs.js.map +1 -1
  190. package/dist/components/ai/task-list.es.js +2 -2
  191. package/dist/components/ai/task-list.es.js.map +1 -1
  192. package/dist/components/ai/tool-approval.cjs.js +1 -1
  193. package/dist/components/ai/tool-approval.es.js +1 -1
  194. package/dist/components/ai/tool-call.cjs.js +4 -4
  195. package/dist/components/ai/tool-call.es.js +4 -4
  196. package/dist/{composer-D7ZOLVUX.cjs → composer-DyoM0j2m.cjs} +2 -2
  197. package/dist/{composer-D7ZOLVUX.cjs.map → composer-DyoM0j2m.cjs.map} +1 -1
  198. package/dist/{composer-a6qwEQIs.js → composer-eMyX1lBH.js} +2 -2
  199. package/dist/{composer-a6qwEQIs.js.map → composer-eMyX1lBH.js.map} +1 -1
  200. package/dist/composer.css +2 -2
  201. package/dist/{copy-button-89AmY5FU.cjs → copy-button-C6nXDjBz.cjs} +2 -2
  202. package/dist/{copy-button-89AmY5FU.cjs.map → copy-button-C6nXDjBz.cjs.map} +1 -1
  203. package/dist/{copy-button-rs9SJnvF.js → copy-button-DbmsTUum.js} +2 -2
  204. package/dist/{copy-button-rs9SJnvF.js.map → copy-button-DbmsTUum.js.map} +1 -1
  205. package/dist/{data-code-section-D01ggJy6.js → data-code-section-Bd2Xnckz.js} +6 -6
  206. package/dist/data-code-section-Bd2Xnckz.js.map +1 -0
  207. package/dist/{data-code-section-W_dIahDO.cjs → data-code-section-D5b6_jcB.cjs} +6 -6
  208. package/dist/data-code-section-D5b6_jcB.cjs.map +1 -0
  209. package/dist/{data-list-jJGA9T9_.cjs → data-list-D8bACyyK.cjs} +4 -4
  210. package/dist/{data-list-jJGA9T9_.cjs.map → data-list-D8bACyyK.cjs.map} +1 -1
  211. package/dist/{data-list-cF2lpf-v.js → data-list-DL_oFE4j.js} +4 -4
  212. package/dist/{data-list-cF2lpf-v.js.map → data-list-DL_oFE4j.js.map} +1 -1
  213. package/dist/{data-list-skeleton-DtU1wRbx.cjs → data-list-skeleton-BXPfL0s7.cjs} +2 -2
  214. package/dist/{data-list-skeleton-DtU1wRbx.cjs.map → data-list-skeleton-BXPfL0s7.cjs.map} +1 -1
  215. package/dist/{data-list-skeleton-BiWUa3JR.js → data-list-skeleton-Bk9LI0J0.js} +2 -2
  216. package/dist/{data-list-skeleton-BiWUa3JR.js.map → data-list-skeleton-Bk9LI0J0.js.map} +1 -1
  217. package/dist/{data-list-spacer-Cukij8de.js → data-list-spacer-CE6-4ZQq.js} +5 -4
  218. package/dist/data-list-spacer-CE6-4ZQq.js.map +1 -0
  219. package/dist/{data-list-spacer-D8zpJS7Z.cjs → data-list-spacer-_bFe0e2u.cjs} +5 -4
  220. package/dist/data-list-spacer-_bFe0e2u.cjs.map +1 -0
  221. package/dist/{data-list-top-KKXNLoP6.cjs → data-list-top-C-pLBax7.cjs} +4 -3
  222. package/dist/data-list-top-C-pLBax7.cjs.map +1 -0
  223. package/dist/{data-list-top-G11bdV77.js → data-list-top-DheFgb0M.js} +4 -3
  224. package/dist/data-list-top-DheFgb0M.js.map +1 -0
  225. package/dist/{data-panel-9GDF8Wx1.js → data-panel-42fdcagQ.js} +3 -3
  226. package/dist/{data-panel-9GDF8Wx1.js.map → data-panel-42fdcagQ.js.map} +1 -1
  227. package/dist/{data-panel-C4JszAuX.cjs → data-panel-CjvoI_lx.cjs} +3 -3
  228. package/dist/{data-panel-C4JszAuX.cjs.map → data-panel-CjvoI_lx.cjs.map} +1 -1
  229. package/dist/{date-time-range-picker-CmqD5SE4.cjs → date-time-range-picker-BORAuIJM.cjs} +3 -3
  230. package/dist/{date-time-range-picker-CmqD5SE4.cjs.map → date-time-range-picker-BORAuIJM.cjs.map} +1 -1
  231. package/dist/{date-time-range-picker-DZ-jZE2-.js → date-time-range-picker-C-pSI1u1.js} +3 -3
  232. package/dist/{date-time-range-picker-DZ-jZE2-.js.map → date-time-range-picker-C-pSI1u1.js.map} +1 -1
  233. package/dist/{dialog-4KIPO71S.cjs → dialog-DYpOpj9s.cjs} +3 -3
  234. package/dist/{dialog-4KIPO71S.cjs.map → dialog-DYpOpj9s.cjs.map} +1 -1
  235. package/dist/{dialog-action-C6yPBO21.cjs → dialog-action-B3AHq7mU.cjs} +3 -3
  236. package/dist/{dialog-action-C6yPBO21.cjs.map → dialog-action-B3AHq7mU.cjs.map} +1 -1
  237. package/dist/{dialog-action-DzTAl6AJ.js → dialog-action-BGmDoI5T.js} +3 -3
  238. package/dist/{dialog-action-DzTAl6AJ.js.map → dialog-action-BGmDoI5T.js.map} +1 -1
  239. package/dist/{dialog-DjXC42Zn.js → dialog-cKzR2TXI.js} +3 -3
  240. package/dist/{dialog-DjXC42Zn.js.map → dialog-cKzR2TXI.js.map} +1 -1
  241. package/dist/domains/auth/components/session-expired.cjs.js +1 -1
  242. package/dist/domains/auth/components/session-expired.es.js +1 -1
  243. package/dist/domains/chat/attachments/attachment-preview-dialog.cjs.js +2 -2
  244. package/dist/domains/chat/attachments/attachment-preview-dialog.es.js +2 -2
  245. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  246. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  247. package/dist/domains/chat/attachments/composer-attachment.cjs.js +1 -1
  248. package/dist/domains/chat/attachments/composer-attachment.es.js +1 -1
  249. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  250. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  251. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +3 -3
  252. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +3 -3
  253. package/dist/domains/chat/messages/assistant-message-actions.cjs.js +2 -2
  254. package/dist/domains/chat/messages/assistant-message-actions.es.js +2 -2
  255. package/dist/domains/chat/messages/dataset-save-action.cjs.js +5 -5
  256. package/dist/domains/chat/messages/dataset-save-action.es.js +5 -5
  257. package/dist/domains/chat/messages/message-row.cjs.js +22 -5
  258. package/dist/domains/chat/messages/message-row.cjs.js.map +1 -1
  259. package/dist/domains/chat/messages/message-row.es.js +22 -5
  260. package/dist/domains/chat/messages/message-row.es.js.map +1 -1
  261. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  262. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  263. package/dist/domains/chat/messages/renderers/message-text.cjs.js +2 -2
  264. package/dist/domains/chat/messages/renderers/message-text.es.js +2 -2
  265. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  266. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  267. package/dist/domains/chat/messages/renderers/status-renderers.cjs.js +1 -1
  268. package/dist/domains/chat/messages/renderers/status-renderers.es.js +1 -1
  269. package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js +6 -0
  270. package/dist/domains/chat/messages/renderers/user-text-part-renderer.cjs.js.map +1 -1
  271. package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js +6 -0
  272. package/dist/domains/chat/messages/renderers/user-text-part-renderer.es.js.map +1 -1
  273. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  274. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  275. package/dist/domains/chat/messages/skill-activation.cjs.js +29 -0
  276. package/dist/domains/chat/messages/skill-activation.cjs.js.map +1 -0
  277. package/dist/domains/chat/messages/skill-activation.d.ts +2 -0
  278. package/dist/domains/chat/messages/skill-activation.es.js +25 -0
  279. package/dist/domains/chat/messages/skill-activation.es.js.map +1 -0
  280. package/dist/domains/chat/messages/skill-message.cjs.js +33 -0
  281. package/dist/domains/chat/messages/skill-message.cjs.js.map +1 -0
  282. package/dist/domains/chat/messages/skill-message.d.ts +2 -0
  283. package/dist/domains/chat/messages/skill-message.es.js +29 -0
  284. package/dist/domains/chat/messages/skill-message.es.js.map +1 -0
  285. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  286. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  287. package/dist/domains/chat/messages/tripwire-notice.cjs.js +1 -1
  288. package/dist/domains/chat/messages/tripwire-notice.es.js +1 -1
  289. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  290. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  291. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +4 -4
  292. package/dist/domains/chat/tools/badges/agent-badge.es.js +4 -4
  293. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  294. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  295. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +3 -3
  296. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +3 -3
  297. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +2 -2
  298. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +2 -2
  299. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +3 -3
  300. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +3 -3
  301. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  302. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  303. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  304. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  305. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  306. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  307. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +2 -2
  308. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +2 -2
  309. package/dist/domains/chat/tools/badges/tool-approval-buttons.cjs.js +1 -1
  310. package/dist/domains/chat/tools/badges/tool-approval-buttons.es.js +1 -1
  311. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +4 -4
  312. package/dist/domains/chat/tools/badges/tool-badge.es.js +4 -4
  313. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +3 -4
  314. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
  315. package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -4
  316. package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
  317. package/dist/domains/chat/tools/submit-plan-tool.cjs.js +2 -2
  318. package/dist/domains/chat/tools/submit-plan-tool.es.js +2 -2
  319. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  320. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  321. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +4 -4
  322. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +4 -4
  323. package/dist/domains/logs/components/log-data-panel.cjs.js +3 -3
  324. package/dist/domains/logs/components/log-data-panel.es.js +3 -3
  325. package/dist/domains/logs/components/logs-list-view.cjs.js +2 -2
  326. package/dist/domains/logs/components/logs-list-view.es.js +2 -2
  327. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  328. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  329. package/dist/domains/logs/components/no-logs-info.cjs.js +1 -1
  330. package/dist/domains/logs/components/no-logs-info.es.js +1 -1
  331. package/dist/domains/memory/components/flame-graph.cjs.js +1 -1
  332. package/dist/domains/memory/components/flame-graph.es.js +1 -1
  333. package/dist/domains/memory/components/memory-studio-panel.cjs.js +1 -1
  334. package/dist/domains/memory/components/memory-studio-panel.es.js +1 -1
  335. package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
  336. package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -1
  337. package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
  338. package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -1
  339. package/dist/domains/metrics/components/card-action-buttons.cjs.js +1 -1
  340. package/dist/domains/metrics/components/card-action-buttons.es.js +1 -1
  341. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  342. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  343. package/dist/domains/metrics/components/kpi-card-view.cjs.js +1 -1
  344. package/dist/domains/metrics/components/kpi-card-view.es.js +1 -1
  345. package/dist/domains/metrics/components/latency-card-view.cjs.js +4 -4
  346. package/dist/domains/metrics/components/latency-card-view.es.js +4 -4
  347. package/dist/domains/metrics/components/memory-card-view.cjs.js +5 -5
  348. package/dist/domains/metrics/components/memory-card-view.es.js +5 -5
  349. package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +2 -2
  350. package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +2 -2
  351. package/dist/domains/metrics/components/scores-card-view.cjs.js +5 -5
  352. package/dist/domains/metrics/components/scores-card-view.es.js +5 -5
  353. package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +5 -5
  354. package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +5 -5
  355. package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +4 -4
  356. package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +4 -4
  357. package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +5 -5
  358. package/dist/domains/metrics/components/traces-volume-card-view.es.js +5 -5
  359. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +4 -4
  360. package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +4 -4
  361. package/dist/domains/request-context/components/request-context-label.cjs.js +1 -5
  362. package/dist/domains/request-context/components/request-context-label.cjs.js.map +1 -1
  363. package/dist/domains/request-context/components/request-context-label.es.js +2 -6
  364. package/dist/domains/request-context/components/request-context-label.es.js.map +1 -1
  365. package/dist/domains/scores/components/score-data-panel.cjs.js +2 -2
  366. package/dist/domains/scores/components/score-data-panel.es.js +2 -2
  367. package/dist/domains/scores/components/span-scoring.cjs.js +4 -4
  368. package/dist/domains/scores/components/span-scoring.es.js +4 -4
  369. package/dist/domains/scores/components/trace-scores-tab.cjs.js +3 -4
  370. package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
  371. package/dist/domains/scores/components/trace-scores-tab.es.js +3 -4
  372. package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
  373. package/dist/domains/traces/components/feedback-thread.cjs.js +3 -3
  374. package/dist/domains/traces/components/feedback-thread.es.js +3 -3
  375. package/dist/domains/traces/components/span-data-panel-view.cjs.js +6 -6
  376. package/dist/domains/traces/components/span-data-panel-view.es.js +6 -6
  377. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  378. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  379. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +2 -2
  380. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +2 -2
  381. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +2 -2
  382. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +2 -2
  383. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +4 -4
  384. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +4 -4
  385. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  386. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  387. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +3 -3
  388. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +3 -3
  389. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  390. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  391. package/dist/domains/traces/components/span-payload/span-payload-section.cjs.js +2 -2
  392. package/dist/domains/traces/components/span-payload/span-payload-section.es.js +2 -2
  393. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +2 -2
  394. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +2 -2
  395. package/dist/domains/traces/components/span-payload/span-processor-attributes.cjs.js +3 -3
  396. package/dist/domains/traces/components/span-payload/span-processor-attributes.es.js +3 -3
  397. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  398. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  399. package/dist/domains/traces/components/span-timeline-row.cjs.js +3 -2
  400. package/dist/domains/traces/components/span-timeline-row.cjs.js.map +1 -1
  401. package/dist/domains/traces/components/span-timeline-row.es.js +3 -2
  402. package/dist/domains/traces/components/span-timeline-row.es.js.map +1 -1
  403. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  404. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  405. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +4 -4
  406. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +4 -4
  407. package/dist/domains/traces/components/thread-trace/thread-trace-spans.cjs.js +1 -1
  408. package/dist/domains/traces/components/thread-trace/thread-trace-spans.es.js +1 -1
  409. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +1 -1
  410. package/dist/domains/traces/components/thread-view-by-trace.es.js +1 -1
  411. package/dist/domains/traces/components/timeline-name-col.cjs.js +3 -2
  412. package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -1
  413. package/dist/domains/traces/components/timeline-name-col.es.js +3 -2
  414. package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -1
  415. package/dist/domains/traces/components/trace-columns-menu.cjs.js +4 -4
  416. package/dist/domains/traces/components/trace-columns-menu.es.js +4 -4
  417. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +6 -6
  418. package/dist/domains/traces/components/trace-data-panel-view.es.js +6 -6
  419. package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -3
  420. package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
  421. package/dist/domains/traces/components/trace-data-panel.es.js +2 -3
  422. package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
  423. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  424. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  425. package/dist/domains/traces/components/trace-messages-panel.cjs.js +1 -1
  426. package/dist/domains/traces/components/trace-messages-panel.es.js +1 -1
  427. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  428. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  429. package/dist/domains/traces/components/trace-thread-item-view.cjs.js +1 -1
  430. package/dist/domains/traces/components/trace-thread-item-view.es.js +1 -1
  431. package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
  432. package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
  433. package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
  434. package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
  435. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  436. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  437. package/dist/domains/traces/components/traces-list-view.cjs.js +5 -4
  438. package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
  439. package/dist/domains/traces/components/traces-list-view.es.js +5 -4
  440. package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
  441. package/dist/domains/traces/components/traces-page-skeleton.cjs.js +1 -3
  442. package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
  443. package/dist/domains/traces/components/traces-page-skeleton.es.js +1 -3
  444. package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
  445. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  446. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  447. package/dist/domains/workflows/components/workflow-entity-header.cjs.js +3 -1
  448. package/dist/domains/workflows/components/workflow-entity-header.cjs.js.map +1 -1
  449. package/dist/domains/workflows/components/workflow-entity-header.es.js +3 -1
  450. package/dist/domains/workflows/components/workflow-entity-header.es.js.map +1 -1
  451. package/dist/domains/workflows/components/workflow-information.cjs.js +3 -3
  452. package/dist/domains/workflows/components/workflow-information.es.js +3 -3
  453. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +3 -3
  454. package/dist/domains/workflows/components/workflow-step-detail.es.js +3 -3
  455. package/dist/domains/workflows/components/workflows-list/no-workflows-info.cjs.js +1 -1
  456. package/dist/domains/workflows/components/workflows-list/no-workflows-info.es.js +1 -1
  457. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +4 -3
  458. package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js.map +1 -1
  459. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +4 -3
  460. package/dist/domains/workflows/components/workflows-list/workflows-list.es.js.map +1 -1
  461. package/dist/domains/workflows/runs/workflow-run-list.cjs.js +4 -4
  462. package/dist/domains/workflows/runs/workflow-run-list.es.js +4 -4
  463. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  464. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  465. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +2 -2
  466. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +2 -2
  467. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  468. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  469. package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
  470. package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
  471. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +2 -2
  472. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +2 -2
  473. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  474. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  475. package/dist/domains/workflows/workflow/workflow-cancel-button.cjs.js +1 -1
  476. package/dist/domains/workflows/workflow/workflow-cancel-button.es.js +1 -1
  477. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  478. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  479. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
  480. package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
  481. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  482. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  483. package/dist/domains/workflows/workflow/workflow-graph-boundary.cjs.js +3 -3
  484. package/dist/domains/workflows/workflow/workflow-graph-boundary.es.js +3 -3
  485. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  486. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  487. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +2 -2
  488. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +2 -2
  489. package/dist/domains/workflows/workflow/workflow-input-data.cjs.js +2 -2
  490. package/dist/domains/workflows/workflow/workflow-input-data.es.js +2 -2
  491. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js +1 -1
  492. package/dist/domains/workflows/workflow/workflow-input-type-toggle.cjs.js.map +1 -1
  493. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js +2 -2
  494. package/dist/domains/workflows/workflow/workflow-input-type-toggle.es.js.map +1 -1
  495. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +3 -3
  496. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +3 -3
  497. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +3 -3
  498. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +3 -3
  499. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +5 -5
  500. package/dist/domains/workflows/workflow/workflow-run-data.es.js +5 -5
  501. package/dist/domains/workflows/workflow/workflow-run-error.cjs.js +1 -1
  502. package/dist/domains/workflows/workflow/workflow-run-error.es.js +1 -1
  503. package/dist/domains/workflows/workflow/workflow-run-header.cjs.js +2 -2
  504. package/dist/domains/workflows/workflow/workflow-run-header.es.js +2 -2
  505. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  506. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  507. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +3 -3
  508. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +3 -3
  509. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +2 -2
  510. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +2 -2
  511. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +3 -3
  512. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +3 -3
  513. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js +6 -2
  514. package/dist/domains/workflows/workflow/workflow-timeline-row.cjs.js.map +1 -1
  515. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js +6 -2
  516. package/dist/domains/workflows/workflow/workflow-timeline-row.es.js.map +1 -1
  517. package/dist/domains/workflows/workflow/workflow-timeline.cjs.js +2 -2
  518. package/dist/domains/workflows/workflow/workflow-timeline.es.js +2 -2
  519. package/dist/domains/workflows/workflow/workflow-trigger-form.cjs.js +1 -1
  520. package/dist/domains/workflows/workflow/workflow-trigger-form.es.js +1 -1
  521. package/dist/domains/workflows/workflow/workflow-trigger-header.cjs.js +1 -1
  522. package/dist/domains/workflows/workflow/workflow-trigger-header.es.js +1 -1
  523. package/dist/domains/workflows/workflow/workflow-trigger.cjs.js +1 -1
  524. package/dist/domains/workflows/workflow/workflow-trigger.es.js +1 -1
  525. package/dist/{drawer-6MeSDSfP.js → drawer-DXf50w71.js} +2 -2
  526. package/dist/{drawer-6MeSDSfP.js.map → drawer-DXf50w71.js.map} +1 -1
  527. package/dist/{drawer-KHIkRUe4.cjs → drawer-d81cZiSV.cjs} +2 -2
  528. package/dist/{drawer-KHIkRUe4.cjs.map → drawer-d81cZiSV.cjs.map} +1 -1
  529. package/dist/ee/signals/components/entity-index-compact-grid.cjs.js +2 -2
  530. package/dist/ee/signals/components/entity-index-compact-grid.es.js +2 -2
  531. package/dist/ee/signals/components/entity-index-list.cjs.js +1 -3
  532. package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
  533. package/dist/ee/signals/components/entity-index-list.es.js +1 -3
  534. package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
  535. package/dist/ee/signals/components/signals-empty-state.cjs.js +16 -20
  536. package/dist/ee/signals/components/signals-empty-state.cjs.js.map +1 -1
  537. package/dist/ee/signals/components/signals-empty-state.es.js +16 -20
  538. package/dist/ee/signals/components/signals-empty-state.es.js.map +1 -1
  539. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -5
  540. package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
  541. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -5
  542. package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
  543. package/dist/ee/signals/examples-pager.cjs.js +1 -1
  544. package/dist/ee/signals/examples-pager.es.js +1 -1
  545. package/dist/ee/signals/flow-card.cjs.js +1 -1
  546. package/dist/ee/signals/flow-card.es.js +1 -1
  547. package/dist/ee/signals/lifeline-point.cjs.js +7 -2
  548. package/dist/ee/signals/lifeline-point.cjs.js.map +1 -1
  549. package/dist/ee/signals/lifeline-point.es.js +7 -2
  550. package/dist/ee/signals/lifeline-point.es.js.map +1 -1
  551. package/dist/ee/signals/noise-detail-panel.cjs.js +1 -1
  552. package/dist/ee/signals/noise-detail-panel.es.js +1 -1
  553. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  554. package/dist/ee/signals/sankey-signals.es.js +1 -1
  555. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +3 -3
  556. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +3 -3
  557. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +3 -3
  558. package/dist/ee/signals/settings/trace-signal-settings.es.js +3 -3
  559. package/dist/ee/signals/signal-colors.cjs.js +6 -6
  560. package/dist/ee/signals/signal-colors.cjs.js.map +1 -1
  561. package/dist/ee/signals/signal-colors.es.js +6 -6
  562. package/dist/ee/signals/signal-colors.es.js.map +1 -1
  563. package/dist/ee/signals/signals-error-state.cjs.js +1 -1
  564. package/dist/ee/signals/signals-error-state.es.js +1 -1
  565. package/dist/ee/signals/snapshot-timeline.cjs.js +2 -2
  566. package/dist/ee/signals/snapshot-timeline.cjs.js.map +1 -1
  567. package/dist/ee/signals/snapshot-timeline.es.js +2 -2
  568. package/dist/ee/signals/snapshot-timeline.es.js.map +1 -1
  569. package/dist/ee/signals/theme-detail-panel.cjs.js +1 -1
  570. package/dist/ee/signals/theme-detail-panel.es.js +1 -1
  571. package/dist/ee/signals/theme-filter-banner.cjs.js +1 -1
  572. package/dist/ee/signals/theme-filter-banner.es.js +1 -1
  573. package/dist/ee/signals/trace-insight-view.cjs.js +2 -2
  574. package/dist/ee/signals/trace-insight-view.cjs.js.map +1 -1
  575. package/dist/ee/signals/trace-insight-view.es.js +2 -2
  576. package/dist/ee/signals/trace-insight-view.es.js.map +1 -1
  577. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  578. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  579. package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +3 -3
  580. package/dist/ee/topics/components/topic-trace-summary-list.es.js +3 -3
  581. package/dist/{filter-bar-chip-u48DmCu5.js → filter-bar-chip-BNPOrSrD.js} +3 -3
  582. package/dist/{filter-bar-chip-u48DmCu5.js.map → filter-bar-chip-BNPOrSrD.js.map} +1 -1
  583. package/dist/{filter-bar-chip-CYKfWUTj.cjs → filter-bar-chip-D4CSm9KP.cjs} +3 -3
  584. package/dist/{filter-bar-chip-CYKfWUTj.cjs.map → filter-bar-chip-D4CSm9KP.cjs.map} +1 -1
  585. package/dist/{horizontal-bars-BYNeqSSF.js → horizontal-bars-BSRESJsp.js} +2 -2
  586. package/dist/{horizontal-bars-BYNeqSSF.js.map → horizontal-bars-BSRESJsp.js.map} +1 -1
  587. package/dist/{horizontal-bars-BK8snozs.cjs → horizontal-bars-DRD7JkHL.cjs} +2 -2
  588. package/dist/{horizontal-bars-BK8snozs.cjs.map → horizontal-bars-DRD7JkHL.cjs.map} +1 -1
  589. package/dist/{input-group-C0xpNsn1.js → input-group-B8bnoDrA.js} +2 -2
  590. package/dist/{input-group-C0xpNsn1.js.map → input-group-B8bnoDrA.js.map} +1 -1
  591. package/dist/{input-group-C1NamUEz.cjs → input-group-I8YVM_Ps.cjs} +2 -2
  592. package/dist/{input-group-C1NamUEz.cjs.map → input-group-I8YVM_Ps.cjs.map} +1 -1
  593. package/dist/layout/tabbed-container.cjs.js +6 -6
  594. package/dist/layout/tabbed-container.es.js +6 -6
  595. package/dist/lib/form/components/array-element-wrapper.cjs.js +3 -3
  596. package/dist/lib/form/components/array-element-wrapper.cjs.js.map +1 -1
  597. package/dist/lib/form/components/array-element-wrapper.es.js +3 -3
  598. package/dist/lib/form/components/array-element-wrapper.es.js.map +1 -1
  599. package/dist/lib/form/components/array-wrapper.cjs.js +1 -1
  600. package/dist/lib/form/components/array-wrapper.es.js +1 -1
  601. package/dist/lib/form/components/date-field.cjs.js +1 -1
  602. package/dist/lib/form/components/date-field.es.js +1 -1
  603. package/dist/lib/form/components/error-message.cjs.js +1 -1
  604. package/dist/lib/form/components/error-message.es.js +1 -1
  605. package/dist/lib/form/components/form-submit-row.cjs.js +1 -1
  606. package/dist/lib/form/components/form-submit-row.es.js +1 -1
  607. package/dist/lib/form/components/object-wrapper.cjs.js +1 -1
  608. package/dist/lib/form/components/object-wrapper.es.js +1 -1
  609. package/dist/lib/form/components/record-field.cjs.js +1 -1
  610. package/dist/lib/form/components/record-field.es.js +1 -1
  611. package/dist/lib/form/components/select-field.cjs.js +1 -1
  612. package/dist/lib/form/components/select-field.es.js +1 -1
  613. package/dist/lib/form/components/submit-button.cjs.js +1 -1
  614. package/dist/lib/form/components/submit-button.es.js +1 -1
  615. package/dist/{list-search-BgO_ksCX.js → list-search-9l8IEdxZ.js} +2 -2
  616. package/dist/{list-search-BgO_ksCX.js.map → list-search-9l8IEdxZ.js.map} +1 -1
  617. package/dist/{list-search-bEL_wzsG.cjs → list-search-DXb7HFX8.cjs} +2 -2
  618. package/dist/{list-search-bEL_wzsG.cjs.map → list-search-DXb7HFX8.cjs.map} +1 -1
  619. package/dist/{logs-data-list-D82JmBPJ.js → logs-data-list-C77r2FOj.js} +3 -3
  620. package/dist/{logs-data-list-D82JmBPJ.js.map → logs-data-list-C77r2FOj.js.map} +1 -1
  621. package/dist/{logs-data-list-DAh8by9h.cjs → logs-data-list-CEFyG1Xb.cjs} +3 -3
  622. package/dist/{logs-data-list-DAh8by9h.cjs.map → logs-data-list-CEFyG1Xb.cjs.map} +1 -1
  623. package/dist/{main-sidebar-link-active-DAiTpL8z.js → main-sidebar-link-active-1_ktyA8Q.js} +7 -7
  624. package/dist/main-sidebar-link-active-1_ktyA8Q.js.map +1 -0
  625. package/dist/{main-sidebar-link-active-DIMZKeHX.cjs → main-sidebar-link-active-BNko0jHZ.cjs} +7 -7
  626. package/dist/main-sidebar-link-active-BNko0jHZ.cjs.map +1 -0
  627. package/dist/{markdown-renderer-CY-jQjAm.js → markdown-renderer-Bl0V7FCo.js} +3 -3
  628. package/dist/{markdown-renderer-CY-jQjAm.js.map → markdown-renderer-Bl0V7FCo.js.map} +1 -1
  629. package/dist/{markdown-renderer-DtcId3Ul.cjs → markdown-renderer-CSwjfPaf.cjs} +3 -3
  630. package/dist/{markdown-renderer-DtcId3Ul.cjs.map → markdown-renderer-CSwjfPaf.cjs.map} +1 -1
  631. package/dist/{message-copy-button-D49yf_Fk.cjs → message-copy-button-ClJBX9qx.cjs} +2 -2
  632. package/dist/{message-copy-button-D49yf_Fk.cjs.map → message-copy-button-ClJBX9qx.cjs.map} +1 -1
  633. package/dist/{message-copy-button-iMfO-J5M.js → message-copy-button-DP3U-xA-.js} +2 -2
  634. package/dist/{message-copy-button-iMfO-J5M.js.map → message-copy-button-DP3U-xA-.js.map} +1 -1
  635. package/dist/{metrics-card-Cr6vbt9I.js → metrics-card-CloSmyRQ.js} +3 -3
  636. package/dist/{metrics-card-Cr6vbt9I.js.map → metrics-card-CloSmyRQ.js.map} +1 -1
  637. package/dist/{metrics-card-B29tubiE.cjs → metrics-card-HmQJHDNa.cjs} +3 -3
  638. package/dist/{metrics-card-B29tubiE.cjs.map → metrics-card-HmQJHDNa.cjs.map} +1 -1
  639. package/dist/{metrics-kpi-card-CHdaoCE8.cjs → metrics-kpi-card-CW24YjZp.cjs} +2 -2
  640. package/dist/{metrics-kpi-card-CHdaoCE8.cjs.map → metrics-kpi-card-CW24YjZp.cjs.map} +1 -1
  641. package/dist/{metrics-kpi-card-DaOkTfEn.js → metrics-kpi-card-DLDT28IB.js} +2 -2
  642. package/dist/{metrics-kpi-card-DaOkTfEn.js.map → metrics-kpi-card-DLDT28IB.js.map} +1 -1
  643. package/dist/new/sidebar.cjs.js +2 -2
  644. package/dist/new/sidebar.cjs.js.map +1 -1
  645. package/dist/new/sidebar.es.js +3 -3
  646. package/dist/new/sidebar.es.js.map +1 -1
  647. package/dist/{notification-activity-HAcSSfXh.js → notification-activity-B1_2BPe_.js} +2 -2
  648. package/dist/{notification-activity-HAcSSfXh.js.map → notification-activity-B1_2BPe_.js.map} +1 -1
  649. package/dist/{notification-activity-CzWIom28.cjs → notification-activity-BAn2fhYd.cjs} +2 -2
  650. package/dist/{notification-activity-CzWIom28.cjs.map → notification-activity-BAn2fhYd.cjs.map} +1 -1
  651. package/dist/{plan-XcVpRToL.js → plan-DJfH1c_u.js} +3 -3
  652. package/dist/{plan-XcVpRToL.js.map → plan-DJfH1c_u.js.map} +1 -1
  653. package/dist/{plan-rKBR_aWJ.cjs → plan-ZKAT5frg.cjs} +3 -3
  654. package/dist/{plan-rKBR_aWJ.cjs.map → plan-ZKAT5frg.cjs.map} +1 -1
  655. package/dist/primitives/form-element.cjs.js +3 -2
  656. package/dist/primitives/form-element.cjs.js.map +1 -1
  657. package/dist/primitives/form-element.es.js +3 -3
  658. package/dist/primitives/form-element.es.js.map +1 -1
  659. package/dist/primitives/menu-item.cjs.js +1 -1
  660. package/dist/primitives/menu-item.es.js +1 -1
  661. package/dist/primitives/raised-surface.cjs.js +3 -3
  662. package/dist/primitives/raised-surface.cjs.js.map +1 -1
  663. package/dist/primitives/raised-surface.es.js +3 -3
  664. package/dist/primitives/raised-surface.es.js.map +1 -1
  665. package/dist/primitives/selection-control.cjs.js +2 -2
  666. package/dist/primitives/selection-control.cjs.js.map +1 -1
  667. package/dist/primitives/selection-control.es.js +3 -3
  668. package/dist/primitives/selection-control.es.js.map +1 -1
  669. package/dist/primitives/transitions.cjs.js +6 -8
  670. package/dist/primitives/transitions.cjs.js.map +1 -1
  671. package/dist/primitives/transitions.es.js +5 -9
  672. package/dist/primitives/transitions.es.js.map +1 -1
  673. package/dist/primitives/trigger-button.cjs.js +1 -1
  674. package/dist/primitives/trigger-button.es.js +1 -1
  675. package/dist/{property-filter-applied-gYYOGNLL.cjs → property-filter-applied-D0F0BYMY.cjs} +2 -2
  676. package/dist/{property-filter-applied-gYYOGNLL.cjs.map → property-filter-applied-D0F0BYMY.cjs.map} +1 -1
  677. package/dist/{property-filter-applied-lIef4AFt.js → property-filter-applied-k0TOa9hf.js} +2 -2
  678. package/dist/{property-filter-applied-lIef4AFt.js.map → property-filter-applied-k0TOa9hf.js.map} +1 -1
  679. package/dist/{reasoning-activity-LdbnHPbR.cjs → reasoning-activity-CO0Ab1Za.cjs} +3 -3
  680. package/dist/{reasoning-activity-LdbnHPbR.cjs.map → reasoning-activity-CO0Ab1Za.cjs.map} +1 -1
  681. package/dist/{reasoning-activity-j1bIOIX8.js → reasoning-activity-D3oCzL58.js} +3 -3
  682. package/dist/{reasoning-activity-j1bIOIX8.js.map → reasoning-activity-D3oCzL58.js.map} +1 -1
  683. package/dist/{relative-timestamp-BzfR9tDU.cjs → relative-timestamp-D-IvjsVb.cjs} +2 -2
  684. package/dist/relative-timestamp-D-IvjsVb.cjs.map +1 -0
  685. package/dist/{relative-timestamp-SPgcvfH6.js → relative-timestamp-wERh5vUE.js} +2 -2
  686. package/dist/relative-timestamp-wERh5vUE.js.map +1 -0
  687. package/dist/resize/panel-drawer.cjs.js +1 -1
  688. package/dist/resize/panel-drawer.es.js +1 -1
  689. package/dist/{scroll-area-BE7FJqVA.cjs → scroll-area-CEuf7Omb.cjs} +2 -2
  690. package/dist/scroll-area-CEuf7Omb.cjs.map +1 -0
  691. package/dist/{scroll-area-PxtGm4w9.js → scroll-area-Ds-fJn5M.js} +3 -3
  692. package/dist/scroll-area-Ds-fJn5M.js.map +1 -0
  693. package/dist/{search-field-block-DHrgu8J5.cjs → search-field-block-B1eqMV8x.cjs} +2 -2
  694. package/dist/{search-field-block-DHrgu8J5.cjs.map → search-field-block-B1eqMV8x.cjs.map} +1 -1
  695. package/dist/{search-field-block-D9yr3kXG.js → search-field-block-Cj9lJsYi.js} +2 -2
  696. package/dist/{search-field-block-D9yr3kXG.js.map → search-field-block-Cj9lJsYi.js.map} +1 -1
  697. package/dist/{select-Y2dIzSBN.cjs → select-C0ZGSJYa.cjs} +2 -2
  698. package/dist/{select-Y2dIzSBN.cjs.map → select-C0ZGSJYa.cjs.map} +1 -1
  699. package/dist/{select-BH7BD11Z.js → select-ch8imm15.js} +2 -2
  700. package/dist/{select-BH7BD11Z.js.map → select-ch8imm15.js.map} +1 -1
  701. package/dist/{select-field-block-DwFt2fgr.cjs → select-field-block-Dy_N3tWv.cjs} +2 -2
  702. package/dist/{select-field-block-DwFt2fgr.cjs.map → select-field-block-Dy_N3tWv.cjs.map} +1 -1
  703. package/dist/{select-field-block-CNLNE9ps.js → select-field-block-_ZUzUs7l.js} +2 -2
  704. package/dist/{select-field-block-CNLNE9ps.js.map → select-field-block-_ZUzUs7l.js.map} +1 -1
  705. package/dist/{side-dialog-DQ3SzDXH.cjs → side-dialog-7P9aEC4v.cjs} +4 -4
  706. package/dist/{side-dialog-DQ3SzDXH.cjs.map → side-dialog-7P9aEC4v.cjs.map} +1 -1
  707. package/dist/{side-dialog-BgmY4v7P.js → side-dialog-D2O3Y7GB.js} +4 -4
  708. package/dist/{side-dialog-BgmY4v7P.js.map → side-dialog-D2O3Y7GB.js.map} +1 -1
  709. package/dist/{signal-activity-B5LFDj6X.js → signal-activity-1REUU8T_.js} +2 -2
  710. package/dist/{signal-activity-B5LFDj6X.js.map → signal-activity-1REUU8T_.js.map} +1 -1
  711. package/dist/{signal-activity-DXZ9j7xV.cjs → signal-activity-4OJb4kp6.cjs} +2 -2
  712. package/dist/{signal-activity-DXZ9j7xV.cjs.map → signal-activity-4OJb4kp6.cjs.map} +1 -1
  713. package/dist/{slider-MM3K0Pyv.js → slider-D9dd_fVN.js} +3 -3
  714. package/dist/{slider-MM3K0Pyv.js.map → slider-D9dd_fVN.js.map} +1 -1
  715. package/dist/{slider-C-Fda4HC.cjs → slider-T_BIZUV0.cjs} +3 -3
  716. package/dist/{slider-C-Fda4HC.cjs.map → slider-T_BIZUV0.cjs.map} +1 -1
  717. package/dist/{span-payload-primitives-0ha5dnaq.js → span-payload-primitives-CEflnpwW.js} +4 -4
  718. package/dist/{span-payload-primitives-0ha5dnaq.js.map → span-payload-primitives-CEflnpwW.js.map} +1 -1
  719. package/dist/{span-payload-primitives-fZJeJrtj.cjs → span-payload-primitives-CbXrqcs-.cjs} +4 -4
  720. package/dist/{span-payload-primitives-fZJeJrtj.cjs.map → span-payload-primitives-CbXrqcs-.cjs.map} +1 -1
  721. package/dist/src/domains/chat/messages/skill-activation.d.ts +8 -0
  722. package/dist/src/domains/chat/messages/skill-message.d.ts +4 -0
  723. package/dist/src/domains/workflows/components/workflow-layout.d.ts +1 -1
  724. package/dist/src/ds/components/DataList/shared.d.ts +2 -2
  725. package/dist/src/ds/components/Entity/entity.stories.d.ts +0 -1
  726. package/dist/src/ds/primitives/form-element.d.ts +1 -0
  727. package/dist/src/ds/primitives/transitions.d.ts +3 -6
  728. package/dist/src/ds/tokens/color-foundations.stories.d.ts +5 -4
  729. package/dist/src/ds/tokens/colors.d.ts +62 -1
  730. package/dist/src/ds/tokens/foundations-layout.d.ts +0 -1
  731. package/dist/src/ds/tokens/shadows.d.ts +0 -1
  732. package/dist/style.css +255 -180
  733. package/dist/{switch-CE9jTpUG.js → switch-88fWFfVz.js} +4 -3
  734. package/dist/switch-88fWFfVz.js.map +1 -0
  735. package/dist/{switch-6125Oajw.cjs → switch-Swt75_Sb.cjs} +4 -3
  736. package/dist/switch-Swt75_Sb.cjs.map +1 -0
  737. package/dist/{tabs-content-CcZEEfTc.cjs → tabs-content-DQNRMjup.cjs} +3 -3
  738. package/dist/tabs-content-DQNRMjup.cjs.map +1 -0
  739. package/dist/{tabs-content-gq5tjHFE.js → tabs-content-h2qqD8t-.js} +3 -3
  740. package/dist/{tabs-content-gq5tjHFE.js.map → tabs-content-h2qqD8t-.js.map} +1 -1
  741. package/dist/{tabs-root-DnL_e3X4.js → tabs-root-4vL8SHCO.js} +2 -2
  742. package/dist/{tabs-root-DnL_e3X4.js.map → tabs-root-4vL8SHCO.js.map} +1 -1
  743. package/dist/{tabs-root-CSTdrTYo.cjs → tabs-root-BqC8X_h6.cjs} +2 -2
  744. package/dist/{tabs-root-CSTdrTYo.cjs.map → tabs-root-BqC8X_h6.cjs.map} +1 -1
  745. package/dist/{tabs-tab-Deu7thdb.js → tabs-tab-7e2as-AV.js} +3 -3
  746. package/dist/tabs-tab-7e2as-AV.js.map +1 -0
  747. package/dist/{tabs-tab-DjDhpEEE.cjs → tabs-tab-lm4xyjtD.cjs} +3 -3
  748. package/dist/tabs-tab-lm4xyjtD.cjs.map +1 -0
  749. package/dist/{thread-list-BNO_C73l.js → thread-list-DGI6M6if.js} +2 -2
  750. package/dist/{thread-list-BNO_C73l.js.map → thread-list-DGI6M6if.js.map} +1 -1
  751. package/dist/{thread-list-CSNdqkMI.cjs → thread-list-DwASH1Vl.cjs} +2 -2
  752. package/dist/{thread-list-CSNdqkMI.cjs.map → thread-list-DwASH1Vl.cjs.map} +1 -1
  753. package/dist/{time-picker-078hPxCJ.cjs → time-picker-C0DCPWpR.cjs} +2 -2
  754. package/dist/{time-picker-078hPxCJ.cjs.map → time-picker-C0DCPWpR.cjs.map} +1 -1
  755. package/dist/{time-picker-7gF4eQAt.js → time-picker-CfZbLgMm.js} +2 -2
  756. package/dist/{time-picker-7gF4eQAt.js.map → time-picker-CfZbLgMm.js.map} +1 -1
  757. package/dist/tokens.cjs.js +63 -3
  758. package/dist/tokens.cjs.js.map +1 -1
  759. package/dist/tokens.es.js +63 -3
  760. package/dist/tokens.es.js.map +1 -1
  761. package/dist/{tool-approval-CfRaygjH.cjs → tool-approval-BAER9nxR.cjs} +2 -2
  762. package/dist/{tool-approval-CfRaygjH.cjs.map → tool-approval-BAER9nxR.cjs.map} +1 -1
  763. package/dist/{tool-approval-BViVo54e.js → tool-approval-xZvYiuBP.js} +2 -2
  764. package/dist/{tool-approval-BViVo54e.js.map → tool-approval-xZvYiuBP.js.map} +1 -1
  765. package/dist/{tool-call-arguments-9A5bjnZf.js → tool-call-arguments-D7PMJ6vj.js} +3 -3
  766. package/dist/{tool-call-arguments-9A5bjnZf.js.map → tool-call-arguments-D7PMJ6vj.js.map} +1 -1
  767. package/dist/{tool-call-arguments-pnni11q2.cjs → tool-call-arguments-ynBfg2dY.cjs} +3 -3
  768. package/dist/{tool-call-arguments-pnni11q2.cjs.map → tool-call-arguments-ynBfg2dY.cjs.map} +1 -1
  769. package/dist/{tool-call-group-DABeZh1M.cjs → tool-call-group-9Dtupqev.cjs} +3 -3
  770. package/dist/{tool-call-group-DABeZh1M.cjs.map → tool-call-group-9Dtupqev.cjs.map} +1 -1
  771. package/dist/{tool-call-group-BWKy3t21.js → tool-call-group-DJX7eUYY.js} +3 -3
  772. package/dist/{tool-call-group-BWKy3t21.js.map → tool-call-group-DJX7eUYY.js.map} +1 -1
  773. package/dist/{tool-call-mono-B1cNPKRM.cjs → tool-call-mono-DFSfVZ6E.cjs} +2 -2
  774. package/dist/{tool-call-mono-B1cNPKRM.cjs.map → tool-call-mono-DFSfVZ6E.cjs.map} +1 -1
  775. package/dist/{tool-call-mono-BKfoVlPN.js → tool-call-mono-gKG9Ek1m.js} +2 -2
  776. package/dist/{tool-call-mono-BKfoVlPN.js.map → tool-call-mono-gKG9Ek1m.js.map} +1 -1
  777. package/dist/{tool-call-output-3Ro33hUN.js → tool-call-output-DEoCE_Xn.js} +2 -2
  778. package/dist/{tool-call-output-3Ro33hUN.js.map → tool-call-output-DEoCE_Xn.js.map} +1 -1
  779. package/dist/{tool-call-output-BR0HdX36.cjs → tool-call-output-Dl4sVfCy.cjs} +2 -2
  780. package/dist/{tool-call-output-BR0HdX36.cjs.map → tool-call-output-Dl4sVfCy.cjs.map} +1 -1
  781. package/dist/{tool-card-j5PjYYXG.js → tool-card-BA1YcDoS.js} +4 -4
  782. package/dist/{tool-card-j5PjYYXG.js.map → tool-card-BA1YcDoS.js.map} +1 -1
  783. package/dist/{tool-card-CeRXZ67P.cjs → tool-card-DRqhTx-u.cjs} +4 -4
  784. package/dist/{tool-card-CeRXZ67P.cjs.map → tool-card-DRqhTx-u.cjs.map} +1 -1
  785. package/dist/{traces-data-list-Cj8_iaST.cjs → traces-data-list-CU93pUfj.cjs} +4 -4
  786. package/dist/{traces-data-list-Cj8_iaST.cjs.map → traces-data-list-CU93pUfj.cjs.map} +1 -1
  787. package/dist/{traces-data-list-DcHBQtgZ.js → traces-data-list-DaedGcID.js} +4 -4
  788. package/dist/{traces-data-list-DcHBQtgZ.js.map → traces-data-list-DaedGcID.js.map} +1 -1
  789. package/dist/{use-workflow-graph-runtime-XFvrHY2_.cjs → use-workflow-graph-runtime-D0ODPlNB.cjs} +3 -3
  790. package/dist/{use-workflow-graph-runtime-XFvrHY2_.cjs.map → use-workflow-graph-runtime-D0ODPlNB.cjs.map} +1 -1
  791. package/dist/{use-workflow-graph-runtime-BImilvH3.js → use-workflow-graph-runtime-XL5zreeR.js} +3 -3
  792. package/dist/{use-workflow-graph-runtime-BImilvH3.js.map → use-workflow-graph-runtime-XL5zreeR.js.map} +1 -1
  793. package/dist/{workflow-code-dialog-content-BaUrjNPW.js → workflow-code-dialog-content-Iz2Omi1P.js} +3 -3
  794. package/dist/{workflow-code-dialog-content-BaUrjNPW.js.map → workflow-code-dialog-content-Iz2Omi1P.js.map} +1 -1
  795. package/dist/{workflow-code-dialog-content-BZMdjs9s.cjs → workflow-code-dialog-content-vLneZlMd.cjs} +3 -3
  796. package/dist/{workflow-code-dialog-content-BZMdjs9s.cjs.map → workflow-code-dialog-content-vLneZlMd.cjs.map} +1 -1
  797. package/dist/{workflow-condition-card-BOeOKZa6.js → workflow-condition-card-B0Va5Amx.js} +9 -9
  798. package/dist/workflow-condition-card-B0Va5Amx.js.map +1 -0
  799. package/dist/{workflow-condition-card-CWzCPzQe.cjs → workflow-condition-card-CfjhZb0m.cjs} +9 -9
  800. package/dist/workflow-condition-card-CfjhZb0m.cjs.map +1 -0
  801. package/dist/{workflow-data-edge-view-DoD6VDID.cjs → workflow-data-edge-view-DXeWURnc.cjs} +2 -2
  802. package/dist/{workflow-data-edge-view-DoD6VDID.cjs.map → workflow-data-edge-view-DXeWURnc.cjs.map} +1 -1
  803. package/dist/{workflow-data-edge-view-fX21CQmu.js → workflow-data-edge-view-o7akvbpB.js} +2 -2
  804. package/dist/{workflow-data-edge-view-fX21CQmu.js.map → workflow-data-edge-view-o7akvbpB.js.map} +1 -1
  805. package/dist/{workflow-debug-controls-CIplFeXE.cjs → workflow-debug-controls-Bcb4vcek.cjs} +2 -2
  806. package/dist/{workflow-debug-controls-CIplFeXE.cjs.map → workflow-debug-controls-Bcb4vcek.cjs.map} +1 -1
  807. package/dist/{workflow-debug-controls-7EfBAsMX.js → workflow-debug-controls-DULCFa4s.js} +2 -2
  808. package/dist/{workflow-debug-controls-7EfBAsMX.js.map → workflow-debug-controls-DULCFa4s.js.map} +1 -1
  809. package/dist/{workflow-edge-data-button-Cy3liOpU.js → workflow-edge-data-button-BuZzeN2n.js} +4 -4
  810. package/dist/{workflow-edge-data-button-Cy3liOpU.js.map → workflow-edge-data-button-BuZzeN2n.js.map} +1 -1
  811. package/dist/{workflow-edge-data-button-DU3WYDe9.cjs → workflow-edge-data-button-CX-eSbSB.cjs} +4 -4
  812. package/dist/{workflow-edge-data-button-DU3WYDe9.cjs.map → workflow-edge-data-button-CX-eSbSB.cjs.map} +1 -1
  813. package/dist/{workflow-step-action-BnDqOyJd.js → workflow-step-action-Cf_XmOwj.js} +2 -2
  814. package/dist/{workflow-step-action-BnDqOyJd.js.map → workflow-step-action-Cf_XmOwj.js.map} +1 -1
  815. package/dist/{workflow-step-action-CDt3pxg-.cjs → workflow-step-action-JMkWtObA.cjs} +2 -2
  816. package/dist/{workflow-step-action-CDt3pxg-.cjs.map → workflow-step-action-JMkWtObA.cjs.map} +1 -1
  817. package/package.json +9 -9
  818. package/theme/colors.css +112 -0
  819. package/theme/data-viz.css +7 -5
  820. package/theme/status.css +23 -2
  821. package/theme/surfaces.css +1 -11
  822. package/theme.css +1 -1
  823. package/dist/Button-CHTvSq4d.js.map +0 -1
  824. package/dist/Button-DbJn0bJX.cjs.map +0 -1
  825. package/dist/Card-BbwF20OW.cjs.map +0 -1
  826. package/dist/Card-DmT57Pve.js.map +0 -1
  827. package/dist/code-editor-8l_YoqYu.cjs.map +0 -1
  828. package/dist/code-editor-m5ktiTwB.js.map +0 -1
  829. package/dist/collapsible-BFSJouuI.cjs.map +0 -1
  830. package/dist/collapsible-DhhP5p1j.js.map +0 -1
  831. package/dist/data-code-section-D01ggJy6.js.map +0 -1
  832. package/dist/data-code-section-W_dIahDO.cjs.map +0 -1
  833. package/dist/data-list-spacer-Cukij8de.js.map +0 -1
  834. package/dist/data-list-spacer-D8zpJS7Z.cjs.map +0 -1
  835. package/dist/data-list-top-G11bdV77.js.map +0 -1
  836. package/dist/data-list-top-KKXNLoP6.cjs.map +0 -1
  837. package/dist/main-sidebar-link-active-DAiTpL8z.js.map +0 -1
  838. package/dist/main-sidebar-link-active-DIMZKeHX.cjs.map +0 -1
  839. package/dist/relative-timestamp-BzfR9tDU.cjs.map +0 -1
  840. package/dist/relative-timestamp-SPgcvfH6.js.map +0 -1
  841. package/dist/scroll-area-BE7FJqVA.cjs.map +0 -1
  842. package/dist/scroll-area-PxtGm4w9.js.map +0 -1
  843. package/dist/signals-empty-state.css +0 -54
  844. package/dist/switch-6125Oajw.cjs.map +0 -1
  845. package/dist/switch-CE9jTpUG.js.map +0 -1
  846. package/dist/tabs-content-CcZEEfTc.cjs.map +0 -1
  847. package/dist/tabs-tab-Deu7thdb.js.map +0 -1
  848. package/dist/tabs-tab-DjDhpEEE.cjs.map +0 -1
  849. package/dist/workflow-condition-card-BOeOKZa6.js.map +0 -1
  850. package/dist/workflow-condition-card-CWzCPzQe.cjs.map +0 -1
@@ -9,17 +9,17 @@ const React = require('react');
9
9
  const domains_chat_context_datasetSaveContextValue = require('../context/dataset-save-context-value.cjs.js');
10
10
  const domains_datasets_hooks_useDatasetMutations = require('../../datasets/hooks/use-dataset-mutations.cjs.js');
11
11
  const domains_datasets_hooks_useDatasets = require('../../datasets/hooks/use-datasets.cjs.js');
12
- const Button = require('../../../Button-DbJn0bJX.cjs');
13
- const codeEditor = require('../../../code-editor-8l_YoqYu.cjs');
12
+ const Button = require('../../../Button-BnmR2HRc.cjs');
13
+ const codeEditor = require('../../../code-editor-BXchPl_F.cjs');
14
14
  const label = require('../../../label-DfAhywj_.cjs');
15
- const select = require('../../../select-Y2dIzSBN.cjs');
15
+ const select = require('../../../select-C0ZGSJYa.cjs');
16
16
  const toast = require('../../../toast-nm-fM7BR.cjs');
17
- const dialog = require('../../../dialog-4KIPO71S.cjs');
17
+ const dialog = require('../../../dialog-DYpOpj9s.cjs');
18
18
  const spinner = require('../../../spinner-BCpN7LL9.cjs');
19
19
  const primitives_transitions = require('../../../primitives/transitions.cjs.js');
20
20
  const primitives_typography = require('../../../primitives/typography.cjs.js');
21
21
  const utils_cn = require('../../../cn-DG0X1KEP.cjs');
22
- const dialogAction = require('../../../dialog-action-C6yPBO21.cjs');
22
+ const dialogAction = require('../../../dialog-action-B3AHq7mU.cjs');
23
23
 
24
24
  function DatasetSaveDialog({
25
25
  open,
@@ -5,17 +5,17 @@ import { useState, useCallback, useEffect, useMemo } from 'react';
5
5
  import { useDatasetSaveContext } from '../context/dataset-save-context-value.es.js';
6
6
  import { useDatasetMutations } from '../../datasets/hooks/use-dataset-mutations.es.js';
7
7
  import { useDatasets } from '../../datasets/hooks/use-datasets.es.js';
8
- import { B as Button } from '../../../Button-CHTvSq4d.js';
9
- import { C as CodeEditor } from '../../../code-editor-m5ktiTwB.js';
8
+ import { B as Button } from '../../../Button-C6eUqcPI.js';
9
+ import { C as CodeEditor } from '../../../code-editor-Cltwid7c.js';
10
10
  import { L as Label } from '../../../label-Dxsz0dFs.js';
11
- import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-BH7BD11Z.js';
11
+ import { S as Select, d as SelectTrigger, e as SelectValue, a as SelectContent, c as SelectItem } from '../../../select-ch8imm15.js';
12
12
  import { t as toast } from '../../../toast-c5kCpyWt.js';
13
- import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody, f as DialogFooter, b as DialogCancel } from '../../../dialog-DjXC42Zn.js';
13
+ import { D as Dialog, d as DialogContent, g as DialogHeader, j as DialogTitle, e as DialogDescription, a as DialogBody, f as DialogFooter, b as DialogCancel } from '../../../dialog-cKzR2TXI.js';
14
14
  import { S as Spinner } from '../../../spinner-ylbE0TJA.js';
15
15
  import { controlStateColorTransition } from '../../../primitives/transitions.es.js';
16
16
  import { quietTextHover } from '../../../primitives/typography.es.js';
17
17
  import { c as cn } from '../../../cn-65Adrsfj.js';
18
- import { D as DialogAction } from '../../../dialog-action-DzTAl6AJ.js';
18
+ import { D as DialogAction } from '../../../dialog-action-BGmDoI5T.js';
19
19
 
20
20
  function DatasetSaveDialog({
21
21
  open,
@@ -7,7 +7,7 @@ const ui = require('@mastra/react/ui');
7
7
  const React = require('react');
8
8
  const domains_chat_context_chatContext = require('../context/chat-context.cjs.js');
9
9
  require('lucide-react');
10
- require('../../../Button-DbJn0bJX.cjs');
10
+ require('../../../Button-BnmR2HRc.cjs');
11
11
  const Txt = require('../../../Txt-DPmEpNbp.cjs');
12
12
  require('../context/tool-call-context.cjs.js');
13
13
  const domains_chat_messages_signalData = require('./signal-data.cjs.js');
@@ -22,17 +22,19 @@ const domains_chat_messages_renderers_reasoningPartRenderer = require('./rendere
22
22
  const domains_chat_messages_renderers_statusRenderers = require('./renderers/status-renderers.cjs.js');
23
23
  const domains_chat_messages_renderers_userFilePartRenderer = require('./renderers/user-file-part-renderer.cjs.js');
24
24
  const domains_chat_messages_renderers_userTextPartRenderer = require('./renderers/user-text-part-renderer.cjs.js');
25
+ const domains_chat_messages_skillActivation = require('./skill-activation.cjs.js');
26
+ const domains_chat_messages_skillMessage = require('./skill-message.cjs.js');
25
27
  const domains_chat_tools_toolCallEffects = require('../tools/tool-call-effects.cjs.js');
26
- const domains_chat_tools_badges_agentBadge = require('../../../tool-card-CeRXZ67P.cjs');
28
+ const domains_chat_tools_badges_agentBadge = require('../../../tool-card-DRqhTx-u.cjs');
27
29
  const domains_chat_tools_toolCardKind = require('../tools/tool-card-kind.cjs.js');
28
30
  const domains_chat_tools_toolGroups = require('../tools/tool-groups.cjs.js');
29
31
  const domains_mcps_hooks_useMcpAppTools = require('../../mcps/hooks/use-mcp-app-tools.cjs.js');
30
32
  const messageReveal = require('../../../message-reveal-Dbej4LJz.cjs');
31
- const toolCallGroup = require('../../../tool-call-group-DABeZh1M.cjs');
33
+ const toolCallGroup = require('../../../tool-call-group-9Dtupqev.cjs');
32
34
  const arrival = require('../../../arrival-BWQZUZFQ.cjs');
33
35
  const message = require('../../../message-C1c5oZE7.cjs');
34
- const messageCopyButton = require('../../../message-copy-button-D49yf_Fk.cjs');
35
- const Notice = require('../../../Notice-JX9yuy6r.cjs');
36
+ const messageCopyButton = require('../../../message-copy-button-ClJBX9qx.cjs');
37
+ const Notice = require('../../../Notice-CEBwitdf.cjs');
36
38
 
37
39
  const readField = (value, key) => domains_chat_messages_signalData.isRecord(value) ? value[key] : void 0;
38
40
  const getMessageDisplayRole = (message) => {
@@ -188,6 +190,21 @@ const MessageRow = React.memo(function MessageRow2({
188
190
  const shownMessage = revealing ? { ...dbMessage, content: { ...dbMessage.content, parts: shownParts } } : dbMessage;
189
191
  const displayRole = dbMessage.role;
190
192
  if (displayRole === "user") {
193
+ const soleText = parts.length === 1 && parts[0]?.type === "text" ? readField(parts[0], "text") : void 0;
194
+ const skillActivation = typeof soleText === "string" ? domains_chat_messages_skillActivation.parseSkillActivation(soleText) : void 0;
195
+ if (skillActivation) {
196
+ return /* @__PURE__ */ jsxRuntime.jsx(
197
+ message.Message,
198
+ {
199
+ ...rootProps,
200
+ from: "assistant",
201
+ className,
202
+ "data-message-id": message$1.id,
203
+ footer: footer && /* @__PURE__ */ jsxRuntime.jsx(message.MessageActions, { visibility: readOnly ? "hover" : "always", children: footer }),
204
+ children: /* @__PURE__ */ jsxRuntime.jsx(domains_chat_messages_skillMessage.SkillMessage, { activation: skillActivation })
205
+ }
206
+ );
207
+ }
191
208
  const isPending = isPendingMessage(message$1);
192
209
  const text = getTextFromParts(message$1);
193
210
  const canCopy = text.trim().length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"message-row.cjs.js","sources":["../../../../src/domains/chat/messages/message-row.tsx"],"sourcesContent":["import type { MastraDBMessage, MastraErrorPart } from '@mastra/core/agent/message-list';\nimport { MessageFactory } from '@mastra/react/ui';\nimport type { MessageRenderers } from '@mastra/react/ui';\nimport { memo, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { AssistantMessageActions, DatasetSaveAction } from '@/domains/chat';\nimport { ChatRunningContext, useChatRunning } from '@/domains/chat/context/chat-context';\nimport { AssistantTextPartRenderer } from '@/domains/chat/messages/renderers/assistant-text-part-renderer';\nimport { DataPartRenderer } from '@/domains/chat/messages/renderers/data-part-renderer';\nimport { messageTextKind } from '@/domains/chat/messages/renderers/message-text-kind';\nimport { ReasoningPartRenderer } from '@/domains/chat/messages/renderers/reasoning-part-renderer';\nimport { messageStatusRenderers } from '@/domains/chat/messages/renderers/status-renderers';\nimport { readToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport type { ToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport { UserFilePartRenderer } from '@/domains/chat/messages/renderers/user-file-part-renderer';\nimport { UserTextPartRenderer } from '@/domains/chat/messages/renderers/user-text-part-renderer';\nimport {\n getSignalType,\n isRecord,\n isSignalData,\n isUserSignalType,\n toReactiveSignalData,\n} from '@/domains/chat/messages/signal-data';\nimport { ToolCallEffects } from '@/domains/chat/tools/tool-call-effects';\nimport { ToolCard } from '@/domains/chat/tools/tool-card';\nimport type { DataMessagePart } from '@/domains/chat/tools/tool-card';\nimport { badgeStatus, isSettledState } from '@/domains/chat/tools/tool-card-kind';\nimport type { ToolCardContext } from '@/domains/chat/tools/tool-card-kind';\nimport { collectToolGroups } from '@/domains/chat/tools/tool-groups';\nimport { useMcpAppTools } from '@/domains/mcps/hooks/use-mcp-app-tools';\nimport { useRevealedParts } from '@/ds/components/ai/message-reveal';\nimport { ToolCallGroup } from '@/ds/components/ai/tool-call';\nimport { Arriving } from '@/ds/components/Arrival';\nimport { Message, MessageActions, MessageCopyButton } from '@/ds/components/Message';\nimport { Notice } from '@/ds/components/Notice';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface MessageRowProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n message: MastraDBMessage;\n hasModelList?: boolean;\n isSpeaking?: boolean;\n onReadAloud?: (text: string) => void;\n onStopSpeaking?: () => void;\n readOnly?: boolean;\n footer?: ReactNode;\n}\n\ntype MessagePart = MastraDBMessage['content']['parts'][number];\n\nconst readField = (value: unknown, key: string): unknown => (isRecord(value) ? value[key] : undefined);\n\nconst getMessageDisplayRole = (message: MastraDBMessage): MastraDBMessage['role'] | null => {\n if (message.role === 'assistant' || message.role === 'user' || message.role === 'system') return message.role;\n if (message.role === 'signal') return isUserSignalType(getSignalType(message)) ? 'user' : 'assistant';\n return null;\n};\n\nconst toReactiveSignalMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const data = toReactiveSignalData(message);\n if (!isSignalData(data)) return null;\n const parts: MastraDBMessage['content']['parts'] = [{ type: 'data-signal', data }];\n return {\n ...message,\n role: 'assistant',\n content: { ...message.content, parts },\n };\n};\n\nconst toDisplayMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const displayRole = getMessageDisplayRole(message);\n if (displayRole === null) return null;\n if (message.role === 'signal' && displayRole === 'assistant') return toReactiveSignalMessage(message);\n if (displayRole === message.role) return message;\n return { ...message, role: displayRole };\n};\n\nconst NO_PARTS: MessagePart[] = [];\n\nconst isStreaming = (parts: MessagePart[]): boolean => parts.some(part => readField(part, 'state') === 'streaming');\n\nconst isProse = (parts: MessagePart[], metadata: Record<string, unknown> | undefined): boolean =>\n parts.every(part => {\n if (part.type !== 'text') return true;\n const text = readField(part, 'text');\n return typeof text !== 'string' || messageTextKind(text, metadata) === 'prose';\n });\n\nconst getMessageMetadata = (message: MastraDBMessage): Record<string, unknown> | undefined =>\n isRecord(message.content.metadata) ? message.content.metadata : undefined;\n\nconst getDataParts = (message: MastraDBMessage): DataMessagePart[] =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: string }> =>\n typeof part.type === 'string' && part.type.startsWith('data-'),\n )\n .map(part => ({\n type: part.type,\n name: 'name' in part && typeof part.name === 'string' ? part.name : undefined,\n data: readField(part, 'data'),\n }));\n\nconst getTextFromParts = (message: MastraDBMessage): string =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: 'text'; text: string }> =>\n part.type === 'text' && typeof readField(part, 'text') === 'string',\n )\n .map(part => part.text)\n .join('\\n');\n\nconst hasVisibleAssistantText = (message: MastraDBMessage, metadata: Record<string, unknown> | undefined): boolean =>\n message.content.parts.some(part => {\n if (part.type !== 'text') return false;\n const text = readField(part, 'text');\n if (typeof text !== 'string' || text.trim().length === 0) return false;\n if (readField(metadata, 'completionResult') || readField(metadata, 'isTaskCompleteResult')) return false;\n return true;\n });\n\nconst getModelMetadata = (metadata: Record<string, unknown> | undefined) => {\n const custom = readField(metadata, 'custom');\n const modelMetadata = readField(custom, 'modelMetadata');\n const modelId = readField(modelMetadata, 'modelId');\n const modelProvider = readField(modelMetadata, 'modelProvider');\n if (typeof modelId !== 'string' || typeof modelProvider !== 'string') return undefined;\n return { modelId, modelProvider };\n};\n\nconst isPendingMessage = (message: MastraDBMessage): boolean => {\n if (message.content.metadata?.status === 'pending') return true;\n return message.content.parts.some(part => readField(readField(part, 'metadata'), 'status') === 'pending');\n};\nexport const MessageRow = memo(function MessageRow({\n message,\n hasModelList,\n isSpeaking,\n onReadAloud,\n onStopSpeaking,\n readOnly,\n footer,\n className,\n ...rootProps\n}: MessageRowProps) {\n const dbMessage = toDisplayMessage(message);\n const metadata = getMessageMetadata(message);\n const modelMetadata = hasModelList ? getModelMetadata(metadata) : undefined;\n const dataParts = useMemo(() => getDataParts(message), [message]);\n const running = useChatRunning();\n const isRunning = running.isRunning && running.activeRunId !== undefined && metadata?.runId === running.activeRunId;\n const { data: mcpAppTools } = useMcpAppTools();\n const parts = dbMessage?.content.parts ?? NO_PARTS;\n const revealed = useRevealedParts(parts, isStreaming(parts));\n const shownParts = isProse(parts, metadata) ? revealed : parts;\n const revealing = shownParts !== parts;\n\n const toolContext = useMemo<ToolCardContext>(() => ({ metadata, mcpAppTools }), [metadata, mcpAppTools]);\n const toolGroups = useMemo(() => collectToolGroups(shownParts, toolContext), [shownParts, toolContext]);\n\n const sharedRenderers = useMemo<MessageRenderers>(() => {\n const renderTool = (part: ToolPart) => {\n const fields = readToolPart(part);\n const group = toolGroups.byFirstKey.get(fields.toolCallId);\n if (group) {\n const members = group.map(readToolPart);\n return (\n <>\n {members.map(member => (\n <ToolCallEffects key={member.toolCallId} {...member} readOnly={readOnly} />\n ))}\n <Arriving>\n <ToolCallGroup\n steps={members.map(member => ({\n toolName: member.toolName,\n args: member.input,\n status: badgeStatus(member.state, isRunning),\n hasResult: isSettledState(member.state),\n }))}\n >\n {members.map(member => {\n const incomplete = !isRunning && !isSettledState(member.state) && member.state !== 'output-error';\n return (\n <div\n key={member.toolCallId}\n role=\"group\"\n aria-label={member.toolName}\n className=\"flex items-start gap-2\"\n >\n <div className=\"min-w-0 flex-1\">\n <ToolCard {...member} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </div>\n {incomplete && (\n <Txt as=\"span\" variant=\"meta\" className=\"mt-1 shrink-0\">\n Incomplete\n </Txt>\n )}\n </div>\n );\n })}\n </ToolCallGroup>\n </Arriving>\n </>\n );\n }\n if (toolGroups.memberKeys.has(fields.toolCallId)) return null;\n return (\n <>\n <ToolCallEffects {...fields} readOnly={readOnly} />\n <Arriving>\n <ToolCard {...fields} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </Arriving>\n </>\n );\n };\n return {\n Reasoning: part => <ReasoningPartRenderer part={part} />,\n Data: part => (\n <Arriving>\n <DataPartRenderer part={part} />\n </Arriving>\n ),\n ToolInvocation: renderTool,\n DynamicTool: renderTool,\n Error: (part: MastraErrorPart) => (\n <Notice variant=\"destructive\" title={part.error.name ?? 'Error'}>\n <Notice.Message>{part.error.message}</Notice.Message>\n </Notice>\n ),\n };\n }, [metadata, dataParts, readOnly, toolGroups, isRunning]);\n\n const userRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <UserTextPartRenderer part={part} metadata={metadata} />,\n File: part => <UserFilePartRenderer part={part} />,\n }),\n [sharedRenderers, metadata],\n );\n\n const assistantRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <AssistantTextPartRenderer part={part} metadata={metadata} revealing={revealing} />,\n }),\n [sharedRenderers, metadata, revealing],\n );\n\n if (dbMessage === null) return null;\n const shownMessage = revealing ? { ...dbMessage, content: { ...dbMessage.content, parts: shownParts } } : dbMessage;\n const displayRole = dbMessage.role;\n\n if (displayRole === 'user') {\n const isPending = isPendingMessage(message);\n const text = getTextFromParts(message);\n const canCopy = text.trim().length > 0;\n\n return (\n <Message\n {...rootProps}\n from=\"user\"\n className={className}\n data-message-id={message.id}\n pending={isPending}\n footer={\n <MessageActions>\n {canCopy && <MessageCopyButton text={text} />}\n <DatasetSaveAction messageText={text} />\n {footer}\n </MessageActions>\n }\n >\n <MessageFactory message={shownMessage} {...userRenderers} status={messageStatusRenderers} />\n </Message>\n );\n }\n\n const showActionBar = hasVisibleAssistantText(message, metadata);\n\n return (\n <Message\n {...rootProps}\n from=\"assistant\"\n className={className}\n data-message-id={message.id}\n footer={\n (showActionBar || footer) && (\n <MessageActions visibility={readOnly ? 'hover' : 'always'}>\n {showActionBar && (\n <AssistantMessageActions\n text={getTextFromParts(message)}\n modelMetadata={modelMetadata}\n isSpeaking={isSpeaking}\n onReadAloud={onReadAloud}\n onStopSpeaking={onStopSpeaking}\n />\n )}\n {footer && <MessageActions>{footer}</MessageActions>}\n </MessageActions>\n )\n }\n >\n <ChatRunningContext.Provider value={{ ...running, isRunning }}>\n <MessageFactory message={shownMessage} {...assistantRenderers} status={messageStatusRenderers} />\n </ChatRunningContext.Provider>\n </Message>\n );\n});\n"],"names":["isRecord","isUserSignalType","getSignalType","toReactiveSignalData","isSignalData","messageTextKind","memo","MessageRow","message","useMemo","useChatRunning","useMcpAppTools","useRevealedParts","collectToolGroups","readToolPart","jsxs","Fragment","jsx","ToolCallEffects","Arriving","ToolCallGroup","badgeStatus","isSettledState","ToolCard","Txt","ReasoningPartRenderer","DataPartRenderer","Notice","UserTextPartRenderer","UserFilePartRenderer","AssistantTextPartRenderer","Message","MessageActions","MessageCopyButton","DatasetSaveAction","MessageFactory","messageStatusRenderers","AssistantMessageActions","ChatRunningContext"],"mappings":"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"}
1
+ {"version":3,"file":"message-row.cjs.js","sources":["../../../../src/domains/chat/messages/message-row.tsx"],"sourcesContent":["import type { MastraDBMessage, MastraErrorPart } from '@mastra/core/agent/message-list';\nimport { MessageFactory } from '@mastra/react/ui';\nimport type { MessageRenderers } from '@mastra/react/ui';\nimport { memo, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { AssistantMessageActions, DatasetSaveAction } from '@/domains/chat';\nimport { ChatRunningContext, useChatRunning } from '@/domains/chat/context/chat-context';\nimport { AssistantTextPartRenderer } from '@/domains/chat/messages/renderers/assistant-text-part-renderer';\nimport { DataPartRenderer } from '@/domains/chat/messages/renderers/data-part-renderer';\nimport { messageTextKind } from '@/domains/chat/messages/renderers/message-text-kind';\nimport { ReasoningPartRenderer } from '@/domains/chat/messages/renderers/reasoning-part-renderer';\nimport { messageStatusRenderers } from '@/domains/chat/messages/renderers/status-renderers';\nimport { readToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport type { ToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport { UserFilePartRenderer } from '@/domains/chat/messages/renderers/user-file-part-renderer';\nimport { UserTextPartRenderer } from '@/domains/chat/messages/renderers/user-text-part-renderer';\nimport {\n getSignalType,\n isRecord,\n isSignalData,\n isUserSignalType,\n toReactiveSignalData,\n} from '@/domains/chat/messages/signal-data';\nimport { parseSkillActivation } from '@/domains/chat/messages/skill-activation';\nimport { SkillMessage } from '@/domains/chat/messages/skill-message';\nimport { ToolCallEffects } from '@/domains/chat/tools/tool-call-effects';\nimport { ToolCard } from '@/domains/chat/tools/tool-card';\nimport type { DataMessagePart } from '@/domains/chat/tools/tool-card';\nimport { badgeStatus, isSettledState } from '@/domains/chat/tools/tool-card-kind';\nimport type { ToolCardContext } from '@/domains/chat/tools/tool-card-kind';\nimport { collectToolGroups } from '@/domains/chat/tools/tool-groups';\nimport { useMcpAppTools } from '@/domains/mcps/hooks/use-mcp-app-tools';\nimport { useRevealedParts } from '@/ds/components/ai/message-reveal';\nimport { ToolCallGroup } from '@/ds/components/ai/tool-call';\nimport { Arriving } from '@/ds/components/Arrival';\nimport { Message, MessageActions, MessageCopyButton } from '@/ds/components/Message';\nimport { Notice } from '@/ds/components/Notice';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface MessageRowProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n message: MastraDBMessage;\n hasModelList?: boolean;\n isSpeaking?: boolean;\n onReadAloud?: (text: string) => void;\n onStopSpeaking?: () => void;\n readOnly?: boolean;\n footer?: ReactNode;\n}\n\ntype MessagePart = MastraDBMessage['content']['parts'][number];\n\nconst readField = (value: unknown, key: string): unknown => (isRecord(value) ? value[key] : undefined);\n\nconst getMessageDisplayRole = (message: MastraDBMessage): MastraDBMessage['role'] | null => {\n if (message.role === 'assistant' || message.role === 'user' || message.role === 'system') return message.role;\n if (message.role === 'signal') return isUserSignalType(getSignalType(message)) ? 'user' : 'assistant';\n return null;\n};\n\nconst toReactiveSignalMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const data = toReactiveSignalData(message);\n if (!isSignalData(data)) return null;\n const parts: MastraDBMessage['content']['parts'] = [{ type: 'data-signal', data }];\n return {\n ...message,\n role: 'assistant',\n content: { ...message.content, parts },\n };\n};\n\nconst toDisplayMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const displayRole = getMessageDisplayRole(message);\n if (displayRole === null) return null;\n if (message.role === 'signal' && displayRole === 'assistant') return toReactiveSignalMessage(message);\n if (displayRole === message.role) return message;\n return { ...message, role: displayRole };\n};\n\nconst NO_PARTS: MessagePart[] = [];\n\nconst isStreaming = (parts: MessagePart[]): boolean => parts.some(part => readField(part, 'state') === 'streaming');\n\nconst isProse = (parts: MessagePart[], metadata: Record<string, unknown> | undefined): boolean =>\n parts.every(part => {\n if (part.type !== 'text') return true;\n const text = readField(part, 'text');\n return typeof text !== 'string' || messageTextKind(text, metadata) === 'prose';\n });\n\nconst getMessageMetadata = (message: MastraDBMessage): Record<string, unknown> | undefined =>\n isRecord(message.content.metadata) ? message.content.metadata : undefined;\n\nconst getDataParts = (message: MastraDBMessage): DataMessagePart[] =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: string }> =>\n typeof part.type === 'string' && part.type.startsWith('data-'),\n )\n .map(part => ({\n type: part.type,\n name: 'name' in part && typeof part.name === 'string' ? part.name : undefined,\n data: readField(part, 'data'),\n }));\n\nconst getTextFromParts = (message: MastraDBMessage): string =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: 'text'; text: string }> =>\n part.type === 'text' && typeof readField(part, 'text') === 'string',\n )\n .map(part => part.text)\n .join('\\n');\n\nconst hasVisibleAssistantText = (message: MastraDBMessage, metadata: Record<string, unknown> | undefined): boolean =>\n message.content.parts.some(part => {\n if (part.type !== 'text') return false;\n const text = readField(part, 'text');\n if (typeof text !== 'string' || text.trim().length === 0) return false;\n if (readField(metadata, 'completionResult') || readField(metadata, 'isTaskCompleteResult')) return false;\n return true;\n });\n\nconst getModelMetadata = (metadata: Record<string, unknown> | undefined) => {\n const custom = readField(metadata, 'custom');\n const modelMetadata = readField(custom, 'modelMetadata');\n const modelId = readField(modelMetadata, 'modelId');\n const modelProvider = readField(modelMetadata, 'modelProvider');\n if (typeof modelId !== 'string' || typeof modelProvider !== 'string') return undefined;\n return { modelId, modelProvider };\n};\n\nconst isPendingMessage = (message: MastraDBMessage): boolean => {\n if (message.content.metadata?.status === 'pending') return true;\n return message.content.parts.some(part => readField(readField(part, 'metadata'), 'status') === 'pending');\n};\nexport const MessageRow = memo(function MessageRow({\n message,\n hasModelList,\n isSpeaking,\n onReadAloud,\n onStopSpeaking,\n readOnly,\n footer,\n className,\n ...rootProps\n}: MessageRowProps) {\n const dbMessage = toDisplayMessage(message);\n const metadata = getMessageMetadata(message);\n const modelMetadata = hasModelList ? getModelMetadata(metadata) : undefined;\n const dataParts = useMemo(() => getDataParts(message), [message]);\n const running = useChatRunning();\n const isRunning = running.isRunning && running.activeRunId !== undefined && metadata?.runId === running.activeRunId;\n const { data: mcpAppTools } = useMcpAppTools();\n const parts = dbMessage?.content.parts ?? NO_PARTS;\n const revealed = useRevealedParts(parts, isStreaming(parts));\n const shownParts = isProse(parts, metadata) ? revealed : parts;\n const revealing = shownParts !== parts;\n\n const toolContext = useMemo<ToolCardContext>(() => ({ metadata, mcpAppTools }), [metadata, mcpAppTools]);\n const toolGroups = useMemo(() => collectToolGroups(shownParts, toolContext), [shownParts, toolContext]);\n\n const sharedRenderers = useMemo<MessageRenderers>(() => {\n const renderTool = (part: ToolPart) => {\n const fields = readToolPart(part);\n const group = toolGroups.byFirstKey.get(fields.toolCallId);\n if (group) {\n const members = group.map(readToolPart);\n return (\n <>\n {members.map(member => (\n <ToolCallEffects key={member.toolCallId} {...member} readOnly={readOnly} />\n ))}\n <Arriving>\n <ToolCallGroup\n steps={members.map(member => ({\n toolName: member.toolName,\n args: member.input,\n status: badgeStatus(member.state, isRunning),\n hasResult: isSettledState(member.state),\n }))}\n >\n {members.map(member => {\n const incomplete = !isRunning && !isSettledState(member.state) && member.state !== 'output-error';\n return (\n <div\n key={member.toolCallId}\n role=\"group\"\n aria-label={member.toolName}\n className=\"flex items-start gap-2\"\n >\n <div className=\"min-w-0 flex-1\">\n <ToolCard {...member} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </div>\n {incomplete && (\n <Txt as=\"span\" variant=\"meta\" className=\"mt-1 shrink-0\">\n Incomplete\n </Txt>\n )}\n </div>\n );\n })}\n </ToolCallGroup>\n </Arriving>\n </>\n );\n }\n if (toolGroups.memberKeys.has(fields.toolCallId)) return null;\n return (\n <>\n <ToolCallEffects {...fields} readOnly={readOnly} />\n <Arriving>\n <ToolCard {...fields} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </Arriving>\n </>\n );\n };\n return {\n Reasoning: part => <ReasoningPartRenderer part={part} />,\n Data: part => (\n <Arriving>\n <DataPartRenderer part={part} />\n </Arriving>\n ),\n ToolInvocation: renderTool,\n DynamicTool: renderTool,\n Error: (part: MastraErrorPart) => (\n <Notice variant=\"destructive\" title={part.error.name ?? 'Error'}>\n <Notice.Message>{part.error.message}</Notice.Message>\n </Notice>\n ),\n };\n }, [metadata, dataParts, readOnly, toolGroups, isRunning]);\n\n const userRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <UserTextPartRenderer part={part} metadata={metadata} />,\n File: part => <UserFilePartRenderer part={part} />,\n }),\n [sharedRenderers, metadata],\n );\n\n const assistantRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <AssistantTextPartRenderer part={part} metadata={metadata} revealing={revealing} />,\n }),\n [sharedRenderers, metadata, revealing],\n );\n\n if (dbMessage === null) return null;\n const shownMessage = revealing ? { ...dbMessage, content: { ...dbMessage.content, parts: shownParts } } : dbMessage;\n const displayRole = dbMessage.role;\n\n if (displayRole === 'user') {\n const soleText = parts.length === 1 && parts[0]?.type === 'text' ? readField(parts[0], 'text') : undefined;\n const skillActivation = typeof soleText === 'string' ? parseSkillActivation(soleText) : undefined;\n if (skillActivation) {\n return (\n <Message\n {...rootProps}\n from=\"assistant\"\n className={className}\n data-message-id={message.id}\n footer={footer && <MessageActions visibility={readOnly ? 'hover' : 'always'}>{footer}</MessageActions>}\n >\n <SkillMessage activation={skillActivation} />\n </Message>\n );\n }\n\n const isPending = isPendingMessage(message);\n const text = getTextFromParts(message);\n const canCopy = text.trim().length > 0;\n\n return (\n <Message\n {...rootProps}\n from=\"user\"\n className={className}\n data-message-id={message.id}\n pending={isPending}\n footer={\n <MessageActions>\n {canCopy && <MessageCopyButton text={text} />}\n <DatasetSaveAction messageText={text} />\n {footer}\n </MessageActions>\n }\n >\n <MessageFactory message={shownMessage} {...userRenderers} status={messageStatusRenderers} />\n </Message>\n );\n }\n\n const showActionBar = hasVisibleAssistantText(message, metadata);\n\n return (\n <Message\n {...rootProps}\n from=\"assistant\"\n className={className}\n data-message-id={message.id}\n footer={\n (showActionBar || footer) && (\n <MessageActions visibility={readOnly ? 'hover' : 'always'}>\n {showActionBar && (\n <AssistantMessageActions\n text={getTextFromParts(message)}\n modelMetadata={modelMetadata}\n isSpeaking={isSpeaking}\n onReadAloud={onReadAloud}\n onStopSpeaking={onStopSpeaking}\n />\n )}\n {footer && <MessageActions>{footer}</MessageActions>}\n </MessageActions>\n )\n }\n >\n <ChatRunningContext.Provider value={{ ...running, isRunning }}>\n <MessageFactory message={shownMessage} {...assistantRenderers} status={messageStatusRenderers} />\n </ChatRunningContext.Provider>\n </Message>\n );\n});\n"],"names":["isRecord","isUserSignalType","getSignalType","toReactiveSignalData","isSignalData","messageTextKind","memo","MessageRow","message","useMemo","useChatRunning","useMcpAppTools","useRevealedParts","collectToolGroups","readToolPart","jsxs","Fragment","jsx","ToolCallEffects","Arriving","ToolCallGroup","badgeStatus","isSettledState","ToolCard","Txt","ReasoningPartRenderer","DataPartRenderer","Notice","UserTextPartRenderer","UserFilePartRenderer","AssistantTextPartRenderer","parseSkillActivation","Message","MessageActions","SkillMessage","MessageCopyButton","DatasetSaveAction","MessageFactory","messageStatusRenderers","AssistantMessageActions","ChatRunningContext"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { MessageFactory } from '@mastra/react/ui';
3
3
  import { memo, useMemo } from 'react';
4
4
  import { useChatRunning, ChatRunningContext } from '../context/chat-context.es.js';
5
5
  import 'lucide-react';
6
- import '../../../Button-CHTvSq4d.js';
6
+ import '../../../Button-C6eUqcPI.js';
7
7
  import { T as Txt } from '../../../Txt-BP1SRHmL.js';
8
8
  import '../context/tool-call-context.es.js';
9
9
  import { isRecord, isUserSignalType, getSignalType, toReactiveSignalData, isSignalData } from './signal-data.es.js';
@@ -18,17 +18,19 @@ import { ReasoningPartRenderer } from './renderers/reasoning-part-renderer.es.js
18
18
  import { messageStatusRenderers } from './renderers/status-renderers.es.js';
19
19
  import { UserFilePartRenderer } from './renderers/user-file-part-renderer.es.js';
20
20
  import { UserTextPartRenderer } from './renderers/user-text-part-renderer.es.js';
21
+ import { parseSkillActivation } from './skill-activation.es.js';
22
+ import { SkillMessage } from './skill-message.es.js';
21
23
  import { ToolCallEffects } from '../tools/tool-call-effects.es.js';
22
- import { T as ToolCard } from '../../../tool-card-j5PjYYXG.js';
24
+ import { T as ToolCard } from '../../../tool-card-BA1YcDoS.js';
23
25
  import { isSettledState, badgeStatus } from '../tools/tool-card-kind.es.js';
24
26
  import { collectToolGroups } from '../tools/tool-groups.es.js';
25
27
  import { useMcpAppTools } from '../../mcps/hooks/use-mcp-app-tools.es.js';
26
28
  import { u as useRevealedParts } from '../../../message-reveal-B3LLhUvk.js';
27
- import { T as ToolCallGroup } from '../../../tool-call-group-BWKy3t21.js';
29
+ import { T as ToolCallGroup } from '../../../tool-call-group-DJX7eUYY.js';
28
30
  import { a as Arriving } from '../../../arrival-C4frvrgG.js';
29
31
  import { a as Message, b as MessageActions } from '../../../message-C7hocqft.js';
30
- import { M as MessageCopyButton } from '../../../message-copy-button-iMfO-J5M.js';
31
- import { N as Notice } from '../../../Notice-b3XjkEVP.js';
32
+ import { M as MessageCopyButton } from '../../../message-copy-button-DP3U-xA-.js';
33
+ import { N as Notice } from '../../../Notice-Ce3r5x-7.js';
32
34
 
33
35
  const readField = (value, key) => isRecord(value) ? value[key] : void 0;
34
36
  const getMessageDisplayRole = (message) => {
@@ -184,6 +186,21 @@ const MessageRow = memo(function MessageRow2({
184
186
  const shownMessage = revealing ? { ...dbMessage, content: { ...dbMessage.content, parts: shownParts } } : dbMessage;
185
187
  const displayRole = dbMessage.role;
186
188
  if (displayRole === "user") {
189
+ const soleText = parts.length === 1 && parts[0]?.type === "text" ? readField(parts[0], "text") : void 0;
190
+ const skillActivation = typeof soleText === "string" ? parseSkillActivation(soleText) : void 0;
191
+ if (skillActivation) {
192
+ return /* @__PURE__ */ jsx(
193
+ Message,
194
+ {
195
+ ...rootProps,
196
+ from: "assistant",
197
+ className,
198
+ "data-message-id": message.id,
199
+ footer: footer && /* @__PURE__ */ jsx(MessageActions, { visibility: readOnly ? "hover" : "always", children: footer }),
200
+ children: /* @__PURE__ */ jsx(SkillMessage, { activation: skillActivation })
201
+ }
202
+ );
203
+ }
187
204
  const isPending = isPendingMessage(message);
188
205
  const text = getTextFromParts(message);
189
206
  const canCopy = text.trim().length > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"message-row.es.js","sources":["../../../../src/domains/chat/messages/message-row.tsx"],"sourcesContent":["import type { MastraDBMessage, MastraErrorPart } from '@mastra/core/agent/message-list';\nimport { MessageFactory } from '@mastra/react/ui';\nimport type { MessageRenderers } from '@mastra/react/ui';\nimport { memo, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { AssistantMessageActions, DatasetSaveAction } from '@/domains/chat';\nimport { ChatRunningContext, useChatRunning } from '@/domains/chat/context/chat-context';\nimport { AssistantTextPartRenderer } from '@/domains/chat/messages/renderers/assistant-text-part-renderer';\nimport { DataPartRenderer } from '@/domains/chat/messages/renderers/data-part-renderer';\nimport { messageTextKind } from '@/domains/chat/messages/renderers/message-text-kind';\nimport { ReasoningPartRenderer } from '@/domains/chat/messages/renderers/reasoning-part-renderer';\nimport { messageStatusRenderers } from '@/domains/chat/messages/renderers/status-renderers';\nimport { readToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport type { ToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport { UserFilePartRenderer } from '@/domains/chat/messages/renderers/user-file-part-renderer';\nimport { UserTextPartRenderer } from '@/domains/chat/messages/renderers/user-text-part-renderer';\nimport {\n getSignalType,\n isRecord,\n isSignalData,\n isUserSignalType,\n toReactiveSignalData,\n} from '@/domains/chat/messages/signal-data';\nimport { ToolCallEffects } from '@/domains/chat/tools/tool-call-effects';\nimport { ToolCard } from '@/domains/chat/tools/tool-card';\nimport type { DataMessagePart } from '@/domains/chat/tools/tool-card';\nimport { badgeStatus, isSettledState } from '@/domains/chat/tools/tool-card-kind';\nimport type { ToolCardContext } from '@/domains/chat/tools/tool-card-kind';\nimport { collectToolGroups } from '@/domains/chat/tools/tool-groups';\nimport { useMcpAppTools } from '@/domains/mcps/hooks/use-mcp-app-tools';\nimport { useRevealedParts } from '@/ds/components/ai/message-reveal';\nimport { ToolCallGroup } from '@/ds/components/ai/tool-call';\nimport { Arriving } from '@/ds/components/Arrival';\nimport { Message, MessageActions, MessageCopyButton } from '@/ds/components/Message';\nimport { Notice } from '@/ds/components/Notice';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface MessageRowProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n message: MastraDBMessage;\n hasModelList?: boolean;\n isSpeaking?: boolean;\n onReadAloud?: (text: string) => void;\n onStopSpeaking?: () => void;\n readOnly?: boolean;\n footer?: ReactNode;\n}\n\ntype MessagePart = MastraDBMessage['content']['parts'][number];\n\nconst readField = (value: unknown, key: string): unknown => (isRecord(value) ? value[key] : undefined);\n\nconst getMessageDisplayRole = (message: MastraDBMessage): MastraDBMessage['role'] | null => {\n if (message.role === 'assistant' || message.role === 'user' || message.role === 'system') return message.role;\n if (message.role === 'signal') return isUserSignalType(getSignalType(message)) ? 'user' : 'assistant';\n return null;\n};\n\nconst toReactiveSignalMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const data = toReactiveSignalData(message);\n if (!isSignalData(data)) return null;\n const parts: MastraDBMessage['content']['parts'] = [{ type: 'data-signal', data }];\n return {\n ...message,\n role: 'assistant',\n content: { ...message.content, parts },\n };\n};\n\nconst toDisplayMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const displayRole = getMessageDisplayRole(message);\n if (displayRole === null) return null;\n if (message.role === 'signal' && displayRole === 'assistant') return toReactiveSignalMessage(message);\n if (displayRole === message.role) return message;\n return { ...message, role: displayRole };\n};\n\nconst NO_PARTS: MessagePart[] = [];\n\nconst isStreaming = (parts: MessagePart[]): boolean => parts.some(part => readField(part, 'state') === 'streaming');\n\nconst isProse = (parts: MessagePart[], metadata: Record<string, unknown> | undefined): boolean =>\n parts.every(part => {\n if (part.type !== 'text') return true;\n const text = readField(part, 'text');\n return typeof text !== 'string' || messageTextKind(text, metadata) === 'prose';\n });\n\nconst getMessageMetadata = (message: MastraDBMessage): Record<string, unknown> | undefined =>\n isRecord(message.content.metadata) ? message.content.metadata : undefined;\n\nconst getDataParts = (message: MastraDBMessage): DataMessagePart[] =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: string }> =>\n typeof part.type === 'string' && part.type.startsWith('data-'),\n )\n .map(part => ({\n type: part.type,\n name: 'name' in part && typeof part.name === 'string' ? part.name : undefined,\n data: readField(part, 'data'),\n }));\n\nconst getTextFromParts = (message: MastraDBMessage): string =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: 'text'; text: string }> =>\n part.type === 'text' && typeof readField(part, 'text') === 'string',\n )\n .map(part => part.text)\n .join('\\n');\n\nconst hasVisibleAssistantText = (message: MastraDBMessage, metadata: Record<string, unknown> | undefined): boolean =>\n message.content.parts.some(part => {\n if (part.type !== 'text') return false;\n const text = readField(part, 'text');\n if (typeof text !== 'string' || text.trim().length === 0) return false;\n if (readField(metadata, 'completionResult') || readField(metadata, 'isTaskCompleteResult')) return false;\n return true;\n });\n\nconst getModelMetadata = (metadata: Record<string, unknown> | undefined) => {\n const custom = readField(metadata, 'custom');\n const modelMetadata = readField(custom, 'modelMetadata');\n const modelId = readField(modelMetadata, 'modelId');\n const modelProvider = readField(modelMetadata, 'modelProvider');\n if (typeof modelId !== 'string' || typeof modelProvider !== 'string') return undefined;\n return { modelId, modelProvider };\n};\n\nconst isPendingMessage = (message: MastraDBMessage): boolean => {\n if (message.content.metadata?.status === 'pending') return true;\n return message.content.parts.some(part => readField(readField(part, 'metadata'), 'status') === 'pending');\n};\nexport const MessageRow = memo(function MessageRow({\n message,\n hasModelList,\n isSpeaking,\n onReadAloud,\n onStopSpeaking,\n readOnly,\n footer,\n className,\n ...rootProps\n}: MessageRowProps) {\n const dbMessage = toDisplayMessage(message);\n const metadata = getMessageMetadata(message);\n const modelMetadata = hasModelList ? getModelMetadata(metadata) : undefined;\n const dataParts = useMemo(() => getDataParts(message), [message]);\n const running = useChatRunning();\n const isRunning = running.isRunning && running.activeRunId !== undefined && metadata?.runId === running.activeRunId;\n const { data: mcpAppTools } = useMcpAppTools();\n const parts = dbMessage?.content.parts ?? NO_PARTS;\n const revealed = useRevealedParts(parts, isStreaming(parts));\n const shownParts = isProse(parts, metadata) ? revealed : parts;\n const revealing = shownParts !== parts;\n\n const toolContext = useMemo<ToolCardContext>(() => ({ metadata, mcpAppTools }), [metadata, mcpAppTools]);\n const toolGroups = useMemo(() => collectToolGroups(shownParts, toolContext), [shownParts, toolContext]);\n\n const sharedRenderers = useMemo<MessageRenderers>(() => {\n const renderTool = (part: ToolPart) => {\n const fields = readToolPart(part);\n const group = toolGroups.byFirstKey.get(fields.toolCallId);\n if (group) {\n const members = group.map(readToolPart);\n return (\n <>\n {members.map(member => (\n <ToolCallEffects key={member.toolCallId} {...member} readOnly={readOnly} />\n ))}\n <Arriving>\n <ToolCallGroup\n steps={members.map(member => ({\n toolName: member.toolName,\n args: member.input,\n status: badgeStatus(member.state, isRunning),\n hasResult: isSettledState(member.state),\n }))}\n >\n {members.map(member => {\n const incomplete = !isRunning && !isSettledState(member.state) && member.state !== 'output-error';\n return (\n <div\n key={member.toolCallId}\n role=\"group\"\n aria-label={member.toolName}\n className=\"flex items-start gap-2\"\n >\n <div className=\"min-w-0 flex-1\">\n <ToolCard {...member} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </div>\n {incomplete && (\n <Txt as=\"span\" variant=\"meta\" className=\"mt-1 shrink-0\">\n Incomplete\n </Txt>\n )}\n </div>\n );\n })}\n </ToolCallGroup>\n </Arriving>\n </>\n );\n }\n if (toolGroups.memberKeys.has(fields.toolCallId)) return null;\n return (\n <>\n <ToolCallEffects {...fields} readOnly={readOnly} />\n <Arriving>\n <ToolCard {...fields} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </Arriving>\n </>\n );\n };\n return {\n Reasoning: part => <ReasoningPartRenderer part={part} />,\n Data: part => (\n <Arriving>\n <DataPartRenderer part={part} />\n </Arriving>\n ),\n ToolInvocation: renderTool,\n DynamicTool: renderTool,\n Error: (part: MastraErrorPart) => (\n <Notice variant=\"destructive\" title={part.error.name ?? 'Error'}>\n <Notice.Message>{part.error.message}</Notice.Message>\n </Notice>\n ),\n };\n }, [metadata, dataParts, readOnly, toolGroups, isRunning]);\n\n const userRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <UserTextPartRenderer part={part} metadata={metadata} />,\n File: part => <UserFilePartRenderer part={part} />,\n }),\n [sharedRenderers, metadata],\n );\n\n const assistantRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <AssistantTextPartRenderer part={part} metadata={metadata} revealing={revealing} />,\n }),\n [sharedRenderers, metadata, revealing],\n );\n\n if (dbMessage === null) return null;\n const shownMessage = revealing ? { ...dbMessage, content: { ...dbMessage.content, parts: shownParts } } : dbMessage;\n const displayRole = dbMessage.role;\n\n if (displayRole === 'user') {\n const isPending = isPendingMessage(message);\n const text = getTextFromParts(message);\n const canCopy = text.trim().length > 0;\n\n return (\n <Message\n {...rootProps}\n from=\"user\"\n className={className}\n data-message-id={message.id}\n pending={isPending}\n footer={\n <MessageActions>\n {canCopy && <MessageCopyButton text={text} />}\n <DatasetSaveAction messageText={text} />\n {footer}\n </MessageActions>\n }\n >\n <MessageFactory message={shownMessage} {...userRenderers} status={messageStatusRenderers} />\n </Message>\n );\n }\n\n const showActionBar = hasVisibleAssistantText(message, metadata);\n\n return (\n <Message\n {...rootProps}\n from=\"assistant\"\n className={className}\n data-message-id={message.id}\n footer={\n (showActionBar || footer) && (\n <MessageActions visibility={readOnly ? 'hover' : 'always'}>\n {showActionBar && (\n <AssistantMessageActions\n text={getTextFromParts(message)}\n modelMetadata={modelMetadata}\n isSpeaking={isSpeaking}\n onReadAloud={onReadAloud}\n onStopSpeaking={onStopSpeaking}\n />\n )}\n {footer && <MessageActions>{footer}</MessageActions>}\n </MessageActions>\n )\n }\n >\n <ChatRunningContext.Provider value={{ ...running, isRunning }}>\n <MessageFactory message={shownMessage} {...assistantRenderers} status={messageStatusRenderers} />\n </ChatRunningContext.Provider>\n </Message>\n );\n});\n"],"names":["MessageRow"],"mappings":"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"}
1
+ {"version":3,"file":"message-row.es.js","sources":["../../../../src/domains/chat/messages/message-row.tsx"],"sourcesContent":["import type { MastraDBMessage, MastraErrorPart } from '@mastra/core/agent/message-list';\nimport { MessageFactory } from '@mastra/react/ui';\nimport type { MessageRenderers } from '@mastra/react/ui';\nimport { memo, useMemo } from 'react';\nimport type { ReactNode } from 'react';\nimport { AssistantMessageActions, DatasetSaveAction } from '@/domains/chat';\nimport { ChatRunningContext, useChatRunning } from '@/domains/chat/context/chat-context';\nimport { AssistantTextPartRenderer } from '@/domains/chat/messages/renderers/assistant-text-part-renderer';\nimport { DataPartRenderer } from '@/domains/chat/messages/renderers/data-part-renderer';\nimport { messageTextKind } from '@/domains/chat/messages/renderers/message-text-kind';\nimport { ReasoningPartRenderer } from '@/domains/chat/messages/renderers/reasoning-part-renderer';\nimport { messageStatusRenderers } from '@/domains/chat/messages/renderers/status-renderers';\nimport { readToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport type { ToolPart } from '@/domains/chat/messages/renderers/tool-part';\nimport { UserFilePartRenderer } from '@/domains/chat/messages/renderers/user-file-part-renderer';\nimport { UserTextPartRenderer } from '@/domains/chat/messages/renderers/user-text-part-renderer';\nimport {\n getSignalType,\n isRecord,\n isSignalData,\n isUserSignalType,\n toReactiveSignalData,\n} from '@/domains/chat/messages/signal-data';\nimport { parseSkillActivation } from '@/domains/chat/messages/skill-activation';\nimport { SkillMessage } from '@/domains/chat/messages/skill-message';\nimport { ToolCallEffects } from '@/domains/chat/tools/tool-call-effects';\nimport { ToolCard } from '@/domains/chat/tools/tool-card';\nimport type { DataMessagePart } from '@/domains/chat/tools/tool-card';\nimport { badgeStatus, isSettledState } from '@/domains/chat/tools/tool-card-kind';\nimport type { ToolCardContext } from '@/domains/chat/tools/tool-card-kind';\nimport { collectToolGroups } from '@/domains/chat/tools/tool-groups';\nimport { useMcpAppTools } from '@/domains/mcps/hooks/use-mcp-app-tools';\nimport { useRevealedParts } from '@/ds/components/ai/message-reveal';\nimport { ToolCallGroup } from '@/ds/components/ai/tool-call';\nimport { Arriving } from '@/ds/components/Arrival';\nimport { Message, MessageActions, MessageCopyButton } from '@/ds/components/Message';\nimport { Notice } from '@/ds/components/Notice';\nimport { Txt } from '@/ds/components/Txt';\n\nexport interface MessageRowProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n message: MastraDBMessage;\n hasModelList?: boolean;\n isSpeaking?: boolean;\n onReadAloud?: (text: string) => void;\n onStopSpeaking?: () => void;\n readOnly?: boolean;\n footer?: ReactNode;\n}\n\ntype MessagePart = MastraDBMessage['content']['parts'][number];\n\nconst readField = (value: unknown, key: string): unknown => (isRecord(value) ? value[key] : undefined);\n\nconst getMessageDisplayRole = (message: MastraDBMessage): MastraDBMessage['role'] | null => {\n if (message.role === 'assistant' || message.role === 'user' || message.role === 'system') return message.role;\n if (message.role === 'signal') return isUserSignalType(getSignalType(message)) ? 'user' : 'assistant';\n return null;\n};\n\nconst toReactiveSignalMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const data = toReactiveSignalData(message);\n if (!isSignalData(data)) return null;\n const parts: MastraDBMessage['content']['parts'] = [{ type: 'data-signal', data }];\n return {\n ...message,\n role: 'assistant',\n content: { ...message.content, parts },\n };\n};\n\nconst toDisplayMessage = (message: MastraDBMessage): MastraDBMessage | null => {\n const displayRole = getMessageDisplayRole(message);\n if (displayRole === null) return null;\n if (message.role === 'signal' && displayRole === 'assistant') return toReactiveSignalMessage(message);\n if (displayRole === message.role) return message;\n return { ...message, role: displayRole };\n};\n\nconst NO_PARTS: MessagePart[] = [];\n\nconst isStreaming = (parts: MessagePart[]): boolean => parts.some(part => readField(part, 'state') === 'streaming');\n\nconst isProse = (parts: MessagePart[], metadata: Record<string, unknown> | undefined): boolean =>\n parts.every(part => {\n if (part.type !== 'text') return true;\n const text = readField(part, 'text');\n return typeof text !== 'string' || messageTextKind(text, metadata) === 'prose';\n });\n\nconst getMessageMetadata = (message: MastraDBMessage): Record<string, unknown> | undefined =>\n isRecord(message.content.metadata) ? message.content.metadata : undefined;\n\nconst getDataParts = (message: MastraDBMessage): DataMessagePart[] =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: string }> =>\n typeof part.type === 'string' && part.type.startsWith('data-'),\n )\n .map(part => ({\n type: part.type,\n name: 'name' in part && typeof part.name === 'string' ? part.name : undefined,\n data: readField(part, 'data'),\n }));\n\nconst getTextFromParts = (message: MastraDBMessage): string =>\n message.content.parts\n .filter(\n (part): part is Extract<MessagePart, { type: 'text'; text: string }> =>\n part.type === 'text' && typeof readField(part, 'text') === 'string',\n )\n .map(part => part.text)\n .join('\\n');\n\nconst hasVisibleAssistantText = (message: MastraDBMessage, metadata: Record<string, unknown> | undefined): boolean =>\n message.content.parts.some(part => {\n if (part.type !== 'text') return false;\n const text = readField(part, 'text');\n if (typeof text !== 'string' || text.trim().length === 0) return false;\n if (readField(metadata, 'completionResult') || readField(metadata, 'isTaskCompleteResult')) return false;\n return true;\n });\n\nconst getModelMetadata = (metadata: Record<string, unknown> | undefined) => {\n const custom = readField(metadata, 'custom');\n const modelMetadata = readField(custom, 'modelMetadata');\n const modelId = readField(modelMetadata, 'modelId');\n const modelProvider = readField(modelMetadata, 'modelProvider');\n if (typeof modelId !== 'string' || typeof modelProvider !== 'string') return undefined;\n return { modelId, modelProvider };\n};\n\nconst isPendingMessage = (message: MastraDBMessage): boolean => {\n if (message.content.metadata?.status === 'pending') return true;\n return message.content.parts.some(part => readField(readField(part, 'metadata'), 'status') === 'pending');\n};\nexport const MessageRow = memo(function MessageRow({\n message,\n hasModelList,\n isSpeaking,\n onReadAloud,\n onStopSpeaking,\n readOnly,\n footer,\n className,\n ...rootProps\n}: MessageRowProps) {\n const dbMessage = toDisplayMessage(message);\n const metadata = getMessageMetadata(message);\n const modelMetadata = hasModelList ? getModelMetadata(metadata) : undefined;\n const dataParts = useMemo(() => getDataParts(message), [message]);\n const running = useChatRunning();\n const isRunning = running.isRunning && running.activeRunId !== undefined && metadata?.runId === running.activeRunId;\n const { data: mcpAppTools } = useMcpAppTools();\n const parts = dbMessage?.content.parts ?? NO_PARTS;\n const revealed = useRevealedParts(parts, isStreaming(parts));\n const shownParts = isProse(parts, metadata) ? revealed : parts;\n const revealing = shownParts !== parts;\n\n const toolContext = useMemo<ToolCardContext>(() => ({ metadata, mcpAppTools }), [metadata, mcpAppTools]);\n const toolGroups = useMemo(() => collectToolGroups(shownParts, toolContext), [shownParts, toolContext]);\n\n const sharedRenderers = useMemo<MessageRenderers>(() => {\n const renderTool = (part: ToolPart) => {\n const fields = readToolPart(part);\n const group = toolGroups.byFirstKey.get(fields.toolCallId);\n if (group) {\n const members = group.map(readToolPart);\n return (\n <>\n {members.map(member => (\n <ToolCallEffects key={member.toolCallId} {...member} readOnly={readOnly} />\n ))}\n <Arriving>\n <ToolCallGroup\n steps={members.map(member => ({\n toolName: member.toolName,\n args: member.input,\n status: badgeStatus(member.state, isRunning),\n hasResult: isSettledState(member.state),\n }))}\n >\n {members.map(member => {\n const incomplete = !isRunning && !isSettledState(member.state) && member.state !== 'output-error';\n return (\n <div\n key={member.toolCallId}\n role=\"group\"\n aria-label={member.toolName}\n className=\"flex items-start gap-2\"\n >\n <div className=\"min-w-0 flex-1\">\n <ToolCard {...member} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </div>\n {incomplete && (\n <Txt as=\"span\" variant=\"meta\" className=\"mt-1 shrink-0\">\n Incomplete\n </Txt>\n )}\n </div>\n );\n })}\n </ToolCallGroup>\n </Arriving>\n </>\n );\n }\n if (toolGroups.memberKeys.has(fields.toolCallId)) return null;\n return (\n <>\n <ToolCallEffects {...fields} readOnly={readOnly} />\n <Arriving>\n <ToolCard {...fields} metadata={metadata} dataParts={dataParts} readOnly={readOnly} />\n </Arriving>\n </>\n );\n };\n return {\n Reasoning: part => <ReasoningPartRenderer part={part} />,\n Data: part => (\n <Arriving>\n <DataPartRenderer part={part} />\n </Arriving>\n ),\n ToolInvocation: renderTool,\n DynamicTool: renderTool,\n Error: (part: MastraErrorPart) => (\n <Notice variant=\"destructive\" title={part.error.name ?? 'Error'}>\n <Notice.Message>{part.error.message}</Notice.Message>\n </Notice>\n ),\n };\n }, [metadata, dataParts, readOnly, toolGroups, isRunning]);\n\n const userRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <UserTextPartRenderer part={part} metadata={metadata} />,\n File: part => <UserFilePartRenderer part={part} />,\n }),\n [sharedRenderers, metadata],\n );\n\n const assistantRenderers = useMemo<MessageRenderers>(\n () => ({\n ...sharedRenderers,\n Text: part => <AssistantTextPartRenderer part={part} metadata={metadata} revealing={revealing} />,\n }),\n [sharedRenderers, metadata, revealing],\n );\n\n if (dbMessage === null) return null;\n const shownMessage = revealing ? { ...dbMessage, content: { ...dbMessage.content, parts: shownParts } } : dbMessage;\n const displayRole = dbMessage.role;\n\n if (displayRole === 'user') {\n const soleText = parts.length === 1 && parts[0]?.type === 'text' ? readField(parts[0], 'text') : undefined;\n const skillActivation = typeof soleText === 'string' ? parseSkillActivation(soleText) : undefined;\n if (skillActivation) {\n return (\n <Message\n {...rootProps}\n from=\"assistant\"\n className={className}\n data-message-id={message.id}\n footer={footer && <MessageActions visibility={readOnly ? 'hover' : 'always'}>{footer}</MessageActions>}\n >\n <SkillMessage activation={skillActivation} />\n </Message>\n );\n }\n\n const isPending = isPendingMessage(message);\n const text = getTextFromParts(message);\n const canCopy = text.trim().length > 0;\n\n return (\n <Message\n {...rootProps}\n from=\"user\"\n className={className}\n data-message-id={message.id}\n pending={isPending}\n footer={\n <MessageActions>\n {canCopy && <MessageCopyButton text={text} />}\n <DatasetSaveAction messageText={text} />\n {footer}\n </MessageActions>\n }\n >\n <MessageFactory message={shownMessage} {...userRenderers} status={messageStatusRenderers} />\n </Message>\n );\n }\n\n const showActionBar = hasVisibleAssistantText(message, metadata);\n\n return (\n <Message\n {...rootProps}\n from=\"assistant\"\n className={className}\n data-message-id={message.id}\n footer={\n (showActionBar || footer) && (\n <MessageActions visibility={readOnly ? 'hover' : 'always'}>\n {showActionBar && (\n <AssistantMessageActions\n text={getTextFromParts(message)}\n modelMetadata={modelMetadata}\n isSpeaking={isSpeaking}\n onReadAloud={onReadAloud}\n onStopSpeaking={onStopSpeaking}\n />\n )}\n {footer && <MessageActions>{footer}</MessageActions>}\n </MessageActions>\n )\n }\n >\n <ChatRunningContext.Provider value={{ ...running, isRunning }}>\n <MessageFactory message={shownMessage} {...assistantRenderers} status={messageStatusRenderers} />\n </ChatRunningContext.Provider>\n </Message>\n );\n});\n"],"names":["MessageRow"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_chat_messages_signalData = require('./signal-data.cjs.js');
7
- const notificationActivity = require('../../../notification-activity-CzWIom28.cjs');
7
+ const notificationActivity = require('../../../notification-activity-BAn2fhYd.cjs');
8
8
 
9
9
  const getNotificationTitle = (signal) => {
10
10
  const notification = domains_chat_messages_signalData.getNotificationMetadata(signal);
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { getNotificationMetadata, formatSignalValue, signalContentsToText } from './signal-data.es.js';
3
- import { N as NotificationActivity } from '../../../notification-activity-HAcSSfXh.js';
3
+ import { N as NotificationActivity } from '../../../notification-activity-B1_2BPe_.js';
4
4
 
5
5
  const getNotificationTitle = (signal) => {
6
6
  const notification = getNotificationMetadata(signal);
@@ -8,8 +8,8 @@ const React = require('react');
8
8
  const domains_chat_messages_tripwireNotice = require('../tripwire-notice.cjs.js');
9
9
  const domains_chat_messages_renderers_messageTextKind = require('./message-text-kind.cjs.js');
10
10
  const Badge = require('../../../../Badge-H8K5WrXg.cjs');
11
- const markdownRenderer = require('../../../../markdown-renderer-DtcId3Ul.cjs');
12
- const Notice = require('../../../../Notice-JX9yuy6r.cjs');
11
+ const markdownRenderer = require('../../../../markdown-renderer-CSwjfPaf.cjs');
12
+ const Notice = require('../../../../Notice-CEBwitdf.cjs');
13
13
  const icons_Icon = require('../../../../icons/Icon.cjs.js');
14
14
  const utils_cn = require('../../../../cn-DG0X1KEP.cjs');
15
15
 
@@ -4,8 +4,8 @@ import { useState } from 'react';
4
4
  import { TripwireNotice } from '../tripwire-notice.es.js';
5
5
  import { messageTextKind, errorMessage } from './message-text-kind.es.js';
6
6
  import { B as Badge } from '../../../../Badge-Q_pCeeGW.js';
7
- import { M as MarkdownRenderer } from '../../../../markdown-renderer-CY-jQjAm.js';
8
- import { N as Notice } from '../../../../Notice-b3XjkEVP.js';
7
+ import { M as MarkdownRenderer } from '../../../../markdown-renderer-Bl0V7FCo.js';
8
+ import { N as Notice } from '../../../../Notice-Ce3r5x-7.js';
9
9
  import { Icon } from '../../../../icons/Icon.es.js';
10
10
  import { c as cn } from '../../../../cn-65Adrsfj.js';
11
11
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_chat_messages_reasoningContent = require('../reasoning-content.cjs.js');
7
- const reasoningActivity = require('../../../../reasoning-activity-LdbnHPbR.cjs');
7
+ const reasoningActivity = require('../../../../reasoning-activity-CO0Ab1Za.cjs');
8
8
 
9
9
  const ReasoningPartRenderer = ({ part, defaultOpen }) => {
10
10
  const content = domains_chat_messages_reasoningContent.getReasoningContent(part);
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { getReasoningContent } from '../reasoning-content.es.js';
3
- import { R as ReasoningActivity } from '../../../../reasoning-activity-j1bIOIX8.js';
3
+ import { R as ReasoningActivity } from '../../../../reasoning-activity-D3oCzL58.js';
4
4
 
5
5
  const ReasoningPartRenderer = ({ part, defaultOpen }) => {
6
6
  const content = getReasoningContent(part);
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_chat_messages_tripwireNotice = require('../tripwire-notice.cjs.js');
7
- const Notice = require('../../../../Notice-JX9yuy6r.cjs');
7
+ const Notice = require('../../../../Notice-CEBwitdf.cjs');
8
8
 
9
9
  const ErrorStatusRenderer = ({ text }) => /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice, { variant: "destructive", title: "Error", children: /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice.Message, { children: text }) });
10
10
  const WarningStatusRenderer = ({ text }) => /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice, { variant: "warning", title: "Warning", children: /* @__PURE__ */ jsxRuntime.jsx(Notice.Notice.Message, { children: text }) });
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { TripwireNotice } from '../tripwire-notice.es.js';
3
- import { N as Notice } from '../../../../Notice-b3XjkEVP.js';
3
+ import { N as Notice } from '../../../../Notice-Ce3r5x-7.js';
4
4
 
5
5
  const ErrorStatusRenderer = ({ text }) => /* @__PURE__ */ jsx(Notice, { variant: "destructive", title: "Error", children: /* @__PURE__ */ jsx(Notice.Message, { children: text }) });
6
6
  const WarningStatusRenderer = ({ text }) => /* @__PURE__ */ jsx(Notice, { variant: "warning", title: "Warning", children: /* @__PURE__ */ jsx(Notice.Message, { children: text }) });
@@ -3,12 +3,18 @@
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
+ const domains_chat_messages_skillActivation = require('../skill-activation.cjs.js');
7
+ const domains_chat_messages_skillMessage = require('../skill-message.cjs.js');
6
8
  const domains_chat_messages_systemReminderBadge = require('../system-reminder-badge.cjs.js');
7
9
  const domains_chat_messages_renderers_inMessageAttachment = require('./in-message-attachment.cjs.js');
8
10
  const domains_chat_messages_renderers_messageText = require('./message-text.cjs.js');
9
11
 
10
12
  const UserTextPartRenderer = ({ part, metadata }) => {
11
13
  const text = part.text ?? "";
14
+ const skillActivation = domains_chat_messages_skillActivation.parseSkillActivation(text);
15
+ if (skillActivation) {
16
+ return /* @__PURE__ */ jsxRuntime.jsx(domains_chat_messages_skillMessage.SkillMessage, { activation: skillActivation });
17
+ }
12
18
  if (text.trimStart().startsWith("<system-reminder")) {
13
19
  return /* @__PURE__ */ jsxRuntime.jsx(domains_chat_messages_systemReminderBadge.SystemReminderBadge, { text });
14
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-text-part-renderer.cjs.js","sources":["../../../../../src/domains/chat/messages/renderers/user-text-part-renderer.tsx"],"sourcesContent":["import type { TextPart } from '@mastra/react/ui';\n\nimport type { MessageMetadata } from '../message-metadata';\nimport { SystemReminderBadge } from '../system-reminder-badge';\nimport { InMessageAttachment } from './in-message-attachment';\nimport { MessageText } from './message-text';\n\nexport interface UserTextPartRendererProps {\n part: TextPart;\n metadata?: MessageMetadata;\n}\n\n/**\n * Renders a user `MessageFactory` `Text` slot. System-reminder text and inline\n * `<attachment name=...>` text get dedicated badges/previews; everything else\n * renders as markdown.\n */\nexport const UserTextPartRenderer = ({ part, metadata }: UserTextPartRendererProps) => {\n const text = part.text ?? '';\n\n if (text.trimStart().startsWith('<system-reminder')) {\n return <SystemReminderBadge text={text} />;\n }\n if (text.includes('<attachment name=')) {\n return <InMessageAttachment type=\"document\" contentType=\"text/plain\" data={text} />;\n }\n\n return <MessageText text={text} metadata={metadata} />;\n};\n"],"names":["jsx","SystemReminderBadge","InMessageAttachment","MessageText"],"mappings":";;;;;;;;;AAiBO,MAAM,oBAAA,GAAuB,CAAC,EAAE,IAAA,EAAM,UAAS,KAAiC;AACrF,EAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,EAAA;AAE1B,EAAA,IAAI,IAAA,CAAK,SAAA,EAAU,CAAE,UAAA,CAAW,kBAAkB,CAAA,EAAG;AACnD,IAAA,uBAAOA,cAAA,CAACC,iEAAoB,IAAA,EAAY,CAAA;AAAA,EAC1C;AACA,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACtC,IAAA,sCAAQC,uEAAA,EAAA,EAAoB,IAAA,EAAK,YAAW,WAAA,EAAY,YAAA,EAAa,MAAM,IAAA,EAAM,CAAA;AAAA,EACnF;AAEA,EAAA,uBAAOF,cAAA,CAACG,uDAAA,EAAA,EAAY,IAAA,EAAY,QAAA,EAAoB,CAAA;AACtD;;;;"}
1
+ {"version":3,"file":"user-text-part-renderer.cjs.js","sources":["../../../../../src/domains/chat/messages/renderers/user-text-part-renderer.tsx"],"sourcesContent":["import type { TextPart } from '@mastra/react/ui';\n\nimport type { MessageMetadata } from '../message-metadata';\nimport { parseSkillActivation } from '../skill-activation';\nimport { SkillMessage } from '../skill-message';\nimport { SystemReminderBadge } from '../system-reminder-badge';\nimport { InMessageAttachment } from './in-message-attachment';\nimport { MessageText } from './message-text';\n\nexport interface UserTextPartRendererProps {\n part: TextPart;\n metadata?: MessageMetadata;\n}\n\n/**\n * Renders a user `MessageFactory` `Text` slot. System-reminder text and inline\n * `<attachment name=...>` text get dedicated badges/previews; everything else\n * renders as markdown.\n */\nexport const UserTextPartRenderer = ({ part, metadata }: UserTextPartRendererProps) => {\n const text = part.text ?? '';\n\n const skillActivation = parseSkillActivation(text);\n if (skillActivation) {\n return <SkillMessage activation={skillActivation} />;\n }\n if (text.trimStart().startsWith('<system-reminder')) {\n return <SystemReminderBadge text={text} />;\n }\n if (text.includes('<attachment name=')) {\n return <InMessageAttachment type=\"document\" contentType=\"text/plain\" data={text} />;\n }\n\n return <MessageText text={text} metadata={metadata} />;\n};\n"],"names":["parseSkillActivation","jsx","SkillMessage","SystemReminderBadge","InMessageAttachment","MessageText"],"mappings":";;;;;;;;;;;AAmBO,MAAM,oBAAA,GAAuB,CAAC,EAAE,IAAA,EAAM,UAAS,KAAiC;AACrF,EAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,EAAA;AAE1B,EAAA,MAAM,eAAA,GAAkBA,2DAAqB,IAAI,CAAA;AACjD,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,uBAAOC,cAAA,CAACC,+CAAA,EAAA,EAAa,UAAA,EAAY,eAAA,EAAiB,CAAA;AAAA,EACpD;AACA,EAAA,IAAI,IAAA,CAAK,SAAA,EAAU,CAAE,UAAA,CAAW,kBAAkB,CAAA,EAAG;AACnD,IAAA,uBAAOD,cAAA,CAACE,iEAAoB,IAAA,EAAY,CAAA;AAAA,EAC1C;AACA,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACtC,IAAA,sCAAQC,uEAAA,EAAA,EAAoB,IAAA,EAAK,YAAW,WAAA,EAAY,YAAA,EAAa,MAAM,IAAA,EAAM,CAAA;AAAA,EACnF;AAEA,EAAA,uBAAOH,cAAA,CAACI,uDAAA,EAAA,EAAY,IAAA,EAAY,QAAA,EAAoB,CAAA;AACtD;;;;"}
@@ -1,10 +1,16 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
+ import { parseSkillActivation } from '../skill-activation.es.js';
3
+ import { SkillMessage } from '../skill-message.es.js';
2
4
  import { SystemReminderBadge } from '../system-reminder-badge.es.js';
3
5
  import { InMessageAttachment } from './in-message-attachment.es.js';
4
6
  import { MessageText } from './message-text.es.js';
5
7
 
6
8
  const UserTextPartRenderer = ({ part, metadata }) => {
7
9
  const text = part.text ?? "";
10
+ const skillActivation = parseSkillActivation(text);
11
+ if (skillActivation) {
12
+ return /* @__PURE__ */ jsx(SkillMessage, { activation: skillActivation });
13
+ }
8
14
  if (text.trimStart().startsWith("<system-reminder")) {
9
15
  return /* @__PURE__ */ jsx(SystemReminderBadge, { text });
10
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user-text-part-renderer.es.js","sources":["../../../../../src/domains/chat/messages/renderers/user-text-part-renderer.tsx"],"sourcesContent":["import type { TextPart } from '@mastra/react/ui';\n\nimport type { MessageMetadata } from '../message-metadata';\nimport { SystemReminderBadge } from '../system-reminder-badge';\nimport { InMessageAttachment } from './in-message-attachment';\nimport { MessageText } from './message-text';\n\nexport interface UserTextPartRendererProps {\n part: TextPart;\n metadata?: MessageMetadata;\n}\n\n/**\n * Renders a user `MessageFactory` `Text` slot. System-reminder text and inline\n * `<attachment name=...>` text get dedicated badges/previews; everything else\n * renders as markdown.\n */\nexport const UserTextPartRenderer = ({ part, metadata }: UserTextPartRendererProps) => {\n const text = part.text ?? '';\n\n if (text.trimStart().startsWith('<system-reminder')) {\n return <SystemReminderBadge text={text} />;\n }\n if (text.includes('<attachment name=')) {\n return <InMessageAttachment type=\"document\" contentType=\"text/plain\" data={text} />;\n }\n\n return <MessageText text={text} metadata={metadata} />;\n};\n"],"names":[],"mappings":";;;;;AAiBO,MAAM,oBAAA,GAAuB,CAAC,EAAE,IAAA,EAAM,UAAS,KAAiC;AACrF,EAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,EAAA;AAE1B,EAAA,IAAI,IAAA,CAAK,SAAA,EAAU,CAAE,UAAA,CAAW,kBAAkB,CAAA,EAAG;AACnD,IAAA,uBAAO,GAAA,CAAC,uBAAoB,IAAA,EAAY,CAAA;AAAA,EAC1C;AACA,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACtC,IAAA,2BAAQ,mBAAA,EAAA,EAAoB,IAAA,EAAK,YAAW,WAAA,EAAY,YAAA,EAAa,MAAM,IAAA,EAAM,CAAA;AAAA,EACnF;AAEA,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAY,QAAA,EAAoB,CAAA;AACtD;;;;"}
1
+ {"version":3,"file":"user-text-part-renderer.es.js","sources":["../../../../../src/domains/chat/messages/renderers/user-text-part-renderer.tsx"],"sourcesContent":["import type { TextPart } from '@mastra/react/ui';\n\nimport type { MessageMetadata } from '../message-metadata';\nimport { parseSkillActivation } from '../skill-activation';\nimport { SkillMessage } from '../skill-message';\nimport { SystemReminderBadge } from '../system-reminder-badge';\nimport { InMessageAttachment } from './in-message-attachment';\nimport { MessageText } from './message-text';\n\nexport interface UserTextPartRendererProps {\n part: TextPart;\n metadata?: MessageMetadata;\n}\n\n/**\n * Renders a user `MessageFactory` `Text` slot. System-reminder text and inline\n * `<attachment name=...>` text get dedicated badges/previews; everything else\n * renders as markdown.\n */\nexport const UserTextPartRenderer = ({ part, metadata }: UserTextPartRendererProps) => {\n const text = part.text ?? '';\n\n const skillActivation = parseSkillActivation(text);\n if (skillActivation) {\n return <SkillMessage activation={skillActivation} />;\n }\n if (text.trimStart().startsWith('<system-reminder')) {\n return <SystemReminderBadge text={text} />;\n }\n if (text.includes('<attachment name=')) {\n return <InMessageAttachment type=\"document\" contentType=\"text/plain\" data={text} />;\n }\n\n return <MessageText text={text} metadata={metadata} />;\n};\n"],"names":[],"mappings":";;;;;;;AAmBO,MAAM,oBAAA,GAAuB,CAAC,EAAE,IAAA,EAAM,UAAS,KAAiC;AACrF,EAAA,MAAM,IAAA,GAAO,KAAK,IAAA,IAAQ,EAAA;AAE1B,EAAA,MAAM,eAAA,GAAkB,qBAAqB,IAAI,CAAA;AACjD,EAAA,IAAI,eAAA,EAAiB;AACnB,IAAA,uBAAO,GAAA,CAAC,YAAA,EAAA,EAAa,UAAA,EAAY,eAAA,EAAiB,CAAA;AAAA,EACpD;AACA,EAAA,IAAI,IAAA,CAAK,SAAA,EAAU,CAAE,UAAA,CAAW,kBAAkB,CAAA,EAAG;AACnD,IAAA,uBAAO,GAAA,CAAC,uBAAoB,IAAA,EAAY,CAAA;AAAA,EAC1C;AACA,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACtC,IAAA,2BAAQ,mBAAA,EAAA,EAAoB,IAAA,EAAK,YAAW,WAAA,EAAY,YAAA,EAAa,MAAM,IAAA,EAAM,CAAA;AAAA,EACnF;AAEA,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAY,QAAA,EAAoB,CAAA;AACtD;;;;"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const domains_chat_messages_notificationSignalNotice = require('./notification-signal-notice.cjs.js');
7
7
  const domains_chat_messages_signalData = require('./signal-data.cjs.js');
8
- const signalActivity = require('../../../signal-activity-DXZ9j7xV.cjs');
8
+ const signalActivity = require('../../../signal-activity-4OJb4kp6.cjs');
9
9
 
10
10
  const getStateLabel = (signal) => {
11
11
  const state = domains_chat_messages_signalData.isRecord(signal.metadata?.state) ? signal.metadata.state : void 0;
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { NotificationSignalNotice } from './notification-signal-notice.es.js';
3
3
  import { isSignalData, signalContentsToText, isRecord, formatSignalValue } from './signal-data.es.js';
4
- import { S as SignalActivity } from '../../../signal-activity-B5LFDj6X.js';
4
+ import { S as SignalActivity } from '../../../signal-activity-1REUU8T_.js';
5
5
 
6
6
  const getStateLabel = (signal) => {
7
7
  const state = isRecord(signal.metadata?.state) ? signal.metadata.state : void 0;
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
+
5
+ const WORK_ITEM_FEED_TAG = "work-item-feed";
6
+ const SKILL_PATTERN = /^<skill\s+name="([^"]+)">([\s\S]*?)<\/skill>\s*([\s\S]*)$/;
7
+ const FEED_BLOCK_PATTERN = new RegExp(`^<${WORK_ITEM_FEED_TAG}>\\s*([\\s\\S]*?)\\s*</${WORK_ITEM_FEED_TAG}>$`);
8
+ const ARGUMENTS_MARKER = "\n\nARGUMENTS: ";
9
+ function parseSkillActivation(text) {
10
+ const match = SKILL_PATTERN.exec(text.trim());
11
+ if (!match) return void 0;
12
+ const [, name, rawBody = "", rawTrailing = ""] = match;
13
+ const trailing = rawTrailing.trim();
14
+ const feedBlock = trailing ? FEED_BLOCK_PATTERN.exec(trailing) : void 0;
15
+ if (trailing && !feedBlock) return void 0;
16
+ if (!name) return void 0;
17
+ let body = rawBody;
18
+ if (body.startsWith("\n")) body = body.slice(1);
19
+ if (body.endsWith("\n")) body = body.slice(0, -1);
20
+ body = body.replaceAll("&lt;/skill&gt;", "</skill>");
21
+ if (!body.trim()) return void 0;
22
+ const argIndex = body.lastIndexOf(ARGUMENTS_MARKER);
23
+ const instructions = argIndex >= 0 ? body.slice(0, argIndex) : body;
24
+ const args = argIndex >= 0 ? body.slice(argIndex + ARGUMENTS_MARKER.length).trim() : void 0;
25
+ return { name, instructions, arguments: args || void 0, ...feedBlock ? { feed: feedBlock[1] ?? "" } : {} };
26
+ }
27
+
28
+ exports.parseSkillActivation = parseSkillActivation;
29
+ //# sourceMappingURL=skill-activation.cjs.js.map