@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
@@ -0,0 +1,2 @@
1
+ import{j as e,S as r,J as o}from"./index-DgCS2Frb.js";import{d as n}from"./tasks-DNdvW5H6.js";import{S as c}from"./StatusBadge-mk-dJwPT.js";import{P as p}from"./PriorityBadge-a7u8C9uY.js";import{P as u}from"./PageHeader-DcgGV0Y2.js";import{e as b,L as N}from"./vendor-react-zA2lQFDs.js";import"./vendor-query-DLp59M9_.js";import"./vendor-icons-CNyYGNsk.js";function s({label:l,value:a}){return e.jsxDEV("div",{children:[e.jsxDEV(r,{className:"mb-1",children:l},void 0,!1,{fileName:"/app/dashboard/src/components/common/data/Field.tsx",lineNumber:12,columnNumber:7},this),e.jsxDEV("div",{className:"text-sm text-text-primary",children:a??"—"},void 0,!1,{fileName:"/app/dashboard/src/components/common/data/Field.tsx",lineNumber:13,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/data/Field.tsx",lineNumber:11,columnNumber:5},this)}function f({items:l}){return l.length===0?null:e.jsxDEV("div",{className:"relative",children:[e.jsxDEV("div",{className:"absolute left-[7px] top-3 bottom-3 w-px bg-surface-border"},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:17,columnNumber:7},this),e.jsxDEV("div",{className:"space-y-0",children:l.map(a=>e.jsxDEV("div",{className:"relative flex gap-4 py-3",children:[e.jsxDEV("div",{className:"relative z-10 mt-1",children:e.jsxDEV("div",{className:`w-[15px] h-[15px] rounded-full border-2 ${a.category==="system"?"border-accent-muted bg-surface-raised":"border-accent bg-accent"}`},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:24,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:23,columnNumber:13},this),e.jsxDEV("div",{className:"flex-1 min-w-0",children:[e.jsxDEV("div",{className:"flex items-baseline gap-3",children:[e.jsxDEV("p",{className:"text-sm text-text-primary",children:a.label},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:36,columnNumber:17},this),a.timestamp&&e.jsxDEV("time",{className:"text-[10px] text-text-tertiary font-mono shrink-0",children:new Date(a.timestamp).toLocaleTimeString()},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:38,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:35,columnNumber:15},this),a.detail&&e.jsxDEV("div",{className:"mt-1",children:a.detail},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:43,columnNumber:31},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:34,columnNumber:13},this)]},a.id,!0,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:21,columnNumber:11},this))},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:19,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/Timeline.tsx",lineNumber:15,columnNumber:5},this)}function E(){const{id:l}=b(),{data:a,isLoading:m}=n(l);if(m)return e.jsxDEV("div",{className:"animate-pulse space-y-4",children:[e.jsxDEV("div",{className:"h-8 bg-surface-sunken rounded w-48"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:18,columnNumber:9},this),e.jsxDEV("div",{className:"h-40 bg-surface-sunken rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:19,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:17,columnNumber:7},this);if(!a)return e.jsxDEV("p",{className:"text-sm text-text-secondary",children:"Task not found."},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:25,columnNumber:12},this);const t=(a.milestones??[]).map((i,d)=>({id:d,label:i.name,timestamp:i.created_at,detail:e.jsxDEV("span",{className:"text-xs text-text-secondary font-mono",children:typeof i.value=="object"?JSON.stringify(i.value):String(i.value)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:33,columnNumber:7},this),category:"user"}));return e.jsxDEV("div",{children:[e.jsxDEV(u,{title:"Task Detail"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:42,columnNumber:7},this),e.jsxDEV("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-12",children:[e.jsxDEV("div",{className:"lg:col-span-2 space-y-10",children:[e.jsxDEV("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-6",children:[e.jsxDEV(s,{label:"Status",value:e.jsxDEV(c,{status:a.status},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:48,columnNumber:42},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:48,columnNumber:13},this),e.jsxDEV(s,{label:"Priority",value:e.jsxDEV(p,{priority:a.priority},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:49,columnNumber:44},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:49,columnNumber:13},this),e.jsxDEV(s,{label:"Workflow Type",value:e.jsxDEV("span",{className:"font-mono text-xs",children:a.workflow_type},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:50,columnNumber:49},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:50,columnNumber:13},this),e.jsxDEV(s,{label:"LT Type",value:e.jsxDEV("span",{className:"font-mono text-xs",children:a.lt_type},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:51,columnNumber:43},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:51,columnNumber:13},this),e.jsxDEV(s,{label:"Task Queue",value:e.jsxDEV("span",{className:"font-mono text-xs",children:a.task_queue},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:52,columnNumber:46},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:52,columnNumber:13},this),e.jsxDEV(s,{label:"Workflow ID",value:e.jsxDEV("span",{className:"font-mono text-xs break-all",children:a.workflow_id},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:53,columnNumber:47},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:53,columnNumber:13},this),e.jsxDEV(s,{label:"Started",value:a.started_at?new Date(a.started_at).toLocaleString():"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:54,columnNumber:13},this),e.jsxDEV(s,{label:"Completed",value:a.completed_at?new Date(a.completed_at).toLocaleString():"—"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:55,columnNumber:13},this),e.jsxDEV(s,{label:"Signal ID",value:e.jsxDEV("span",{className:"font-mono text-xs break-all",children:a.signal_id},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:56,columnNumber:45},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:56,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:47,columnNumber:11},this),a.error&&e.jsxDEV("div",{children:[e.jsxDEV(r,{className:"mb-2 text-status-error",children:"Error"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:61,columnNumber:15},this),e.jsxDEV("p",{className:"text-sm text-text-primary font-mono",children:a.error},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:62,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:60,columnNumber:13},this),t.length>0&&e.jsxDEV("div",{children:[e.jsxDEV(r,{className:"mb-4",children:"Milestones"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:68,columnNumber:15},this),e.jsxDEV(f,{items:t},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:69,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:67,columnNumber:13},this),e.jsxDEV(N,{to:`/workflows/executions/${a.workflow_id}`,className:"btn-secondary inline-block text-xs",children:"View Workflow Execution"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:73,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:46,columnNumber:9},this),e.jsxDEV("div",{className:"space-y-8",children:[e.jsxDEV(o,{data:a.envelope,label:"Envelope"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:83,columnNumber:11},this),a.metadata&&e.jsxDEV(o,{data:a.metadata,label:"Metadata"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:84,columnNumber:29},this),a.data&&e.jsxDEV(o,{data:a.data,label:"Result Data"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:85,columnNumber:25},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:82,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:44,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TaskDetailPage.tsx",lineNumber:41,columnNumber:5},this)}export{E as TaskDetailPage};
2
+ //# sourceMappingURL=TaskDetailPage-C0tbiUi7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskDetailPage-C0tbiUi7.js","sources":["../../src/components/common/data/Field.tsx","../../src/components/common/display/Timeline.tsx","../../src/pages/workflows/TaskDetailPage.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport { SectionLabel } from '../layout/SectionLabel';\n\ninterface FieldProps {\n label: string;\n value: ReactNode;\n}\n\nexport function Field({ label, value }: FieldProps) {\n return (\n <div>\n <SectionLabel className=\"mb-1\">{label}</SectionLabel>\n <div className=\"text-sm text-text-primary\">{value ?? '—'}</div>\n </div>\n );\n}\n","import type { ReactNode } from 'react';\n\nexport interface TimelineItem {\n id: string | number;\n label: string;\n timestamp?: string;\n detail?: ReactNode;\n category?: 'system' | 'user';\n}\n\nexport function Timeline({ items }: { items: TimelineItem[] }) {\n if (items.length === 0) return null;\n\n return (\n <div className=\"relative\">\n {/* Vertical line */}\n <div className=\"absolute left-[7px] top-3 bottom-3 w-px bg-surface-border\" />\n\n <div className=\"space-y-0\">\n {items.map((item) => (\n <div key={item.id} className=\"relative flex gap-4 py-3\">\n {/* Dot */}\n <div className=\"relative z-10 mt-1\">\n <div\n className={`w-[15px] h-[15px] rounded-full border-2 ${\n item.category === 'system'\n ? 'border-accent-muted bg-surface-raised'\n : 'border-accent bg-accent'\n }`}\n />\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-baseline gap-3\">\n <p className=\"text-sm text-text-primary\">{item.label}</p>\n {item.timestamp && (\n <time className=\"text-[10px] text-text-tertiary font-mono shrink-0\">\n {new Date(item.timestamp).toLocaleTimeString()}\n </time>\n )}\n </div>\n {item.detail && <div className=\"mt-1\">{item.detail}</div>}\n </div>\n </div>\n ))}\n </div>\n </div>\n );\n}\n","import { useParams, Link } from 'react-router-dom';\nimport { useTask } from '../../api/tasks';\nimport { StatusBadge } from '../../components/common/display/StatusBadge';\nimport { PriorityBadge } from '../../components/common/display/PriorityBadge';\nimport { Field } from '../../components/common/data/Field';\nimport { JsonViewer } from '../../components/common/data/JsonViewer';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { SectionLabel } from '../../components/common/layout/SectionLabel';\nimport { Timeline, type TimelineItem } from '../../components/common/display/Timeline';\n\nexport function TaskDetailPage() {\n const { id } = useParams<{ id: string }>();\n const { data: task, isLoading } = useTask(id!);\n\n if (isLoading) {\n return (\n <div className=\"animate-pulse space-y-4\">\n <div className=\"h-8 bg-surface-sunken rounded w-48\" />\n <div className=\"h-40 bg-surface-sunken rounded\" />\n </div>\n );\n }\n\n if (!task) {\n return <p className=\"text-sm text-text-secondary\">Task not found.</p>;\n }\n\n const milestoneItems: TimelineItem[] = (task.milestones ?? []).map((m, i) => ({\n id: i,\n label: m.name,\n timestamp: m.created_at,\n detail: (\n <span className=\"text-xs text-text-secondary font-mono\">\n {typeof m.value === 'object' ? JSON.stringify(m.value) : String(m.value)}\n </span>\n ),\n category: 'user' as const,\n }));\n\n return (\n <div>\n <PageHeader title=\"Task Detail\" />\n\n <div className=\"grid grid-cols-1 lg:grid-cols-3 gap-12\">\n {/* Left column — metadata */}\n <div className=\"lg:col-span-2 space-y-10\">\n <div className=\"grid grid-cols-2 sm:grid-cols-3 gap-6\">\n <Field label=\"Status\" value={<StatusBadge status={task.status} />} />\n <Field label=\"Priority\" value={<PriorityBadge priority={task.priority} />} />\n <Field label=\"Workflow Type\" value={<span className=\"font-mono text-xs\">{task.workflow_type}</span>} />\n <Field label=\"LT Type\" value={<span className=\"font-mono text-xs\">{task.lt_type}</span>} />\n <Field label=\"Task Queue\" value={<span className=\"font-mono text-xs\">{task.task_queue}</span>} />\n <Field label=\"Workflow ID\" value={<span className=\"font-mono text-xs break-all\">{task.workflow_id}</span>} />\n <Field label=\"Started\" value={task.started_at ? new Date(task.started_at).toLocaleString() : '—'} />\n <Field label=\"Completed\" value={task.completed_at ? new Date(task.completed_at).toLocaleString() : '—'} />\n <Field label=\"Signal ID\" value={<span className=\"font-mono text-xs break-all\">{task.signal_id}</span>} />\n </div>\n\n {task.error && (\n <div>\n <SectionLabel className=\"mb-2 text-status-error\">Error</SectionLabel>\n <p className=\"text-sm text-text-primary font-mono\">{task.error}</p>\n </div>\n )}\n\n {milestoneItems.length > 0 && (\n <div>\n <SectionLabel className=\"mb-4\">Milestones</SectionLabel>\n <Timeline items={milestoneItems} />\n </div>\n )}\n\n <Link\n to={`/workflows/executions/${task.workflow_id}`}\n className=\"btn-secondary inline-block text-xs\"\n >\n View Workflow Execution\n </Link>\n </div>\n\n {/* Right column — payloads */}\n <div className=\"space-y-8\">\n <JsonViewer data={task.envelope} label=\"Envelope\" />\n {task.metadata && <JsonViewer data={task.metadata} label=\"Metadata\" />}\n {task.data && <JsonViewer data={task.data} label=\"Result Data\" />}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["Field","label","value","jsxDEV","SectionLabel","Timeline","items","item","TaskDetailPage","id","useParams","task","isLoading","useTask","milestoneItems","m","i","PageHeader","StatusBadge","PriorityBadge","Link","JsonViewer"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as s}from"./index-DgCS2Frb.js";import{R as r}from"./vendor-icons-CNyYGNsk.js";function i({queue:o,size:e="sm"}){const a=e==="md"?"px-2.5 py-0.5 text-[11px] gap-1.5":"px-2 py-0.5 text-[10px] gap-1",t=e==="md"?"w-3 h-3":"w-2.5 h-2.5";return s.jsxDEV("span",{className:`inline-flex items-center ${a} font-mono border-y border-surface-border/50 text-text-secondary`,children:[s.jsxDEV(r,{className:`${t} shrink-0 text-accent/75`},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/TaskQueuePill.tsx",lineNumber:16,columnNumber:7},this),o]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/TaskQueuePill.tsx",lineNumber:15,columnNumber:5},this)}export{i as T};
2
+ //# sourceMappingURL=TaskQueuePill--1OX6egx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskQueuePill-DyvtL8X4.js","sources":["../../src/components/common/display/TaskQueuePill.tsx"],"sourcesContent":["import { Radio } from 'lucide-react';\n\ninterface TaskQueuePillProps {\n queue: string;\n size?: 'sm' | 'md';\n}\n\nexport function TaskQueuePill({ queue, size = 'sm' }: TaskQueuePillProps) {\n const sizeClass = size === 'md'\n ? 'px-2.5 py-0.5 text-[11px] gap-1.5'\n : 'px-2 py-0.5 text-[10px] gap-1';\n const iconClass = size === 'md' ? 'w-3 h-3' : 'w-2.5 h-2.5';\n\n return (\n <span className={`inline-flex items-center ${sizeClass} font-mono border-y border-surface-border/50 text-text-secondary`}>\n <Radio className={`${iconClass} shrink-0 text-accent/75`} />\n {queue}\n </span>\n );\n}\n"],"names":["TaskQueuePill","queue","size","sizeClass","iconClass","jsxs","jsx","Radio"],"mappings":"8FAOO,SAASA,EAAc,CAAE,MAAAC,EAAO,KAAAC,EAAO,MAA4B,CACxE,MAAMC,EAAYD,IAAS,KACvB,oCACA,gCACEE,EAAYF,IAAS,KAAO,UAAY,cAE9C,OACEG,EAAAA,KAAC,OAAA,CAAK,UAAW,4BAA4BF,CAAS,mEACpD,SAAA,CAAAG,EAAAA,IAACC,EAAA,CAAM,UAAW,GAAGH,CAAS,2BAA4B,EACzDH,CAAA,EACH,CAEJ"}
1
+ {"version":3,"file":"TaskQueuePill--1OX6egx.js","sources":["../../src/components/common/display/TaskQueuePill.tsx"],"sourcesContent":["import { Radio } from 'lucide-react';\n\ninterface TaskQueuePillProps {\n queue: string;\n size?: 'sm' | 'md';\n}\n\nexport function TaskQueuePill({ queue, size = 'sm' }: TaskQueuePillProps) {\n const sizeClass = size === 'md'\n ? 'px-2.5 py-0.5 text-[11px] gap-1.5'\n : 'px-2 py-0.5 text-[10px] gap-1';\n const iconClass = size === 'md' ? 'w-3 h-3' : 'w-2.5 h-2.5';\n\n return (\n <span className={`inline-flex items-center ${sizeClass} font-mono border-y border-surface-border/50 text-text-secondary`}>\n <Radio className={`${iconClass} shrink-0 text-accent/75`} />\n {queue}\n </span>\n );\n}\n"],"names":["TaskQueuePill","queue","size","sizeClass","iconClass","jsxDEV","Radio"],"mappings":"uFAOO,SAASA,EAAc,CAAE,MAAAC,EAAO,KAAAC,EAAO,MAA4B,CACxE,MAAMC,EAAYD,IAAS,KACvB,oCACA,gCACEE,EAAYF,IAAS,KAAO,UAAY,cAE9C,OACEG,EAAAA,OAAC,OAAA,CAAK,UAAW,4BAA4BF,CAAS,mEACpD,SAAA,CAAAE,SAACC,EAAA,CAAM,UAAW,GAAGF,CAAS,0BAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,iEAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAA0D,EACzDH,CAAA,CAAA,EAFH,OAAA,GAAA,CAAA,SAAA,iEAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAGA,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as s}from"./index-DgCS2Frb.js";import{c as u}from"./tasks-DNdvW5H6.js";import{u as g}from"./workflows-BfyR5VJt.js";import{u as w}from"./useFilterParams-Ch-a71bE.js";import{D as b}from"./DataTable-Bf4dgxll.js";import{S as c}from"./StatusBadge-mk-dJwPT.js";import{P as k}from"./PriorityBadge-a7u8C9uY.js";import{T as n}from"./TimeAgo-pYn3T9IZ.js";import{S as N}from"./StickyPagination-Clm9H840.js";import{F as x,b as m}from"./FilterBar-DEAbNQqp.js";import{P as y}from"./PageHeader-DcgGV0Y2.js";import{W as P}from"./WorkflowPill-Cc2MlYbB.js";import{c as v}from"./vendor-react-zA2lQFDs.js";import"./vendor-query-DLp59M9_.js";import"./vendor-icons-CNyYGNsk.js";import"./EmptyState-CLVm9KmA.js";const h=[{value:"pending",label:"Pending"},{value:"in_progress",label:"In Progress"},{value:"completed",label:"Completed"},{value:"needs_intervention",label:"Needs Intervention"},{value:"cancelled",label:"Cancelled"}],T=[{key:"status",label:"Status",render:e=>s.jsxDEV(c,{status:e.status},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:27,columnNumber:22},void 0),className:"w-40"},{key:"workflow_type",label:"Workflow Type",render:e=>s.jsxDEV(P,{type:e.workflow_type},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:33,columnNumber:22},void 0)},{key:"lt_type",label:"LT Type",render:e=>s.jsxDEV("span",{className:"text-text-secondary text-xs",children:e.lt_type},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:39,columnNumber:7},void 0)},{key:"priority",label:"Priority",render:e=>s.jsxDEV(k,{priority:e.priority},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:45,columnNumber:22},void 0),className:"w-20"},{key:"started_at",label:"Started",render:e=>s.jsxDEV(n,{date:e.started_at},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:51,columnNumber:22},void 0),className:"w-28"},{key:"updated_at",label:"Updated",render:e=>s.jsxDEV(n,{date:e.updated_at},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:57,columnNumber:22},void 0),className:"w-28"}];function M(){const e=v(),{filters:r,setFilter:l,pagination:o}=w({filters:{status:"",workflow_type:""}}),{data:p}=g(),d=[...new Set((p??[]).map(a=>a.workflow_type))].sort(),{data:t,isLoading:f}=u({status:r.status||void 0,workflow_type:r.workflow_type||void 0,limit:o.pageSize,offset:o.offset}),i=(t==null?void 0:t.total)??0;return s.jsxDEV("div",{children:[s.jsxDEV(y,{title:"Tasks"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:82,columnNumber:7},this),s.jsxDEV(x,{children:[s.jsxDEV(m,{label:"Status",value:r.status,onChange:a=>l("status",a),options:h},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:85,columnNumber:9},this),s.jsxDEV(m,{label:"Workflow Type",value:r.workflow_type,onChange:a=>l("workflow_type",a),options:d.map(a=>({value:a,label:a}))},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:91,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:84,columnNumber:7},this),s.jsxDEV(b,{columns:T,data:(t==null?void 0:t.tasks)??[],keyFn:a=>a.id,onRowClick:a=>e(`/workflows/tasks/detail/${a.id}`),isLoading:f,emptyMessage:"No tasks found"},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:99,columnNumber:7},this),s.jsxDEV(N,{page:o.page,totalPages:o.totalPages(i),onPageChange:o.setPage,total:i,pageSize:o.pageSize,onPageSizeChange:o.setPageSize},void 0,!1,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:108,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/workflows/TasksListPage.tsx",lineNumber:81,columnNumber:5},this)}export{M as TasksListPage};
2
+ //# sourceMappingURL=TasksListPage-DcYV-GMA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TasksListPage-DpqevgTz.js","sources":["../../src/pages/workflows/TasksListPage.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport { useTasks } from '../../api/tasks';\nimport { useWorkflowConfigs } from '../../api/workflows';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { DataTable, type Column } from '../../components/common/data/DataTable';\nimport { StatusBadge } from '../../components/common/display/StatusBadge';\nimport { PriorityBadge } from '../../components/common/display/PriorityBadge';\nimport { TimeAgo } from '../../components/common/display/TimeAgo';\nimport { StickyPagination } from '../../components/common/data/StickyPagination';\nimport { FilterBar, FilterSelect } from '../../components/common/data/FilterBar';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\nimport type { LTTaskRecord } from '../../api/types';\n\nconst statusOptions = [\n { value: 'pending', label: 'Pending' },\n { value: 'in_progress', label: 'In Progress' },\n { value: 'completed', label: 'Completed' },\n { value: 'needs_intervention', label: 'Needs Intervention' },\n { value: 'cancelled', label: 'Cancelled' },\n];\n\nconst columns: Column<LTTaskRecord>[] = [\n {\n key: 'status',\n label: 'Status',\n render: (row) => <StatusBadge status={row.status} />,\n className: 'w-40',\n },\n {\n key: 'workflow_type',\n label: 'Workflow Type',\n render: (row) => <WorkflowPill type={row.workflow_type} />,\n },\n {\n key: 'lt_type',\n label: 'LT Type',\n render: (row) => (\n <span className=\"text-text-secondary text-xs\">{row.lt_type}</span>\n ),\n },\n {\n key: 'priority',\n label: 'Priority',\n render: (row) => <PriorityBadge priority={row.priority} />,\n className: 'w-20',\n },\n {\n key: 'started_at',\n label: 'Started',\n render: (row) => <TimeAgo date={row.started_at} />,\n className: 'w-28',\n },\n {\n key: 'updated_at',\n label: 'Updated',\n render: (row) => <TimeAgo date={row.updated_at} />,\n className: 'w-28',\n },\n];\n\nexport function TasksListPage() {\n const navigate = useNavigate();\n const { filters, setFilter, pagination } = useFilterParams({\n filters: { status: '', workflow_type: '' },\n });\n\n const { data: configs } = useWorkflowConfigs();\n const workflowTypes = [...new Set((configs ?? []).map((c) => c.workflow_type))].sort();\n\n const { data, isLoading } = useTasks({\n status: filters.status || undefined,\n workflow_type: filters.workflow_type || undefined,\n limit: pagination.pageSize,\n offset: pagination.offset,\n });\n\n const total = data?.total ?? 0;\n\n return (\n <div>\n <PageHeader title=\"Tasks\" />\n\n <FilterBar>\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={statusOptions}\n />\n <FilterSelect\n label=\"Workflow Type\"\n value={filters.workflow_type}\n onChange={(v) => setFilter('workflow_type', v)}\n options={workflowTypes.map((t) => ({ value: t, label: t }))}\n />\n </FilterBar>\n\n <DataTable\n columns={columns}\n data={data?.tasks ?? []}\n keyFn={(row) => row.id}\n onRowClick={(row) => navigate(`/workflows/tasks/detail/${row.id}`)}\n isLoading={isLoading}\n emptyMessage=\"No tasks found\"\n />\n\n <StickyPagination\n page={pagination.page}\n totalPages={pagination.totalPages(total)}\n onPageChange={pagination.setPage}\n total={total}\n pageSize={pagination.pageSize}\n onPageSizeChange={pagination.setPageSize}\n />\n </div>\n );\n}\n"],"names":["statusOptions","columns","row","StatusBadge","WorkflowPill","jsx","PriorityBadge","TimeAgo","TasksListPage","navigate","useNavigate","filters","setFilter","pagination","useFilterParams","configs","useWorkflowConfigs","workflowTypes","c","data","isLoading","useTasks","total","PageHeader","FilterBar","FilterSelect","v","t","DataTable","StickyPagination"],"mappings":"0rBAcA,MAAMA,EAAgB,CACpB,CAAE,MAAO,UAAW,MAAO,SAAA,EAC3B,CAAE,MAAO,cAAe,MAAO,aAAA,EAC/B,CAAE,MAAO,YAAa,MAAO,WAAA,EAC7B,CAAE,MAAO,qBAAsB,MAAO,oBAAA,EACtC,CAAE,MAAO,YAAa,MAAO,WAAA,CAC/B,EAEMC,EAAkC,CACtC,CACE,IAAK,SACL,MAAO,SACP,OAASC,SAASC,EAAA,CAAY,OAAQD,EAAI,OAAQ,EAClD,UAAW,MAAA,EAEb,CACE,IAAK,gBACL,MAAO,gBACP,OAASA,SAASE,EAAA,CAAa,KAAMF,EAAI,aAAA,CAAe,CAAA,EAE1D,CACE,IAAK,UACL,MAAO,UACP,OAASA,GACPG,EAAAA,IAAC,QAAK,UAAU,8BAA+B,WAAI,OAAA,CAAQ,CAAA,EAG/D,CACE,IAAK,WACL,MAAO,WACP,OAASH,SAASI,EAAA,CAAc,SAAUJ,EAAI,SAAU,EACxD,UAAW,MAAA,EAEb,CACE,IAAK,aACL,MAAO,UACP,OAASA,SAASK,EAAA,CAAQ,KAAML,EAAI,WAAY,EAChD,UAAW,MAAA,EAEb,CACE,IAAK,aACL,MAAO,UACP,OAASA,SAASK,EAAA,CAAQ,KAAML,EAAI,WAAY,EAChD,UAAW,MAAA,CAEf,EAEO,SAASM,GAAgB,CAC9B,MAAMC,EAAWC,EAAA,EACX,CAAE,QAAAC,EAAS,UAAAC,EAAW,WAAAC,CAAA,EAAeC,EAAgB,CACzD,QAAS,CAAE,OAAQ,GAAI,cAAe,EAAA,CAAG,CAC1C,EAEK,CAAE,KAAMC,CAAA,EAAYC,EAAA,EACpBC,EAAgB,CAAC,GAAG,IAAI,KAAKF,GAAW,CAAA,GAAI,IAAKG,GAAMA,EAAE,aAAa,CAAC,CAAC,EAAE,KAAA,EAE1E,CAAE,KAAAC,EAAM,UAAAC,CAAA,EAAcC,EAAS,CACnC,OAAQV,EAAQ,QAAU,OAC1B,cAAeA,EAAQ,eAAiB,OACxC,MAAOE,EAAW,SAClB,OAAQA,EAAW,MAAA,CACpB,EAEKS,GAAQH,GAAA,YAAAA,EAAM,QAAS,EAE7B,cACG,MAAA,CACC,SAAA,CAAAd,EAAAA,IAACkB,EAAA,CAAW,MAAM,OAAA,CAAQ,SAEzBC,EAAA,CACC,SAAA,CAAAnB,EAAAA,IAACoB,EAAA,CACC,MAAM,SACN,MAAOd,EAAQ,OACf,SAAWe,GAAMd,EAAU,SAAUc,CAAC,EACtC,QAAS1B,CAAA,CAAA,EAEXK,EAAAA,IAACoB,EAAA,CACC,MAAM,gBACN,MAAOd,EAAQ,cACf,SAAWe,GAAMd,EAAU,gBAAiBc,CAAC,EAC7C,QAAST,EAAc,IAAKU,IAAO,CAAE,MAAOA,EAAG,MAAOA,GAAI,CAAA,CAAA,CAC5D,EACF,EAEAtB,EAAAA,IAACuB,EAAA,CACC,QAAA3B,EACA,MAAMkB,GAAA,YAAAA,EAAM,QAAS,CAAA,EACrB,MAAQjB,GAAQA,EAAI,GACpB,WAAaA,GAAQO,EAAS,2BAA2BP,EAAI,EAAE,EAAE,EACjE,UAAAkB,EACA,aAAa,gBAAA,CAAA,EAGff,EAAAA,IAACwB,EAAA,CACC,KAAMhB,EAAW,KACjB,WAAYA,EAAW,WAAWS,CAAK,EACvC,aAAcT,EAAW,QACzB,MAAAS,EACA,SAAUT,EAAW,SACrB,iBAAkBA,EAAW,WAAA,CAAA,CAC/B,EACF,CAEJ"}
1
+ {"version":3,"file":"TasksListPage-DcYV-GMA.js","sources":["../../src/pages/workflows/TasksListPage.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport { useTasks } from '../../api/tasks';\nimport { useWorkflowConfigs } from '../../api/workflows';\nimport { useFilterParams } from '../../hooks/useFilterParams';\nimport { DataTable, type Column } from '../../components/common/data/DataTable';\nimport { StatusBadge } from '../../components/common/display/StatusBadge';\nimport { PriorityBadge } from '../../components/common/display/PriorityBadge';\nimport { TimeAgo } from '../../components/common/display/TimeAgo';\nimport { StickyPagination } from '../../components/common/data/StickyPagination';\nimport { FilterBar, FilterSelect } from '../../components/common/data/FilterBar';\nimport { PageHeader } from '../../components/common/layout/PageHeader';\nimport { WorkflowPill } from '../../components/common/display/WorkflowPill';\nimport type { LTTaskRecord } from '../../api/types';\n\nconst statusOptions = [\n { value: 'pending', label: 'Pending' },\n { value: 'in_progress', label: 'In Progress' },\n { value: 'completed', label: 'Completed' },\n { value: 'needs_intervention', label: 'Needs Intervention' },\n { value: 'cancelled', label: 'Cancelled' },\n];\n\nconst columns: Column<LTTaskRecord>[] = [\n {\n key: 'status',\n label: 'Status',\n render: (row) => <StatusBadge status={row.status} />,\n className: 'w-40',\n },\n {\n key: 'workflow_type',\n label: 'Workflow Type',\n render: (row) => <WorkflowPill type={row.workflow_type} />,\n },\n {\n key: 'lt_type',\n label: 'LT Type',\n render: (row) => (\n <span className=\"text-text-secondary text-xs\">{row.lt_type}</span>\n ),\n },\n {\n key: 'priority',\n label: 'Priority',\n render: (row) => <PriorityBadge priority={row.priority} />,\n className: 'w-20',\n },\n {\n key: 'started_at',\n label: 'Started',\n render: (row) => <TimeAgo date={row.started_at} />,\n className: 'w-28',\n },\n {\n key: 'updated_at',\n label: 'Updated',\n render: (row) => <TimeAgo date={row.updated_at} />,\n className: 'w-28',\n },\n];\n\nexport function TasksListPage() {\n const navigate = useNavigate();\n const { filters, setFilter, pagination } = useFilterParams({\n filters: { status: '', workflow_type: '' },\n });\n\n const { data: configs } = useWorkflowConfigs();\n const workflowTypes = [...new Set((configs ?? []).map((c) => c.workflow_type))].sort();\n\n const { data, isLoading } = useTasks({\n status: filters.status || undefined,\n workflow_type: filters.workflow_type || undefined,\n limit: pagination.pageSize,\n offset: pagination.offset,\n });\n\n const total = data?.total ?? 0;\n\n return (\n <div>\n <PageHeader title=\"Tasks\" />\n\n <FilterBar>\n <FilterSelect\n label=\"Status\"\n value={filters.status}\n onChange={(v) => setFilter('status', v)}\n options={statusOptions}\n />\n <FilterSelect\n label=\"Workflow Type\"\n value={filters.workflow_type}\n onChange={(v) => setFilter('workflow_type', v)}\n options={workflowTypes.map((t) => ({ value: t, label: t }))}\n />\n </FilterBar>\n\n <DataTable\n columns={columns}\n data={data?.tasks ?? []}\n keyFn={(row) => row.id}\n onRowClick={(row) => navigate(`/workflows/tasks/detail/${row.id}`)}\n isLoading={isLoading}\n emptyMessage=\"No tasks found\"\n />\n\n <StickyPagination\n page={pagination.page}\n totalPages={pagination.totalPages(total)}\n onPageChange={pagination.setPage}\n total={total}\n pageSize={pagination.pageSize}\n onPageSizeChange={pagination.setPageSize}\n />\n </div>\n );\n}\n"],"names":["statusOptions","columns","row","StatusBadge","this","WorkflowPill","jsxDEV","PriorityBadge","TimeAgo","TasksListPage","navigate","useNavigate","filters","setFilter","pagination","useFilterParams","configs","useWorkflowConfigs","workflowTypes","c","data","isLoading","useTasks","total","PageHeader","FilterBar","FilterSelect","v","t","DataTable","StickyPagination"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{j as a,b as m}from"./index-DgCS2Frb.js";function r({date:e,className:o=""}){return a.jsxDEV(m,{date:e,format:"relative",className:o},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/TimeAgo.tsx",lineNumber:8,columnNumber:10},this)}export{r as T};
2
+ //# sourceMappingURL=TimeAgo-pYn3T9IZ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimeAgo-CftB8aJE.js","sources":["../../src/components/common/display/TimeAgo.tsx"],"sourcesContent":["import { DateValue } from './DateValue';\n\n/**\n * Relative time display (\"5 minutes ago\").\n * Thin wrapper around DateValue for backward compatibility.\n */\nexport function TimeAgo({ date, className = '' }: { date: string; className?: string }) {\n return <DateValue date={date} format=\"relative\" className={className} />;\n}\n"],"names":["TimeAgo","date","className","jsx","DateValue"],"mappings":"uFAMO,SAASA,EAAQ,CAAE,KAAAC,EAAM,UAAAC,EAAY,IAA4C,CACtF,OAAOC,EAAAA,IAACC,EAAA,CAAU,KAAAH,EAAY,OAAO,WAAW,UAAAC,EAAsB,CACxE"}
1
+ {"version":3,"file":"TimeAgo-pYn3T9IZ.js","sources":["../../src/components/common/display/TimeAgo.tsx"],"sourcesContent":["import { DateValue } from './DateValue';\n\n/**\n * Relative time display (\"5 minutes ago\").\n * Thin wrapper around DateValue for backward compatibility.\n */\nexport function TimeAgo({ date, className = '' }: { date: string; className?: string }) {\n return <DateValue date={date} format=\"relative\" className={className} />;\n}\n"],"names":["TimeAgo","date","className","jsxDEV","DateValue"],"mappings":"+CAMO,SAASA,EAAQ,CAAE,KAAAC,EAAM,UAAAC,EAAY,IAA4C,CACtF,OAAOC,EAAAA,OAACC,EAAA,CAAU,KAAAH,EAAY,OAAO,WAAW,UAAAC,CAAA,EAAzC,OAAA,GAAA,CAAA,SAAA,2DAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAA+D,CACxE"}
@@ -0,0 +1,2 @@
1
+ import{j as e,b as s}from"./index-DgCS2Frb.js";function a({date:m}){return e.jsxDEV("div",{children:[e.jsxDEV(s,{date:m,format:"relative"},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/TimestampCell.tsx",lineNumber:14,columnNumber:7},this),e.jsxDEV("p",{className:"text-[9px] font-mono text-text-secondary mt-0.5 whitespace-nowrap",children:[new Date(m).toISOString().replace("T"," ").slice(0,19)," UTC"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/TimestampCell.tsx",lineNumber:15,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/TimestampCell.tsx",lineNumber:13,columnNumber:5},this)}export{a as T};
2
+ //# sourceMappingURL=TimestampCell-BPMCscic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimestampCell-BSKj1jqT.js","sources":["../../src/components/common/display/TimestampCell.tsx"],"sourcesContent":["import { DateValue } from './DateValue';\n\ninterface TimestampCellProps {\n date: string;\n}\n\n/**\n * Standard timestamp cell for data tables.\n * Shows friendly \"ago\" text with UTC timestamp below.\n */\nexport function TimestampCell({ date }: TimestampCellProps) {\n return (\n <div>\n <DateValue date={date} format=\"relative\" />\n <p className=\"text-[9px] font-mono text-text-secondary mt-0.5 whitespace-nowrap\">\n {new Date(date).toISOString().replace('T', ' ').slice(0, 19)} UTC\n </p>\n </div>\n );\n}\n"],"names":["TimestampCell","date","jsx","DateValue","jsxs"],"mappings":"uFAUO,SAASA,EAAc,CAAE,KAAAC,GAA4B,CAC1D,cACG,MAAA,CACC,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAU,KAAAF,EAAY,OAAO,UAAA,CAAW,EACzCG,EAAAA,KAAC,IAAA,CAAE,UAAU,oEACV,SAAA,CAAA,IAAI,KAAKH,CAAI,EAAE,cAAc,QAAQ,IAAK,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,MAAA,CAAA,CAC/D,CAAA,EACF,CAEJ"}
1
+ {"version":3,"file":"TimestampCell-BPMCscic.js","sources":["../../src/components/common/display/TimestampCell.tsx"],"sourcesContent":["import { DateValue } from './DateValue';\n\ninterface TimestampCellProps {\n date: string;\n}\n\n/**\n * Standard timestamp cell for data tables.\n * Shows friendly \"ago\" text with UTC timestamp below.\n */\nexport function TimestampCell({ date }: TimestampCellProps) {\n return (\n <div>\n <DateValue date={date} format=\"relative\" />\n <p className=\"text-[9px] font-mono text-text-secondary mt-0.5 whitespace-nowrap\">\n {new Date(date).toISOString().replace('T', ' ').slice(0, 19)} UTC\n </p>\n </div>\n );\n}\n"],"names":["TimestampCell","date","jsxDEV","DateValue"],"mappings":"+CAUO,SAASA,EAAc,CAAE,KAAAC,GAA4B,CAC1D,gBACG,MAAA,CACC,SAAA,CAAAC,EAAAA,OAACC,EAAA,CAAU,KAAAF,EAAY,OAAO,UAAA,EAA9B,OAAA,GAAA,CAAA,SAAA,iEAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAyC,EACzCC,EAAAA,OAAC,IAAA,CAAE,UAAU,oEACV,SAAA,CAAA,IAAI,KAAKD,CAAI,EAAE,cAAc,QAAQ,IAAK,GAAG,EAAE,MAAM,EAAG,EAAE,EAAE,MAAA,CAAA,EAD/D,OAAA,GAAA,CAAA,SAAA,iEAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAEA,CAAA,CAAA,EAJF,OAAA,GAAA,CAAA,SAAA,iEAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAKA,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as s}from"./index-DgCS2Frb.js";import{ab as a}from"./vendor-icons-CNyYGNsk.js";function l({name:o,size:e="sm"}){const t=e==="md"?"px-2 py-0.5 text-[12px] gap-1.5":"px-1.5 py-px text-[11px] gap-1",n=e==="md"?"w-2.5 h-2.5":"w-2 h-2";return s.jsxDEV("span",{className:`inline-flex items-center ${t} font-mono text-text-secondary bg-surface-sunken/50 rounded-md`,children:[s.jsxDEV(a,{className:`${n} shrink-0 text-text-quaternary`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/ToolPill.tsx",lineNumber:20,columnNumber:7},this),o]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/ToolPill.tsx",lineNumber:19,columnNumber:5},this)}export{l as T};
2
+ //# sourceMappingURL=ToolPill-BnF9lCUX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolPill-miuRcj1Q.js","sources":["../../src/components/common/display/ToolPill.tsx"],"sourcesContent":["import { Wrench } from 'lucide-react';\n\ninterface ToolPillProps {\n name: string;\n size?: 'sm' | 'md';\n}\n\n/**\n * Universal MCP tool pill — displays a tool name with a subtle wrench icon.\n * Used across Capabilities page, MCP Server Tools, Pipeline Tools, etc.\n */\nexport function ToolPill({ name, size = 'sm' }: ToolPillProps) {\n const sizeClass = size === 'md'\n ? 'px-2 py-0.5 text-[12px] gap-1.5'\n : 'px-1.5 py-px text-[11px] gap-1';\n const iconClass = size === 'md' ? 'w-2.5 h-2.5' : 'w-2 h-2';\n\n return (\n <span className={`inline-flex items-center ${sizeClass} font-mono text-text-secondary bg-surface-sunken/50 rounded-md`}>\n <Wrench className={`${iconClass} shrink-0 text-text-quaternary`} strokeWidth={1.5} />\n {name}\n </span>\n );\n}\n"],"names":["ToolPill","name","size","sizeClass","iconClass","jsxs","jsx","Wrench"],"mappings":"+FAWO,SAASA,EAAS,CAAE,KAAAC,EAAM,KAAAC,EAAO,MAAuB,CAC7D,MAAMC,EAAYD,IAAS,KACvB,kCACA,iCACEE,EAAYF,IAAS,KAAO,cAAgB,UAElD,OACEG,EAAAA,KAAC,OAAA,CAAK,UAAW,4BAA4BF,CAAS,iEACpD,SAAA,CAAAG,MAACC,GAAO,UAAW,GAAGH,CAAS,iCAAkC,YAAa,IAAK,EAClFH,CAAA,EACH,CAEJ"}
1
+ {"version":3,"file":"ToolPill-BnF9lCUX.js","sources":["../../src/components/common/display/ToolPill.tsx"],"sourcesContent":["import { Wrench } from 'lucide-react';\n\ninterface ToolPillProps {\n name: string;\n size?: 'sm' | 'md';\n}\n\n/**\n * Universal MCP tool pill — displays a tool name with a subtle wrench icon.\n * Used across Capabilities page, MCP Server Tools, Pipeline Tools, etc.\n */\nexport function ToolPill({ name, size = 'sm' }: ToolPillProps) {\n const sizeClass = size === 'md'\n ? 'px-2 py-0.5 text-[12px] gap-1.5'\n : 'px-1.5 py-px text-[11px] gap-1';\n const iconClass = size === 'md' ? 'w-2.5 h-2.5' : 'w-2 h-2';\n\n return (\n <span className={`inline-flex items-center ${sizeClass} font-mono text-text-secondary bg-surface-sunken/50 rounded-md`}>\n <Wrench className={`${iconClass} shrink-0 text-text-quaternary`} strokeWidth={1.5} />\n {name}\n </span>\n );\n}\n"],"names":["ToolPill","name","size","sizeClass","iconClass","jsxDEV","Wrench"],"mappings":"wFAWO,SAASA,EAAS,CAAE,KAAAC,EAAM,KAAAC,EAAO,MAAuB,CAC7D,MAAMC,EAAYD,IAAS,KACvB,kCACA,iCACEE,EAAYF,IAAS,KAAO,cAAgB,UAElD,OACEG,EAAAA,OAAC,OAAA,CAAK,UAAW,4BAA4BF,CAAS,iEACpD,SAAA,CAAAE,EAAAA,OAACC,GAAO,UAAW,GAAGF,CAAS,iCAAkC,YAAa,KAA9E,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAAmF,EAClFH,CAAA,CAAA,EAFH,OAAA,GAAA,CAAA,SAAA,4DAAA,WAAA,GAAA,aAAA,CAAA,EAAA,IAGA,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{j as e,J as q}from"./index-DgCS2Frb.js";import{a as p}from"./vendor-query-DLp59M9_.js";import{h as O}from"./mcp-BtG54ZAx.js";import{R as A}from"./RunAsSelector-DiGzSfiG.js";import{T as L}from"./ToolPill-BnF9lCUX.js";import{t as y,ae as P,X as z,af as F,P as M,aa as W}from"./vendor-icons-CNyYGNsk.js";import{c as _,L as C}from"./vendor-react-zA2lQFDs.js";import{b as $}from"./helpers-DzO-OGPe.js";function B({name:t,serverId:n,short:a=!0}){const c=_(),o=a?t.replace(/^long-tail-/,""):t;return n?e.jsxDEV("button",{onClick:l=>{l.stopPropagation(),c(`/mcp/servers/${n}`)},className:"group/srv inline-flex items-center gap-1 text-[11px] font-mono text-text-tertiary hover:text-accent transition-colors",title:t,children:[e.jsxDEV(y,{className:"w-2.5 h-2.5 shrink-0 text-text-quaternary group-hover/srv:text-accent",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/ServerName.tsx",lineNumber:27,columnNumber:9},this),o,e.jsxDEV(P,{className:"w-2 h-2 shrink-0 invisible group-hover/srv:visible text-accent",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/ServerName.tsx",lineNumber:29,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/ServerName.tsx",lineNumber:22,columnNumber:7},this):e.jsxDEV("span",{className:"inline-flex items-center gap-1 text-[11px] font-mono text-text-tertiary",title:t,children:[e.jsxDEV(y,{className:"w-2.5 h-2.5 shrink-0 text-text-quaternary",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/components/common/display/ServerName.tsx",lineNumber:36,columnNumber:7},this),o]},void 0,!0,{fileName:"/app/dashboard/src/components/common/display/ServerName.tsx",lineNumber:35,columnNumber:5},this)}function I({error:t}){const n=t instanceof Error?t.message:"";return n.startsWith("No credential found for provider")?e.jsxDEV("div",{className:"bg-status-warning/10 border border-status-warning/30 rounded-md px-3 py-2 flex items-start gap-2",children:[e.jsxDEV(W,{size:14,className:"text-status-warning mt-0.5 shrink-0"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:17,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[11px] font-medium text-text-primary mb-0.5",children:"Credential required"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:19,columnNumber:11},this),e.jsxDEV("p",{className:"text-[11px] text-text-secondary mb-1",children:n},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:20,columnNumber:11},this),e.jsxDEV(C,{to:"/credentials",className:"text-[11px] text-accent hover:underline inline-flex items-center gap-1",children:["Go to Credentials ",e.jsxDEV(P,{size:10},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:22,columnNumber:31},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:21,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:18,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:16,columnNumber:7},this):e.jsxDEV("div",{className:"bg-status-error/10 border border-status-error/20 rounded-md px-3 py-2",children:e.jsxDEV("p",{className:"text-[11px] text-status-error",children:n||"Tool call failed"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:30,columnNumber:7},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:29,columnNumber:5},this)}function U({data:t}){const n=t==null?void 0:t.result,a=n==null?void 0:n.job_id,c=(n==null?void 0:n.namespace)||"";return a?e.jsxDEV(C,{to:`/mcp/executions/${encodeURIComponent(a)}?namespace=${encodeURIComponent(c)}`,className:"inline-flex items-center gap-1.5 text-xs text-accent hover:underline",children:[e.jsxDEV(P,{size:12},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:45,columnNumber:7},this),"View Execution"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:41,columnNumber:5},this):null}const f="input text-xs",S="label";function K({value:t,onChange:n,className:a}){const[c,o]=p.useState(t.join(", ")),l=()=>n(c.split(",").map(i=>i.trim()).filter(Boolean));return p.useEffect(()=>{o(t.join(", "))},[JSON.stringify(t)]),e.jsxDEV("input",{type:"text",value:c,onChange:i=>o(i.target.value),onBlur:l,onKeyDown:i=>{i.key==="Enter"&&(i.preventDefault(),l())},placeholder:"comma-separated values",className:a},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:68,columnNumber:5},this)}function te({serverId:t,serverName:n,tool:a,onClose:c}){const o=O(),[l,i]=p.useState(!1),[u,N]=p.useState({}),[T,v]=p.useState(""),[D,j]=p.useState(""),[E,w]=p.useState("");p.useEffect(()=>{const s=$(a.inputSchema);N(s),v(JSON.stringify(s,null,2)),i(!1),j(""),o.reset()},[a.name,t]);const R=!!o.data||!!o.error,k=()=>{if(!l)v(JSON.stringify(u,null,2));else try{N(JSON.parse(T))}catch{}i(!l)},J=()=>{j(""),o.reset();let s;if(l)try{s=JSON.parse(T)}catch{j("Invalid JSON");return}else s={...u};o.mutate({serverId:t,toolName:a.name,arguments:s,...E?{execute_as:E}:{}})};return e.jsxDEV("div",{className:"border-l border-surface-border bg-surface-raised",children:[e.jsxDEV("div",{className:"flex items-start justify-between px-4 py-3 border-b border-surface-border/50 shrink-0",children:[e.jsxDEV("div",{className:"min-w-0 space-y-1",children:[e.jsxDEV(B,{name:n,serverId:t,short:!1},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:130,columnNumber:11},this),e.jsxDEV("div",{children:e.jsxDEV(L,{name:a.name,size:"md"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:131,columnNumber:16},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:131,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:129,columnNumber:9},this),e.jsxDEV("button",{onClick:c,className:"p-1 text-text-quaternary hover:text-text-primary shrink-0 ml-2",children:e.jsxDEV(z,{className:"w-3.5 h-3.5"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:134,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:133,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:128,columnNumber:7},this),e.jsxDEV("div",{className:"px-4 py-4 space-y-5",children:[a.description&&e.jsxDEV("div",{className:"border-l-2 border-accent/30 pl-3 py-1",children:e.jsxDEV("p",{className:"text-[11px] text-text-secondary leading-relaxed italic",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:142,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:141,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:S,children:"run as"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:148,columnNumber:11},this),e.jsxDEV(A,{selected:E,onChange:w},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:149,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:147,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-center justify-between mb-2",children:[e.jsxDEV("span",{className:"text-[10px] text-text-quaternary",children:"Parameters"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:155,columnNumber:13},this),e.jsxDEV("button",{onClick:k,className:"text-[10px] text-accent/70 hover:text-accent transition-colors",children:l?"Form view":"JSON view"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:156,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:154,columnNumber:11},this),l?e.jsxDEV("textarea",{value:T,onChange:s=>v(s.target.value),className:"input-json w-full",rows:6,spellCheck:!1},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:162,columnNumber:13},this):e.jsxDEV("div",{className:"space-y-3",children:[Object.entries(u).sort(([s],[r])=>{var h;const m=((h=a.inputSchema)==null?void 0:h.required)??[],b=m.indexOf(s),x=m.indexOf(r);return b!==-1&&x!==-1?b-x:b!==-1?-1:x!==-1?1:s.localeCompare(r)}).map(([s,r])=>{var h,V,g;const m=(V=(h=a.inputSchema)==null?void 0:h.properties)==null?void 0:V[s],b=m==null?void 0:m.description,x=(((g=a.inputSchema)==null?void 0:g.required)??[]).includes(s);return e.jsxDEV("div",{children:[e.jsxDEV("label",{className:S,children:[s,x&&e.jsxDEV("span",{className:"text-accent/50 ml-0.5",children:"*"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:187,columnNumber:38},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:185,columnNumber:21},this),typeof r=="boolean"?e.jsxDEV("select",{value:String(r),onChange:d=>N({...u,[s]:d.target.value==="true"}),className:f,children:[e.jsxDEV("option",{value:"true",children:"true"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:195,columnNumber:25},this),e.jsxDEV("option",{value:"false",children:"false"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:196,columnNumber:25},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:190,columnNumber:23},this):Array.isArray(r)?e.jsxDEV(K,{value:r,onChange:d=>N({...u,[s]:d}),className:f},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:199,columnNumber:23},this):typeof r=="object"&&r!==null?e.jsxDEV("textarea",{value:JSON.stringify(r,null,2),onChange:d=>{try{N({...u,[s]:JSON.parse(d.target.value)})}catch{}},className:`${f} min-h-[48px] font-mono resize-y`},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:205,columnNumber:23},this):e.jsxDEV("input",{type:typeof r=="number"?"number":"text",value:String(r??""),onChange:d=>N({...u,[s]:typeof r=="number"?Number(d.target.value):d.target.value}),className:f,placeholder:(m==null?void 0:m.type)==="string"&&(m==null?void 0:m.example)||""},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:211,columnNumber:23},this),b&&e.jsxDEV("p",{className:"text-[9px] text-text-quaternary/70 mt-0.5 leading-snug",children:b},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:219,columnNumber:30},this)]},s,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:184,columnNumber:19},this)}),Object.keys(u).length===0&&e.jsxDEV("p",{className:"text-[11px] text-text-quaternary",children:"No parameters"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:224,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:170,columnNumber:13},this),D&&e.jsxDEV("p",{className:"text-[11px] text-status-error mt-1",children:D},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:228,columnNumber:25},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:153,columnNumber:9},this),e.jsxDEV("button",{onClick:J,disabled:o.isPending,className:"btn-primary text-xs disabled:opacity-50 inline-flex items-center gap-1.5",children:o.isPending?"Running...":R?e.jsxDEV(e.Fragment,{children:[e.jsxDEV(F,{size:12},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:240,columnNumber:15},this)," Re-run"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:240,columnNumber:13},this):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(M,{size:12},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:242,columnNumber:15},this)," Run"]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:242,columnNumber:13},this)},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:232,columnNumber:9},this),o.isPending&&e.jsxDEV("div",{className:"animate-pulse",children:[e.jsxDEV("p",{className:"text-[10px] text-text-quaternary mb-1",children:"Response"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:249,columnNumber:13},this),e.jsxDEV("div",{className:"h-20 bg-surface-sunken/50 rounded-md"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:250,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:248,columnNumber:11},this),o.data?e.jsxDEV("div",{className:"space-y-2",children:[e.jsxDEV(q,{data:o.data,label:"Response",defaultCollapsed:!0},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:255,columnNumber:13},this),e.jsxDEV(U,{data:o.data},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:256,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:254,columnNumber:11},this):null,o.error?e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[10px] text-text-quaternary mb-1",children:"Response"},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:261,columnNumber:13},this),e.jsxDEV(I,{error:o.error},void 0,!1,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:262,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:260,columnNumber:11},this):null]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:139,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/components/common/test/ToolTestPanel.tsx",lineNumber:126,columnNumber:5},this)}export{B as S,te as T};
2
+ //# sourceMappingURL=ToolTestPanel-Bw4z_Tya.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolTestPanel-DVQICZUQ.js","sources":["../../src/components/common/display/ServerName.tsx","../../src/components/common/test/ToolTestPanel.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport { Server, ExternalLink } from 'lucide-react';\n\ninterface ServerNameProps {\n name: string;\n serverId?: string;\n /** Strip the common \"long-tail-\" prefix for display */\n short?: boolean;\n}\n\n/**\n * Universal MCP server name display. Monospace with a subtle Server icon.\n * When `serverId` is provided, hovering reveals a nav icon and clicking\n * navigates to the server config page.\n */\nexport function ServerName({ name, serverId, short = true }: ServerNameProps) {\n const navigate = useNavigate();\n const display = short ? name.replace(/^long-tail-/, '') : name;\n\n if (serverId) {\n return (\n <button\n onClick={(e) => { e.stopPropagation(); navigate(`/mcp/servers/${serverId}`); }}\n className=\"group/srv inline-flex items-center gap-1 text-[11px] font-mono text-text-tertiary hover:text-accent transition-colors\"\n title={name}\n >\n <Server className=\"w-2.5 h-2.5 shrink-0 text-text-quaternary group-hover/srv:text-accent\" strokeWidth={1.5} />\n {display}\n <ExternalLink className=\"w-2 h-2 shrink-0 invisible group-hover/srv:visible text-accent\" strokeWidth={1.5} />\n </button>\n );\n }\n\n return (\n <span className=\"inline-flex items-center gap-1 text-[11px] font-mono text-text-tertiary\" title={name}>\n <Server className=\"w-2.5 h-2.5 shrink-0 text-text-quaternary\" strokeWidth={1.5} />\n {display}\n </span>\n );\n}\n","import { useState, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { X, RotateCcw, Play, ExternalLink, KeyRound } from 'lucide-react';\nimport { useCallMcpTool } from '../../../api/mcp';\nimport { JsonViewer } from '../data/JsonViewer';\nimport { RunAsSelector } from '../form/RunAsSelector';\nimport { ToolPill } from '../display/ToolPill';\nimport { ServerName } from '../display/ServerName';\nimport type { McpToolManifest } from '../../../api/types';\nimport { buildSkeleton } from '../../../pages/mcp/mcp-query-detail/helpers';\n\nfunction ToolErrorDisplay({ error }: { error: Error | null }) {\n const msg = error instanceof Error ? error.message : '';\n if (msg.startsWith('No credential found for provider')) {\n return (\n <div className=\"bg-status-warning/10 border border-status-warning/30 rounded-md px-3 py-2 flex items-start gap-2\">\n <KeyRound size={14} className=\"text-status-warning mt-0.5 shrink-0\" />\n <div>\n <p className=\"text-[11px] font-medium text-text-primary mb-0.5\">Credential required</p>\n <p className=\"text-[11px] text-text-secondary mb-1\">{msg}</p>\n <Link to=\"/credentials\" className=\"text-[11px] text-accent hover:underline inline-flex items-center gap-1\">\n Go to Credentials <ExternalLink size={10} />\n </Link>\n </div>\n </div>\n );\n }\n return (\n <div className=\"bg-status-error/10 border border-status-error/20 rounded-md px-3 py-2\">\n <p className=\"text-[11px] text-status-error\">{msg || 'Tool call failed'}</p>\n </div>\n );\n}\n\nfunction ExecutionLink({ data }: { data: unknown }) {\n const res = (data as any)?.result;\n const jobId = res?.job_id;\n const ns = res?.namespace || '';\n if (!jobId) return null;\n return (\n <Link\n to={`/mcp/executions/${encodeURIComponent(jobId)}?namespace=${encodeURIComponent(ns)}`}\n className=\"inline-flex items-center gap-1.5 text-xs text-accent hover:underline\"\n >\n <ExternalLink size={12} />\n View Execution\n </Link>\n );\n}\n\ninterface ToolTestPanelProps {\n serverId: string;\n serverName: string;\n tool: McpToolManifest;\n onClose: () => void;\n}\n\nconst INPUT_CLS = 'input text-xs';\nconst LABEL_CLS = 'label';\n\n/** Text input for array fields — commits on blur or Enter, allows commas while typing */\nfunction ArrayInput({ value, onChange, className }: { value: any[]; onChange: (v: string[]) => void; className: string }) {\n const [raw, setRaw] = useState(value.join(', '));\n const commit = () => onChange(raw.split(',').map((s) => s.trim()).filter(Boolean));\n // Sync if parent value changes externally\n useEffect(() => { setRaw(value.join(', ')); }, [JSON.stringify(value)]); // eslint-disable-line\n return (\n <input\n type=\"text\"\n value={raw}\n onChange={(e) => setRaw(e.target.value)}\n onBlur={commit}\n onKeyDown={(e) => { if (e.key === 'Enter') { e.preventDefault(); commit(); } }}\n placeholder=\"comma-separated values\"\n className={className}\n />\n );\n}\n\nexport function ToolTestPanel({ serverId, serverName, tool, onClose }: ToolTestPanelProps) {\n const callTool = useCallMcpTool();\n const [jsonMode, setJsonMode] = useState(false);\n const [fields, setFields] = useState<Record<string, any>>({});\n const [argsJson, setArgsJson] = useState('');\n const [jsonError, setJsonError] = useState('');\n const [executeAs, setExecuteAs] = useState('');\n\n useEffect(() => {\n const skeleton = buildSkeleton(tool.inputSchema);\n setFields(skeleton);\n setArgsJson(JSON.stringify(skeleton, null, 2));\n setJsonMode(false);\n setJsonError('');\n callTool.reset();\n }, [tool.name, serverId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const hasResult = !!callTool.data || !!callTool.error;\n\n const toggleMode = () => {\n if (!jsonMode) {\n setArgsJson(JSON.stringify(fields, null, 2));\n } else {\n try { setFields(JSON.parse(argsJson)); } catch { /* keep fields */ }\n }\n setJsonMode(!jsonMode);\n };\n\n const handleRun = () => {\n setJsonError('');\n callTool.reset();\n let parsed: Record<string, unknown>;\n if (jsonMode) {\n try { parsed = JSON.parse(argsJson); } catch { setJsonError('Invalid JSON'); return; }\n } else {\n parsed = { ...fields };\n }\n callTool.mutate({\n serverId,\n toolName: tool.name,\n arguments: parsed,\n ...(executeAs ? { execute_as: executeAs } : {}),\n });\n };\n\n return (\n <div className=\"border-l border-surface-border bg-surface-raised\">\n {/* Header */}\n <div className=\"flex items-start justify-between px-4 py-3 border-b border-surface-border/50 shrink-0\">\n <div className=\"min-w-0 space-y-1\">\n <ServerName name={serverName} serverId={serverId} short={false} />\n <div><ToolPill name={tool.name} size=\"md\" /></div>\n </div>\n <button onClick={onClose} className=\"p-1 text-text-quaternary hover:text-text-primary shrink-0 ml-2\">\n <X className=\"w-3.5 h-3.5\" />\n </button>\n </div>\n\n {/* Scrollable body */}\n <div className=\"px-4 py-4 space-y-5\">\n {tool.description && (\n <div className=\"border-l-2 border-accent/30 pl-3 py-1\">\n <p className=\"text-[11px] text-text-secondary leading-relaxed italic\">{tool.description}</p>\n </div>\n )}\n\n {/* Run as */}\n <div>\n <label className={LABEL_CLS}>run as</label>\n <RunAsSelector selected={executeAs} onChange={setExecuteAs} />\n </div>\n\n {/* Form / JSON toggle input */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-[10px] text-text-quaternary\">Parameters</span>\n <button onClick={toggleMode} className=\"text-[10px] text-accent/70 hover:text-accent transition-colors\">\n {jsonMode ? 'Form view' : 'JSON view'}\n </button>\n </div>\n\n {jsonMode ? (\n <textarea\n value={argsJson}\n onChange={(e) => setArgsJson(e.target.value)}\n className=\"input-json w-full\"\n rows={6}\n spellCheck={false}\n />\n ) : (\n <div className=\"space-y-3\">\n {Object.entries(fields).sort(([a], [b]) => {\n const req = (tool.inputSchema?.required ?? []) as string[];\n const ai = req.indexOf(a);\n const bi = req.indexOf(b);\n if (ai !== -1 && bi !== -1) return ai - bi;\n if (ai !== -1) return -1;\n if (bi !== -1) return 1;\n return a.localeCompare(b);\n }).map(([key, value]) => {\n const propSchema = tool.inputSchema?.properties?.[key];\n const hint = propSchema?.description;\n const isRequired = (tool.inputSchema?.required ?? []).includes(key);\n return (\n <div key={key}>\n <label className={LABEL_CLS}>\n {key}\n {isRequired && <span className=\"text-accent/50 ml-0.5\">*</span>}\n </label>\n {typeof value === 'boolean' ? (\n <select\n value={String(value)}\n onChange={(e) => setFields({ ...fields, [key]: e.target.value === 'true' })}\n className={INPUT_CLS}\n >\n <option value=\"true\">true</option>\n <option value=\"false\">false</option>\n </select>\n ) : Array.isArray(value) ? (\n <ArrayInput\n value={value as any[]}\n onChange={(v) => setFields({ ...fields, [key]: v })}\n className={INPUT_CLS}\n />\n ) : typeof value === 'object' && value !== null ? (\n <textarea\n value={JSON.stringify(value, null, 2)}\n onChange={(e) => { try { setFields({ ...fields, [key]: JSON.parse(e.target.value) }); } catch { /* invalid */ } }}\n className={`${INPUT_CLS} min-h-[48px] font-mono resize-y`}\n />\n ) : (\n <input\n type={typeof value === 'number' ? 'number' : 'text'}\n value={String(value ?? '')}\n onChange={(e) => setFields({ ...fields, [key]: typeof value === 'number' ? Number(e.target.value) : e.target.value })}\n className={INPUT_CLS}\n placeholder={propSchema?.type === 'string' ? propSchema?.example || '' : ''}\n />\n )}\n {hint && <p className=\"text-[9px] text-text-quaternary/70 mt-0.5 leading-snug\">{hint}</p>}\n </div>\n );\n })}\n {Object.keys(fields).length === 0 && (\n <p className=\"text-[11px] text-text-quaternary\">No parameters</p>\n )}\n </div>\n )}\n {jsonError && <p className=\"text-[11px] text-status-error mt-1\">{jsonError}</p>}\n </div>\n\n {/* Run button */}\n <button\n onClick={handleRun}\n disabled={callTool.isPending}\n className=\"btn-primary text-xs disabled:opacity-50 inline-flex items-center gap-1.5\"\n >\n {callTool.isPending ? (\n 'Running...'\n ) : hasResult ? (\n <><RotateCcw size={12} /> Re-run</>\n ) : (\n <><Play size={12} /> Run</>\n )}\n </button>\n\n {/* Response */}\n {callTool.isPending && (\n <div className=\"animate-pulse\">\n <p className=\"text-[10px] text-text-quaternary mb-1\">Response</p>\n <div className=\"h-20 bg-surface-sunken/50 rounded-md\" />\n </div>\n )}\n {callTool.data ? (\n <div className=\"space-y-2\">\n <JsonViewer data={callTool.data as Record<string, unknown>} label=\"Response\" defaultCollapsed />\n <ExecutionLink data={callTool.data} />\n </div>\n ) : null}\n {callTool.error ? (\n <div>\n <p className=\"text-[10px] text-text-quaternary mb-1\">Response</p>\n <ToolErrorDisplay error={callTool.error as Error | null} />\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":["ServerName","name","serverId","short","navigate","useNavigate","display","jsxs","e","jsx","Server","ExternalLink","ToolErrorDisplay","error","msg","KeyRound","Link","ExecutionLink","data","res","jobId","ns","INPUT_CLS","LABEL_CLS","ArrayInput","value","onChange","className","raw","setRaw","useState","commit","s","useEffect","ToolTestPanel","serverName","tool","onClose","callTool","useCallMcpTool","jsonMode","setJsonMode","fields","setFields","argsJson","setArgsJson","jsonError","setJsonError","executeAs","setExecuteAs","skeleton","buildSkeleton","hasResult","toggleMode","handleRun","parsed","ToolPill","X","RunAsSelector","a","b","req","_a","ai","bi","key","propSchema","_b","hint","isRequired","_c","v","Fragment","RotateCcw","Play","JsonViewer"],"mappings":"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"}
1
+ {"version":3,"file":"ToolTestPanel-Bw4z_Tya.js","sources":["../../src/components/common/display/ServerName.tsx","../../src/components/common/test/ToolTestPanel.tsx"],"sourcesContent":["import { useNavigate } from 'react-router-dom';\nimport { Server, ExternalLink } from 'lucide-react';\n\ninterface ServerNameProps {\n name: string;\n serverId?: string;\n /** Strip the common \"long-tail-\" prefix for display */\n short?: boolean;\n}\n\n/**\n * Universal MCP server name display. Monospace with a subtle Server icon.\n * When `serverId` is provided, hovering reveals a nav icon and clicking\n * navigates to the server config page.\n */\nexport function ServerName({ name, serverId, short = true }: ServerNameProps) {\n const navigate = useNavigate();\n const display = short ? name.replace(/^long-tail-/, '') : name;\n\n if (serverId) {\n return (\n <button\n onClick={(e) => { e.stopPropagation(); navigate(`/mcp/servers/${serverId}`); }}\n className=\"group/srv inline-flex items-center gap-1 text-[11px] font-mono text-text-tertiary hover:text-accent transition-colors\"\n title={name}\n >\n <Server className=\"w-2.5 h-2.5 shrink-0 text-text-quaternary group-hover/srv:text-accent\" strokeWidth={1.5} />\n {display}\n <ExternalLink className=\"w-2 h-2 shrink-0 invisible group-hover/srv:visible text-accent\" strokeWidth={1.5} />\n </button>\n );\n }\n\n return (\n <span className=\"inline-flex items-center gap-1 text-[11px] font-mono text-text-tertiary\" title={name}>\n <Server className=\"w-2.5 h-2.5 shrink-0 text-text-quaternary\" strokeWidth={1.5} />\n {display}\n </span>\n );\n}\n","import { useState, useEffect } from 'react';\nimport { Link } from 'react-router-dom';\nimport { X, RotateCcw, Play, ExternalLink, KeyRound } from 'lucide-react';\nimport { useCallMcpTool } from '../../../api/mcp';\nimport { JsonViewer } from '../data/JsonViewer';\nimport { RunAsSelector } from '../form/RunAsSelector';\nimport { ToolPill } from '../display/ToolPill';\nimport { ServerName } from '../display/ServerName';\nimport type { McpToolManifest } from '../../../api/types';\nimport { buildSkeleton } from '../../../pages/mcp/mcp-query-detail/helpers';\n\nfunction ToolErrorDisplay({ error }: { error: Error | null }) {\n const msg = error instanceof Error ? error.message : '';\n if (msg.startsWith('No credential found for provider')) {\n return (\n <div className=\"bg-status-warning/10 border border-status-warning/30 rounded-md px-3 py-2 flex items-start gap-2\">\n <KeyRound size={14} className=\"text-status-warning mt-0.5 shrink-0\" />\n <div>\n <p className=\"text-[11px] font-medium text-text-primary mb-0.5\">Credential required</p>\n <p className=\"text-[11px] text-text-secondary mb-1\">{msg}</p>\n <Link to=\"/credentials\" className=\"text-[11px] text-accent hover:underline inline-flex items-center gap-1\">\n Go to Credentials <ExternalLink size={10} />\n </Link>\n </div>\n </div>\n );\n }\n return (\n <div className=\"bg-status-error/10 border border-status-error/20 rounded-md px-3 py-2\">\n <p className=\"text-[11px] text-status-error\">{msg || 'Tool call failed'}</p>\n </div>\n );\n}\n\nfunction ExecutionLink({ data }: { data: unknown }) {\n const res = (data as any)?.result;\n const jobId = res?.job_id;\n const ns = res?.namespace || '';\n if (!jobId) return null;\n return (\n <Link\n to={`/mcp/executions/${encodeURIComponent(jobId)}?namespace=${encodeURIComponent(ns)}`}\n className=\"inline-flex items-center gap-1.5 text-xs text-accent hover:underline\"\n >\n <ExternalLink size={12} />\n View Execution\n </Link>\n );\n}\n\ninterface ToolTestPanelProps {\n serverId: string;\n serverName: string;\n tool: McpToolManifest;\n onClose: () => void;\n}\n\nconst INPUT_CLS = 'input text-xs';\nconst LABEL_CLS = 'label';\n\n/** Text input for array fields — commits on blur or Enter, allows commas while typing */\nfunction ArrayInput({ value, onChange, className }: { value: any[]; onChange: (v: string[]) => void; className: string }) {\n const [raw, setRaw] = useState(value.join(', '));\n const commit = () => onChange(raw.split(',').map((s) => s.trim()).filter(Boolean));\n // Sync if parent value changes externally\n useEffect(() => { setRaw(value.join(', ')); }, [JSON.stringify(value)]); // eslint-disable-line\n return (\n <input\n type=\"text\"\n value={raw}\n onChange={(e) => setRaw(e.target.value)}\n onBlur={commit}\n onKeyDown={(e) => { if (e.key === 'Enter') { e.preventDefault(); commit(); } }}\n placeholder=\"comma-separated values\"\n className={className}\n />\n );\n}\n\nexport function ToolTestPanel({ serverId, serverName, tool, onClose }: ToolTestPanelProps) {\n const callTool = useCallMcpTool();\n const [jsonMode, setJsonMode] = useState(false);\n const [fields, setFields] = useState<Record<string, any>>({});\n const [argsJson, setArgsJson] = useState('');\n const [jsonError, setJsonError] = useState('');\n const [executeAs, setExecuteAs] = useState('');\n\n useEffect(() => {\n const skeleton = buildSkeleton(tool.inputSchema);\n setFields(skeleton);\n setArgsJson(JSON.stringify(skeleton, null, 2));\n setJsonMode(false);\n setJsonError('');\n callTool.reset();\n }, [tool.name, serverId]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const hasResult = !!callTool.data || !!callTool.error;\n\n const toggleMode = () => {\n if (!jsonMode) {\n setArgsJson(JSON.stringify(fields, null, 2));\n } else {\n try { setFields(JSON.parse(argsJson)); } catch { /* keep fields */ }\n }\n setJsonMode(!jsonMode);\n };\n\n const handleRun = () => {\n setJsonError('');\n callTool.reset();\n let parsed: Record<string, unknown>;\n if (jsonMode) {\n try { parsed = JSON.parse(argsJson); } catch { setJsonError('Invalid JSON'); return; }\n } else {\n parsed = { ...fields };\n }\n callTool.mutate({\n serverId,\n toolName: tool.name,\n arguments: parsed,\n ...(executeAs ? { execute_as: executeAs } : {}),\n });\n };\n\n return (\n <div className=\"border-l border-surface-border bg-surface-raised\">\n {/* Header */}\n <div className=\"flex items-start justify-between px-4 py-3 border-b border-surface-border/50 shrink-0\">\n <div className=\"min-w-0 space-y-1\">\n <ServerName name={serverName} serverId={serverId} short={false} />\n <div><ToolPill name={tool.name} size=\"md\" /></div>\n </div>\n <button onClick={onClose} className=\"p-1 text-text-quaternary hover:text-text-primary shrink-0 ml-2\">\n <X className=\"w-3.5 h-3.5\" />\n </button>\n </div>\n\n {/* Scrollable body */}\n <div className=\"px-4 py-4 space-y-5\">\n {tool.description && (\n <div className=\"border-l-2 border-accent/30 pl-3 py-1\">\n <p className=\"text-[11px] text-text-secondary leading-relaxed italic\">{tool.description}</p>\n </div>\n )}\n\n {/* Run as */}\n <div>\n <label className={LABEL_CLS}>run as</label>\n <RunAsSelector selected={executeAs} onChange={setExecuteAs} />\n </div>\n\n {/* Form / JSON toggle input */}\n <div>\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-[10px] text-text-quaternary\">Parameters</span>\n <button onClick={toggleMode} className=\"text-[10px] text-accent/70 hover:text-accent transition-colors\">\n {jsonMode ? 'Form view' : 'JSON view'}\n </button>\n </div>\n\n {jsonMode ? (\n <textarea\n value={argsJson}\n onChange={(e) => setArgsJson(e.target.value)}\n className=\"input-json w-full\"\n rows={6}\n spellCheck={false}\n />\n ) : (\n <div className=\"space-y-3\">\n {Object.entries(fields).sort(([a], [b]) => {\n const req = (tool.inputSchema?.required ?? []) as string[];\n const ai = req.indexOf(a);\n const bi = req.indexOf(b);\n if (ai !== -1 && bi !== -1) return ai - bi;\n if (ai !== -1) return -1;\n if (bi !== -1) return 1;\n return a.localeCompare(b);\n }).map(([key, value]) => {\n const propSchema = tool.inputSchema?.properties?.[key];\n const hint = propSchema?.description;\n const isRequired = (tool.inputSchema?.required ?? []).includes(key);\n return (\n <div key={key}>\n <label className={LABEL_CLS}>\n {key}\n {isRequired && <span className=\"text-accent/50 ml-0.5\">*</span>}\n </label>\n {typeof value === 'boolean' ? (\n <select\n value={String(value)}\n onChange={(e) => setFields({ ...fields, [key]: e.target.value === 'true' })}\n className={INPUT_CLS}\n >\n <option value=\"true\">true</option>\n <option value=\"false\">false</option>\n </select>\n ) : Array.isArray(value) ? (\n <ArrayInput\n value={value as any[]}\n onChange={(v) => setFields({ ...fields, [key]: v })}\n className={INPUT_CLS}\n />\n ) : typeof value === 'object' && value !== null ? (\n <textarea\n value={JSON.stringify(value, null, 2)}\n onChange={(e) => { try { setFields({ ...fields, [key]: JSON.parse(e.target.value) }); } catch { /* invalid */ } }}\n className={`${INPUT_CLS} min-h-[48px] font-mono resize-y`}\n />\n ) : (\n <input\n type={typeof value === 'number' ? 'number' : 'text'}\n value={String(value ?? '')}\n onChange={(e) => setFields({ ...fields, [key]: typeof value === 'number' ? Number(e.target.value) : e.target.value })}\n className={INPUT_CLS}\n placeholder={propSchema?.type === 'string' ? propSchema?.example || '' : ''}\n />\n )}\n {hint && <p className=\"text-[9px] text-text-quaternary/70 mt-0.5 leading-snug\">{hint}</p>}\n </div>\n );\n })}\n {Object.keys(fields).length === 0 && (\n <p className=\"text-[11px] text-text-quaternary\">No parameters</p>\n )}\n </div>\n )}\n {jsonError && <p className=\"text-[11px] text-status-error mt-1\">{jsonError}</p>}\n </div>\n\n {/* Run button */}\n <button\n onClick={handleRun}\n disabled={callTool.isPending}\n className=\"btn-primary text-xs disabled:opacity-50 inline-flex items-center gap-1.5\"\n >\n {callTool.isPending ? (\n 'Running...'\n ) : hasResult ? (\n <><RotateCcw size={12} /> Re-run</>\n ) : (\n <><Play size={12} /> Run</>\n )}\n </button>\n\n {/* Response */}\n {callTool.isPending && (\n <div className=\"animate-pulse\">\n <p className=\"text-[10px] text-text-quaternary mb-1\">Response</p>\n <div className=\"h-20 bg-surface-sunken/50 rounded-md\" />\n </div>\n )}\n {callTool.data ? (\n <div className=\"space-y-2\">\n <JsonViewer data={callTool.data as Record<string, unknown>} label=\"Response\" defaultCollapsed />\n <ExecutionLink data={callTool.data} />\n </div>\n ) : null}\n {callTool.error ? (\n <div>\n <p className=\"text-[10px] text-text-quaternary mb-1\">Response</p>\n <ToolErrorDisplay error={callTool.error as Error | null} />\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n"],"names":["ServerName","name","serverId","short","navigate","useNavigate","display","jsxDEV","e","Server","ExternalLink","ToolErrorDisplay","error","msg","KeyRound","Link","ExecutionLink","data","res","jobId","ns","INPUT_CLS","LABEL_CLS","ArrayInput","value","onChange","className","raw","setRaw","useState","commit","s","useEffect","ToolTestPanel","serverName","tool","onClose","callTool","useCallMcpTool","jsonMode","setJsonMode","fields","setFields","argsJson","setArgsJson","jsonError","setJsonError","executeAs","setExecuteAs","skeleton","buildSkeleton","hasResult","toggleMode","handleRun","parsed","ToolPill","X","RunAsSelector","a","b","req","_a","ai","bi","key","propSchema","_b","hint","isRequired","_c","v","Fragment","RotateCcw","Play","JsonViewer"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import{u as be,j as e,b as v,J as Y}from"./index-DgCS2Frb.js";import{a as t}from"./vendor-query-DLp59M9_.js";import{a as xe,b as he,c as Ne,d as ge}from"./topics-DNC77Chw.js";import{L as fe}from"./ListToolbar-Dviaskni.js";import{R as P,B as De,Q as ve,p as Pe,aX as Ee,X as Te,T as je,g as Ve,aY as ye,b as G,a9 as ke,q as we}from"./vendor-icons-CNyYGNsk.js";import{e as Se,c as Ce}from"./vendor-react-zA2lQFDs.js";const We={task:"bg-status-active/10 text-status-active",workflow:"bg-accent/15 text-accent",escalation:"bg-status-warning/10 text-status-warning",activity:"bg-status-active/10 text-status-active",knowledge:"bg-accent/10 text-accent",agent:"bg-status-success/10 text-status-success",app:"bg-status-error/10 text-status-error",milestone:"bg-accent/10 text-accent"};function E({icon:n,color:b,children:m}){return e.jsxDEV("div",{className:"flex items-center gap-2 mb-3 pb-2 border-b border-surface-border",children:[e.jsxDEV(n,{className:`w-4 h-4 ${b}`,strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:24,columnNumber:7},this),e.jsxDEV("h2",{className:"section-h2",children:m},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:25,columnNumber:7},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:23,columnNumber:5},this)}function Ae(){var U,F,z,X;const{topic:n}=Se(),b=n?decodeURIComponent(n):null,m=Ce(),{data:a,isLoading:H,refetch:x,isFetching:K}=xe(b),{data:h}=be(),Z=(U=h==null?void 0:h.ai)!=null&&U.enabled?"agents":"automations",T=he(),ee=Ne(),c=ge(),[r,N]=t.useState(!1),[p,j]=t.useState(""),[V,y]=t.useState(()=>`evt-${Date.now()}-${Math.random().toString(16).slice(2,6)}`),[g,k]=t.useState(""),[w,ae]=t.useState("myWorkflow"),[S,se]=t.useState("wf-001"),[C,te]=t.useState("default"),[W,ie]=t.useState(""),[_,le]=t.useState("esc-001"),[q,oe]=t.useState("myActivity"),[I,O]=t.useState(""),[J,$]=t.useState(""),[f,R]=t.useState(""),[A,d]=t.useState("");if(H)return e.jsxDEV("div",{className:"animate-pulse space-y-4",children:[e.jsxDEV("div",{className:"h-8 bg-surface-sunken rounded w-48"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:60,columnNumber:53},this),e.jsxDEV("div",{className:"h-40 bg-surface-sunken rounded"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:60,columnNumber:107},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:60,columnNumber:12},this);if(!a)return e.jsxDEV("div",{className:"flex flex-col items-center justify-center py-20 text-center",children:[e.jsxDEV(P,{className:"w-12 h-12 text-text-quaternary mb-4",strokeWidth:1},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:66,columnNumber:9},this),e.jsxDEV("h2",{className:"text-lg font-medium text-text-primary mb-2",children:"Topic not found"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:67,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:65,columnNumber:7},this);const re=a.source==="system",M=!a.managed,ce=We[a.category]??"bg-surface-sunken text-text-tertiary",u=a.example_payload?JSON.stringify(a.example_payload,null,2):(F=a.payload_schema)!=null&&F.properties?JSON.stringify(Object.fromEntries(Object.keys(a.payload_schema.properties).map(s=>[s,""])),null,2):"{}",l=a.topic.startsWith("system.workflow.")||a.topic.startsWith("system.task.")?"workflow":a.topic.startsWith("system.escalation.")?"escalation":a.topic.startsWith("system.activity.")?"activity":"none",L=l==="workflow"||l==="escalation"||l==="activity",B=l==="workflow"||l==="escalation",D=(p||a.topic).split(".").pop()??"",Q=()=>{let s={};try{s=JSON.parse(g||u)}catch{}const o=(p||a.topic)!==a.topic?p||a.topic:void 0,i={id:V||void 0,source:"dashboard",data:s};return o&&(i.subject=o),L&&(i.workflowName=w,i.workflowId=S,i.taskQueue=C),B&&(i.status=W||D),l==="escalation"&&(i.escalationId=_),l==="activity"&&(i.activityName=q),i},pe=(()=>{const{subject:s,...o}=Q();return JSON.stringify({type:s||a.topic,timestamp:"<minted>",...o},null,2)})();!g&&u!=="{}"&&k(u),p||j(a.topic);const ne=()=>{O(a.description??""),$((a.tags??[]).join(", ")),R(a.payload_schema?JSON.stringify(a.payload_schema,null,2):""),d(""),N(!0)},me=()=>N(!1),de=()=>{const s=J.split(",").map(i=>i.trim()).filter(Boolean);let o;if(f.trim())try{o=JSON.parse(f),d("")}catch{d("Invalid JSON");return}T.mutate({topic:a.topic,description:I,tags:s,...o!==void 0?{payload_schema:o}:{}},{onSuccess:()=>{N(!1),x()}})},ue=()=>{confirm(`Delete topic "${a.topic}"?
2
+
3
+ This removes it from the catalog. Active subscriptions are not affected.`)&&ee.mutate(a.topic,{onSuccess:()=>m("/topics")})};return e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-start justify-between mb-4",children:[e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"flex items-center gap-3 mb-1",children:[e.jsxDEV(P,{className:"w-5 h-5 text-accent",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:165,columnNumber:13},this),e.jsxDEV("h1",{className:"text-lg font-mono font-medium text-text-primary",children:a.topic},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:166,columnNumber:13},this),e.jsxDEV("button",{onClick:()=>{window.location.hash="#docs:topics.md"},className:"text-text-quaternary hover:text-accent transition-colors",title:"Topic docs",children:e.jsxDEV(De,{className:"w-4 h-4",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:168,columnNumber:15},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:167,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:164,columnNumber:11},this),!r&&a.description?e.jsxDEV("p",{className:"text-sm text-text-secondary leading-relaxed",children:a.description},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:172,columnNumber:13},this):r?null:e.jsxDEV("p",{className:"text-sm text-text-quaternary italic",children:"No description"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:174,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:163,columnNumber:9},this),e.jsxDEV("div",{className:"flex items-center gap-2 shrink-0",children:[!r&&M&&e.jsxDEV("button",{onClick:ne,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(ve,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:180,columnNumber:15},this)," Edit"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:179,columnNumber:13},this),!r&&!re&&M&&e.jsxDEV("button",{onClick:ue,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-status-error/60 hover:text-status-error hover:bg-status-error/10 transition-colors",children:[e.jsxDEV(Pe,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:185,columnNumber:15},this)," Delete"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:184,columnNumber:13},this),r&&e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:de,disabled:T.isPending,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors",children:[e.jsxDEV(Ee,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:191,columnNumber:17},this)," Save"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:190,columnNumber:15},this),e.jsxDEV("button",{onClick:me,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-text-tertiary hover:text-text-primary hover:bg-surface-hover transition-colors",children:[e.jsxDEV(Te,{className:"w-3 h-3"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:194,columnNumber:17},this)," Cancel"]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:193,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:189,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:177,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:162,columnNumber:7},this),e.jsxDEV("div",{className:"bg-surface-sunken/50 rounded-md px-5 py-3 flex flex-wrap gap-x-6 gap-y-3 items-start mb-5 relative",children:[e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Category"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:204,columnNumber:11},this),e.jsxDEV("span",{className:`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-medium ${ce}`,children:a.category},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:205,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:203,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Source"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:208,columnNumber:11},this),e.jsxDEV("span",{className:"text-xs font-mono text-text-secondary",children:a.source},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:209,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:207,columnNumber:9},this),((z=a.tags)==null?void 0:z.length)>0&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Tags"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:213,columnNumber:13},this),e.jsxDEV("div",{className:"flex items-center gap-1.5",children:[e.jsxDEV(je,{className:"w-2.5 h-2.5 text-text-quaternary",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:215,columnNumber:15},this),a.tags.map(s=>e.jsxDEV("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-mono text-text-tertiary bg-surface-sunken",children:s},s,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:217,columnNumber:17},this))]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:214,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:212,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Created"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:223,columnNumber:11},this),e.jsxDEV("span",{className:"text-xs text-text-secondary",children:e.jsxDEV(v,{date:a.created_at},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:224,columnNumber:57},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:224,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:222,columnNumber:9},this),e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Updated"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:227,columnNumber:11},this),e.jsxDEV("span",{className:"text-xs text-text-secondary",children:e.jsxDEV(v,{date:a.updated_at},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:228,columnNumber:57},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:228,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:226,columnNumber:9},this),a.last_seen_at&&e.jsxDEV("div",{children:[e.jsxDEV("p",{className:"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1",children:"Last Seen"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:232,columnNumber:13},this),e.jsxDEV("span",{className:"text-xs text-text-secondary",children:e.jsxDEV(v,{date:a.last_seen_at},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:233,columnNumber:59},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:233,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:231,columnNumber:11},this),e.jsxDEV("div",{className:"ml-auto self-center",children:e.jsxDEV(fe,{onRefresh:()=>x(),isFetching:K,apiPath:`/topics/by-name/${encodeURIComponent(a.topic)}`},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:237,columnNumber:11},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:236,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:202,columnNumber:7},this),!r&&e.jsxDEV("div",{className:"grid grid-cols-3 gap-5",children:[e.jsxDEV("div",{className:"min-w-0",children:[e.jsxDEV(E,{icon:P,color:"text-accent",children:"Payload Schema"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:246,columnNumber:13},this),a.payload_schema?e.jsxDEV(Y,{data:a.payload_schema},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:248,columnNumber:15},this):e.jsxDEV("p",{className:"text-[11px] text-text-quaternary",children:"No schema defined. Click Edit to add one."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:250,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:245,columnNumber:11},this),e.jsxDEV("div",{className:"min-w-0",children:[e.jsxDEV(E,{icon:Ve,color:"text-accent",children:"Example Payload"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:256,columnNumber:13},this),a.example_payload?e.jsxDEV(Y,{data:a.example_payload},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:258,columnNumber:15},this):e.jsxDEV("p",{className:"text-[11px] text-text-quaternary",children:"No example defined. Click Edit to add one."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:260,columnNumber:15},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:255,columnNumber:11},this),e.jsxDEV("div",{className:"min-w-0 space-y-4 animate-page-enter",children:[e.jsxDEV(E,{icon:ye,color:"text-accent",children:"Test"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:266,columnNumber:13},this),e.jsxDEV("div",{className:"bg-surface-sunken/30 rounded-md px-4 py-3",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-2",children:[e.jsxDEV(G,{className:"w-3.5 h-3.5 text-status-success",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:270,columnNumber:17},this),e.jsxDEV("h2",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary",children:"Target Subscribers"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:271,columnNumber:17},this),e.jsxDEV("span",{className:"relative group ml-auto",children:[e.jsxDEV(ke,{className:"w-3 h-3 text-text-quaternary cursor-help",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:275,columnNumber:19},this),e.jsxDEV("span",{className:"absolute right-0 top-full mt-1 w-48 p-2 rounded bg-surface-raised border border-surface-border shadow-lg text-[10px] text-text-secondary leading-relaxed hidden group-hover:block z-10",children:"Publishing a test event is live — these subscribers will receive and process the payload."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:276,columnNumber:19},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:274,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:269,columnNumber:15},this),(X=a.subscribers)!=null&&X.length?e.jsxDEV("div",{className:"space-y-0.5",children:a.subscribers.map(s=>e.jsxDEV("button",{onClick:()=>m(`/agents/${s.agent_id}`),className:"flex items-center gap-2 w-full text-left py-1 rounded hover:bg-surface-hover/50 transition-colors",children:[e.jsxDEV(G,{className:"w-2.5 h-2.5 text-status-success shrink-0",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:289,columnNumber:23},this),e.jsxDEV("span",{className:"text-[11px] text-text-primary hover:text-accent transition-colors truncate",children:s.agent_name},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:290,columnNumber:23},this),e.jsxDEV("span",{className:"text-[9px] font-mono text-text-quaternary ml-auto shrink-0",children:s.reaction_type},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:291,columnNumber:23},this)]},s.id,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:284,columnNumber:21},this))},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:282,columnNumber:17},this):e.jsxDEV("p",{className:"text-[11px] text-text-quaternary",children:["No ",Z," subscribed."]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:296,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:268,columnNumber:13},this),e.jsxDEV("div",{className:"sticky top-16 bg-surface-sunken/40 rounded-md p-4",children:[e.jsxDEV("div",{className:"flex items-center gap-2 mb-3",children:[e.jsxDEV(we,{className:"w-3.5 h-3.5 text-accent",strokeWidth:1.5},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:303,columnNumber:17},this),e.jsxDEV("h2",{className:"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary",children:"Publish"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:304,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:302,columnNumber:15},this),e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Event ID"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:306,columnNumber:15},this),e.jsxDEV("input",{value:V,onChange:s=>y(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:"evt-1720368000000-a3f2"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:307,columnNumber:15},this),e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Subject"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:314,columnNumber:15},this),e.jsxDEV("input",{value:p||a.topic,onChange:s=>j(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:315,columnNumber:15},this),L&&e.jsxDEV("div",{className:"grid grid-cols-2 gap-x-3",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Workflow Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:324,columnNumber:21},this),e.jsxDEV("input",{value:w,onChange:s=>ae(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:"myWorkflow"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:325,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:323,columnNumber:19},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Workflow ID"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:334,columnNumber:21},this),e.jsxDEV("input",{value:S,onChange:s=>se(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:"wf-001"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:335,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:333,columnNumber:19},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Task Queue"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:344,columnNumber:21},this),e.jsxDEV("input",{value:C,onChange:s=>te(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:"default"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:345,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:343,columnNumber:19},this),B&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Status"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:355,columnNumber:23},this),e.jsxDEV("input",{value:W||D,onChange:s=>ie(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:D},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:356,columnNumber:23},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:354,columnNumber:21},this),l==="escalation"&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Escalation ID"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:367,columnNumber:23},this),e.jsxDEV("input",{value:_,onChange:s=>le(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:"esc-001"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:368,columnNumber:23},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:366,columnNumber:21},this),l==="activity"&&e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Activity Name"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:379,columnNumber:23},this),e.jsxDEV("input",{value:q,onChange:s=>oe(s.target.value),className:"input w-full text-[11px] font-mono mb-3",spellCheck:!1,placeholder:"myActivity"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:380,columnNumber:23},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:378,columnNumber:21},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:322,columnNumber:17},this),e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1",children:"Payload"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:391,columnNumber:15},this),e.jsxDEV("textarea",{value:g||u,onChange:s=>k(s.target.value),className:"input-json w-full text-[11px]",rows:6,spellCheck:!1,placeholder:'{ "key": "value" }'},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:392,columnNumber:15},this),e.jsxDEV("label",{className:"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1 mt-3",children:"Event Preview"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:400,columnNumber:15},this),e.jsxDEV("pre",{className:"bg-surface-sunken/60 rounded px-2 py-2 text-[10px] font-mono text-text-tertiary overflow-auto max-h-44 whitespace-pre",children:pe},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:401,columnNumber:15},this),e.jsxDEV("div",{className:"mt-3",children:e.jsxDEV("button",{onClick:()=>{c.mutate({topic:a.topic,event:Q()},{onSuccess:()=>{x(),y(`evt-${Date.now()}-${Math.random().toString(16).slice(2,6)}`)}})},disabled:c.isPending,className:"btn-primary text-xs w-full",children:c.isPending?"Publishing…":"Publish"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:403,columnNumber:17},this)},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:402,columnNumber:15},this),c.isSuccess&&e.jsxDEV("p",{className:"text-[10px] text-status-success mt-2 animate-page-enter",children:"Event published"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:421,columnNumber:17},this),c.isError&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-2",children:c.error.message},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:424,columnNumber:17},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:301,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:265,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:243,columnNumber:9},this),r&&e.jsxDEV("div",{className:"space-y-6 max-w-3xl",children:[e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"section-header",children:"Description"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:435,columnNumber:13},this),e.jsxDEV("textarea",{value:I,onChange:s=>O(s.target.value),rows:3,className:"input resize-none",placeholder:"What this topic represents"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:436,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:434,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"section-header",children:"Tags"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:445,columnNumber:13},this),e.jsxDEV("input",{type:"text",value:J,onChange:s=>$(s.target.value),placeholder:"lifecycle, core, error",className:"input font-mono"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:446,columnNumber:13},this),e.jsxDEV("p",{className:"hint",children:"Comma-separated. Used for filtering in the catalog."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:453,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:444,columnNumber:11},this),e.jsxDEV("div",{children:[e.jsxDEV("label",{className:"section-header",children:"Payload Schema"},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:456,columnNumber:13},this),e.jsxDEV("textarea",{value:f,onChange:s=>{R(s.target.value),d("")},rows:12,className:"input-json w-full",placeholder:`{
4
+ "type": "object",
5
+ "properties": {
6
+ "orderId": { "type": "string" }
7
+ }
8
+ }`},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:457,columnNumber:13},this),A&&e.jsxDEV("p",{className:"text-[10px] text-status-error mt-1",children:A},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:464,columnNumber:29},this),e.jsxDEV("p",{className:"hint",children:"JSON Schema describing the event.data shape."},void 0,!1,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:465,columnNumber:13},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:455,columnNumber:11},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:433,columnNumber:9},this)]},void 0,!0,{fileName:"/app/dashboard/src/pages/topics/TopicDetailPage.tsx",lineNumber:160,columnNumber:5},this)}export{Ae as TopicDetailPage};
9
+ //# sourceMappingURL=TopicDetailPage-CtFztOnn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopicDetailPage-CtFztOnn.js","sources":["../../src/pages/topics/TopicDetailPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { Radio, Bot, Tag, Pencil, Trash2, Save, X, BookOpen, Send, FlaskConical, Info, Braces } from 'lucide-react';\nimport { useTopic, useUpdateTopic, useDeleteTopic, usePublishTopic } from '../../api/topics';\nimport { JsonViewer } from '../../components/common/data/JsonViewer';\nimport { DateValue } from '../../components/common/display/DateValue';\nimport { ListToolbar } from '../../components/common/data/ListToolbar';\nimport { useSettings } from '../../api/settings';\n\nconst CATEGORY_COLORS: Record<string, string> = {\n task: 'bg-status-active/10 text-status-active',\n workflow: 'bg-accent/15 text-accent',\n escalation: 'bg-status-warning/10 text-status-warning',\n activity: 'bg-status-active/10 text-status-active',\n knowledge: 'bg-accent/10 text-accent',\n agent: 'bg-status-success/10 text-status-success',\n app: 'bg-status-error/10 text-status-error',\n milestone: 'bg-accent/10 text-accent',\n};\n\nfunction SectionHeader({ icon: Icon, color, children }: { icon: React.ElementType; color: string; children: React.ReactNode }) {\n return (\n <div className=\"flex items-center gap-2 mb-3 pb-2 border-b border-surface-border\">\n <Icon className={`w-4 h-4 ${color}`} strokeWidth={1.5} />\n <h2 className=\"section-h2\">{children}</h2>\n </div>\n );\n}\n\nexport function TopicDetailPage() {\n const { topic: encodedTopic } = useParams<{ topic: string }>();\n const topicKey = encodedTopic ? decodeURIComponent(encodedTopic) : null;\n const navigate = useNavigate();\n const { data: topic, isLoading, refetch, isFetching } = useTopic(topicKey);\n const { data: settings } = useSettings();\n const subscriberLabel = settings?.ai?.enabled ? 'agents' : 'automations';\n const updateMutation = useUpdateTopic();\n const deleteMutation = useDeleteTopic();\n const publishMutation = usePublishTopic();\n\n const [editing, setEditing] = useState(false);\n const [publishSubject, setPublishSubject] = useState('');\n const [publishEventId, setPublishEventId] = useState(() => `evt-${Date.now()}-${Math.random().toString(16).slice(2, 6)}`);\n const [publishPayload, setPublishPayload] = useState('');\n // Opt-in envelope extension fields. Which ones are shown depends on the topic\n // family (system.workflow.* shows workflow fields; a custom/file topic shows\n // none). Prefilled like Event ID; sent as top-level event fields.\n const [publishWorkflowName, setPublishWorkflowName] = useState('myWorkflow');\n const [publishWorkflowId, setPublishWorkflowId] = useState('wf-001');\n const [publishTaskQueue, setPublishTaskQueue] = useState('default');\n const [publishStatus, setPublishStatus] = useState('');\n const [publishEscalationId, setPublishEscalationId] = useState('esc-001');\n const [publishActivityName, setPublishActivityName] = useState('myActivity');\n const [editDescription, setEditDescription] = useState('');\n const [editTags, setEditTags] = useState('');\n const [editSchema, setEditSchema] = useState('');\n const [schemaError, setSchemaError] = useState('');\n\n if (isLoading) {\n return <div className=\"animate-pulse space-y-4\"><div className=\"h-8 bg-surface-sunken rounded w-48\" /><div className=\"h-40 bg-surface-sunken rounded\" /></div>;\n }\n\n if (!topic) {\n return (\n <div className=\"flex flex-col items-center justify-center py-20 text-center\">\n <Radio className=\"w-12 h-12 text-text-quaternary mb-4\" strokeWidth={1} />\n <h2 className=\"text-lg font-medium text-text-primary mb-2\">Topic not found</h2>\n </div>\n );\n }\n\n const isSystem = topic.source === 'system';\n const isManaged = topic.managed;\n const editable = !isManaged;\n const categoryPillCls = CATEGORY_COLORS[topic.category] ?? 'bg-surface-sunken text-text-tertiary';\n\n const defaultPayload = topic.example_payload\n ? JSON.stringify(topic.example_payload, null, 2)\n : topic.payload_schema?.properties\n ? JSON.stringify(Object.fromEntries(Object.keys(topic.payload_schema.properties).map(k => [k, ''])), null, 2)\n : '{}';\n\n // Which envelope extensions belong to this topic's family (\"the system injects\n // fields by type\"). Custom / file / knowledge topics carry none — just data.\n const fam =\n topic.topic.startsWith('system.workflow.') || topic.topic.startsWith('system.task.') ? 'workflow'\n : topic.topic.startsWith('system.escalation.') ? 'escalation'\n : topic.topic.startsWith('system.activity.') ? 'activity'\n : 'none';\n const showWorkflowFields = fam === 'workflow' || fam === 'escalation' || fam === 'activity';\n const showStatus = fam === 'workflow' || fam === 'escalation';\n // Status default mirrors the subject's terminal verb (failed / completed / resolved …).\n const statusDefault = (publishSubject || topic.topic).split('.').pop() ?? '';\n\n // The literal event the publish will send — built from the universal envelope\n // (id, subject, source) + only the family's extension fields + the payload.\n const buildPublishEvent = (): Record<string, any> => {\n let data: Record<string, any> = {};\n try { data = JSON.parse(publishPayload || defaultPayload); } catch { /* invalid JSON */ }\n const subject = (publishSubject || topic.topic) !== topic.topic ? (publishSubject || topic.topic) : undefined;\n const event: Record<string, any> = { id: publishEventId || undefined, source: 'dashboard', data };\n if (subject) event.subject = subject;\n if (showWorkflowFields) {\n event.workflowName = publishWorkflowName;\n event.workflowId = publishWorkflowId;\n event.taskQueue = publishTaskQueue;\n }\n if (showStatus) event.status = publishStatus || statusDefault;\n if (fam === 'escalation') event.escalationId = publishEscalationId;\n if (fam === 'activity') event.activityName = publishActivityName;\n return event;\n };\n // A literal preview of the published envelope (type derived from subject).\n const eventPreview = (() => {\n const { subject, ...rest } = buildPublishEvent();\n return JSON.stringify({ type: subject || topic.topic, timestamp: '<minted>', ...rest }, null, 2);\n })();\n if (!publishPayload && defaultPayload !== '{}') {\n setPublishPayload(defaultPayload);\n }\n if (!publishSubject) {\n setPublishSubject(topic.topic);\n }\n\n const startEdit = () => {\n setEditDescription(topic.description ?? '');\n setEditTags((topic.tags ?? []).join(', '));\n setEditSchema(topic.payload_schema ? JSON.stringify(topic.payload_schema, null, 2) : '');\n setSchemaError('');\n setEditing(true);\n };\n\n const cancelEdit = () => setEditing(false);\n\n const saveEdit = () => {\n const tags = editTags.split(',').map((t) => t.trim()).filter(Boolean);\n let payload_schema: Record<string, any> | undefined;\n if (editSchema.trim()) {\n try {\n payload_schema = JSON.parse(editSchema);\n setSchemaError('');\n } catch {\n setSchemaError('Invalid JSON');\n return;\n }\n }\n updateMutation.mutate(\n { topic: topic.topic, description: editDescription, tags, ...(payload_schema !== undefined ? { payload_schema } : {}) },\n { onSuccess: () => { setEditing(false); refetch(); } },\n );\n };\n\n const handleDelete = () => {\n if (confirm(`Delete topic \"${topic.topic}\"?\\n\\nThis removes it from the catalog. Active subscriptions are not affected.`)) {\n deleteMutation.mutate(topic.topic, { onSuccess: () => navigate('/topics') });\n }\n };\n\n return (\n <div>\n {/* ── Header ───────────────────────────────────────────────── */}\n <div className=\"flex items-start justify-between mb-4\">\n <div>\n <div className=\"flex items-center gap-3 mb-1\">\n <Radio className=\"w-5 h-5 text-accent\" strokeWidth={1.5} />\n <h1 className=\"text-lg font-mono font-medium text-text-primary\">{topic.topic}</h1>\n <button onClick={() => { window.location.hash = '#docs:topics.md'; }} className=\"text-text-quaternary hover:text-accent transition-colors\" title=\"Topic docs\">\n <BookOpen className=\"w-4 h-4\" strokeWidth={1.5} />\n </button>\n </div>\n {!editing && topic.description ? (\n <p className=\"text-sm text-text-secondary leading-relaxed\">{topic.description}</p>\n ) : !editing ? (\n <p className=\"text-sm text-text-quaternary italic\">No description</p>\n ) : null}\n </div>\n <div className=\"flex items-center gap-2 shrink-0\">\n {!editing && editable && (\n <button onClick={startEdit} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors\">\n <Pencil className=\"w-3 h-3\" /> Edit\n </button>\n )}\n {!editing && !isSystem && editable && (\n <button onClick={handleDelete} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-status-error/60 hover:text-status-error hover:bg-status-error/10 transition-colors\">\n <Trash2 className=\"w-3 h-3\" /> Delete\n </button>\n )}\n {editing && (\n <>\n <button onClick={saveEdit} disabled={updateMutation.isPending} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md bg-accent text-text-inverse hover:bg-accent-hover transition-colors\">\n <Save className=\"w-3 h-3\" /> Save\n </button>\n <button onClick={cancelEdit} className=\"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-text-tertiary hover:text-text-primary hover:bg-surface-hover transition-colors\">\n <X className=\"w-3 h-3\" /> Cancel\n </button>\n </>\n )}\n </div>\n </div>\n\n {/* ── Details band ─────────────────────────────────────────── */}\n <div className=\"bg-surface-sunken/50 rounded-md px-5 py-3 flex flex-wrap gap-x-6 gap-y-3 items-start mb-5 relative\">\n <div>\n <p className=\"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">Category</p>\n <span className={`inline-flex items-center px-2 py-0.5 rounded text-[10px] font-medium ${categoryPillCls}`}>{topic.category}</span>\n </div>\n <div>\n <p className=\"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">Source</p>\n <span className=\"text-xs font-mono text-text-secondary\">{topic.source}</span>\n </div>\n {topic.tags?.length > 0 && (\n <div>\n <p className=\"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">Tags</p>\n <div className=\"flex items-center gap-1.5\">\n <Tag className=\"w-2.5 h-2.5 text-text-quaternary\" strokeWidth={1.5} />\n {topic.tags.map((tag) => (\n <span key={tag} className=\"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-mono text-text-tertiary bg-surface-sunken\">{tag}</span>\n ))}\n </div>\n </div>\n )}\n <div>\n <p className=\"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">Created</p>\n <span className=\"text-xs text-text-secondary\"><DateValue date={topic.created_at} /></span>\n </div>\n <div>\n <p className=\"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">Updated</p>\n <span className=\"text-xs text-text-secondary\"><DateValue date={topic.updated_at} /></span>\n </div>\n {topic.last_seen_at && (\n <div>\n <p className=\"text-[9px] font-semibold uppercase tracking-widest text-text-tertiary mb-1\">Last Seen</p>\n <span className=\"text-xs text-text-secondary\"><DateValue date={topic.last_seen_at} /></span>\n </div>\n )}\n <div className=\"ml-auto self-center\">\n <ListToolbar onRefresh={() => refetch()} isFetching={isFetching} apiPath={`/topics/by-name/${encodeURIComponent(topic.topic)}`} />\n </div>\n </div>\n\n {/* ── Three-column layout: Schema | Example | Test ─── */}\n {!editing && (\n <div className=\"grid grid-cols-3 gap-5\">\n {/* Col 1 — Payload Schema */}\n <div className=\"min-w-0\">\n <SectionHeader icon={Radio} color=\"text-accent\">Payload Schema</SectionHeader>\n {topic.payload_schema ? (\n <JsonViewer data={topic.payload_schema} />\n ) : (\n <p className=\"text-[11px] text-text-quaternary\">No schema defined. Click Edit to add one.</p>\n )}\n </div>\n\n {/* Col 2 — Example Payload */}\n <div className=\"min-w-0\">\n <SectionHeader icon={Braces} color=\"text-accent\">Example Payload</SectionHeader>\n {topic.example_payload ? (\n <JsonViewer data={topic.example_payload} />\n ) : (\n <p className=\"text-[11px] text-text-quaternary\">No example defined. Click Edit to add one.</p>\n )}\n </div>\n\n {/* Col 3 — Test */}\n <div className=\"min-w-0 space-y-4 animate-page-enter\">\n <SectionHeader icon={FlaskConical} color=\"text-accent\">Test</SectionHeader>\n {/* Target Subscribers */}\n <div className=\"bg-surface-sunken/30 rounded-md px-4 py-3\">\n <div className=\"flex items-center gap-2 mb-2\">\n <Bot className=\"w-3.5 h-3.5 text-status-success\" strokeWidth={1.5} />\n <h2 className=\"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary\">\n Target Subscribers\n </h2>\n <span className=\"relative group ml-auto\">\n <Info className=\"w-3 h-3 text-text-quaternary cursor-help\" strokeWidth={1.5} />\n <span className=\"absolute right-0 top-full mt-1 w-48 p-2 rounded bg-surface-raised border border-surface-border shadow-lg text-[10px] text-text-secondary leading-relaxed hidden group-hover:block z-10\">\n Publishing a test event is live — these subscribers will receive and process the payload.\n </span>\n </span>\n </div>\n {topic.subscribers?.length ? (\n <div className=\"space-y-0.5\">\n {topic.subscribers.map((sub) => (\n <button\n key={sub.id}\n onClick={() => navigate(`/agents/${sub.agent_id}`)}\n className=\"flex items-center gap-2 w-full text-left py-1 rounded hover:bg-surface-hover/50 transition-colors\"\n >\n <Bot className=\"w-2.5 h-2.5 text-status-success shrink-0\" strokeWidth={1.5} />\n <span className=\"text-[11px] text-text-primary hover:text-accent transition-colors truncate\">{sub.agent_name}</span>\n <span className=\"text-[9px] font-mono text-text-quaternary ml-auto shrink-0\">{sub.reaction_type}</span>\n </button>\n ))}\n </div>\n ) : (\n <p className=\"text-[11px] text-text-quaternary\">No {subscriberLabel} subscribed.</p>\n )}\n </div>\n\n {/* Publish */}\n <div className=\"sticky top-16 bg-surface-sunken/40 rounded-md p-4\">\n <div className=\"flex items-center gap-2 mb-3\">\n <Send className=\"w-3.5 h-3.5 text-accent\" strokeWidth={1.5} />\n <h2 className=\"text-[10px] font-semibold uppercase tracking-widest text-text-tertiary\">Publish</h2>\n </div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Event ID</label>\n <input\n value={publishEventId}\n onChange={(e) => setPublishEventId(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder=\"evt-1720368000000-a3f2\"\n />\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Subject</label>\n <input\n value={publishSubject || topic.topic}\n onChange={(e) => setPublishSubject(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n />\n {showWorkflowFields && (\n <div className=\"grid grid-cols-2 gap-x-3\">\n <div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Workflow Name</label>\n <input\n value={publishWorkflowName}\n onChange={(e) => setPublishWorkflowName(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder=\"myWorkflow\"\n />\n </div>\n <div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Workflow ID</label>\n <input\n value={publishWorkflowId}\n onChange={(e) => setPublishWorkflowId(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder=\"wf-001\"\n />\n </div>\n <div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Task Queue</label>\n <input\n value={publishTaskQueue}\n onChange={(e) => setPublishTaskQueue(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder=\"default\"\n />\n </div>\n {showStatus && (\n <div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Status</label>\n <input\n value={publishStatus || statusDefault}\n onChange={(e) => setPublishStatus(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder={statusDefault}\n />\n </div>\n )}\n {fam === 'escalation' && (\n <div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Escalation ID</label>\n <input\n value={publishEscalationId}\n onChange={(e) => setPublishEscalationId(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder=\"esc-001\"\n />\n </div>\n )}\n {fam === 'activity' && (\n <div>\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Activity Name</label>\n <input\n value={publishActivityName}\n onChange={(e) => setPublishActivityName(e.target.value)}\n className=\"input w-full text-[11px] font-mono mb-3\"\n spellCheck={false}\n placeholder=\"myActivity\"\n />\n </div>\n )}\n </div>\n )}\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1\">Payload</label>\n <textarea\n value={publishPayload || defaultPayload}\n onChange={(e) => setPublishPayload(e.target.value)}\n className=\"input-json w-full text-[11px]\"\n rows={6}\n spellCheck={false}\n placeholder='{ \"key\": \"value\" }'\n />\n <label className=\"block text-[10px] text-text-quaternary uppercase tracking-wide mb-1 mt-3\">Event Preview</label>\n <pre className=\"bg-surface-sunken/60 rounded px-2 py-2 text-[10px] font-mono text-text-tertiary overflow-auto max-h-44 whitespace-pre\">{eventPreview}</pre>\n <div className=\"mt-3\">\n <button\n onClick={() => {\n publishMutation.mutate(\n { topic: topic.topic, event: buildPublishEvent() },\n { onSuccess: () => {\n refetch();\n // Generate a fresh event ID for the next publish\n setPublishEventId(`evt-${Date.now()}-${Math.random().toString(16).slice(2, 6)}`);\n } },\n );\n }}\n disabled={publishMutation.isPending}\n className=\"btn-primary text-xs w-full\"\n >\n {publishMutation.isPending ? 'Publishing…' : 'Publish'}\n </button>\n </div>\n {publishMutation.isSuccess && (\n <p className=\"text-[10px] text-status-success mt-2 animate-page-enter\">Event published</p>\n )}\n {publishMutation.isError && (\n <p className=\"text-[10px] text-status-error mt-2\">{publishMutation.error.message}</p>\n )}\n </div>\n </div>\n </div>\n )}\n\n {/* ── Edit mode ────────────────────────────────────────────── */}\n {editing && (\n <div className=\"space-y-6 max-w-3xl\">\n <div>\n <label className=\"section-header\">Description</label>\n <textarea\n value={editDescription}\n onChange={(e) => setEditDescription(e.target.value)}\n rows={3}\n className=\"input resize-none\"\n placeholder=\"What this topic represents\"\n />\n </div>\n <div>\n <label className=\"section-header\">Tags</label>\n <input\n type=\"text\"\n value={editTags}\n onChange={(e) => setEditTags(e.target.value)}\n placeholder=\"lifecycle, core, error\"\n className=\"input font-mono\"\n />\n <p className=\"hint\">Comma-separated. Used for filtering in the catalog.</p>\n </div>\n <div>\n <label className=\"section-header\">Payload Schema</label>\n <textarea\n value={editSchema}\n onChange={(e) => { setEditSchema(e.target.value); setSchemaError(''); }}\n rows={12}\n className=\"input-json w-full\"\n placeholder={'{\\n \"type\": \"object\",\\n \"properties\": {\\n \"orderId\": { \"type\": \"string\" }\\n }\\n}'}\n />\n {schemaError && <p className=\"text-[10px] text-status-error mt-1\">{schemaError}</p>}\n <p className=\"hint\">JSON Schema describing the event.data shape.</p>\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["CATEGORY_COLORS","SectionHeader","Icon","color","children","jsxDEV","TopicDetailPage","encodedTopic","useParams","topicKey","navigate","useNavigate","topic","isLoading","refetch","isFetching","useTopic","settings","useSettings","subscriberLabel","_a","updateMutation","useUpdateTopic","deleteMutation","useDeleteTopic","publishMutation","usePublishTopic","editing","setEditing","useState","publishSubject","setPublishSubject","publishEventId","setPublishEventId","publishPayload","setPublishPayload","publishWorkflowName","setPublishWorkflowName","publishWorkflowId","setPublishWorkflowId","publishTaskQueue","setPublishTaskQueue","publishStatus","setPublishStatus","publishEscalationId","setPublishEscalationId","publishActivityName","setPublishActivityName","editDescription","setEditDescription","editTags","setEditTags","editSchema","setEditSchema","schemaError","setSchemaError","Radio","isSystem","editable","categoryPillCls","defaultPayload","_b","k","fam","showWorkflowFields","showStatus","statusDefault","buildPublishEvent","data","subject","event","eventPreview","rest","startEdit","cancelEdit","saveEdit","tags","t","payload_schema","handleDelete","BookOpen","Pencil","Trash2","Fragment","Save","X","_c","Tag","tag","DateValue","ListToolbar","JsonViewer","Braces","FlaskConical","Bot","Info","_d","sub","Send","e"],"mappings":"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"}