@hotmeshio/long-tail 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/dashboard/dist/assets/AdminDashboard-Ck5-jV9T.js +2 -0
  2. package/dashboard/dist/assets/{AdminDashboard-9JLg41f-.js.map → AdminDashboard-Ck5-jV9T.js.map} +1 -1
  3. package/dashboard/dist/assets/AgentConfigPage-DFiXRBWs.js +16 -0
  4. package/dashboard/dist/assets/AgentConfigPage-DFiXRBWs.js.map +1 -0
  5. package/dashboard/dist/assets/AgentDetailPage-BBgM_pMe.js +4 -0
  6. package/dashboard/dist/assets/AgentDetailPage-BBgM_pMe.js.map +1 -0
  7. package/dashboard/dist/assets/AgentsPage-DxwFuedf.js +2 -0
  8. package/dashboard/dist/assets/AgentsPage-DxwFuedf.js.map +1 -0
  9. package/dashboard/dist/assets/AvailableEscalationsPage-DNQbeIcn.js +2 -0
  10. package/dashboard/dist/assets/{AvailableEscalationsPage-CoZ4Lufr.js.map → AvailableEscalationsPage-DNQbeIcn.js.map} +1 -1
  11. package/dashboard/dist/assets/BotPicker-mqwKVOE3.js +2 -0
  12. package/dashboard/dist/assets/{BotPicker-xGUCxJo-.js.map → BotPicker-mqwKVOE3.js.map} +1 -1
  13. package/dashboard/dist/assets/CapabilitiesPage-Biffm0kW.js +2 -0
  14. package/dashboard/dist/assets/CapabilitiesPage-Biffm0kW.js.map +1 -0
  15. package/dashboard/dist/assets/CollapsibleSection-Bn6Ks79X.js +2 -0
  16. package/dashboard/dist/assets/{CollapsibleSection-CXMPecjj.js.map → CollapsibleSection-Bn6Ks79X.js.map} +1 -1
  17. package/dashboard/dist/assets/ConfirmDeleteModal-no0-c_1G.js +2 -0
  18. package/dashboard/dist/assets/{ConfirmDeleteModal-D9_1b4MW.js.map → ConfirmDeleteModal-no0-c_1G.js.map} +1 -1
  19. package/dashboard/dist/assets/CopyableId-DS6IDMIX.js +2 -0
  20. package/dashboard/dist/assets/{CopyableId-blg-gZvT.js.map → CopyableId-DS6IDMIX.js.map} +1 -1
  21. package/dashboard/dist/assets/CredentialsPage-C3NyncEB.js +2 -0
  22. package/dashboard/dist/assets/CredentialsPage-C3NyncEB.js.map +1 -0
  23. package/dashboard/dist/assets/CronLabel-DQWBx57H.js +2 -0
  24. package/dashboard/dist/assets/CronLabel-DQWBx57H.js.map +1 -0
  25. package/dashboard/dist/assets/CustomDurationPicker-DV42oZ1G.js +2 -0
  26. package/dashboard/dist/assets/{CustomDurationPicker-id6Tq64R.js.map → CustomDurationPicker-DV42oZ1G.js.map} +1 -1
  27. package/dashboard/dist/assets/DataTable-Bf4dgxll.js +2 -0
  28. package/dashboard/dist/assets/{DataTable-ZWgVQg7F.js.map → DataTable-Bf4dgxll.js.map} +1 -1
  29. package/dashboard/dist/assets/DropZone-CTSXBb3c.js +2 -0
  30. package/dashboard/dist/assets/{DropZone-CZDmNBn-.js.map → DropZone-CTSXBb3c.js.map} +1 -1
  31. package/dashboard/dist/assets/ElapsedCell-roy4G5SQ.js +2 -0
  32. package/dashboard/dist/assets/{ElapsedCell-B8TrnyT5.js.map → ElapsedCell-roy4G5SQ.js.map} +1 -1
  33. package/dashboard/dist/assets/EmptyState-CLVm9KmA.js +2 -0
  34. package/dashboard/dist/assets/{EmptyState-BcsfPq9T.js.map → EmptyState-CLVm9KmA.js.map} +1 -1
  35. package/dashboard/dist/assets/EscalationSchemaPage-DulCCxea.js +9 -0
  36. package/dashboard/dist/assets/EscalationSchemaPage-DulCCxea.js.map +1 -0
  37. package/dashboard/dist/assets/EscalationsOverview-DDwxn_mT.js +2 -0
  38. package/dashboard/dist/assets/{EscalationsOverview-CjLyujJ3.js.map → EscalationsOverview-DDwxn_mT.js.map} +1 -1
  39. package/dashboard/dist/assets/EventTable-BaLNvCew.js +2 -0
  40. package/dashboard/dist/assets/EventTable-BaLNvCew.js.map +1 -0
  41. package/dashboard/dist/assets/FilterBar-DEAbNQqp.js +2 -0
  42. package/dashboard/dist/assets/FilterBar-DEAbNQqp.js.map +1 -0
  43. package/dashboard/dist/assets/GraphInvokePage-BmM8r0R3.js +2 -0
  44. package/dashboard/dist/assets/GraphInvokePage-BmM8r0R3.js.map +1 -0
  45. package/dashboard/dist/assets/HomePage-Ds3PzWWr.js +2 -0
  46. package/dashboard/dist/assets/HomePage-Ds3PzWWr.js.map +1 -0
  47. package/dashboard/dist/assets/ListToolbar-Dviaskni.js +2 -0
  48. package/dashboard/dist/assets/{ListToolbar--FkPpYDY.js.map → ListToolbar-Dviaskni.js.map} +1 -1
  49. package/dashboard/dist/assets/McpOverview-BBm66wbF.js +2 -0
  50. package/dashboard/dist/assets/{McpOverview-CtAFXv-T.js.map → McpOverview-BBm66wbF.js.map} +1 -1
  51. package/dashboard/dist/assets/McpQueryDetailPage-B6GJOMcz.js +5 -0
  52. package/dashboard/dist/assets/McpQueryDetailPage-B6GJOMcz.js.map +1 -0
  53. package/dashboard/dist/assets/McpQueryPage-C-8nIdBL.js +2 -0
  54. package/dashboard/dist/assets/McpQueryPage-C-8nIdBL.js.map +1 -0
  55. package/dashboard/dist/assets/McpRunDetailPage-CSq_0qqi.js +2 -0
  56. package/dashboard/dist/assets/{McpRunDetailPage-BYIxBcA7.js.map → McpRunDetailPage-CSq_0qqi.js.map} +1 -1
  57. package/dashboard/dist/assets/McpRunsPage-BdK8ahX7.js +2 -0
  58. package/dashboard/dist/assets/McpRunsPage-BdK8ahX7.js.map +1 -0
  59. package/dashboard/dist/assets/Modal-C6HI6btY.js +2 -0
  60. package/dashboard/dist/assets/{Modal-CSrxpXeM.js.map → Modal-C6HI6btY.js.map} +1 -1
  61. package/dashboard/dist/assets/NamespacePill-eGsbJBFa.js +2 -0
  62. package/dashboard/dist/assets/{NamespacePill-DlqBTvFR.js.map → NamespacePill-eGsbJBFa.js.map} +1 -1
  63. package/dashboard/dist/assets/OperationsPage-DODPFmf2.js +2 -0
  64. package/dashboard/dist/assets/OperationsPage-DODPFmf2.js.map +1 -0
  65. package/dashboard/dist/assets/OperatorDashboard-BbmgsOmQ.js +2 -0
  66. package/dashboard/dist/assets/{OperatorDashboard-DMQwodfo.js.map → OperatorDashboard-BbmgsOmQ.js.map} +1 -1
  67. package/dashboard/dist/assets/PageHeader-DcgGV0Y2.js +2 -0
  68. package/dashboard/dist/assets/{PageHeader-CFta2VaS.js.map → PageHeader-DcgGV0Y2.js.map} +1 -1
  69. package/dashboard/dist/assets/PageHeaderWithStats-Cf8TYFRh.js +2 -0
  70. package/dashboard/dist/assets/PageHeaderWithStats-Cf8TYFRh.js.map +1 -0
  71. package/dashboard/dist/assets/PriorityBadge-a7u8C9uY.js +2 -0
  72. package/dashboard/dist/assets/{PriorityBadge-B4ykBH7f.js.map → PriorityBadge-a7u8C9uY.js.map} +1 -1
  73. package/dashboard/dist/assets/ProcessDetailPage-D80w44rV.js +2 -0
  74. package/dashboard/dist/assets/ProcessDetailPage-D80w44rV.js.map +1 -0
  75. package/dashboard/dist/assets/ProcessesListPage-BjW5xUkv.js +2 -0
  76. package/dashboard/dist/assets/{ProcessesListPage-BVtkWVLY.js.map → ProcessesListPage-BjW5xUkv.js.map} +1 -1
  77. package/dashboard/dist/assets/RoleDetailPage-oahg0cdT.js +11 -0
  78. package/dashboard/dist/assets/RoleDetailPage-oahg0cdT.js.map +1 -0
  79. package/dashboard/dist/assets/RolePill-BAeaQUXX.js +2 -0
  80. package/dashboard/dist/assets/RolePill-BAeaQUXX.js.map +1 -0
  81. package/dashboard/dist/assets/RolesPage-BI1Xtqq_.js +2 -0
  82. package/dashboard/dist/assets/RolesPage-BI1Xtqq_.js.map +1 -0
  83. package/dashboard/dist/assets/RowActions--m4F6GW8.js +2 -0
  84. package/dashboard/dist/assets/{RowActions-BA9L9djf.js.map → RowActions--m4F6GW8.js.map} +1 -1
  85. package/dashboard/dist/assets/RunAsSelector-DiGzSfiG.js +2 -0
  86. package/dashboard/dist/assets/{RunAsSelector-Cc1i017Z.js.map → RunAsSelector-DiGzSfiG.js.map} +1 -1
  87. package/dashboard/dist/assets/StatCard-DCPGFzCv.js +2 -0
  88. package/dashboard/dist/assets/StatCard-DCPGFzCv.js.map +1 -0
  89. package/dashboard/dist/assets/StatusBadge-mk-dJwPT.js +2 -0
  90. package/dashboard/dist/assets/{StatusBadge-D9MeQHrh.js.map → StatusBadge-mk-dJwPT.js.map} +1 -1
  91. package/dashboard/dist/assets/StickyPagination-Clm9H840.js +2 -0
  92. package/dashboard/dist/assets/{StickyPagination-GQKFFTjL.js.map → StickyPagination-Clm9H840.js.map} +1 -1
  93. package/dashboard/dist/assets/StreamMessageDetail-Bikvs1Cz.js +2 -0
  94. package/dashboard/dist/assets/StreamMessageDetail-Bikvs1Cz.js.map +1 -0
  95. package/dashboard/dist/assets/SwimlaneTimeline-C9X3IVqI.js +2 -0
  96. package/dashboard/dist/assets/SwimlaneTimeline-C9X3IVqI.js.map +1 -0
  97. package/dashboard/dist/assets/TagInput-DmJLnghg.js +2 -0
  98. package/dashboard/dist/assets/{TagInput-CQg-TrV9.js.map → TagInput-DmJLnghg.js.map} +1 -1
  99. package/dashboard/dist/assets/TaskDetailPage-C0tbiUi7.js +2 -0
  100. package/dashboard/dist/assets/TaskDetailPage-C0tbiUi7.js.map +1 -0
  101. package/dashboard/dist/assets/TaskQueuePill--1OX6egx.js +2 -0
  102. package/dashboard/dist/assets/{TaskQueuePill-DyvtL8X4.js.map → TaskQueuePill--1OX6egx.js.map} +1 -1
  103. package/dashboard/dist/assets/TasksListPage-DcYV-GMA.js +2 -0
  104. package/dashboard/dist/assets/{TasksListPage-DpqevgTz.js.map → TasksListPage-DcYV-GMA.js.map} +1 -1
  105. package/dashboard/dist/assets/TimeAgo-pYn3T9IZ.js +2 -0
  106. package/dashboard/dist/assets/{TimeAgo-CftB8aJE.js.map → TimeAgo-pYn3T9IZ.js.map} +1 -1
  107. package/dashboard/dist/assets/TimestampCell-BPMCscic.js +2 -0
  108. package/dashboard/dist/assets/{TimestampCell-BSKj1jqT.js.map → TimestampCell-BPMCscic.js.map} +1 -1
  109. package/dashboard/dist/assets/ToolPill-BnF9lCUX.js +2 -0
  110. package/dashboard/dist/assets/{ToolPill-miuRcj1Q.js.map → ToolPill-BnF9lCUX.js.map} +1 -1
  111. package/dashboard/dist/assets/ToolTestPanel-Bw4z_Tya.js +2 -0
  112. package/dashboard/dist/assets/{ToolTestPanel-DVQICZUQ.js.map → ToolTestPanel-Bw4z_Tya.js.map} +1 -1
  113. package/dashboard/dist/assets/TopicDetailPage-CtFztOnn.js +9 -0
  114. package/dashboard/dist/assets/TopicDetailPage-CtFztOnn.js.map +1 -0
  115. package/dashboard/dist/assets/TopicsPage-BXdc6pAU.js +2 -0
  116. package/dashboard/dist/assets/TopicsPage-BXdc6pAU.js.map +1 -0
  117. package/dashboard/dist/assets/UserName-R96NG6xB.js +2 -0
  118. package/dashboard/dist/assets/{UserName-Ce9gvlT5.js.map → UserName-R96NG6xB.js.map} +1 -1
  119. package/dashboard/dist/assets/WorkflowExecutionPage-DmRJabMQ.js +2 -0
  120. package/dashboard/dist/assets/{WorkflowExecutionPage-BI9NzeaH.js.map → WorkflowExecutionPage-DmRJabMQ.js.map} +1 -1
  121. package/dashboard/dist/assets/WorkflowPill-Cc2MlYbB.js +2 -0
  122. package/dashboard/dist/assets/WorkflowPill-Cc2MlYbB.js.map +1 -0
  123. package/dashboard/dist/assets/WorkflowsDashboard-uLU5ZToY.js +2 -0
  124. package/dashboard/dist/assets/WorkflowsDashboard-uLU5ZToY.js.map +1 -0
  125. package/dashboard/dist/assets/WorkflowsOverview-BhgE0RS8.js +2 -0
  126. package/dashboard/dist/assets/{WorkflowsOverview-CjBWlwlH.js.map → WorkflowsOverview-BhgE0RS8.js.map} +1 -1
  127. package/dashboard/dist/assets/YamlWorkflowDetailPage-CvIgB5y7.js +33 -0
  128. package/dashboard/dist/assets/{YamlWorkflowDetailPage-Ds5o1UK9.js.map → YamlWorkflowDetailPage-CvIgB5y7.js.map} +1 -1
  129. package/dashboard/dist/assets/YamlWorkflowsPage-DWnsgl2v.js +2 -0
  130. package/dashboard/dist/assets/{YamlWorkflowsPage-ChwvZS4Z.js.map → YamlWorkflowsPage-DWnsgl2v.js.map} +1 -1
  131. package/dashboard/dist/assets/{agents-A1U43853.js → agents-BpYMwrsB.js} +2 -2
  132. package/dashboard/dist/assets/{agents-A1U43853.js.map → agents-BpYMwrsB.js.map} +1 -1
  133. package/dashboard/dist/assets/{bots-CyzN6Uxi.js → bots-DI6Wqp5X.js} +2 -2
  134. package/dashboard/dist/assets/{bots-CyzN6Uxi.js.map → bots-DI6Wqp5X.js.map} +1 -1
  135. package/dashboard/dist/assets/capabilities-BKZZb8eM.js +2 -0
  136. package/dashboard/dist/assets/{capabilities-BE1X5FVI.js.map → capabilities-BKZZb8eM.js.map} +1 -1
  137. package/dashboard/dist/assets/{controlplane-BrwK_MT8.js → controlplane-Djshb7fm.js} +2 -2
  138. package/dashboard/dist/assets/{controlplane-BrwK_MT8.js.map → controlplane-Djshb7fm.js.map} +1 -1
  139. package/dashboard/dist/assets/escalation-D8mrXtjS.js +2 -0
  140. package/dashboard/dist/assets/{escalation-DDdt7UdU.js.map → escalation-D8mrXtjS.js.map} +1 -1
  141. package/dashboard/dist/assets/escalation-columns-CyLzgPkz.js +2 -0
  142. package/dashboard/dist/assets/escalation-columns-CyLzgPkz.js.map +1 -0
  143. package/dashboard/dist/assets/index-B5MAG4Uv.js +2 -0
  144. package/dashboard/dist/assets/{index-BNWKksZ6.js.map → index-B5MAG4Uv.js.map} +1 -1
  145. package/dashboard/dist/assets/index-BfxiRwk2.js +6 -0
  146. package/dashboard/dist/assets/index-BfxiRwk2.js.map +1 -0
  147. package/dashboard/dist/assets/index-C71I-f5G.js +2 -0
  148. package/dashboard/dist/assets/{index-BtrNxebh.js.map → index-C71I-f5G.js.map} +1 -1
  149. package/dashboard/dist/assets/index-CC4g-6QE.css +1 -0
  150. package/dashboard/dist/assets/index-CJb3dXku.js +2 -0
  151. package/dashboard/dist/assets/index-CJb3dXku.js.map +1 -0
  152. package/dashboard/dist/assets/index-CQtv2rj6.js +2 -0
  153. package/dashboard/dist/assets/index-CQtv2rj6.js.map +1 -0
  154. package/dashboard/dist/assets/index-CphzO7b8.js +2 -0
  155. package/dashboard/dist/assets/{index-D4U--3Xo.js.map → index-CphzO7b8.js.map} +1 -1
  156. package/dashboard/dist/assets/index-CwAmiy_j.js +2 -0
  157. package/dashboard/dist/assets/index-CwAmiy_j.js.map +1 -0
  158. package/dashboard/dist/assets/index-DgCS2Frb.js +281 -0
  159. package/dashboard/dist/assets/index-DgCS2Frb.js.map +1 -0
  160. package/dashboard/dist/assets/index-DkbnD-Te.js +2 -0
  161. package/dashboard/dist/assets/{index-C-rJQ-vB.js.map → index-DkbnD-Te.js.map} +1 -1
  162. package/dashboard/dist/assets/index-Y6yj36QR.js +9 -0
  163. package/dashboard/dist/assets/index-Y6yj36QR.js.map +1 -0
  164. package/dashboard/dist/assets/index-eshNd6NY.js +6 -0
  165. package/dashboard/dist/assets/{index-CGUBekEU.js.map → index-eshNd6NY.js.map} +1 -1
  166. package/dashboard/dist/assets/index-xn9fmkHC.js +2 -0
  167. package/dashboard/dist/assets/index-xn9fmkHC.js.map +1 -0
  168. package/dashboard/dist/assets/index-yxnQew1X.js +2 -0
  169. package/dashboard/dist/assets/index-yxnQew1X.js.map +1 -0
  170. package/dashboard/dist/assets/{knowledge-B3ZIRTeu.js → knowledge-C_1r0faY.js} +2 -2
  171. package/dashboard/dist/assets/{knowledge-B3ZIRTeu.js.map → knowledge-C_1r0faY.js.map} +1 -1
  172. package/dashboard/dist/assets/{mcp-BJjWiHdc.js → mcp-BtG54ZAx.js} +2 -2
  173. package/dashboard/dist/assets/{mcp-BJjWiHdc.js.map → mcp-BtG54ZAx.js.map} +1 -1
  174. package/dashboard/dist/assets/{mcp-query-ksjBztwq.js → mcp-query-CSdQWxmv.js} +2 -2
  175. package/dashboard/dist/assets/{mcp-query-ksjBztwq.js.map → mcp-query-CSdQWxmv.js.map} +1 -1
  176. package/dashboard/dist/assets/{pipelines-DT1astmP.js → pipelines-DVkwxN64.js} +2 -2
  177. package/dashboard/dist/assets/{pipelines-DT1astmP.js.map → pipelines-DVkwxN64.js.map} +1 -1
  178. package/dashboard/dist/assets/{roles-UboiQxXT.js → roles-CpRcUIMm.js} +2 -2
  179. package/dashboard/dist/assets/{roles-UboiQxXT.js.map → roles-CpRcUIMm.js.map} +1 -1
  180. package/dashboard/dist/assets/{tasks-aL0K8WW3.js → tasks-DNdvW5H6.js} +2 -2
  181. package/dashboard/dist/assets/{tasks-aL0K8WW3.js.map → tasks-DNdvW5H6.js.map} +1 -1
  182. package/dashboard/dist/assets/{topics-CZO06VJl.js → topics-DNC77Chw.js} +2 -2
  183. package/dashboard/dist/assets/{topics-CZO06VJl.js.map → topics-DNC77Chw.js.map} +1 -1
  184. package/dashboard/dist/assets/{useCollapsedSections-BU5HULGs.js → useCollapsedSections-CGNA5oKV.js} +2 -2
  185. package/dashboard/dist/assets/{useCollapsedSections-BU5HULGs.js.map → useCollapsedSections-CGNA5oKV.js.map} +1 -1
  186. package/dashboard/dist/assets/{useDebouncedValue-BA5S7V54.js → useDebouncedValue-DmL3uNt_.js} +2 -2
  187. package/dashboard/dist/assets/{useDebouncedValue-BA5S7V54.js.map → useDebouncedValue-DmL3uNt_.js.map} +1 -1
  188. package/dashboard/dist/assets/{useEventHooks-DlWkui_n.js → useEventHooks-CUUeBSH1.js} +2 -2
  189. package/dashboard/dist/assets/{useEventHooks-DlWkui_n.js.map → useEventHooks-CUUeBSH1.js.map} +1 -1
  190. package/dashboard/dist/assets/{useFilterParams-x-Dg0Vgz.js → useFilterParams-Ch-a71bE.js} +2 -2
  191. package/dashboard/dist/assets/{useFilterParams-x-Dg0Vgz.js.map → useFilterParams-Ch-a71bE.js.map} +1 -1
  192. package/dashboard/dist/assets/{useNamespace-BBzCmCIN.js → useNamespace-D-AjLnPK.js} +2 -2
  193. package/dashboard/dist/assets/{useNamespace-BBzCmCIN.js.map → useNamespace-D-AjLnPK.js.map} +1 -1
  194. package/dashboard/dist/assets/{useYamlActivityEvents-ZS6wRSSc.js → useYamlActivityEvents-DRdetOb_.js} +2 -2
  195. package/dashboard/dist/assets/{useYamlActivityEvents-ZS6wRSSc.js.map → useYamlActivityEvents-DRdetOb_.js.map} +1 -1
  196. package/dashboard/dist/assets/{users-Dzh04pRB.js → users-BUgdEsec.js} +2 -2
  197. package/dashboard/dist/assets/{users-Dzh04pRB.js.map → users-BUgdEsec.js.map} +1 -1
  198. package/dashboard/dist/assets/{vendor-icons-BaQqUm-e.js → vendor-icons-CNyYGNsk.js} +3 -3
  199. package/dashboard/dist/assets/{vendor-icons-BaQqUm-e.js.map → vendor-icons-CNyYGNsk.js.map} +1 -1
  200. package/dashboard/dist/assets/vendor-query-DLp59M9_.js +35 -0
  201. package/dashboard/dist/assets/vendor-query-DLp59M9_.js.map +1 -0
  202. package/dashboard/dist/assets/vendor-react-zA2lQFDs.js +26 -0
  203. package/dashboard/dist/assets/vendor-react-zA2lQFDs.js.map +1 -0
  204. package/dashboard/dist/assets/{workflows-BTkHs6VT.js → workflows-BfyR5VJt.js} +2 -2
  205. package/dashboard/dist/assets/{workflows-BTkHs6VT.js.map → workflows-BfyR5VJt.js.map} +1 -1
  206. package/dashboard/dist/assets/{yaml-workflows-Df8u3lgx.js → yaml-workflows-Bz7yEnhl.js} +2 -2
  207. package/dashboard/dist/assets/{yaml-workflows-Df8u3lgx.js.map → yaml-workflows-Bz7yEnhl.js.map} +1 -1
  208. package/dashboard/dist/index.html +5 -5
  209. package/package.json +1 -1
  210. package/dashboard/dist/assets/AdminDashboard-9JLg41f-.js +0 -2
  211. package/dashboard/dist/assets/AgentConfigPage-D5P1hcOc.js +0 -16
  212. package/dashboard/dist/assets/AgentConfigPage-D5P1hcOc.js.map +0 -1
  213. package/dashboard/dist/assets/AgentDetailPage-DrijeAV8.js +0 -4
  214. package/dashboard/dist/assets/AgentDetailPage-DrijeAV8.js.map +0 -1
  215. package/dashboard/dist/assets/AgentsPage-BW5d0JOt.js +0 -2
  216. package/dashboard/dist/assets/AgentsPage-BW5d0JOt.js.map +0 -1
  217. package/dashboard/dist/assets/AvailableEscalationsPage-CoZ4Lufr.js +0 -2
  218. package/dashboard/dist/assets/BotPicker-xGUCxJo-.js +0 -2
  219. package/dashboard/dist/assets/CapabilitiesPage-ChaRJiyg.js +0 -2
  220. package/dashboard/dist/assets/CapabilitiesPage-ChaRJiyg.js.map +0 -1
  221. package/dashboard/dist/assets/CollapsibleSection-CXMPecjj.js +0 -2
  222. package/dashboard/dist/assets/ConfirmDeleteModal-D9_1b4MW.js +0 -2
  223. package/dashboard/dist/assets/CopyableId-blg-gZvT.js +0 -2
  224. package/dashboard/dist/assets/CredentialsPage-BbdfZh1D.js +0 -2
  225. package/dashboard/dist/assets/CredentialsPage-BbdfZh1D.js.map +0 -1
  226. package/dashboard/dist/assets/CronLabel-CJUL50eO.js +0 -2
  227. package/dashboard/dist/assets/CronLabel-CJUL50eO.js.map +0 -1
  228. package/dashboard/dist/assets/CustomDurationPicker-id6Tq64R.js +0 -2
  229. package/dashboard/dist/assets/DataTable-ZWgVQg7F.js +0 -2
  230. package/dashboard/dist/assets/DropZone-CZDmNBn-.js +0 -2
  231. package/dashboard/dist/assets/ElapsedCell-B8TrnyT5.js +0 -2
  232. package/dashboard/dist/assets/EmptyState-BcsfPq9T.js +0 -2
  233. package/dashboard/dist/assets/EscalationSchemaPage-C6UuZgCD.js +0 -9
  234. package/dashboard/dist/assets/EscalationSchemaPage-C6UuZgCD.js.map +0 -1
  235. package/dashboard/dist/assets/EscalationsOverview-CjLyujJ3.js +0 -2
  236. package/dashboard/dist/assets/EventTable-D_rNmyGG.js +0 -2
  237. package/dashboard/dist/assets/EventTable-D_rNmyGG.js.map +0 -1
  238. package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js +0 -2
  239. package/dashboard/dist/assets/FilterBar-BQ2JGg8U.js.map +0 -1
  240. package/dashboard/dist/assets/GraphInvokePage-BMyrTnI6.js +0 -2
  241. package/dashboard/dist/assets/GraphInvokePage-BMyrTnI6.js.map +0 -1
  242. package/dashboard/dist/assets/HomePage-MBv6pwk4.js +0 -2
  243. package/dashboard/dist/assets/HomePage-MBv6pwk4.js.map +0 -1
  244. package/dashboard/dist/assets/ListToolbar--FkPpYDY.js +0 -2
  245. package/dashboard/dist/assets/McpOverview-CtAFXv-T.js +0 -2
  246. package/dashboard/dist/assets/McpQueryDetailPage-5Jzz2q2g.js +0 -5
  247. package/dashboard/dist/assets/McpQueryDetailPage-5Jzz2q2g.js.map +0 -1
  248. package/dashboard/dist/assets/McpQueryPage-DveeRF5I.js +0 -2
  249. package/dashboard/dist/assets/McpQueryPage-DveeRF5I.js.map +0 -1
  250. package/dashboard/dist/assets/McpRunDetailPage-BYIxBcA7.js +0 -2
  251. package/dashboard/dist/assets/McpRunsPage-Cgke6ask.js +0 -2
  252. package/dashboard/dist/assets/McpRunsPage-Cgke6ask.js.map +0 -1
  253. package/dashboard/dist/assets/Modal-CSrxpXeM.js +0 -2
  254. package/dashboard/dist/assets/NamespacePill-DlqBTvFR.js +0 -2
  255. package/dashboard/dist/assets/OperationsPage-D2i7xrAI.js +0 -2
  256. package/dashboard/dist/assets/OperationsPage-D2i7xrAI.js.map +0 -1
  257. package/dashboard/dist/assets/OperatorDashboard-DMQwodfo.js +0 -2
  258. package/dashboard/dist/assets/PageHeader-CFta2VaS.js +0 -2
  259. package/dashboard/dist/assets/PageHeaderWithStats-CcVAji-7.js +0 -2
  260. package/dashboard/dist/assets/PageHeaderWithStats-CcVAji-7.js.map +0 -1
  261. package/dashboard/dist/assets/PriorityBadge-B4ykBH7f.js +0 -2
  262. package/dashboard/dist/assets/ProcessDetailPage-Dodrk5-z.js +0 -2
  263. package/dashboard/dist/assets/ProcessDetailPage-Dodrk5-z.js.map +0 -1
  264. package/dashboard/dist/assets/ProcessesListPage-BVtkWVLY.js +0 -2
  265. package/dashboard/dist/assets/RoleDetailPage-8NldZI49.js +0 -11
  266. package/dashboard/dist/assets/RoleDetailPage-8NldZI49.js.map +0 -1
  267. package/dashboard/dist/assets/RolePill-CXEyPMqb.js +0 -2
  268. package/dashboard/dist/assets/RolePill-CXEyPMqb.js.map +0 -1
  269. package/dashboard/dist/assets/RolesPage-BJBjtFNY.js +0 -2
  270. package/dashboard/dist/assets/RolesPage-BJBjtFNY.js.map +0 -1
  271. package/dashboard/dist/assets/RowActions-BA9L9djf.js +0 -2
  272. package/dashboard/dist/assets/RunAsSelector-Cc1i017Z.js +0 -2
  273. package/dashboard/dist/assets/StatCard-DlgF0CJC.js +0 -2
  274. package/dashboard/dist/assets/StatCard-DlgF0CJC.js.map +0 -1
  275. package/dashboard/dist/assets/StatusBadge-D9MeQHrh.js +0 -2
  276. package/dashboard/dist/assets/StickyPagination-GQKFFTjL.js +0 -2
  277. package/dashboard/dist/assets/StreamMessageDetail-BYzfjWe_.js +0 -2
  278. package/dashboard/dist/assets/StreamMessageDetail-BYzfjWe_.js.map +0 -1
  279. package/dashboard/dist/assets/SwimlaneTimeline-DLVmRrd-.js +0 -2
  280. package/dashboard/dist/assets/SwimlaneTimeline-DLVmRrd-.js.map +0 -1
  281. package/dashboard/dist/assets/TagInput-CQg-TrV9.js +0 -2
  282. package/dashboard/dist/assets/TaskDetailPage-HzQpzp6D.js +0 -2
  283. package/dashboard/dist/assets/TaskDetailPage-HzQpzp6D.js.map +0 -1
  284. package/dashboard/dist/assets/TaskQueuePill-DyvtL8X4.js +0 -2
  285. package/dashboard/dist/assets/TasksListPage-DpqevgTz.js +0 -2
  286. package/dashboard/dist/assets/TimeAgo-CftB8aJE.js +0 -2
  287. package/dashboard/dist/assets/TimestampCell-BSKj1jqT.js +0 -2
  288. package/dashboard/dist/assets/ToolPill-miuRcj1Q.js +0 -2
  289. package/dashboard/dist/assets/ToolTestPanel-DVQICZUQ.js +0 -2
  290. package/dashboard/dist/assets/TopicDetailPage-B2LAQDEg.js +0 -9
  291. package/dashboard/dist/assets/TopicDetailPage-B2LAQDEg.js.map +0 -1
  292. package/dashboard/dist/assets/TopicsPage-SwPAnN2C.js +0 -2
  293. package/dashboard/dist/assets/TopicsPage-SwPAnN2C.js.map +0 -1
  294. package/dashboard/dist/assets/UserName-Ce9gvlT5.js +0 -2
  295. package/dashboard/dist/assets/WorkflowExecutionPage-BI9NzeaH.js +0 -2
  296. package/dashboard/dist/assets/WorkflowPill-BuNkWUVM.js +0 -2
  297. package/dashboard/dist/assets/WorkflowPill-BuNkWUVM.js.map +0 -1
  298. package/dashboard/dist/assets/WorkflowsDashboard-CvWSgQdE.js +0 -2
  299. package/dashboard/dist/assets/WorkflowsDashboard-CvWSgQdE.js.map +0 -1
  300. package/dashboard/dist/assets/WorkflowsOverview-CjBWlwlH.js +0 -2
  301. package/dashboard/dist/assets/YamlWorkflowDetailPage-Ds5o1UK9.js +0 -33
  302. package/dashboard/dist/assets/YamlWorkflowsPage-ChwvZS4Z.js +0 -2
  303. package/dashboard/dist/assets/capabilities-BE1X5FVI.js +0 -2
  304. package/dashboard/dist/assets/escalation-DDdt7UdU.js +0 -2
  305. package/dashboard/dist/assets/escalation-columns-D_zFY1zF.js +0 -2
  306. package/dashboard/dist/assets/escalation-columns-D_zFY1zF.js.map +0 -1
  307. package/dashboard/dist/assets/index-6MALVAEY.js +0 -2
  308. package/dashboard/dist/assets/index-6MALVAEY.js.map +0 -1
  309. package/dashboard/dist/assets/index-BNWKksZ6.js +0 -2
  310. package/dashboard/dist/assets/index-BtrNxebh.js +0 -2
  311. package/dashboard/dist/assets/index-C-rJQ-vB.js +0 -2
  312. package/dashboard/dist/assets/index-CGUBekEU.js +0 -6
  313. package/dashboard/dist/assets/index-CKXSKsVZ.js +0 -63
  314. package/dashboard/dist/assets/index-CKXSKsVZ.js.map +0 -1
  315. package/dashboard/dist/assets/index-CZ6-l8_0.css +0 -1
  316. package/dashboard/dist/assets/index-D2dDPGNk.js +0 -2
  317. package/dashboard/dist/assets/index-D2dDPGNk.js.map +0 -1
  318. package/dashboard/dist/assets/index-D4U--3Xo.js +0 -2
  319. package/dashboard/dist/assets/index-D4gAsCGh.js +0 -2
  320. package/dashboard/dist/assets/index-D4gAsCGh.js.map +0 -1
  321. package/dashboard/dist/assets/index-DEXouwBQ.js +0 -2
  322. package/dashboard/dist/assets/index-DEXouwBQ.js.map +0 -1
  323. package/dashboard/dist/assets/index-NnGsWGNS.js +0 -2
  324. package/dashboard/dist/assets/index-NnGsWGNS.js.map +0 -1
  325. package/dashboard/dist/assets/index-U27KBbTV.js +0 -9
  326. package/dashboard/dist/assets/index-U27KBbTV.js.map +0 -1
  327. package/dashboard/dist/assets/index-fwHQSJCp.js +0 -6
  328. package/dashboard/dist/assets/index-fwHQSJCp.js.map +0 -1
  329. package/dashboard/dist/assets/vendor-query-B2UbickB.js +0 -18
  330. package/dashboard/dist/assets/vendor-query-B2UbickB.js.map +0 -1
  331. package/dashboard/dist/assets/vendor-react-CXumBFUA.js +0 -22
  332. package/dashboard/dist/assets/vendor-react-CXumBFUA.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"McpOverview-CtAFXv-T.js","sources":["../../src/pages/mcp/McpOverview.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Server, Workflow } from 'lucide-react';\nimport { useMcpServers } from '../../api/mcp';\nimport { useMcpRuns } from '../../api/pipelines';\nimport { useYamlWorkflows } from '../../api/yaml-workflows';\nimport { useControlPlaneApps } from '../../api/controlplane';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { StatCard } from '../../components/common/data/StatCard';\nimport type { McpToolManifest } from '../../api/types';\n\n// ── Duration filter ──────────────────────────────────────────────────────────\n\nconst DURATIONS = [\n { label: '1h', ms: 3_600_000 },\n { label: '24h', ms: 86_400_000 },\n { label: '7d', ms: 604_800_000 },\n { label: '30d', ms: 2_592_000_000 },\n] as const;\n\ntype DurationLabel = (typeof DURATIONS)[number]['label'];\n\n// ── Helpers ──────────────────────────────────────────────────────────────────\n\nfunction formatDuration(ms: number): string {\n if (ms < 1000) return `${Math.round(ms)}ms`;\n if (ms < 60_000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3_600_000) return `${(ms / 60_000).toFixed(1)}m`;\n return `${(ms / 3_600_000).toFixed(1)}h`;\n}\n\ninterface PipelineStats {\n pipeline: string;\n total: number;\n running: number;\n completed: number;\n failed: number;\n avgDuration: number | null;\n}\n\n// ── Reusable components ──────────────────────────────────────────────────────\n\nfunction StatCell({\n value,\n colorClass,\n onClick,\n}: {\n value: number;\n colorClass: string;\n onClick: () => void;\n}) {\n if (value === 0) {\n return <span className=\"text-text-tertiary\">0</span>;\n }\n return (\n <button\n onClick={onClick}\n className={`${colorClass} hover:underline tabular-nums font-medium`}\n >\n {value}\n </button>\n );\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function McpOverview() {\n const navigate = useNavigate();\n const [duration, setDuration] = useState<DurationLabel>('24h');\n const [namespace, setNamespace] = useState('');\n\n const { data: appsData } = useControlPlaneApps();\n\n // Auto-select the first namespace when available\n const nsNames = useMemo(() => (appsData?.apps ?? []).map((a: any) => a.appId).sort(), [appsData?.apps]);\n const effectiveNamespace = namespace || nsNames[0] || '';\n\n const { data: allRuns } = useMcpRuns({ limit: 500, app_id: effectiveNamespace });\n const { data: serverData, isLoading: serversLoading } = useMcpServers();\n const { data: yamlData, isLoading: yamlLoading } = useYamlWorkflows({ limit: 200 });\n\n const namespaces = nsNames;\n\n // ── Server counts ────────────────────────────────────────────\n const servers = serverData?.servers ?? [];\n const yamlWorkflows = yamlData?.workflows ?? [];\n\n const serverToolCount = useMemo(\n () => servers.reduce((sum, s) => sum + (Array.isArray(s.tool_manifest) ? (s.tool_manifest as McpToolManifest[]).length : 0), 0),\n [servers],\n );\n\n const workflowServerCount = useMemo(() => {\n const appIds = new Set(yamlWorkflows.map((wf) => wf.app_id));\n return appIds.size;\n }, [yamlWorkflows]);\n\n // ── Run stats ──────────────────────────────────────────────────\n const cutoff = useMemo(() => {\n const d = DURATIONS.find((d) => d.label === duration)!;\n return Date.now() - d.ms;\n }, [duration]);\n\n const runs = useMemo(\n () => (allRuns?.jobs ?? []).filter((j) => new Date(j.created_at).getTime() >= cutoff),\n [allRuns?.jobs, cutoff],\n );\n\n const byPipeline = useMemo(() => {\n const map = new Map<string, { total: number; running: number; completed: number; failed: number; durations: number[] }>();\n for (const j of runs) {\n const entry = map.get(j.entity) ?? { total: 0, running: 0, completed: 0, failed: 0, durations: [] };\n entry.total++;\n if (j.status === 'running') entry.running++;\n if (j.status === 'completed') {\n entry.completed++;\n const dur = new Date(j.updated_at).getTime() - new Date(j.created_at).getTime();\n if (dur > 0) entry.durations.push(dur);\n }\n if (j.status === 'failed') entry.failed++;\n map.set(j.entity, entry);\n }\n\n const result: PipelineStats[] = [];\n for (const [pipeline, stats] of map) {\n result.push({\n pipeline,\n ...stats,\n avgDuration: stats.durations.length > 0\n ? stats.durations.reduce((a, b) => a + b, 0) / stats.durations.length\n : null,\n });\n }\n return result.sort((a, b) => b.total - a.total);\n }, [runs]);\n\n const totals = useMemo(() => ({\n total: runs.length,\n running: runs.filter((j) => j.status === 'running').length,\n completed: runs.filter((j) => j.status === 'completed').length,\n failed: runs.filter((j) => j.status === 'failed').length,\n }), [runs]);\n\n const goToRuns = (entity?: string, status?: string) => {\n const params = new URLSearchParams();\n if (effectiveNamespace) params.set('namespace', effectiveNamespace);\n if (entity) params.set('entity', entity);\n if (status) params.set('status', status);\n const qs = params.toString();\n navigate(`/mcp/executions${qs ? `?${qs}` : ''}`);\n };\n\n const thCls = 'pb-2 text-[10px] font-semibold uppercase tracking-widest text-text-tertiary';\n\n return (\n <div>\n <PageHeader title=\"Discovered\" />\n\n {/* ── Duration tabs + namespace ────────────────────────── */}\n <div className=\"flex items-center gap-4 mb-6\">\n <div className=\"flex items-center gap-1\">\n {DURATIONS.map((d) => (\n <button\n key={d.label}\n onClick={() => setDuration(d.label)}\n className={`px-3 py-1 text-xs rounded-full transition-colors ${\n duration === d.label\n ? 'bg-accent text-text-inverse'\n : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}\n >\n {d.label}\n </button>\n ))}\n </div>\n {namespaces.length > 1 && (\n <select\n value={effectiveNamespace}\n onChange={(e) => setNamespace(e.target.value)}\n className=\"select text-xs py-1 px-2\"\n >\n {namespaces.map((ns) => (\n <option key={ns} value={ns}>{ns}</option>\n ))}\n </select>\n )}\n </div>\n\n {/* ── Summary cards ────────────────────────────────────── */}\n <div className=\"grid grid-cols-4 gap-4 mb-8\">\n <StatCard label=\"Total Runs\" value={totals.total} onClick={() => goToRuns()} />\n <StatCard label=\"Running\" value={totals.running} colorClass=\"text-status-active\" onClick={() => goToRuns(undefined, 'running')} />\n <StatCard label=\"Completed\" value={totals.completed} colorClass=\"text-status-success\" onClick={() => goToRuns(undefined, 'completed')} />\n <StatCard label=\"Failed\" value={totals.failed} colorClass=\"text-status-error\" onClick={() => goToRuns(undefined, 'failed')} />\n </div>\n\n {/* ── By-pipeline table ────────────────────────────────── */}\n {byPipeline.length > 0 && (\n <table className=\"w-full text-left mb-10\">\n <thead>\n <tr className=\"border-b border-surface-border\">\n <th className={thCls}>Tool</th>\n <th className={`${thCls} text-right w-20`}>Total</th>\n <th className={`${thCls} text-right w-20`}>Running</th>\n <th className={`${thCls} text-right w-24`}>Completed</th>\n <th className={`${thCls} text-right w-20`}>Failed</th>\n <th className={`${thCls} text-right w-28`}>Avg Duration</th>\n </tr>\n </thead>\n <tbody>\n {byPipeline.map((row) => (\n <tr key={row.pipeline} className=\"border-b border-surface-border last:border-b-0\">\n <td className=\"py-3 text-sm font-mono text-text-primary\">\n <button\n onClick={() => goToRuns(row.pipeline)}\n className=\"hover:text-accent hover:underline\"\n >\n {row.pipeline}\n </button>\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.total} colorClass=\"text-text-secondary\" onClick={() => goToRuns(row.pipeline)} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.running} colorClass=\"text-status-active\" onClick={() => goToRuns(row.pipeline, 'running')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.completed} colorClass=\"text-status-success\" onClick={() => goToRuns(row.pipeline, 'completed')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.failed} colorClass=\"text-status-error\" onClick={() => goToRuns(row.pipeline, 'failed')} />\n </td>\n <td className=\"py-3 text-sm font-mono text-text-secondary text-right\">\n {row.avgDuration !== null ? formatDuration(row.avgDuration) : '—'}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n\n {byPipeline.length === 0 && (\n <div className=\"py-12 text-center mb-8\">\n <p className=\"text-sm text-text-tertiary\">\n No MCP tool activity in the last {duration}\n </p>\n </div>\n )}\n\n {/* ── Server inventory (compact cards) ─────────────────── */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <button\n onClick={() => navigate('/mcp/servers')}\n className=\"bg-surface-raised border border-surface-border rounded-md p-5 text-left hover:border-accent/40 transition-colors\"\n >\n <div className=\"flex items-center gap-3 mb-3\">\n <Server size={16} className=\"text-accent shrink-0\" />\n <span className=\"text-sm font-medium text-text-primary\">Tool Servers</span>\n </div>\n <p className=\"text-2xl font-light tabular-nums text-text-primary mb-1\">\n {serversLoading ? '—' : servers.length}\n <span className=\"text-sm text-text-tertiary font-normal ml-2\">\n server{servers.length !== 1 ? 's' : ''} · {serverToolCount} tool{serverToolCount !== 1 ? 's' : ''}\n </span>\n </p>\n <p className=\"text-[11px] text-text-tertiary leading-relaxed mt-2\">\n Built-in and external MCP servers. Each server exposes tools that workflows and agents can call.\n </p>\n </button>\n\n <button\n onClick={() => navigate('/mcp/workflows')}\n className=\"bg-surface-raised border border-surface-border rounded-md p-5 text-left hover:border-accent/40 transition-colors\"\n >\n <div className=\"flex items-center gap-3 mb-3\">\n <Workflow size={16} className=\"text-purple-400 shrink-0\" />\n <span className=\"text-sm font-medium text-text-primary\">Pipeline Registry</span>\n </div>\n <p className=\"text-2xl font-light tabular-nums text-text-primary mb-1\">\n {yamlLoading ? '—' : yamlWorkflows.length}\n <span className=\"text-sm text-text-tertiary font-normal ml-2\">\n workflow{yamlWorkflows.length !== 1 ? 's' : ''} · {workflowServerCount} server{workflowServerCount !== 1 ? 's' : ''}\n </span>\n </p>\n <p className=\"text-[11px] text-text-tertiary leading-relaxed mt-2\">\n Compiled from discovery runs. Deterministic tool-to-tool pipelines — no LLM, no token costs.\n </p>\n </button>\n </div>\n </div>\n );\n}\n"],"names":["DURATIONS","formatDuration","ms","StatCell","value","colorClass","onClick","jsx","McpOverview","navigate","useNavigate","duration","setDuration","useState","namespace","setNamespace","appsData","useControlPlaneApps","nsNames","useMemo","a","effectiveNamespace","allRuns","useMcpRuns","serverData","serversLoading","useMcpServers","yamlData","yamlLoading","useYamlWorkflows","namespaces","servers","yamlWorkflows","serverToolCount","sum","s","workflowServerCount","wf","cutoff","d","runs","j","byPipeline","map","entry","dur","result","pipeline","stats","b","totals","goToRuns","entity","status","params","qs","thCls","PageHeader","jsxs","e","ns","StatCard","row","Server","Workflow"],"mappings":"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"}
1
+ {"version":3,"file":"McpOverview-BBm66wbF.js","sources":["../../src/pages/mcp/McpOverview.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Server, Workflow } from 'lucide-react';\nimport { useMcpServers } from '../../api/mcp';\nimport { useMcpRuns } from '../../api/pipelines';\nimport { useYamlWorkflows } from '../../api/yaml-workflows';\nimport { useControlPlaneApps } from '../../api/controlplane';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { StatCard } from '../../components/common/data/StatCard';\nimport type { McpToolManifest } from '../../api/types';\n\n// ── Duration filter ──────────────────────────────────────────────────────────\n\nconst DURATIONS = [\n { label: '1h', ms: 3_600_000 },\n { label: '24h', ms: 86_400_000 },\n { label: '7d', ms: 604_800_000 },\n { label: '30d', ms: 2_592_000_000 },\n] as const;\n\ntype DurationLabel = (typeof DURATIONS)[number]['label'];\n\n// ── Helpers ──────────────────────────────────────────────────────────────────\n\nfunction formatDuration(ms: number): string {\n if (ms < 1000) return `${Math.round(ms)}ms`;\n if (ms < 60_000) return `${(ms / 1000).toFixed(1)}s`;\n if (ms < 3_600_000) return `${(ms / 60_000).toFixed(1)}m`;\n return `${(ms / 3_600_000).toFixed(1)}h`;\n}\n\ninterface PipelineStats {\n pipeline: string;\n total: number;\n running: number;\n completed: number;\n failed: number;\n avgDuration: number | null;\n}\n\n// ── Reusable components ──────────────────────────────────────────────────────\n\nfunction StatCell({\n value,\n colorClass,\n onClick,\n}: {\n value: number;\n colorClass: string;\n onClick: () => void;\n}) {\n if (value === 0) {\n return <span className=\"text-text-tertiary\">0</span>;\n }\n return (\n <button\n onClick={onClick}\n className={`${colorClass} hover:underline tabular-nums font-medium`}\n >\n {value}\n </button>\n );\n}\n\n// ── Page ─────────────────────────────────────────────────────────────────────\n\nexport function McpOverview() {\n const navigate = useNavigate();\n const [duration, setDuration] = useState<DurationLabel>('24h');\n const [namespace, setNamespace] = useState('');\n\n const { data: appsData } = useControlPlaneApps();\n\n // Auto-select the first namespace when available\n const nsNames = useMemo(() => (appsData?.apps ?? []).map((a: any) => a.appId).sort(), [appsData?.apps]);\n const effectiveNamespace = namespace || nsNames[0] || '';\n\n const { data: allRuns } = useMcpRuns({ limit: 500, app_id: effectiveNamespace });\n const { data: serverData, isLoading: serversLoading } = useMcpServers();\n const { data: yamlData, isLoading: yamlLoading } = useYamlWorkflows({ limit: 200 });\n\n const namespaces = nsNames;\n\n // ── Server counts ────────────────────────────────────────────\n const servers = serverData?.servers ?? [];\n const yamlWorkflows = yamlData?.workflows ?? [];\n\n const serverToolCount = useMemo(\n () => servers.reduce((sum, s) => sum + (Array.isArray(s.tool_manifest) ? (s.tool_manifest as McpToolManifest[]).length : 0), 0),\n [servers],\n );\n\n const workflowServerCount = useMemo(() => {\n const appIds = new Set(yamlWorkflows.map((wf) => wf.app_id));\n return appIds.size;\n }, [yamlWorkflows]);\n\n // ── Run stats ──────────────────────────────────────────────────\n const cutoff = useMemo(() => {\n const d = DURATIONS.find((d) => d.label === duration)!;\n return Date.now() - d.ms;\n }, [duration]);\n\n const runs = useMemo(\n () => (allRuns?.jobs ?? []).filter((j) => new Date(j.created_at).getTime() >= cutoff),\n [allRuns?.jobs, cutoff],\n );\n\n const byPipeline = useMemo(() => {\n const map = new Map<string, { total: number; running: number; completed: number; failed: number; durations: number[] }>();\n for (const j of runs) {\n const entry = map.get(j.entity) ?? { total: 0, running: 0, completed: 0, failed: 0, durations: [] };\n entry.total++;\n if (j.status === 'running') entry.running++;\n if (j.status === 'completed') {\n entry.completed++;\n const dur = new Date(j.updated_at).getTime() - new Date(j.created_at).getTime();\n if (dur > 0) entry.durations.push(dur);\n }\n if (j.status === 'failed') entry.failed++;\n map.set(j.entity, entry);\n }\n\n const result: PipelineStats[] = [];\n for (const [pipeline, stats] of map) {\n result.push({\n pipeline,\n ...stats,\n avgDuration: stats.durations.length > 0\n ? stats.durations.reduce((a, b) => a + b, 0) / stats.durations.length\n : null,\n });\n }\n return result.sort((a, b) => b.total - a.total);\n }, [runs]);\n\n const totals = useMemo(() => ({\n total: runs.length,\n running: runs.filter((j) => j.status === 'running').length,\n completed: runs.filter((j) => j.status === 'completed').length,\n failed: runs.filter((j) => j.status === 'failed').length,\n }), [runs]);\n\n const goToRuns = (entity?: string, status?: string) => {\n const params = new URLSearchParams();\n if (effectiveNamespace) params.set('namespace', effectiveNamespace);\n if (entity) params.set('entity', entity);\n if (status) params.set('status', status);\n const qs = params.toString();\n navigate(`/mcp/executions${qs ? `?${qs}` : ''}`);\n };\n\n const thCls = 'pb-2 text-[10px] font-semibold uppercase tracking-widest text-text-tertiary';\n\n return (\n <div>\n <PageHeader title=\"Discovered\" />\n\n {/* ── Duration tabs + namespace ────────────────────────── */}\n <div className=\"flex items-center gap-4 mb-6\">\n <div className=\"flex items-center gap-1\">\n {DURATIONS.map((d) => (\n <button\n key={d.label}\n onClick={() => setDuration(d.label)}\n className={`px-3 py-1 text-xs rounded-full transition-colors ${\n duration === d.label\n ? 'bg-accent text-text-inverse'\n : 'text-text-tertiary hover:text-text-primary hover:bg-surface-hover'\n }`}\n >\n {d.label}\n </button>\n ))}\n </div>\n {namespaces.length > 1 && (\n <select\n value={effectiveNamespace}\n onChange={(e) => setNamespace(e.target.value)}\n className=\"select text-xs py-1 px-2\"\n >\n {namespaces.map((ns) => (\n <option key={ns} value={ns}>{ns}</option>\n ))}\n </select>\n )}\n </div>\n\n {/* ── Summary cards ────────────────────────────────────── */}\n <div className=\"grid grid-cols-4 gap-4 mb-8\">\n <StatCard label=\"Total Runs\" value={totals.total} onClick={() => goToRuns()} />\n <StatCard label=\"Running\" value={totals.running} colorClass=\"text-status-active\" onClick={() => goToRuns(undefined, 'running')} />\n <StatCard label=\"Completed\" value={totals.completed} colorClass=\"text-status-success\" onClick={() => goToRuns(undefined, 'completed')} />\n <StatCard label=\"Failed\" value={totals.failed} colorClass=\"text-status-error\" onClick={() => goToRuns(undefined, 'failed')} />\n </div>\n\n {/* ── By-pipeline table ────────────────────────────────── */}\n {byPipeline.length > 0 && (\n <table className=\"w-full text-left mb-10\">\n <thead>\n <tr className=\"border-b border-surface-border\">\n <th className={thCls}>Tool</th>\n <th className={`${thCls} text-right w-20`}>Total</th>\n <th className={`${thCls} text-right w-20`}>Running</th>\n <th className={`${thCls} text-right w-24`}>Completed</th>\n <th className={`${thCls} text-right w-20`}>Failed</th>\n <th className={`${thCls} text-right w-28`}>Avg Duration</th>\n </tr>\n </thead>\n <tbody>\n {byPipeline.map((row) => (\n <tr key={row.pipeline} className=\"border-b border-surface-border last:border-b-0\">\n <td className=\"py-3 text-sm font-mono text-text-primary\">\n <button\n onClick={() => goToRuns(row.pipeline)}\n className=\"hover:text-accent hover:underline\"\n >\n {row.pipeline}\n </button>\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.total} colorClass=\"text-text-secondary\" onClick={() => goToRuns(row.pipeline)} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.running} colorClass=\"text-status-active\" onClick={() => goToRuns(row.pipeline, 'running')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.completed} colorClass=\"text-status-success\" onClick={() => goToRuns(row.pipeline, 'completed')} />\n </td>\n <td className=\"py-3 text-sm text-right\">\n <StatCell value={row.failed} colorClass=\"text-status-error\" onClick={() => goToRuns(row.pipeline, 'failed')} />\n </td>\n <td className=\"py-3 text-sm font-mono text-text-secondary text-right\">\n {row.avgDuration !== null ? formatDuration(row.avgDuration) : '—'}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n\n {byPipeline.length === 0 && (\n <div className=\"py-12 text-center mb-8\">\n <p className=\"text-sm text-text-tertiary\">\n No MCP tool activity in the last {duration}\n </p>\n </div>\n )}\n\n {/* ── Server inventory (compact cards) ─────────────────── */}\n <div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n <button\n onClick={() => navigate('/mcp/servers')}\n className=\"bg-surface-raised border border-surface-border rounded-md p-5 text-left hover:border-accent/40 transition-colors\"\n >\n <div className=\"flex items-center gap-3 mb-3\">\n <Server size={16} className=\"text-accent shrink-0\" />\n <span className=\"text-sm font-medium text-text-primary\">Tool Servers</span>\n </div>\n <p className=\"text-2xl font-light tabular-nums text-text-primary mb-1\">\n {serversLoading ? '—' : servers.length}\n <span className=\"text-sm text-text-tertiary font-normal ml-2\">\n server{servers.length !== 1 ? 's' : ''} · {serverToolCount} tool{serverToolCount !== 1 ? 's' : ''}\n </span>\n </p>\n <p className=\"text-[11px] text-text-tertiary leading-relaxed mt-2\">\n Built-in and external MCP servers. Each server exposes tools that workflows and agents can call.\n </p>\n </button>\n\n <button\n onClick={() => navigate('/mcp/workflows')}\n className=\"bg-surface-raised border border-surface-border rounded-md p-5 text-left hover:border-accent/40 transition-colors\"\n >\n <div className=\"flex items-center gap-3 mb-3\">\n <Workflow size={16} className=\"text-purple-400 shrink-0\" />\n <span className=\"text-sm font-medium text-text-primary\">Pipeline Registry</span>\n </div>\n <p className=\"text-2xl font-light tabular-nums text-text-primary mb-1\">\n {yamlLoading ? '—' : yamlWorkflows.length}\n <span className=\"text-sm text-text-tertiary font-normal ml-2\">\n workflow{yamlWorkflows.length !== 1 ? 's' : ''} · {workflowServerCount} server{workflowServerCount !== 1 ? 's' : ''}\n </span>\n </p>\n <p className=\"text-[11px] text-text-tertiary leading-relaxed mt-2\">\n Compiled from discovery runs. Deterministic tool-to-tool pipelines — no LLM, no token costs.\n </p>\n </button>\n </div>\n </div>\n );\n}\n"],"names":["DURATIONS","formatDuration","ms","StatCell","value","colorClass","onClick","jsxDEV","McpOverview","navigate","useNavigate","duration","setDuration","useState","namespace","setNamespace","appsData","useControlPlaneApps","nsNames","useMemo","a","effectiveNamespace","allRuns","useMcpRuns","serverData","serversLoading","useMcpServers","yamlData","yamlLoading","useYamlWorkflows","namespaces","servers","yamlWorkflows","serverToolCount","sum","s","workflowServerCount","wf","cutoff","d","runs","j","byPipeline","map","entry","dur","result","pipeline","stats","b","totals","goToRuns","entity","status","params","qs","thCls","PageHeader","e","ns","StatCard","row","Server","Workflow"],"mappings":"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"}