@mastra/playground-ui 69.0.0-alpha.0 → 69.0.0-alpha.2

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 (842) hide show
  1. package/components.css +6 -0
  2. package/dist/{CodeEditor-ZoBu3Gjw.js → CodeEditor-BqAM9L7t.js} +5 -2
  3. package/dist/{CodeEditor-ZoBu3Gjw.js.map → CodeEditor-BqAM9L7t.js.map} +1 -1
  4. package/dist/{CodeEditor-DHIDfP5g.cjs → CodeEditor-zMSUzPdX.cjs} +5 -2
  5. package/dist/{CodeEditor-DHIDfP5g.cjs.map → CodeEditor-zMSUzPdX.cjs.map} +1 -1
  6. package/dist/{Comment-rQxuMDQv.cjs → Comment-A07IvOt2.cjs} +3 -3
  7. package/dist/{Comment-rQxuMDQv.cjs.map → Comment-A07IvOt2.cjs.map} +1 -1
  8. package/dist/{Comment-2q9SomE2.js → Comment-D_gSx7oM.js} +3 -3
  9. package/dist/{Comment-2q9SomE2.js.map → Comment-D_gSx7oM.js.map} +1 -1
  10. package/dist/{Composer-u1K6edoZ.cjs → Composer-D2BqRyb5.cjs} +2 -2
  11. package/dist/Composer-D2BqRyb5.cjs.map +1 -0
  12. package/dist/{Composer-bVE8qK52.js → Composer-kjwmlIgL.js} +2 -2
  13. package/dist/Composer-kjwmlIgL.js.map +1 -0
  14. package/dist/{DataCodeSection-CTodi9wg.js → DataCodeSection-CcX8Z68Y.js} +2 -2
  15. package/dist/{DataCodeSection-CTodi9wg.js.map → DataCodeSection-CcX8Z68Y.js.map} +1 -1
  16. package/dist/{DataCodeSection-7SvRJj6f.cjs → DataCodeSection-JPGTWLcL.cjs} +2 -2
  17. package/dist/{DataCodeSection-7SvRJj6f.cjs.map → DataCodeSection-JPGTWLcL.cjs.map} +1 -1
  18. package/dist/{DataDetailsPanel-BDoD6pxx.cjs → DataDetailsPanel-DCMlaG7j.cjs} +2 -2
  19. package/dist/{DataDetailsPanel-BDoD6pxx.cjs.map → DataDetailsPanel-DCMlaG7j.cjs.map} +1 -1
  20. package/dist/{DataDetailsPanel-BU05psHL.js → DataDetailsPanel-mTfbbQho.js} +2 -2
  21. package/dist/{DataDetailsPanel-BU05psHL.js.map → DataDetailsPanel-mTfbbQho.js.map} +1 -1
  22. package/dist/{DataPanel-BRRAvWYQ.cjs → DataPanel-LfExjFpP.cjs} +2 -2
  23. package/dist/{DataPanel-BRRAvWYQ.cjs.map → DataPanel-LfExjFpP.cjs.map} +1 -1
  24. package/dist/{DataPanel-pVr5LVaK.js → DataPanel-Rv5Mb_pf.js} +2 -2
  25. package/dist/{DataPanel-pVr5LVaK.js.map → DataPanel-Rv5Mb_pf.js.map} +1 -1
  26. package/dist/{FilterBar-Kmn6gMgO.js → FilterBar-DgHNtsDI.js} +5 -5
  27. package/dist/FilterBar-DgHNtsDI.js.map +1 -0
  28. package/dist/{FilterBar-jBz6yaNu.cjs → FilterBar-O8SYau_Q.cjs} +5 -5
  29. package/dist/FilterBar-O8SYau_Q.cjs.map +1 -0
  30. package/dist/KnowledgePageGraph.css +1 -3
  31. package/dist/{MarkdownRenderer-CY8LGt-l.js → MarkdownRenderer-BSGb65Ze.js} +2 -2
  32. package/dist/{MarkdownRenderer-CY8LGt-l.js.map → MarkdownRenderer-BSGb65Ze.js.map} +1 -1
  33. package/dist/{MarkdownRenderer-CUYpmuPh.cjs → MarkdownRenderer-CDwlvw0Y.cjs} +2 -2
  34. package/dist/{MarkdownRenderer-CUYpmuPh.cjs.map → MarkdownRenderer-CDwlvw0Y.cjs.map} +1 -1
  35. package/dist/{MetricsCard-DojbLiEx.cjs → MetricsCard-CSJ4TsNq.cjs} +3 -3
  36. package/dist/MetricsCard-CSJ4TsNq.cjs.map +1 -0
  37. package/dist/{MetricsCard-kAqSCPPe.js → MetricsCard-D6bQfynP.js} +3 -3
  38. package/dist/MetricsCard-D6bQfynP.js.map +1 -0
  39. package/dist/{Tree-Caz4FTCU.cjs → Tree-6pubDJLQ.cjs} +4 -3
  40. package/dist/Tree-6pubDJLQ.cjs.map +1 -0
  41. package/dist/{Tree-od43gLMO.js → Tree-DpRLmis3.js} +4 -3
  42. package/dist/Tree-DpRLmis3.js.map +1 -0
  43. package/dist/{Workflow-mIbUYdv0.js → Workflow-BVVYys0W.js} +3 -3
  44. package/dist/{Workflow-mIbUYdv0.js.map → Workflow-BVVYys0W.js.map} +1 -1
  45. package/dist/{Workflow-XR5L-3cJ.cjs → Workflow-CwIjxwC6.cjs} +3 -3
  46. package/dist/{Workflow-XR5L-3cJ.cjs.map → Workflow-CwIjxwC6.cjs.map} +1 -1
  47. package/dist/{activity-ClFChYfl.js → activity-BH_eegMA.js} +2 -2
  48. package/dist/{activity-ClFChYfl.js.map → activity-BH_eegMA.js.map} +1 -1
  49. package/dist/{activity-BprmG6yH.cjs → activity-Ciolopq8.cjs} +2 -2
  50. package/dist/{activity-BprmG6yH.cjs.map → activity-Ciolopq8.cjs.map} +1 -1
  51. package/dist/{ask-user-D4ezQ6pt.js → ask-user-CqzPUD9E.js} +2 -2
  52. package/dist/{ask-user-D4ezQ6pt.js.map → ask-user-CqzPUD9E.js.map} +1 -1
  53. package/dist/{ask-user-DcnUNMM5.cjs → ask-user-DIYcPkoX.cjs} +2 -2
  54. package/dist/{ask-user-DcnUNMM5.cjs.map → ask-user-DIYcPkoX.cjs.map} +1 -1
  55. package/dist/{combobox-lbSxWRMl.js → combobox-DLdInLYm.js} +2 -2
  56. package/dist/{combobox-lbSxWRMl.js.map → combobox-DLdInLYm.js.map} +1 -1
  57. package/dist/{combobox-i723LxeC.cjs → combobox-DU2jsrGa.cjs} +2 -2
  58. package/dist/{combobox-i723LxeC.cjs.map → combobox-DU2jsrGa.cjs.map} +1 -1
  59. package/dist/{combobox-parts-BeNqgCbj.cjs → combobox-parts-C236ZHtn.cjs} +2 -2
  60. package/dist/combobox-parts-C236ZHtn.cjs.map +1 -0
  61. package/dist/{combobox-parts-C9o4UfH_.js → combobox-parts-_m3Qgmci.js} +2 -2
  62. package/dist/combobox-parts-_m3Qgmci.js.map +1 -0
  63. package/dist/components/Breadcrumb.cjs.js.map +1 -1
  64. package/dist/components/Breadcrumb.es.js.map +1 -1
  65. package/dist/components/CodeBlock.cjs.js +1 -1
  66. package/dist/components/CodeBlock.es.js +1 -1
  67. package/dist/components/CodeEditor.cjs.js +1 -1
  68. package/dist/components/CodeEditor.es.js +1 -1
  69. package/dist/components/Combobox.cjs.js +2 -2
  70. package/dist/components/Combobox.es.js +2 -2
  71. package/dist/components/Command.cjs.js +1 -1
  72. package/dist/components/Command.cjs.js.map +1 -1
  73. package/dist/components/Command.es.js +1 -1
  74. package/dist/components/Command.es.js.map +1 -1
  75. package/dist/components/Comment.cjs.js +1 -1
  76. package/dist/components/Comment.es.js +1 -1
  77. package/dist/components/Composer.cjs.js +1 -1
  78. package/dist/components/Composer.es.js +1 -1
  79. package/dist/components/DataCodeSection.cjs.js +1 -1
  80. package/dist/components/DataCodeSection.es.js +1 -1
  81. package/dist/components/DataDetailsPanel.cjs.js +1 -1
  82. package/dist/components/DataDetailsPanel.es.js +1 -1
  83. package/dist/components/DataList.cjs.js +1 -1
  84. package/dist/components/DataList.es.js +1 -1
  85. package/dist/components/DataPanel.cjs.js +1 -1
  86. package/dist/components/DataPanel.es.js +1 -1
  87. package/dist/components/DateTimePicker.cjs.js +1 -1
  88. package/dist/components/DateTimePicker.es.js +1 -1
  89. package/dist/components/DateTimeRangePicker.cjs.js +1 -1
  90. package/dist/components/DateTimeRangePicker.es.js +1 -1
  91. package/dist/components/DropdownMenu.cjs.js +1 -1
  92. package/dist/components/DropdownMenu.es.js +1 -1
  93. package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
  94. package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
  95. package/dist/components/FilterBar.cjs.js +3 -3
  96. package/dist/components/FilterBar.es.js +3 -3
  97. package/dist/components/FormFieldBlocks.cjs.js +1 -1
  98. package/dist/components/FormFieldBlocks.es.js +1 -1
  99. package/dist/components/Input.cjs.js +1 -1
  100. package/dist/components/Input.es.js +1 -1
  101. package/dist/components/InputGroup.cjs.js +1 -1
  102. package/dist/components/InputGroup.es.js +1 -1
  103. package/dist/components/InputNumber.cjs.js +1 -1
  104. package/dist/components/InputNumber.es.js +1 -1
  105. package/dist/components/JSONSchemaForm.cjs.js +1 -1
  106. package/dist/components/JSONSchemaForm.es.js +1 -1
  107. package/dist/components/MarkdownRenderer.cjs.js +1 -1
  108. package/dist/components/MarkdownRenderer.es.js +1 -1
  109. package/dist/components/MetricsCard.cjs.js +1 -1
  110. package/dist/components/MetricsCard.es.js +1 -1
  111. package/dist/components/PropertyFilter.cjs.js +2 -2
  112. package/dist/components/PropertyFilter.es.js +2 -2
  113. package/dist/components/RuleBuilder.cjs.js +1 -1
  114. package/dist/components/RuleBuilder.es.js +1 -1
  115. package/dist/components/SavedViews.cjs.js +3 -3
  116. package/dist/components/SavedViews.cjs.js.map +1 -1
  117. package/dist/components/SavedViews.es.js +3 -3
  118. package/dist/components/SavedViews.es.js.map +1 -1
  119. package/dist/components/SearchInput.cjs.js +1 -1
  120. package/dist/components/SearchInput.es.js +1 -1
  121. package/dist/components/SideDialog.cjs.js +1 -1
  122. package/dist/components/SideDialog.es.js +1 -1
  123. package/dist/components/Sidebar.cjs.js +1 -1
  124. package/dist/components/Sidebar.es.js +1 -1
  125. package/dist/components/Tabs.cjs.js +2 -2
  126. package/dist/components/Tabs.es.js +2 -2
  127. package/dist/components/Textarea.cjs.js +1 -1
  128. package/dist/components/Textarea.cjs.js.map +1 -1
  129. package/dist/components/Textarea.es.js +1 -1
  130. package/dist/components/Textarea.es.js.map +1 -1
  131. package/dist/components/ThreadRail.cjs.js +2 -0
  132. package/dist/components/ThreadRail.cjs.js.map +1 -1
  133. package/dist/components/ThreadRail.es.js +2 -0
  134. package/dist/components/ThreadRail.es.js.map +1 -1
  135. package/dist/components/Tree.cjs.js +1 -1
  136. package/dist/components/Tree.es.js +1 -1
  137. package/dist/components/Workflow.cjs.js +1 -1
  138. package/dist/components/Workflow.es.js +1 -1
  139. package/dist/components/ai/activity.cjs.js +1 -1
  140. package/dist/components/ai/activity.es.js +1 -1
  141. package/dist/components/ai/ask-user.cjs.js +1 -1
  142. package/dist/components/ai/ask-user.es.js +1 -1
  143. package/dist/components/ai/plan.cjs.js +1 -1
  144. package/dist/components/ai/plan.es.js +1 -1
  145. package/dist/components/ai/tool-approval.cjs.js +1 -1
  146. package/dist/components/ai/tool-approval.es.js +1 -1
  147. package/dist/components/ai/tool-call.cjs.js +1 -1
  148. package/dist/components/ai/tool-call.es.js +1 -1
  149. package/dist/{date-time-range-picker-DdNgKD87.js → date-time-range-picker-CJyhcug7.js} +3 -3
  150. package/dist/{date-time-range-picker-DdNgKD87.js.map → date-time-range-picker-CJyhcug7.js.map} +1 -1
  151. package/dist/{date-time-range-picker-Bq-8IPtS.cjs → date-time-range-picker-Dhnuwa-U.cjs} +3 -3
  152. package/dist/{date-time-range-picker-Bq-8IPtS.cjs.map → date-time-range-picker-Dhnuwa-U.cjs.map} +1 -1
  153. package/dist/domains/chat/activity/activity-stretch-line.cjs.js +1 -1
  154. package/dist/domains/chat/activity/activity-stretch-line.es.js +1 -1
  155. package/dist/domains/chat/activity/components/activity-fold.cjs.js +1 -1
  156. package/dist/domains/chat/activity/components/activity-fold.es.js +1 -1
  157. package/dist/domains/chat/activity/components/calls-panel.cjs.js +1 -1
  158. package/dist/domains/chat/activity/components/calls-panel.es.js +1 -1
  159. package/dist/domains/chat/activity/components/stretch-content.cjs.js +1 -1
  160. package/dist/domains/chat/activity/components/stretch-content.es.js +1 -1
  161. package/dist/domains/chat/activity/components/stretch-thought.cjs.js +1 -1
  162. package/dist/domains/chat/activity/components/stretch-thought.es.js +1 -1
  163. package/dist/domains/chat/activity/model/activity-segments.cjs.js +1 -1
  164. package/dist/domains/chat/activity/model/activity-segments.es.js +1 -1
  165. package/dist/domains/chat/activity/model/activity-words.cjs.js +1 -1
  166. package/dist/domains/chat/activity/model/activity-words.es.js +1 -1
  167. package/dist/domains/chat/attachments/composer-attachment-list.cjs.js +1 -1
  168. package/dist/domains/chat/attachments/composer-attachment-list.es.js +1 -1
  169. package/dist/domains/chat/attachments/split-message-attachments.cjs.js +4 -1
  170. package/dist/domains/chat/attachments/split-message-attachments.cjs.js.map +1 -1
  171. package/dist/domains/chat/attachments/split-message-attachments.es.js +4 -1
  172. package/dist/domains/chat/attachments/split-message-attachments.es.js.map +1 -1
  173. package/dist/domains/chat/components/badge-wrapper.cjs.js +1 -1
  174. package/dist/domains/chat/components/badge-wrapper.es.js +1 -1
  175. package/dist/domains/chat/components/network-choice-metadata-dialog.cjs.js +1 -1
  176. package/dist/domains/chat/components/network-choice-metadata-dialog.es.js +1 -1
  177. package/dist/domains/chat/knowledge/pinned-knowledge.cjs.js +1 -1
  178. package/dist/domains/chat/knowledge/pinned-knowledge.es.js +1 -1
  179. package/dist/domains/chat/messages/dataset-save-action.cjs.js +1 -1
  180. package/dist/domains/chat/messages/dataset-save-action.es.js +1 -1
  181. package/dist/domains/chat/messages/message-row.cjs.js +2 -2
  182. package/dist/domains/chat/messages/message-row.es.js +2 -2
  183. package/dist/domains/chat/messages/notification-signal-notice.cjs.js +1 -1
  184. package/dist/domains/chat/messages/notification-signal-notice.es.js +1 -1
  185. package/dist/domains/chat/messages/reasoning-content.cjs.js +1 -1
  186. package/dist/domains/chat/messages/reasoning-content.es.js +1 -1
  187. package/dist/domains/chat/messages/renderers/message-text.cjs.js +1 -1
  188. package/dist/domains/chat/messages/renderers/message-text.es.js +1 -1
  189. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.cjs.js +1 -1
  190. package/dist/domains/chat/messages/renderers/reasoning-part-renderer.es.js +1 -1
  191. package/dist/domains/chat/messages/signal-badge.cjs.js +1 -1
  192. package/dist/domains/chat/messages/signal-badge.es.js +1 -1
  193. package/dist/domains/chat/messages/skill-message.cjs.js +2 -2
  194. package/dist/domains/chat/messages/skill-message.es.js +2 -2
  195. package/dist/domains/chat/messages/system-reminder-badge.cjs.js +1 -1
  196. package/dist/domains/chat/messages/system-reminder-badge.es.js +1 -1
  197. package/dist/domains/chat/messages/tripwire-notice.cjs.js +5 -10
  198. package/dist/domains/chat/messages/tripwire-notice.cjs.js.map +1 -1
  199. package/dist/domains/chat/messages/tripwire-notice.es.js +5 -10
  200. package/dist/domains/chat/messages/tripwire-notice.es.js.map +1 -1
  201. package/dist/domains/chat/tools/badges/agent-badge-wrapper.cjs.js +1 -1
  202. package/dist/domains/chat/tools/badges/agent-badge-wrapper.es.js +1 -1
  203. package/dist/domains/chat/tools/badges/agent-badge.cjs.js +1 -1
  204. package/dist/domains/chat/tools/badges/agent-badge.es.js +1 -1
  205. package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
  206. package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
  207. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.cjs.js +1 -1
  208. package/dist/domains/chat/tools/badges/background-task-metadata-dialog.es.js +1 -1
  209. package/dist/domains/chat/tools/badges/code-mode-badge.cjs.js +1 -1
  210. package/dist/domains/chat/tools/badges/code-mode-badge.es.js +1 -1
  211. package/dist/domains/chat/tools/badges/file-tree-badge.cjs.js +1 -1
  212. package/dist/domains/chat/tools/badges/file-tree-badge.es.js +1 -1
  213. package/dist/domains/chat/tools/badges/knowledge-tool-badge.cjs.js +2 -2
  214. package/dist/domains/chat/tools/badges/knowledge-tool-badge.es.js +2 -2
  215. package/dist/domains/chat/tools/badges/observation-marker-badge.cjs.js +2 -2
  216. package/dist/domains/chat/tools/badges/observation-marker-badge.es.js +2 -2
  217. package/dist/domains/chat/tools/badges/observation-marker-details.cjs.js +2 -2
  218. package/dist/domains/chat/tools/badges/observation-marker-details.es.js +2 -2
  219. package/dist/domains/chat/tools/badges/observation-renderer.cjs.js +1 -1
  220. package/dist/domains/chat/tools/badges/observation-renderer.es.js +1 -1
  221. package/dist/domains/chat/tools/badges/sandbox-execution-badge.cjs.js +1 -1
  222. package/dist/domains/chat/tools/badges/sandbox-execution-badge.es.js +1 -1
  223. package/dist/domains/chat/tools/badges/tool-approval-badge.cjs.js +1 -1
  224. package/dist/domains/chat/tools/badges/tool-approval-badge.es.js +1 -1
  225. package/dist/domains/chat/tools/badges/tool-badge.cjs.js +2 -2
  226. package/dist/domains/chat/tools/badges/tool-badge.es.js +2 -2
  227. package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +2 -2
  228. package/dist/domains/chat/tools/badges/workflow-badge.es.js +2 -2
  229. package/dist/domains/chat/tools/mcp-input-request-tool.cjs.js +2 -2
  230. package/dist/domains/chat/tools/mcp-input-request-tool.es.js +2 -2
  231. package/dist/domains/chat/tools/tool-card.cjs.js +1 -1
  232. package/dist/domains/chat/tools/tool-card.es.js +1 -1
  233. package/dist/domains/chat/tools/tool-groups.cjs.js +1 -1
  234. package/dist/domains/chat/tools/tool-groups.es.js +1 -1
  235. package/dist/domains/dashboards/components/connected-widget.cjs.js +55 -0
  236. package/dist/domains/dashboards/components/connected-widget.cjs.js.map +1 -0
  237. package/dist/domains/dashboards/components/connected-widget.d.ts +1 -0
  238. package/dist/domains/dashboards/components/connected-widget.es.js +54 -0
  239. package/dist/domains/dashboards/components/connected-widget.es.js.map +1 -0
  240. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js +13 -8
  241. package/dist/domains/dashboards/components/dashboard-renderer.cjs.js.map +1 -1
  242. package/dist/domains/dashboards/components/dashboard-renderer.es.js +13 -8
  243. package/dist/domains/dashboards/components/dashboard-renderer.es.js.map +1 -1
  244. package/dist/domains/dashboards/components/stateless-widget.cjs.js +30 -0
  245. package/dist/domains/dashboards/components/stateless-widget.cjs.js.map +1 -0
  246. package/dist/domains/dashboards/components/stateless-widget.d.ts +1 -0
  247. package/dist/domains/dashboards/components/stateless-widget.es.js +29 -0
  248. package/dist/domains/dashboards/components/stateless-widget.es.js.map +1 -0
  249. package/dist/domains/dashboards/components/view-gate.cjs.js +18 -40
  250. package/dist/domains/dashboards/components/view-gate.cjs.js.map +1 -1
  251. package/dist/domains/dashboards/components/view-gate.es.js +18 -40
  252. package/dist/domains/dashboards/components/view-gate.es.js.map +1 -1
  253. package/dist/domains/dashboards/components/widget-chrome.cjs.js +1 -1
  254. package/dist/domains/dashboards/components/widget-chrome.es.js +1 -1
  255. package/dist/domains/dashboards/components/widget-controls.cjs.js +106 -0
  256. package/dist/domains/dashboards/components/widget-controls.cjs.js.map +1 -1
  257. package/dist/domains/dashboards/components/widget-controls.es.js +107 -3
  258. package/dist/domains/dashboards/components/widget-controls.es.js.map +1 -1
  259. package/dist/domains/dashboards/components/widget-error.cjs.js +1 -1
  260. package/dist/domains/dashboards/components/widget-error.es.js +1 -1
  261. package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js +55 -0
  262. package/dist/domains/dashboards/hooks/use-dashboard-environment.cjs.js.map +1 -0
  263. package/dist/domains/dashboards/hooks/use-dashboard-environment.d.ts +1 -0
  264. package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js +53 -0
  265. package/dist/domains/dashboards/hooks/use-dashboard-environment.es.js.map +1 -0
  266. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js +24 -0
  267. package/dist/domains/dashboards/hooks/use-dashboard-requests.cjs.js.map +1 -1
  268. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js +23 -1
  269. package/dist/domains/dashboards/hooks/use-dashboard-requests.es.js.map +1 -1
  270. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js +10 -6
  271. package/dist/domains/dashboards/hooks/use-widget-views.cjs.js.map +1 -1
  272. package/dist/domains/dashboards/hooks/use-widget-views.es.js +10 -7
  273. package/dist/domains/dashboards/hooks/use-widget-views.es.js.map +1 -1
  274. package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js +11 -0
  275. package/dist/domains/dashboards/kinds/kpis/kpis-plan.cjs.js.map +1 -0
  276. package/dist/domains/dashboards/kinds/kpis/kpis-plan.d.ts +1 -0
  277. package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js +9 -0
  278. package/dist/domains/dashboards/kinds/kpis/kpis-plan.es.js.map +1 -0
  279. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js +18 -19
  280. package/dist/domains/dashboards/kinds/kpis/kpis-widget.cjs.js.map +1 -1
  281. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js +18 -19
  282. package/dist/domains/dashboards/kinds/kpis/kpis-widget.es.js.map +1 -1
  283. package/dist/domains/dashboards/kinds/kpis.cjs.js +3 -0
  284. package/dist/domains/dashboards/kinds/kpis.cjs.js.map +1 -1
  285. package/dist/domains/dashboards/kinds/kpis.es.js +3 -0
  286. package/dist/domains/dashboards/kinds/kpis.es.js.map +1 -1
  287. package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js +27 -0
  288. package/dist/domains/dashboards/kinds/scores/scores-plan.cjs.js.map +1 -0
  289. package/dist/domains/dashboards/kinds/scores/scores-plan.d.ts +1 -0
  290. package/dist/domains/dashboards/kinds/scores/scores-plan.es.js +24 -0
  291. package/dist/domains/dashboards/kinds/scores/scores-plan.es.js.map +1 -0
  292. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js +25 -32
  293. package/dist/domains/dashboards/kinds/scores/scores-widget.cjs.js.map +1 -1
  294. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js +26 -33
  295. package/dist/domains/dashboards/kinds/scores/scores-widget.es.js.map +1 -1
  296. package/dist/domains/dashboards/kinds/scores.cjs.js +4 -0
  297. package/dist/domains/dashboards/kinds/scores.cjs.js.map +1 -1
  298. package/dist/domains/dashboards/kinds/scores.es.js +4 -0
  299. package/dist/domains/dashboards/kinds/scores.es.js.map +1 -1
  300. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js +2 -6
  301. package/dist/domains/dashboards/kinds/table/table-cells.cjs.js.map +1 -1
  302. package/dist/domains/dashboards/kinds/table/table-cells.es.js +2 -6
  303. package/dist/domains/dashboards/kinds/table/table-cells.es.js.map +1 -1
  304. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js +5 -3
  305. package/dist/domains/dashboards/kinds/table/table-columns.cjs.js.map +1 -1
  306. package/dist/domains/dashboards/kinds/table/table-columns.es.js +5 -3
  307. package/dist/domains/dashboards/kinds/table/table-columns.es.js.map +1 -1
  308. package/dist/domains/dashboards/kinds/table/table-plan.cjs.js +47 -0
  309. package/dist/domains/dashboards/kinds/table/table-plan.cjs.js.map +1 -0
  310. package/dist/domains/dashboards/kinds/table/table-plan.d.ts +1 -0
  311. package/dist/domains/dashboards/kinds/table/table-plan.es.js +44 -0
  312. package/dist/domains/dashboards/kinds/table/table-plan.es.js.map +1 -0
  313. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js +20 -26
  314. package/dist/domains/dashboards/kinds/table/table-tabs.cjs.js.map +1 -1
  315. package/dist/domains/dashboards/kinds/table/table-tabs.es.js +22 -28
  316. package/dist/domains/dashboards/kinds/table/table-tabs.es.js.map +1 -1
  317. package/dist/domains/dashboards/kinds/table/table-view.cjs.js +13 -13
  318. package/dist/domains/dashboards/kinds/table/table-view.cjs.js.map +1 -1
  319. package/dist/domains/dashboards/kinds/table/table-view.es.js +14 -14
  320. package/dist/domains/dashboards/kinds/table/table-view.es.js.map +1 -1
  321. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js +13 -17
  322. package/dist/domains/dashboards/kinds/table/table-widget.cjs.js.map +1 -1
  323. package/dist/domains/dashboards/kinds/table/table-widget.es.js +13 -17
  324. package/dist/domains/dashboards/kinds/table/table-widget.es.js.map +1 -1
  325. package/dist/domains/dashboards/kinds/table.cjs.js +4 -0
  326. package/dist/domains/dashboards/kinds/table.cjs.js.map +1 -1
  327. package/dist/domains/dashboards/kinds/table.es.js +4 -0
  328. package/dist/domains/dashboards/kinds/table.es.js.map +1 -1
  329. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js +18 -0
  330. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.cjs.js.map +1 -0
  331. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +1 -0
  332. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js +16 -0
  333. package/dist/domains/dashboards/kinds/timeseries/timeseries-plan.es.js.map +1 -0
  334. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js +22 -22
  335. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.cjs.js.map +1 -1
  336. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js +25 -25
  337. package/dist/domains/dashboards/kinds/timeseries/timeseries-widget.es.js.map +1 -1
  338. package/dist/domains/dashboards/kinds/timeseries.cjs.js +3 -0
  339. package/dist/domains/dashboards/kinds/timeseries.cjs.js.map +1 -1
  340. package/dist/domains/dashboards/kinds/timeseries.es.js +3 -0
  341. package/dist/domains/dashboards/kinds/timeseries.es.js.map +1 -1
  342. package/dist/domains/dashboards/lib/alert-actions.cjs.js +123 -0
  343. package/dist/domains/dashboards/lib/alert-actions.cjs.js.map +1 -0
  344. package/dist/domains/dashboards/lib/alert-actions.d.ts +1 -0
  345. package/dist/domains/dashboards/lib/alert-actions.es.js +118 -0
  346. package/dist/domains/dashboards/lib/alert-actions.es.js.map +1 -0
  347. package/dist/domains/dashboards/lib/gate.cjs.js +62 -0
  348. package/dist/domains/dashboards/lib/gate.cjs.js.map +1 -0
  349. package/dist/domains/dashboards/lib/gate.d.ts +1 -0
  350. package/dist/domains/dashboards/lib/gate.es.js +60 -0
  351. package/dist/domains/dashboards/lib/gate.es.js.map +1 -0
  352. package/dist/domains/dashboards/lib/plan-widget.cjs.js +41 -0
  353. package/dist/domains/dashboards/lib/plan-widget.cjs.js.map +1 -0
  354. package/dist/domains/dashboards/lib/plan-widget.d.ts +1 -0
  355. package/dist/domains/dashboards/lib/plan-widget.es.js +38 -0
  356. package/dist/domains/dashboards/lib/plan-widget.es.js.map +1 -0
  357. package/dist/domains/dashboards/lib/requests.cjs.js +47 -0
  358. package/dist/domains/dashboards/lib/requests.cjs.js.map +1 -1
  359. package/dist/domains/dashboards/lib/requests.es.js +46 -1
  360. package/dist/domains/dashboards/lib/requests.es.js.map +1 -1
  361. package/dist/domains/dashboards/lib/scores.cjs.js +32 -0
  362. package/dist/domains/dashboards/lib/scores.cjs.js.map +1 -1
  363. package/dist/domains/dashboards/lib/scores.es.js +31 -1
  364. package/dist/domains/dashboards/lib/scores.es.js.map +1 -1
  365. package/dist/domains/dashboards/lib/timeseries.cjs.js +17 -0
  366. package/dist/domains/dashboards/lib/timeseries.cjs.js.map +1 -1
  367. package/dist/domains/dashboards/lib/timeseries.es.js +17 -1
  368. package/dist/domains/dashboards/lib/timeseries.es.js.map +1 -1
  369. package/dist/domains/dashboards/lib/values.cjs.js.map +1 -1
  370. package/dist/domains/dashboards/lib/values.es.js.map +1 -1
  371. package/dist/domains/dashboards/widget-kind.cjs.js.map +1 -1
  372. package/dist/domains/dashboards/widget-kind.es.js.map +1 -1
  373. package/dist/domains/dashboards.cjs.js +19 -2
  374. package/dist/domains/dashboards.es.js +9 -5
  375. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +1 -1
  376. package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +1 -1
  377. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.cjs.js +2 -2
  378. package/dist/domains/datasets/components/add-dataset-item-dialog/trajectory-editor.es.js +2 -2
  379. package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +2 -2
  380. package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +2 -2
  381. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js +186 -212
  382. package/dist/domains/knowledge/components/KnowledgePageDetail.cjs.js.map +1 -1
  383. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js +188 -215
  384. package/dist/domains/knowledge/components/KnowledgePageDetail.es.js.map +1 -1
  385. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js +620 -268
  386. package/dist/domains/knowledge/components/KnowledgePageExplorer.cjs.js.map +1 -1
  387. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js +622 -270
  388. package/dist/domains/knowledge/components/KnowledgePageExplorer.es.js.map +1 -1
  389. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js +544 -454
  390. package/dist/domains/knowledge/components/KnowledgePageGraph.cjs.js.map +1 -1
  391. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js +548 -458
  392. package/dist/domains/knowledge/components/KnowledgePageGraph.es.js.map +1 -1
  393. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js +21 -12
  394. package/dist/domains/knowledge/components/KnowledgePageTree.cjs.js.map +1 -1
  395. package/dist/domains/knowledge/components/KnowledgePageTree.es.js +22 -13
  396. package/dist/domains/knowledge/components/KnowledgePageTree.es.js.map +1 -1
  397. package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js +16 -0
  398. package/dist/domains/knowledge/components/KnowledgeSourceIcon.cjs.js.map +1 -0
  399. package/dist/domains/knowledge/components/KnowledgeSourceIcon.d.ts +1 -0
  400. package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js +15 -0
  401. package/dist/domains/knowledge/components/KnowledgeSourceIcon.es.js.map +1 -0
  402. package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js +10 -0
  403. package/dist/domains/knowledge/components/KnowledgeTooltip.cjs.js.map +1 -0
  404. package/dist/domains/knowledge/components/KnowledgeTooltip.d.ts +1 -0
  405. package/dist/domains/knowledge/components/KnowledgeTooltip.es.js +9 -0
  406. package/dist/domains/knowledge/components/KnowledgeTooltip.es.js.map +1 -0
  407. package/dist/domains/knowledge/lib/fitViewport.cjs.js +22 -8
  408. package/dist/domains/knowledge/lib/fitViewport.cjs.js.map +1 -1
  409. package/dist/domains/knowledge/lib/fitViewport.es.js +22 -9
  410. package/dist/domains/knowledge/lib/fitViewport.es.js.map +1 -1
  411. package/dist/domains/knowledge/lib/pageAddress.cjs.js +51 -0
  412. package/dist/domains/knowledge/lib/pageAddress.cjs.js.map +1 -1
  413. package/dist/domains/knowledge/lib/pageAddress.es.js +50 -1
  414. package/dist/domains/knowledge/lib/pageAddress.es.js.map +1 -1
  415. package/dist/domains/knowledge/lib/pageRefs.cjs.js +43 -2
  416. package/dist/domains/knowledge/lib/pageRefs.cjs.js.map +1 -1
  417. package/dist/domains/knowledge/lib/pageRefs.es.js +43 -3
  418. package/dist/domains/knowledge/lib/pageRefs.es.js.map +1 -1
  419. package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js +10 -0
  420. package/dist/domains/knowledge/lib/pagesByRefContext.cjs.js.map +1 -0
  421. package/dist/domains/knowledge/lib/pagesByRefContext.d.ts +1 -0
  422. package/dist/domains/knowledge/lib/pagesByRefContext.es.js +10 -0
  423. package/dist/domains/knowledge/lib/pagesByRefContext.es.js.map +1 -0
  424. package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
  425. package/dist/domains/logs/components/log-data-panel.es.js +1 -1
  426. package/dist/domains/logs/components/logs-saved-views.cjs.js +1 -1
  427. package/dist/domains/logs/components/logs-saved-views.es.js +1 -1
  428. package/dist/domains/logs/components/logs-toolbar.cjs.js +1 -1
  429. package/dist/domains/logs/components/logs-toolbar.es.js +1 -1
  430. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js +28 -3
  431. package/dist/domains/mcps/components/mcp-app-tool-result.cjs.js.map +1 -1
  432. package/dist/domains/mcps/components/mcp-app-tool-result.es.js +27 -2
  433. package/dist/domains/mcps/components/mcp-app-tool-result.es.js.map +1 -1
  434. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js +163 -2
  435. package/dist/domains/mcps/components/mcp-app-viewer.cjs.js.map +1 -0
  436. package/dist/domains/mcps/components/mcp-app-viewer.es.js +163 -1
  437. package/dist/domains/mcps/components/mcp-app-viewer.es.js.map +1 -0
  438. package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js +11 -0
  439. package/dist/domains/mcps/context/mcp-app-host-context-value.cjs.js.map +1 -0
  440. package/dist/domains/mcps/context/mcp-app-host-context-value.d.ts +1 -0
  441. package/dist/domains/mcps/context/mcp-app-host-context-value.es.js +9 -0
  442. package/dist/domains/mcps/context/mcp-app-host-context-value.es.js.map +1 -0
  443. package/dist/domains/mcps/context/mcp-app-host-context.cjs.js +14 -0
  444. package/dist/domains/mcps/context/mcp-app-host-context.cjs.js.map +1 -0
  445. package/dist/domains/mcps/context/mcp-app-host-context.d.ts +1 -0
  446. package/dist/domains/mcps/context/mcp-app-host-context.es.js +13 -0
  447. package/dist/domains/mcps/context/mcp-app-host-context.es.js.map +1 -0
  448. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js +2 -1
  449. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.cjs.js.map +1 -1
  450. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js +2 -1
  451. package/dist/domains/mcps/hooks/use-mcp-app-tool-call.es.js.map +1 -1
  452. package/dist/domains/mcps.cjs.js +5 -0
  453. package/dist/domains/mcps.d.ts +1 -0
  454. package/dist/domains/mcps.es.js +3 -0
  455. package/dist/domains/metrics/components/agent-runs-card.cjs.js +1 -1
  456. package/dist/domains/metrics/components/agent-runs-card.es.js +1 -1
  457. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.cjs.js +1 -1
  458. package/dist/domains/metrics/components/breakdown/breakdown-tab-body.es.js +1 -1
  459. package/dist/domains/metrics/components/breakdown-card.cjs.js +1 -1
  460. package/dist/domains/metrics/components/breakdown-card.es.js +1 -1
  461. package/dist/domains/metrics/components/chart-area.cjs.js +1 -1
  462. package/dist/domains/metrics/components/chart-area.es.js +1 -1
  463. package/dist/domains/metrics/components/chart-card-error.cjs.js +1 -1
  464. package/dist/domains/metrics/components/chart-card-error.es.js +1 -1
  465. package/dist/domains/metrics/components/chart-card.cjs.js +1 -1
  466. package/dist/domains/metrics/components/chart-card.es.js +1 -1
  467. package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
  468. package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
  469. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.cjs.js +1 -1
  470. package/dist/domains/metrics/components/distinct-ids/distinct-ids-chart.es.js +1 -1
  471. package/dist/domains/metrics/components/failure-rate-card.cjs.js +1 -1
  472. package/dist/domains/metrics/components/failure-rate-card.es.js +1 -1
  473. package/dist/domains/metrics/components/latency-card.cjs.js +1 -1
  474. package/dist/domains/metrics/components/latency-card.es.js +1 -1
  475. package/dist/domains/metrics/components/metrics-time-range-chip.cjs.js +1 -1
  476. package/dist/domains/metrics/components/metrics-time-range-chip.es.js +1 -1
  477. package/dist/domains/metrics/components/token-usage-card.cjs.js +1 -1
  478. package/dist/domains/metrics/components/token-usage-card.es.js +1 -1
  479. package/dist/domains/metrics/components/trace-aggregate-card.cjs.js +1 -1
  480. package/dist/domains/metrics/components/trace-aggregate-card.es.js +1 -1
  481. package/dist/domains/metrics.cjs.js +3 -3
  482. package/dist/domains/metrics.es.js +3 -3
  483. package/dist/domains/observability/saved-views/observability-saved-views.cjs.js +1 -1
  484. package/dist/domains/observability/saved-views/observability-saved-views.es.js +1 -1
  485. package/dist/domains/observability/saved-views.cjs.js +1 -1
  486. package/dist/domains/observability/saved-views.es.js +1 -1
  487. package/dist/domains/observability.cjs.js +1 -1
  488. package/dist/domains/observability.es.js +1 -1
  489. package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
  490. package/dist/domains/scores/components/score-data-panel.es.js +1 -1
  491. package/dist/domains/scores/components/span-scoring.cjs.js +1 -1
  492. package/dist/domains/scores/components/span-scoring.es.js +1 -1
  493. package/dist/domains/scores/components/trace-scores-list.cjs.js +1 -1
  494. package/dist/domains/scores/components/trace-scores-list.es.js +1 -1
  495. package/dist/domains/skills/skill-simple-form.cjs.js +3 -3
  496. package/dist/domains/skills/skill-simple-form.es.js +3 -3
  497. package/dist/domains/spans/components/spans-explorer-body.cjs.js +1 -1
  498. package/dist/domains/spans/components/spans-explorer-body.es.js +1 -1
  499. package/dist/domains/spans/components/spans-filter-bar.cjs.js +2 -2
  500. package/dist/domains/spans/components/spans-filter-bar.es.js +2 -2
  501. package/dist/domains/spans/hooks/use-spans-filter-bar.cjs.js +1 -1
  502. package/dist/domains/spans/hooks/use-spans-filter-bar.es.js +1 -1
  503. package/dist/domains/threads/components/threads-explorer-body.cjs.js +1 -1
  504. package/dist/domains/threads/components/threads-explorer-body.es.js +1 -1
  505. package/dist/domains/threads/components/threads-filter-bar.cjs.js +2 -2
  506. package/dist/domains/threads/components/threads-filter-bar.es.js +2 -2
  507. package/dist/domains/threads/hooks/use-threads-filter-bar.cjs.js +1 -1
  508. package/dist/domains/threads/hooks/use-threads-filter-bar.es.js +1 -1
  509. package/dist/domains/traces/components/feedback-options.cjs.js +0 -0
  510. package/dist/domains/traces/components/feedback-options.d.ts +1 -0
  511. package/dist/domains/traces/components/feedback-options.es.js +0 -0
  512. package/dist/domains/traces/components/feedback-thread.cjs.js +10 -4
  513. package/dist/domains/traces/components/feedback-thread.cjs.js.map +1 -1
  514. package/dist/domains/traces/components/feedback-thread.es.js +10 -4
  515. package/dist/domains/traces/components/feedback-thread.es.js.map +1 -1
  516. package/dist/domains/traces/components/span-data-panel-view.cjs.js +2 -2
  517. package/dist/domains/traces/components/span-data-panel-view.es.js +2 -2
  518. package/dist/domains/traces/components/span-details-view.cjs.js +1 -1
  519. package/dist/domains/traces/components/span-details-view.es.js +1 -1
  520. package/dist/domains/traces/components/span-feedback-tab.cjs.js +8 -5
  521. package/dist/domains/traces/components/span-feedback-tab.cjs.js.map +1 -1
  522. package/dist/domains/traces/components/span-feedback-tab.es.js +8 -5
  523. package/dist/domains/traces/components/span-feedback-tab.es.js.map +1 -1
  524. package/dist/domains/traces/components/span-payload/span-error-renderer.cjs.js +1 -1
  525. package/dist/domains/traces/components/span-payload/span-error-renderer.es.js +1 -1
  526. package/dist/domains/traces/components/span-payload/span-input-renderers.cjs.js +1 -1
  527. package/dist/domains/traces/components/span-payload/span-input-renderers.es.js +1 -1
  528. package/dist/domains/traces/components/span-payload/span-output-renderers.cjs.js +2 -2
  529. package/dist/domains/traces/components/span-payload/span-output-renderers.es.js +2 -2
  530. package/dist/domains/traces/components/span-payload/span-payload-json.cjs.js +1 -1
  531. package/dist/domains/traces/components/span-payload/span-payload-json.es.js +1 -1
  532. package/dist/domains/traces/components/span-payload/span-payload-messages.cjs.js +2 -2
  533. package/dist/domains/traces/components/span-payload/span-payload-messages.es.js +2 -2
  534. package/dist/domains/traces/components/span-payload/span-payload-primitives.cjs.js +1 -1
  535. package/dist/domains/traces/components/span-payload/span-payload-primitives.es.js +1 -1
  536. package/dist/domains/traces/components/span-payload/span-payload-processor.cjs.js +1 -1
  537. package/dist/domains/traces/components/span-payload/span-payload-processor.es.js +1 -1
  538. package/dist/domains/traces/components/span-payload/span-payload-tool.cjs.js +1 -1
  539. package/dist/domains/traces/components/span-payload/span-payload-tool.es.js +1 -1
  540. package/dist/domains/traces/components/span-payload/span-processor-mutations.cjs.js +1 -1
  541. package/dist/domains/traces/components/span-payload/span-processor-mutations.es.js +1 -1
  542. package/dist/domains/traces/components/span-payload/span-tools-section.cjs.js +1 -1
  543. package/dist/domains/traces/components/span-payload/span-tools-section.es.js +1 -1
  544. package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
  545. package/dist/domains/traces/components/span-summary-description.es.js +1 -1
  546. package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
  547. package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
  548. package/dist/domains/traces/components/thread-trace/thread-trace-messages.cjs.js +2 -2
  549. package/dist/domains/traces/components/thread-trace/thread-trace-messages.es.js +2 -2
  550. package/dist/domains/traces/components/thread-trace/thread-trace-row.cjs.js +1 -1
  551. package/dist/domains/traces/components/thread-trace/thread-trace-row.es.js +1 -1
  552. package/dist/domains/traces/components/thread-view-by-trace.cjs.js +5 -3
  553. package/dist/domains/traces/components/thread-view-by-trace.cjs.js.map +1 -1
  554. package/dist/domains/traces/components/thread-view-by-trace.es.js +5 -3
  555. package/dist/domains/traces/components/thread-view-by-trace.es.js.map +1 -1
  556. package/dist/domains/traces/components/trace-columns-menu.cjs.js +2 -2
  557. package/dist/domains/traces/components/trace-columns-menu.es.js +2 -2
  558. package/dist/domains/traces/components/trace-data-panel-view.cjs.js +2 -2
  559. package/dist/domains/traces/components/trace-data-panel-view.es.js +2 -2
  560. package/dist/domains/traces/components/trace-details-view.cjs.js +1 -1
  561. package/dist/domains/traces/components/trace-details-view.es.js +1 -1
  562. package/dist/domains/traces/components/trace-feedback-tab.cjs.js +9 -4
  563. package/dist/domains/traces/components/trace-feedback-tab.cjs.js.map +1 -1
  564. package/dist/domains/traces/components/trace-feedback-tab.es.js +9 -4
  565. package/dist/domains/traces/components/trace-feedback-tab.es.js.map +1 -1
  566. package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
  567. package/dist/domains/traces/components/trace-id-button.es.js +1 -1
  568. package/dist/domains/traces/components/trace-span-panel.cjs.js +2 -1
  569. package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
  570. package/dist/domains/traces/components/trace-span-panel.es.js +2 -1
  571. package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
  572. package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
  573. package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
  574. package/dist/domains/traces/components/trace-thread-panel.cjs.js +3 -2
  575. package/dist/domains/traces/components/trace-thread-panel.cjs.js.map +1 -1
  576. package/dist/domains/traces/components/trace-thread-panel.es.js +3 -2
  577. package/dist/domains/traces/components/trace-thread-panel.es.js.map +1 -1
  578. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
  579. package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
  580. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
  581. package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
  582. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +8 -3
  583. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
  584. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +8 -3
  585. package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
  586. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +14 -1
  587. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
  588. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +14 -1
  589. package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
  590. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.cjs.js +1 -1
  591. package/dist/domains/traces/components/traces-explorer/traces-explorer-saved-views.es.js +1 -1
  592. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +1 -1
  593. package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
  594. package/dist/domains/traces/components/traces-explorer.cjs.js.map +1 -1
  595. package/dist/domains/traces/components/traces-explorer.es.js.map +1 -1
  596. package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +1 -1
  597. package/dist/domains/traces/components/traces-list-mode-toggle.es.js +1 -1
  598. package/dist/domains/traces/components/traces-list-view.cjs.js +1 -1
  599. package/dist/domains/traces/components/traces-list-view.es.js +1 -1
  600. package/dist/domains/traces/components/traces-spans-switch.cjs.js +1 -1
  601. package/dist/domains/traces/components/traces-spans-switch.es.js +1 -1
  602. package/dist/domains/workflows/components/workflow-combobox.cjs.js +1 -1
  603. package/dist/domains/workflows/components/workflow-combobox.es.js +1 -1
  604. package/dist/domains/workflows/components/workflow-layout.cjs.js +1 -1
  605. package/dist/domains/workflows/components/workflow-layout.es.js +1 -1
  606. package/dist/domains/workflows/components/workflow-step-detail.cjs.js +2 -2
  607. package/dist/domains/workflows/components/workflow-step-detail.es.js +2 -2
  608. package/dist/domains/workflows/workflow/data/workflow-data-button.cjs.js +1 -1
  609. package/dist/domains/workflows/workflow/data/workflow-data-button.es.js +1 -1
  610. package/dist/domains/workflows/workflow/data/workflow-data-inspector.cjs.js +1 -1
  611. package/dist/domains/workflows/workflow/data/workflow-data-inspector.es.js +1 -1
  612. package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
  613. package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
  614. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.cjs.js +1 -1
  615. package/dist/domains/workflows/workflow/use-workflow-graph-runtime.es.js +1 -1
  616. package/dist/domains/workflows/workflow/utils.cjs.js +1 -1
  617. package/dist/domains/workflows/workflow/utils.es.js +1 -1
  618. package/dist/domains/workflows/workflow/workflow-body-graph.cjs.js +1 -1
  619. package/dist/domains/workflows/workflow/workflow-body-graph.es.js +1 -1
  620. package/dist/domains/workflows/workflow/workflow-data-edge.cjs.js +1 -1
  621. package/dist/domains/workflows/workflow/workflow-data-edge.es.js +1 -1
  622. package/dist/domains/workflows/workflow/workflow-debug-step-controls.cjs.js +1 -1
  623. package/dist/domains/workflows/workflow/workflow-debug-step-controls.es.js +1 -1
  624. package/dist/domains/workflows/workflow/workflow-graph-inner.cjs.js +2 -2
  625. package/dist/domains/workflows/workflow/workflow-graph-inner.es.js +2 -2
  626. package/dist/domains/workflows/workflow/workflow-graph-layout.cjs.js +1 -1
  627. package/dist/domains/workflows/workflow/workflow-graph-layout.es.js +1 -1
  628. package/dist/domains/workflows/workflow/workflow-graph-node.cjs.js +1 -1
  629. package/dist/domains/workflows/workflow/workflow-graph-node.es.js +1 -1
  630. package/dist/domains/workflows/workflow/workflow-graph.cjs.js +1 -1
  631. package/dist/domains/workflows/workflow/workflow-graph.es.js +1 -1
  632. package/dist/domains/workflows/workflow/workflow-map-config-dialog.cjs.js +1 -1
  633. package/dist/domains/workflows/workflow/workflow-map-config-dialog.es.js +1 -1
  634. package/dist/domains/workflows/workflow/workflow-nested-graph.cjs.js +1 -1
  635. package/dist/domains/workflows/workflow/workflow-nested-graph.es.js +1 -1
  636. package/dist/domains/workflows/workflow/workflow-run-data.cjs.js +3 -3
  637. package/dist/domains/workflows/workflow/workflow-run-data.es.js +3 -3
  638. package/dist/domains/workflows/workflow/workflow-status.cjs.js +1 -1
  639. package/dist/domains/workflows/workflow/workflow-status.es.js +1 -1
  640. package/dist/domains/workflows/workflow/workflow-step-action-bar.cjs.js +1 -1
  641. package/dist/domains/workflows/workflow/workflow-step-action-bar.es.js +1 -1
  642. package/dist/domains/workflows/workflow/workflow-step-node-utils.cjs.js +1 -1
  643. package/dist/domains/workflows/workflow/workflow-step-node-utils.es.js +1 -1
  644. package/dist/domains/workflows/workflow/workflow-suspended-steps.cjs.js +1 -1
  645. package/dist/domains/workflows/workflow/workflow-suspended-steps.es.js +1 -1
  646. package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
  647. package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
  648. package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +1 -1
  649. package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +1 -1
  650. package/dist/domains/workspace/components/workspace-create-directory.cjs.js +1 -1
  651. package/dist/domains/workspace/components/workspace-create-directory.es.js +1 -1
  652. package/dist/domains/workspace/components/workspace-markdown-preview.cjs.js +1 -1
  653. package/dist/domains/workspace/components/workspace-markdown-preview.es.js +1 -1
  654. package/dist/domains/workspace/components/workspace-search.cjs.js +1 -1
  655. package/dist/domains/workspace/components/workspace-search.es.js +1 -1
  656. package/dist/domains/workspace/components/workspace-tree.cjs.js +1 -1
  657. package/dist/domains/workspace/components/workspace-tree.es.js +1 -1
  658. package/dist/{dropdown-menu-Dx-jCOIv.cjs → dropdown-menu-D3D8USIY.cjs} +9 -1
  659. package/dist/dropdown-menu-D3D8USIY.cjs.map +1 -0
  660. package/dist/{dropdown-menu-DKoWI8kD.js → dropdown-menu-jsf9D-J_.js} +9 -1
  661. package/dist/dropdown-menu-jsf9D-J_.js.map +1 -0
  662. package/dist/ee/signals/sankey-signals.cjs.js +1 -1
  663. package/dist/ee/signals/sankey-signals.es.js +1 -1
  664. package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +1 -1
  665. package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +1 -1
  666. package/dist/ee/signals/settings/trace-signal-settings.cjs.js +1 -1
  667. package/dist/ee/signals/settings/trace-signal-settings.es.js +1 -1
  668. package/dist/ee/signals/view-mode-tab.cjs.js +1 -1
  669. package/dist/ee/signals/view-mode-tab.es.js +1 -1
  670. package/dist/{filter-bar-chip-NBtfDca9.js → filter-bar-chip-Cz5GYBWP.js} +2 -2
  671. package/dist/{filter-bar-chip-NBtfDca9.js.map → filter-bar-chip-Cz5GYBWP.js.map} +1 -1
  672. package/dist/{filter-bar-chip-DFsbUZ-V.cjs → filter-bar-chip-q2Zr-cnY.cjs} +2 -2
  673. package/dist/{filter-bar-chip-DFsbUZ-V.cjs.map → filter-bar-chip-q2Zr-cnY.cjs.map} +1 -1
  674. package/dist/{filter-bar-time-range-DlVNjw43.cjs → filter-bar-time-range-D4C3kU0J.cjs} +3 -3
  675. package/dist/{filter-bar-time-range-DlVNjw43.cjs.map → filter-bar-time-range-D4C3kU0J.cjs.map} +1 -1
  676. package/dist/{filter-bar-time-range-D9SnzR2J.js → filter-bar-time-range-ao2YiYEJ.js} +3 -3
  677. package/dist/{filter-bar-time-range-D9SnzR2J.js.map → filter-bar-time-range-ao2YiYEJ.js.map} +1 -1
  678. package/dist/icons/ConfluenceIcon.cjs.js +18 -0
  679. package/dist/icons/ConfluenceIcon.cjs.js.map +1 -0
  680. package/dist/icons/ConfluenceIcon.d.ts +1 -0
  681. package/dist/icons/ConfluenceIcon.es.js +15 -0
  682. package/dist/icons/ConfluenceIcon.es.js.map +1 -0
  683. package/dist/icons/NotionIcon.cjs.js +18 -0
  684. package/dist/icons/NotionIcon.cjs.js.map +1 -0
  685. package/dist/icons/NotionIcon.d.ts +1 -0
  686. package/dist/icons/NotionIcon.es.js +15 -0
  687. package/dist/icons/NotionIcon.es.js.map +1 -0
  688. package/dist/icons/ZendeskIcon.cjs.js +18 -0
  689. package/dist/icons/ZendeskIcon.cjs.js.map +1 -0
  690. package/dist/icons/ZendeskIcon.d.ts +1 -0
  691. package/dist/icons/ZendeskIcon.es.js +15 -0
  692. package/dist/icons/ZendeskIcon.es.js.map +1 -0
  693. package/dist/{input-Cyit5ZSc.js → input-BNykbvOz.js} +2 -2
  694. package/dist/input-BNykbvOz.js.map +1 -0
  695. package/dist/{input-BpnUsQSt.cjs → input-D_V0m95F.cjs} +2 -2
  696. package/dist/input-D_V0m95F.cjs.map +1 -0
  697. package/dist/{input-group-NV4ZzKOk.js → input-group-CCSyY4J5.js} +3 -3
  698. package/dist/{input-group-NV4ZzKOk.js.map → input-group-CCSyY4J5.js.map} +1 -1
  699. package/dist/{input-group-DBCilXjT.cjs → input-group-Da8HBo30.cjs} +3 -3
  700. package/dist/{input-group-DBCilXjT.cjs.map → input-group-Da8HBo30.cjs.map} +1 -1
  701. package/dist/layout/tabbed-container.cjs.js +1 -1
  702. package/dist/layout/tabbed-container.es.js +1 -1
  703. package/dist/lib/form/components/number-field.cjs.js +1 -1
  704. package/dist/lib/form/components/number-field.es.js +1 -1
  705. package/dist/lib/form/components/record-field.cjs.js +1 -1
  706. package/dist/lib/form/components/record-field.es.js +1 -1
  707. package/dist/{observability-saved-views-DgABvgat.cjs → observability-saved-views-CzRPN_9m.cjs} +4 -4
  708. package/dist/{observability-saved-views-DgABvgat.cjs.map → observability-saved-views-CzRPN_9m.cjs.map} +1 -1
  709. package/dist/{observability-saved-views-Ch53fh5_.js → observability-saved-views-hu_hkXVY.js} +4 -4
  710. package/dist/{observability-saved-views-Ch53fh5_.js.map → observability-saved-views-hu_hkXVY.js.map} +1 -1
  711. package/dist/primitives/menu-item.cjs.js +1 -1
  712. package/dist/primitives/menu-item.cjs.js.map +1 -1
  713. package/dist/primitives/menu-item.es.js +1 -1
  714. package/dist/primitives/menu-item.es.js.map +1 -1
  715. package/dist/{property-filter-applied-DuyL4S_K.cjs → property-filter-applied-ML84st6J.cjs} +3 -3
  716. package/dist/{property-filter-applied-DuyL4S_K.cjs.map → property-filter-applied-ML84st6J.cjs.map} +1 -1
  717. package/dist/{property-filter-applied-DoxQHG09.js → property-filter-applied-PaJ7sLsM.js} +3 -3
  718. package/dist/{property-filter-applied-DoxQHG09.js.map → property-filter-applied-PaJ7sLsM.js.map} +1 -1
  719. package/dist/{span-payload-primitives-D2NWznGy.cjs → span-payload-primitives-CL3hlirm.cjs} +3 -3
  720. package/dist/{span-payload-primitives-D2NWznGy.cjs.map → span-payload-primitives-CL3hlirm.cjs.map} +1 -1
  721. package/dist/{span-payload-primitives-BKkRpVVO.js → span-payload-primitives-KxqoXspn.js} +3 -3
  722. package/dist/{span-payload-primitives-BKkRpVVO.js.map → span-payload-primitives-KxqoXspn.js.map} +1 -1
  723. package/dist/src/domains/dashboards/components/connected-widget.d.ts +9 -0
  724. package/dist/src/domains/dashboards/components/dashboard-renderer.d.ts +9 -2
  725. package/dist/src/domains/dashboards/components/stateless-widget.d.ts +40 -0
  726. package/dist/src/domains/dashboards/components/view-gate.d.ts +2 -10
  727. package/dist/src/domains/dashboards/components/widget-controls.d.ts +25 -1
  728. package/dist/src/domains/dashboards/hooks/use-dashboard-environment.d.ts +8 -0
  729. package/dist/src/domains/dashboards/hooks/use-dashboard-requests.d.ts +11 -1
  730. package/dist/src/domains/dashboards/hooks/use-widget-views.d.ts +8 -2
  731. package/dist/src/domains/dashboards/index.d.ts +14 -6
  732. package/dist/src/domains/dashboards/kinds/kpis/kpis-plan.d.ts +355 -0
  733. package/dist/src/domains/dashboards/kinds/kpis/kpis-widget.d.ts +1 -1
  734. package/dist/src/domains/dashboards/kinds/scores/scores-plan.d.ts +358 -0
  735. package/dist/src/domains/dashboards/kinds/scores/scores-widget.d.ts +1 -1
  736. package/dist/src/domains/dashboards/kinds/table/table-cells.d.ts +6 -2
  737. package/dist/src/domains/dashboards/kinds/table/table-columns.d.ts +2 -1
  738. package/dist/src/domains/dashboards/kinds/table/table-plan.d.ts +18 -0
  739. package/dist/src/domains/dashboards/kinds/table/table-tabs.d.ts +1 -1
  740. package/dist/src/domains/dashboards/kinds/table/table-view.d.ts +1 -0
  741. package/dist/src/domains/dashboards/kinds/timeseries/timeseries-plan.d.ts +355 -0
  742. package/dist/src/domains/dashboards/lib/alert-actions.d.ts +36 -0
  743. package/dist/src/domains/dashboards/lib/gate.d.ts +65 -0
  744. package/dist/src/domains/dashboards/lib/plan-widget.d.ts +390 -0
  745. package/dist/src/domains/dashboards/lib/requests.d.ts +22 -0
  746. package/dist/src/domains/dashboards/lib/scores.d.ts +11 -1
  747. package/dist/src/domains/dashboards/lib/timeseries.d.ts +6 -1
  748. package/dist/src/domains/dashboards/lib/values.d.ts +5 -0
  749. package/dist/src/domains/dashboards/widget-kind.d.ts +105 -2
  750. package/dist/src/domains/knowledge/components/KnowledgePageDetail.d.ts +7 -1
  751. package/dist/src/domains/knowledge/components/KnowledgePageExplorer.d.ts +4 -1
  752. package/dist/src/domains/knowledge/components/KnowledgePageGraph.d.ts +3 -0
  753. package/dist/src/domains/knowledge/components/KnowledgeSourceIcon.d.ts +5 -0
  754. package/dist/src/domains/knowledge/components/KnowledgeTooltip.d.ts +5 -0
  755. package/dist/src/domains/knowledge/lib/fitViewport.d.ts +9 -2
  756. package/dist/src/domains/knowledge/lib/pageAddress.d.ts +10 -0
  757. package/dist/src/domains/knowledge/lib/pageRefs.d.ts +12 -1
  758. package/dist/src/domains/knowledge/lib/pagesByRefContext.d.ts +6 -0
  759. package/dist/src/domains/mcps/components/mcp-app-tool-result.d.ts +3 -1
  760. package/dist/src/domains/mcps/components/mcp-app-viewer.d.ts +6 -1
  761. package/dist/src/domains/mcps/context/mcp-app-host-context-value.d.ts +23 -0
  762. package/dist/src/domains/mcps/context/mcp-app-host-context.d.ts +7 -0
  763. package/dist/src/domains/mcps/index.d.ts +3 -0
  764. package/dist/src/domains/traces/components/feedback-options.d.ts +8 -0
  765. package/dist/src/domains/traces/components/feedback-thread.d.ts +2 -1
  766. package/dist/src/domains/traces/components/span-feedback-tab.d.ts +4 -2
  767. package/dist/src/domains/traces/components/thread-view-by-trace.d.ts +4 -1
  768. package/dist/src/domains/traces/components/trace-feedback-tab.d.ts +4 -2
  769. package/dist/src/domains/traces/components/trace-span-panel.d.ts +3 -1
  770. package/dist/src/domains/traces/components/trace-thread-panel.d.ts +3 -1
  771. package/dist/src/domains/traces/components/traces-explorer/index.d.ts +1 -0
  772. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +2 -0
  773. package/dist/src/domains/traces/components/traces-explorer/traces-explorer-root.d.ts +4 -1
  774. package/dist/src/ds/components/Breadcrumb/Breadcrumb.d.ts +2 -0
  775. package/dist/src/ds/components/DropdownMenu/dropdown-menu.d.ts +3 -0
  776. package/dist/src/ds/components/Tree/tree-label.d.ts +1 -1
  777. package/dist/src/ds/icons/ConfluenceIcon.d.ts +2 -0
  778. package/dist/src/ds/icons/NotionIcon.d.ts +2 -0
  779. package/dist/src/ds/icons/ZendeskIcon.d.ts +2 -0
  780. package/dist/src/ds/icons/index.d.ts +3 -0
  781. package/dist/src/utils/mcp-app-context.d.ts +6 -0
  782. package/dist/style.css +85 -35
  783. package/dist/{tabbed-container-Bhfi-DWr.cjs → tabbed-container-BMLD6mvc.cjs} +4 -4
  784. package/dist/{tabbed-container-Bhfi-DWr.cjs.map → tabbed-container-BMLD6mvc.cjs.map} +1 -1
  785. package/dist/{tabbed-container-DOkHshha.js → tabbed-container-CaS8cZCS.js} +4 -4
  786. package/dist/{tabbed-container-DOkHshha.js.map → tabbed-container-CaS8cZCS.js.map} +1 -1
  787. package/dist/{tabs-content-DwU_eA-a.js → tabs-content-BGkPZ5EQ.js} +2 -2
  788. package/dist/{tabs-content-DwU_eA-a.js.map → tabs-content-BGkPZ5EQ.js.map} +1 -1
  789. package/dist/{tabs-content-BACwMrMG.cjs → tabs-content-D_ic2ZqI.cjs} +2 -2
  790. package/dist/{tabs-content-BACwMrMG.cjs.map → tabs-content-D_ic2ZqI.cjs.map} +1 -1
  791. package/dist/{tabs-tab-BHs639jL.js → tabs-tab-CJVS0WED.js} +2 -2
  792. package/dist/{tabs-tab-BHs639jL.js.map → tabs-tab-CJVS0WED.js.map} +1 -1
  793. package/dist/{tabs-tab-CANh2eAD.cjs → tabs-tab-Dj2huH5T.cjs} +2 -2
  794. package/dist/{tabs-tab-CANh2eAD.cjs.map → tabs-tab-Dj2huH5T.cjs.map} +1 -1
  795. package/dist/{tool-approval-CguPaikn.cjs → tool-approval-C4WNL8VD.cjs} +3 -3
  796. package/dist/{tool-approval-CguPaikn.cjs.map → tool-approval-C4WNL8VD.cjs.map} +1 -1
  797. package/dist/{tool-approval-Cjz0yAzw.js → tool-approval-ZfL3-Vvi.js} +3 -3
  798. package/dist/{tool-approval-Cjz0yAzw.js.map → tool-approval-ZfL3-Vvi.js.map} +1 -1
  799. package/dist/{tool-call-ChJKYCfu.js → tool-call-BLzYTI-x.js} +2 -2
  800. package/dist/{tool-call-ChJKYCfu.js.map → tool-call-BLzYTI-x.js.map} +1 -1
  801. package/dist/{tool-call-BqDI9mrY.cjs → tool-call-C4TBpJ6Y.cjs} +2 -2
  802. package/dist/{tool-call-BqDI9mrY.cjs.map → tool-call-C4TBpJ6Y.cjs.map} +1 -1
  803. package/dist/{tool-card-GSiCfxMz.js → tool-card-CM0aHG3p.js} +4 -3
  804. package/dist/{tool-card-GSiCfxMz.js.map → tool-card-CM0aHG3p.js.map} +1 -1
  805. package/dist/{tool-card-Dg4VOYV6.cjs → tool-card-xDlCD0m6.cjs} +4 -3
  806. package/dist/{tool-card-Dg4VOYV6.cjs.map → tool-card-xDlCD0m6.cjs.map} +1 -1
  807. package/dist/{mcp-app-viewer-BV7FI498.js → types-BwdKiX24.js} +2 -144
  808. package/dist/types-BwdKiX24.js.map +1 -0
  809. package/dist/{mcp-app-viewer-M3-pqAlo.cjs → types-KjLUPShK.cjs} +8 -144
  810. package/dist/types-KjLUPShK.cjs.map +1 -0
  811. package/dist/{use-workflow-graph-runtime-BfCL6nd4.cjs → use-workflow-graph-runtime-DEJA9rk4.cjs} +2 -2
  812. package/dist/{use-workflow-graph-runtime-BfCL6nd4.cjs.map → use-workflow-graph-runtime-DEJA9rk4.cjs.map} +1 -1
  813. package/dist/{use-workflow-graph-runtime-B3VUuhUE.js → use-workflow-graph-runtime-DHOsA1DM.js} +2 -2
  814. package/dist/{use-workflow-graph-runtime-B3VUuhUE.js.map → use-workflow-graph-runtime-DHOsA1DM.js.map} +1 -1
  815. package/dist/utils/mcp-app-context.cjs.js +17 -0
  816. package/dist/utils/mcp-app-context.cjs.js.map +1 -0
  817. package/dist/utils/mcp-app-context.d.ts +1 -0
  818. package/dist/utils/mcp-app-context.es.js +15 -0
  819. package/dist/utils/mcp-app-context.es.js.map +1 -0
  820. package/package.json +8 -8
  821. package/dist/Composer-bVE8qK52.js.map +0 -1
  822. package/dist/Composer-u1K6edoZ.cjs.map +0 -1
  823. package/dist/FilterBar-Kmn6gMgO.js.map +0 -1
  824. package/dist/FilterBar-jBz6yaNu.cjs.map +0 -1
  825. package/dist/MetricsCard-DojbLiEx.cjs.map +0 -1
  826. package/dist/MetricsCard-kAqSCPPe.js.map +0 -1
  827. package/dist/Tree-Caz4FTCU.cjs.map +0 -1
  828. package/dist/Tree-od43gLMO.js.map +0 -1
  829. package/dist/combobox-parts-BeNqgCbj.cjs.map +0 -1
  830. package/dist/combobox-parts-C9o4UfH_.js.map +0 -1
  831. package/dist/domains/dashboards/hooks/use-scorers.cjs.js +0 -41
  832. package/dist/domains/dashboards/hooks/use-scorers.cjs.js.map +0 -1
  833. package/dist/domains/dashboards/hooks/use-scorers.d.ts +0 -1
  834. package/dist/domains/dashboards/hooks/use-scorers.es.js +0 -40
  835. package/dist/domains/dashboards/hooks/use-scorers.es.js.map +0 -1
  836. package/dist/dropdown-menu-DKoWI8kD.js.map +0 -1
  837. package/dist/dropdown-menu-Dx-jCOIv.cjs.map +0 -1
  838. package/dist/input-BpnUsQSt.cjs.map +0 -1
  839. package/dist/input-Cyit5ZSc.js.map +0 -1
  840. package/dist/mcp-app-viewer-BV7FI498.js.map +0 -1
  841. package/dist/mcp-app-viewer-M3-pqAlo.cjs.map +0 -1
  842. package/dist/src/domains/dashboards/hooks/use-scorers.d.ts +0 -66
@@ -1,5 +1,54 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_icons_ConfluenceIcon = require("../../../icons/ConfluenceIcon.cjs.js");
3
+ const require_icons_GithubIcon = require("../../../icons/GithubIcon.cjs.js");
4
+ const require_icons_GoogleIcon = require("../../../icons/GoogleIcon.cjs.js");
5
+ const require_icons_LinearIcon = require("../../../icons/LinearIcon.cjs.js");
6
+ const require_icons_NotionIcon = require("../../../icons/NotionIcon.cjs.js");
7
+ const require_icons_SlackIcon = require("../../../icons/SlackIcon.cjs.js");
8
+ const require_icons_ZendeskIcon = require("../../../icons/ZendeskIcon.cjs.js");
2
9
  // src/domains/knowledge/lib/pageAddress.ts
10
+ var SOURCES = {
11
+ linear: {
12
+ label: "Linear",
13
+ icon: require_icons_LinearIcon.LinearIcon
14
+ },
15
+ notion: {
16
+ label: "Notion",
17
+ icon: require_icons_NotionIcon.NotionIcon
18
+ },
19
+ confluence: {
20
+ label: "Confluence",
21
+ icon: require_icons_ConfluenceIcon.ConfluenceIcon
22
+ },
23
+ zendesk: {
24
+ label: "Zendesk",
25
+ icon: require_icons_ZendeskIcon.ZendeskIcon
26
+ },
27
+ fireflies: { label: "Fireflies" },
28
+ github: {
29
+ label: "GitHub",
30
+ icon: require_icons_GithubIcon.GithubIcon
31
+ },
32
+ slack: {
33
+ label: "Slack",
34
+ icon: require_icons_SlackIcon.SlackIcon
35
+ },
36
+ google: {
37
+ label: "Google",
38
+ icon: require_icons_GoogleIcon.GoogleIcon
39
+ }
40
+ };
41
+ /** The source an imported scope came from, read from its address prefix (`linear:…`). */
42
+ function scopeSource(page) {
43
+ if (!page.isScope || !page.address) return void 0;
44
+ const prefix = page.address.slice(0, page.address.indexOf(":"));
45
+ return Object.hasOwn(SOURCES, prefix) ? SOURCES[prefix] : void 0;
46
+ }
47
+ /** A scope's readable name: an imported scope named only by its address reads as its source, e.g. "Linear". */
48
+ function scopeTitle(page) {
49
+ const source = scopeSource(page);
50
+ return source && page.name === page.address ? source.label : page.name;
51
+ }
3
52
  /** The page's place from its root scope down, through the pages the graph holds. */
4
53
  function pagePath(page, byId) {
5
54
  const names = [];
@@ -25,5 +74,7 @@ function pageRef(page, byId) {
25
74
  }
26
75
  exports.pagePath = pagePath;
27
76
  exports.pageRef = pageRef;
77
+ exports.scopeSource = scopeSource;
78
+ exports.scopeTitle = scopeTitle;
28
79
 
29
80
  //# sourceMappingURL=pageAddress.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pageAddress.cjs.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageAddress.ts"],"sourcesContent":["import type { KnowledgePagePayload } from '../pageTypes';\n\n/** The page's place from its root scope down, through the pages the graph holds. */\nexport function pagePath(page: KnowledgePagePayload, byId: ReadonlyMap<string, KnowledgePagePayload>): string {\n const names: string[] = [];\n const seen = new Set<string>();\n for (let up = page.parentId ? byId.get(page.parentId) : undefined; up && !seen.has(up.id);) {\n seen.add(up.id);\n names.unshift(up.isScope && up.address ? up.address : up.name);\n up = up.parentId ? byId.get(up.parentId) : undefined;\n }\n return names.join(' › ');\n}\n\n/** How the page is addressed: its scope's address, then the keys down to it. Scopes are just their address. */\nexport function pageRef(\n page: KnowledgePagePayload,\n byId: ReadonlyMap<string, KnowledgePagePayload>,\n): string | undefined {\n if (page.isScope) return page.address;\n const keys: string[] = [];\n const seen = new Set<string>();\n for (\n let at: KnowledgePagePayload | undefined = page;\n at && !seen.has(at.id);\n at = at.parentId ? byId.get(at.parentId) : undefined\n ) {\n seen.add(at.id);\n if (at.isScope) return at.address ? `${at.address}#${keys.reverse().join('/')}` : undefined;\n if (!at.key) return undefined;\n keys.push(at.key);\n }\n return undefined;\n}\n"],"mappings":";;;AAGA,SAAgB,SAAS,MAA4B,MAAyD;CAC5G,MAAM,QAAkB,CAAC;CACzB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KAAK,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAA,GAAW,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,IAAI;EAC1F,KAAK,IAAI,GAAG,EAAE;EACd,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI;EAC7D,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA;CAC7C;CACA,OAAO,MAAM,KAAK,KAAK;AACzB;;AAGA,SAAgB,QACd,MACA,MACoB;CACpB,IAAI,KAAK,SAAS,OAAO,KAAK;CAC9B,MAAM,OAAiB,CAAC;CACxB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KACE,IAAI,KAAuC,MAC3C,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,GACrB,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA,GAC3C;EACA,KAAK,IAAI,GAAG,EAAE;EACd,IAAI,GAAG,SAAS,OAAO,GAAG,UAAU,GAAG,GAAG,QAAQ,GAAG,KAAK,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM,KAAA;EAClF,IAAI,CAAC,GAAG,KAAK,OAAO,KAAA;EACpB,KAAK,KAAK,GAAG,GAAG;CAClB;AAEF"}
1
+ {"version":3,"file":"pageAddress.cjs.js","names":["LinearIcon","NotionIcon","ConfluenceIcon","ZendeskIcon","GithubIcon","SlackIcon","GoogleIcon"],"sources":["../../../../src/domains/knowledge/lib/pageAddress.ts"],"sourcesContent":["import type { ComponentType, SVGProps } from 'react';\n\nimport type { KnowledgePagePayload } from '../pageTypes';\n\nimport { ConfluenceIcon, GithubIcon, GoogleIcon, LinearIcon, NotionIcon, SlackIcon, ZendeskIcon } from '@/ds/icons';\n\ntype KnowledgeSource = { label: string; icon?: ComponentType<SVGProps<SVGSVGElement>> };\n\nconst SOURCES: Record<string, KnowledgeSource> = {\n linear: { label: 'Linear', icon: LinearIcon },\n notion: { label: 'Notion', icon: NotionIcon },\n confluence: { label: 'Confluence', icon: ConfluenceIcon },\n zendesk: { label: 'Zendesk', icon: ZendeskIcon },\n fireflies: { label: 'Fireflies' },\n github: { label: 'GitHub', icon: GithubIcon },\n slack: { label: 'Slack', icon: SlackIcon },\n google: { label: 'Google', icon: GoogleIcon },\n};\n\n/** The source an imported scope came from, read from its address prefix (`linear:…`). */\nexport function scopeSource(page: KnowledgePagePayload) {\n if (!page.isScope || !page.address) return undefined;\n const prefix = page.address.slice(0, page.address.indexOf(':'));\n return Object.hasOwn(SOURCES, prefix) ? SOURCES[prefix] : undefined;\n}\n\n/** A scope's readable name: an imported scope named only by its address reads as its source, e.g. \"Linear\". */\nexport function scopeTitle(page: KnowledgePagePayload): string {\n const source = scopeSource(page);\n return source && page.name === page.address ? source.label : page.name;\n}\n\n/** The page's place from its root scope down, through the pages the graph holds. */\nexport function pagePath(page: KnowledgePagePayload, byId: ReadonlyMap<string, KnowledgePagePayload>): string {\n const names: string[] = [];\n const seen = new Set<string>();\n for (let up = page.parentId ? byId.get(page.parentId) : undefined; up && !seen.has(up.id);) {\n seen.add(up.id);\n names.unshift(up.isScope && up.address ? up.address : up.name);\n up = up.parentId ? byId.get(up.parentId) : undefined;\n }\n return names.join(' › ');\n}\n\n/** How the page is addressed: its scope's address, then the keys down to it. Scopes are just their address. */\nexport function pageRef(\n page: KnowledgePagePayload,\n byId: ReadonlyMap<string, KnowledgePagePayload>,\n): string | undefined {\n if (page.isScope) return page.address;\n const keys: string[] = [];\n const seen = new Set<string>();\n for (\n let at: KnowledgePagePayload | undefined = page;\n at && !seen.has(at.id);\n at = at.parentId ? byId.get(at.parentId) : undefined\n ) {\n seen.add(at.id);\n if (at.isScope) return at.address ? `${at.address}#${keys.reverse().join('/')}` : undefined;\n if (!at.key) return undefined;\n keys.push(at.key);\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;;AAQA,IAAM,UAA2C;CAC/C,QAAQ;EAAE,OAAO;EAAU,MAAMA,yBAAAA;CAAW;CAC5C,QAAQ;EAAE,OAAO;EAAU,MAAMC,yBAAAA;CAAW;CAC5C,YAAY;EAAE,OAAO;EAAc,MAAMC,6BAAAA;CAAe;CACxD,SAAS;EAAE,OAAO;EAAW,MAAMC,0BAAAA;CAAY;CAC/C,WAAW,EAAE,OAAO,YAAY;CAChC,QAAQ;EAAE,OAAO;EAAU,MAAMC,yBAAAA;CAAW;CAC5C,OAAO;EAAE,OAAO;EAAS,MAAMC,wBAAAA;CAAU;CACzC,QAAQ;EAAE,OAAO;EAAU,MAAMC,yBAAAA;CAAW;AAC9C;;AAGA,SAAgB,YAAY,MAA4B;CACtD,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,SAAS,OAAO,KAAA;CAC3C,MAAM,SAAS,KAAK,QAAQ,MAAM,GAAG,KAAK,QAAQ,QAAQ,GAAG,CAAC;CAC9D,OAAO,OAAO,OAAO,SAAS,MAAM,IAAI,QAAQ,UAAU,KAAA;AAC5D;;AAGA,SAAgB,WAAW,MAAoC;CAC7D,MAAM,SAAS,YAAY,IAAI;CAC/B,OAAO,UAAU,KAAK,SAAS,KAAK,UAAU,OAAO,QAAQ,KAAK;AACpE;;AAGA,SAAgB,SAAS,MAA4B,MAAyD;CAC5G,MAAM,QAAkB,CAAC;CACzB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KAAK,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAA,GAAW,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,IAAI;EAC1F,KAAK,IAAI,GAAG,EAAE;EACd,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI;EAC7D,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA;CAC7C;CACA,OAAO,MAAM,KAAK,KAAK;AACzB;;AAGA,SAAgB,QACd,MACA,MACoB;CACpB,IAAI,KAAK,SAAS,OAAO,KAAK;CAC9B,MAAM,OAAiB,CAAC;CACxB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KACE,IAAI,KAAuC,MAC3C,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,GACrB,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA,GAC3C;EACA,KAAK,IAAI,GAAG,EAAE;EACd,IAAI,GAAG,SAAS,OAAO,GAAG,UAAU,GAAG,GAAG,QAAQ,GAAG,KAAK,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM,KAAA;EAClF,IAAI,CAAC,GAAG,KAAK,OAAO,KAAA;EACpB,KAAK,KAAK,GAAG,GAAG;CAClB;AAEF"}
@@ -1,4 +1,53 @@
1
+ import { ConfluenceIcon } from "../../../icons/ConfluenceIcon.es.js";
2
+ import { GithubIcon } from "../../../icons/GithubIcon.es.js";
3
+ import { GoogleIcon } from "../../../icons/GoogleIcon.es.js";
4
+ import { LinearIcon } from "../../../icons/LinearIcon.es.js";
5
+ import { NotionIcon } from "../../../icons/NotionIcon.es.js";
6
+ import { SlackIcon } from "../../../icons/SlackIcon.es.js";
7
+ import { ZendeskIcon } from "../../../icons/ZendeskIcon.es.js";
1
8
  // src/domains/knowledge/lib/pageAddress.ts
9
+ var SOURCES = {
10
+ linear: {
11
+ label: "Linear",
12
+ icon: LinearIcon
13
+ },
14
+ notion: {
15
+ label: "Notion",
16
+ icon: NotionIcon
17
+ },
18
+ confluence: {
19
+ label: "Confluence",
20
+ icon: ConfluenceIcon
21
+ },
22
+ zendesk: {
23
+ label: "Zendesk",
24
+ icon: ZendeskIcon
25
+ },
26
+ fireflies: { label: "Fireflies" },
27
+ github: {
28
+ label: "GitHub",
29
+ icon: GithubIcon
30
+ },
31
+ slack: {
32
+ label: "Slack",
33
+ icon: SlackIcon
34
+ },
35
+ google: {
36
+ label: "Google",
37
+ icon: GoogleIcon
38
+ }
39
+ };
40
+ /** The source an imported scope came from, read from its address prefix (`linear:…`). */
41
+ function scopeSource(page) {
42
+ if (!page.isScope || !page.address) return void 0;
43
+ const prefix = page.address.slice(0, page.address.indexOf(":"));
44
+ return Object.hasOwn(SOURCES, prefix) ? SOURCES[prefix] : void 0;
45
+ }
46
+ /** A scope's readable name: an imported scope named only by its address reads as its source, e.g. "Linear". */
47
+ function scopeTitle(page) {
48
+ const source = scopeSource(page);
49
+ return source && page.name === page.address ? source.label : page.name;
50
+ }
2
51
  /** The page's place from its root scope down, through the pages the graph holds. */
3
52
  function pagePath(page, byId) {
4
53
  const names = [];
@@ -22,6 +71,6 @@ function pageRef(page, byId) {
22
71
  keys.push(at.key);
23
72
  }
24
73
  }
25
- export { pagePath, pageRef };
74
+ export { pagePath, pageRef, scopeSource, scopeTitle };
26
75
 
27
76
  //# sourceMappingURL=pageAddress.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pageAddress.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageAddress.ts"],"sourcesContent":["import type { KnowledgePagePayload } from '../pageTypes';\n\n/** The page's place from its root scope down, through the pages the graph holds. */\nexport function pagePath(page: KnowledgePagePayload, byId: ReadonlyMap<string, KnowledgePagePayload>): string {\n const names: string[] = [];\n const seen = new Set<string>();\n for (let up = page.parentId ? byId.get(page.parentId) : undefined; up && !seen.has(up.id);) {\n seen.add(up.id);\n names.unshift(up.isScope && up.address ? up.address : up.name);\n up = up.parentId ? byId.get(up.parentId) : undefined;\n }\n return names.join(' › ');\n}\n\n/** How the page is addressed: its scope's address, then the keys down to it. Scopes are just their address. */\nexport function pageRef(\n page: KnowledgePagePayload,\n byId: ReadonlyMap<string, KnowledgePagePayload>,\n): string | undefined {\n if (page.isScope) return page.address;\n const keys: string[] = [];\n const seen = new Set<string>();\n for (\n let at: KnowledgePagePayload | undefined = page;\n at && !seen.has(at.id);\n at = at.parentId ? byId.get(at.parentId) : undefined\n ) {\n seen.add(at.id);\n if (at.isScope) return at.address ? `${at.address}#${keys.reverse().join('/')}` : undefined;\n if (!at.key) return undefined;\n keys.push(at.key);\n }\n return undefined;\n}\n"],"mappings":";;AAGA,SAAgB,SAAS,MAA4B,MAAyD;CAC5G,MAAM,QAAkB,CAAC;CACzB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KAAK,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAA,GAAW,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,IAAI;EAC1F,KAAK,IAAI,GAAG,EAAE;EACd,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI;EAC7D,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA;CAC7C;CACA,OAAO,MAAM,KAAK,KAAK;AACzB;;AAGA,SAAgB,QACd,MACA,MACoB;CACpB,IAAI,KAAK,SAAS,OAAO,KAAK;CAC9B,MAAM,OAAiB,CAAC;CACxB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KACE,IAAI,KAAuC,MAC3C,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,GACrB,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA,GAC3C;EACA,KAAK,IAAI,GAAG,EAAE;EACd,IAAI,GAAG,SAAS,OAAO,GAAG,UAAU,GAAG,GAAG,QAAQ,GAAG,KAAK,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM,KAAA;EAClF,IAAI,CAAC,GAAG,KAAK,OAAO,KAAA;EACpB,KAAK,KAAK,GAAG,GAAG;CAClB;AAEF"}
1
+ {"version":3,"file":"pageAddress.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageAddress.ts"],"sourcesContent":["import type { ComponentType, SVGProps } from 'react';\n\nimport type { KnowledgePagePayload } from '../pageTypes';\n\nimport { ConfluenceIcon, GithubIcon, GoogleIcon, LinearIcon, NotionIcon, SlackIcon, ZendeskIcon } from '@/ds/icons';\n\ntype KnowledgeSource = { label: string; icon?: ComponentType<SVGProps<SVGSVGElement>> };\n\nconst SOURCES: Record<string, KnowledgeSource> = {\n linear: { label: 'Linear', icon: LinearIcon },\n notion: { label: 'Notion', icon: NotionIcon },\n confluence: { label: 'Confluence', icon: ConfluenceIcon },\n zendesk: { label: 'Zendesk', icon: ZendeskIcon },\n fireflies: { label: 'Fireflies' },\n github: { label: 'GitHub', icon: GithubIcon },\n slack: { label: 'Slack', icon: SlackIcon },\n google: { label: 'Google', icon: GoogleIcon },\n};\n\n/** The source an imported scope came from, read from its address prefix (`linear:…`). */\nexport function scopeSource(page: KnowledgePagePayload) {\n if (!page.isScope || !page.address) return undefined;\n const prefix = page.address.slice(0, page.address.indexOf(':'));\n return Object.hasOwn(SOURCES, prefix) ? SOURCES[prefix] : undefined;\n}\n\n/** A scope's readable name: an imported scope named only by its address reads as its source, e.g. \"Linear\". */\nexport function scopeTitle(page: KnowledgePagePayload): string {\n const source = scopeSource(page);\n return source && page.name === page.address ? source.label : page.name;\n}\n\n/** The page's place from its root scope down, through the pages the graph holds. */\nexport function pagePath(page: KnowledgePagePayload, byId: ReadonlyMap<string, KnowledgePagePayload>): string {\n const names: string[] = [];\n const seen = new Set<string>();\n for (let up = page.parentId ? byId.get(page.parentId) : undefined; up && !seen.has(up.id);) {\n seen.add(up.id);\n names.unshift(up.isScope && up.address ? up.address : up.name);\n up = up.parentId ? byId.get(up.parentId) : undefined;\n }\n return names.join(' › ');\n}\n\n/** How the page is addressed: its scope's address, then the keys down to it. Scopes are just their address. */\nexport function pageRef(\n page: KnowledgePagePayload,\n byId: ReadonlyMap<string, KnowledgePagePayload>,\n): string | undefined {\n if (page.isScope) return page.address;\n const keys: string[] = [];\n const seen = new Set<string>();\n for (\n let at: KnowledgePagePayload | undefined = page;\n at && !seen.has(at.id);\n at = at.parentId ? byId.get(at.parentId) : undefined\n ) {\n seen.add(at.id);\n if (at.isScope) return at.address ? `${at.address}#${keys.reverse().join('/')}` : undefined;\n if (!at.key) return undefined;\n keys.push(at.key);\n }\n return undefined;\n}\n"],"mappings":";;;;;;;;AAQA,IAAM,UAA2C;CAC/C,QAAQ;EAAE,OAAO;EAAU,MAAM;CAAW;CAC5C,QAAQ;EAAE,OAAO;EAAU,MAAM;CAAW;CAC5C,YAAY;EAAE,OAAO;EAAc,MAAM;CAAe;CACxD,SAAS;EAAE,OAAO;EAAW,MAAM;CAAY;CAC/C,WAAW,EAAE,OAAO,YAAY;CAChC,QAAQ;EAAE,OAAO;EAAU,MAAM;CAAW;CAC5C,OAAO;EAAE,OAAO;EAAS,MAAM;CAAU;CACzC,QAAQ;EAAE,OAAO;EAAU,MAAM;CAAW;AAC9C;;AAGA,SAAgB,YAAY,MAA4B;CACtD,IAAI,CAAC,KAAK,WAAW,CAAC,KAAK,SAAS,OAAO,KAAA;CAC3C,MAAM,SAAS,KAAK,QAAQ,MAAM,GAAG,KAAK,QAAQ,QAAQ,GAAG,CAAC;CAC9D,OAAO,OAAO,OAAO,SAAS,MAAM,IAAI,QAAQ,UAAU,KAAA;AAC5D;;AAGA,SAAgB,WAAW,MAAoC;CAC7D,MAAM,SAAS,YAAY,IAAI;CAC/B,OAAO,UAAU,KAAK,SAAS,KAAK,UAAU,OAAO,QAAQ,KAAK;AACpE;;AAGA,SAAgB,SAAS,MAA4B,MAAyD;CAC5G,MAAM,QAAkB,CAAC;CACzB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KAAK,IAAI,KAAK,KAAK,WAAW,KAAK,IAAI,KAAK,QAAQ,IAAI,KAAA,GAAW,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,IAAI;EAC1F,KAAK,IAAI,GAAG,EAAE;EACd,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI;EAC7D,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA;CAC7C;CACA,OAAO,MAAM,KAAK,KAAK;AACzB;;AAGA,SAAgB,QACd,MACA,MACoB;CACpB,IAAI,KAAK,SAAS,OAAO,KAAK;CAC9B,MAAM,OAAiB,CAAC;CACxB,MAAM,uBAAO,IAAI,IAAY;CAC7B,KACE,IAAI,KAAuC,MAC3C,MAAM,CAAC,KAAK,IAAI,GAAG,EAAE,GACrB,KAAK,GAAG,WAAW,KAAK,IAAI,GAAG,QAAQ,IAAI,KAAA,GAC3C;EACA,KAAK,IAAI,GAAG,EAAE;EACd,IAAI,GAAG,SAAS,OAAO,GAAG,UAAU,GAAG,GAAG,QAAQ,GAAG,KAAK,QAAQ,CAAC,CAAC,KAAK,GAAG,MAAM,KAAA;EAClF,IAAI,CAAC,GAAG,KAAK,OAAO,KAAA;EACpB,KAAK,KAAK,GAAG,GAAG;CAClB;AAEF"}
@@ -4,7 +4,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  function canonicalName(name) {
5
5
  return name.normalize("NFKC").trim().replace(/\s+/g, " ").toLowerCase();
6
6
  }
7
- function knowledgePageRefIndex(pages) {
7
+ /**
8
+ * `byRef` holds pages fetched by the exact ref that names them, so a `scope#key/key` ref resolves even when
9
+ * the pages on its path aren't loaded.
10
+ */
11
+ function knowledgePageRefIndex(pages, byRef = /* @__PURE__ */ new Map()) {
8
12
  const byId = /* @__PURE__ */ new Map();
9
13
  const scopesByAddress = /* @__PURE__ */ new Map();
10
14
  const childByKey = /* @__PURE__ */ new Map();
@@ -32,9 +36,45 @@ function knowledgePageRefIndex(pages) {
32
36
  return { resolve(raw) {
33
37
  const ref = raw.trim();
34
38
  if (!ref) return void 0;
35
- return byId.get(ref) ?? byPath(ref) ?? scopesByAddress.get(ref) ?? byName.get(canonicalName(ref)) ?? void 0;
39
+ const fetched = byRef.get(ref);
40
+ return byId.get(ref) ?? (fetched && !fetched.deletedAt && !fetched.mergedInto ? fetched : void 0) ?? byPath(ref) ?? scopesByAddress.get(ref) ?? byName.get(canonicalName(ref)) ?? void 0;
36
41
  } };
37
42
  }
43
+ /**
44
+ * The page a note's `[[ref]]` links to: only one the server resolved the note's mentions to. When the index
45
+ * can't walk the ref's path (pages on the way aren't loaded), a mentioned page stands for it if it is the only
46
+ * one in the ref's scope (which must be loaded) whose key ends the path and whose loaded parents match the
47
+ * keys before it.
48
+ */
49
+ function noteMentionTarget(index, pagesById, mentions, ref) {
50
+ const resolved = index.resolve(ref);
51
+ if (resolved) return mentions.includes(resolved.id) ? resolved : void 0;
52
+ const trimmed = ref.trim();
53
+ const hash = trimmed.indexOf("#");
54
+ if (hash <= 0) return void 0;
55
+ const address = trimmed.slice(0, hash);
56
+ const scope = [...pagesById.values()].find((candidate) => candidate.isScope && candidate.address === address);
57
+ if (!scope) return void 0;
58
+ const keys = trimmed.slice(hash + 1).split("/");
59
+ const candidates = mentions.flatMap((id) => {
60
+ const page = pagesById.get(id);
61
+ return page && onPath(page, scope, keys, pagesById) ? [page] : [];
62
+ });
63
+ return candidates.length === 1 ? candidates[0] : void 0;
64
+ }
65
+ /** Whether `page` can sit at `keys` under `scope`: its key and every loaded parent's key match, in that scope. */
66
+ function onPath(page, scope, keys, pagesById) {
67
+ if (page.isScope || page.deletedAt || page.mergedInto || page.scopeId !== scope.id) return false;
68
+ let current = page;
69
+ for (let depth = keys.length - 1; depth >= 0; depth--) {
70
+ if (current.key !== keys[depth]) return false;
71
+ if (current.parentId === scope.id) return depth === 0;
72
+ const parent = current.parentId ? pagesById.get(current.parentId) : void 0;
73
+ if (!parent) return depth > 0;
74
+ current = parent;
75
+ }
76
+ return false;
77
+ }
38
78
  var WIKILINK = /\[\[([^\]]+)\]\]/g;
39
79
  var FENCED_CODE = /^(`{3,}|~{3,})[^\n]*\n[\s\S]*?(?:^\1[ \t]*$|(?![\s\S]))/gm;
40
80
  var INLINE_CODE = /(`+)[\s\S]*?\1/g;
@@ -65,5 +105,6 @@ function bodyLinkEdges(pages) {
65
105
  exports.bodyLinkEdges = bodyLinkEdges;
66
106
  exports.bodyLinkRefs = bodyLinkRefs;
67
107
  exports.knowledgePageRefIndex = knowledgePageRefIndex;
108
+ exports.noteMentionTarget = noteMentionTarget;
68
109
 
69
110
  //# sourceMappingURL=pageRefs.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pageRefs.cjs.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageRefs.ts"],"sourcesContent":["/**\n * Resolves `[[ref]]` links in page bodies and notes against the pages the explorer has loaded, in the\n * order core's `run.page(ref)` uses: page id, then `scope#key/key` path, then scope address, then a\n * unique page name (an ambiguous name resolves to nothing, as it throws in core). The server does not\n * resolve body links, so a link to a page outside the loaded set stays unresolved.\n */\n\nimport type { KnowledgePageEdge, KnowledgePagePayload } from '../pageTypes';\n\nexport interface KnowledgePageRefIndex {\n resolve: (ref: string) => KnowledgePagePayload | undefined;\n}\n\n/** Same as core's `canonicalKnowledgeName`. */\nfunction canonicalName(name: string): string {\n return name.normalize('NFKC').trim().replace(/\\s+/g, ' ').toLowerCase();\n}\n\nexport function knowledgePageRefIndex(pages: Iterable<KnowledgePagePayload>): KnowledgePageRefIndex {\n const byId = new Map<string, KnowledgePagePayload>();\n const scopesByAddress = new Map<string, KnowledgePagePayload>();\n const childByKey = new Map<string, KnowledgePagePayload>();\n const byName = new Map<string, KnowledgePagePayload | null>();\n for (const page of pages) {\n if (page.deletedAt || page.mergedInto) continue;\n byId.set(page.id, page);\n if (page.isScope && page.address) scopesByAddress.set(page.address, page);\n if (!page.isScope && page.key && page.parentId) childByKey.set(`${page.parentId}\\u0000${page.key}`, page);\n const name = canonicalName(page.name);\n byName.set(name, byName.has(name) ? null : page);\n }\n\n const byPath = (ref: string): KnowledgePagePayload | undefined => {\n const hash = ref.indexOf('#');\n if (hash <= 0) return undefined;\n const scope = scopesByAddress.get(ref.slice(0, hash));\n if (!scope) return undefined;\n let page: KnowledgePagePayload | undefined = scope;\n for (const key of ref.slice(hash + 1).split('/')) {\n page = childByKey.get(`${page.id}\\u0000${key}`);\n if (!page || page.scopeId !== scope.id) return undefined;\n }\n return page === scope ? undefined : page;\n };\n\n return {\n resolve(raw) {\n const ref = raw.trim();\n if (!ref) return undefined;\n return byId.get(ref) ?? byPath(ref) ?? scopesByAddress.get(ref) ?? byName.get(canonicalName(ref)) ?? undefined;\n },\n };\n}\n\nconst WIKILINK = /\\[\\[([^\\]]+)\\]\\]/g;\n// Code is shown as written, so a `[[ref]]` inside it is not a link.\nconst FENCED_CODE = /^(`{3,}|~{3,})[^\\n]*\\n[\\s\\S]*?(?:^\\1[ \\t]*$|(?![\\s\\S]))/gm;\nconst INLINE_CODE = /(`+)[\\s\\S]*?\\1/g;\n\n/** The `[[ref]]`s in a markdown body, outside code. */\nexport function bodyLinkRefs(body: string): string[] {\n const prose = body.replace(FENCED_CODE, '').replace(INLINE_CODE, '');\n return [...prose.matchAll(WIKILINK)].map(match => match[1] ?? '');\n}\n\n/** One `link` edge per page whose body links another loaded page; `count` is how many times. */\nexport function bodyLinkEdges(pages: KnowledgePagePayload[]): KnowledgePageEdge[] {\n const index = knowledgePageRefIndex(pages);\n const edges: KnowledgePageEdge[] = [];\n for (const page of pages) {\n if (!page.body || page.deletedAt || page.mergedInto) continue;\n const counts = new Map<string, number>();\n for (const ref of bodyLinkRefs(page.body)) {\n const target = index.resolve(ref);\n if (target && target.id !== page.id) counts.set(target.id, (counts.get(target.id) ?? 0) + 1);\n }\n for (const [target, count] of counts) edges.push({ source: page.id, target, kind: 'link', count });\n }\n return edges;\n}\n"],"mappings":";;;AAcA,SAAS,cAAc,MAAsB;CAC3C,OAAO,KAAK,UAAU,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,YAAY;AACxE;AAEA,SAAgB,sBAAsB,OAA8D;CAClG,MAAM,uBAAO,IAAI,IAAkC;CACnD,MAAM,kCAAkB,IAAI,IAAkC;CAC9D,MAAM,6BAAa,IAAI,IAAkC;CACzD,MAAM,yBAAS,IAAI,IAAyC;CAC5D,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,aAAa,KAAK,YAAY;EACvC,KAAK,IAAI,KAAK,IAAI,IAAI;EACtB,IAAI,KAAK,WAAW,KAAK,SAAS,gBAAgB,IAAI,KAAK,SAAS,IAAI;EACxE,IAAI,CAAC,KAAK,WAAW,KAAK,OAAO,KAAK,UAAU,WAAW,IAAI,GAAG,KAAK,SAAS,QAAQ,KAAK,OAAO,IAAI;EACxG,MAAM,OAAO,cAAc,KAAK,IAAI;EACpC,OAAO,IAAI,MAAM,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI;CACjD;CAEA,MAAM,UAAU,QAAkD;EAChE,MAAM,OAAO,IAAI,QAAQ,GAAG;EAC5B,IAAI,QAAQ,GAAG,OAAO,KAAA;EACtB,MAAM,QAAQ,gBAAgB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;EACpD,IAAI,CAAC,OAAO,OAAO,KAAA;EACnB,IAAI,OAAyC;EAC7C,KAAK,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG;GAChD,OAAO,WAAW,IAAI,GAAG,KAAK,GAAG,QAAQ,KAAK;GAC9C,IAAI,CAAC,QAAQ,KAAK,YAAY,MAAM,IAAI,OAAO,KAAA;EACjD;EACA,OAAO,SAAS,QAAQ,KAAA,IAAY;CACtC;CAEA,OAAO,EACL,QAAQ,KAAK;EACX,MAAM,MAAM,IAAI,KAAK;EACrB,IAAI,CAAC,KAAK,OAAO,KAAA;EACjB,OAAO,KAAK,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,OAAO,IAAI,cAAc,GAAG,CAAC,KAAK,KAAA;CACvG,EACF;AACF;AAEA,IAAM,WAAW;AAEjB,IAAM,cAAc;AACpB,IAAM,cAAc;;AAGpB,SAAgB,aAAa,MAAwB;CAEnD,OAAO,CAAC,GADM,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,QAAQ,aAAa,EACtD,CAAA,CAAM,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAI,UAAS,MAAM,MAAM,EAAE;AAClE;;AAGA,SAAgB,cAAc,OAAoD;CAChF,MAAM,QAAQ,sBAAsB,KAAK;CACzC,MAAM,QAA6B,CAAC;CACpC,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,CAAC,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY;EACrD,MAAM,yBAAS,IAAI,IAAoB;EACvC,KAAK,MAAM,OAAO,aAAa,KAAK,IAAI,GAAG;GACzC,MAAM,SAAS,MAAM,QAAQ,GAAG;GAChC,IAAI,UAAU,OAAO,OAAO,KAAK,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,KAAK,KAAK,CAAC;EAC7F;EACA,KAAK,MAAM,CAAC,QAAQ,UAAU,QAAQ,MAAM,KAAK;GAAE,QAAQ,KAAK;GAAI;GAAQ,MAAM;GAAQ;EAAM,CAAC;CACnG;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"pageRefs.cjs.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageRefs.ts"],"sourcesContent":["/**\n * Resolves `[[ref]]` links in page bodies and notes against the pages the explorer has loaded, in the\n * order core's `run.page(ref)` uses: page id, then `scope#key/key` path, then scope address, then a\n * unique page name (an ambiguous name resolves to nothing, as it throws in core). The server does not\n * resolve body links, so a link to a page outside the loaded set stays unresolved.\n */\n\nimport type { KnowledgePageEdge, KnowledgePagePayload } from '../pageTypes';\n\nexport interface KnowledgePageRefIndex {\n resolve: (ref: string) => KnowledgePagePayload | undefined;\n}\n\n/** Same as core's `canonicalKnowledgeName`. */\nfunction canonicalName(name: string): string {\n return name.normalize('NFKC').trim().replace(/\\s+/g, ' ').toLowerCase();\n}\n\n/**\n * `byRef` holds pages fetched by the exact ref that names them, so a `scope#key/key` ref resolves even when\n * the pages on its path aren't loaded.\n */\nexport function knowledgePageRefIndex(\n pages: Iterable<KnowledgePagePayload>,\n byRef: ReadonlyMap<string, KnowledgePagePayload> = new Map(),\n): KnowledgePageRefIndex {\n const byId = new Map<string, KnowledgePagePayload>();\n const scopesByAddress = new Map<string, KnowledgePagePayload>();\n const childByKey = new Map<string, KnowledgePagePayload>();\n const byName = new Map<string, KnowledgePagePayload | null>();\n for (const page of pages) {\n if (page.deletedAt || page.mergedInto) continue;\n byId.set(page.id, page);\n if (page.isScope && page.address) scopesByAddress.set(page.address, page);\n if (!page.isScope && page.key && page.parentId) childByKey.set(`${page.parentId}\\u0000${page.key}`, page);\n const name = canonicalName(page.name);\n byName.set(name, byName.has(name) ? null : page);\n }\n\n const byPath = (ref: string): KnowledgePagePayload | undefined => {\n const hash = ref.indexOf('#');\n if (hash <= 0) return undefined;\n const scope = scopesByAddress.get(ref.slice(0, hash));\n if (!scope) return undefined;\n let page: KnowledgePagePayload | undefined = scope;\n for (const key of ref.slice(hash + 1).split('/')) {\n page = childByKey.get(`${page.id}\\u0000${key}`);\n if (!page || page.scopeId !== scope.id) return undefined;\n }\n return page === scope ? undefined : page;\n };\n\n return {\n resolve(raw) {\n const ref = raw.trim();\n if (!ref) return undefined;\n const fetched = byRef.get(ref);\n return (\n byId.get(ref) ??\n (fetched && !fetched.deletedAt && !fetched.mergedInto ? fetched : undefined) ??\n byPath(ref) ??\n scopesByAddress.get(ref) ??\n byName.get(canonicalName(ref)) ??\n undefined\n );\n },\n };\n}\n\n/**\n * The page a note's `[[ref]]` links to: only one the server resolved the note's mentions to. When the index\n * can't walk the ref's path (pages on the way aren't loaded), a mentioned page stands for it if it is the only\n * one in the ref's scope (which must be loaded) whose key ends the path and whose loaded parents match the\n * keys before it.\n */\nexport function noteMentionTarget(\n index: KnowledgePageRefIndex,\n pagesById: ReadonlyMap<string, KnowledgePagePayload>,\n mentions: readonly string[],\n ref: string,\n): KnowledgePagePayload | undefined {\n const resolved = index.resolve(ref);\n if (resolved) return mentions.includes(resolved.id) ? resolved : undefined;\n const trimmed = ref.trim();\n const hash = trimmed.indexOf('#');\n if (hash <= 0) return undefined;\n const address = trimmed.slice(0, hash);\n const scope = [...pagesById.values()].find(candidate => candidate.isScope && candidate.address === address);\n if (!scope) return undefined;\n const keys = trimmed.slice(hash + 1).split('/');\n const candidates = mentions.flatMap(id => {\n const page = pagesById.get(id);\n return page && onPath(page, scope, keys, pagesById) ? [page] : [];\n });\n return candidates.length === 1 ? candidates[0] : undefined;\n}\n\n/** Whether `page` can sit at `keys` under `scope`: its key and every loaded parent's key match, in that scope. */\nfunction onPath(\n page: KnowledgePagePayload,\n scope: KnowledgePagePayload,\n keys: string[],\n pagesById: ReadonlyMap<string, KnowledgePagePayload>,\n): boolean {\n if (page.isScope || page.deletedAt || page.mergedInto || page.scopeId !== scope.id) return false;\n let current = page;\n for (let depth = keys.length - 1; depth >= 0; depth--) {\n if (current.key !== keys[depth]) return false;\n if (current.parentId === scope.id) return depth === 0;\n const parent = current.parentId ? pagesById.get(current.parentId) : undefined;\n if (!parent) return depth > 0;\n current = parent;\n }\n return false;\n}\n\nconst WIKILINK = /\\[\\[([^\\]]+)\\]\\]/g;\n// Code is shown as written, so a `[[ref]]` inside it is not a link.\nconst FENCED_CODE = /^(`{3,}|~{3,})[^\\n]*\\n[\\s\\S]*?(?:^\\1[ \\t]*$|(?![\\s\\S]))/gm;\nconst INLINE_CODE = /(`+)[\\s\\S]*?\\1/g;\n\n/** The `[[ref]]`s in a markdown body, outside code. */\nexport function bodyLinkRefs(body: string): string[] {\n const prose = body.replace(FENCED_CODE, '').replace(INLINE_CODE, '');\n return [...prose.matchAll(WIKILINK)].map(match => match[1] ?? '');\n}\n\n/** One `link` edge per page whose body links another loaded page; `count` is how many times. */\nexport function bodyLinkEdges(pages: KnowledgePagePayload[]): KnowledgePageEdge[] {\n const index = knowledgePageRefIndex(pages);\n const edges: KnowledgePageEdge[] = [];\n for (const page of pages) {\n if (!page.body || page.deletedAt || page.mergedInto) continue;\n const counts = new Map<string, number>();\n for (const ref of bodyLinkRefs(page.body)) {\n const target = index.resolve(ref);\n if (target && target.id !== page.id) counts.set(target.id, (counts.get(target.id) ?? 0) + 1);\n }\n for (const [target, count] of counts) edges.push({ source: page.id, target, kind: 'link', count });\n }\n return edges;\n}\n"],"mappings":";;;AAcA,SAAS,cAAc,MAAsB;CAC3C,OAAO,KAAK,UAAU,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,YAAY;AACxE;;;;;AAMA,SAAgB,sBACd,OACA,wBAAmD,IAAI,IAAI,GACpC;CACvB,MAAM,uBAAO,IAAI,IAAkC;CACnD,MAAM,kCAAkB,IAAI,IAAkC;CAC9D,MAAM,6BAAa,IAAI,IAAkC;CACzD,MAAM,yBAAS,IAAI,IAAyC;CAC5D,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,aAAa,KAAK,YAAY;EACvC,KAAK,IAAI,KAAK,IAAI,IAAI;EACtB,IAAI,KAAK,WAAW,KAAK,SAAS,gBAAgB,IAAI,KAAK,SAAS,IAAI;EACxE,IAAI,CAAC,KAAK,WAAW,KAAK,OAAO,KAAK,UAAU,WAAW,IAAI,GAAG,KAAK,SAAS,QAAQ,KAAK,OAAO,IAAI;EACxG,MAAM,OAAO,cAAc,KAAK,IAAI;EACpC,OAAO,IAAI,MAAM,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI;CACjD;CAEA,MAAM,UAAU,QAAkD;EAChE,MAAM,OAAO,IAAI,QAAQ,GAAG;EAC5B,IAAI,QAAQ,GAAG,OAAO,KAAA;EACtB,MAAM,QAAQ,gBAAgB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;EACpD,IAAI,CAAC,OAAO,OAAO,KAAA;EACnB,IAAI,OAAyC;EAC7C,KAAK,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG;GAChD,OAAO,WAAW,IAAI,GAAG,KAAK,GAAG,QAAQ,KAAK;GAC9C,IAAI,CAAC,QAAQ,KAAK,YAAY,MAAM,IAAI,OAAO,KAAA;EACjD;EACA,OAAO,SAAS,QAAQ,KAAA,IAAY;CACtC;CAEA,OAAO,EACL,QAAQ,KAAK;EACX,MAAM,MAAM,IAAI,KAAK;EACrB,IAAI,CAAC,KAAK,OAAO,KAAA;EACjB,MAAM,UAAU,MAAM,IAAI,GAAG;EAC7B,OACE,KAAK,IAAI,GAAG,MACX,WAAW,CAAC,QAAQ,aAAa,CAAC,QAAQ,aAAa,UAAU,KAAA,MAClE,OAAO,GAAG,KACV,gBAAgB,IAAI,GAAG,KACvB,OAAO,IAAI,cAAc,GAAG,CAAC,KAC7B,KAAA;CAEJ,EACF;AACF;;;;;;;AAQA,SAAgB,kBACd,OACA,WACA,UACA,KACkC;CAClC,MAAM,WAAW,MAAM,QAAQ,GAAG;CAClC,IAAI,UAAU,OAAO,SAAS,SAAS,SAAS,EAAE,IAAI,WAAW,KAAA;CACjE,MAAM,UAAU,IAAI,KAAK;CACzB,MAAM,OAAO,QAAQ,QAAQ,GAAG;CAChC,IAAI,QAAQ,GAAG,OAAO,KAAA;CACtB,MAAM,UAAU,QAAQ,MAAM,GAAG,IAAI;CACrC,MAAM,QAAQ,CAAC,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,MAAK,cAAa,UAAU,WAAW,UAAU,YAAY,OAAO;CAC1G,IAAI,CAAC,OAAO,OAAO,KAAA;CACnB,MAAM,OAAO,QAAQ,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG;CAC9C,MAAM,aAAa,SAAS,SAAQ,OAAM;EACxC,MAAM,OAAO,UAAU,IAAI,EAAE;EAC7B,OAAO,QAAQ,OAAO,MAAM,OAAO,MAAM,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC;CAClE,CAAC;CACD,OAAO,WAAW,WAAW,IAAI,WAAW,KAAK,KAAA;AACnD;;AAGA,SAAS,OACP,MACA,OACA,MACA,WACS;CACT,IAAI,KAAK,WAAW,KAAK,aAAa,KAAK,cAAc,KAAK,YAAY,MAAM,IAAI,OAAO;CAC3F,IAAI,UAAU;CACd,KAAK,IAAI,QAAQ,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;EACrD,IAAI,QAAQ,QAAQ,KAAK,QAAQ,OAAO;EACxC,IAAI,QAAQ,aAAa,MAAM,IAAI,OAAO,UAAU;EACpD,MAAM,SAAS,QAAQ,WAAW,UAAU,IAAI,QAAQ,QAAQ,IAAI,KAAA;EACpE,IAAI,CAAC,QAAQ,OAAO,QAAQ;EAC5B,UAAU;CACZ;CACA,OAAO;AACT;AAEA,IAAM,WAAW;AAEjB,IAAM,cAAc;AACpB,IAAM,cAAc;;AAGpB,SAAgB,aAAa,MAAwB;CAEnD,OAAO,CAAC,GADM,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,QAAQ,aAAa,EACtD,CAAA,CAAM,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAI,UAAS,MAAM,MAAM,EAAE;AAClE;;AAGA,SAAgB,cAAc,OAAoD;CAChF,MAAM,QAAQ,sBAAsB,KAAK;CACzC,MAAM,QAA6B,CAAC;CACpC,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,CAAC,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY;EACrD,MAAM,yBAAS,IAAI,IAAoB;EACvC,KAAK,MAAM,OAAO,aAAa,KAAK,IAAI,GAAG;GACzC,MAAM,SAAS,MAAM,QAAQ,GAAG;GAChC,IAAI,UAAU,OAAO,OAAO,KAAK,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,KAAK,KAAK,CAAC;EAC7F;EACA,KAAK,MAAM,CAAC,QAAQ,UAAU,QAAQ,MAAM,KAAK;GAAE,QAAQ,KAAK;GAAI;GAAQ,MAAM;GAAQ;EAAM,CAAC;CACnG;CACA,OAAO;AACT"}
@@ -3,7 +3,11 @@
3
3
  function canonicalName(name) {
4
4
  return name.normalize("NFKC").trim().replace(/\s+/g, " ").toLowerCase();
5
5
  }
6
- function knowledgePageRefIndex(pages) {
6
+ /**
7
+ * `byRef` holds pages fetched by the exact ref that names them, so a `scope#key/key` ref resolves even when
8
+ * the pages on its path aren't loaded.
9
+ */
10
+ function knowledgePageRefIndex(pages, byRef = /* @__PURE__ */ new Map()) {
7
11
  const byId = /* @__PURE__ */ new Map();
8
12
  const scopesByAddress = /* @__PURE__ */ new Map();
9
13
  const childByKey = /* @__PURE__ */ new Map();
@@ -31,9 +35,45 @@ function knowledgePageRefIndex(pages) {
31
35
  return { resolve(raw) {
32
36
  const ref = raw.trim();
33
37
  if (!ref) return void 0;
34
- return byId.get(ref) ?? byPath(ref) ?? scopesByAddress.get(ref) ?? byName.get(canonicalName(ref)) ?? void 0;
38
+ const fetched = byRef.get(ref);
39
+ return byId.get(ref) ?? (fetched && !fetched.deletedAt && !fetched.mergedInto ? fetched : void 0) ?? byPath(ref) ?? scopesByAddress.get(ref) ?? byName.get(canonicalName(ref)) ?? void 0;
35
40
  } };
36
41
  }
42
+ /**
43
+ * The page a note's `[[ref]]` links to: only one the server resolved the note's mentions to. When the index
44
+ * can't walk the ref's path (pages on the way aren't loaded), a mentioned page stands for it if it is the only
45
+ * one in the ref's scope (which must be loaded) whose key ends the path and whose loaded parents match the
46
+ * keys before it.
47
+ */
48
+ function noteMentionTarget(index, pagesById, mentions, ref) {
49
+ const resolved = index.resolve(ref);
50
+ if (resolved) return mentions.includes(resolved.id) ? resolved : void 0;
51
+ const trimmed = ref.trim();
52
+ const hash = trimmed.indexOf("#");
53
+ if (hash <= 0) return void 0;
54
+ const address = trimmed.slice(0, hash);
55
+ const scope = [...pagesById.values()].find((candidate) => candidate.isScope && candidate.address === address);
56
+ if (!scope) return void 0;
57
+ const keys = trimmed.slice(hash + 1).split("/");
58
+ const candidates = mentions.flatMap((id) => {
59
+ const page = pagesById.get(id);
60
+ return page && onPath(page, scope, keys, pagesById) ? [page] : [];
61
+ });
62
+ return candidates.length === 1 ? candidates[0] : void 0;
63
+ }
64
+ /** Whether `page` can sit at `keys` under `scope`: its key and every loaded parent's key match, in that scope. */
65
+ function onPath(page, scope, keys, pagesById) {
66
+ if (page.isScope || page.deletedAt || page.mergedInto || page.scopeId !== scope.id) return false;
67
+ let current = page;
68
+ for (let depth = keys.length - 1; depth >= 0; depth--) {
69
+ if (current.key !== keys[depth]) return false;
70
+ if (current.parentId === scope.id) return depth === 0;
71
+ const parent = current.parentId ? pagesById.get(current.parentId) : void 0;
72
+ if (!parent) return depth > 0;
73
+ current = parent;
74
+ }
75
+ return false;
76
+ }
37
77
  var WIKILINK = /\[\[([^\]]+)\]\]/g;
38
78
  var FENCED_CODE = /^(`{3,}|~{3,})[^\n]*\n[\s\S]*?(?:^\1[ \t]*$|(?![\s\S]))/gm;
39
79
  var INLINE_CODE = /(`+)[\s\S]*?\1/g;
@@ -61,6 +101,6 @@ function bodyLinkEdges(pages) {
61
101
  }
62
102
  return edges;
63
103
  }
64
- export { bodyLinkEdges, bodyLinkRefs, knowledgePageRefIndex };
104
+ export { bodyLinkEdges, bodyLinkRefs, knowledgePageRefIndex, noteMentionTarget };
65
105
 
66
106
  //# sourceMappingURL=pageRefs.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pageRefs.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageRefs.ts"],"sourcesContent":["/**\n * Resolves `[[ref]]` links in page bodies and notes against the pages the explorer has loaded, in the\n * order core's `run.page(ref)` uses: page id, then `scope#key/key` path, then scope address, then a\n * unique page name (an ambiguous name resolves to nothing, as it throws in core). The server does not\n * resolve body links, so a link to a page outside the loaded set stays unresolved.\n */\n\nimport type { KnowledgePageEdge, KnowledgePagePayload } from '../pageTypes';\n\nexport interface KnowledgePageRefIndex {\n resolve: (ref: string) => KnowledgePagePayload | undefined;\n}\n\n/** Same as core's `canonicalKnowledgeName`. */\nfunction canonicalName(name: string): string {\n return name.normalize('NFKC').trim().replace(/\\s+/g, ' ').toLowerCase();\n}\n\nexport function knowledgePageRefIndex(pages: Iterable<KnowledgePagePayload>): KnowledgePageRefIndex {\n const byId = new Map<string, KnowledgePagePayload>();\n const scopesByAddress = new Map<string, KnowledgePagePayload>();\n const childByKey = new Map<string, KnowledgePagePayload>();\n const byName = new Map<string, KnowledgePagePayload | null>();\n for (const page of pages) {\n if (page.deletedAt || page.mergedInto) continue;\n byId.set(page.id, page);\n if (page.isScope && page.address) scopesByAddress.set(page.address, page);\n if (!page.isScope && page.key && page.parentId) childByKey.set(`${page.parentId}\\u0000${page.key}`, page);\n const name = canonicalName(page.name);\n byName.set(name, byName.has(name) ? null : page);\n }\n\n const byPath = (ref: string): KnowledgePagePayload | undefined => {\n const hash = ref.indexOf('#');\n if (hash <= 0) return undefined;\n const scope = scopesByAddress.get(ref.slice(0, hash));\n if (!scope) return undefined;\n let page: KnowledgePagePayload | undefined = scope;\n for (const key of ref.slice(hash + 1).split('/')) {\n page = childByKey.get(`${page.id}\\u0000${key}`);\n if (!page || page.scopeId !== scope.id) return undefined;\n }\n return page === scope ? undefined : page;\n };\n\n return {\n resolve(raw) {\n const ref = raw.trim();\n if (!ref) return undefined;\n return byId.get(ref) ?? byPath(ref) ?? scopesByAddress.get(ref) ?? byName.get(canonicalName(ref)) ?? undefined;\n },\n };\n}\n\nconst WIKILINK = /\\[\\[([^\\]]+)\\]\\]/g;\n// Code is shown as written, so a `[[ref]]` inside it is not a link.\nconst FENCED_CODE = /^(`{3,}|~{3,})[^\\n]*\\n[\\s\\S]*?(?:^\\1[ \\t]*$|(?![\\s\\S]))/gm;\nconst INLINE_CODE = /(`+)[\\s\\S]*?\\1/g;\n\n/** The `[[ref]]`s in a markdown body, outside code. */\nexport function bodyLinkRefs(body: string): string[] {\n const prose = body.replace(FENCED_CODE, '').replace(INLINE_CODE, '');\n return [...prose.matchAll(WIKILINK)].map(match => match[1] ?? '');\n}\n\n/** One `link` edge per page whose body links another loaded page; `count` is how many times. */\nexport function bodyLinkEdges(pages: KnowledgePagePayload[]): KnowledgePageEdge[] {\n const index = knowledgePageRefIndex(pages);\n const edges: KnowledgePageEdge[] = [];\n for (const page of pages) {\n if (!page.body || page.deletedAt || page.mergedInto) continue;\n const counts = new Map<string, number>();\n for (const ref of bodyLinkRefs(page.body)) {\n const target = index.resolve(ref);\n if (target && target.id !== page.id) counts.set(target.id, (counts.get(target.id) ?? 0) + 1);\n }\n for (const [target, count] of counts) edges.push({ source: page.id, target, kind: 'link', count });\n }\n return edges;\n}\n"],"mappings":";;AAcA,SAAS,cAAc,MAAsB;CAC3C,OAAO,KAAK,UAAU,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,YAAY;AACxE;AAEA,SAAgB,sBAAsB,OAA8D;CAClG,MAAM,uBAAO,IAAI,IAAkC;CACnD,MAAM,kCAAkB,IAAI,IAAkC;CAC9D,MAAM,6BAAa,IAAI,IAAkC;CACzD,MAAM,yBAAS,IAAI,IAAyC;CAC5D,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,KAAK,aAAa,KAAK,YAAY;EACvC,KAAK,IAAI,KAAK,IAAI,IAAI;EACtB,IAAI,KAAK,WAAW,KAAK,SAAS,gBAAgB,IAAI,KAAK,SAAS,IAAI;EACxE,IAAI,CAAC,KAAK,WAAW,KAAK,OAAO,KAAK,UAAU,WAAW,IAAI,GAAG,KAAK,SAAS,QAAQ,KAAK,OAAO,IAAI;EACxG,MAAM,OAAO,cAAc,KAAK,IAAI;EACpC,OAAO,IAAI,MAAM,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI;CACjD;CAEA,MAAM,UAAU,QAAkD;EAChE,MAAM,OAAO,IAAI,QAAQ,GAAG;EAC5B,IAAI,QAAQ,GAAG,OAAO,KAAA;EACtB,MAAM,QAAQ,gBAAgB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;EACpD,IAAI,CAAC,OAAO,OAAO,KAAA;EACnB,IAAI,OAAyC;EAC7C,KAAK,MAAM,OAAO,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG;GAChD,OAAO,WAAW,IAAI,GAAG,KAAK,GAAG,QAAQ,KAAK;GAC9C,IAAI,CAAC,QAAQ,KAAK,YAAY,MAAM,IAAI,OAAO,KAAA;EACjD;EACA,OAAO,SAAS,QAAQ,KAAA,IAAY;CACtC;CAEA,OAAO,EACL,QAAQ,KAAK;EACX,MAAM,MAAM,IAAI,KAAK;EACrB,IAAI,CAAC,KAAK,OAAO,KAAA;EACjB,OAAO,KAAK,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,OAAO,IAAI,cAAc,GAAG,CAAC,KAAK,KAAA;CACvG,EACF;AACF;AAEA,IAAM,WAAW;AAEjB,IAAM,cAAc;AACpB,IAAM,cAAc;;AAGpB,SAAgB,aAAa,MAAwB;CAEnD,OAAO,CAAC,GADM,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,QAAQ,aAAa,EACtD,CAAA,CAAM,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAI,UAAS,MAAM,MAAM,EAAE;AAClE;;AAGA,SAAgB,cAAc,OAAoD;CAChF,MAAM,QAAQ,sBAAsB,KAAK;CACzC,MAAM,QAA6B,CAAC;CACpC,KAAK,MAAM,QAAQ,OAAO;EACxB,IAAI,CAAC,KAAK,QAAQ,KAAK,aAAa,KAAK,YAAY;EACrD,MAAM,yBAAS,IAAI,IAAoB;EACvC,KAAK,MAAM,OAAO,aAAa,KAAK,IAAI,GAAG;GACzC,MAAM,SAAS,MAAM,QAAQ,GAAG;GAChC,IAAI,UAAU,OAAO,OAAO,KAAK,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,EAAE,KAAK,KAAK,CAAC;EAC7F;EACA,KAAK,MAAM,CAAC,QAAQ,UAAU,QAAQ,MAAM,KAAK;GAAE,QAAQ,KAAK;GAAI;GAAQ,MAAM;GAAQ;EAAM,CAAC;CACnG;CACA,OAAO;AACT"}
1
+ {"version":3,"file":"pageRefs.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pageRefs.ts"],"sourcesContent":["/**\n * Resolves `[[ref]]` links in page bodies and notes against the pages the explorer has loaded, in the\n * order core's `run.page(ref)` uses: page id, then `scope#key/key` path, then scope address, then a\n * unique page name (an ambiguous name resolves to nothing, as it throws in core). The server does not\n * resolve body links, so a link to a page outside the loaded set stays unresolved.\n */\n\nimport type { KnowledgePageEdge, KnowledgePagePayload } from '../pageTypes';\n\nexport interface KnowledgePageRefIndex {\n resolve: (ref: string) => KnowledgePagePayload | undefined;\n}\n\n/** Same as core's `canonicalKnowledgeName`. */\nfunction canonicalName(name: string): string {\n return name.normalize('NFKC').trim().replace(/\\s+/g, ' ').toLowerCase();\n}\n\n/**\n * `byRef` holds pages fetched by the exact ref that names them, so a `scope#key/key` ref resolves even when\n * the pages on its path aren't loaded.\n */\nexport function knowledgePageRefIndex(\n pages: Iterable<KnowledgePagePayload>,\n byRef: ReadonlyMap<string, KnowledgePagePayload> = new Map(),\n): KnowledgePageRefIndex {\n const byId = new Map<string, KnowledgePagePayload>();\n const scopesByAddress = new Map<string, KnowledgePagePayload>();\n const childByKey = new Map<string, KnowledgePagePayload>();\n const byName = new Map<string, KnowledgePagePayload | null>();\n for (const page of pages) {\n if (page.deletedAt || page.mergedInto) continue;\n byId.set(page.id, page);\n if (page.isScope && page.address) scopesByAddress.set(page.address, page);\n if (!page.isScope && page.key && page.parentId) childByKey.set(`${page.parentId}\\u0000${page.key}`, page);\n const name = canonicalName(page.name);\n byName.set(name, byName.has(name) ? null : page);\n }\n\n const byPath = (ref: string): KnowledgePagePayload | undefined => {\n const hash = ref.indexOf('#');\n if (hash <= 0) return undefined;\n const scope = scopesByAddress.get(ref.slice(0, hash));\n if (!scope) return undefined;\n let page: KnowledgePagePayload | undefined = scope;\n for (const key of ref.slice(hash + 1).split('/')) {\n page = childByKey.get(`${page.id}\\u0000${key}`);\n if (!page || page.scopeId !== scope.id) return undefined;\n }\n return page === scope ? undefined : page;\n };\n\n return {\n resolve(raw) {\n const ref = raw.trim();\n if (!ref) return undefined;\n const fetched = byRef.get(ref);\n return (\n byId.get(ref) ??\n (fetched && !fetched.deletedAt && !fetched.mergedInto ? fetched : undefined) ??\n byPath(ref) ??\n scopesByAddress.get(ref) ??\n byName.get(canonicalName(ref)) ??\n undefined\n );\n },\n };\n}\n\n/**\n * The page a note's `[[ref]]` links to: only one the server resolved the note's mentions to. When the index\n * can't walk the ref's path (pages on the way aren't loaded), a mentioned page stands for it if it is the only\n * one in the ref's scope (which must be loaded) whose key ends the path and whose loaded parents match the\n * keys before it.\n */\nexport function noteMentionTarget(\n index: KnowledgePageRefIndex,\n pagesById: ReadonlyMap<string, KnowledgePagePayload>,\n mentions: readonly string[],\n ref: string,\n): KnowledgePagePayload | undefined {\n const resolved = index.resolve(ref);\n if (resolved) return mentions.includes(resolved.id) ? resolved : undefined;\n const trimmed = ref.trim();\n const hash = trimmed.indexOf('#');\n if (hash <= 0) return undefined;\n const address = trimmed.slice(0, hash);\n const scope = [...pagesById.values()].find(candidate => candidate.isScope && candidate.address === address);\n if (!scope) return undefined;\n const keys = trimmed.slice(hash + 1).split('/');\n const candidates = mentions.flatMap(id => {\n const page = pagesById.get(id);\n return page && onPath(page, scope, keys, pagesById) ? [page] : [];\n });\n return candidates.length === 1 ? candidates[0] : undefined;\n}\n\n/** Whether `page` can sit at `keys` under `scope`: its key and every loaded parent's key match, in that scope. */\nfunction onPath(\n page: KnowledgePagePayload,\n scope: KnowledgePagePayload,\n keys: string[],\n pagesById: ReadonlyMap<string, KnowledgePagePayload>,\n): boolean {\n if (page.isScope || page.deletedAt || page.mergedInto || page.scopeId !== scope.id) return false;\n let current = page;\n for (let depth = keys.length - 1; depth >= 0; depth--) {\n if (current.key !== keys[depth]) return false;\n if (current.parentId === scope.id) return depth === 0;\n const parent = current.parentId ? pagesById.get(current.parentId) : undefined;\n if (!parent) return depth > 0;\n current = parent;\n }\n return false;\n}\n\nconst WIKILINK = /\\[\\[([^\\]]+)\\]\\]/g;\n// Code is shown as written, so a `[[ref]]` inside it is not a link.\nconst FENCED_CODE = /^(`{3,}|~{3,})[^\\n]*\\n[\\s\\S]*?(?:^\\1[ \\t]*$|(?![\\s\\S]))/gm;\nconst INLINE_CODE = /(`+)[\\s\\S]*?\\1/g;\n\n/** The `[[ref]]`s in a markdown body, outside code. */\nexport function bodyLinkRefs(body: string): string[] {\n const prose = body.replace(FENCED_CODE, '').replace(INLINE_CODE, '');\n return [...prose.matchAll(WIKILINK)].map(match => match[1] ?? '');\n}\n\n/** One `link` edge per page whose body links another loaded page; `count` is how many times. */\nexport function bodyLinkEdges(pages: KnowledgePagePayload[]): KnowledgePageEdge[] {\n const index = knowledgePageRefIndex(pages);\n const edges: KnowledgePageEdge[] = [];\n for (const page of pages) {\n if (!page.body || page.deletedAt || page.mergedInto) continue;\n const counts = new Map<string, number>();\n for (const ref of bodyLinkRefs(page.body)) {\n const target = index.resolve(ref);\n if (target && target.id !== page.id) counts.set(target.id, (counts.get(target.id) ?? 0) + 1);\n }\n for (const [target, count] of counts) edges.push({ source: page.id, target, kind: 'link', count });\n }\n return edges;\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ // src/domains/knowledge/lib/pagesByRefContext.ts
3
+ /**
4
+ * Pages the host fetched by the exact `[[ref]]` that names them, so those refs link even when the pages on
5
+ * their path aren't loaded.
6
+ */
7
+ var KnowledgePagesByRef = (0, require("react").createContext)(/* @__PURE__ */ new Map());
8
+ exports.KnowledgePagesByRef = KnowledgePagesByRef;
9
+
10
+ //# sourceMappingURL=pagesByRefContext.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagesByRefContext.cjs.js","names":["createContext"],"sources":["../../../../src/domains/knowledge/lib/pagesByRefContext.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { KnowledgePagePayload } from '../pageTypes';\n\n/**\n * Pages the host fetched by the exact `[[ref]]` that names them, so those refs link even when the pages on\n * their path aren't loaded.\n */\nexport const KnowledgePagesByRef = createContext<ReadonlyMap<string, KnowledgePagePayload>>(new Map());\n"],"mappings":";;;;;;AAQA,IAAa,uBAAA,G,eAAsBA,CAAAA,CAAAA,cAAAA,iBAAyD,IAAI,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ export * from '../../../src/domains/knowledge/lib/pagesByRefContext';
@@ -0,0 +1,10 @@
1
+ import { createContext } from "react";
2
+ // src/domains/knowledge/lib/pagesByRefContext.ts
3
+ /**
4
+ * Pages the host fetched by the exact `[[ref]]` that names them, so those refs link even when the pages on
5
+ * their path aren't loaded.
6
+ */
7
+ var KnowledgePagesByRef = createContext(/* @__PURE__ */ new Map());
8
+ export { KnowledgePagesByRef };
9
+
10
+ //# sourceMappingURL=pagesByRefContext.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagesByRefContext.es.js","names":[],"sources":["../../../../src/domains/knowledge/lib/pagesByRefContext.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport type { KnowledgePagePayload } from '../pageTypes';\n\n/**\n * Pages the host fetched by the exact `[[ref]]` that names them, so those refs link even when the pages on\n * their path aren't loaded.\n */\nexport const KnowledgePagesByRef = createContext<ReadonlyMap<string, KnowledgePagePayload>>(new Map());\n"],"mappings":";;;;;;AAQA,IAAa,sBAAsB,8BAAyD,IAAI,IAAI,CAAC"}
@@ -3,7 +3,7 @@ const require_Button = require("../../../Button-BfICfyxD.cjs");
3
3
  const require_buttons_group = require("../../../buttons-group-DM6_Kohs.cjs");
4
4
  const require_copy_button = require("../../../copy-button-DuEUYvS2.cjs");
5
5
  const require_DataKeysAndValues = require("../../../DataKeysAndValues-BbKeVxrQ.cjs");
6
- const require_DataPanel = require("../../../DataPanel-BRRAvWYQ.cjs");
6
+ const require_DataPanel = require("../../../DataPanel-LfExjFpP.cjs");
7
7
  const require_Txt = require("../../../Txt-_00wWxTd.cjs");
8
8
  const require_utils_date_format = require("../../../utils/date-format.cjs.js");
9
9
  let react = require("react");
@@ -2,7 +2,7 @@ import { t as Button } from "../../../Button-Bi7aXd_G.js";
2
2
  import { t as ButtonsGroup } from "../../../buttons-group-DA_wORqQ.js";
3
3
  import { t as CopyButton } from "../../../copy-button-B-_Z6N6y.js";
4
4
  import { t as DataKeysAndValues } from "../../../DataKeysAndValues-B56je3sK.js";
5
- import { t as DataPanel } from "../../../DataPanel-pVr5LVaK.js";
5
+ import { t as DataPanel } from "../../../DataPanel-Rv5Mb_pf.js";
6
6
  import { t as Txt } from "../../../Txt-5efBsb2p.js";
7
7
  import { formatTimestampPrecise } from "../../../utils/date-format.es.js";
8
8
  import { Fragment } from "react";
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_observability_saved_views = require("../../../observability-saved-views-DgABvgat.cjs");
2
+ const require_observability_saved_views = require("../../../observability-saved-views-CzRPN_9m.cjs");
3
3
  let react_jsx_runtime = require("react/jsx-runtime");
4
4
  // src/domains/logs/components/logs-saved-views.tsx
5
5
  /** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */
@@ -1,4 +1,4 @@
1
- import { t as ObservabilitySavedViews } from "../../../observability-saved-views-Ch53fh5_.js";
1
+ import { t as ObservabilitySavedViews } from "../../../observability-saved-views-hu_hkXVY.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  // src/domains/logs/components/logs-saved-views.tsx
4
4
  /** Saved views of the logs page, placed by the host next to `LogsToolbar`. Renders nothing without a `SavedViewsProvider`. */
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_property_filter_applied = require("../../../property-filter-applied-DuyL4S_K.cjs");
2
+ const require_property_filter_applied = require("../../../property-filter-applied-ML84st6J.cjs");
3
3
  const require_utils = require("../../../utils-uDc1ofX1.cjs");
4
4
  let react_jsx_runtime = require("react/jsx-runtime");
5
5
  // src/domains/logs/components/logs-toolbar.tsx
@@ -1,4 +1,4 @@
1
- import { r as PropertyFilterActions, t as PropertyFilterApplied } from "../../../property-filter-applied-DoxQHG09.js";
1
+ import { r as PropertyFilterActions, t as PropertyFilterApplied } from "../../../property-filter-applied-PaJ7sLsM.js";
2
2
  import { t as cn } from "../../../utils-DQx8TpNT.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  // src/domains/logs/components/logs-toolbar.tsx
@@ -1,7 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_domains_mcps_context_mcp_app_host_context_value = require("../context/mcp-app-host-context-value.cjs.js");
2
3
  const require_domains_mcps_hooks_use_mcp_app_tool_call = require("../hooks/use-mcp-app-tool-call.cjs.js");
3
- const require_mcp_app_viewer = require("../../../mcp-app-viewer-M3-pqAlo.cjs");
4
+ const require_domains_mcps_components_mcp_app_viewer = require("./mcp-app-viewer.cjs.js");
4
5
  const require_Txt = require("../../../Txt-_00wWxTd.cjs");
6
+ let react = require("react");
5
7
  let react_jsx_runtime = require("react/jsx-runtime");
6
8
  let _mastra_react = require("@mastra/react");
7
9
  let _tanstack_react_query = require("@tanstack/react-query");
@@ -14,8 +16,29 @@ let _tanstack_react_query = require("@tanstack/react-query");
14
16
  * (ui/notifications/tool-input and ui/notifications/tool-result), enabling
15
17
  * the app to hydrate with data from the tool call.
16
18
  */
17
- function McpAppToolResult({ appInfo, toolArgs, toolResult, onSendMessage, onUpdateModelContext, readOnly }) {
19
+ function McpAppToolResult({ appInfo, toolArgs, toolResult, toolCallId, onSendMessage, onUpdateModelContext, readOnly }) {
18
20
  const client = (0, _mastra_react.useMastraClient)();
21
+ const host = require_domains_mcps_context_mcp_app_host_context_value.useMcpAppHostContext();
22
+ const { toolName, resourceUri } = appInfo;
23
+ const app = (0, react.useMemo)(() => toolCallId === void 0 ? void 0 : {
24
+ toolName,
25
+ toolCallId,
26
+ resourceUri
27
+ }, [
28
+ toolName,
29
+ toolCallId,
30
+ resourceUri
31
+ ]);
32
+ const hostContext = (0, react.useMemo)(() => app && host?.hostContext?.(app) || void 0, [app, host]);
33
+ const onModelContext = (0, react.useMemo)(() => {
34
+ const handler = host?.onModelContext;
35
+ if (!app || !handler || readOnly) return void 0;
36
+ return (params) => handler(app, params);
37
+ }, [
38
+ app,
39
+ host,
40
+ readOnly
41
+ ]);
19
42
  const { data: html, isLoading } = (0, _tanstack_react_query.useQuery)({
20
43
  queryKey: [
21
44
  "mcp-app-html",
@@ -36,7 +59,7 @@ function McpAppToolResult({ appInfo, toolArgs, toolResult, onSendMessage, onUpda
36
59
  className: "rounded-md border border-border bg-background p-4",
37
60
  children: "Loading MCP App UI…"
38
61
  });
39
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_mcp_app_viewer.McpAppViewer, {
62
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_domains_mcps_components_mcp_app_viewer.McpAppViewer, {
40
63
  html,
41
64
  toolName: appInfo.toolName,
42
65
  toolInput: toolArgs,
@@ -44,6 +67,8 @@ function McpAppToolResult({ appInfo, toolArgs, toolResult, onSendMessage, onUpda
44
67
  onToolCall: readOnly ? void 0 : handleToolCall,
45
68
  onSendMessage: readOnly ? void 0 : onSendMessage,
46
69
  onUpdateModelContext: readOnly ? void 0 : onUpdateModelContext,
70
+ onModelContext,
71
+ hostContext,
47
72
  className: "rounded-md border border-border"
48
73
  });
49
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-app-tool-result.cjs.js","names":["useMastraClient","useQuery","useMcpAppToolCall","Txt","McpAppViewer"],"sources":["../../../../src/domains/mcps/components/mcp-app-tool-result.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport type { McpAppToolInfo } from '@mastra/react/hooks/mcps';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMcpAppToolCall } from '../hooks/use-mcp-app-tool-call';\nimport { McpAppViewer } from './mcp-app-viewer';\nimport { Txt } from '@/ds/components/Txt';\n\ninterface McpAppToolResultProps {\n appInfo: McpAppToolInfo;\n toolArgs?: Record<string, unknown>;\n toolResult?: unknown;\n onSendMessage?: (content: string) => void;\n onUpdateModelContext?: (context: string | undefined) => void;\n readOnly?: boolean;\n}\n\n/**\n * Fetches MCP App HTML from the resource URI and renders it in a McpAppViewer.\n * Used inline in agent chat when a tool call has an associated MCP App UI.\n *\n * Passes tool arguments and result to the iframe via the MCP Apps protocol\n * (ui/notifications/tool-input and ui/notifications/tool-result), enabling\n * the app to hydrate with data from the tool call.\n */\nexport function McpAppToolResult({\n appInfo,\n toolArgs,\n toolResult,\n onSendMessage,\n onUpdateModelContext,\n readOnly,\n}: McpAppToolResultProps) {\n const client = useMastraClient();\n\n const { data: html, isLoading } = useQuery({\n queryKey: ['mcp-app-html', appInfo.serverId, appInfo.resourceUri],\n queryFn: async () => {\n const response = await client.readMcpServerResource(appInfo.serverId, appInfo.resourceUri);\n const content = response.contents?.[0];\n return content?.text ?? '';\n },\n staleTime: 5 * 60_000,\n refetchOnWindowFocus: false,\n });\n\n const handleToolCall = useMcpAppToolCall(appInfo.serverId);\n\n if (isLoading || !html) {\n return (\n <Txt as=\"p\" variant=\"body\" tone=\"muted\" className=\"rounded-md border border-border bg-background p-4\">\n Loading MCP App UI…\n </Txt>\n );\n }\n\n return (\n <McpAppViewer\n html={html}\n toolName={appInfo.toolName}\n toolInput={toolArgs}\n toolResult={toolResult}\n onToolCall={readOnly ? undefined : handleToolCall}\n onSendMessage={readOnly ? undefined : onSendMessage}\n onUpdateModelContext={readOnly ? undefined : onUpdateModelContext}\n className=\"rounded-md border border-border\"\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAwBA,SAAgB,iBAAiB,EAC/B,SACA,UACA,YACA,eACA,sBACA,YACwB;CACxB,MAAM,UAAA,GAASA,cAAAA,gBAAAA,CAAgB;CAE/B,MAAM,EAAE,MAAM,MAAM,eAAA,GAAcC,sBAAAA,SAAAA,CAAS;EACzC,UAAU;GAAC;GAAgB,QAAQ;GAAU,QAAQ;EAAW;EAChE,SAAS,YAAY;GAGnB,SADgB,MADO,OAAO,sBAAsB,QAAQ,UAAU,QAAQ,WAAW,EAAA,CAChE,WAAW,GAAA,EACpB,QAAQ;EAC1B;EACA,WAAW;EACX,sBAAsB;CACxB,CAAC;CAED,MAAM,iBAAiBC,iDAAAA,kBAAkB,QAAQ,QAAQ;CAEzD,IAAI,aAAa,CAAC,MAChB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EAAK,IAAG;EAAI,SAAQ;EAAO,MAAK;EAAQ,WAAU;EAAoD,UAAA;CAEjG,CAAA;CAIT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,uBAAAA,cAAD;EACQ;EACN,UAAU,QAAQ;EAClB,WAAW;EACC;EACZ,YAAY,WAAW,KAAA,IAAY;EACnC,eAAe,WAAW,KAAA,IAAY;EACtC,sBAAsB,WAAW,KAAA,IAAY;EAC7C,WAAU;CACX,CAAA;AAEL"}
1
+ {"version":3,"file":"mcp-app-tool-result.cjs.js","names":["useMastraClient","useMcpAppHostContext","useMemo","useQuery","useMcpAppToolCall","Txt","McpAppViewer"],"sources":["../../../../src/domains/mcps/components/mcp-app-tool-result.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport type { McpAppToolInfo } from '@mastra/react/hooks/mcps';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { useMcpAppHostContext } from '../context/mcp-app-host-context-value';\nimport type { McpAppModelContextParams, McpAppRef } from '../context/mcp-app-host-context-value';\nimport { useMcpAppToolCall } from '../hooks/use-mcp-app-tool-call';\nimport { McpAppViewer } from './mcp-app-viewer';\nimport { Txt } from '@/ds/components/Txt';\n\ninterface McpAppToolResultProps {\n appInfo: McpAppToolInfo;\n toolArgs?: Record<string, unknown>;\n toolResult?: unknown;\n /** The chat tool call that rendered this app. Required for an `McpAppHostProvider` to reach the app. */\n toolCallId?: string;\n onSendMessage?: (content: string) => void;\n onUpdateModelContext?: (context: string | undefined) => void;\n readOnly?: boolean;\n}\n\n/**\n * Fetches MCP App HTML from the resource URI and renders it in a McpAppViewer.\n * Used inline in agent chat when a tool call has an associated MCP App UI.\n *\n * Passes tool arguments and result to the iframe via the MCP Apps protocol\n * (ui/notifications/tool-input and ui/notifications/tool-result), enabling\n * the app to hydrate with data from the tool call.\n */\nexport function McpAppToolResult({\n appInfo,\n toolArgs,\n toolResult,\n toolCallId,\n onSendMessage,\n onUpdateModelContext,\n readOnly,\n}: McpAppToolResultProps) {\n const client = useMastraClient();\n const host = useMcpAppHostContext();\n const { toolName, resourceUri } = appInfo;\n const app: McpAppRef | undefined = useMemo(\n () => (toolCallId === undefined ? undefined : { toolName, toolCallId, resourceUri }),\n [toolName, toolCallId, resourceUri],\n );\n const hostContext = useMemo(() => (app && host?.hostContext?.(app)) || undefined, [app, host]);\n const onModelContext = useMemo(() => {\n const handler = host?.onModelContext;\n if (!app || !handler || readOnly) return undefined;\n return (params: McpAppModelContextParams) => handler(app, params);\n }, [app, host, readOnly]);\n\n const { data: html, isLoading } = useQuery({\n queryKey: ['mcp-app-html', appInfo.serverId, appInfo.resourceUri],\n queryFn: async () => {\n const response = await client.readMcpServerResource(appInfo.serverId, appInfo.resourceUri);\n const content = response.contents?.[0];\n return content?.text ?? '';\n },\n staleTime: 5 * 60_000,\n refetchOnWindowFocus: false,\n });\n\n const handleToolCall = useMcpAppToolCall(appInfo.serverId);\n\n if (isLoading || !html) {\n return (\n <Txt as=\"p\" variant=\"body\" tone=\"muted\" className=\"rounded-md border border-border bg-background p-4\">\n Loading MCP App UI…\n </Txt>\n );\n }\n\n return (\n <McpAppViewer\n html={html}\n toolName={appInfo.toolName}\n toolInput={toolArgs}\n toolResult={toolResult}\n onToolCall={readOnly ? undefined : handleToolCall}\n onSendMessage={readOnly ? undefined : onSendMessage}\n onUpdateModelContext={readOnly ? undefined : onUpdateModelContext}\n onModelContext={onModelContext}\n hostContext={hostContext}\n className=\"rounded-md border border-border\"\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AA6BA,SAAgB,iBAAiB,EAC/B,SACA,UACA,YACA,YACA,eACA,sBACA,YACwB;CACxB,MAAM,UAAA,GAASA,cAAAA,gBAAAA,CAAgB;CAC/B,MAAM,OAAOC,wDAAAA,qBAAqB;CAClC,MAAM,EAAE,UAAU,gBAAgB;CAClC,MAAM,OAAA,GAA6BC,MAAAA,QAAAA,OAC1B,eAAe,KAAA,IAAY,KAAA,IAAY;EAAE;EAAU;EAAY;CAAY,GAClF;EAAC;EAAU;EAAY;CAAW,CACpC;CACA,MAAM,eAAA,GAAcA,MAAAA,QAAAA,OAAe,OAAO,MAAM,cAAc,GAAG,KAAM,KAAA,GAAW,CAAC,KAAK,IAAI,CAAC;CAC7F,MAAM,kBAAA,GAAiBA,MAAAA,QAAAA,OAAc;EACnC,MAAM,UAAU,MAAM;EACtB,IAAI,CAAC,OAAO,CAAC,WAAW,UAAU,OAAO,KAAA;EACzC,QAAQ,WAAqC,QAAQ,KAAK,MAAM;CAClE,GAAG;EAAC;EAAK;EAAM;CAAQ,CAAC;CAExB,MAAM,EAAE,MAAM,MAAM,eAAA,GAAcC,sBAAAA,SAAAA,CAAS;EACzC,UAAU;GAAC;GAAgB,QAAQ;GAAU,QAAQ;EAAW;EAChE,SAAS,YAAY;GAGnB,SADgB,MADO,OAAO,sBAAsB,QAAQ,UAAU,QAAQ,WAAW,EAAA,CAChE,WAAW,GAAA,EACpB,QAAQ;EAC1B;EACA,WAAW;EACX,sBAAsB;CACxB,CAAC;CAED,MAAM,iBAAiBC,iDAAAA,kBAAkB,QAAQ,QAAQ;CAEzD,IAAI,aAAa,CAAC,MAChB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,YAAAA,KAAD;EAAK,IAAG;EAAI,SAAQ;EAAO,MAAK;EAAQ,WAAU;EAAoD,UAAA;CAEjG,CAAA;CAIT,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,+CAAAA,cAAD;EACQ;EACN,UAAU,QAAQ;EAClB,WAAW;EACC;EACZ,YAAY,WAAW,KAAA,IAAY;EACnC,eAAe,WAAW,KAAA,IAAY;EACtC,sBAAsB,WAAW,KAAA,IAAY;EAC7B;EACH;EACb,WAAU;CACX,CAAA;AAEL"}
@@ -1,6 +1,8 @@
1
+ import { useMcpAppHostContext } from "../context/mcp-app-host-context-value.es.js";
1
2
  import { useMcpAppToolCall } from "../hooks/use-mcp-app-tool-call.es.js";
2
- import { t as McpAppViewer } from "../../../mcp-app-viewer-BV7FI498.js";
3
+ import { McpAppViewer } from "./mcp-app-viewer.es.js";
3
4
  import { t as Txt } from "../../../Txt-5efBsb2p.js";
5
+ import { useMemo } from "react";
4
6
  import { jsx } from "react/jsx-runtime";
5
7
  import { useMastraClient } from "@mastra/react";
6
8
  import { useQuery } from "@tanstack/react-query";
@@ -13,8 +15,29 @@ import { useQuery } from "@tanstack/react-query";
13
15
  * (ui/notifications/tool-input and ui/notifications/tool-result), enabling
14
16
  * the app to hydrate with data from the tool call.
15
17
  */
16
- function McpAppToolResult({ appInfo, toolArgs, toolResult, onSendMessage, onUpdateModelContext, readOnly }) {
18
+ function McpAppToolResult({ appInfo, toolArgs, toolResult, toolCallId, onSendMessage, onUpdateModelContext, readOnly }) {
17
19
  const client = useMastraClient();
20
+ const host = useMcpAppHostContext();
21
+ const { toolName, resourceUri } = appInfo;
22
+ const app = useMemo(() => toolCallId === void 0 ? void 0 : {
23
+ toolName,
24
+ toolCallId,
25
+ resourceUri
26
+ }, [
27
+ toolName,
28
+ toolCallId,
29
+ resourceUri
30
+ ]);
31
+ const hostContext = useMemo(() => app && host?.hostContext?.(app) || void 0, [app, host]);
32
+ const onModelContext = useMemo(() => {
33
+ const handler = host?.onModelContext;
34
+ if (!app || !handler || readOnly) return void 0;
35
+ return (params) => handler(app, params);
36
+ }, [
37
+ app,
38
+ host,
39
+ readOnly
40
+ ]);
18
41
  const { data: html, isLoading } = useQuery({
19
42
  queryKey: [
20
43
  "mcp-app-html",
@@ -43,6 +66,8 @@ function McpAppToolResult({ appInfo, toolArgs, toolResult, onSendMessage, onUpda
43
66
  onToolCall: readOnly ? void 0 : handleToolCall,
44
67
  onSendMessage: readOnly ? void 0 : onSendMessage,
45
68
  onUpdateModelContext: readOnly ? void 0 : onUpdateModelContext,
69
+ onModelContext,
70
+ hostContext,
46
71
  className: "rounded-md border border-border"
47
72
  });
48
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-app-tool-result.es.js","names":[],"sources":["../../../../src/domains/mcps/components/mcp-app-tool-result.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport type { McpAppToolInfo } from '@mastra/react/hooks/mcps';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMcpAppToolCall } from '../hooks/use-mcp-app-tool-call';\nimport { McpAppViewer } from './mcp-app-viewer';\nimport { Txt } from '@/ds/components/Txt';\n\ninterface McpAppToolResultProps {\n appInfo: McpAppToolInfo;\n toolArgs?: Record<string, unknown>;\n toolResult?: unknown;\n onSendMessage?: (content: string) => void;\n onUpdateModelContext?: (context: string | undefined) => void;\n readOnly?: boolean;\n}\n\n/**\n * Fetches MCP App HTML from the resource URI and renders it in a McpAppViewer.\n * Used inline in agent chat when a tool call has an associated MCP App UI.\n *\n * Passes tool arguments and result to the iframe via the MCP Apps protocol\n * (ui/notifications/tool-input and ui/notifications/tool-result), enabling\n * the app to hydrate with data from the tool call.\n */\nexport function McpAppToolResult({\n appInfo,\n toolArgs,\n toolResult,\n onSendMessage,\n onUpdateModelContext,\n readOnly,\n}: McpAppToolResultProps) {\n const client = useMastraClient();\n\n const { data: html, isLoading } = useQuery({\n queryKey: ['mcp-app-html', appInfo.serverId, appInfo.resourceUri],\n queryFn: async () => {\n const response = await client.readMcpServerResource(appInfo.serverId, appInfo.resourceUri);\n const content = response.contents?.[0];\n return content?.text ?? '';\n },\n staleTime: 5 * 60_000,\n refetchOnWindowFocus: false,\n });\n\n const handleToolCall = useMcpAppToolCall(appInfo.serverId);\n\n if (isLoading || !html) {\n return (\n <Txt as=\"p\" variant=\"body\" tone=\"muted\" className=\"rounded-md border border-border bg-background p-4\">\n Loading MCP App UI…\n </Txt>\n );\n }\n\n return (\n <McpAppViewer\n html={html}\n toolName={appInfo.toolName}\n toolInput={toolArgs}\n toolResult={toolResult}\n onToolCall={readOnly ? undefined : handleToolCall}\n onSendMessage={readOnly ? undefined : onSendMessage}\n onUpdateModelContext={readOnly ? undefined : onUpdateModelContext}\n className=\"rounded-md border border-border\"\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAwBA,SAAgB,iBAAiB,EAC/B,SACA,UACA,YACA,eACA,sBACA,YACwB;CACxB,MAAM,SAAS,gBAAgB;CAE/B,MAAM,EAAE,MAAM,MAAM,cAAc,SAAS;EACzC,UAAU;GAAC;GAAgB,QAAQ;GAAU,QAAQ;EAAW;EAChE,SAAS,YAAY;GAGnB,SADgB,MADO,OAAO,sBAAsB,QAAQ,UAAU,QAAQ,WAAW,EAAA,CAChE,WAAW,GAAA,EACpB,QAAQ;EAC1B;EACA,WAAW;EACX,sBAAsB;CACxB,CAAC;CAED,MAAM,iBAAiB,kBAAkB,QAAQ,QAAQ;CAEzD,IAAI,aAAa,CAAC,MAChB,OACE,oBAAC,KAAD;EAAK,IAAG;EAAI,SAAQ;EAAO,MAAK;EAAQ,WAAU;EAAoD,UAAA;CAEjG,CAAA;CAIT,OACE,oBAAC,cAAD;EACQ;EACN,UAAU,QAAQ;EAClB,WAAW;EACC;EACZ,YAAY,WAAW,KAAA,IAAY;EACnC,eAAe,WAAW,KAAA,IAAY;EACtC,sBAAsB,WAAW,KAAA,IAAY;EAC7C,WAAU;CACX,CAAA;AAEL"}
1
+ {"version":3,"file":"mcp-app-tool-result.es.js","names":[],"sources":["../../../../src/domains/mcps/components/mcp-app-tool-result.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport type { McpAppToolInfo } from '@mastra/react/hooks/mcps';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { useMcpAppHostContext } from '../context/mcp-app-host-context-value';\nimport type { McpAppModelContextParams, McpAppRef } from '../context/mcp-app-host-context-value';\nimport { useMcpAppToolCall } from '../hooks/use-mcp-app-tool-call';\nimport { McpAppViewer } from './mcp-app-viewer';\nimport { Txt } from '@/ds/components/Txt';\n\ninterface McpAppToolResultProps {\n appInfo: McpAppToolInfo;\n toolArgs?: Record<string, unknown>;\n toolResult?: unknown;\n /** The chat tool call that rendered this app. Required for an `McpAppHostProvider` to reach the app. */\n toolCallId?: string;\n onSendMessage?: (content: string) => void;\n onUpdateModelContext?: (context: string | undefined) => void;\n readOnly?: boolean;\n}\n\n/**\n * Fetches MCP App HTML from the resource URI and renders it in a McpAppViewer.\n * Used inline in agent chat when a tool call has an associated MCP App UI.\n *\n * Passes tool arguments and result to the iframe via the MCP Apps protocol\n * (ui/notifications/tool-input and ui/notifications/tool-result), enabling\n * the app to hydrate with data from the tool call.\n */\nexport function McpAppToolResult({\n appInfo,\n toolArgs,\n toolResult,\n toolCallId,\n onSendMessage,\n onUpdateModelContext,\n readOnly,\n}: McpAppToolResultProps) {\n const client = useMastraClient();\n const host = useMcpAppHostContext();\n const { toolName, resourceUri } = appInfo;\n const app: McpAppRef | undefined = useMemo(\n () => (toolCallId === undefined ? undefined : { toolName, toolCallId, resourceUri }),\n [toolName, toolCallId, resourceUri],\n );\n const hostContext = useMemo(() => (app && host?.hostContext?.(app)) || undefined, [app, host]);\n const onModelContext = useMemo(() => {\n const handler = host?.onModelContext;\n if (!app || !handler || readOnly) return undefined;\n return (params: McpAppModelContextParams) => handler(app, params);\n }, [app, host, readOnly]);\n\n const { data: html, isLoading } = useQuery({\n queryKey: ['mcp-app-html', appInfo.serverId, appInfo.resourceUri],\n queryFn: async () => {\n const response = await client.readMcpServerResource(appInfo.serverId, appInfo.resourceUri);\n const content = response.contents?.[0];\n return content?.text ?? '';\n },\n staleTime: 5 * 60_000,\n refetchOnWindowFocus: false,\n });\n\n const handleToolCall = useMcpAppToolCall(appInfo.serverId);\n\n if (isLoading || !html) {\n return (\n <Txt as=\"p\" variant=\"body\" tone=\"muted\" className=\"rounded-md border border-border bg-background p-4\">\n Loading MCP App UI…\n </Txt>\n );\n }\n\n return (\n <McpAppViewer\n html={html}\n toolName={appInfo.toolName}\n toolInput={toolArgs}\n toolResult={toolResult}\n onToolCall={readOnly ? undefined : handleToolCall}\n onSendMessage={readOnly ? undefined : onSendMessage}\n onUpdateModelContext={readOnly ? undefined : onUpdateModelContext}\n onModelContext={onModelContext}\n hostContext={hostContext}\n className=\"rounded-md border border-border\"\n />\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AA6BA,SAAgB,iBAAiB,EAC/B,SACA,UACA,YACA,YACA,eACA,sBACA,YACwB;CACxB,MAAM,SAAS,gBAAgB;CAC/B,MAAM,OAAO,qBAAqB;CAClC,MAAM,EAAE,UAAU,gBAAgB;CAClC,MAAM,MAA6B,cAC1B,eAAe,KAAA,IAAY,KAAA,IAAY;EAAE;EAAU;EAAY;CAAY,GAClF;EAAC;EAAU;EAAY;CAAW,CACpC;CACA,MAAM,cAAc,cAAe,OAAO,MAAM,cAAc,GAAG,KAAM,KAAA,GAAW,CAAC,KAAK,IAAI,CAAC;CAC7F,MAAM,iBAAiB,cAAc;EACnC,MAAM,UAAU,MAAM;EACtB,IAAI,CAAC,OAAO,CAAC,WAAW,UAAU,OAAO,KAAA;EACzC,QAAQ,WAAqC,QAAQ,KAAK,MAAM;CAClE,GAAG;EAAC;EAAK;EAAM;CAAQ,CAAC;CAExB,MAAM,EAAE,MAAM,MAAM,cAAc,SAAS;EACzC,UAAU;GAAC;GAAgB,QAAQ;GAAU,QAAQ;EAAW;EAChE,SAAS,YAAY;GAGnB,SADgB,MADO,OAAO,sBAAsB,QAAQ,UAAU,QAAQ,WAAW,EAAA,CAChE,WAAW,GAAA,EACpB,QAAQ;EAC1B;EACA,WAAW;EACX,sBAAsB;CACxB,CAAC;CAED,MAAM,iBAAiB,kBAAkB,QAAQ,QAAQ;CAEzD,IAAI,aAAa,CAAC,MAChB,OACE,oBAAC,KAAD;EAAK,IAAG;EAAI,SAAQ;EAAO,MAAK;EAAQ,WAAU;EAAoD,UAAA;CAEjG,CAAA;CAIT,OACE,oBAAC,cAAD;EACQ;EACN,UAAU,QAAQ;EAClB,WAAW;EACC;EACZ,YAAY,WAAW,KAAA,IAAY;EACnC,eAAe,WAAW,KAAA,IAAY;EACtC,sBAAsB,WAAW,KAAA,IAAY;EAC7B;EACH;EACb,WAAU;CACX,CAAA;AAEL"}